Understanding the attributes of a joint

As you set up joints for posing and animation, there are several attributes of the joint node to understand. To change these settings, you can select a joint in the scene, then edit the node using the Attribute Editor.

Limits

Joint Limit Information attributes specify the minimum and maximum translation, rotation, and scaling values for a joint. You can set a joint’s limits if you want the joint to behave in a specific manner.

For example, to create an elbow joint for a human skeleton, you need to set its rotation limits so that it cannot rotate in X and Z, but can rotate only a specified amount in Y. Alternately, you can turn off transformation channels or use Set Driven keys to restrict the transformations of an object. See Driven keys.

Degrees of freedom

If you are planning to use Inverse Kinematics (IK) to pose your joints, you may want to set the degrees of freedom for your joints. The Degrees of freedom tool setting determines which local axes the joints can rotate around during IK posing and animation. You can set the degrees of freedom for a joint from the Joint section of the joint node attributes.

Damping and stiffness

You can set the damping and stiffness for joints that are influenced by IK. The damping and stiffness values let you specify how joints behave when posed by an IK handle.

Damping

Joint damping applies resistance to a joint as it approaches its joint limits. Instead of the joint abruptly stopping when it reaches its limits, you can use damping to slow it down smoothly. Depending on the strength and range you set, a joint with dampening will not reach its limit boundary unless forced. For most living creatures, when a joint rotates as far as it can, it tends to slow down or dampen before reaching its limit. For example, an elbow does not snap straight, but gradually slows down as the lower arm aligns with the upper arm. In animation terminology, this type of effect is called an ease-in. See also Joint Rotation Limit Damping.

Stiffness

Joint stiffness specifies a joint’s resistance to rotation during inverse kinematics (IK) posing. Set the stiffness value for a joint only if you want certain joints in a joint chain controlled by an IK handle to rotate less freely than others.

For example, you can set the stiffness of joints in the mid-back of a human character so that they rotate less freely than those in the lower back. The higher the stiffness value, the less the joint will bend. Or for another example, a wrist joint moves more bending toward the forearm than it does from side to side. So, you can set the Stiffness value in the plane perpendicular to the forearm (most often the Y-axis) to reduce its mobility in that plane. You can set stiffness for each axis (X, Y, Z) separately.

The effect of the X, Y and Z Stiffness values is relative to the values assigned to other joints in the joint chain. For example, in a joint chain with two joints, if joint1 has a Stiffness of 1.0 and joint2 has 2.0, joint2 will be twice as stiff as joint1. With stiffness set to 0, no stiffness is specified. In general, this is the recommended setting for all of a skeleton’s joints.

Since the Stiffness values for joints are relative to the values for all the other joints in the joint chain, you must set the Stiffness value for all the joints in the joint chain in order for stiffness to work. When you set the Stiffness for at least one of the joints, you should also set the Stiffness values for the other joints in the chain so that they do not have the default (0). For example, you might set the Stiffness values for all the joints in the chain to 1, and then set the Stiffness values for the very stiff joints to 2 (twice as stiff as the rest), or 3 (three times as stiff), and so forth. If some of the joints in the chain still have the default setting of 0, the joints may lock up during IK posing.

Note:
  • For Stiffness to work properly, the joint chain needs to have more than two bones.
  • IK solver calculations for Stiffness can require a little more time than they usually require, so use stiffness only when its effect really needed.
  • Joint stiffness with IK is difficult to control. The current joint stiffness algorithm works like a set of springs might work on the joints. While it is easy to say how it works, it is very difficult to control.

Local axes orientation

You can set the orientation of your joint’s local axes to maintain symmetry in your character’s skeleton. For example, if you create a joint chain for the right arm of a character, you can then mirror the joint chain to copy it for the left arm. (See Mirroring joint chains.) You then align one of the joint’s local axes with the bone so that it is pointing down the joint chain. This ensures that the joint chain will behave properly when you apply IK.

Preferred angles

In a skeleton, each joint’s preferred angles indicate the preferred rotations of the joint during inverse kinematic (IK) posing. When you build a skeleton, draw the joints so that they are oriented at the angles you would want them to move in during IK.

For example, if you are drawing a joint chain for the leg of a human character, draw the joints so that the bends in the joint chain properly represent the angles of the limb in its rest position. The pose at which you set a skeleton’s preferred angles is called the rest pose. Then, when you set the Preferred Angle attributes for the leg joint chain, the bend at the knee joint will be set as its preferred angle for IK posing.