Week_09_001: Gimbal Lock problem in 3D animation and a showcase of recent works: Body Mechanics

Gimbal Lock

Gimbal Lock is a phenomenon that can occur when the Euler Angle is used to represent the rotation of an object, which causes the object to have less freedom of rotation and fail to achieve the desired attitude 12. The Gimbal Lock is caused by the fact that the second rotation Angle of the Euler Angle reaches ±90°, making the first and third rotation axes coincide, thus missing one rotation dimension.

In other words, when the arm is rotated to a certain Angle, the two rotation axes will overlap. The best solution is to open the Graph editor and select the Euler Filter after selecting the model FK controller. Then MAYA can automatically calculate and avoid this problem.

Real Solution

(1) Use quaternion to solve
The Euler Angle is converted into quaternion, slerp interpolation is performed on the quaternion, and then the series of quaternion is converted into the corresponding Euler Angle, and then applied to the target.

The disadvantage is that it consumes a certain amount of memory, but the target can be rotated arbitrarily, and the flexibility is high.

(2) Why use quaternions
First, because of the universal lock problem, second, interpolation directly to RPY may lead to unsmoothness, interpolation results may jump;

And quaternion represents rotation, less computation, the most critical point is that it is very, very, very suitable for interpolation!!

The most commonly used is spherical linear interpolation

Body Mechanics

Leave a Reply

Your email address will not be published. Required fields are marked *