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

Synopsis

cluster( [objects] , [after=boolean], [before=boolean], [bindState=boolean], [deformerTools=boolean], [envelope=float], [exclusive=string], [frontOfChain=boolean], [geometry=string], [ignoreSelected=boolean], [name=string], [parallel=boolean], [prune=boolean], [relative=boolean], [remove=boolean], [resetGeometry=boolean], [split=boolean], [weightedNode=[string, string]])

Note: Strings representing object names and arguments must be separated by commas. This is not depicted in the synopsis.

cluster is undoable, queryable, and editable.

The cluster command creates a cluster or edits the membership of an existing cluster. The command returns the name of the cluster node upon creation of a new cluster. After creating a cluster, the cluster's weights can be modified using the percent command or the set editor window.

Return value

string[] (the cluster node name and the cluster handle name)

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

Related

deformer, flexor, lattice, percent, sculpt, wire, wrinkle

Flags

after, before, bindState, deformerTools, envelope, exclusive, frontOfChain, geometry, ignoreSelected, name, parallel, prune, relative, remove, resetGeometry, split, weightedNode
Long name (short name) Argument types Properties
name(n) string create
Used to specify the name of the node being created
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 ...
remove(rm) boolean editmultiuse
Specifies that objects listed after the -g flag should be removed from this deformer.
before(bf) boolean createedit
If the default behavior for insertion/appending into/onto the existing chain is not what you want then you can use this flag to force the command to stick 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).
after(af) boolean createedit
If the default behavior for insertion/appending into/onto the existing chain is not what you want then you can use this flag to force the command to stick 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).
split(sp) boolean 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).
frontOfChain(foc) boolean 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).
parallel(par) boolean 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).
ignoreSelected(ignoreSelected) boolean create
Tells the command to not deform objects on the current selection list
deformerTools(dt) boolean query
Returns the name of the deformer tool objects (if any) as string string ...
prune(pr) boolean edit
Removes any points not being deformed by the deformer in its current configuration from the deformer set.
exclusive(ex) string createquery
Puts the deformation set in a deform partition.
weightedNode(wn) [string, string] createqueryedit
Transform node in the DAG above the cluster to which all percents are applied. The second DAGobject specifies the descendent of the first DAGobject from where the transformation matrix is evaluated. Default is the cluster handle.
bindState(bs) boolean create
When turned on, this flag adds in a compensation to ensure the clustered objects preserve their spatial position when clustered. This is required to prevent the geometry from jumping at the time the cluster is created in situations when the cluster transforms at cluster time are not identity.
envelope(en) float createqueryedit
Set the envelope value for the deformer. Default is 1.0
relative(rel) boolean create
Enable relative mode for the cluster. In relative mode, Only the transformations directly above the cluster are used by the cluster. Default is off.
resetGeometry(rg) boolean edit
Reset the geometry matrices for the objects being deformed by the cluster. This flag is used to get rid of undesirable effects that happen if you scale an object that is deformed by a cluster.

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 have multiple arguments, passed either as a tuple or a list.

Python examples

import maya.cmds as cmds

# Create a cluster which uses the transformation of elbow1
#
cmds.joint(p=(2,0,0),name="elbow1")
cmds.joint(p=(4,0,0),name="wrist1")

cmds.sphere()
cmds.cluster( wn=('elbow1', 'elbow1') )

# Edit cluster1 to use the transformation of wrist1.
#
cmds.cluster( 'cluster1', e=True, bs=1, wn=('wrist1', 'wrist1') )

# Create a relative cluster with its own cluster handle. The
# cluster handle is drawn as the letter "C".
#
cmds.cluster( rel=True )

# Modify the membership of an existing cluster. First, find
# the name of the cluster's associated set, then use the sets
# command to edit the set membership (add a cube and remove a plane).
#
cmds.listConnections( 'cluster1', type="objectSet" )
# Result: cluster1Set
cmds.sets( 'pCube1', add='cluster1Set' )
cmds.sets( 'pPlane1', rm='cluster1Set' )