Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Retargeting a human pose from motion tracking data that includes joint positions

Discussion in 'Animation' started by H4ppyTurtle, May 7, 2020.

  1. H4ppyTurtle

    H4ppyTurtle

    Joined:
    Aug 20, 2019
    Posts:
    18
    Hello everyone,

    I am getting humanoid motion tracking data live via UDP as a Matrix4x4. Now I succesfully converted the data to the Unity coordinate system and I am able to play back the data on a humanoid skeleton. My skeleton moves correctly (see on the left) and all joint rotations and positions seem correct. Now I want to retarget my data on an avatar. I do this with the
    HumanPoseHandler.GetHumanPose()
    and
    SetHumanPose()
    . This is where it fails (see on the right), because my tracking data consists of rotations and positions for every joint and not just rotations. If I rotate the joints of my initial skeleton manually the retargeting is working fine.
    Is there a way I can convert my data to only rotations for all the joints? But then how should I combine the rotation of the joint itself with the necessary rotation to move the child joint?

    upload_2020-5-7_16-39-24.png upload_2020-5-7_16-39-58.png

    I am a bit stuck now on this issue, wraping my head around it for a couple of days. Maybe someone has a good idea on my problem, thanks a lot.
     
    Last edited: May 7, 2020
  2. H4ppyTurtle

    H4ppyTurtle

    Joined:
    Aug 20, 2019
    Posts:
    18