Go to: Synopsis. Return value. Related. Flags. MEL examples.

Synopsis

blendShape [-after] [-afterReference] [-automatic] [-before] [-components] [-copyDelta uint uint uint] [-copyInBetweenDelta uint uint uint uint] [-copyWeights uint uint uint] [-deformerTools] [-envelope float] [-exclusive string] [-export string] [-exportTarget int int] [-flipTarget uint uint] [-frontOfChain] [-geometry string] [-geometryIndices] [-ignoreSelected] [-import string] [-inBetween] [-inBetweenIndex uint] [-inBetweenType string] [-includeHiddenSelections] [-mergeSource int] [-mergeTarget uint] [-mirrorDirection uint] [-mirrorTarget uint uint] [-name string] [-normalizationGroups] [-origin string] [-parallel] [-prune] [-remove] [-resetTargetDelta uint uint] [-selectedComponents] [-split] [-suppressDialog] [-symmetryAxis string] [-symmetryEdge string] [-symmetrySpace uint] [-tangentSpace] [-target string uint string float] [-topologyCheck boolean] [-transform string] [-useComponentTags] [-weight uint float] [-weightCount uint] [objects]

blendShape is undoable, queryable, and editable.

This command creates a blendShape deformer, which blends in specified amounts of each target shape to the initial base shape. Each base shape is deformed by its own set of target shapes. Every target shape has an index that associates it with one of the shape weight values.

In the create mode the first item on the selection list is treated as the base and the remaining inputs as targets. If the first item on the list has multiple shapes grouped beneath it, the targets must have an identical shape hierarchy. Additional base shapes can be added in edit mode using the deformers -g flag.

Return value

string[](the blendShape node name)

In query mode, return type is based on queried flag.

Related

bindSkin, boneLattice, copyFlexor, copySkinWeights, flexor, skinCluster, skinPercent, wire, wrinkle

Flags

after, afterReference, automatic, before, components, copyDelta, copyInBetweenDelta, copyWeights, deformerTools, envelope, exclusive, export, exportTarget, flipTarget, frontOfChain, geometry, geometryIndices, ignoreSelected, import, inBetween, inBetweenIndex, inBetweenType, includeHiddenSelections, mergeSource, mergeTarget, mirrorDirection, mirrorTarget, name, normalizationGroups, origin, parallel, prune, remove, resetTargetDelta, selectedComponents, split, suppressDialog, symmetryAxis, symmetryEdge, symmetrySpace, tangentSpace, target, topologyCheck, transform, useComponentTags, weight, weightCount
Long name (short name) Argument types Properties
-after(-af) createedit
If the default behavior for insertion/appending into/onto the existing chain is not the desired behavior then this flag can be used to force the command to place the deformer node after the selected node in the chain even if a new geometry shape has to be created in order to do so. Works in create mode (and edit mode if the deformer has no geometry added yet).
-afterReference(-ar) createedit
The -afterReference flag is used to specify deformer ordering in a hybrid way that choses between -before and -after automatically. If the geometry being deformed is referenced then the -after mode is used when adding the new deformer, otherwise the -before mode is used. The net effect when using -afterReference to build deformer chains is that internal shape nodes in the deformer chain will only appear at reference file boundaries, leading to lightweight deformer networks that may be more amicable to reference swapping.
-automatic(-at) createedit
The -automatic flag is used to specify deformer ordering in a way that choses between -frontOfChain and -before automatically. If the geometry being deformed is only affected by invertible deformers, the -frontOfChain mode is used, otherwise the -before mode is used.
-before(-bf) createedit
If the default behavior for insertion/appending into/onto the existing chain is not the desired behavior then this flag can be used to force the command to place the deformer node before the selected node in the chain even if a new geometry shape has to be created in order to do so. Works in create mode (and edit mode if the deformer has no geometry added yet).
-components(-cmp) query
Returns the components used by the deformer
-copyDelta(-cd) uint uint uint edit
Set the base, source, and destination delta index values.
-copyInBetweenDelta(-cid) uint uint uint uint edit
Set the base, target, source, and destination delta index values.
-copyWeights(-cw)
2023
uint uint uint edit
Copy base, source, and destination weight index values.
-deformerTools(-dt) query
Returns the name of the deformer tool objects (if any) as string string ...
-envelope(-en) float createqueryedit
Set the envelope value for the deformer, controlling how much of the total deformation gets applied. Default is 1.0.
-exclusive(-ex) string createquery
Puts the deformation set in a deform partition.
-export(-ep) string edit
Export the shapes to the named file path.
-exportTarget(-et) int int editmultiuse
Specify the base and target index pairs for the export.
-flipTarget(-ft) uint uint editmultiuse
Flip the list of base and target pairs.
-frontOfChain(-foc) createedit
This command is used to specify that the new deformer node should be placed ahead (upstream) of existing deformer and skin nodes in the shape's history (but not ahead of existing tweak nodes). The input to the deformer will be the upstream shape rather than the visible downstream shape, so the behavior of this flag is the most intuitive if the downstream deformers are in their reset (hasNoEffect) position when the new deformer is added. Works in create mode (and edit mode if the deformer has no geometry added yet).
-geometry(-g) string queryeditmultiuse
The specified object will be added to the list of objects being deformed by this deformer object, unless the -rm flag is also specified. When queried, this flag returns string string string ...
-geometryIndices(-gi) query
Complements the -geometry flag in query mode. Returns the multi index of each geometry.
-ignoreSelected(-is) create
Tells the command to not deform objects on the current selection list
-import(-ip) string edit
Import the shapes from the named file path.
-inBetween(-ib) createedit
Indicate that the specified target should serve as an inbetween. An inbetween target is one that serves as an intermediate target between the base shape and another target.
-inBetweenIndex(-ibi) uint edit
Only used with the -rtd/-resetTargetDelta flag to remove delta values for points in the inbetween target geometry defined by this index.
-inBetweenType(-ibt) string createedit
Specify if the in-between target to be created is relative to the hero target or if it is absolute. If it is relative to hero targets, the in-between target will get any changes made to the hero target. Valid values are "relative" and "absolute". This flag should always be used with the -ib/-inBetween and -t/-target flags.
-includeHiddenSelections(-ihs) create
Apply the deformer to any visible and hidden objects in the selection list. Default is false.
-mergeSource(-mgs) int editmultiuse
List of source indexes for a merge.
-mergeTarget(-mgt) uint edit
Target index of a merge
-mirrorDirection(-md) uint edit
Mirror direction; 0 = negative, 1 = positive
-mirrorTarget(-mt) uint uint editmultiuse
Mirror the list of base and target pairs.
-name(-n) string create
Used to specify the name of the node being created.
-normalizationGroups(-ng) query
Returns a list of the used normalization group IDs.
-origin(-o) string create
blendShape will be performed with respect to the world by default. Valid values are "world" and "local". The local flag will cause the blend shape to be performed with respect to the shape's local origin.
-parallel(-par) createedit
Inserts the new deformer in a parallel chain to any existing deformers in the history of the object. A blendShape is inserted to blend the parallel results together. Works in create mode (and edit mode if the deformer has no geometry added yet).
-prune(-pr) edit
Removes any points not being deformed by the deformer in its current configuration from the deformer set.
-remove(-rm) editmultiuse
Specifies that objects listed after the -g flag should be removed from this deformer.
-resetTargetDelta(-rtd) uint uint editmultiuse
Remove all delta values for points in the target geometry, including all sequential targets defined by target index.
Parameter list:
  1. uint: the base object index
  2. uint: the target index
-selectedComponents(-cms) query
Returns the components used by the deformer that are currently selected. This intersects the current selection with the components affected by the deformer.
-split(-sp) createedit
Branches off a new chain in the dependency graph instead of inserting/appending the deformer into/onto an existing chain. Works in create mode (and edit mode if the deformer has no geometry added yet).
-suppressDialog(-sd) createedit
Suppress dialog box and run the command as defined by the user.
-symmetryAxis(-sa) string queryedit
Axis for symmetry. Valid values are "X", "Y", and "Z".
-symmetryEdge(-se) string queryeditmultiuse
One or two symmetry edge names, separated by a ".". See the blendShape node's symmetryEdge attribute for legal values.
-symmetrySpace(-ss) uint queryedit
Space for symmetry. 0 = Topological, 1 = Object, 2 = UV
-tangentSpace(-ts) createedit
Indicate that the delta of the specified target should be relative to the tangent space of the surface.
-target(-t) string uint string float createqueryeditmultiuse
Set target object as the index target shape for the base shape base object. The full influence of target shape takes effect when its shape weight is targetValue.
Parameter list:
  1. string: the base object
  2. int: index
  3. string: the target object
  4. double: target value
-topologyCheck(-tc) boolean create
Set the state of checking for a topology match between the shapes being blended. Default is on.
-transform(-tr) string queryedit
Set transform for target, then the deltas will become relative to a post transform. Typically the best workflow for this option is to choose a joint that is related to the fix you have introduced. This flag should be used only if the "Deformation order" of blendShape node is "Before".
-useComponentTags(-uct) create
When this flag is specified a setup using componentTags will be created. This means no groupId, groupParts, tweak or objectSet nodes will be created and connected to the new deformer.
-weight(-w) uint float createqueryeditmultiuse
Set the weight value (second parameter) at index (first parameter).
-weightCount(-wc) uint createqueryedit
Set the number of shape weight values.

Flag can appear in Create mode of command Flag can appear in Edit mode of command
Flag can appear in Query mode of command Flag can be used more than once in a command.

MEL examples

//
// Perform a blendShape using the currently-selected objects.
// The lead (last-selected) object will be the base shape, and each
// of the others become targets.
//
blendShape;

//
// Create a blendShape that starts with curve3 as the base, and blends
// in curve1 and curve2 as targets.

blendShape curve1 curve2 curve3;

//
// Apply 80% of the total blendShape deformation, by setting
// the envelope parameter to 0.8
blendShape -edit -en 0.8 blendShape1;

//
// Set the weights for the first two target shapes to 0.6
// and 0.1 respectively
blendShape -edit -w 0 0.6 -w 1 0.1 blendShape1;

//
// Add a third target (target1) to the blendShape on curve3
blendShape -edit -t curve3 2 target1 1.0 blendShape1;

//
// Add "smirk", an inbetween on the third target for base
// shape curve3. The inbetween will take effect at a weight of 0.2
blendShape -edit -ib -t curve3 2 smirk 0.2 blendShape1;