Not a bug

Finger Bone Animation not working as expected

Dimitur Kolev 2 years ago updated by Peter - Soxware Developer 2 years ago 5

Hey, im trying to make a pose for my character holding a pistol.
Everything works fine except when I export the animation the thumb's rotation is all messed up.

This is how it should look like ->

Image 1296


But instead it looks like this 

Image 1297

UMotion Version:
Unity Version:

Answer

Answer
Not a bug

Hi,
thank you very much for your support request.

The short answer: In your scenario you should be using generic, not humanoid. Humanoid is only the right choice if you don't care about fine details being wrong (like some bones being slightly off). For your FPS scenarios, you should be using generic as small details (like the thumb rotation) are very prominent to the player.

Unity's generic animation system plays an animation 1:1 as authored by the artist. Unity's Humanoid animation system on the other hand performs so called "animation re-targeting" (i.e. it tries to mimic the original look of the animation, but doesn't guarantee 1:1 results). The big benefit of humanoid is that animations can be applied on any other character configured as humanoid while maintaining a kind of similar look (but not 100% the same look). Generic animations need to be played on the exact same character the animation was originally created for.

More information about humanoid: https://blog.unity.com/engine-platform/mecanim-humanoids

Please let me know in case you have any follow-up questions.

Best regards,
Peter

Answer
Not a bug

Hi,
thank you very much for your support request.

The short answer: In your scenario you should be using generic, not humanoid. Humanoid is only the right choice if you don't care about fine details being wrong (like some bones being slightly off). For your FPS scenarios, you should be using generic as small details (like the thumb rotation) are very prominent to the player.

Unity's generic animation system plays an animation 1:1 as authored by the artist. Unity's Humanoid animation system on the other hand performs so called "animation re-targeting" (i.e. it tries to mimic the original look of the animation, but doesn't guarantee 1:1 results). The big benefit of humanoid is that animations can be applied on any other character configured as humanoid while maintaining a kind of similar look (but not 100% the same look). Generic animations need to be played on the exact same character the animation was originally created for.

More information about humanoid: https://blog.unity.com/engine-platform/mecanim-humanoids

Please let me know in case you have any follow-up questions.

Best regards,
Peter

Hey, thanks for the response!
I dont know how to handle my situation then, because Im using full body fps controller and the walking animations are humanoid.

You can convert your walking animation to generic using UMotion:

1) Import the walking animations in UMotion

2) Export them into the FBX file of your character

3) Switch your character to "generic" and replace the animation used in your animator controller by the animations you just exported to FBX.


If you want to stick with humanoid, you might need to try different ways to rotate the thumb bone. You can also check the humanoid avatar setup of your character to see which rotation axis are supported possible on the thumb bone.

Best regards,
Peter

Thanks for the response again!
Can you see from this picture if the rig is broken or it can be fixed with tweaking?

Image 1299

The rig setup looks OK. In the "muscles" tab of the avatar config you have some sliders that you can use to preview in which ways the humanoid thumb is allowed to bend/rotate. Make sure to only apply rotations in UMotion that follow the same principles. Other rotations are simply discarded by the humanoid animation system (and lead to the differences you see in your case).

Best regards,
Peter