Houdini 20.5 Nodes Geometry nodes

Stabilize Joint geometry node

Removes jitter from the input animation and handles geometry snapping of joints.

On this page
Since 18.5

This node stabilizes the input joints by removing position or rotation jitter from their animation. It also handles interaction with custom geometry and allows for geometry proximity detection and snapping.

Parameters

Mode

Choose whether to apply the stabilization on the input joints directly, or export a set of custom point attributes with the stabilization data. For the Output Stabilization Attributes and Pass Through options, the actual transformations of the joints are not modified.

Transforms to Modify

Transforms of the input joints to modify.

Update Children Transforms

When turned on, applies the transformations to the input joints and their children. When turned off, applies the transformations only to the input joints.

Joint Group

Group of joints to stabilize.

Apply Effect Only to Range

When turned on, applies the effect only in the specified Frame Range instead of on the whole MotionClip from the 2nd input.

This parameter is only available when the MotionClip input is connected.

Clip Range

Read the frame range from the clipinfo detail attribute on the input geometry, or set a custom frame range.

Frame Range

The custom frame range of the animation. This parameter is only available when Clip Range is set to Custom Frame Range.

Use the action button on this parameter to populate the values from either the clipinfo detail attribute, the scene frame range, or the playback frame range.

Position Output Attribute Name

Name of the point attribute containing the position stabilization data.

This parameter is only available when Mode is set to Output Stabilization Attributes, and Transforms to Modify is set to P and Transform or P only.

Rotation Output Attribute Name

Name of the point attribute containing the rotation stabilization data.

This parameter is only available when Mode is set to Output Stabilization Attributes, and Transforms to Modify is set to P and Transform or Transform only.

Max Position Change

When turned on, sets the distance tolerance before the joint stabilization is unlocked. It has an effect on position only. The distance is calculated between the same joint from two consecutive frames.

Max Angle Change

When turned on, sets the angle tolerance before the joint stabilization is unlocked. It has an effect on rotation only. The angle difference is calculated between the same joint from two consecutive frames.

Distance To Geometry

When turned on, sets the geometry distance tolerance before the joint stabilization is unlocked. It has an effect on position only. The distance to geometry is calculated between the joint and the closest primitive or point on the geometry’s surface, at each frame.

Blend In Frames

Number of frames to blend in to the stabilization.

Blend Out Frames

Number of frames to blend out of the stabilization.

Min Amount of Frames to Lock

When turned on, specifies the minimum number of frames that a joint needs to stay locked for in order to be considered. If a locked segment is shorter than this value, it will be discarded.

This parameter only applies to the automatic lock options Max Position Change, Max Angle Change, and Distance To Geometry.

Loosen Effect

Loosens the effect of the stabilization, resulting in a less rigid effect.

Guide Color

For better visualization, color the joints as they are stabilized. The first value of the ramp indicates the color of the joints while not being stabilized. The last value of the ramp indicates the color of the joints while fully stabilized.

Guide Mode

Specifies whether to visualize the position or rotation stabilization values.

Overrides

Joints

Group of joints to override the stabilization of.

Frame Range

Frame range when the override should take effect.

Lock Option

Choose between stabilizing (locking) the specific joint (Lock) or unlocking it (Unlock).

Stabilize Option

Choose whether to stabilize the Position, Rotation or both the Position and Rotation of the specified joint.

Rotation when Position is Locked

This option locks the rotation when the position is locked. The effect is applied on the full animation length instead of a specific frame range.

Tip

This option is useful for examples like Reverse Foot, where setting the toe marker to Rotation when Position is Locked will keep it from rotating while the foot is planted.

Blend In Frames

Number of frames to blend in to the stabilization of this specific override. If set to -1, the global Blend In Frames value will be used.

Blend Out Frames

Number of frames to blend out of the stabilization of this specific override. If set to -1, the global Blend Out Frames value will be used.

Unlock Early Frames

Unlock the rotation stabilization faster than the position stabilization by this number of frames. Only relevant if the Rotation when Position is Locked option is selected.

Target Geometry Options

Type

Type of the input target geometry.

Direction

Direction to check for intersection with the target geometry. Useful when, for example, the input character is walking close to a wall, and you want to stabilize the feet joints only when they touch the floor.

Use Distance to Compute Intersections Only

When turned on, this option will disable any stabilization coming from the Distance To Geometry feature and will only keep the intersection data. This can be useful if you want to add manual overrides and have those match the orientation of the geometry. Any Rotation lock that is within the Distance To Geometry threshold will rotate the joint to match the Orientation Attribute of the geometry.

Enable Snapping

When turned on, snaps the joint to the collision geometry’s closest primitive or point when within the Distance To Geometry tolerance.

Offset Joint

Offsets the joint from the geometry snap location in world or local space.

This parameter is only available when Enable Snapping is turned on.

Match Orientation

When turned on, choose to rotate the joint to match the geometry’s Orientation Attribute before or after the contact. Contact is defined as when the joint gets within the Distance To Geometry tolerance.

Orientation Attribute

The attribute that marks the orientation of the primitive or point from the target geometry.

Note

If the Type is set to Primitives, the Orientation Attribute has to be a vector. If the Type is set to Points, the Orientation Attribute has to be a vector, 3×3 matrix, or 4×4 matrix.

Custom Joint Axis

When turned on, specifies the axis of the stabilized joint to match the target geometry orientation. The axis must be provided in the joint’s local space.

Axis Attribute

The vector attribute that defines the Custom Joint Axis of the input joint. Useful when, for example, one input joint is mirrored, and you want to specify different axes for each joint.

This parameter is only available when Custom Joint Axis is set to From Attribute.

Blend In Frames

Number of frames to rotate the joint to match the geometry’s Orientation Attribute.

Blend Out Frames

Number of frames to rotate the joint back to the original input rotation.

Inputs

Target Skeleton

The input skeleton to be processed.

MotionClip

The animated input skeleton, in the form of a MotionClip. This input can be useful if you want to chain multiple Stabilize Joint nodes together and avoid computing a new MotionClip for each node, or if you want to run the animation through Adapt to Terrain.

Target Geometry

The geometry to use to compute the Distance To Geometry.

Outputs

Target Skeleton

The input skeleton with stabilized joints.

MotionClip

The animated input skeleton, in the form of a MotionClip. This MotionClip holds the Output Stabilization Attributes, as well as the actual modified joint transforms.

See also

Geometry nodes