Hello!
I’m migrating some projects from UE4 to UE5, and noticed that the MotionControllerComponent of the VR Pawn now has a different coordinate system.
In UE4, the controller’s x-axis pointed forward (down the extended index finger) and the z-axis pointed upward (along the extended thumb).
In UE5, the x-axis now points upwards / along the thumb, and the z-axis points in the opposite direction of the extended index finger.
Why might this happen? I could not find any documentation that the Motion Controller Component was changed.
This is dependent on the VR plugin used, the component just uses whatever pose is supplied by the motion source. The big change with UE5 is that the OpenXR plugin is enabled instead of the proprietary plugins by default. OpenXR supplies two standardized poses for each controller, grip and aim, which don’t match up with the poses from the proprietary APIs.
However, in UE5 it doesn’t seem possible to switch back to OculusVR plug-in only.
When trying to disable the the OpenXR plug-in, it will warn you:
“This plugin is required by OculusVR. Would you like to disable it as well?”
And as long as both plug-ins are active, the OpenXR coordinate system is used.
SteamVR plug-in alone can be selected, but the coordinate system is very similar to OpenXR (with a slight -Y rotation if I’m not mistaken).
Since both OculusVR and SteamVR are deprecated now anyway, switching to OpenXR seems to be the rational choice.