Houdini 22.0 Nodes Geometry nodes

Biped Setup geometry node

Organizes and groups a skeleton for use with other biped-related nodes.

On this page
Since 22.0

This node provides a convenient way of preparing a biped skeleton for use with retargeting and rigging setups. By selecting or mapping joints in a KineFX skeleton hierarchy, this node generates predefined groups, tags, and a T-pose that is required by the Biped Retarget SOP.

Tip

The APEX Retarget to Rig recipe provides an example use of the Biped Setup and Biped Retarget SOPs.

Biped retargeting network

Note

If Source Method is set to Attribute on this node, you’ll need a rest pose attribute on the character. If the character doesn’t have a rest pose attribute, you can use the Rig Stash Pose SOP to store a pose.

Tip

When setting the display flag on this node, it will display the generated T-pose.

Most of the mapping is done using names, so this node relies on good naming presets. The default presets, in $HFS/packages/kinefx/biped_templates/templates.py, handle several naming conventions, for example, SideFX, Mixamo, and HumanIK. You can also create your own presets by adding them to $HOUDINI_PATH/biped_templates/<preset_name>.py.

Biped groups

A biped group is a collection of joints that define a body part. This node takes the mapped joints in the Mapping parameter section and puts them in the appropriate groups. Biped groups are generated by the Biped Setup SOP for use in the Biped Retarget SOP.

You can find the list of biped groups in $HFS/packages/kinefx/vex/include/kinefx_biped_retarget.h.

Biped Group

Included Joints

biped, biped_extents

The joints in biped_mapped and its containing joints. For every mapped joint, it goes to the leaf joint and walks back up the hierarchy to include those joints, ignoring the extra deformation and twist joints. For example, biped_mapped won’t contain all the pieces of the spine and neck, but biped_extents will.

biped_mapped

The joints mapped in the Mapping parameter section.

biped_upperbody

Same as biped_extents but only contains the pelvis and the joints above the pelvis.

biped_lowerbody

Same as biped_extents but only contains the pelvis and the joints below the pelvis.

biped_left

Left side of the skeleton

biped_right

Right side of the skeleton

biped_pelvis

Pelvis joint

biped_root

Root joint if it exists. This is automatically generated by walking up the hierarchy to find the root joint of the hierarchy. If the root is the same as the pelvis, it will be ignored.

biped_spine

Pelvis and spine

biped_spine_full

biped_spine + biped_neck

biped_neck

Neck and head joints

biped_arm

Arm but not the clavicle

biped_arm_full

biped_arm + biped_clavicle + biped_hand + biped_finger

biped_clavicle

Clavicle joints

biped_shoulder

First joint of the arms

biped_elbow

Elbow joints

biped_hand

Hand joints without fingers

biped_finger

Finger joints

biped_finger_thumb

Thumb joints

biped_finger_index

Index finger joints

biped_finger_middle

Middle finger joints

biped_finger_ring

Ring finger joints

biped_finger_pinky

Pinky finger joints

biped_leg

Leg but not the foot

biped_leg_full

biped_leg + biped_foot + biped_toe

biped_knee

Knee joints

biped_foot

Foot and ball joints

biped_foot_extra

Joints that are a child of the foot joint but are not in biped_foot, for example, toes, claws, and heel joints.

biped_toe

Toe joints

Tip

To isolate specific parts of the body, use an intersection group expression, for example:

// Pre-Houdini 22
biped_right ^!biped_leg

// Houdini 22 and beyond
biped_right &biped_leg

State

The viewer state allows you to map points from the input skeleton to the default biped skeleton. Mapping points will fill out the fields in the Mapping parameters on the node.

The blue points on the skeleton require a mapping, and the orange points are optional.

The workflow is the same as the Map Points SOP.

Map points from the input skeleton to the template skeleton

Parameters

Mapping

The parameters in this section specify the joint mappings for the biped character. There are certain rules for the mapping to be valid, for example, a hand (L Hand) must be a descendant of its arm (L Arm Start).

If the parameter is automatically mapped using a preset (Mapping parameter), the mapped joint will show up in grey text in the parameter field. You can type in the parameter field to override the automatic mapping.

Export

Exports the current mapping to a .json file. Later on, you can import this mapping by setting Mapping to File, and specifying this .json file in the File parameter.

Mapping

The mode or preset for automatically filling out the mappings.

Auto

Tries to match a registered preset. If all the character’s joint names match the joint names for a certain preset, it will choose that preset. The chosen preset will be shown beside this parameter.

Custom

Doesn’t perform an automatically mapping. The user needs to manually fill out the mappings.

File

Performs the mapping based on the mapping in the .json file specified in File.

<Preset>

Uses the selected mapping. If only 3 of the character’s joint names match the joint names for a preset, the 3 joints are populated in the Mapping section parameters, and the user will need to manually fill out the remaining mappings.

File

When Mapping is set to File, this is the path to the .json file with the mapping.

Head

The head joint.

Neck Start

The root joint of the neck.

Spine End

The end joint of the spine.

Pelvis

The pelvis joint.

L Arm Start

The root joint of the left arm.

R Arm Start

The root joint of the right arm.

L Hand

The left hand joint.

R Hand

The right hand joint.

L Leg Start

The root joint of the left leg.

R Leg Start

The root joint of the right leg.

L Foot

The left foot joint.

R Foot

The right foot joint.

Hands

Optionally maps the hands. Each finger is assumed to be a single joint chain without branches.

R Thumb

The root joint of the right thumb.

R Index

The root joint of the right index finger.

R Middle

The root joint of the right middle finger.

R Ring

The root joint of the right ring finger.

R Pinky

The root joint of the right pinky finger.

L Thumb

The root joint of the left thumb.

L Index

The root joint of the left index finger.

L Middle

The root joint of the left middle finger.

L Ring

The root joint of the left ring finger.

L Pinky

The root joint of the left pinky finger.

Extra

Auto Generate

When turned on, automatically maps joints based on the parameters in the Mapping section. For example, to populate the joint mapping for L Knee, it finds the parent of L Foot. These values can be overridden.

L Clavicle

The left clavicle joint. This is typically the first joint that connects the left arm with the spine.

R Clavicle

The right clavicle joint. This is typically the first joint that connects the right arm with the spine.

L Elbow

The left elbow joint. This is typically the joint between the left arm and hand.

R Elbow

The right elbow joint. This is typically the joint between the right arm and hand.

L Knee

The left knee joint. This is typically the joint between the left leg and foot.

R Knee

The right knee joint. This is typically the joint between the right leg and foot.

L Ball

The ball joint on the left foot. This is typically the joint after the left foot.

R Ball

The ball joint on the right foot. This is typically the joint after the right foot.

T-Pose

Generate T-Pose

When turned on, attempts to generate a T-pose for the input skeleton and stores it in the Output Attribute transform point attribute. Uses a rest pose or frame as a starting point.

Output Attribute

The name of the point attribute to store the T-pose.

Source Method

The method to generate the T-pose.

Attribute

Generates the T-pose using a rest pose attribute.

Time Shift

Generates the T-pose from a frame.

T-Pose Source Attribute

When Source Method is set to Attribute, this is the rest pose attribute from which to generate the T-pose.

Tip

If you don’t have a rest attribute on your character, you can use the Rig Stash Pose SOP to store a frame as a pose.

Frame

When Source Method is set to Time Shift, this is the frame at which to generate the T-pose.

Stretch

T-Pose Stretch

When turned on, stretches the pose into a T-pose. When turned off, stores the input pose (from Source Method) into Output Attribute.

Neck

A blend value for the rotation of the neck so that from Neck Start to Head, it points straight upwards.

Pull

Straightens the neck. A value of 1 turns the neck into a straight line.

Spine

A blend value for the rotation of the spine so that from Pelvis to Spine End, it points straight upwards.

Pull

Straightens the spine. A value of 1 turns the spine into a straight line.

Arms

A blend value for the rotation of the arms so that from Arm Start to Head, it points straight outwards.

Pull

Straightens the arms. A value of 1 turns the arms into straight lines.

Legs

A blend value for the rotation of the legs so that from Leg Start to Foot, it points straight downwards.

Pull

Straightens the legs. A value of 1 turns the legs into straight lines.

Align Shoulders

When turned on, attempts to align the shoulders in the X direction.

Stretch Hands

When turned on, fully straightens the fingers.

Stretch Feet

When turned on, straightens the feet to point downward.

Output

Biped Attribute

When turned on, outputs the biped mapping attribute generated from the mappings in the Mappings section. This is stored as a point attribute on the output skeleton and is required for the Biped Retarget SOP.

Biped Tags

When turned on, outputs the biped_tags attribute. This is the same data as Biped Groups, but stored as tags in a string array attribute per point.

Biped Groups

When turned on, outputs the biped* point groups that define the different body parts. This is required by the Biped Retarget SOP to specify groups of joints for certain parameters.

Viewer State

Offset

The offset of the interactive skeletons.

Inputs

Input Skeleton

The SOP skeleton to modify.

Outputs

Output Skeleton

The modified SOP skeleton.

See also

Geometry nodes