Vicon Tracker 2.2 integration with Unity 3D
Hi everyone, i'm trying to integrate within Unity 3D the Vicon motion capture system through ViconDataStream sdk. Actually I run into attachment problems related to orientation of Vicon trackers when being read by Unity: when I press play, Unity recognizes data stream from Vicon and shows the movement of the selected body segment, but it moves accordingly to a system of reference which I am not able to understand. In fact, when I am moving forward, in Unity goes straight down or when i'm going right, it shows as I would be moving completely opposite or without any sense. Any suggestion or working set up? Thanks to all
Answer by mikewarren · Feb 11, 2020 at 12:21 PM
I've not specifically integrated a Vicon tracking system with Unity, but I have integrated a couple others. My guess is that the Vicon coordinate system and the Unity coordinate system are not the same, so you're going to have to transform the Vicon data into the Unity system.
For instance, we know that the Unity coordinate reference is X (right), Y (up), and Z (forward). Note, that the coordinate system is left handed. Let's say that the tracker coordinate system is X (forward), Y (right), Z (down). [Note: system is right handed, and is common] You'll need to modify the position coordinate so that...
x' = y
y' = -z
z' = x
And, assuming your getting Euler angles, rx, ry, and rz...
rx' = -ry
ry' = rz
rz' = -rx
Does that make sense?
FWIW, there's a Vicon plugin for Unity here. Don't know if it's compatible with your version, but I'd certainly download it and check it out.
Just took a quick look at the Vicon documentation, and it allows you to set the volume position and orientation with an L frame (common method).
Answer by unity_2qEYo_LYOfShGQ · Feb 12, 2020 at 08:12 AM
You mean by changing orientation of markers inside Vicon software? or to implement a script to change orientation? Thanks again for your support