Bones vs joints

Houdini operates on a bone based system, whereas Maya operates on a joints based system. Bone based systems allow riggers to rotate bones around their parents and scale the length. Joint based systems, on the other hand, allow riggers to move joint orientations liberally in space.

Joint based systems provide the flexibility and control of being able to move joints freely; however, improper joint orientations often produce unwanted artifacts which require post-processing. Bones, on the other hand, have an orientation. They always point down the -z axis, while up is the y dimension and x is the flat dimension. Bone hierarchies can also understand the whole bone chain, which makes it easier to squash and stretch rigs with bones.

Although Houdini operates on a bone based system, you can simulate joint based systems with null nodes and bones filled in between them. However, for every joint, you will need an IK Solver constrained to the next null.

Simulating a joints based system

Building a rig by simulating a joint based system is extremely complicated. It is recommended to use a bone based system when building a rig from scratch, since all of the tools in Houdini are built with bone bases systems.

  1. Create two Null nodes and a Bone node.

  2. Wire them both into null1.

  3. On the Transform tab of the bone node, set the Look At parameter to null2.

  4. On the Bone tab of the bone node, use an expression for distance in the Bone Length parameter.

Note

You can import an FBX skeleton to see an example of what the expression should be.