Sunday, August 30, 2020

Rotation locks and limits

In DAZ Studio, bone rotations must stay within certain limits, in order not to create impossible poses. These limits could not be used in Blender when characters were imported with the old (Blender Legacy) bone orientations, because there was no straightforward relation between the bone orientations in DAZ Studio and Blender. Therefore, only very basic limits were imposed to prevent the rig from breaking: bone locations were locked (except for face bones), and X and Z rotations were locked for bones whose names end with "Twist".

In the new (DAZ Studio) orientation, bone orientations are the same in Blender and DAZ Studio, except that some axes have been interchanged in order to make Y the twist axis and X the primary bend axis. We can therefore use the locks and limits that are stored in the duf files, provided that the axes are interchanged in the same way. This is implemented in the latest commits.

For example, here is the left index finger. It has a Limit Rotation constraint that prevents the X rotations to be larger than 90 degrees and less than -50 degrees. The extreme values are shown to the left.

The rotation limits are meant as a help when posing, not as a straightjacket. Sometimes we want to create extreme poses that exceed some limits. We can then toggle the limits off with the buttons in the Posing panel.


The four buttons at the bottom show the current status of locks and limits for the active armature. When the last button reads Rotation Limits Are ON, all Limit Rotation constraints are active.

If we press the button, its caption changes to Rotation Limits Are OFF, and the Limit Rotation constraints are muted, so the little eye icon turns into a closed eye. We can now create poses that exceed the rotation limits.