Houdini 21.0 Nodes Geometry nodes

APEX Autorig Component 3.0 geometry node

Procedurally adds a rig component to an APEX rig.

On this page
Since 21.0

This node procedurally augments an APEX character, most commonly an APEX rig, using rig components. Rig components are either pre-built components shipped with Houdini, or you can create your own components to be reused in different rigs.

Parameters

Component Source

The source of the component. The options are:

  • Choose from the list of available rig components in your components library, including pre-built components and your custom components.

  • If set to Use Second Input, the rig component script from the second input is used.

  • If set to Snippet, you can write APEX Script code in the Snippet text block to create your own custom component.

  • If set to File, uses the component defined in Component File's .bgeo file.

  • If set to Fuse Graph, you can merge the graph from the second input into the existing rig on this node.

  • If set to Deprecated, choose from the list of deprecated components in the drop-down menu that appears beside the Component Source drop-down.

Component Source Reload

Reloads/updates your library of components.

Edit Source

Allows you to edit a component’s source code. Clicking sets the Component Source to Snippet, fetches the source code of the component, and inserts it into the Snippet parameter as APEX Script code. It also populates some of the fields in the Save tab. This is useful if you want to use a component’s code as a starting point for creating a custom component.

Component File

When Component Source is set to File, this is the file path of the rig component to use.

Rig

Rig Source

The operation to perform on the rig in the CharacterStream input.

Add or Update

Adds/updates the specified rig in the CharacterStream input. If no rig exists, one is created if possible.

Add or Replace

Adds/replaces the specified rig in the CharacterStream input.

Name

The name of the rig in the CharacterStream input.

Build Rigscript

When turned on, creates a rig component script with the specified name in the character folder structure. If you daisy-chain multiple APEX Autorig Component SOPs, this builds up the rig script node by node.

Guide Skeleton

Guide Source

The operation to perform on the skeleton in the CharacterStream input.

Add or Update

Adds/updates the specified skeleton in the CharacterStream input. If no skeleton exists, one is created if possible.

Add or Replace

Adds/replaces the specified skeleton in the CharacterStream input.

Name

The name of the skeleton in the CharacterStream input.

Shape

Shape Source

The operation to perform on the shape in the CharacterStream input.

Add or Update

Adds/updates the specified shape in the CharacterStream input. If no skeleton exists, one is created if possible.

Add or Replace

Adds/replaces the specified shape in the CharacterStream input.

Show Graph

Show

Specifies the graph to show in the APEX network view.

Rig

The resulting rig graph extracted from the character.

Component Script

The current component script that modifies the character.

Rig Script

When Build Rigscript is turned on, this is the component script that is built up node by node if you daisy-chain multiple APEX Autorig Component SOPs.

Highlight Added Nodes

When turned on, highlights the newly added nodes in green, and greys out the other nodes. This makes it easier to see the graph changes made by this component.

Highlight Reconnected Nodes

When turned on, highlights the nodes with connections added, modified, or removed in the rig graph.

Layout Graph

When turned on, applies an automatic layout to the rig graph.

Automatically Reset Test Animation

When turned on, automatically resets the animation performed in the viewport when any changes are made to the parameters. When turned off, click the button to reset the animation.

Component

This section contains parameters specific to the current operation or rig component, and will look different depending on the selected Component Source option.

For rig components, the parameters are derived from the inputs of the component script. In this way, the APEX Autorig Component SOP serves as an interface for configuring component script inputs.

View Log

Opens the log viewer.

Reset Animation Parms

Removes all the spare parameters used as inputs for the component script.

Reload Setup Parms

Updates the parameters in this section to those of the current component. This is useful if the component’s input parameters have changed.

Use Fusion Graph

When turned on, merges the graph from the second input (called the fuse graph) into the existing rig on this node. This parameter is available when Component Source is set to Snippet or Fuse Graph. If Component Source is set to Snippet, the fuse graph is not automatically merged in to the current rig graph. Instead, the fuse graph is set to a variable named template_graph, which you can use to specify how to add the fuse graph to your current graph. For example, you can simply merge the fuse graph in, add it to a subnet, or loop over it multiple times. When Component Source is set to Snippet and Use Fusion Graph is turned on, the header Template is set to Fuse Graph.

Exclude Nodes

When Use Fusion Graph is turned on, this is an APEX path pattern that defines a group of graph nodes that can be safely removed before the fuse graph operation. This is helpful when a full rig is piped into the second input on this node, but only a small number of nodes are necessary for the actual fuse operation.

Tip

It is recommended to exclude unnecessary nodes, as this can greatly speed up the fuse graph operation.

These parameter are available when Component Source is set to Fuse Graph. The fuse graph operation allows you to merge a graph from the second input of this node (called a fuse graph) into an existing rig. See merging graph functionality for examples of the fuse graph operation.

Fuse Graph Tag

The tag to add to the nodes merged in from the fuse graph.

Mirror

When turned on, mirrors the graph functionality on both sides of the rig.

From

When Mirror is turned on, this is the side of the character to mirror from. This pattern refers to the name of the TransformObject nodes in the rig graph, which represent the skeleton joints.

To

When Mirror is turned on, this is the side of the character to mirror to. This pattern refers to the name of the TransformObject nodes in the rig graph, which represent the skeleton joints.

Fuse Graph Body Side

When Mirror is turned on, this is the side of the character that the fuse graph functionality is set up for. It is recommended to build the fuse graph for the left side of the character. This way, it will be ideally prepared if you want to use the new component interactively with the APEX Autorig Builder SOP.

Mapping

The number of mappings to create between the skeleton joints.

From

The TransformObject node in the fuse graph that has the existing functionality.

To

The TransformObject node to put the functionality on. If no matching TransformObject node exists, a new one is created and positioned at the matching joint on the fuse graph.

Component Snippet

This section is available when Component Source is set to Snippet.

Snippet

The APEX Script snippet to execute.

Settings

Inspect Line

When turned on, the specified line of code in the Snippet is colored red. This helps with debugging.

Show Traceback

When turned on, shows all the error messages with a full traceback.

Header

When turned on, a header and footer is added to the snippet. Headers and footers are predefined code snippets that are inserted before and after the current snippet, and are executed together with the snippet. The header and footer help to standardize common operations such as converting a geometry input to a graph and then back into a geometry, and fetching a rig graph from a character folder structure.

Template

The header template to use for the current snippet.

Basic

Adds an empty template.

Graph

Converts a geometry that is bound to one of the graph inputs to a graph (in the header), and rewrites the graph back to geometry (in the footer).

Component

Fetches the rig graph from a packed character geometry (in the header), and updates the packed character geometry with the graph at the footer.

Custom

Allows the user to edit the header and footer.

Fuse Graph

Provides the variable, template_graph, which contains the fuse graph that is piped into the second input on this node.

Add Version

When turned on, adds the Houdini version to the header, which sets the version of APEX functions to use. This allows for backward compatibility in case new versions of functions with different arguments are added. See special functions for more information.

Show

When turned on, shows the header and footer.

Edit

When turned on, allows the header and footer to be manually edited.

Advanced

Enable Partial Evaluation

When turned on, provides partial evaluation optimizations on the component script graph by only executing the portions of the graph that:

  • Depend on input parameters that have changed.

    and

  • Contribute to the outputs requested by this node.

Color New Nodes

When turned on, colors the nodes added with the current component script in the specified color. This color is added to the output graph. It can be used for debugging to easily associate each node with a source component script.

Rig Script

This tab is available when Build Rigscript is turned on. In this section, you can specify the parameters in the rig script that you want to make available in the parameter interface.

Parm

The component parameter to promote.

Alias

A new name for the parameter.

Save

This tab is available when Component Source is set to Use Second Input, Snippet, or Fuse Graph.

Component Name

The name of the component. For example, if you set the namespace field to test, the name field to hello, and version to 2.0, your component will be named test::hello::2.0.

Tip

It is recommended to use namespaces with your custom components to help with categorizing and sorting your components and preventing name clashes with Houdini’s pre-built components.

Component Label

A user-friendly label for the component. This label is used in the Component Source drop-down menu and the component catalog HUD in the Autorig Builder viewer state.

Component Icon

The path to a .png file to use as an icon in the component catalog HUD. If no image is provided, a default icon is used.

Component Categories

Category names that can be used as filters in the component catalog HUD. The category names are added as tags on the component.

Deprecated

When turned on, marks the component as deprecated. After saving the component, it appears in a drop-down menu of deprecated components when Component Source is set to Deprecated.

Save as Config of

When turned on, saves the current component as a version of the specified (reference) component. This adds an additional entry in the Autorig Builder’s component catalog. It doesn’t duplicate the reference component’s implementation for the new component; rather it uses the reference’s implementation along with different default parameters for the new component. For example, if the limb is the reference component, you can create an arm component that is essentially the limb with different default parameters.

Config Parms

When Save as Config of is turned on, these are the reference component’s parameters to override for the new component. If set to “*”, the new component overrides all the reference component’s parameters.

Use with Rig Builder

When turned on, the saved component is available in the component catalog for interactive drag and drop in the Autorig Builder viewer state. All interactive components have a menu added to the guides in the Autorig Builder viewer state. This menu allows the user to change the component parameters interactively in the viewport.

Component Output File

The file path to save the component to.

Note

The component must be stored in a folder named apexcomponent in the HOUDINI_PATH.

Save to Disk

Saves the component to Component Output File.

Note

If you store the component script under $HIP/apexcomponent/ or $HOME/apexcomponent/, it is automatically picked up by Component Source.

Rig Builder

These parameters allow you to make the component available as an interactive tool for the APEX Autorig Builder SOP. This section is available when:

  • Component Source is set to Use Second Input, Snippet, or Fuse Graph.

    and

  • In the Save tab, Use with Rig Builder is turned on.

See preparing components for the Autorig Builder for more information.

Drag Drop Interaction

Defines the configuration for the guides in the Autorig Builder and the drag-and-drop interaction from the component catalog.

Deformer

This option is used for deformers, which don’t map to specific joints on a skeleton, but are instead applied to the overall character, for example, the delta mush rig component.

Skeleton

This option allows you to use a small section of a skeleton, a reference skeleton, to map to existing guide joints using the drag-and-drop interaction in the Autorig Builder. If the reference skeleton joints are not mapped to existing joints, new joints are created. All the mapped or newly-created joints are tagged with the current segment name.

Note

It is recommended to define a “segments” parameter that specifies where to apply the component. The Autorig Builder picks up on the “segments” keyword and allows the user to apply the component to different parts of the character in the drag-and-drop interaction. See preparing components for the Autorig Builder for more information.

All the tags and properties that are stored on the joints of the reference skeleton are tranferred to the existing guide joints. If new joints are created, the names of the reference skeleton joints are used. The bodyside indicators (for example, L_* and R_*) can be conveniently replaced with the bodyside indicators that are used in the Autorig Builder (parameters Left and Right in the APEX Autorig Builder SOP).

Add2BoneIK

This option can be used for a 3-joint setup. It requires a 3-joint reference skeleton, and adds an IK guide placement option that makes it easier to align the joints and reposition the root without changing the tip position of the guides.

Joint Chain

This option can be used for components that require a joint chain with a flexible number of joints, for example, a spine, FK chain, or custom spline setup where the user may want to change the number of joints in the Autorig Builder. The drag-and-drop interaction can be applied to any joint chain in an existing rig. If new guide joints are created, the guide joints can also be positioned using IK controls that are based on a spline setup, making it easier to create nicely curved joint chains.

Tag

This option allows you to apply the component to pre-existing tags using the drag-and-drop interaction in the Autorig Builder. When dragging, a visualizer for the tags is shown and the appropriate tag parameters are populated with the selected tags.

Note

The tags are entered as an APEX path pattern. For example, if you want to apply an IK component to all the legs of a spider, and you already have tags Leg_01, Leg_02, etc. on the spider legs, you can use the tag #Leg* to apply the IK component to all the joints tagged with Leg_*.

Config Control

Generate from Component Parms

Automatically populates the Config Control Parms multiparm with the component’s input parameters that are in the parameter interface. If the component is created using APEX Script, these are the parameters defined with BindInput(). Click the button to have the parameters appear in the parameter editor (see creating graph interfaces for more information). If the component is defined using an APEX graph, these are the graph input parameters.

Config Control Parms

The parameters that are added to the component’s menu on the guides. The menu appears in the Autorig Builder for each component segment, and allows the user to interactively set the parameters for the component.

Note

Not all the component parameters are necessary in the Autorig Buider’s menu. It is recommended to add only the parameters that the user will more often change, as this makes the interactive tool less cluttered and easier to use.

Parameter

The name of the component’s input parameter. If the component is created using APEX Script, the component’s input parameters are defined with:

<parameter_name>: <parameter_type> = BindInput()

See specifying graph inputs and outputs for more information on the BindInput() function.

The drop-down menu beside Parameter defines the type of menu option to create. The options under the menu provide an interactive way of setting the component parameters. (These parameters can also be set in the parameters HUD by selecting the menu and pressing G over the viewport.)

Slider

A float slider that can be dragged horizontally to set the parameter value.

Icon Menu

A menu with a list of menu entry names (Menu Entries parameter) and matching icons (Menu Entry Icons parameter). For example, if you set Menu Entries to “ball cross ducky”, and Menu Entry Icons to “sphere_m crossplanes_wires rubber”, the following options appear in the component’s menu. Click and drag the icon to open the menu of available items:

Color

A menu of color presets. For example, if you define the following parameter in APEX Script:

testcolor: Vector3 = BindInput((1, 0, 1))

The following option appears in the component’s menu:

Click and drag the color icon to open a menu of available colors.

Shape

A menu of control shapes, chosen from a predefined list. In the viewport, click and drag the shape icon to open a menu of available shapes.

Joint Tag

A button that allows you to specify the tag on the guide that the component applies to. The following option is added to the component’s menu:

See the gear menu options for how to use the tag option.

Rig Tag

A button that allows you to specify the tag on the test rig that the component applies to. The following option is added to the component’s menu:

See the gear menu options for how to use the tag option.

Parent

A button that allows you to set the parent of a control. The following option is added to the component’s menu:

See the gear menu options for how to reparent a control.

Child

A button that allows you to set the child of a control.

Toggle

A click-and-drag horizontal toggle control to set a bool value for the component parameter.

Name

A string field for the component. This option only appears in the parameters HUD (select the menu and press G over the viewport). To define a default value for this parameter, you can use BindInput() in APEX Script, or set the default parameters in the graph (for example, using graph::SetDefaultParms).

For example, if you:

  1. Define the following parameter in APEX Script:

    testname: String = BindInput('C_main C_layout')

  2. Set Parameter to testname.

  3. Set the drop-down menu to Name.

The testname parameter will appear in the parameters HUD:

Int Menu

A radial menu with number icons to set an integer parameter value. The following option is added to the component’s menu:

Click and drag the number icon to open a menu of available values.

Channel Widget Only

Adds a parameter to the parameters HUD (also referred to as the channel widget). This option requires you to specify the type of the parameter, so that the correct type can be added to the parameters HUD. For example, if you:

  1. Define the following parameter in APEX Script:

    test: Bool = BindInput(True)

  2. Set Parameter to test.

  3. Set the drop-down menu to Channel Widget Only.

The test parameter will appear in the parameters HUD as a checkbox (boolean) but it won’t appear in the menu:

Note

Not all parameter value types can be added to the parameters HUD. The valid options are Bool, Integer, Float, Vector3, and String.

Reference Skeleton

This section is only available when Drag Drop Interaction is set to Skeleton. A reference skeleton is a small section of the input skeleton that is relevant for the current component. It can be used to map to existing guide joints using drag and drop. If the reference skeleton joints are not mapped to existing joints, new joints are created. All the mapped or newly-created joints are tagged with the current segment name.

Skeleton Source

The source of the skeleton to use. Defaults to the provided input skeleton, Guide Skeleton. Alternatively, the skeleton can be picked up from the character folder structure provided in the second input.

Joint Group

The joints that define the segment of the component. If a full skeleton is provided in Skeleton Source, select only the joints that are necessary to define the segment of the component. For example, if you build a component that adds functonality to the arm, only the arm joints on the left side of the character should be included in this parameter.

Remove Side Indicator

A wildcard pattern that defines the side of the skeleton, for example, L_*. This bodyside indicator is removed from the reference skeleton joint names before the component is stored so that the component can be used in the Autorig Builder even if the APEX Autorig Builder SOP has different bodyside indicators (parameters Left and Right).

Preview Rig Builder

When turned on, you can see a preview of the look of the Autorig Builder guide in the viewport. This is useful for checking the layout of the menu defined by Config Control Parms.

Mirror

When turned on, shows the look of the reference skeleton if it is mirrored.

Left

A wildcard pattern for the left side of the character’s guide joints.

Right

A wildcard pattern for the right side of the character’s guide joints.

Inputs

CharacterStream

The APEX character geometry in a character folder structure.

Component Script

The geometry containing an APEX graph to invoke for the component.

Outputs

CharacterStream

The modified APEX character geometry in a character folder structure.

Component Script

The geometry in a packed character folder structure.

Examples

NeckComponent Example for APEX Autorig Component geometry node

This example demonstrates how to use the neck rig component for the Otto test geometry.

RigCharacter Example for APEX Autorig Component geometry node

This example demonstrates how to use pre-built rig components to build up a rig for Electra.

RootComponent Example for APEX Autorig Component geometry node

This example demonstrates how to use the root rig component to add root controls for the Electra test geometry.

See also

Geometry nodes