View Full Version : IK wrist Flip with X rot controlling forearm. Please help.

01 January 2009, 10:35 AM
Situation : I am setting up an IK arm. The hierarchy goes upArm_jnt > elbow_jnt > forearm_1_jnt > forearm_2_Jnt > wrist_jnt. I currently have the IKhandle starts at the upArm_jnt and ends at forearm_1_jnt. It's pivot has been moved to the wrist's postition. The IKhandle is point constrained to the IK_cntrl object . The IK_cntrl object's Y and Z rotations control the Y and Z of the wrist_jnt. The X rotation of the Cntrl object controls the forearm's X rotation.

Issue : The wrist_jnt keeps flipping when I bring it across the body, too high or too low. I have tried playing with different rotation orders for both the controllers, and the wrist _jnt, nothing seems to work. I know it is hard to diagnose an issue from a description, but if anyone can throw any pointers, or link to any good demos on how to setup a non flipping IK wrist control with forearm twist included, I'd greatly appreciate it.

Thanks for your time.

Ryan Rogers.
Student TD

01 January 2009, 01:13 PM
Hi !
If you're under maya, I could take a look at your scene.
Send it to me here : ( if you want.

Cause I don't understand all the process you describe cause troubles. (delete the model if you don't want it to be seen)

01 January 2009, 07:21 AM
Thanks for the reply. Just posting again to let everyone know the fix to the IK hand flip problem when trying to rotate the X of the forearm with the same IK controller that you use for the Y and Z of the wrist. I ended up taking the wrist out of the forearm heirarcy and attached it directly to the elbow. This elminates the issue of the parent attempting to control the parent and grandparent. you can then either use a multiply divide node, or just write an expression so that the X rotation of the forearm derives its value from the X rotation of the wrist. You can then constrain your IK controller on all three rotation axis, this stops all flipping. To get the offset of the forearm twist with the twist of the wrist, you can just play with the math behind the expression / multiply divide node to get the right amount of distributed forearm rotation. Hope this helps people looking for a solution to this same issue.


Ryan Rogers.
Student TD

01 January 2009, 04:02 PM
Hi Ryan,

I also recently did a video on this. The setup is pretty simple to achieve with an aim constraint and a couple of orientation constraints and will still work even if the wrist becomes gimbal locked.

01 January 2009, 02:55 AM
Awsome tutorial. I thought I had solved it with my last posts description, but here I am a week later with some of the animators breaking the forearm in certain positions. I remembered your post and went back to it. Solved my problem right away. Thanks again, I have a feeling I will be using this setup many times over.

Ryan Rogers
Student TD.

01 January 2009, 07:39 AM
Hi Ryan,

I also recently did a video on this. The setup is pretty simple to achieve with an aim constraint and a couple of orientation constraints and will still work even if the wrist becomes gimbal locked.

Great tutorial Adam, my only suggestion for later tutorials is to use a smaller vocabulary, at times I really had no idea what you were saying, and maybe use a program that doesn't blur the video so much when you move the camera. Other then that, excellent tutorial and will be trying this out on my next rig. Thanks for taking the time to share your experience with us.

01 January 2009, 11:47 PM
Agreed, thats a very solid tutorial. I'll give it a try in the next character I rig up. However a part of me still feels that an automated forearm solution is limiting or destined to tweek out.

In my current rigs I have a single manual control for forearm twist, where that value is divided along the 3 forearm joints. When the animation is completed, the animator needs to do a final polish pass through the animation and adjust this control. I leave it up to the animator to decide the twist amount, weither or not to dull or extreme it, or add imposed jiggle or shake in the forearm as another level of secondary.

It's simple, straight forward and has less chance of breaking. Not to mention allows more control for the animator and less rigging for rigging sake.

My two cents, but that's the animator side of me.

Again, thanks for sharing your tutorial, great stuff.

CGTalk Moderation
01 January 2009, 11:47 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.