Поворот морды персонажа

Приветик. Ищу информацию где выковырять корректный ротатор в интерфейсе.

Я поковырял все доступные, нашел 2, которые почти верно отображают поворот лица. Но если использовать ту же команду //show_loc - она покажет, что ротация внутри клиента не то, что бы верная.

1674133271588.png
Почему я так решил? Потому что если использовать 43944 и засунуть это в поворот морды нпц - он будет стоять так, как надо. А 47602 - будут кривыми.

C#:
local Actor _Actor;
  
    _Actor = GetPlayerActor();
  
  
    Say("Rotation" @ _Actor.Rotation.yaw);
    Say("RelativeRotation" @ _Actor.RelativeRotation.yaw);
    Say("DesiredRotation" @ _Actor.DesiredRotation.yaw);
    Say("L2DesriedRotator" @ _Actor.L2DesriedRotator.yaw);
    Say("RelativeRotation" @ _Actor.RelativeRotation.yaw);
    Say("RotationRate" @ _Actor.RotationRate.yaw);
    Say("SwayRotationOrig" @ _Actor.SwayRotationOrig.yaw);


Собсна вопрос - а интерфейс вообще в курсе корректных значений поворота морды настолько, насколько в курсе сервер?

Зачем? Нормально записывать координаты\поворот морды с кнопки\шортката интерфейса, что бы маппить НПЦ, а не переписывать всё это с команды чата.
 
В свое время было интересно как узнать на кого смотрит павн лицом через свойства
а лицо-голова это кость? может через какой-нибудь GetBoneRotation?
 
а просто поискать значение в APawn не варик?

у меня в ессенсе направление нпц лежит в pawn+2572. не знаю насколько "точный" этот ротатор, но другого нету
 
Голову можно повернуть вот так .
Код:
var Rotator BoneTurn;
var Vector BoneTrans;
class FMagic extends LineagePawn;
function PostBeginPlay()
{
    BoneTurn.Pitch +=16384;//16384 это угол 90 градусов в unreal units.
    BoneTurn.Yaw += 4500 * (1 - 2*7);
    SetBoneDirection(HeadBone, BoneTurn,BoneTrans,1.0,1);
    //либо так SetBoneDirection("Bip01_head", BoneTurn,BoneTrans,1.0,1);
}

defaultproperties
{
    HeadBone=Bip01_head

}

Формула Конвертирования угла в Unreal Units довольно проста

Код:
int unrealOST=184;
            float degrees =90.0;
            float unrealUnits =  unrealOST+(degrees* 180);
 
Назад
Сверху Снизу