Answered

Finger bone rotations

Anonymous 3 years ago updated by Peter - Soxware Developer 3 years ago 2

Hi, we are working on a VR simulator (using FULL BODY IK on the character) and we need to add a few simple animations to the hand but we do not get 100% accurate finger bone rotations even though the character is in a perfect T-Stance and all bones are correctly set-up and recognized by Mecanim. We strictly followed Unitys rigging recommendations.

Inside your tool the animation (a simple grab animation)  looks perfect but once exported to an .anim file some fingers looks different (little finger is 10 degree more right, thumb rotation is 20 degree too much left). It seems to affect mostly the the last finger-tip part. This inaccuracy is probably not a big deal if one does a game for desktop but in VR it looks kind of weird when one or two fingers looks unnatural when you see it very close. It breaks the immersion. We are not sure if this is a unity problem or a Blender related problem (even inside of Blender the animation looks 100% accurate as well as inside your tool).

We were hoping to bypass this problem with your tool since it's integrated with Unity.

We don't understand the fact that the preview inside your timeline is correct but once exported and added to Mecanim the result is different. We can't see the logic behind this behavior nor do we have a clue to bypass it.

Switching to generic is no solution since we are using FINAL IK on the body. 

We are running out of solutions (and nervs) :)

Thanks for your help!

Peter

UMotion Version:
1.22.p13
Unity Version:
2020.1.14f

Answer

Answer
Answered

Hi,
thank you very much for your support request.

Humanoid is not the correct choice for this task, as it's architecture per definition introduces small re-targeting errors. The amount of error is proportional with how precise the character's T-Stance (in the Avatar setup) is.

Generic on the other hand is directly playing the animation (without any re-targeting, thus without any errors).

Switching to generic is no solution since we are using FINAL IK on the body

Afaik Final IK is independent of the animation system and should work fine with generic. The only difference might be that you have to manually assign the correct bones to the Final IK component (with humanoid, it can do an automatic setup via the humanoid avatar).

You can transition your existing UMotion project to generic by creating a new UMotion project of type generic. Then change your character's configuration to generic. Assign the character to UMotion's pose editor and then import your old humanoid project into the generic project.

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

Best regards,
Peter

ADD: some of the rotations are not applied at all. See the middle finger but other fingers are also not 100% accurate. 


Thank you.

Answer
Answered

Hi,
thank you very much for your support request.

Humanoid is not the correct choice for this task, as it's architecture per definition introduces small re-targeting errors. The amount of error is proportional with how precise the character's T-Stance (in the Avatar setup) is.

Generic on the other hand is directly playing the animation (without any re-targeting, thus without any errors).

Switching to generic is no solution since we are using FINAL IK on the body

Afaik Final IK is independent of the animation system and should work fine with generic. The only difference might be that you have to manually assign the correct bones to the Final IK component (with humanoid, it can do an automatic setup via the humanoid avatar).

You can transition your existing UMotion project to generic by creating a new UMotion project of type generic. Then change your character's configuration to generic. Assign the character to UMotion's pose editor and then import your old humanoid project into the generic project.

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

Best regards,
Peter