Announcements

The Autodesk Community Forums has a new look. Read more about what's changed on the Community Announcements board.

HumanIK Retargeting - Strange limits on finger rotation when bending

albin.nocode
Contributor

HumanIK Retargeting - Strange limits on finger rotation when bending

albin.nocode
Contributor
Contributor

Hello!

 

Currently on Maya 2020.4, Windows 11.

 

We've been using HumanIK with custom rigs as our retargeting pipeline for getting mocap data onto our characters, and it's been working pretty well so far. However, we wanted to improve the retargeting result of the fingers, especially when retargeting between different characters with slightly different bind poses for the hands. We tried editing our Stance poses of all the characters to better match each other, trying to straighten the fingers into the same approximate pose.

 

When we were testing out the new retargeting results, we noticed a strange behavior when mapping one HumanIK character to another in regards to the fingers. There appears to be some kind of limit on how much the finger joints can rotate in their primary axis, i.e how much they are allowed to bend. This only appears to affect the destination rig, as there are no limits on the skeleton or rig itself used in the retargeting operation. To demonstrate this, we created a simple test scene with the Human IK Example character (Dummy) available from the Human IK window, also to confirm that this was not just an issue with our skeletons and rigs. Please see the gif below for an example:

 

hik_retarget_finger_limits_smaller.gif

 

 

 

 

 

 

 

 

As you can see, the Blue hand is driven by the Red hand as it's source (both are imported from the same saved character file, and both are just a defined skeleton, no rig or custom rig attached). The fingers can seemingly only bend "down" in a 180 degree arc, they can not be rotated "up", even if the source character does. This doesn't seem to apply to the first joint in the finger, so Thumb1, Index1, etc, only the following joints have this limitation, from the second joint and down.

 

It also seems to apply to a hard coded axis, where the thumb bends on the Y-axis, but the rest of the fingers use the Z-axis. This is another issue we ran into, as the thumb joints in our skeleton match the other fingers, using the Z-axis to bend, but this limit still applies to the Y-axis meaning our thumbs can bend freely, but they can't rotate side to side. This means that some poses are impossible to reach, which was our first clue to finding this issue.

 

I've tried searching for a setting to control this limit, but there doesn't appear to be anything that's supposed to limit the rotation of the fingers on any of the HIK nodes in the scene. The character definition has all finger rotation limits unlocked (and I tried setting the limits to -359 to 359 just to test it, but no change). I am starting to suspect that this is an issue in the HIK retargeting solver, meaning it's not in our power to change this behavior, which is a big issue.

 

Has anyone else encountered the same issues, and found a workaround or a fix for it? Maybe there is a setting hidden somewhere where I haven't looked, or maybe there's a way to change the solver from the HIK plugin somehow.

I've attached the maya file I used to test this in the above gif with the two dummy characters if anyone wants to test it to see if they get the same results. Otherwise it's easy to setup yourself using the provided Human IK Examples available in Maya.

 

Thanks!

0 Likes
Reply
978 Views
4 Replies
Replies (4)

albin.nocode
Contributor
Contributor

I just wanted to add a small discovery I just made, it actually only seems to affect the middle joint of each finger, not the start or end joints. Maybe this is part of the IK solver of the fingers, if I turn on the reach of the finger tip and rotate the finger up, it will bend from the start, but the middle joint will never rotate negatively, only the start and the last joint.

Hoping someone has some insight, otherwise my plan is to remove fingers from the HIK definition and drive them with constraints instead. Obviously not ideal if I want to take advantage of the other features of the HIK solver, like mirroring and such.

albinnocode_0-1667817861196.pngalbinnocode_1-1667817886379.png

 

0 Likes

w_vet88
Community Visitor
Community Visitor

Have you found a solution for this? experiencing the same

0 Likes

albin.nocode
Contributor
Contributor

No, unfortunately we never found a fix for it, we just had to work around the limitation by cleaning up the animation when encountered.

0 Likes

w_vet88
Community Visitor
Community Visitor

So a tip that sorted a lot of issues for me, before baking to the control rig, go a frame before the anim starts and key the joints back into a T-pose and facing with the world Z. Then bake to control rig. This was something I got on to when knees seemed to come through all flipped around before. Troubleshooting I figured it was the orientation of the skeleton in relation to the world orientation that need to be the same on the first frame of your bake to fix this and as a bonus I do not have the issue with the fingers anymore.

0 Likes