Houdini 21.0 Nodes Geometry nodes

Joint Deform geometry node

Performs skin deformation from KineFX skeleton animation.

On this page
Since 19.0

Tip

This node supports the character joint deformation workflow. To do a cage deformation of geometry, use the Lattice Deform SOP.

The Joint Deform SOP works in conjunction with the Joint Capture nodes (Joint Capture Biharmonic SOP, Joint Capture Proximity SOP) to deform geometry. As the joints move (for example, created by the Skeleton SOP and animated with the Rig Pose SOP), this node displaces the points on the geometry according to the point capture weights.

This node requires three inputs - the skin geometry with capture weights as the boneCapture point attribute, the capture pose skeleton as its second input, and the animated skeleton as its third input. The capture paths in the first input’s boneCapture attribute are matched with the name point attribute in the second and third inputs. The “pose” of the skeletons are defined by their point P (vector3) and transform (matrix3) point attribute values.

Attributes

boneCapture

This required attribute defines the rest transforms and skinning weights for the deformation. It can be created by various SOPs such as the Joint Capture Biharmonic SOP or Joint Capture Proximity SOP.

Parameters

Group

Optional point and/or primitive groups that limit the points that are deformed.

Skinning Method

Specifies the deformation method.

Linear

The standard and fastest method. However, artifacts can occur for twisting geometry between two bones, producing volume loss. To fix these artifacts, introduce additional bones to even out the deformation.

Dual Quaternion

Dual quaternion skinning is an alternate way of computing the deformation from bones. This method is better than the traditional Linear skinning for deforming twisting geometry and preventing volume loss. This is often used for body parts, such as a character’s shoulders.

Blend Dual Quaternion and Linear

Blends the deformation computed using the Linear and Dual Quaternion methods based on the point attribute specified in Blend Attribute. A blend attribute value of 0.0 uses the Linear skinning solution, a blend value of 1.0 uses the Dual Quaternion solution, and a blend value of 0.5 evenly mixes the two solutions.

From Input Geometry

The deformSkinMethod global attribute provides the skinning method, where the string value linear specifies Linear skinning, dualquat specifies Dual Quaternion skinning, and blenddualquat specifies Blend Dual Quaternion and Linear skinning. The deformDualQuaternionBlendAttrib global attribute also provides the Blend Attribute name.

Blend Attribute

When Skinning Method is set to Blend Dual Quaternion and Linear, this is the name of the floating point attribute to use when blending the dual quaternion and linear solutions.

Other Attributes

The name of other attributes (beyond positions and normals) to deform. This is typically a list of attribute names separated by spaces, but pattern characters such as '*' can also be used to match multiple attributes. An attribute’s type qualifier (see the Attribute Create SOP) is used to determine whether the geometry can be transformed. Only attributes with the “transforming” type qualifiers of Position, Vector, Normal, Quaternion, or Transform Matrix can be deformed. Attributes that don’t have these type qualifiers are ignored.

Deform Normals

When turned on, deforms the normals to match the deformation of the points.

Note

If Deform Normals is turned off, this also prevents the deforming of normals that are matched in the Other Attributes parameter.

Delete Capture Attributes

When turned on, deletes capture attributes such as boneCapture, pCaptAlpha, pCaptSkelRoot, and pCaptFrame to lighten the geometry data.

Delete Point Colors

When turned on, deletes the point color attribute to lighten the geometry data.

Inputs

Rest Geometry

The skin geometry to deform. It’s required to have a boneCapture attribute (for example, created by the Joint Capture Biharmonic SOP).

Capture Pose

The capture paths from the first input’s boneCapture attribute are matched with the name point attribute in this input to provide rest transforms that override the values in boneCapture. These transforms are provided from the input’s P and transform (matrix3) point attribute values.

Animated Pose

The capture paths from the first input’s boneCapture attribute are matched with the name point attribute in this input to provide deformation transforms. These transforms are provided from the input’s P and transform (matrix3) point attribute values.

See also

Geometry nodes