When you keyframe an object’s rotations, Maya calculates the object’s orientations between keys by interpolating the rotation values from one key to the next. In Maya, there are two methods of rotation interpolation: Euler and Quaternion. For each animated rotation in your scene, you can specify a rotation interpolation method. The rotation interpolation method you choose for an animated object determines how Maya calculates its rotations. For more information on Euler angles and Quaternions, see Euler angles, Quaternions, and Which type of interpolation is right for your animated rotations?.
Euler rotation is the default method of rotation interpolation unless otherwise specified. You can set the default rotation interpolation method for new curves in the Maya Preferences window (in the Animation section under the Settings category when you select Window > Settings/Preferences > Preferences) or you can set the rotation interpolation method of existing rotation curves from the Graph Editor. See Set rotation interpolation for curves.
When interpolating the animated rotations of an object using the Euler method, Maya uses Euler angles to determine the object’s axis-specific orientations over time. Euler rotations are calculated using three separate angles representing rotations about the X, Y, and Z axes, and an order of rotation.
The rotation order specifies the order in which an animated object is rotated about its X, Y, and Z axes. Changing an animated object’s rotation order changes its final orientation. You can specify the order of rotation for an object by setting its Rotate Order attribute. For example, if you set an animated object’s Rotate Order to YZX, the object will first rotate in Y, then Z, and finally X. You can use the Rotate Order attribute to match the rotation order of imported, animated objects to the co-ordinate systems (for example, XZY opposed to Maya’s default XYZ) of the 3D software packages from which they came. This is important if you want the animated rotations of your imported objects to appear as intended.
In Maya, the default method of rotation interpolation is Euler.
There are 2 kinds of Euler rotation interpolation in Maya: Independent and Synchronized. You can set the Euler rotation interpolation type for your curves from the Graph Editor. See Change Rotation Interp.
For Independent Euler curves, interpolation is calculated from key to key on each individual curve, independent of the their neighboring rotation curves. Use Independent Euler curves when you want to keyframe a single rotation channel or when you need to add additional keyframes (and thus detail) to a single rotation curve. Independent Euler curves are ideal for simple, animated rotations.
All the keyframes on Synchronized Euler curves are locked together in time. This means that if an object has Synchronized Euler rotation curves, interpolation is calculated from key to key on all of its rotation curves simultaneously. Use Synchronized Euler curves when you want to keyframe multiple rotation channels (X, Y, and Z) or when you need to add additional keyframes (and thus detail) to all the rotation curves of an animated object. Synchronized Euler curves are ideal for more complex animated rotations.
The main difference between Independent Euler and Synchronized Euler curves are their keyframes. For example, moving a key in time on an Independent EulerRotate X curve moves only the key on the Rotate X curve, whereas moving a key in time on a Synchronized Euler Rotate X curve will also move the corresponding keys on the Y and Z curves. Similarly, if you key only the Rotate X channel for an animated object, and the rotation interpolation type is set to Independent Euler, then only the Rotate X channel is keyed. However, if the rotation interpolation type is set to Synchronized Euler, then all three (X, Y, and Z) Rotate channels are keyed.
When Euler angles are used to interpolate the animated rotations of an object, the object’s orientation about its individual axes is evaluated one axis at a time. This is why Euler-angled rotation is prone to artifacts such as gimbal lock and flipping. Gimbal lock occurs when rotations about a single axis cause unwanted rotations about complementary axes or when axes become coincident. Flipping occurs when angles unexpectedly wrap around positive or negative 180 degrees during Euler-angled rotation interpolation between keyframes.
If gimbal lock or flipping occurs, you may be able to correct this behavior using the Euler Filter. For example, you can use the Euler Filter to normalize the mangled rotation curves from corrupted motion capture animation data. You can access the Euler Filter from the Curves menu in the Graph Editor or Dope Sheet. For more information on the Euler filter, see Euler angle filtering and filterCurve.
Use Euler rotation interpolation when you want specific control over the numerical values of your rotations and when you want smooth tangents for your rotation curves. In most cases, you should only use Euler rotation interpolation for rotation animation curves that you need to manipulate extensively in the Graph Editor. Unlike Quaternion curves, Euler curves support all tangent types and their keys possess tangent handles that let you easily tweak the curves.
Quaternions provide smooth interpolation of animated rotations and always produce the most efficient path between keyframes in comparison to Euler angles. Quaternions store the overall orientation of an object rather than a series of individual rotations. This means that a single Quaternion stores the same amount of rotation data as three Euler angles. Since Quaternions store only orientation values, they can be used to calculate the shortest rotation from one orientation to another.
When animating an object’s rotations with Synchronized Quaternions, Maya first stores the keyed orientation values for the object as Euler angles, converts them to Quaternions for interpolation, and then converts the interpolated Quaternion rotation values back to Euler angles for display in the Channel Box and Graph Editor.
In Maya, Quaternions are displayed as SynchronizedEuler curves and values. When an object’s rotation curves are synchronized, the keyframes on its RotateX,Y, and Z curves are locked together in time. When you add, delete, or move a keyframe on one of the object’s rotation curves, the corresponding keys are also updated on the related rotation curves. This eliminates unexpected interpolation problems that can occur when keyframes are deleted from one of the axes, or when keys are moved independently in time.
The tangent settings for Quaternion curves affect how an object’s animated rotations are interpolated. For more information on tangent types, see Graph Editor Tangents menu. Maya uses the following types of tangents and interpolation to calculate the shortest rotation from one key to the next:
For Quaternion curves with clamped tangents, Maya uses stepped interpolation. For Quaternion curves with linear tangents, Maya uses spherical linear interpolation—also known as SLERP—to calculate the shortest rotation from one key to the next and produces an abrupt transition between keys. For Quaternion curves with spline tangents, Maya uses cubic interpolation to calculate the shortest rotation from one key to the next and produces a smooth transition between keys.
When blending animation clips in the Maya®Trax™Editor, you can select one of the following types of Quaternion rotation interpolation: Quaternion Shortest or Quaternion Longest. Quaternion Shortest interpolation uses Quaternion interpolation to find the shortest path between rotations from one clip to the next. Quaternion Longest interpolation uses Quaternion interpolation to find the longest path between rotations from one clip to the next. This path is in the opposite direction of Quaternion Shortest.
You can specify a clip blend’s Quaternion rotation interpolation type from the Attribute Editor by setting the blend’s Rotation Blend attribute.
Each method of rotation interpolation has its advantages and disadvantages. It is up to you to select the type of interpolation that best suits your animation. See When should I use Euler rotation interpolation? and When should I use Quaternions?.
Except where otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License