Houdini 22.0 Character KineFX

Blend shapes

Create blend shapes using blend shape SOP nodes.

On this page

Blend shapes allow you to morph or blend between geometries that have the same topology. They often create and animate character deformations like facial expressions and muscle bulges.

When you import a rig into KineFX, any existing blend shape deformation data on your rig is preserved.

Also, when you combine blend shape animation with skeletal deformation, blend shapes are typically applied before the skeletal deformation.

To view, tweak, add, or extract your rig’s blend shapes, you can use the following SOP nodes:

Notes

  • The KineFX export nodes preserve all blend shape data.

  • The Character Blend Shapes SOP removes the blend shapes from the first input after they've been applied. So its inputs should be exported, not its outputs.

  • If you need to rename a blend shape after it has been added, use a Name SOP node and modify its blendshape_name primitive attribute.

View a character mesh’s blend shapes

Example: Simple network to view individual blend shapes

To view a character mesh’s individual blend shapes:

  1. Create a Character Blend Shapes Extract SOP node.

  2. Connect the Rest Geometry output (usually output 1) from your character’s import node to the input of the Character Blend Shapes Extract SOP node.

  3. Select the Character Blend Shapes Extract SOP node, turn on its Display flag, and then open the Parameter Editor.

  4. In the Parameter Editor, use the Blend Shapes parameter’s drop-down list to select the name of the blend shape you want to view.

You should now be able to see the individual blend shape target you selected with the Blend Shapes parameter on your character’s mesh in the viewport.

Example: Viewing individual blend shapes with a Character Blend Shape Extract SOP

Add blend shapes to a character mesh

Example: Network for adding a new blend shape to a character mesh

To add blend shapes to a character mesh:

  1. Create or import your blend shapes:

    • For a new blend shape you want to create in Houdini, create a geometry edit SOP like a Sculpt SOP or Edit SOP node, and then connect its input to the Rest Geometry output (usually output 1) from your character’s import node. If you want to create multiple new blend shapes, create multiple geometry edit SOP nodes.

      • Use the geometry edit node to create the blend shape from the character’s mesh.

      • Create a Merge Packed SOP node and connect the outputs of your geometry edit node(s) to the Merge Packed SOP.

    • For external blend shapes you want to use that are in a file on disk, create a File Merge SOP node.

      • Use the File multiparm on the File Merge SOP to load the external geometry file that contain the blend shapes you want to add to your character’s mesh. If you want to bring in multiple external files, then use multiple File multiparms.

  2. Name your blend shapes.

    • If you used the Merge Packed SOP, then specify the name of your blend shape in the Name parameter fields.

    • If you used the File Merge SOP, then turn on Attributes ▸ File Name Attribute to name the blend shapes after their file name.

  3. Create the Character Blend Shapes Add SOP node.

  4. Connect the output from the Merge Packed SOP or File Merge SOP node to the second input on the Character Blend Shapes Add SOP node, and then the Rest Geometry output (usually output 1) from your character’s import node to the first input on the Character Blend Shapes Add SOP node.

  5. In the Character Blend Shapes Add SOP node’s parameters, turn on Remove Unchanged Points to remove any undeformed points from the blend shapes, and then leave the Skin Name parameter field blank to use the character mesh on input 1 as the target skin for the blend shapes.

  6. Create a Character Blend Shapes SOP node and do the following:

    • Connect the outputs 2 and 3 from your character import node to the inputs 2 and 3 on the Character Blend Shapes SOP node.

    • Connect the output from the Character Blend Shapes Add SOP node to the first input on the Character Blend Shapes SOP node.

  7. Create a Joint Deform SOP node and connect all the outputs from the Character Blend Shapes SOP to all its inputs: output 1 to input 1, output 2 to input 2, and output 3 to input 3.

Edit an existing blend shape

Example: Editing an existing blend shape network

To edit an existing blend shape on a character mesh:

  1. Create a Character Blend Shapes Extract SOP node, and then connect its input to the Rest Geometry output (usually output 1) from your character’s import node.

  2. In the Character Blend Shapes Extract SOP node’s parameters, select the name of the blend shape you want to edit from the Blend Shape parameter’s drop-down list.

  3. Create a geometry edit SOP like a Sculpt SOP or Edit SOP node, and then connect its input to the output (usually output 1) of the Character Blend Shapes Extract SOP node.

  4. Use the geometry edit node to modify the topology of the blend shape you extracted.

  5. Create a Character Blend Shapes Add SOP node.

  6. Connect the output from the geometry edit node to the Character Blend Shapes Add SOP node’s second input, and then connect the Rest Geometry output (usually output 1) from your character’s import node to the first input on the Character Blend Shapes Add SOP node.

  7. In the Character Blend Shapes Add SOP node’s parameters, do the following:

    • Turn on Remove Unchanged Points to remove of any undeformed points from the blend shape.

    • Leave the Skin Name parameter field blank to use the character mesh on input 1 as the target skin for the blend shape.

    • Turn on Unpacked Shape and then select the name of the shape you want to add back to the character mesh from the drop-down list.

  8. Create a Character Blend Shapes SOP node and do the following:

    • Connect the outputs 2 and 3 from your character import node to the inputs 2 and 3 on the Character Blend Shapes SOP node.

    • Connect the output from the Character Blend Shapes Add SOP node to the first input on the Character Blend Shapes SOP node.

  9. Create a Joint Deform SOP node and connect all the outputs from the Character Blend Shapes SOP to all its inputs: output 1 to input 1, output 2 to input 2, and output 3 to input 3.

Adjust the blend shapes' weight values

Example: Network for adding a new blend shape to a character mesh + Attribute Create SOP + Character Blend Shapes Channels SOP
Example: Network for editing an existing blend shape + Character Blend Shapes Channels SOP

For new blend shapes:

  1. Create an Attribute Create SOP node.

  2. Connect the input on the Attribute Create SOP node to the third output (Animated Pose) on your character’s import node.

  3. Create a detail attribute to represent the new blend shape and gain access to its weights.

    • Create a new Number of Attributes multiparm.

    • In the Name field, type the name of the new blend shape.

    • Set the Class to Detail.

For new blend shapes and blend shapes that are already part of your character’s mesh:

  1. Create a Character Blend Shapes Channels SOP node.

  2. If your blend shape is new and you just created a detail attribute for it using an Attribute Create SOP node, then connect the output of the Attribute Create SOP node to the first input of the Character Blend Shapes Channels SOP node, and the Character Blend Shapes Channels SOP node’s output to the third input (Animated Pose) on the Character Blend Shapes SOP node.

  3. If your blend shape is already a part of your character’s mesh, then connect the third output (Animated Pose) from your KineFX character import node to the Character Blend Shapes Channels SOP node’s first input, and the Character Blend Shapes Channels SOP node’s output to the third input (Animated Pose) on the Character Blend Shapes node.

  4. In the Character Blend Shapes Channels SOP node’s parameters, do the following:

    • For every blend shape whose weight values you want to adjust or key, add a new Blends multiparm.

    • For each Blends multiparm, type the name of the blend shape whose weight values you want to adjust or key into its field and then press Enter.

    Example: Blend shape weight sliders

    Tip

    As an alternative to using a Character Blend Shape Extract SOP, you can view the names of all the blend shapes on your character from the Geometry Spreadsheet.

    • In the Network Editor, select the Attribute Expression or Character Blend Shapes node.

    • In the Geometry Spreadsheet toolbar, select Animated Pose from the drop-down menu (if applicable) and then turn on Detail attributes.

    Example: Blend shape names in the Geometry Spreadsheet
  5. For each Blends multiparm, adjust and/or key the number value fields next to their sliders to achieve the deformation effects or animated deformations you desire.

    Example: Adjusting the blend shape weight values

Add in-between shapes

Example: Network for adding an unpacked shape to a blend shape as an in-between
Example: Network for adding a packed shape to a blend shape as an in-between

You can introduce intermediary target shapes to your character blend shape setups that your hero shapes will then transition through along their way to deforming to their main target shapes. For example, you can set up a lip in-between for a mouth smile-no smile blend shape setup to avoid any interpenetration between the lip and teeth geometry of a character.

The way you add in-between shapes to your characters depends on whether those shapes are packed or unpacked geometry.

For unpacked in-between shapes:

Example: Source shape, hero target shape, and in-between target shape
  1. Create a Character Blend Shapes Add SOP node and then do the following:

    • Connect the output of your source shape’s geometry node to the first input (input 1) of the Character Blend Shapes Add SOP node. This is the shape you want to apply blend shapes to, and when adjusting its blend shape weighting, its shape corresponds to the blend weight value of 0.

    • Connect the output of your hero target shape’s geometry node to the second input (input 2) of the Character Blend Shapes Add SOP node. When adjusting the blend shape’s weighting, this shape corresponds to the blend weight value of 1.

    • In the Character Blend Shapes Add SOP node’s parameters, turn on Unpacked Shape, type the name (name attribute) for the hero target shape in its field, and then press Enter.

  2. Create another Character Blend Shapes Add SOP node and then do the following:

    • Connect the output of the first Character Blend Shapes Add SOP node to the first input (input 1) of the new Character Blend Shapes Add SOP node.

    • Connect the output of your in-between target shape’s geometry node to the second input (input 2) of the second Character Blend Shapes Add SOP node. When adjusting the blend shape’s weighting, this shape corresponds to the blend weight value specified by the Weight value on the Character Blend Shapes Add SOP node.

    • In the Character Blend Shapes Add SOP node’s parameters, do the following:

      • Turn on Unpacked Shape and then type the name (name attribute) for the in-between target shape in its field.

      • Turn on Add as In-Between Shapes and then type the name (name attribute) for the hero target shape in its field.

      • Select a Weight value for the in-between target shape. This determines where in the 0-1 blend weight range the source shape will try to morph into the in-between target shape.

  3. Create a Character Blend Shape Channels SOP node, and then connect the output of the last Character Blend Shapes Add SOP in your network to both inputs on the Character Blend Shape Channels SOP node.

  4. In the Character Blend Shape Channels SOP node’s parameters, create a Blends multiparm, type the name of the hero target shape in its field and then press Enter.

  5. Create a Character Blend Shapes SOP node, and then do the following:

    • Connect the output of the Character Blend Shape Channels SOP node to the third input (input 3) on the Character Blend Shapes SOP node.

    • Connect the output of the last Character Blend Shapes Add SOP in your network to the first input (input 1) of the new Character Blend Shapes SOP node.

  6. Turn on the Display flag for the Character Blend Shapes SOP node, select the Character Blend Shape Channels SOP node, and then adjust and key the Blends multiparm to change and/or animate the blend shape’s weighting.

Example: Adjusting weighting for a blend shape with on unpacked in-between

For packed in-between shapes:

Example: Source shape, hero target shape, and in-between target shape
  1. Create an Attribute Create SOP node for each packed primitive in-between target shape and then connect the outputs of each their geometry nodes to each of the Attribute Create SOPs.

  2. In the parameters of each Attribute Create SOP node, do the following:

    • Create a name attribute, select Primitive as its Class, select String as its Type, and then type the name of the packed primitive in the String field.

    • Create a weight attribute, select Primitive as its Class, select Float as its Type, and then use the Value field to define the weight value for each packed primitive in-between target shape. This determines where in the 0-1 blend weight range the source shape will try to morph into each in-between target shape.

    • If you have multiple packed primitive in-between target shapes, then create a Merge Packed SOP node and connect all your Attribute Create SOP nodes outputs to the merge.

  3. Create a Character Blend Shapes Add SOP node and then do the following:

    • Connect the output of your source shape’s geometry node to the first input (input 1) of the Character Blend Shapes Add SOP node. This is the shape you want to apply blend shapes to, and when adjusting its blend shape weighting, its shape corresponds to the blend weight value of 0.

    • Connect the output of your hero target shape’s geometry node to the second input (input 2) of the Character Blend Shapes Add SOP node. When adjusting the blend shape’s weighting, this shape corresponds to the blend weight value of 1.

    • In the Character Blend Shapes Add SOP node’s parameters, turn on Unpacked Shape, type the name (name attribute) for the hero target shape in its field, and then press Enter.

  4. Create a second Character Blend Shapes Add SOP node and then do the following:

    • Connect the output of the first Character Blend Shapes Add SOP node to the first input (input 1) of the new Character Blend Shapes Add SOP node.

    • Connect the output of your in-between target shape’s geometry node to the second input (input 2) of the second Character Blend Shapes Add SOP node. When adjusting the blend shape’s weighting, this shape corresponds to the blend weight value specified by the Weight Attribute value on the Character Blend Shapes Add SOP node.

    • In the Character Blend Shapes Add SOP node’s parameters, do the following:

      • Turn off Unpacked Shape.

      • Turn on Add as In-Between Shapes and then type the name (name attribute) for the hero target shape in its field.

      • Type the name of the weight attribute you created on your in-between target shapes in the Weight Attribute field and then press Enter. This determines where in the 0-1 blend weight range the source shape will try to morph into the in-between target shapes.

  5. Create a Character Blend Shape Channels SOP node, and then do the following:

    • Connect the output of the last Character Blend Shapes Add SOP in your network to the first input (input 1) on the Character Blend Shape Channels SOP node.

    • Connect the output of the Attribute Create SOP node (if single in-between) or Merge Packed SOP (if multiple in-betweens) if you have multiple to the second input (input 2) on the Character Blend Shape Channels SOP node.

  6. In the Character Blend Shape Channels SOP node’s parameters, create a Blends multiparm, type the name of the hero target shape in its field, and then press Enter.

  7. Create a Character Blend Shapes SOP node, and then do the following:

    • Connect the output of the Character Blend Shape Channels SOP node to the third input (input 3) on the Character Blend Shapes SOP node.

    • Connect the output of the last Character Blend Shapes Add SOP in your network to the first input (input 1) of the new Character Blend Shapes SOP node.

  8. Turn on the Display flag for the Character Blend Shapes SOP node, select the Character Blend Shape Channels SOP node, and then adjust and key the Blends multiparm to change and/or animate the blend shape’s weighting.

Example: Adjusting weighting for a blend shape with multiple packed primitive in-betweens
See also

KineFX

Overview

Preparing character elements

Rigging with APEX graphs

  • APEX graph basics

    Introduction to 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