How to use Vive Trackers in UE 5.2 and later versions

Is there a problem with it when -xrtrackingonly is not enabled? That option is designed to turn off the VR rendering when you want tracked devices in non-VR applications.

1 Like

How can I have hmd and tracking devices both enabled. As I need to do positioning of the objects using vive tracker and have to use hmd for rendering at same time.

It should just work by default. Make sure you are wearing the HMD and that the SteamVR dashboard is closed, so that the application has input focus.

Am I supposed to use Live Link ? Or is there anyother way to get positions from tracker ? Becase if I do not add -xrtrackingonly it does not see vive tracker at all.

1 Like

You shouldn’t need LiveLink for regular VR applications. Us Motion Controller components with the Motion Sources set to the tracker roles instead, like in the tutorial linked above.

Got it, Thanks I will give it a try.

Hi,
I know it is off the topic but do you know how I can get position and orientation from motion controller. I am just unable to find relevant information for UE 5.3

The easiest way is to read the pose of the motion controller component.

Could you pllease provide any reference or link to the website with useful information ?
(Update): I got it working using VRPawn blueprint. But do you know how can I access this motion controller outside VRPawn ?

I haven’t seen anywhere with any useful information about it. I think the best option in general is to add an accessor function to the VRPawn, and get a reference to the player where you want to use the data.

1 Like

Are you able to use the Vive Trackers in UE 5.3 without LiveLink? I am still struggling to get it to work. How exactly did you do it?

Hi,
You don’t need livelink to use tracker. Follow the tutorial mentioned above and it will work.

Hello Rectus,

Do you know how to fix this warning (“LogHMD: Warning: GetControllerOrientationAndPositionForTime called with motion source Waist which is unknown. Cannot get pose.”). I have set motion source of my tracker to waist in Unreal and also the same in Steam VR. But it still gives me this warning and in gameplay my tracker is rotated 90 degress in X.

Hmm, not sure. The message suggests that the motion source doesn’t exist, which might mean that the Vive tracker plugin hasn’t loaded in properly. Could be that there is a race condition somewhere, and it hasn’t added the motion sources in.

1 Like

Hello, I was wondering if anyone knew how to recognize a button click from a Vive Tracker 3.0 in Unreal 5.3? I am able to use it as a Motion Controller Motion Source fairly easily. In 4.27, using SteamVR you could manage the button bindings and it would be recognized as a Vive Controller Trigger Click. UE 5.3 uses the new Enhanced Input, and it doesn’t seem to recognize the tracker as a vive controller. Any advice here? Is it recognized as a different Input, or how to get it to recognize them as an input? I’m trying to recognize either the main power button press or a pogo pin, either one.

Ok, Figured this out for those future googlers.

This is my use case - it may be different if you have different needs:

VR - not using controllers, but rather 2 Vive 3.0 Trackers to track an objects location and register inputs from either the “Power” button on the Vive Tracker or the POGO pin Trigger pin.

Using UE 5.3.2
Clean project using the VR template.
Enable the following plugins if not already enabled. (OpenXR, OpenXRViveTracker, Enhanced Input) - any other generic plugins that were already enabled should be fine.
Create a new Pawn.
Add a MotionControllerComponent to the Pawn’s Default Scene Root.
Add an XRDeviceVisualization Component as a child to the MotionControllerComponent.

In SteamVR, you need to assign a role to your trackers, and match this to your MotionController Component’s Motion Source in the Details Panel.

Next you’ll need to create your Input Action, I created one called “IA_TrackerButton”

Add that Input Action to your Input mapping context (I just added to default IMC_Default). Vive Tracker button presses seem to be recognized as regular Vive Controllers. I am using the Vive (R) Trigger as the input button.

In your Pawn blueprint add the Enhanced Input Event you want to trigger, (show in the first photo just as a print string.)

Back in Steam VR Settings, Under Controllers chose the option to manage controller bindings, I did not choose an application but chose Custom, then Edit This Binding.

That should bring up a Steam Controller binding page (Similar to the web interface used in 4.27 for controller mapping and binding). The first time it defaulted to the index controllers I’m using, so In the top left, choose the back button until you get to the main screen where you can choose the controller you want to edit and bind. Where it says current controller, choosing the text in the green box (this may differ for you based on your selected binding) will show you all the controllers/trackers you have attached to your system and their role.



Choose the one you wish to use and make sure its the right role. In my case I’m using the tracker I’ve assigned to the role “Right Foot” even though the application has nothing to do with feet.
*** I’ve noticed UE doesn’t want to recognize the tracker if it’s role is set to Held in Hand***

Once you have your tracker selected, this should reload the previous page and show you what binding profile you have, my photo above shows “Saved UTS53 configuration for Vive Tracker on Right Foot”. Choose Edit right next to that, and it will open the current bindings for that tracker or controller. Click the plus button next to the button you’d like to use, and select the type of button you’d like to be. I chose “Button”. It should default to the action of “Click”, and show “None” as the current assignment.

Click “None” and it will display a list of the current possible Inputs you have available in your project. In my example, I created the Input Event “IA_TrackerButton” as a boolean action so its shows as this. I select that as by action and choose, Save Personal Binding.

Now in my VR project, with everything setup when I press the power button on top of the tracker, I get my print string.

Hope this helps someone.

1 Like

As a follow up to this, I’m finding that only certain roles will accept pogo pin inputs, for instance, Right Foot, while it will track, it doesn’t seem to like having controller bindings associated with it. Assigning the tracker the role of Camera, will see the pogo pin inputs.

Is it time to REpreceate SteamVR Plugin? would be nice to get everything working again

4 Likes

Yes! They need to bring back Steam VR plugin. The Open XR plugin is just incredibly unreliable when trying to use Vive trackers. They randomly show up sometimes and often don’t - even if you use all the known workarounds (launching the engine with -xrtrackingonly, changing roles in Steam vr, restarting Steam vr and unreal).

This issue wastes so much of our time. I really am sick of fighting Unreal to recognize the trackers. Restarting and problem solving takes a long time.

And changing role names screws up blueprints which makes it even worse.

I am using 11+ trackers, so these issues make that a nightmare.

I made this short video showing how unreliable it currently is with UE5.4 and the OPEN XR VIVE TRACKER plugin:

Have anyone tried this?