Live Link Tracking Data from VR Devices

In Unreal 5.2 we changed the way the LiveLinkXR plugin receives its tracking data from VR hardware by switching to OpenXR as the VR runtime provider. This course was taken as part of a wider effort to narrow the codebase required for supporting VR across Unreal Engine.

Since then, and in subsequent releases we’ve received feedback that the User Experience for LiveLinkXR had regressed.

Parallel to this, we have been developing the Live Link Hub application - its intended purpose, to make animation streaming easier, more configurable and also to work with UEFN.

In UE 5.5 we have chosen to make a new Plugin that will improve the user experience for users of LiveLinkXR.

This new plugin is called “LiveLinkOpenVR”.

On the surface the interface is exactly the same as LiveLinkXR. The main difference is it only works with the SteamVR runtime.

It supports VR tracking in multiple applications at the same time - meaning you can use, for example, Live Link Hub for tracking and still render to your headset with UE. This has great potential for digital puppetry workflows and indie mocap. LiveLinkOpenVR works with Live Link Hub, so you can now stream VR tracking into UEFN too.

We will continue working towards providing the same functionality with OpenXR, which will make it possible to use any OpenXR runtime for Live Link and Live Link Hub.

4 Likes

Why it’s called LiveLinkOpenVR? Is it based on OpenVR? (I assume, as it’s for SteamVR only)

Yes, that is correct. It’s for SteamVR only.

With the LiveLinkOpenVR plugin, you can add the LiveLinkOpenVR Input as a subject. How can I actually get the controller input data? It looks like I specifically want the live link input device frame data, as its an available struct node in the Blueprint editor, but I’m having trouble finding some sort of event to read to actually get the input data when it’s recieved.

I appreciate any help you could provide!

Found how to use it here:


Hi!
I’m trying to add the livelinkopenvr source and I keep getting a lot of errors. What should I do?

We’re getting the exact same issue. Anyone know if there’s a way to fix this?

Hello friend, I’m also facing this problem now. Could you please tell me how you solved it at that time?

I tested this again recently with Steam VR version 2.12.24 and Unreal 5.6.1 and could not replicate the issue cited above. Using the Steam Link app from my Quest 3 I was able to get controller and HMD data into Live Link as expected.

Presumably there was a regression in a previous version of Steam VR that has now been fixed.

I tried this with version 2.12.14 and then upgraded to the beta channel 2.13.4. UE 5.6.1

I’m still getting the above error spam as well as soon as the LiveLinkPreset is applied:

[2025.09.22-14.05.50:888][916]Live Link: Applied ‘LiveLinkPreset /Game/NewLiveLinkPreset.NewLiveLinkPreset’

[2025.09.22-14.05.57:313][918]LogLiveLinkOpenVR: Error: IVRInput::Get*ActionData for ‘LeftAnalog_2D’ failed with result 13

[2025.09.22-14.05.57:313][918]LogLiveLinkOpenVR: Error: IVRInput::Get*ActionData for ‘RightAnalog_2D’ failed with result 13

[2025.09.22-14.05.57:314][918]LogLiveLinkOpenVR: Error: IVRInput::Get*ActionData for ‘SpecialLeft_2D’ failed with result 13

Tested a Controller connected to a Bluetooth Dongle without a Headset, tested a Controller with an Index, still always the same issue. Not quite sure what I’m doing wrong.

Are there any other settings I’m missing? I even tried a very old OpenVR Inspector, and it shows the buttons received correctly. Tracking data is also correctly received.

EDIT:
After some experimenting I somehow got the frame data to show up in the livelink hub now. I have no idea what changed, but will see if I can get it to work with a nulldriver now.

EDIT2:
Okay, this is reeeeeaaally instable: At first, the null driver was not working whatsoever, even though it showed the input being triggered in the SteamVR Controller Settings. What did work in the end was starting SteamVR with my controller being on, then starting livelinkhub and adding the subject. Suddenly I had input, will investigate this a bit further, but it’s a bit sketchy…

@Rich_Graham I investigated this a bit further, and at least on my PC the following happens:
If I have SteamVR running first with an active controller, then add the livelink source, I receive no input.

If I, however, start the livelink source first, then start SteamVR, I get input information. I’ve recorded a video that shows this:


I have no clue how and why that happens, and if it is just on my end… The same occurs when using an actual headset connected.