Twisted Elbow - Mecanim Humanoid Issue

Hey Guys.

I have Bow Animation collection.
And one of my good customers pointed me on strange issue, I didn’t pay attention before.

Please take a look on attached picture.
You can see same “aim bow” animation running on both archers.
Closer one have humanoid rig setup and his elbow distracted.
Second one have Generic Rig setup and his elbow looks O.K. just like in my original 3D MAX file.

Please help me understand and solve the problem.
Thanks!

Thats weird. What is the quality setting under the skinned mesh renderer? This controls the number of bones that can effect each vertex.
Can be set independently under skinned mesh render or at the build quality level.

I guess it could also be based on the muscle definitions in humanoid setup - however since that usually “just works” correctly, dont know what adjustments could fix that issue.

Thank you. but I don’t think this is the problem. Project has 4 influence bones limit.
These two archers are copies of same FBX.
The difference only in rig modes.

Yeah - I assumed the only difference is the rig mode - that is why I prefaced with - That is Weird. :slight_smile:
Does enforcing T pose under the rig tab on humanoid provide any noticable / positive difference?

No enforced T pose just O.K.
The issue became visible only in bow aiming position when elbow bended
hard. In all different positions it looks O.K.

Bump!

Because for now mecanim’s humanoid does not support forearm twist bone, and it twists the the whole forearm bone resulting in your problem.
I don’t have your asset, but I think that you have animated the twist bone, so it looks okay when you use generic rig.

To solve your problem, you need to add twist bones to your humanoid character and rotate it using script, just like what I did.


1 Like

Thank you a lot!

Actually I don’t animate twist bones myself. 3D MAX Character Studio does it automatic, when I add them and skin my character with their help. But of course they have animations keys when backed into FBX.

Unfortunately I am not a programmer.
Is it custom scrip you are using to rotate twist or something built in Mecanim?

A custom script that calculates what the 3D animation software did.

If you know how to rig a character and add twist bones manually and make them to rotate automatically in the 3D animation software, it is not a difficult task to write this script.

1 Like

Character Studio is animation module that give interface to various animation functions. Also he makes many things out of box. Its not like Maya rigs. Just write number of twist bones I want to have and get it with full functionality.

I am only 3D artist, don’t know to write scripts at all.

But I can pass you advise to my customers, Who, I believe have programmers in their team.

Thank you!

I’m in the same boat. One option for future if other customers encounter the same problem is to provide one morph/blend shape to be used when this one animation plays. It’s a work around but one that only needs to be setup once in engine.

I REALLY wish fbx supported built in angle joint morphs from Max. Built right into the skin modifier and they work wonderful and quick. Would solve this issue with a 5 minute edit to the base model when animated like this.

1 Like

using UnityEngine;

public class DyamicParentBone : MonoBehaviour {

public Transform Parent;

// Use this for initialization
void Start()
{
if (Parent != null)
transform.SetParent(Parent.transform);
}
}