View Full Version : Wrist twist joint

Tim Mews
06 June 2012, 10:02 AM

I've created an expression for a hand controller to rotate on X a forearm extra twist bone *0.5 to help with the skin stretching. In the normal pose when I rotate the control in X the twist joint works, rotate in y and z has no effect but when the arm is bent at 90 degrees forward to the original pose the extra twist joint is effected by the Y and Z rotation of the hand control giving odd effects to the skin wrist? See attached image.

Any help is greatly appreciated.



06 June 2012, 06:42 PM
I'm not sure what's going on at first glance but try changing the rotation order on the wrist joint. If that doesn't help I'd like to take a deeper look at the issue, or offer my own 'wrist with underarm twist' rig to look at.

Tim Mews
06 June 2012, 11:01 PM
Hey, :)

Thanks for the reply, I'll have a look at changing the rotation angle feel free to have a look at the attached rig and see what you think, it's quite a simple rig with no FK.



06 June 2012, 01:51 AM
I've worked with your rig for a bit and found out why your underarm twist no longer works when you put the hand at 90 degree angle in the horizotal plane like in your picture.

It's because your rotate x and rotate z axes of your hand control overlap at that angle. So when rotating, Maya is wondering whether you're rotating the x or z axis. You can see this better when you open the rotate tool settings and set it from 'world' to 'gimbal'. Set rotations to gimbal so you can manually pick the x axis when you need it.

Personally I use a more complex system that indirectly drives the hand by controlling a single channel IK system with the hand control, which in turn controls the direction the hand points in and via a small scritpt, the roll of the hand and the twist of the underarm.

Tim Mews
06 June 2012, 01:37 PM

OK, I'll have to have a look at creating a more detailed arm joint rig, for now I've changed the rotation order so now the Gimble rotation works when the joint is rotated away from the t-pose.

Thanks for your help, I had a tight deadline to get the rig finished.


07 July 2012, 11:32 AM
actually you just need one helperLocator, a pointConstraint and one aimConstraint ( with the "wristJoint" as "objectRotationUp"-object )

this works 100% save for +-180 degree twisting .

- create a locator , nullGroup it , put the group below your forearmJoint .
- zero the nullGroup
- pointConstraint this nullGroupthe wristJoint.
- aimConstraint the locator towards the elbow-joint , and use the "wristJoint" as "objectRotationUp" . for the objectUpVector , choose, the axis , which is pointing towards the thumb ( to the front ) - this way , it won't flip , when you bend your wrist about 90 degree
- you can now manually adjust the "nullgroup" about 90 degree , because the aimConstrainted-locator will go from -90 -> +270 degree , and if you choose an offset about 90 degree , it will always stay between -90 and +270 degree .

there is a tutorial here

CGTalk Moderation
07 July 2012, 11:32 AM
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.