Go to: Related nodes. Attributes.

This node deforms the components of an input object or objects according to the freeform deformation (FFD) algorithm. The algorithm is a spatial deformation which takes objects located within the base (undeformed) lattice and maps them into the space of the deformed lattice shape.

If the input object is not located within the base lattice, no deformation will occur, unless the freezeGeometry attribute is set to on, and the object was within the lattice when the freezing was turned on.

The local axes of the lattice are referred to below as "s", "t" and "u".

Node nameParentsMFn typeCompatible function sets
ffdgeometryFilterkFFDkBase
kNamedObject
kDependencyNode
kGeometryFilt
kFFD

Related nodes

lattice, cluster, jointCluster, nonLinear, blendShape, skinCluster, boneLattice, wrap, wire, jointFfd, sculpt, jointLattice, flexorShape, deformFunc, deformSquash, deformTwist, deformBend, deformWave, deformFlare, deformSine, baseLattice, clusterHandle

Attributes (17)

baseLattice, baseLatticeMatrix, baseLatticePoints, deformedLattice, deformedLatticeMatrix, deformedLatticePoints, freezeGeometry, local, localInfluenceS, localInfluenceT, localInfluenceU, outsideFalloffDist, outsideLattice, partialResolution, stuCache, stuCacheList, usePartialResolution

Long name (short name)TypeDefaultFlags
deformedLattice (dl) compoundn/aoutputinputconnectablestorablehidden
Bundled lattice points and lattice world matrix.
deformedLatticePoints (dlp) latticeNULLoutputinputconnectablehidden
The points of the deformed lattice.
deformedLatticeMatrix (dlm) matrixidentityoutputinputconnectablestorablehidden
The world matrix of the deformed lattice.
baseLattice (bl) compoundn/aoutputinputconnectablestorablehidden
Bundled base lattice points and base lattice world matrix.
baseLatticePoints (blp) latticeNULLoutputinputconnectablehidden
The points of the base lattice.
baseLatticeMatrix (blm) matrixidentityoutputinputconnectablestorablehidden
The world matrix of the base lattice.
stuCacheList (scl) compoundn/aarrayoutputinputconnectablestorablehidden
List of stu caches, one per geometry.
stuCache (stu) double0arrayoutputinputconnectablestorablehidden
Cache of the stu points at lattice creation time. This is used internally by this node when freezeGeometry is turned on, to remember where each component of each deforming object was when the freezing was turned on. Any attempt to modify this attribute can cause unpredictable results.
partialResolution (ptr) double0.01outputinputconnectablestorable
Partial resolution to use. If usePartialResolution is turned on, this attribute controls the extent to which the accuracy of the deformation should be compromised in favor of achieving a faster result.
localInfluenceS (lis) short2outputinputconnectablestorablekeyable
If localCompute is turned on, this is the extent of the region of effect in the s direction
localInfluenceT (lit) short2outputinputconnectablestorablekeyable
If localCompute is turned on, this is the extent of the region of effect in the t direction
localInfluenceU (liu) short2outputinputconnectablestorablekeyable
If localCompute is turned on, this is the extent of the region of effect in the u direction
freezeGeometry (fg) bool0outputinputconnectablestorable
Lattice mapping is frozen when the state of this variable is toggled on. This means that movement of the deforming geometry relative to the base lattice will be ignored for purposes of determining how the lattice affects the geometry.
local (lo) bool0outputinputconnectablestorable
Controls whether movement of each lattice point has a global effect (all deforming components are affected to some extent by every lattice point) or a local effect (only those components "near" the moved lattice points are affected). When local mode is turned on, the attributes localInfluenceS, localInfluenceT and localInfluenceU control the extent of the local effect along each of the axes of the lattice.
usePartialResolution (upr) enum0outputinputconnectablestorable
Whether or not to use the partial resolution. When this is off, the deformation is computed exactly. Valid values are 0 = "full", 1 = "partial".
outsideLattice (ot) enum0outputinputconnectablestorable
Whether or not to transform geometry which falls outside of the base lattice. If 0 (the default), points outside the base lattice are not transformed, thus if an animated point happens to stray outside the base lattice, it will suddenly stop being deformed. If 1, then all points outside the base lattice are transformed. If 2, then all points outside the lattice but within the outsideFalloffDist distance are transformed using a linear falloff as distance increases from the base lattice.
outsideFalloffDist (ofd) double1.0outputinputconnectablestorable
When outsideLattice is 2, this parameter provides a distance within which points outside of the base lattice are transformed. The distance is a multiple of the width of the base lattice, thus a value of 0.0 causes no points outside the base lattice to be transformed, a value of 1.0 affects points up to the width of the base lattice to be transformed, and so on.