Houdini 20.5 Nodes Geometry nodes

Joint Deform geometry node

Perform 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 node.

Joint Deform works in conjunction with Joint Capture nodes (Joint Capture Biharmonic, Joint Capture Proximity) to deform geometry. As the joints move (eg. created by Skeleton and animated with Rig Pose), 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 in its second input, and the animated skeleton in its third input. The capture paths in the boneCapture attribute in its first input are matched with the point name 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 Joint Capture Biharmonic or Joint Capture Proximity.

Parameters

Group

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

Skinning Method

Choose deformation method

Linear Skinning

The standard, 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 Skinning

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

Blend Dual Quaternion and Linear Skinning

Blends the deformation computed using both methods together based on a point attribute. For this method, a float point attribute must be supplied in the Blend Attribute parameter. A blend attribute value of 0.0, will use the Linear Skinning solution. A blend attribute value of 1.0 will use the Dual Quaternion solution. A blend value of 0.5 will mix both solutions together evenly.

From Input Geometry

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

Blend Attribute

The name of the point attribute to use when blending dual quaternion and linear solutions together.

Other Attributes

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

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

Delete capture attributes lighten the geometry data such as boneCapture, pCaptAlpha, pCaptSkelRoot, pCaptFrame.

Delete Point Colors

Delete point color attribute to lighten the geometry data.

Inputs

Rest Geometry

The skin geometry to deform. It’s required to have a boneCapture attribute (eg. created by Joint Capture Biharmonic).

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 found 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, provided as P and transform (matrix3) point attribute values.

See also

Geometry nodes