Houdini 20.5 Nodes Geometry nodes

APEX Add Groom geometry node

Adds a groom to an existing APEX Character.

On this page

Adds a groom from the second input to the first input’s APEX character.

Without further setup, this will deform curves with the character, simply sticking each curves root to the closest location on the skin.

You can also add controls to a subset of curves. Other curves will then move and deform with these directly controlled curves.

This operator works for both hair and feather grooms.

Feather Grooms

When dealing with feathers, polygon surfaces are automatically generated and added to the rig. These are what animators will see in the Animate state. These can be fetched from the animated scene using APEX Scene Invoke for further processing, simulation & rendering.

The original curves are resampled and also output as part of the rig. They are a required part of the deformer used to deform surfaces.

You may input custom polygon surface (Usually generated using Feather Surface) via the third input. This allows you to make custom tweaks to the polygon surfaces.

Parameters

Groom

Group

The groom curves to add to the groom.

Short Curve Mode

Keep

Keep all curves

Cull

Cull curves below the Length Threshold.

Length Threshold

The length below which curves will be culled.

Output Curves

Output curves from the APEX rig. This will make curves visible in the animate state, and will make it possible to fetch them using APEX Scene Invoke.

Output Surfaces

Output feather surfaces from the APEX rig. This will make feather surfaces visible in the animate state and will make it possible to fetch them using APEX Scene Invoke.

Joints

Name Prefix

An arbitrary prefix to add to joint names.

Append Name Attribute

Append name primitive attribute found on curves to generated joint names.

Skin Vector Attribute

A vector attribute on the skin which can be used to calculate joint transforms. The default N can often work fine, but in some cases you may need to generate a specific attribute for this purpose - for example a tangent attribute using the PolyFrame SOP.

Output Influence Regions as Color

Colors curves within the influence area of each joint group using the group’s color.

Control Groups

Group

The group of curves to serve as controls.

Suffix

An arbitrary suffix to add to joint names.

Joint Properties

Naming Order

Defines the order of joint chains for naming purposes, this is done by sorting curve root positions along an axis.

Jount Count

The number of joints in each joint chain. Setting this to 0 will create a joint for each segment in the input curve.

Orient to Skin Vector Attribute

Orient the Y axis of joint chains to the Skin Vector Attribute.

Flip Axes

Flip a pair of axes on each joint chain.

Root Color

The root color of each joint chain. The color of joint between root and tip will be a blend of the two.

Tip Color

The tip color of each joint chain. The color of joint between root and tip will be a blend of the two.

Width

The width of controls geometries.

Joint Influence

Mask Attribute

An attribute to define the influence of this joint group over each curve in the groom. This is expected to be a primitive attribute on the input curves.

Limit Influence Distance

Limit the influence of this joint group to a maximum distance from a control curve.

Core Distance

This control group can exert full control over curves within this distance of a control curve.

Maximum Distance

The maximum radius of control for this joint group. Influence of a control group fades between the Core Distance and this Maximum Distance.

Rig

Set Up Rig

Sets up the curve deformer & constraints within the APEX rig. When this is disabled, the curve & surface geometries will be added to the character, but will not be set up to animate in any way.

Node Prefix

A prefix to prepend to the name of all created APEX node.

skinnormalattrib

The skin normal attribute to use for constraining curves to skin geometry.

skintangentattrib

The skin tangent attribute to use for constraining curves to skin geometry.

Geometry nodes