I just posted

build 1194 that uses trackball controls for rotating bones. There are several issues that have cropped up in the interaction between using a trackball and joint limits.

**First some background:**Most people think of rotations as independently applied in the X, Y and Z axes, known as

**Euler** angles. However this is not the case when using a trackball.

Anim8or's first rotates a bone in the X-axis (pitch), then the Z-axis (roll) relative to the bone's local coordinate system

**after** the X rotation. Finally the Y-axis (yaw) is applied. Since the X rotation is made first, the "X-axis" is not changed by subsequent Z and Y rotations. In fact it is possible to align two axes, resulting in the well-known state of "Gimbal Lock". If you enable "Show Axis" (hot key X) in the sequence editor you can see this happening. For this, and other reasons, Anim8or uses

**quaternions**, which do not have this problem, to interpolate rotation.

When displaying rotations Anim8or converts the quaternion into separate X, Y and Z rotations. This is ambiguous at best for several reasons. First there are 6 different orders in which the rotations can be applied. Second even for a given order, there can be multiple individual rotations that produce the same orientation.

**The problems:****1) How should the trackball be oriented?** The 3 axes of a trackball are always at right angles while the three axes of the Euler representation are not. I have chosen to use the final orientation, that is

*after* the rotations have been applied. Thus the Y axis of the trackball will always be aligned with the Euler Y axis (since it is the final rotation applied as view by Euler). But the X and X axes will not always be aligned with the Euler X and Z axes.

*So rotating a trackball around the X or Z axis will generally change the values of multiple Euler angles.*I don't believe that this will be a problem if you simply work on the screen and ignore the numeric values for X, Y and Z. They aren't that useful anyway. Let me know what you think after you've used the trackball for a while.

**2) Joint limits:** If you are using joint limits, or have one or more axes locked, you might see some strange behavior. I have been able to limit the weirdness when only one axis is free and will be improving it further in the near future, but I don't know exactly what to do for 2 and 3 free axes.

Maybe joint limits aren't such a good idea...