Custom VR headset tracking support

Hello,

I am trying to use a custom (research) motion capture rig to provide live head pose for XR. Right now it seems that Unreal supports a finite set of VR hardware through UCameraComponent. You simply add one to a pawn and plug in your supported VR device.

I couldn’t find much resources on ways to implement custom head/hand tracking. I know that companies like XSense Vicon all have their own plugins. Basically I’m trying to figure out how to write one of those plugins for my rig to interface with Unreal’s XR stack.

Any pointers are appriciated!

How to implement it depends on if you are looking to use the pose with an existing HMD system or not.

The Unreal XR stack will only initialize a single XR tracking system plugin at at startup. If you are using it on top of an existing system like OpenXR or SteamVR, only that plugin will be active. You will either need to modify the existing plugin to use your poses, write a plugin that doesn’t use the XR stack and manually use the poses from that, or modify the poses from outside of unreal.

If the HMD used supports OpenXR, the third option can be done with an OpenXR API layer that replaces the poses with your own. It is fairly complicated to set up, but the advantage is that you can use with other applications as well.