Arm IK and HandWeight

MikeW

New member
I've created a simple character and added UCC components with the Character Manager. I'm using a model from the Advanced People Pack 2 asset. I'm having an issue with the hands IK. As you can see in the image below, using the default HandWeight of 1 in the Character IK component moves the arms outside their normal resting position. The hand has only moved slightly from its default posed position. But at the elbow, there is a noticeable gap between the position of the elbow vertices and the IK target.

The character on the right is using the same model, AnimatorController, and Avatar, but no UCC components (and therefore no IK). His arm is correctly positioned.

hand-weight-1.png

I can fix this by setting HandWeight to 0, as you can see in the image below. However, I'd like to understand why this isn't needed in the demo scenes. The demo characters don't seem to have this problem.

hand-weight-0.png

I know Unity pretty well, but I'm new to character animation, so there could be a simple fix. Do I perhaps need to fix something in the Avatar, or in the model's rig? If I use a UCC state to set hand weight to 1 only for specific actions, how do I ensure the arm position isn't lerp'd from the strange starting position in the first image?

Thanks!
 
I have not used that asset but all of the rigs are different so if a hand weight of 0 works for your scenario then I would go with that. The absolute best route to go is to get animations made with your character's rig so the animations will match up 100%. Unity's Animator Retargetting can only go so far.
 
If the problem is with the rig or animation, why isn’t there an issue with the model that isn’t using CharacterIK? Might the CharacterIK be mispositioning the hand target?
 
If the problem is with the rig or animation, why isn’t there an issue with the model that isn’t using CharacterIK? Might the CharacterIK be mispositioning the hand target?
CharacterIK positions the hand based on the animations. It does this using the relative offset of the dominant hand. In most cases the non-dominant hand only needs to be explicitly positioned because the character is holding a weapon:

 
Top