How to get VR motioncontroller mesh to line up with the position of the controller in real life?

I added a mesh that represents my specific motion controller – in my case the vive controller mesh, which I found here (/Script/Engine.StaticMesh’/Engine/VREditor/Devices/Vive/VivePreControllerMesh.VivePreControllerMesh’) – and chucked it under the motion controller component, but it appears that the pivot point of that mesh isn’t in the correct place.

The motion controller transform appears to correspond with openXR’s gripXF, which would correspond with somewhere along the main handle of the wand, whereas the pivot point for the mesh is up near the end of the wand, so that the motion controller is offset quite a distance away from where the real life one is.

I assume there’s a ‘correct’ way to have this snap to the correct position? I can’t find a pivot point corresponding to gripXF in the mesh. I could nudge it into place manually (adjusting relative transform values until it looks ‘about right’) but that seems gross.

Those models were developed for the proprietary SDKs. With OpenXR, the transforms changed slightly. You can use the vive controller mesh in Engine/Plugins/OpenXR Content/Devices/HTCVive and it’ll match w. the OpenXR Grip Pose for the Vive Controller.

2 Likes

Aha, thanks!

Works great.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.