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.

How to

View a character mesh’s individual blend shapes

Example: Simple network to view 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 single or multiple new blend shapes to a character mesh

Example: Network for adding a new blend shape 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 on a character mesh

Example: Editing an existing blend shape network
  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 or key the blend weight values for your character mesh’s blend shapes

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, do the following:

  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 a part of your character’s mesh, do the following:

  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 to your character blend 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 set-ups 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 set-up 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, do the following:

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 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, do the following:

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

Building rig graphs with APEX Script

Rigging with rig components

Animating in the viewport

SOP-based animation

Deformation

Animation retargeting

Pre-H20

Panes

Appendix