Тема: Unreal Engine, не обертає об'єкта по осі Y (Pitch)

Захотів трохи розібратися з ігровим рушієм Unreal Engine 4.10 тільки почав робити елементарні речі такі як зміна положення об'єкта, обертання, масштабування.

При обертанні об'єкта по Y він обертається десь на 90 градусів і починає "смикатися", всі інші осі (X,Z) ведуть себе адекватно (безперервно обертаються), в чому може бути проблема ?

void AMyActor::Tick( float DeltaTime )
{
    Super::Tick( DeltaTime );
    FRotator NewLocation = GetActorRotation();
    
    NewLocation.Pitch -= 1;//Y <- тут помилка 
    //NewLocation.Roll -= 1;//X 
    //NewLocation.Yaw -= 1;//Z 

    SetActorRotation(NewLocation);
}
Прихований текст

GetActorRotation - Returns rotation of the RootComponent this is a template for no other reason than to delay compilation until USceneComponent is defined.
SetActorRotation - Set the Actor's rotation instantly to the specified rotation.
FRotator - A vector in 3-D space composed of components (X, Y, Z) with floating point precision.
https://docs.unrealengine.com/latest/IN … index.html
Pitch    Rotation around the right axis (around Y axis), Looking up and down (0=Straight Ahead, +Up, -Down)
Roll    Rotation around the forward axis (around X axis), Tilting your head, 0=Straight, +Clockwise, -CCW.
Yaw    Rotation around the up axis (around Z axis), Running in circles 0=East, +North, -South.

Подякували: leofun011

2

Re: Unreal Engine, не обертає об'єкта по осі Y (Pitch)

Можливо це бага яка називається блокування обертання. Простий варіант - не обертайте його на 90 градусів. :)

Складний варіант - треба вчити математику з кватерніонами.

Подякували: 0xDADA11C7, leofun012

3

Re: Unreal Engine, не обертає об'єкта по осі Y (Pitch)

bunyk написав:

Можливо це бага яка називається блокування обертання

я так розумію це відбувається коли по всіх трьох осях обертати

Прихований текст

Карданний підвіс із трьома осями обертання. Набір із трьох з'єднаних разом кілець підвісу дозволяє мати три ступені свободи: крен, тангаж і рискання. Коли два кільця підвісу обертаються довкола однієї осі, система втрачає одну ступінь свободи.

тоді в мене скорій всього просто баг (так як я обертаю по одній осі Y), я так догадуюсь можливо розробники хотіли уникнути переповнення змінної тому збивають лічильник коли він доходить до 0 або 360 а по і осі Y щось не доробили, потрібно буде подивитися на ті(FRotator, AActor) класи.