Houdini 21.0 Character KineFX

Posing in the animate state

On this page

The animate state provides several convenient options for posing characters in your animation scene, including locators for rotating groups of controls, copying and pasting controls, and mirroring poses.

Locators

A locator is an element that is added to the animate state for use as a pivot point for rotating groups of controls. It can be used to perform FK-type posing for a character. A locator is not part of the rig.

Locators are created using the Locator tool, which can be accessed by clicking on the top toolbar, or selecting Locator from the radial menu (press C over the viewport).

To...Do this

Create a locator as a pivot

Place your mouse over the desired locator position and press H.

Rotate about a locator / Perform FK-type posing

  1. Select the locator.

  2. Select the selection set or group of controls you want to rotate about the locator.

  3. Hold ⌃ Ctrl + ⇧ Shift when rotating.

Note

If you don’t hold ⌃ Ctrl + ⇧ Shift when rotating groups of controls, all the controls will rotate about their local axes. See global transform mode.

Rotate about locator
FK-type posing

Change the size and shape of a locator

changes the shape of the selected locator.

⇧ Shift + changes the size of the selected locator.

Change the color of a locator

  1. Press G to bring up the parameters HUD.

  2. In the Locator tab, set the color of the locator.

Copying and pasting controls

The copy and paste functionality for controls is accessed through the following options in the context menu:

Copy Selection

Copies the selected controls to the clipboard.

Paste World Transforms

Moves the selected controls to the world position of the controls that were copied with the Copy Selection option. The paste operation tries to match up the control names that are copy/pasted.

Select controls to copy (left); select controls to move/paste (middle); pasted world transforms (right)

If multiple controls are selected with Copy Selection, and the paste operation is not able to match up the control names between the copy and paste operations, the selected controls for the paste operation is moved to the position of the primary control from the Copy Selection. The primary control is the control on which the transform handle is placed during the copy operation.

Paste Local Transforms

Performs the same local transforms on the selected controls as was done on the Copy Selection controls. The paste operation tries to match up the control names that are copy/pasted.

Select controls to copy (left); select controls to move/paste (middle); pasted local transforms (right)

If multiple controls are selected with Copy Selection, and the paste operation is not able to match up the control names between the copy and paste operations, the selected controls for the paste operation is moved to the local position of the primary control from the Copy Selection. The primary control is the control on which the transform handle is placed during the copy operation.

Mirroring poses

In the animate state, you can mirror the position, rotation, and scale of controls. To mirror controls on a single character or on multiple characters:

  1. Select the control(s) you want to mirror. Hold ⇧ Shift or box select to select multiple controls.

  2. click in the viewport, go to Actions, and select Mirror with Default or Mirror with Plane:

    • Mirror with Default mirrors the selected controls across the same plane that the rig is mirrored across without any additional user input. The plane that the rig controls are mirrored across is determined in the rig setup.

    • Mirror with Plane puts you in the mirror pose state, where you can adjust any of the previously selected controls, as well as the mirror plane. Press ⌃ Ctrl + G to bring up a HUD with the mirror settings, which allows you to set certain configurations before mirroring is applied. Press Enter while hovering over the viewport to apply the mirroring.

      Note

      Only the joints that were selected before entering the mirror pose state are selectable (available for mirroring) in the mirror pose state.

    In the example below, Electra’s leg controls (left image) are mirrored to the other side of the rig (right image).

    Original pose (left); mirrored pose (right)

    For singular controls that don’t have an equivalent control on the other side of the rig (for example, the spine and chest controls), mirroring is performed by flipping the control across the mirror plane:

    Mirrored singular controls

    Note

    By default, the mirroring operation expects the mirrored controls on the rig to be named <control>_l and <control>_r. If the controls are not named this way, use the APEX Configure Character SOP to specify how the controls on the rig are named. This information is then used in the mirroring operation. See the How-to for information on how to do this.

Adding keyframes to the mirrored controls

To add and update keyframes on the mirrored controls:

  1. Select the control(s) you want to mirror.

  2. Enter the mirror pose state - click in the viewport and select Actions ▸ Mirror with Plane.

  3. Press ⌃ Ctrl + G to bring up the settings HUD.

  4. In the Bake tab, click Bake Keys. If Bake to New Layer is turned on, the keys will be added to a new animation layer. If Bake to New Layer is turned off, the keyframes will be added to the current animation layer.

See the baking settings for descriptions of the available options in the Bake tab of the settings HUD.

Mirror settings

The mirror settings allow you to set configurations for the mirroring operation. To bring up the mirror settings:

  1. Select the control(s) you want to mirror.

  2. click in the viewport and select Actions ▸ Mirror with Plane.

  3. Press ⌃ Ctrl + G to bring up the settings HUD.

  4. Select the Mirror tab.

Setting

Description

Mirror to Opposite Control

When turned on, performs mirroring on the opposite control. When turned off, performs mirroring on the currently selected control.

Components

The tranform components to mirror - translate, rotate, scale.

Flip Axes

Use this option to fix strange rotations when mirroring.

Mirror Plane

The plane within the rig that the controls are mirrored across when the character is at rest position.

Follow Joint

When turned on, the mirror plane follows the selected joint as you move a control. This option only has an effect if the control moves the selected joint. For example, if you select the right elbow joint, and move the right hand control, the mirror plane follows the movement of the right elbow joint. However, if you select the left elbow joint, and move the right hand control, the mirror plane does not move.

Plane Intersection

Options for displaying the outline of where the character intersects with the mirror plane. The Hide During Playback option could result in a performance improvement during playback.

Show plane intersection (left); hide plane intersection (right)

Live Preview

When turned on, shows a live preview of the mirroring performed.

Outline Overlay

When turned on, shows a live preview of the mirroring as an overlay layer.

Note

When mirroring singular controls, turn on the Outline Overlay option. Using Live Preview without Outline Overlay does not work well with singular controls, as singular controls are itself mirrored, which results in the display of the rig switching between the original control position and the mirrored result every time the control is moved.

How-to

To...Do this

Specify how the controls on the rig are named

Use the APEX Configure Character SOP to specify how the controls on the rig are named if they are named differently than the default <control>_l and <control>_r that is expected by the mirroring operation.

The APEX Configure Character SOP takes in a packed character:

APEX Configure Character SOP to specify control naming

For example, if the rig has controls named <control>_l_ik, set the following parameters:

  • Token Position = Middle.

  • Left Token = _l_

  • Right Token = _r_

To specify multiple naming configurations, turn on Bind Multiple Configurations, and click beside Mirror Configurations.

The mirror pattern is stored in the detail attribute mirror_pattern on the character rig. To view the mirror_pattern attribute, extract the rig using the Unpack Folder SOP, and use the geometry spreadsheet:

Extract rig to view mirror pattern
  1. In the Unpack Folder SOP, set Extract Pattern to /**/*rig.

  2. Select the Unpack Folder SOP in the network view.

  3. At the top of the pane where you want to open the geometry spreadsheet, click the New Tab icon and select New Pane Tab Type ▸ Inspectors ▸ Geometry Spreadsheet.

  4. In the geometry spreadsheet, select Detail from the top toolbar.

  5. click the entry in the properties row under the Detail column, and select Inspect. The Inspect Attribute window that pops up will display the following mirror pattern:

    "mirror_pattern":{
        "left_pattern":"*_l_*",
        "right_pattern":"*_r_*"
    

The controls named with the *_l_* and *_r_* pattern are now recognized by the mirroring operation.

Note

If there is no mirror_pattern in the detail attribute on the rig, the default pattern of *_l and *_r is used.

Swap the poses on the two sides of a character

  1. Select the “mirrored” controls on both sides of the character, for example, arm_l and arm_r.

  2. click in the viewport, go to Actions, and select Mirror with Default or Mirror with Plane.

The example below displays the original pose (left image) and the swapped pose after mirroring (right image).

Original pose (left); swapped pose (right)

Perform mirroring on the selected control

  1. Select the control(s) you want to mirror.

  2. click in the viewport, go to Actions, and select Mirror with Plane.

  3. In the mirror settings, turn off Mirror to Opposite Control.

  4. Adjust the mirror plane in the viewport using the handle.

  5. Press Enter.

Mirror a character in world space

  1. Select all the controls on a character.

  2. click in the viewport, go to Actions, and select Mirror with Plane.

  3. Select and move the mirror plane using the handle.

  4. Press Enter.

Mirror in world space

Mirror the control position while keeping the original orientation

  1. Select the control(s) you want to mirror.

  2. click in the viewport, go to Actions, and select Mirror with Plane.

  3. In the mirror settings, Components field, deselect rotate and scale.

  4. Press Enter.

In the example below, only the position of Electra’s hand is mirrored. The rotation of Electra’s right hand remains unchanged.

Original pose (left); only the position of the control is mirrored (right)

Mirror across a joint

  1. Select the control(s) you want to mirror.

  2. click in the viewport, go to Actions, and select Mirror with Plane.

  3. Select a joint on the character to mirror the controls across.

  4. Press Enter.

Have the mirror plane follow the movement of the selected joint

  1. Select the control(s) you want to mirror.

  2. click in the viewport, go to Actions, and select Mirror with Plane.

  3. In the mirror settings, turn on Follow Joint.

  4. Select a joint on the character.

  5. Move a control around.

Note

This option only has an effect if the control moves the selected joint. For example, if you select the right elbow joint, and move the right hand control, the mirror plane follows the movement of the right elbow joint. However, if you select the left elbow joint, and move the right hand control, the mirror plane does not move.

Change the preview options

In the mirror settings, set the Plane Intersection, Live Preview, and Outline Overlay options.

Fix strange rotations when mirroring

In the mirror settings, try selecting different axes in the Flip Axes option, or see the how-to “Override the plane that the rig controls are mirrored across”.

Override the plane that the rig controls are mirrored across

The mirroring operation expects the controls on the rig to be mirrored across the YZ plane. This is the default rig mirror plane. If the controls are mirrored across a non-YZ plane on the rig, this must be specified in one of two ways:

  • Use the APEX Configure Character SOP and set the Rig Symmetry Plane parameter to the plane that the rig controls are mirrored across when the character is at rest position. See “Specify how the controls on the rig are named” above for information on where to place the APEX Configure Character SOP in the network and how to view the mirror axis information in the geometry spreadsheet.

    The mirror axis information is stored in the mirror_axis detail attribute on the rig. It has the following format, which can be viewed in the geometry spreadsheet:

    "mirror_axis":[1,0,0]
    

    For example, if the APEX Configure Character SOP’s Rig Symmetry Plane is set to XY, then setting the mirror settings' Mirror Plane to Use Rig Value will tell the mirroring operation that the controls on the rig are mirrored across the XY plane.

    The APEX Configure Character SOP adds this information directly on the rig.

  • If the rig mirror plane has not been set properly in the rig, the Mirror Plane option in the mirror settings can be used to specify the plane that the rig controls are mirrored across when the character is at rest position.

Note

The rig mirror plane is the plane that the controls are mirrored across within the rig. The Mirror Plane in the mirror settings refers to this rig mirror plane, not the plane that is used to perform the mirroring operation in the animate state. You should not use the Mirror Plane value to set the position/orientation of the plane for mirroring. Use the mirror plane handle in the viewport for the mirroring operation instead.

Move the mirror plane back to the local rig plane

Select the mirror plane, in the viewport, and select Revert ▸ Revert Handle to Default Values.

KineFX

Overview

Preparing character elements

Rigging with APEX graphs

Building rig graphs with APEX Script

Rigging with rig components

Animating in the viewport

SOP-based animation

Deformation

Animation retargeting

Pre-H20

Panes

Appendix