Houdini 20.0 Nodes Geometry nodes

Configure Joints geometry node

Configures joint properties like local center of mass and transformation limits and creates a center of mass joint.

On this page
Since 18.5

This node generates a set of joint configurations that specify the target skeleton’s behavior in various contexts, like when a full-body inverse kinematics solver is applied (for example, with the Full Body IK SOP) or when an RBD solver is applied (for example, with the Ragdoll SOP). It also creates a center of mass joint based on the existing joint configurations.

State

The handles that are available in the Configure Joints viewport state provide an interactive way to set the rotation and translation limits, as well as center of mass and mass values for the joints.

Not all the handles are available for each Mode. Handle availability per mode is as follows:

  • Ragdoll mode - Rotation handle only.

  • Rig Pose mode - Rotation and translation handles.

  • Full Body IK mode - Rotation, translation, and center of mass handles.

When the appropriate viewport state toolbar options are turned on, dragging these handles automatically creates Configuration multiparms for the selected joints, and sets their Limits and Local Center of Mass parameters based on which handles you manipulate and how you manipulate them.

Configure Joints viewport state toolbar

Configure

Sets the type of handles that are visible in the viewport state - for Center of Mass or Limits.

Mass

When turned on, the Mass parameter for the selected joint and link are automatically adjusted based on your manipulations of the mass handle’s manipulators.

Local Center of Mass

When turned on, the Local Center of Mass parameter for the selected joint and link are automatically adjusted based on your manipulations of the local center of mass handle’s manipulators.

Rotation Limits

When turned on, the XYZ Angle Range parameters for the selected joint are automatically adjusted based on your manipulations of the rotation handle’s manipulators.

Translation limits

When turned on, the XYZ Translation Range parameters for the selected joint are automatically adjusted based on your manipulations of the translation handle’s manipulators.

Configure Joints viewport state hotkeys

Hotkeys

Action

LMB drag

Manipulates handles in the default interactive manner.

⌃ Ctrl + LMB drag

Handle snaps to locations in space by large increments as you drag it. Provides a coarse level of control for the handle’s movements.

Set the increment value from the Handle Parameters window (RMB a handle ▸ Handle Parameters):

  • Translate Step for the translation handle.

  • Angle Step for the rotation handle.

  • Scale Step for the center of mass handles.

⇧ Shift + LMB drag

Handle moves slowly and smoothly through space in tiny increments as you drag it. Provides fine-level control of the handle’s movements.

Alt + LMB drag

Manipulates both sides of an XYZ handle’s manipulator at the same time. Provides symmetrical control of the handle’s movements.

⇧ Shift + F

Flips a handle’s twist axis (first axis in the rotation order) and keeps the handle’s values the same. This makes it easier to set the rotation limits for hinge joints like elbows and knees.

Hold G

Temporarily turns off visibility of the center of mass handle shapes.

Configure Joints viewport state right-click menu

Enable Local Center of Mass of Selected

Turns on all the Local Center of Mass parameters for the selected joint and link.

Enable Rotation Limits of Selected

Turns on all the XYZ Angle Range Limits for the selected joint.

Enable Translation Limits of Selected

Turns on all the XYZ Translation Range Limits for the selected joint.

Disable Local Center of Mass of Selected

Turns off all the Local Center of Mass parameters for the selected joint and link.

Disable Rotation Limits of Selected

Turns off all the XYZ Angle Range Limits for the selected joint.

Disable Translation Limits of Selected

Turns off all the XYZ Translation Range Limits for the selected joint.

Reset Local Center of Mass/Limits

Resets the Local Center of Mass parameter values for the selected joint and link to their default values.

Focus Selected in Parameter Editor

When turned on, the Configuration multiparm and all of its parameters for the selected joint are always in view in the parameter editor.

Filter Selected in Parameter Editor

When turned on, only the Configuration parameters for the selected joint are visible in the parameter editor.

Configure Joints viewport state visualizations

Orange squares on joints indicate that they have rotation limits defined. Green squares indicate that they have translation limits defined.

Rotation handle

Moving the X, Y, and Z axis manipulators adjusts the respective X Angle Range, Y Angle Range, and Z Angle Range parameters.

General manipulation of the rotation handle

Translation handle

Moving the X, Y, and Z axis manipulators adjusts the respective X Translation, Y Translation, and Z Translation parameters.

General manipulation of the translation handle

Center of mass handle

Moving the local center of mass manipulator adjusts the joint’s Local Center of Mass parameter. Scaling the mass manipulator adjusts the joint’s Mass parameter.

General manipulation of the center of mass handles
Configure Joints viewport state handle parameters window

To bring up the Handle Parameters window, RMB a handle and select Handle Parameters.

Rotation handle parameters

Angle Step

The rotation handle’s manipulators snap to a new location at this increment interval (in degrees) when you move them with ⌃ Ctrl + LMB drag. By default, a handle manipulator snaps to new locations every 45 degrees.

Limit Display Type

Determines how the angle (limit) range between rotation handle manipulators appear in the viewport state.

Circles

Angle ranges appear as 2D circles.

Limit Display Type = Circles

Sphere

Angle ranges appear as 3D spheres.

Limit Display Type = Spheres

Orient Circles by Rotation Order

When turned on, the rotation handle’s XYZ manipulators align themselves with the top-level Rotation Order parameter or (if defined) the Rotation Order on the joint’s Configuration multiparm. This is useful as its visualization quickly indicates if the rotation order for a joint is incorrect.

When turned off, the rotation handle’s manipulators are perpendicular to the joint with the twist axis' manipulator pointing down the joint’s link from parent to child. Orient Circles by Rotation Order is turned on by default.

Orient Circles by Rotation Order on/off

Orient Twist Circle to Current Rotation

When turned on, the rotation handle and its angle range circle/sphere for the twist axis (first axis in the rotation order) follows its joint as it rotates. This is helpful when you are rotating the joint and want to see the twist’s angle range circle/sphere. Orient Twist Circle to Current Rotation is turned off by default.

Show Current Rotation

When turned on, additional lines appear on the rotation handles' angle range circles/spheres that indicate the current orientations for their joint’s X, Y, or Z axes. This allows you to see the starting point of a joint’s angle ranges so that it is easier to determine the proper rotation limits to set. Show Current Rotation is turned off by default.

Show Current Rotation = on

Translation handle parameters

Translate Step

The translation handles snap to a new location at this increment interval (in Houndini units) when you move them with ⌃ Ctrl + LMB drag. By default, the handle snaps to new locations every 0.1 units.

Center of mass handle parameters

Scale Step

The center of mass and mass handles snap to a new location at this increment interval (in Houndini units) when you move or scale them with ⌃ Ctrl + LMB drag. By default, the handles snap to new locations every 0.1 units.

Parameters

Mode

The configuration you want to define for the target skeleton.

Full Body IK

Defines the target skeleton’s configurations for running a full-body inverse kinematics solver.

Note

This only affects the result when using the Physical Full Body IK solver. It will have no effect when using FABRIK.

Ragdoll

Defines the target skeleton’s rotation limits used in the Ragdoll Solver SOP.

Rig Pose

Defines the target skeleton’s rotation and/or translation limits used in the Rig Pose SOP, Secondary Motion SOP or other setups that use them.

Output Configuration Attribute

Name of the output point attribute that contains the configurations.

Rest Pose Attribute

When turned on, transforms the skeleton based on the name of the matrix4 point attribute containing the rest pose for the target skeleton. When turned off, the input pose is used as the rest pose.

Rotation Order

The default rotation order for each of the joint Configurations multiparm entries. When Compute Limits for Joints from MotionClip is turned on, this rotation order is used when cracking the Euler angles from the MotionClip input for all joint Configurations that do not have their Rotation Order set.

Compute

Add Point at Center of Mass

When turned on, creates a new point on the input geometry at the computed centers of mass for the whole skeleton.

Point Name

The name of the newly created center of mass point.

Compute Center of Mass for Joints

When turned on, performs a heuristic based on edge length to initialize the local centers of mass for all the points on the input geometry.

Compute Center of Mass for Joints From Input

When turned on, initializes the local centers of mass for all the points on the input geometry from the 2nd input.

Input Type

Specifies the type of geometry (from the 2nd input) to compute the local centers of mass from.

Skin Geometry

Computes the mass for all the points on the input geometry using the boneCapture attribute on the skin geometry.

Collision Shapes

Computes the mass for the points on the input geometry that have a corresponding collision shape, using the volume of the provided collision shape. Collision shapes can be created using the Ragdoll Collision Shapes SOP.

Compute Center of Mass Position

When turned on, initializes the local center of mass position for the points on the input geometry from the centroid of the corresponding collision shape.

This parameter is available when Input Type is set to Collision Shapes.

Use Density Point Attribute to Compute Mass

When turned on, initializes the mass for the points on the input geometry from the density point attribute of the corresponding collision shape. When this option is turned off, the density defaults to 1.0.

This parameter is available when Input Type is set to Collision Shapes.

Normalize Mass

When turned on, outputs the normalized mass values.

Compute Limits for Joints from MotionClip

When turned on, computes the rotation and translation limits for all the points on the input geometry from a MotionClip.

Group

Only compute limits for the specified points.

This parameter is available when Compute Limits for Joints from MotionClip is turned on.

Clip Range

Reads the frame range from the clipinfo detail attribute of the MotionClip or sets a custom frame range.

This parameter is available when Compute Limits for Joints from MotionClip is turned on.

Frame Range

The MotionClip frame range to compute limits from.

This parameter is available when Compute Limits for Joints from MotionClip is turned on.

Map Using

Specifies whether to use point numbers to look up the corresponding points in the provided MotionClip skeleton or match them by an attribute. For example, the Match By Attribute option is useful when the MotionClip skeleton contains a subset of the target skeleton’s points.

Point Number

Match points on the target skeleton to corresponding points on the MotionClip skeleton using their point numbers.

Match By Attribute

Match points on the target skeleton to corresponding points on the MotionClip skeleton using a given point attribute. For example, if Attribute To Match is set to name, the points on the target skeleton are matched to points on the MotionClip skeleton that share the same name.

This parameter is available when Compute Limits for Joints from MotionClip is turned on.

Rotation Limits

When turned on, computes rotation limits from the MotionClip.

This parameter is available when Compute Limits for Joints from MotionClip is turned on.

Translation Limits

When turned on, computes translation limits from the MotionClip.

This parameter is available when Compute Limits for Joints from MotionClip is turned on.

Guides

Rotation Limits Guide Color

The color to visualize the points that have a configured rotation limit, visible in the node viewer state.

Translation Limits Guide Color

The color to visualize the points that have a configured translation limit, visible in the node viewer state.

Configurations

Configurations

The number of joint groups to configure.

Group

The points that are configured.

Rotation Order

When turned on, adds the rotation order key to the dictionary attribute. Specifies the rotation order in which the joint’s transform are decomposed into Euler angles and then reconstructed after the rotation limits have been applied. Also controls the order in which the Euler angle rotation limits are generated when the Compute Limits for Joints from MotionClip is turned on.

Note

For Ragdoll, it specifies the twist (direction to the child) and up (direction to pole vector) joint axes needed for the Cone Twist Constraint. For example, a rotation order of Rx Ry Rz assigns the twist axis to X and the up axis to Y.

Rotation Weights

When turned on, adds the rotation weights key to the dictionary attribute. Specifies the weights for the joint’s rotation axes. Given a larger relative weight, the solution tends to be achieved by rotating around that axis. A weight of zero disables the rotation axis.

Note

To prevent a particular axis from rotating, it is much more efficient to set its weight to zero instead of setting its rotation limits to zero when using the Full Body IK SOP.

Translation Weights

When turned on, adds the translation weights key to the dictionary attribute. Specifies the weights for the joint’s translation axes. Given a larger relative weight, the solution tends to be achieved by translating along that axis. A weight of zero disables the translation axis.

Note

To prevent a particular axis from translating, it is much more efficient to set its weight to zero instead of setting its translation limits to zero when using the Full Body IK SOP.

Rest Rotation Weights

When turned on, adds the rest rotation weights key to the dictionary attribute. Rest Rotation Weights is a vector specifying how strongly the solver attempts to match the rest transform for the rotation axes. A value of 0.1 is typically a suitable value when enabling the rest transform constraint, and a value of 0 disables it.

Note

This has a lower priority than any of the end effector targets. The rest weights do not interfere with reaching any of the targets; they determine how hard to try to get the joint closer to its rest pose if it can do so, for example, if it has no target.

Rest Translation Weights

When turned on, adds the rest translation weights key to the dictionary attribute. Rest Translation Weights is a vector specifying how strongly the solver attempts to match the rest transform for the translation axes. A value of 0.1 is typically a suitable value when enabling the rest transform constraint, and a value of 0 disables it.

Note

This has a lower priority than any of the end effector targets. The rest weights do not interfere with reaching any of the targets; they determine how hard to try to get the joint closer to its rest pose if it can do so, for example, if it has no target.

Local Center of Mass

Mass

The mass of the joint.

Local Center of Mass

The local translation of the center of mass for the joint.

Limits

X Angle Range

The rotation limits around the joint’s X axis.

Y Angle Range

The rotation limits around the joint’s Y axis.

Z Angle Range

The rotation limits around the joint’s Z axis.

X Translation Range

The translation limits along the joint’s X axis.

Y Translation Range

The translation limits along the joint’s Y axis.

Z Translation Range

The translation limits along the joint’s Z axis.

Attributes

The Output Configuration Attribute dictionary point attribute stores the configurations. For more details on the valid keys, see the jointoptions parameter for solvephysfbik and solvefbik.

Inputs

Target Skeleton

The skeleton to create the configurations for.

Compute Center of Mass From

When Compute Center of Mass for Joints From Input is turned on, specify the Input Type to use (Skin Geometry or Collision Shapes) to compute the center of mass for the points.

MotionClip

When Compute Limits for Joints from MotionClip is turned on, specify the MotionClip geometry to use to compute the joint limits.

Outputs

Target Skeleton

See also

Geometry nodes