HumanIK Retargeting - Strange limits on finger rotation when bending
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
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:
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!