Houdini 21.0 Nodes Geometry nodes

Agent Relationship geometry node

Creates parent-child relationships between agents.

On this page
Since 16.0

This node creates parent-child relationships between agents, where one agent follows the transforms of another agent. This is useful for scenarios such as attaching riders to horse or car agents. Agents can have multiple children attached to them, and the parent-child hierarchy can be arbitrarily deep.

By default, the agents in the second input are attached sequentially to the agents in the Parent Group, looping around if necessary. For custom setups, the agentrel_parentid point attribute can be used to specify the parent agent to attach to. See agent relationships for more information.

Parameters

Attach Child Agents

These parameters are only available if the Child Agents input (2nd input) is connected.

Parent Group

The parent agents to attach the child agents to.

Match Parent Agent Scale

When turned on, modifies the child agent’s scale to match the parent agent’s scale. This is useful if the parent agents have varying scales and you want the child agents to be scaled by the same amount as their parents.

Parent Joint

When turned on, the child agent (or one of its joints) can be attached to a particular joint of the parent agent, in addition to inheriting the parent agent’s transform. This parameter specifies the joint to attach the child agent to.

Child Joint

(Optional) When Parent Joint is turned on, this is the joint of the child agent (such as the hip) to align with the Parent Joint.

Constraint Type

When Parent Joint is turned on, this specifies whether to constrain the child agent to the position of the Parent Joint, the rotation, or both.

Translate

An additional translation to adjust the child’s transform.

Rotate

An additional rotation to adjust the child’s transform.

Transform Child Agents

When turned on, updates the child agents' transforms to attach to their parents. This is done automatically by the crowd solver at each timestep, but can be applied here to immediately visualize the attachment or to attach agents to existing crowd motion.

Group

When Transform Child Agents is turned on, this specifies the root agents of the parent-child hierarchies to update.

Attributes

This node creates the following point attributes. If any of these attributes are already present on the input agents, they will override the corresponding parameters.

Name Class Type Description
agentrel_parentid Point Integer

Identifies the parent agent. This uses the id point attribute if present. Otherwise, it uses point numbers. A value less than 0 indicates that the agent does not have a parent.

agentrel_type Point Integer

Indicates whether to match the parent joint’s position, rotation, or both. The specifications for the values are found in $HFS/houdini/vex/include/crowd_relationships.h.

agentrel_parentjoint Point String

A joint of the parent agent that the child agent attaches to.

agentrel_childjoint Point String

A joint of the child agent that is aligned with the parent agent’s joint.

agentrel_P Point Vector

An additional translation for the child agent.

agentrel_orient Point Quaternion

An additional rotation for the child agent.

Inputs

Agents

A crowd of agents. This input could already contain parent/child agent pairs.

Child Agents

(Optional) The new agents to attach to agents in the Agents input.

Outputs

Agents

The input agents with the Child Agents merged in.

Examples

AgentRelationshipBasic Example for Agent Relationship geometry node

This example demonstrates how to create a simple parent-child agent setup.

See also

Geometry nodes