Blend shapes allow you to morph or blend between geometries that have the same topology. They are often used to 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 that 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 of 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 + Attribute Expression SOP
Example: network for editing an existing blend shape + Attribute Expression 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 an Attribute Expression 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 Attribute Expression SOP node, and the Attribute Expression node’s output to the third input (Animated Pose) on the Character Blend Shapes node.

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

  4. In the Attribute Expression node’s parameters, do the following:

    • In the VEXpressions tab, set Attribute Class to Detail.

    • Add an Attribute VEXexpressions multiparm for every blend shape whose weight values you want to adjust or key.

    The Constant Value parameter for each Attribute VEXexpressions multiparm is the blend weight for each blend shape.

    Example: Multiparms for a network with two blend shapes
  5. For each Attribute VEXexpressions multiparm you added, do the following:

    • Set Attribute to Custom.

    • Select the blend shape channel from the Name parameter’s drop-down list (which lists all the existing attributes from the Attribute Class) or type the name of the blend shape channel into the Name field. For new attributes, these names should match the blendshape_channel primitive attribute’s value on the character mesh. These names can be different though if you set up a clipchannels detail attribute as described in Character Blend Shapes.

    • Set the Type to Float.

      Blend shape weights or channels are imported into KineFX as floating point values.

    • Type value into the VEXpression field.

    Example: Multiparms for a network with two blend shapes

    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
  6. For each Attribute VEXexpressions, adjust and/or key their Constant Value parameter values to achieve the deformation effects or animated deformations you desire.

    Example: Constant Value parameters
    Example: Adjusting the blend shape weight values
See also

KineFX

Procedural Rigging

Compatibility

Animation Retargeting

Panes