A character’s skeleton drives the character’s motion. The skeleton captures geometry and controls the geometry’s deformation.
To create skeletons in Houdini you work with bones (unlike some other 3D packages where the focus is on joints) at the object level . Each bone has an orientation and a length that define its shape. The bone’s position is generally determined by its parent. The bone’s orientation is relative to the parent, so rotations start at (0, 0, 0).
-
Draw the skeleton so the character faces/points along the positive Z axis. Many character tools are set up to work this way by default, and it means the front viewport will show the front of the character, the right viewport will show the right side, and so on.
-
Use a Null as the root of the character’s parenting hierarchy and locate it on the ground plane. You should eventually put the foot controls on the same plane.
Parent a second Null and move it up to act as the character’s center of gravity. For bipedal characters you can then parent a “hip” Null to the center of gravity and use that as the parent for the spine and leg bones.
-
Unlike some other software packages such as Maya, Houdini’s bones have an orientation (the bones are slightly flattened in the viewer to make the orientation more visible: the wide side faces Y, the narrow side faces X). The initial orientation of the bone is determined by which viewport (e.g. top, front, side) you draw it in.
You want to rotate bones using X axis rotations (rx) whenever possible. So, you want to draw the bones so you’ll be looking at the fat part of the bone when you're rotating it. So, for example, you’ll probably want to draw arms in the front view and the spine in the side view.
Use the quad view when drawing bones so you can draw in different viewports depending on which orientation you want. Use Space + B to switch between the quad view and maximizing the viewport under the mouse pointer.
-
Assign colors to nodes to make different node roles apparent in the network editor.
For example, you can color all control Nulls (that is, Nulls the user manipulates to control the character, such as IK goals) bright green, center nodes (nodes that should not be mirrored) blue, left side nodes green, right side nodes red.
-
Remember to parent control Nulls to the character root or some other appropriate part of the character to keep them in character space instead of world space (turn on Keep position when parenting on the Null first).
-
Use the Selectable flag to prevent selection of non-control objects.
-
Change the appearance of control Nulls to indicate their function. For example, you can make the foot control Nulls look like footprints, and make the character root Null a ring around the character with the character’s name on it.
-
Prefix all left-side nodes with
L_
(L and underscore). When you mirror the bones , the Mirror tool can automatically rename the mirrored nodes to start withR_
. -
If you have it on, turn off “Read-only pre-transforms” when doing character rigging. You can do this in the Objects and Geometry section of the Houdini Preferences window, by turning off the Read-only pre-transforms checkbox on the Preferences tab.
The read-only pre-transform setting prevents offset bone drawing from working correctly, since the functionality requires setting a pre-transform on the bone.
-
Lay out the nodes in the network editor in rough correspondence to the part of the character they represent. Put the root, center of gravity, and KIN_Chops nodes at the center, the spine going up vertically from there, the left and right arm nodes branching off the top of the spine to the left and right, and so on.