Version: 1.28p04

# Rotation Modes

There are two common ways on how to deal with rotations in 3D engines:

• Euler Angles
• Quaternions

If you don't know the difference or always wondered what's behind the miracle of Quaternions, then take a look at the following video:

Euler Angels and Quaternions explained by Sutrabla

## Euler Interpolation

In this mode all rotation keys are stored as Euler angles. Euler angles define the orientation of a joint/transform by using 3 values (x, y and z) represented in degrees. The angles represent a rotation z degrees around the z axis, x degrees around the x axis, and y degrees around the y axis (in that order).

• Euler angles are very descriptive, easy to understand and to edit. The curves of Euler angles can be edited directly in the Curves window providing full control over the way rotations behave between two key frames.
• The downside of Euler angles is, that they can suffer from a mathematical problem called gimbal lock. The following video explains gimbal lock:

"Euler (gimbal lock) Explained" - by GuerrillaCG

## Quaternion Interpolation

In this mode all rotation keys are stored as quaternion values. Quaternions represent the orientation of a joint/transform by using 4 values (x, y, z and w).

• Quaternions don't suffer from gimbal lock. They are very robust and always interpolate as expected.
• They are based on complex numbers and are not easy to understand intuitively that's why UMotion doesn't allow editing Quaternion curves. Thus it is not possible to edit the way rotations interpolate between two key frames.

## Progressive Quaternion Interpolation

This mode also uses quaternion values but it introduces the Progression Curve. The Progression Curve is representing the shortest rotation between two key frames in degrees. It can be used to edit the way a rotation interpolates between two key frames.

The combination of the robustness of quaternions and the flexibility of being able to modify the interpolation curve makes it to the default rotation mode used in UMotion.

### The Progression Curve has the following characteristics:

• As the Progression Curve displays the absolute delta rotation between two keys it always ascends over time.
• In this rotation mode neither the three dimensional rotation path between two keys, nor the rotation of the keys itself can be manipulated in the Curves View. The rotations will always take the shortest path between two keys.
• With the Progression Curve the speed of the rotation can be adjusted. This makes it possible to e.g. smoothly ease-in and ease-out the rotation between two keys.
• To manipulate the rotation of a key the rotation tool in the Pose Editor needs to be used.
• To manipulate the three dimensional path of the rotation adding additional keys usually gives satisfying results.
• If the Progression Curve over- or undershoots so will do the resulting rotation. It will over- or undershoot the keyed rotation (always staying at the same rotation path).
• If there is no change between two keys the Progression Curve is flat. Flat Progression Curves can't be edited.