Houdini 21.0 Nodes APEX nodes

rig::CombineParmTransform 2.0

Constructs a local matrix by combining a local rest matrix with a set of transformation parameters.

On this page
Since 21.0

Constructs a local space matrix from a local space rest matrix and a set of transformation parameters using transform composition logic, which is intuitive for animating a transform relative to its rest pose.

Motivation

A local rest matrix describes the initial position, orientation, and size of an object. Animating an object with respect to its rest position using traditional matrix multiplication may produce unexpected or undesirable effects, especially for the scale of the rest transform:

  • If the rest matrix is scaled, in addition to scaling the object, the object’s position may change. If the object had previously been animated, this would change the result of that animation when the intended behavior was simply to affect the size of the object.

  • If the rest matrix is scaled nonuniformly, the object may change shape when it rotates due to unintentional shearing.

Transformation Modes

This node provides three “modes” of combining transform parameters with a local space rest matrix:

Mode

Transformation Behavior

0

Pre-transform

local = scale * restlocal.scale * (shear + restlocal.shear) *
            rotate * translate * restlocal.rotate * restlocal.translate

This mode has a similar behavior to a traditional parent-child transformation (with the component parameters representing the child, and the rest matrix representing the parent), but the rest matrix’s scaling and shearing are applied in the parameter’s local space.

1

Post-transform

local = restlocal.scale * scale * (restlocal.shear + shear) *
            restlocal.rotate * rotate * restlocal.translate * translate

The rest transform is applied first, then the rotation and translation parameters are applied using the rest transform’s position as its pivot point (essentially layering the rotation and translation on top of the rest transform). The scale and shear parameters are combined with the local transform’s scale and shear in the same manner as “Pre-transform” mode.

2

Override Transform

local = scale * shear * rotate * translate

Forms a transformation from the parameter components and ignores the rest matrix.

Inputs

restlocal: Matrix4

The local space rest matrix to combine with the transformation parameters.

t: Vector3

The translation.

r: Vector3

The rotation represented as Euler angles, in degrees.

s: Vector3

The scale.

sh: Vector3

The shear factors (XY, XZ, and YZ).

p: Vector3

The pivot position from which to apply the transformation parameters. The default is the origin.

pr: Vector3

The pivot orientation (represented as XYZ Euler angles, in degrees) from which to apply the transformation parameters. The default is no rotation.

xord: Int

The transformation order of the transformation parameters. The default is scale → rotate → translate. See transformation order.

rord: Int

The rotation order. The default is X → Y → Z. See rotation order.

mode: Int

The transformation mode, which affects how the transformation parameters are combined with the rest matrix. The default is “Pre-transform”.

Outputs

localxform: Matrix4

The combined output transform.

See also

APEX nodes