Search Unity

  1. Unity 2020.1 has been released.
    Dismiss Notice
  2. We are looking for feedback on the experimental Unity Safe Mode which is aiming to help you resolve compilation errors faster during project startup.
    Dismiss Notice
  3. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

Using humanoid rigs in 2020

Discussion in 'Animation Previews' started by SpiccyMayonnaise, Jul 2, 2020.

  1. SpiccyMayonnaise

    SpiccyMayonnaise

    Joined:
    May 10, 2018
    Posts:
    22
    Is it just me, or are humanoid rigs being somewhat discouraged through these new animation features. Using humanoid rigs alongside animation rigging has become very problematic with obscure inherent problems that prevent me from easily creating and editing animations for my characters.

    Are the benefits of using a humanoid rig still relevant, or should I start using generic rigs for my characters?
     
  2. elZach

    elZach

    Joined:
    Apr 23, 2017
    Posts:
    25
    Correct me if I'm wrong, but the big benefit of humanoid rigs is retargeting, right? So you can fit animations from one character to a slightly differnt character. Essential for things like asset-store packages, great for games without a lot of custom animation per character.

    So I think, if you're dependent on retargeting I don't think there's another solution but struggling through. If it's for a maincharacter or highly customized scene you won't lose out on much switching to generic for better support from the new packages.

    It's mildly annoying that the new packages don't support the previous solutions - but that's to be said about close to every feature being developed since 2019.

    There might be better humanoid rigging support in the future, or they might come up with a new retargeting solution -> but something along the line will eventually be fully supported.
     
    Last edited: Jul 7, 2020
  3. joshcamas

    joshcamas

    Joined:
    Jun 16, 2017
    Posts:
    1,041
    Yeah it's very odd that retargetting isn't a feature implemented into the new animation system - the new way of doing things (component + modular based) is REALLY nice, and gets rid of a huge number of restrictions that the old way of doing it. (Aka humanoid features only working on humanoids). I just really hope they add retargetting to the new system soon!
     
  4. thelebaron

    thelebaron

    Joined:
    Jun 2, 2013
    Posts:
    505
    I'd also like to hear a little more officially what the future of humanoid rigs holds, especially in regards to dots animation(a user mentioned humanoid rigs weren't supported but I'd like an official stance on what the roadmap holds).
     
    SpiccyMayonnaise likes this.
  5. simonbz

    simonbz

    Unity Technologies

    Joined:
    Sep 28, 2015
    Posts:
    158
    Hi,

    A lot of effort has been put to make humanoid work in Animation C# Jobs (which is the core API used by the Animation Rigging package). Humanoid brings in very specialized retargeting to human characters in Unity. It's been designed to cover animation and a finite set of post-processing constraints that do not blend well in a generic animation pipeline. Therefore, while we do our best to support humanoid animation in the Animation Rigging package, it comes with certain gotchas:
    • Humanoid is not an authoring format. You cannot expect to keyframe a humanoid character as you cannot write human curves directly and since the default human pose is the resting pose, it makes for a very unintuitive workflow.

    • All Animation Rigging constraints read and write to transforms. Therefore, to work with humanoid, we need to convert the animated pose from human space to generic space before we evaluate a constraint, then write back to human space. This is a costly operation but aims to make workflow with humanoid character as seamless as possible.

      Now, if you wanted to write your own custom constraints, you could make use of the human stream in job to read and write directly to human constraints:
      https://docs.unity3d.com/ScriptReference/Animations.AnimationHumanStream.html

    • As said before, humanoid comes with its own set of core constraints that are evaluated after Animation Rigging. This is not something you can mix and match. If you intend to use FootIK for example, you shouldn't put other constraints on your feet.

    @SpiccyMayonnaise
    Otherwise, as you've already mentionned, you've found bugs in humanoid when used in Animation Rigging. As always, the best way for us to track this is to report bugs through the Unity Bug Reporter. I have a fix incoming for the following issue
    https://issuetracker.unity3d.com/is...x-constraint-moving-the-animators-parent-node
    that I believe you reported before. Be sure to poke us back with the bug number when you log something. This way we can find it in the database and sort it out!

    Now, as for the future of humanoid, while there is ongoing work on retargeting in DOTS.Animation, this will not be an exact replica of humanoid. The team is working on a more generic remapping system, but this is fast evolving and definitely not set in stone right now.

    And before people ask, no, I can't share an ETA on this.
     
    elZach, joshcamas and thelebaron like this.
unityunity