Transform Constraints

A transform constraint copies a bone's world rotation, translation, scale, and/or shear to one or more other bones. This has a number of clever uses for advanced rigging. The simplest is to animate a single bone and have other bones also animate. It can also be used to simulate re-parenting a bone, eg for taking off a hat, drawing a weapon, or throwing an object. Interesting effects can be created by constraining only a subset of the transform, eg only scale or shear. A bone can be positioned automatically at any percentage of the distance between two other bones, and more.

Please note that transform constraints are not available in Spine Essential.


To use a transform constraint, at least two bones are needed: the target bone whose transform will be copied and the bone(s) to be constrained, whose transform will be adjusted. The target must not be a descendant of the constrained bones. To begin using transform constraints, select the bones to be constrained, then click New... in the properties below the tree, choose Transform Constraint, then choose an existing bone to be the target or click in empty space to create a new bone to be the target. The bones can be anywhere in the bone hierarchy, as long as they are not ascendants of the target bone.


When Local is checked, the constrained bones' local transform is modified to match the target bone. When unchecked, the constrained bones' world transform is modified to match the target bone.

When Relative is checked, the constrained bones' transform is modified by adding the target bone transform, therefore the new position is relative to the constrained bone's position before the transform constraint is applied. When unchecked, the constrained bones' world transform is modified to match the target bone, in this case the constrained bone's position before the transform constraint is applied is overwritten.

When Local is not checked and Relative is checked, flipping the target bone using negative scale can give unwanted results. For example, when scaling causes target bone to point in the opposite direction, it's world rotation is 180 degrees different than before the scaling. When using Relative, this results in the constrained bones being rotated an additional 180 degrees.


The mix sliders on the transform constraint controls how much the bones are affected by the constraint. When the mix is 0, the bone's own transform is used and the transform constraint has no effect. When the mix is 100, the bone's transform is adjusted to match the target bone's transform. A mix between 0 and 100 results in a transform between the bone's own transform and the target bone's transform.

When Link sliders is checked, all the mix sliders will have the same value.


The value of the offset sliders are added to the target bone's transform values. For example, a rotate offset of 90 degrees would add 90 degrees to the target bone rotation when applying the transform constraint. This is provided for convenience, because without the offset sliders an additional bone would be required.


The Match button configures the offset sliders to match the transform of the first constrained bone. Instead of adjusting each slider manually, it is often easier to use the standard tools to manipulate the transform of the first constrained bone as desired, then click Match to set the sliders to that offset.


Changing any of the mix sliders in animate mode causes the key icon next to the transform constraint to turn orange. Clicking the key icon sets a key for the mixes, which are always keyed together.

Keying the mix is often useful to enable and disable the transform constraint during animations. The Graph can be used to apply a curve to transform constraint keys so the speed of the mix transition can be customized.


Next: Path Constraints Previous: IK Constraints