I’m building a set of rotating rings using Blueprints and am unsure how to work with multiple rotations simultaneously. Any help would be greatly appreciated.
In the image below you can see a set of nested rings. I’m planning on rotating them based on user input in 3 dimensions (pitch, yaw, roll). Each ring is a StaticMeshComponent with its own blueprint.
I’m currently using Timelines to set the outer-ring’s rotations based on key presses (hold down X and the outer ring will rotate parallel to the plane of the ring, or on its world X axis). I’ve mapped Y and Z to its Yaw and Roll respectively and trigger them from the level blueprint. For a basic view of what I’m doing see the outer ring’s blueprint below:
Where I’m getting confused (and hopefully this is a simple vector math translation from world to local space) is when I start rotating on multiple axes simultaneously. My rotations are all occurring in what I’d consider is world space (i.e. when the Yaw changes, my “Pitch” rotation caused by pressing X occurs along the same world plane as it did initially. What I’d prefer to happen is to preserve that Pitch rotation along the original axis respective to the ring itself. I’m guessing this is local orientation.
I see the Blueprint nodes Set Relative Rotation, Set Actor Relative Rotation, etc. but am not having any more success in setting the rotation through any of these. My vector math is pretty rusty as well so I’m not making any headway. Any help would be great.
Thanks,
Rob