Vive Tracker randomlyhas incorrect orientation...

I am having an issue where my Vive Trackers are (not all the time, only sometimes) rotating when I start UE4. Before I press the VR Preview button in Unreal I can see them in my headset in the correct position. However, once I press the VR Preview button to start the Unreal scene, some of the trackers rotate around to face the wrong way…and it is the actual orientation of the tracker, not just the display mesh. Any ideas to prevent this?


We are facing the same issues. I was able to narrow it down substantially, though.
The issue seems to occur, whenever the vive controllers get sent to power-save/turn off when idle…
When you turn them back on, Unreal seems to wrongly handle SOME internal indices…
You will get your controller back as usable controllers, but the tracker will also become some sort of controller (we assign meshes to found controllers and the tracker gets assigned a controller mesh whenever that issue happens as well)
The orientation of a tracker and a controller seem to be different (internally), so the axis orientation are not working anymore…and the forward vector is not what you’d expect it…

The only workaround to fix this, for us for now, is to repair the tracker with the system.

It’s a real issue for us though and it would be great, if someone could tell us more about it/have an in-depth look into the code…

The same issue. Moreover, both GEngine->XRSystem->GetCurrentPose and FSteamVRHMD*->GetVRSystem()->GetDeviceToAbsoluteTrackingPose returns random poses, so definitely is a problem of a system code. Latest Unity3d have not this issue!
I think, system thought my first 2 vive trackers to be controllers. For example, i can run Room Setup and the only vive tracker will be visible like Controller. The 3rd vive tracked make some magic - its rotation will be alt from first two ones. OR!!! The rotation of some of first 2 trackers will be changed, like it became a tracker and lost “controller orientation”… Fix it pleeeease. It actually freezes my development and makes me to use Unity, but I dont wont to work in it in this project!

I’m having the same issue. I ran it all the way back to the two API calls in UpdatePoses() and it just seems like Garbage is being returned. It looks like UE4 is still on OpenVR 1.0.16 while the current head is 1.2.10. Maybe it’s update time.

EDIT - I just upgraded the OpenVR API to 1.2.10 and it still occurs. I’m at a loss at this point.

Same issue here. I’m using two trackers set up and one of the two trackers has the forward axis pointing in the wrong direction. It would be nice to hear from someone at Epic to have some insights on possible solutions.

I think I solved the issue. Using the Enumerate Tracked Devices and specifying different devices types I was able to realise that one of the trackers seems to be recognised as a motion controller. The vive tracker up axis and the controller up axis seem to be different.

All I had to do to get both working as trackers is going to the SteamVR overlay, right-clicking on the tracker icon (any will do) and clicking on Manage Vive Trackers.

A window opens and in there make sure that for each tracker you select a role that isn’t Held in hand, in my case I choose waist for both.

Now with that setup go back to UE4 and try to run the EnumerateTrackedDevices with the DeviceType enum set to Other. You should see the right number of devices (two in my case) and if you use either GetDeviceWorldPose or GetTrackedDevicePositionAndOrientation the trackers should face both in the same direction.

Hopefully, it also works for you.

I tried this and the issue remains, the tracker still rotates on initilization of the scene.

My assumption is that Unreal assumes the tracker is a controller and once the preview starts automatically sets the orientation of the tracker to a vice controller. That is my assumption, could be wrong.

I am still wrestling with this issue with no solution, if anyone has any more suggestions on solutions I would appreciate it.

Hey all, So,… did anyone figure this out?. I’m having the same issue. I have been banging my head against the wall for days. I see lots of post of the same issue, but no one chiming in with solutions. Did you all give up? I know someone has figured it out. I see so many videos of people doing this successfully. not sure what I’am missing here.

I’m trying to setup a virtual production rig, with a Vive Tracker mounted to the top of my camera. I went through just about every post and tutorial on the subject I can find.
I can get the tracker working well in UE4, but the orientation is wrong or maybe not wrong but at the very least doesn’t match up with UE4. the tracker is being read with x-axis pointing up, which has my camera pointing straight up

But I would like the Z axis to point up, but there doesn’t seem to any clear way of changing this. I see in other peoples tutorials that z-axis is pointing up
In depth Tutorial - Virtual Production with Unreal Engine and HTC Vive - YouTube approx 25-26mins in
I’ve tried all the different tracker roles, they all seem to orientate the same way. Ive tried all sorts of different combos of Controller bindings
Ive tried rotating the tracker, adding variable to compensate, i tried rotating a parent with the tracker attached, i’ve tried rotating the camera parented to the tracker. they all fix one thing but broke a bunch of other things.
I have tried using Notch VFX. and is the same issue, X is up.

Could someone in the KNOW, please point me in the right direction! … Im not asking for the recipe to your secret sauce or anything, maybe a clue, a crumb, anything? anyone from Epic or Unreal? or HTC?

It really looks like a dark art that no one wants to share the resolution too.
I too am facing the same situation… Hitting my head against a bed of nails on this one.
I’ve reset the tracker back to default settings… Tried changing the Tracker Puk to different settings. Nothing, the tracker always points up in the X Axis where it should point up in the Z.
The videos of just connecting the Vive tracker to a camera and setting up the simple blueprint all looks great but need an explaination of the befores of how the Tracker is setup before the blueprint or some thing.

Please help…anyone

Couple of advices for Vive Trackers, since I’ve been dealing with them for a long time:

  1. I’m not using GetTrackedDevicePositionAndOrientation, I’m using the MotionController component and set it to Special1 ( look at in Motion Source in the detail panel ), which will correspond to the first Vive Tracker that is turned on. All subsequent trackers will have the same “Special” setup with an incremental number at the end ( second tracker will be Special2, and so on ).

  2. With the introduction of SteamVRInout plugin, I notice that Vive Trackers won’t show up out of the box using the MotionController component, so what I’ve done is to set them using the SteamVR Dashboard, and from there I created a new binding, then assign each of the Vive Tracker a specific function ( Waist tracker is Special1, and so on ). I recently released a demo for my Full Body Mocap solution built using UE4, this video explain how to do the Vive Tracker bindings.

  3. If the Vive Tracker orientation is wrong, you can add a Scene component, and make the MotionController component as a child of, then rotate the Scene component in order to match the real life rotation of the tracker to the virtual rotation in UE4.

  4. SteamVR Room setup is critical, since during the calibration and the tracking of the room boundaries, SteamVR creates a kind of forward vector ( the white arrow you’ll see after you’re done tracking the boundaries ), that will set the orientation of the headset/motion controllers/trackers, so if the real life orientation of the vive tracker doesn’t match the virtual orientation, probably this is the cause.

  5. Be aware of Gimbal lock while using the Trackers. I solved this by using the Quaternion Blueprint library from the marketplace ( 5$ ).

  6. In general you can use the data from the trackers however you want, and using scene components to offset the location and orientation is probably one of the most useful things you’ll use.

  7. Is easier than it seems to get everything working, so keep experimenting and look for Virtual Production tutorials, there are tons around.

Thanks ENTER REALITY… Will give all the choices ago as soon as possible…

emit nekorb, I haven’t found anything on this either. I am using the Vive Trackers without the headset, which I suspect might have something to do with it. But in any case… Here was my solution… First run the Room Setup in SteamVR and make sure the Vive Trackers are on a flat, level surface. Set up a Camera Tracker Blueprint as indicated in the Richard Franzen tutorial that you referenced. Set up the Virtual camera as a separate Actor in your scene, and then attach the Virtual Camera to the Camera Tracker in your World Outliner. This way, it’s not tied to the tracker’s local orientation (other methods have you add a cine camera within the tracker blueprint which i avoided) . Then, in the World Outliner, change the Camera rotation to x = 0, y = 90, z = 180. this worked for my set up. Note: the Vive tracker is mounted on my camera rig with the LED pointed in the direction of the lens. The only thing is that when the game is not launched, your camera will be pointed into the sky, but when you launch, it will point in the correct direction. this makes it hard to frame up a shot offline, but I guess my work-around for this would be to use an additional camera attached to the first camera as a reference, without the rotational correction.

I have the full Vive HTC Eye Pro including the headset and have the same issue with the tracker puck which i bough separately (handheld controllers which come as standard with Eye Pro don’t exhibit the problem).

Tweaking SteamVR > settings > controllers > manage Vive trackers > tracker role has no effect.

That works, but it’s exactly the fact that the camera points in different directions in and out of PIE is what makes this thing super annoying!!

Is it even possible to do it with the camera inside the Camera Tracker Blueprint? I don’t think composure works if you do that, does it?