This post on SO has the exact same issue it appears: unreal engine4 - Using nDisplay with Vive Trackers in UE4 - Stack Overflow
Our setup
We’re working on a VP setup using Unreal Engine in our studio. We have a single machine running an nDisplay instance with the following [input] line:
[input] id="ViveCTRL" type="tracker" addr="openvr/controller/LHR-47314A5B@localhost:3884" loc="X=0.0,Y=0.0,Z=0.0" rot="P=0,Y=0,R=0" front=X right=Y up=Z
Our tracker is an HTV Vive Controller with 4 base stations. We have a VRPN server running, with version 7.33 and the tracker device is being correctly tracked as tested with vrpn_print_devices.exe
.
We retrieve the position/orientation data from unreal as follows (with binding set in BeginPlay on same name/channel on “special 1”:
The problem
The moment we retrieve the tracking data in UE from VRPN (unmodified) we get wildly inconsistent results. It’s usually along the lines of 2 axes being combined e.g. moving left-right results in the X and Y values being updated as one. Weirdly enough however, it seemed to work a day before so there was a time it once worked but every test we now run doesn’t give us the results we’re looking for.
Notes
- We got the VRPN version and binary from this resource: E2: Setup - Virtual Production Toolkit V1 - nDisplay/Vive - YouTube
- It looks like the Y/Z axis seem to duplicate the X-axis. Whenever we update our [input] axis “front=Y”, right=“Y”, up=“Y” to one single axis it seems the output X axis always returns the correct value. As if the Y/Z axes aren’t properly transmitted.
- We haven’t been able to see how we can change the VRPN config for vive trackers; no documentations specifies which module to use for this approach.
We found this issue on stackoverflow which exactly describes our problem. The suggested answer could be relevant info here as well.