Houdini 22.0 Character KineFX

APEX graph debugger

Inspect the values of an APEX graph’s ports within the APEX network view.

On this page

The APEX graph debugger is a feature of the APEX network view that allows you to execute an APEX graph and inspect the values of the graph’s ports natively within the viewer.

You can turn on the debugger in the APEX network view by pressing ⌃ Ctrl + D or selecting Debug ▸ Enable Debugger on the top toolbar. This executes the graph, and when you hover over a port, a tooltip appears, showing the value of the port.

Viewing graphs

When a SOP node is selected, the APEX network view attempts to display an APEX graph from the geometry in the node’s first output. If the geometry is not an APEX graph, the APEX network view displays the message, “No graph available”.

You can also have the APEX network view display the APEX graph on a node inside an HDA:

  1. click the HDA and select Type Properties.

  2. In the Edit Operator Type Properties window, go to the Node tab.

  3. Set the Dive Target field to the internal HDA node you want to display the graph of. The dive target syntax is:

    graph:apex:<path_to_internal_node>
    

    After you do this, a badge is displayed beside the HDA in the network view, and you can double-click the HDA to dive into the APEX network view.

Note

You can make an HDA dive into the graph on its own first output (as opposed to an internal node) by setting its Dive Target to “graph:apex:.”. The “.” is the relative path to the HDA node itself.

Graph execution

A graph’s default parameters are used as its input values when the graph is executed. Some HDAs override these parameters to provide alternative input values as the graph executes.

A port is only evaluated if it is part of the graph logic that connects to an output node on the graph. If a port is not evaluated, its tooltip will show Not Evaluated. In the graph below, the red nodes are not part of any graph logic that connects to an output node, so its ports are not evaluated:

Ports on the red nodes are not evaluated

Debugging rigs

The APEX Scene Animate SOP can display a character’s rig graph and provide the debugger with live input values from the animate state. To debug from the animate state:

  1. Enter the animate state - select the APEX Scene Animate SOP, turn on its display flag, and click Animate on the toolbar to the left of the viewport.

  2. Dive into the APEX Scene Animate SOP by double-clicking the node. This takes you to the APEX network view.

  3. In the animate state, select a control. The APEX network view displays the rig graph that contains the control. For example, if you have two characters in the scene, selecting a control on one character will display the rig graph for that character. If you select a control on a different character, the APEX network view will switch to display the rig graph of the other character.

  4. In the APEX network view, turn on the debugger. The port values update as the values of the controls change.

Debugging rig components

The APEX AutoRig Component SOP can display two types of graphs - a character’s rig graph and a component script graph (the graph that generates the rig). You can specify the graph to display in the APEX AutoRig Component SOP’s Show Graph parameter.

Debugging the rig graph

When Show Graph is set to Rig, you can use the APEX AutoRig Component SOP to test a rig using the animate state. The debugger shows different port values depending on whether or not you are in the animate state on the APEX AutoRig Component SOP.

Animate state is active

If you are in the animate state on the APEX AutoRig Component SOP, you can debug the rig similar to how it’s done on the APEX Scene Animate SOP above:

  1. Enter the animate state on the APEX AutoRig Component SOP - select the APEX AutoRig Component SOP, turn on its display flag, and click Animate on the toolbar to the left of the viewport.

  2. Dive into the APEX AutoRig Component SOP by double-clicking the node. This takes you to the APEX network view, which displays the rig graph.

  3. In the APEX network view, turn on the debugger. The port values update as the values of the controls in the viewport change.

Animate state is not active

The APEX network view displays the character’s rig graph even if you are not in the animate state on the APEX AutoRig Component SOP. This is in contrast to the APEX Scene Animate SOP, which requires you to be in the animate state for the rig graph to be displayed.

  1. Dive into the APEX AutoRig Component SOP by double-clicking the node. This takes you to the APEX network view.

  2. In the APEX network view, turn on the debugger. The port values show the rig graph’s default values rather than the values provided by the animate state.

In this example, we see the difference in a port’s values before and after entering the animate state. In the image below, the character’s left hand control has been moved from its rest position in the animate state:

Character in the animate state

The graphs below show the translate value of the left hand before (left) and after (right) entering the animate state:

Default port value (left); live port value (right)

Debugging the component graph

When Show Graph is set to Component Script, the APEX network view displays the component graph (the graph that generates the rig) rather than the rig graph. In this case, the graph’s input values do not come from the animate state, so you don’t need to be in the animate state for the debugger to pick up the correct input port values. The input values are instead populated from the rig component’s parameters on the APEX AutoRig Component SOP.

To debug a component graph:

  1. Dive into the APEX AutoRig Component SOP by double-clicking the node. This takes you to the APEX network view, which displays the component graph.

  2. In the APEX network view, turn on the debugger. The port values show the values passed through the component graph.

KineFX

Overview

Preparing character elements

Rigging with APEX graphs

  • APEX graph basics

    Introduction of the APEX graph evaluation framework.

  • APEX graph debugger

    Inspect the values of an APEX graph’s ports within the APEX network view.

  • APEX Script basics for graph building

    An overview of APEX Script, a code interface for building APEX graphs.

  • Graphs for numerical operations

    Example graphs of numerical operations like adding two values, fetching multiple results, and retrieving information from geometry.

  • Graphs for viewport animation

    Example graphs of animate state functionality like creating controls and constraints, and defining joint hierarchies.

  • Graphs for deforming geometry

    Example of a SOP network and APEX graph for deforming a 3-joint tube geometry.

  • Graph metadata

    Information added to graph nodes and ports.

  • APEX path pattern

    A set of rules that allow you to filter and select elements within graphs, skeletons, geometry, and the character folder structure.

  • APEX graph nodes

    APEX nodes provide operations for building up the functionality of APEX graphs, which are used in KineFX to create character rigs and perform other geometry manipulation.

  • APEX updates for H22

    New and updated APEX graph nodes for Houdini 22.

Building rig graphs with APEX Script

Rigging with rig components

Animating in the viewport

  • Animation workflow

    Example networks of adding characters, props, characters, and animation to a scene.

  • Animating in LOPs

    Rig and animate characters and props in the context of a USD stage.

  • Working in the animate state

    Select and manipulate controls, define transform limits for controls, and add skin controls to a character.

  • Animate state menus and HUDs

    Menus, HUDs, toolbars, and options in the animate state.

  • Animate state hotkeys

    Hotkeys available in the animate state.

  • Posing

    Pose characters in the animation scene by using locators, copying and pasting controls, and mirroring poses.

  • Motion paths

    Visualize the motion of controls as curves in 3D space.

  • Constraints

    Create relationships between controls in the animate state.

  • Dynamic motion

    Add physically-accurate projectile motion to your animation in the animate state.

  • Ragdoll

    Add a ragdoll simulation to your animation in the animate state.

  • Full body IK

    Apply full body inverse kinematics to pose the character using high-level targets rather than manipulating individual joints.

  • Secondary motion

    Add physically-accurate effects like lag/overshoot, jiggle, and spring to your animation in the animate state.

  • Control selection sets

    A tree view of controls, selections, and selection sets for the animate state. Allows management of control selection and visibility.

  • Motion mixer

    Combine and edit the animation clips of multiple characters in a timeline-based view.

  • Character picker

    Create a 2D layout with simple buttons for selecting character controls in an animation scene.

  • Animation catalog

    Save, manage, and apply animations and single-frame poses to an animation scene.

  • Animation layers

    Create multiple layers of animation without affecting the original animation.

  • Animation toolbar

    A customizable toolbar consisting of simple slider tools that quickly apply modifications to animation controls and curves.

  • Animation bookmarks

    Frame markers that help organize and identify the different parts of your animation.

Customizing the animate state

SOP-based animation

  • Physics-based motion

    Add physically-accurate motion to your animation using the Projectile Motion and Pendulum Motion SOPs.

  • Ragdoll simulations

    Add a ragdoll simulation to your animation using the Ragdoll Solver SOP.

Deformation

  • Blend shapes

    Create blend shapes using blend shape SOP nodes.

Animation retargeting

Pre-H20

Panes

  • Motion mixer

    A timeline-based view of the animation clips and motion effects of multiple characters.

  • Character picker

    Create a 2D layout with simple buttons to select character controls in an animation scene.

  • Rig tree view

    A hierarchical view of character components, including packed character folders, KineFX rigs, and Object node rigs.

  • Animation editor

    View and edit animated parameters and their transitions between keyframes.

  • Geometry spreadsheet

    Displays details about the geometry selected in the network editor.

Appendix