I’m encountering an issue with rotation in Unreal Engine 5 that seems tied to how meshes are aligned. Here’s the situation:
When a mesh is vertically aligned, Unreal’s default rotation mechanics (yaw, pitch, roll) stick to local or world space. This creates limitations when trying to achieve fluid, freeform rotation.
In 3D modeling software like Modo or Maya, there’s a feature called Trackball Rotation, which rotates objects based on a spherical or screen-relative approach. It allows for unrestricted and natural motion.
The Problem:
My Blueprint itself is rotated and aligned correctly.
However, the static meshes inside the Blueprint stay vertically aligned and don’t rotate freely, as they seem to follow the original file’s vertical orientation.
Has anyone successfully implemented Trackball-like rotation for meshes or found a workaround for this issue? Should I be calculating rotation dynamically in Blueprints, or is there a better built-in solution I might have missed?
Any tips, advice, or plugin recommendations would be greatly appreciated!
Look into “quaternation + bluepritns” there may be tutorials.
If not find formula how to calculate rotation, then try to recreate it in bluepritns.
Also (i am guessing) problem you describe may be “gimbal lock”
There is another way, its bit of hax, but no quaternations:
place invisible component
move this component on surface of sphere: move directions align to UpVector and RightVector of component. And one extra input to rotate that component
after move get vector from center/camera/pawn to that component, normalize it and then multiply by some radius, and snap component to that new point in 3d space. This way that component always stays on sphere.
then use find look at rotation for that new component location, or copy component orientation/rotation to camera.
However this is hax, easier (well more elegant is using quaternations)
For reorienting mesh you can rotate it while importing, or enable mesh editing tools (in plugins) and do basic mesh modifications right inside unreal. Or place your mesh on component (Scene component) then you can rotate THAT component so mesh is aligned properly.