Houdini 20.5 Nodes Geometry nodes

Character Blend Shapes geometry node

Applies blend shapes to a KineFX character’s geometry using the weight attributes on its skeleton.

On this page
Since 18.5

This node applies a blend shapes deformer to a SOP rig and it is a high-level wrapper around the Blend Shapes SOP node.

The blend shape inputs (targets) are expected to be packed primitives in the Rest Geometry (first input), and are typically hidden using the _3d_hidden_primitives group to reduce clutter in the viewport.

The name attribute identifies the base shape that the input shape is associated with, and the blendshape_channel attribute identifies the channel that provides the blend weight.

The blend shape inputs (targets) can contain a sparse set of points, using the id point attribute to specify the matching point number in the base shape.

The blend weights are provided by attributes on the Animated Pose (third input), where the clipchannels detail dictionary attribute specifies the mapping between channel names and attributes.

Note

For more information about working with blend shapes in KineFX, see Blend shapes.

Attributes

Animated Pose

clipchannels

This detail dict attribute maps between a channel name and a dict describing the attribute that stores the channel’s value. The channel’s value can be stored in a detail attribute, or the point attribute value for a specific joint. The channel names can contain characters that are not valid for attribute names.

The valid keys for the channel options are:

attrib

Specifies the name of a float attribute containing the channel value. If this key is not present, the attribute name is the same as the channel name.

attribclass

Specifies the attribute’s class, which can be either detail or point. If this key is not present, the attribute is assumed to be a detail attribute.

name

If the attribclass is point, specifies the name of the joint to read the attribute value from.

Rest Geometry

blendshape_channel

Specifies the channel that provides the weight for the blend shape input.

blendshape_name

Specifies the name of the blend shape input (the standard name attribute contains the name of the base shape that the input is associated with). This is primarily used for round-tripping from formats where the blend shape inputs are named.

blendshape_inbetween_name

Specifies the name of the in-between shape. In-between shapes have the same value for the name, blendshape_name and blendshape_channel attributes as the hero blend shape that they are associated with. This is primarily used for round-tripping from formats where the blend shape inputs are named.

blendshape_inbetween_weight

Specifies the weight at which the in-between shape is applied.

name

The name of the shape. The base shape and its blend shape inputs have the same value for this attribute.

Parameters

Group

Specifies a subset of the input geometry to be blended.

Group Type

Sets the type of geometry that is in the specified Group. If this is not set to Guess from group, the all the geometry in the group must be the indicated type.

Attributes

A list or pattern of the attributes to blend.

Inputs

Rest Geometry

The character’s rest geometry.

Typically, this will contain polygons with the boneCapture point capture attribute, which can be deformed using the Joint Deform SOP.

Capture Pose

The character’s capture pose.

Each joint in the skeleton is represented by a point, where the P and transform (matrix3) attributes contain the joint’s transform. The point’s name attribute contains the joint’s name, and is matched up with the capture paths in the rest geometry’s boneCapture attribute when deforming the skin. The skeleton’s hierarchy is represented by two-point polygons between the points for each child joint and its parent.

Animated Pose

The character’s animated pose, which is represented in the same manner as the Capture Pose.

Outputs

Rest Geometry

The character’s rest geometry.

Typically, this will contain polygons with the boneCapture point capture attribute, which can be deformed using the Joint Deform SOP.

Capture Pose

The character’s capture pose.

Each joint in the skeleton is represented by a point, where the P and transform (matrix3) attributes contain the joint’s transform. The point’s name attribute contains the joint’s name, and is matched up with the capture paths in the rest geometry’s boneCapture attribute when deforming the skin. The skeleton’s hierarchy is represented by two-point polygons between the points for each child joint and its parent.

Animated Pose

The character’s animated pose, which is represented in the same manner as the Capture Pose.

Examples

InbetweenShapes Example for Character Blend Shapes geometry node

This example demonstrates adding and using in-between blend shapes in the character blend shapes workflow.

SimpleCharacterBlendShapes Example for Character Blend Shapes geometry node

This example demonstrates importing a character with blend shapes, adjusting the channel values, and then applying a blend shapes deformer.

See also

Geometry nodes