Hi everyone, I’m currently working on a custom VR locomotion system using Mover 2.0 in UE5.7, and I’m looking to open up a discussion on best practices for handling physical player movement (room-scale) within this framework. My current implementation is functional, but I’m struggling with performance and visual polish—specifically when offsetting the user when walking past the wall/obstacles. I’ve been using a “rubberband” logic to snap the player back to the offset. It is working but it causes a noticeable jitter every time the player moves when using thumbstick.
The real challenge lies in integrating physical movement into Mover’s InputProducer, GenerateMove, and SimulationTick flow without breaking the “Mover way” of doing things. When a player physically walks into a wall or obstacle, I want to trigger a “push-back” feeling where the actor stops at the collision while the camera potentially desyncs or offsets.
I suspect the jitter is a conflict between the engine’s VR “Late Update” and Mover’s internal state synchronization. I’m curious if anyone here has successfully treated the HMD’s delta position as a high-priority movement intent within the FMoverInputCmd to let the SimulationTick validate the move before it’s applied. How are you handling the offset when a player walks through a mesh? Are you using a dedicated movement layer for physical movements, or is there a better way to decouple the render state from the kinematic state to eliminate that frame stuttering?
I’d love to hear how others are structuring their VR-specific Mover components.
1 Like
I finally found a fix for the VR camera jitter I was experiencing. Interestingly, parenting the VROrigin/Camera to the SkeletalMesh component instead of the Root/Capsule makes the movement perfectly smooth. I was trying many things possible and decided to just follow the MoverExamples plugin structure.
It is quite weird, and it feels so redundant to have that SkeletalMesh.Does anyone know the specific underlying mechanism in the SkeletalMesh component that provides this smoothing? Tried to change with empty SceneComponent and set to the same TickGroup does not help.
Hello
I had also experience this issue. I spent hours trying to sync up the camera update to the simulation ticks (mover simulation, not the world) and I couldn’t find any valid event/delegate to sync up to. However I did find 2 solutions, one of which you already pointed out (Just attach to the skeletal component).
The second solution is to just put a lag on the spring arm. Any delay works and it allows for your camera component to be attach anywhere.
The feeling on relieve and anger once I found the fix was just a single config variable.
Ah nice to know there is another workaround (and we were in the same boat). Still not really sure why the smoothing works that way.
At this point I am really happy to report that we can successfully leverage Unreal’s new Mover system for VR locomotion without having to heavily re-engineer the base library! It fits remarkably well with minimal friction.
If anyone in the community is looking into this or struggling to move away from CMC for VR, let me know. I’m thinking about putting together a step-by-step tutorial to show exactly how we set it up if there’s enough interest!
1 Like
@AndrewHeartnet I’ve been following along and I’d be interested