Houdini 20.5 Nodes Geometry nodes

Agent Layer 2.0 geometry node

Adds new shapes and layers to an agent primitive.

On this page
Since 19.0

This node adds new shapes and layers to the agent definition. A layer contains one or more shape bindings, which reference a shape from the agent’s shape library and specifies the deformer that is used (or the joint to attach a static shape to). After populating the crowd, multiple layers can be assigned to each agent to create geometry variations.

Parameters

Group

The agents to be modified.

Shapes

Shape Name Attribute

When turned on, adds new shapes to the shape library from the second input’s geometry. The specified primitive string attribute is used to identify the primitives that belong to each shape in the second input’s geometry. For every unique value that is specified, a shape is added to the shape library using the primitives that have that attribute value.

If the shape is added to a layer, and the boneCapture point attribute is present, the shape binding uses the linearskinning deformer by default. If the deformSkinMethod attribute is also present (as used by the Joint Deform SOP when Skinning Method is From Input Geometry), the shape binding uses the specified skinning method.

If the shape geometry consists of a single packed primitive, and its point is weighted to a single joint (i.e. describing a rigid deformation), this is translated into a static shape binding.

The shape geometry may also contain blend shapes in the format of the Rest Geometry input for the Character Blend Shapes SOP.

Keep External References

When new shapes are added to the shape library, a copy is first made so that the modifications do not affect other agents that reference the original shape library (such as those in the input SOP’s geometry). When this option is turned on, and the original shape library references a file on disk, the new shape library is marked as including the original shape library. In this situation, when the agent is saved to a geometry file, the path to the original shape library is saved out along with any new shapes that were not included from the original library. Otherwise, the entire shape library is saved to the geometry file, and the original shape library file is not referenced.

Shape Bindings

Bounds Scale

A multiplier for the size of the shape’s bounding box when computing the layer’s bounds. See Agent Primitives for more information on how an agent’s bounding box is computed.

Bounds Scale Mode

This drop-down menu specifies how the bounds scale is determined for each shape binding.

Bounds Scale Attribute

When Bounds Scale Mode is set to Set from Attribute or Scale by Attribute, this overrides or multiplies the Bounds Scale with the value of a primitive attribute on the shape geometry. This can be used to specify a per-shape bounds scale when importing multiple shapes.

Shape Deformer

Overrides the binding’s shape deformer using this deformer name.

Shape Deformer Mode

This drop-down menu specifies how the shape deformer is determined for each shape binding.

Shape Deformer Attribute

When Shape Deformer Mode is set to Set from Attribute, this overrides the binding’s shape deformer using the deformer name specified by this string primitive attribute on the shape geometry.

Transform Name

The transform in the rig to attach the shape to. This is typically only used for binding rigid shapes.

Transform Name Mode

This drop-down menu specifies how the transform name is determined for each shape binding.

Transform Name Attribute

When Transform Name Mode is set to Set from Attribute, this overrides the transform in the agent’s rig that the shape will be attached to, using the value of a primitive attribute on the shape geometry.

Layers

Set Current Layers

When turned on, specifies the new layers that are displayed. This is done by modifying the agents' current layers.

Set Collision Layers

When turned on, specifies the new layers that are assigned to the agents' collision layers.

Layer Name Attribute

When Shape Name Attribute is turned on, this primitive string attribute (on the second input’s geometry) is used to specify the layer that the shape is added to. This can be useful for procedurally partitioning the new shapes into layers. For example, if the Layer Name Attribute is the same as the Shape Name Attribute, a separate layer will be created for each individual shape.

Number of Layers

The number of layers to create. When Layer Name Attribute is turned on, these layers are merged with the layers specified by the Layer Name Attribute.

Layer Name

When turned on, creates a new layer with the specified name.

Shapes

When Shape Name Attribute is turned on, this specifies the new shapes that are added to this layer. The pattern follows the same syntax as the match VEX function.

Solo Layer

When turned on, only this layer is displayed (overriding the Set Current Layers parameter). This can be useful for quickly visualizing the shapes in a specific layer.

Use Existing Shapes

Source Layer

When turned on, specifies the name of an existing layer to copy shape bindings from.

Filter by Shape

When Source Layer is turned on, this specifies a pattern of shape names. Shape bindings that use these shapes (and also match the Source Layer Bindings pattern) are copied from the Source Layer. The pattern follows the same syntax as the match VEX function.

Filter by Transform

When Source Layer is turned on, this specifies a pattern of transform names. Shape bindings that are attached to these transforms are copied from the Source Layer. The pattern follows the same syntax as the match VEX function.

Shape Bindings

The number of shape bindings to create from existing shapes.

Shape Name

When turned on, creates the shape binding with the specified shape in the agent’s shape library.

Shape Deformer

Overrides the binding’s shape deformer using this deformer name.

Bounds Scale

A multiplier for the size of the shape’s bounding box when computing the layer’s bounds. See Agent Primitives for more information on how an agent’s bounding box is computed.

Transform Name

The transform in the rig to attach the shape to. This is typically only used for binding rigid shapes.

Inputs

Agents

Agent primitives to be modified.

Shape Geometry

Optional input providing the shapes to be imported when Shape Name Attribute is turned on.

Capture Pose

Optional input providing the character’s capture pose for skin deformation. This overrides the capture data stored in the shape geometry’s boneCapture attribute.

Each joint in the skeleton is represented by a point, where the P and transform (matrix3) attributes contain the joint’s transform. The point’s name attribute contains the joint’s name, and is matched up with the capture paths in the shape geometry’s boneCapture attribute. The skeleton’s hierarchy is represented by two-point polygons between the points for each child joint and its parent.

Outputs

Agents

The modified agent primitives.

Examples

LayerVariations Example for Agent Layer geometry node

This example demonstrates how to create several layers with different geometry variations and randomly assign those layers to agents.

See also

Geometry nodes