PSVR headset and Move controller tracking diverges

I have a game running on the PS4 with the camera moving correctly with the headset and the Move controllers working via the Motion Controller component.

All seems roughly correct, but if I step left and right with the Move controller held in a fixed position relative to the headset, they diverge as I move from the tracking space origin (which appears to be 1.5m in front of the camera).

It seems like the Move controllers move around 1.2m for every 1m the headset moves.

Repro:

  • Implement basic VR scene
  • Parent an object to the Motion Controller component
  • Hold the controller to your chin and observe where the parented object is in your view
  • Move as far left and right as the tracking allows
  • Observe the drift

Further investigation suggests that what’s actually happened is that the controller tracking space is offset from the HMD tracking space rather than scaled.

Offsetting the controller by -17,0,180 in pawn-space seems to put it in the right place.

What would be really good would be to have a demo project with the minimal VR setup for each platform so we know how it’s intended to work:

  • Movable pawn with tracked headset and controllers in its local space

  • Component representing true headset transform that objects can be parented to

  • Calibration to reset position and yaw

At the moment I kind of have that but it looks way more complicated than it should be.

Agreed. A simple template would be fantastic. It would also be great if it showed the tracking area bounds, and faded them in when you got close to them. A VR UMG motion controller based menu example would be a bonus.