Summary
In UE 5.8, perspective viewport camera rotation (RMB free-look) is non-linear/jerky on
some systems: with the new gizmos enabled, the look speed appears to oscillate (~half
speed for ~0.25s, then ~double speed) instead of being smooth. Enabling Legacy Gizmos
works around it, but that disables the new gizmos. Smooth in 5.7 on the same hardware.
What Type of Bug are you experiencing?
Editor
Steps to Reproduce
- Clean UE 5.8 install, new C++/Blueprint project, default perspective viewport.
- Make sure the new (non-legacy) transform gizmos are active.
- Hold RMB and move the mouse to look around (“turn the head”) in the viewport.
- Notice the rotation speed is non-linear: small movements feel very fast, and slight
acceleration produces disproportionate over-acceleration. - Editor Preferences → enable Legacy Gizmos → the rotation becomes smooth again.
Expected Result
Linear, smooth camera rotation (as in 5.7), independent of the gizmo system.
Observed Result
Unstable/non-linear rotation speed when the new gizmos are active.
Affects Versions
5.8
Platform(s)
Windows
Additional Notes
Root cause appears to be that 5.8 routes the new ITF viewport camera navigation through
the “unbounded cursor” mouse delta:
- UViewportDragInteraction() calls ClickDragBehavior->SetUsesUnboundedCursor(true)
(ViewportDragInteraction.cpp). - UnboundedMouseDelta2D is computed in
UModeManagerInteractiveToolsContext::CapturedMouseMove() (EdModeInteractiveToolsContext.cpp,
the “Unbound cursor” block) as a raw difference of FViewport::GetUnboundedMousePos()
between captured-move events, rather than the engine’s processed high-precision-capture
delta. During captured free-look (cursor hidden + re-centered) this raw delta is
mis-sampled, producing the non-linear feel.
Suggested fix: feed the processed capture delta into the camera interactions instead of
the raw unbounded delta (or do not enable unbounded cursor for the camera-navigation
drag interactions specifically).
A community editor-plugin workaround that keeps the new gizmos:
Related forum thread: