Search Unity

Extra Bones Not Animating with Humanoid or Generic Rig - Unity 5

Discussion in 'Animation' started by stevecook09, Apr 22, 2015.

  1. stevecook09

    stevecook09

    Joined:
    Apr 21, 2015
    Posts:
    7
    Hey guys,
    I've been working with UMA Characters for our game in Unity 5, trying to get the extra bones that they provide to animate (mainly facial bones). I've tried creating avatar masks with the transforms for the specific bones checked for Humanoid and then tried Generic Rig, but no animation occurs. I've realized that translation on bones doesn't work with the Humanoid Rig, so I tried with Generic to no avail. Even when I tried testing Rotational animation of the Extra Bones (not an ideal alternative), there was no animation. I also, have a Face Layer that's under the Base Layer as Additive, with no mask. All recognized bones animations work with both rigs, except when I did rotation animation with eye brows, the rotation seemed to be flipped (instead of rotating up then back to origin, they rotated down then back to origin). I understand there used to be a check box to Keep Extra Bones in older versions, but no such box exists in Unity 5.

    So, I'd love to know if there is a way to 1.) Recognize Extra Bones in either Humanoid or Generic Rigs 2.) Use translation animation on any bones with either rigs and 3.) Whether this is a bug in Unity 5 or I'm just missing a step. Also, I'm animating in Maya 2015 > Baking Simulation > Exporting to FBX directly to Unity Project. Please Help! Thanks
     
  2. Mecanim-Dev

    Mecanim-Dev

    Joined:
    Nov 26, 2012
    Posts:
    1,675
    This is only true for Human bone and in between human bone, you can translate a bone only if it doesn't have any descendant that are a human bone.

    There is no need for the check box anymore, we do always keep the whole rig now.

    Both rig support extra bone,

    Generic rig support translation on any transform.
    For Humanoid rig you can translate a bone only if it doesn't have any descendant that are a human transform.
     
    hopeful likes this.
  3. stevecook09

    stevecook09

    Joined:
    Apr 21, 2015
    Posts:
    7
    Thanks for your reply! I just need clarification on terminology.. What qualifies a bone as "Human"? I'm currently using the UMA rig systems that are bipedal, Mecanim compatible humanoid rigs with extra facial bones. Also, by "Descendant" do you mean if the bone is the Child of a Parent bone in the Hierarchy? Thanks
     
  4. Mecanim-Dev

    Mecanim-Dev

    Joined:
    Nov 26, 2012
    Posts:
    1,675
    If you select your avatar and click on Configure, you should see all your human bone mapping.

    So all those transforms are human bone, all the other one in your rig are either in between human bone or not a human bone.

    yes, by example if you have
    Hips -> LeftUpLeg -> LeftKnee
    LeftKnee is a Descendant of LeftUpLeg and Hips.
     
  5. _Elros_

    _Elros_

    Joined:
    Nov 26, 2013
    Posts:
    4
    Hi,

    I have a related issue... I'm using Unity 5.1.0p1 and Motion Builder. I have a model (Aragami) and some animations like Aragami@Kill6 with some animated extra bones. I'm using the avatar from this model (AragamiAvatar) for the animation rig in all the animations.
    I tried to select the extra bones in the import settings (Animations->Mask->Transform), and also I created a mask to do that, but none of this two make it work.

    3 - transforms.jpg 1 - mask.jpg 2 - mask2.jpg

    Then I tried to import a new fbx with the model and the animation together. Using the same AragamiAvatar for the rig and selecting the transforms (or using the mask, both ways work) the extra bones are animated.

    I think the problem could have happened in the export/import pipeline, or maybe is a Unity bug. You can see the difference in the fbx file below.

    4 -mesh.jpg

    Any thoughts on this?

    I really appreciate any help you can provide
     
  6. Noogy

    Noogy

    Joined:
    May 18, 2014
    Posts:
    132
    Hi, sorry for digging up an old thread, but is this still the case in Unity?
    I have no trouble adding additional bones attached to the humanoid skeleton (such as a tail), but have no luck with bones between/as part of the skeleton. For example, I use a separate bone/dummy to allow a shoulder to stretch (left clavicle > stretchy bone > upper left arm).

    Is there any way to include that transform, and if not is there a way to manually transform it in say, LateUpdate or OnAnimatorIK? Thanks.