← Learn library

Character FX & Animation / Maya / Python

Biped Character Rig Part 3 - Creating Twist Joints and Finalizing the Bind Skeleton

Channel: TD Superheroes ·

Written guide

Original TD Superheroes video thumbnail
Biped Character Rig Part 3 - Creating Twist Joints and Finalizing the Bind SkeletonTD Superheroes · Video hosted on YouTube

Playing loads YouTube content. YouTube processes data after activation.

Watch on YouTube

If the player is blocked or unavailable, use Watch on YouTube.

Software: Maya, Python

This lesson inserts three intermediate joints between selected bind-joint endpoints, first manually and then with a small Python tool. Temporary parent constraints provide weighted placement. Once that placement is established, the constraints are removed and the joints are assembled into a chain. The completed left-side structure is then mirrored.

The scene begins with the center and left side of a biped skeleton already built. Consistent names are essential to the scripted method. The exact Maya release is not identified, and the lesson prepares twist joints rather than building their eventual animation-driving setup or demonstrating skin deformation.

Use a temporary constraint to place the midpoint

During 00:00–02:01, the instructor creates an independent joint to sit between the shoulder and elbow. The two endpoint joints are selected first and the new joint last. A parent constraint is applied with Maintain Offset disabled and all translation and rotation axes enabled.

The demonstrated equal weighting places the new joint halfway between the endpoints. Disabling Maintain Offset matters because the operation is intended to move the new joint into the weighted result, not preserve its arbitrary creation location.

The constraint is a placement aid in this lesson. It will not remain as the final twist driver. Separating those roles prevents the temporary positioning relationship from being mistaken for a finished rig behavior.

Add the quarter positions and remove placement constraints

From 02:01–05:02, two more joints are created using the same endpoints. The joint nearer the shoulder uses shoulder/elbow weights of 0.75/0.25; the joint nearer the elbow uses 0.25/0.75. Together with the midpoint, these form three evenly spaced positions in the shown setup.

The elbow is temporarily unparented from the shoulder so the intermediate joints can be inserted. An initial parenting attempt is interrupted because the new joints still have their placement constraints. The instructor deletes those constraints, then connects the chain by selecting a child followed by its intended parent and using Maya’s parent action.

Inspect the spacing before deleting the constraints and the hierarchy afterward. These are separate results: correct placement does not automatically establish correct ancestry. Names such as shoulder twist 01, 02 and 03 identify the joints’ order and originating segment.

Read the helper as a repeatable placement operation

During 05:02–10:01, the manual test is removed and the original endpoints restored. A shelf tool performs the operation quickly from a start/end selection, and the instructor walks through its structure.

The helper creates one twist joint from a supplied twist name, two endpoint weights and a naming prefix. It clears selection before joint creation so Maya does not implicitly parent the new joint to a previously selected joint. It then constrains the new joint to the stored start and end joints, applies the weights and deletes the temporary constraint.

Defining that helper does not yet create the joints. The later calls supply the three sets of arguments. This distinction makes the script easier to inspect: first understand the operation on one new joint, then check how the caller repeats it.

The source does not provide enough textual detail to reproduce every constraint-weight attribute spelling as a complete executable script. Inspect the actual constraint targets and attributes when following the video rather than guessing names from captions.

Derive names from the selected start joint

From 10:01–13:07, the caller reads the selected objects into a list, takes the first as the start and the second as the end, then splits the start joint’s name on underscores.

The naming convention places the side token first and the anatomical joint token second. The script reconstructs those pieces with separators so a twist label can be inserted before the joint/bind suffix. This keeps the new joints associated with the originating segment instead of appending an unrelated suffix to an already complete name.

That parsing only works when the selected names follow the expected convention and selection order. The lesson does not validate empty selection, extra selected objects, namespaces or arbitrary names. The diagnostic print of the derived prefix helps check the assumption before the creation calls run.

Three helper calls provide the near-start, midpoint and near-end placements. The midpoint is established earlier by equal endpoint weighting; a later caption’s garbled spoken number should not be treated as a new unequal weighting instruction.

Assemble the chain and mirror the completed side

During 13:07–16:01, the script parents twist two under twist one, twist three under twist two, twist one under the start joint, and the original end joint under twist three. That produces the intended sequence from the original start through the inserted joints to the original end.

The tool is applied to the remaining demonstrated left-side limb segments. The instructor then opens Mirror Joints, searches for L_ and replaces it with R_, applies the operation and repeats it for another selected branch.

The captions do not establish every mirror-plane and behavior setting, so the name replacement is not a complete mirror preset. Inspect the resulting right-side positions, axes, names and hierarchy in the scene.

The completed result is a bind-skeleton structure with intermediate twist joints on both sides. The expected benefit for smoother twisting remains a later rigging and skinning objective. This lesson does not yet prove deformation quality or define the final twist-driving relationships.