IK causes arms to jerk around

When I rig actions using IK I get a lot of jerking of the arms. I keyframe the arm bones on the Y axis for elbow control. This sometimes fixes it but there are parts of the actions where I cannot fix it. I have separate bones for the X/Z axes and another one for the Y axis. The bone chain goes UpArm > UpArmY > LowArm > LowArmY > Hand. I locked the Y axis on the X/Z bones and locked the X/Z axes on the Y bone. I did not put any IK limits on UpArm but did on the rest of the bones in the chain. When I removed the IK limits, it seemed to reduce the jerking but it also caused the arms to rotate in unrealistic ways. How can I fix the jerking of the arms during IK?

rig_20200510.blend (1.1 MB)

Enabling “rotation” on your IK constraints tends to create twitch when used in conjunction with angle limits. That’s because there end up being an awful lot of positions where there just isn’t an IK solution that meets all the criteria. Your goal for any IK system is to have one and only one solution for every position of the IK target. Any time you have no solution or you have multiple solutions, you invite IK twitch.

My recommendations:

  1. Instead of a rotation-enabled IK on the hand, use a no-rotation IK on the forearm twist. Then copy world space rotation from your IK bone to your hand. Animate this rotation to eye instead of trying to get IK to do it all for you. You’re smarter and a better artist than any IK algorithm is.

  2. Adjust your upper arm and forearm twist bones so that they’re exactly in line with their parents. Right now, they’re slightly out of axis. (Subdividing bones and using normal orientation are good tools to make this easier.)

  3. It’s wise to build preferred angles into your armature. Here, you’d do that by rotating your lower arm (and all its children) in the local X axis in the rest position.

  4. Don’t use angle limits on the twist bones. If there’s a problem where the angle limits come into play, the angle limits are likely to create twitch. Instead, animate these manually whenever there’s a problem from too much twist. (Possibly directly, or possibly through an IK pole target:)

  5. Consider using a pole target to control the elbow. This will be easier to use than posing bones involved in the IK chain and will give smoother, more natural interpolation. (There’s an alternative to poles I won’t get into here, too many words already.)

1 Like

Thanks for the suggestions. They worked pretty well.