Animation Problem When upgrading to Unity3d 4.5

Hi,
Animation was working perfectly in Unity3d 4.0.1 version but when I upgraded to 4.5 it first displayed a warning in console:

MuscleClip 'krishna110@run' conversion warning: 'Root/Hip' is between humanoid transforms and has rotation animation. This might lower retargeting quality.

and the behavior was completely changed. The bone config for the Humanoid is as shown below:

I am not sure whether the problem is related to the naming structure of the bone or something else?

Any suggestion on how to resolve this issue will be helpful :)

Your animation will still work, we are only warning you that you have a transform between two humanoid transform that does have some rotation animation, in this case it probably Hip transform.

You should expect to have some difference between the original motion and the retargeted motion that unity created.

If you want to resolve this warning you have to remove all the animation on transform that are between two humanoid transform.

One thing you can do is import twice the same file, one set as generic rig and the other one as humanoid rig and then compare both result by adding both asset in a empty scene and press play. If both object are aligned you will see some minor difference, if you can live with these minor difference you can safely ignore this warning

1 Like

Thank for your reply. But can you clarify what exactly it means "Root/Hip is between humanoid transform " and as you have mentioned "a transform between two humanoid transform"

As you can see in the bone configuration that -> Hip is the child of Root and there is no much extra transform. What exactly it is indicating to when it mentions "Between"?

It will be very helpful if it can be clarified.

I would suggest you to read this blog
http://blogs.unity3d.com/2014/05/26/mecanim-humanoids/

It will give you a good overview how Mecanim work, more specifically the part where we talk about the rig and in between bone

[quote]
Skeleton rig requirements
In-between bones
In many case, skeleton rigs will have more bones than the ones defined by the Humanoid Rig. In-between bones are bones that are between humanoid defined bones. For example, a 3rd spine bone in a 3DSMAX Biped will be treated as an in-between bone. Those are supported by Humanoid Rig, but keep in mind that in-between bones won’t get animated. They will stay at their default position and orientation relative to their parent defined in the Humanoid Rig.
[/quote]

So back to your issue, it does mean that the transform with path 'Root/Hip' does have a rotation curve, and because this bone is not mapped to a human bone, the final pose retargeted by mecanim may not match perfectly the original pose.

If you are happy with the look of the animation clip you can ignore this warning, if you find that the clip doesn't match enough the original clip then you have to go back to your authoring tool and fix the animation.

Best regards,
Sonny

1 Like

Sorry if I'm hijacking the post but it looks like the OP has been resolved and I just wanted to clarify the warning/error message.

So this warning can be ignored.
I'm happy with the results of my animation. I don't see any difference at all with the animation.
If both object are aligned you will see some minor difference, if you can live with these minor difference you can safely ignore this warning

If you want to resolve this warning you have to remove all the animation on transform that are between two humanoid transform.
Is there a way to resolve the warning in Unity so it doesn't appear again on the same rig/avatar? Something that is more simple within Unity, than going back into the original source animation file, outside of Unity and deleting random translation keys that are placed on bones.

I don't even understand why I'm getting this error actually. I would expect this error if I was animating using FK translations and moving a child bone away from it's parent bone OR scaling a bone which mecanim does not currently support. But I've only animated using rotation keys and IK translations.
By only keying a character using rotation and IK translations this warning message seems to be detecting something that isn't actually happening.

Thanks for any clarification

Sorry to revive this topic after such a long time.
I'm trying to get humanoid rig to work with facial animation (generic works fine), but when I apply the animation and set up the rig to humanoid, some bones lose their animation completely (in this example the eyebrows are working, but the jaw does not.). I've turned everything I couls in the mask section. I get that message that the bone is inbetween humanoid transform, but I lose the animation completely on that bone. I could survive some slight errors, but this is weirs.


This is documented - have you checked in the documentation about humanoid rig, or - might have been in the blog post about the humanoid rig.

Which bone is it that is between humanoid transforms?

It's the bone that moves the Jaw. I animated it using rotation. Is it possible that it ignores rotation only?

3161380--240509--Error.JPG

Some package can add translation key like Biped in 3ds max, depending on how you setup your rig in max you can end up with translation key even if you only did rotation and ik translation.


For humanoid rig in between bone must be rigid, because their animation are discarded since we don't know how to map this unknow bone on another human rig

2 Likes