Download

Trying to understand rotations / rotating around "world axis" instead of local axis

Hi,

I tried many things and searches but can’t seem to get this right: basically I am trying to rotate an actor around the world axis, and instead he seems to rotate around his own local axis.

For the purpose of visualizing this imagine a mannequin model as the actor lying flat on his stomach parallel to the world X axis. His own local X axis coincides with the world x axis, i.e. pointing from the feet to the head.

If I now rotate him, let’s say flip him over, by 180 degrees around the X axis, this works as intended, he is rolling on his back. I do this with getting his starting rotation (via getActorRotation), adding 180 (via delta rotator) on X, to get the destination rotation, and
then Lerping via timeline from the starting rotation to the destination rotation.

If I now rotate him 90 degrees around the Y axis this is working as well, he is now standing on his feet.

But next I would like to flip him over again so that he is upside down, doing a headstand, i.e. rotate 180 degrees around the world X axis.
And no matter what I try this doesn’t seem to work: If I try to make a delta with X again, he turns around his own X axis.

I tried all the other axes and all sorts of variations. I am clearly fundamentally missing something here and thinking along the wrong frames of reference.

Any hint to solve this or any good resources on rotations, please?

Just in case anybody else is struggling with rotations, it could be this bug which leads to strange rotation values when changing rotator pitch (although it’s more likely my incompetence):

https://answers.unrealengine.com/questions/67978/how-to-fix-the-rotator-pitch-bug.html

It was reported in 2014, but the linked threads in there reveal that at least in July 2016 this wasn’t fixed.