Houdini 20.5 Nodes Geometry nodes

Secondary Motion geometry node

Adds secondary motion effects to a static or animated input KineFX joint, skeleton, or character.

On this page
Since 19.0

This node applies various motion effects like Overshoot, Lag, Jiggle, and Spring to a series of point attributes by computing their change over time.

Parameters

Active Points

Displays the currently selected joints. This parameter is turned off and does not modify the scene geometry in any way. It is solely used by the viewer state.

Joint Group

Specifies the group of joints to apply the effect to.

Driver Joint

When turned on, specifies the custom joint that drives the effect applied to the Joint Group. The animated data (localtransform or other attributes) will be read from the joint, the effect will be applied on top of the joint, and the joint will drive the Joint Group.

Note

The driver joint itself will not be modified.

You can only select a single driver joint.

Apply Effect Only to Range

Apply the effect only in the specified Frame Range instead of on the whole MotionClip from the 2nd node 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.

Tip

The MotionClip inside this node will also be computed at the Frame Range, so if you want to affect only a portion of the full animation, set the frame range to the full clip range, and use the Blend parameters to apply the effect to only a specific portion of the clip.

Mode

Determines the Joint Group point attributes to affect with the secondary motion.

Local Transform

The secondary motion affects the localtransform on the specified Joint Group joints.

Other Attribute

The secondary motion affects the custom attribute specified in the Attributes field.

Modify in Place

When turned on, the node modifies the input animation directly or outputs the resulting MotionClip only. The MotionClip output will always have the secondary motion effect applied.

Configuration Attribute

When turned on, applies transformation limits (as defined by a Configure Joints SOP) to the Joint Group. Specify the name of the configuration point attribute.

This parameter is only available when Mode is set to Local Transform.

Note

Setting the rotation_weights or translation_weights to 0 will zero out the limit on the corresponding axis.

Tip

This is useful for preventing intersections caused by the motion effect.

Rest Pose Attribute

When turned on, uses the specified rest transform point attribute to properly apply the localtransform from the Driver Joint to the Joint Group when their orientations are different.

This parameter is only available when Mode is set to Local Transform.

Tip

If the joints in the Joint Group have the same orientation as the driver joint, using a rest transform is not required.

Use Rest Pose Attribute to Apply Limits

When turned on, applies the transformation limits (defined by Configuration Attribute) from the rest pose specified by Rest Pose Attribute, instead of from the rest pose that the limits were defined in.

When defining transformation limits (with the Configure Joints SOP node, for example), a rest_xform key is added to the dictionary attribute that specifies the rest pose in which the limits were configured. This parameter allows you to overwrite that rest pose with the one specified by Rest Pose Attribute.

This parameter is only available when Configuration Attribute and Rest Pose Attribute are turned on.

Attributes

Specifies the point attributes on the Joint Group for the secondary motion to affect. You can specify your own custom attribute or select from the following list: Cd (color), P (position), rest_transform, or transform. Attributes is set to P by default.

This parameter is only available when Mode is set to Other Attribute.

Note

The following attribute types are supported: float, vector2, vector, 3x3 matrix, 4x4 matrix.

Tip

If the specified attribute is a vector describing an Euler rotation (for example, the result of running a cracktransform on a transformation matrix), try running it through an Euler filter first for better results (for example, cracking it using Attribute Transform Extract).

Alternatively, you can supply the transformation matrix to the node directly, and it will take care of the filtering for you.

Extract Transform

Determines the components of the matrix to affect for matrix attributes.

Transform Order

Sets the order of transformations that is used when cracking and rebuilding transformation matrices.

Rotation Order

Sets the order of rotations that is used when cracking and rebuilding transformation matrices.

Effect Multiplier

Scales or multiplies the strength of the secondary motion effect.

Effects

Effect

Determines the effect to apply.

Lag/Overshoot

Amplifies the changes in the input data.

Lag

Lags the changes in the input data.

Lag

Sets the amount of lag. The first value controls the lag effect when the velocity is increasing, and the second value controls the lag effect when the velocity is decreasing.

Choose whether to drive the effect using parameter values or by reading in a point attribute.

Default

Use the Lag parameter to drive the effect.

Overwrite with Attribute

Use the specified point attribute, Lag Attribute, to drive the effect.

Scale by Attribute

Scale the Lag parameter by the point attribute, Lag Attribute, and use it to drive the effect.

Lag Attribute

Specifies the name of the point attribute to drive the secondary motion effect. This parameter is only available for Overwrite with Attribute and Scale by Attribute.

Overshoot

Overshoot

Sets the amount of overshoot. The first value controls the overshoot effect when the velocity is increasing, and the second value controls the overshoot effect when the velocity is decreasing.

Choose whether to drive the effect using parameter values or by reading in a point attribute.

Default

Use the Overshoot parameter to drive the effect.

Overwrite with Attribute

Use the specified point attribute, Overshoot Attribute, to drive the effect.

Scale by Attribute

Scale the Overshoot parameter by the point attribute, Overshoot Attribute, and use it to drive the effect.

Overshoot Attribute

Specifies the name of the point attribute to drive the secondary motion effect. This parameter is only available for Overwrite with Attribute and Scale by Attribute.

Jiggle

Creates a jiggling effect in the input data.

Stiffness

Sets how tight the jiggle is. Values closer to zero cause more deviation from the original data, and higher values result in less deviation from the original date.

Default

Use the Stiffness parameter to drive the effect.

Overwrite with Attribute

Use the specified point attribute, Jiggle Stiffness Attribute, to drive the effect.

Scale by Attribute

Scale the Stiffness parameter by the point attribute, Jiggle Stiffness Attribute, and use it to drive the effect.

Jiggle Stiffness Attribute

Specifies the name of the point attribute to drive the secondary motion effect. This parameter is only available for Overwrite with Attribute and Scale by Attribute.

Damping

Sets the amount of damping on the jiggle oscillations. More damping reduces the oscillation generated by abrupt changes in direction.

Default

Use the Damping parameter to drive the effect.

Overwrite with Attribute

Use the specified point attribute, Jiggle Damping Attribute, to drive the effect.

Scale by Attribute

Scale the Damping parameter by the point attribute, Jiggle Damping Attribute, and use it to drive the effect.

Jiggle Damping Attribute

Specifies the name of the point attribute to drive the secondary motion effect. This parameter is only available for Overwrite with Attribute and Scale by Attribute.

Limit

Sets the limit for how far away the point is allowed to stray from the original data before it starts to be pulled back toward it.

Default

Use the Limit parameter to drive the effect.

Overwrite with Attribute

Use the specified point attribute, Jiggle Limit Attribute, to drive the effect.

Scale by Attribute

Scale the Limit parameter by the point attribute, Jiggle Limit Attribute, and use it to drive the effect.

Jiggle Limit Attribute

Specifies the name of the point attribute to drive the secondary motion effect. This parameter is only available for Overwrite with Attribute and Scale by Attribute.

Flex

Sets the strength of the spring. Larger values cause more stray from the original data.

Default

Use the Flex parameter to drive the effect.

Overwrite with Attribute

Use the specified point attribute, Jiggle Flex Attribute, to drive the effect.

Scale by Attribute

Scale the Flex parameter by the point attribute, Jiggle Flex Attribute, and use it to drive the effect.

Jiggle Flex Attribute

Specifies the name of the point attribute to drive the secondary motion effect. This parameter is only available for Overwrite with Attribute and Scale by Attribute.

Multiplier

Controls the post-scaling effect on the result.

Default

Use the Multiplier parameter to drive the effect.

Overwrite with Attribute

Use the specified point attribute, Jiggle Multiplier Attribute, to drive the effect.

Scale by Attribute

Scale the Multiplier parameter by the point attribute, Jiggle Multiplier Attribute, and use it to drive the effect.

Jiggle Multiplier Attribute

Specifies the name of the point attribute to drive the secondary motion effect. This parameter is only available for Overwrite with Attribute and Scale by Attribute.

Warning

Only Attributes of type vector or matrix are supported by the jiggle effect, because internally, they are cracked to vectors.

Spring

Applies a vibration effect that moves with the velocity from the input data, creating an effect like a mass attached to a spring.

Spring Constant

Describes how strong the spring is. Larger spring constants produce higher frequency oscillations.

Default

Use the Spring Constant parameter to drive the effect.

Overwrite with Attribute

Use the specified point attribute, Spring Constant Attribute, to drive the effect.

Scale by Attribute

Scale the Spring Constant parameter by the point attribute, Spring Constant Attribute, and use it to drive the effect.

Spring Constant Attribute

Specifies the name of the point attribute to drive the secondary motion effect. This parameter is only available for Overwrite with Attribute and Scale by Attribute.

Mass

The mass of the object on the end of the spring. Higher masses will produce lower frequency oscillations, have higher amplitudes, and be more resistant to damping.

Default

Use the Mass parameter to drive the effect.

Overwrite with Attribute

Use the specified point attribute, Spring Mass Attribute, to drive the effect.

Scale by Attribute

Scale the Mass parameter by the point attribute, Spring Mass Attribute, and use it to drive the effect.

Spring Mass Attribute

Specifies the name of the point attribute to drive the secondary motion effect. This parameter is only available for Overwrite with Attribute and Scale by Attribute.

Damping

The amount of damping (resistance) applied to the spring action. Higher damping causes oscillations to die off more quickly.

Default

Use the Damping parameter to drive the effect.

Overwrite with Attribute

Use the specified point attribute, Spring Damping Attribute, to drive the effect.

Scale by Attribute

Scale the Damping parameter by the point attribute, Spring Damping Attribute, and use it to drive the effect.

Spring Damping Attribute

Specifies the name of the point attribute to drive the secondary motion effect. This parameter is only available for Overwrite with Attribute and Scale by Attribute.

Gravity

Applies a gravitational-like effect to the Gravity Joint Group.

Use Gravity

Performs a lookat operation for the Gravity Joint Group, and points the joints toward the Gravity Force Direction. This is similar to a Look At constraint.

Gravity Joint Group

Specifies the group of joints that the lookat affects.

Note

Only joints that are also listed in the Joint Group can be selected.

Gravity Force Direction

Specifies the direction to orient the joints.

Blend

Sets how strongly the lookat affects the joints.

Lookat

Specifies where to get the lookat vector.

From Axis

Reads the lookat vector from the Lookat Axis parameter.

From Point Attribute

Reads the lookat vector from the Lookat Attribute point attribute.

Lookat Axis

Sets the axis of the joint that point towards the Gravity Force Direction.

This parameter is only available when Lookat is set to From Axis.

Lookat Attribute

Specifies the name of the lookat axis point attribute.

This parameter is only available when Lookat is set to From Point Attribute.

Note

The point attribute must be an integer that corresponds to the Lookat Axis parameter:

  • 0: -X

  • 1: -Y

  • 2: -Z

  • 3: X

  • 4: Y

  • 5: Z

Lookup Vector

Specifies where to get the lookup vector.

From Axis

Read the lookup vector from the Lookup Axis parameter.

From Point Attribute

Read the lookup vector from the Lookup Attribute point attribute.

Lookup Axis

Sets the twist axis of the joint when performing the lookat.

This parameter is only available when Lookup Vector is set to From Axis.

Lookup Attribute

Specifies the name of the lookup axis point attribute.

This parameter is only available when Lookup Vector is set to From Point Attribute.

Note

The point attribute must be an integer that corresponds to the Lookup Axis parameter:

  • 0: -X

  • 1: -Y

  • 2: -Z

  • 3: X

  • 4: Y

  • 5: Z

Blend

After the effect has been applied, blends the selected Frame Range back to the original MotionClip using a Motion Clip Blend SOP node.

Blend Type

Sets the type of blending function to use.

Linear

Linear shape.

Ease in Ease out

Smooth on entry and exit.

Ease In

Smooth on entry.

Ease Out

Smooth on exit.

Bias

Specifies the bias of the blend. A value of 0 biases toward the base, and a value of 1 biases toward the applied effect.

This parameter is only available when Blend Type is set to Linear.

Blend In

Enable Blend

When turned off, the applied effect will be immediately applied.

Start Frame

The frame at which to begin easing into the applied effect.

End Frame

The frame at which to finish easing into the applied effect.

Blend Out

Enable Blend

When turned off, the applied effect will not fade out.

Start Frame

The frame at which to begin easing out of the applied effect.

End Frame

The frame at which to finish easing out of the applied effect.

Inputs

Skeleton

The input skeleton to be processed.

MotionClip

The animated input skeleton in the form of a MotionClip. This input is useful when you want to chain multiple secondary motion nodes together and you want to avoid computing a new MotionClip for each node.

Tip

Turn off Modify in Place when you want to chain multiple nodes together, and only turn it on for the last node in the chain. This way, you can save some computation time by passing the modifications through the MotionClip stream.

Outputs

Skeleton

The input skeleton with the effect applied.

MotionClip

The animated input skeleton after the effect has been applied, in the form of a MotionClip.

See also

Geometry nodes