Tag Archives: Controller

Forearm Twist Bone Setup Using Transforms

Here’s a setup to create a forearm twist bone ..

The twist bone is parented to the forearm bone and the X rotation of the twist bone is a script controller which has the following formula:

rot = (wrist.transform*(inverse foreArm.transform)).rotation
rotEuler = quatToEuler(rot) order:2
rotEuler.x/57.2952

Here, foreArm is the forearm bone node and wrist is the wrist bone node. The formula basically gets the transform of the the wrist bone with respect to the forearm bone and extracts the x rotation (local X axis points along the bone and z points up for all three bones). This is cleaner than a Look At constraint method and also does not use the controller of the wrist/forearm bones directly (which usually have a weighted orient constraint for FK/IK switching). This method does cause flipping when the wrist rotated more than 90 degrees sideways – an unlikely situation for wrists ( If you are getting the flipping on up and down rotation, try changing the rotation order in the the quatToEuler method )

If there are multiple twist bones, they can be orient constrained to the first twist bone and the forearm bone, with gradually decreasing weights of the twist bone’s influence as you move up closer to the elbow.