Search Unity

  1. Tune in to get all the latest Unity news live from Berlin on June 19, 6pm CEST. Set up a YouTube reminder!
    Dismiss Notice
  2. Unity 2018.1 has arrived! Read about it here
    Dismiss Notice
  3. Scriptable Render Pipeline improvements, Texture Mipmap Streaming, and more! Check out what we have in store for you in the 2018.2 Beta.
    Dismiss Notice
  4. Improve your Unity skills with a certified instructor in a private, interactive classroom. Learn more.
    Dismiss Notice
  5. ARCore is out of developer preview! Read about it here.
    Dismiss Notice
  6. Magic Leap’s Lumin SDK Technical Preview for Unity lets you get started creating content for Magic Leap One™. Find more information on our blog!
    Dismiss Notice
  7. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

HumanPose round-trip issue

Discussion in 'Animation' started by ABouenard, Jun 11, 2018.

  1. ABouenard

    ABouenard

    Joined:
    Nov 10, 2017
    Posts:
    11
    Hi all,

    I am testing the "HumanPoseHandler", and trying to assess that it is working properly when doing the round-trip ("GetHumanPose", "SetHumanPose") on two instances of the same character.

    Unfortunately, it often leads to weird character poses, as shown in the screenshot below: left character is the "source" on which "GetHumanPose" is called, right character is the "target" on which "SetHumanPose" is called.

    Is there anything to do to make it exactly replicate the same pose?

    Thanks
     

    Attached Files:

  2. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,727
    Looks like the forearm bone is rotated 45 degrees to the (local) left.
    Is there anything 'different about that humanpose.muscle compared to the left forearm?
     
  3. ABouenard

    ABouenard

    Joined:
    Nov 10, 2017
    Posts:
    11
    Yep, values are different, and muscle value from the "target" character shows a sudden shift, makes me remind sort of a gimbal.

    But I am just calling "GetHumanPose" on the left character, and then "SetHumanPose" on the right character, not doing anything else.
     
  4. Mecanim-Dev

    Mecanim-Dev

    Unity Technologies

    Joined:
    Nov 26, 2012
    Posts:
    1,546
    Hi,

    I suspect either an issue with your T-pose or the imported motion have some import warning.

    If you can please submit a bug report with your rig and motion and we will investigate what is going on.
     
  5. ABouenard

    ABouenard

    Joined:
    Nov 10, 2017
    Posts:
    11
    Well, as shown below by the screenshots, it happens also with the official "U_Character" released with "Mecanim Example Scenes" package.

    But on the contrary to what I said in my last post, muscles seem to be the same for the two poses, while the character on the right-hand still shows the problem.

    I also joined to this post a CSV for comparing the two series of muscles.

    Any idea ?
    Thanks !
     

    Attached Files:

  6. ABouenard

    ABouenard

    Joined:
    Nov 10, 2017
    Posts:
    11
    Here is a quick video showing the issue, if it can helps.

     
  7. Mecanim-Dev

    Mecanim-Dev

    Unity Technologies

    Joined:
    Nov 26, 2012
    Posts:
    1,546
    Hi,

    well yes in this case this is expected because the retargeter try to preserve the natural alignement of the bone which is not possible in this configuration.

    Like I said in my previous post thoses kind of issue are either related to a bad T-pose or an imported motion that goes out of the valid human motion range. The retargeter should tolerate a small amount of out of range motion but if like this the elbow is bend completly in reverse it will fail for sure.

    If your source motion come from a mocap session with a human and mecanim can't handle it we would like to investigate why, if so could you please submit a bug report with your original motion?

    For the HumanPoseHandler, GetHumanPose/SetHumanPose do use the retargeter, so for all poses that respect the range of motion it should yield a pose that "match" the orignal one.
     
    theANMATOR2b likes this.
  8. ABouenard

    ABouenard

    Joined:
    Nov 10, 2017
    Posts:
    11
    Hi,

    Thanks for your answer! So from what I understand, HumanPoseHandler (and the retargeter under the hood) is somewhat optimized for covering the range of human motion.

    But what if I need to create/replicate a motion that contains cartoon effects, i.e. motion that is mostly by definition not a realistic human motion? Is there any alternative, without going back to legacy?

    Thanks!
     
  9. Mecanim-Dev

    Mecanim-Dev

    Unity Technologies

    Joined:
    Nov 26, 2012
    Posts:
    1,546
    yes sure import your file as a generic rig, with a generic rig you can do what you want in your motion.

    But Generic rig doesn't support retargeting
     
  10. ABouenard

    ABouenard

    Joined:
    Nov 10, 2017
    Posts:
    11
    Thanks!

    Just out of curiosity, do you think it is reasonable to bet on future iterations for the retargeter so that it supports non-realistic human poses?
     
  11. Mecanim-Dev

    Mecanim-Dev

    Unity Technologies

    Joined:
    Nov 26, 2012
    Posts:
    1,546
    I would not wait for this, there is absolutely no guarantee that we will support non realistic human poses in the future.