To rig character puppets, Harmony has a series of nodes to simulate physics or lock pieces in place. They are the Constraints nodes. You can add 2-points, 3-points, and Multi-points constraints to a rig to rotate, squash or stretch drawings from different pivot points. You can also create automated follow-through moves on pieces like hair, whiskers, or ears using the Dynamic Spring constraint. When using these nodes in a rig, it changes the way you parent and move pieces. It's no longer simply forward kinematics.
You will find the following Constraint nodes in Harmony:
- Two-Point Constraint: Constrains the drawing between the pivot-point of two pegs. The influence of the Constraint can be modified with a switch node.
- Three-Point Constraint: Constrains the drawing between the pivot-point of three pegs. The influence of the Constraint can be modified with a switch node.
- Multi-Point Constraint: Constrains the drawing between the pivot-point of multiple pegs. The influence of the Constraint can be modified with a switch node.
- Transform Limit: Limits the application of a parent’s transformation onto the child, by constraining the transformation to the ratios as-specified by the artist.
- Static Constraint: Bakes the immediate parent’s local transformation into its attributes, in order to apply the same transformation. This allows animators to move a peg’s transformation, and permanently bake this transformation in this node non-animateable, non-resettable attributes. This provides a utility for artists to reuse content, and simply reset its position to a new ‘static’ position.
- Transformation-Gate: Provides an interface to apply a selected transformation to its child. With a switch attached, the gate value defines the port that is applied to the child. The Active-Value allows the artist to interpolate between two gates.
- Constraint Switch: Standard interface to connect to the constraints. It is used to affect the active value of multiple constraints at once, by connecting the single switch to the individual constraints. The behaviour of the Switch on the constraint is specific to the constraint.