Go to: Synopsis. Return value. Keywords. Related. Flags. Python examples.
deformerWeights([defaultValue=float], [deformer=string], [export=boolean], [ignoreName=boolean], [im=boolean], [method=string], [path=string], [positionTolerance=float], [shape=string], [weightTolerance=float], [worldSpace=boolean])
Note: Strings representing object names and arguments must be separated by commas. This is not depicted in the synopsis.
deformerWeights is undoable, queryable, and editable.
Command to import and export deformer weights to and from a simple XML
file. The weight data is stored in a per-vertex fashion along with a
"point cloud" corresponding to the vertices from the geometry input to
the deformer.
For example a cluster deformer would have the following information:
On import the weights are then mapped back to a specified deformer
based on the specified mapping method. Note that the geometry used to
perform the mapping association is not the visible shape but rather
the incoming geometry to the deformer. For example, in the case of a
skin cluster this would be the bind pose geometry.
In query mode, return type is based on queried flag.
deformer, export
blendShape, skinCluster, skinPercent
defaultValue, deformer, export, ignoreName, im, method, path, positionTolerance, shape, weightTolerance, worldSpace
Long name (short name) |
Argument types |
Properties |
export(ex)
|
boolean
|
![create create](../gfx/create.gif) ![query query](../gfx/query.gif)
|
|
Export the given deformer
|
|
im(im)
|
boolean
|
![create create](../gfx/create.gif) ![query query](../gfx/query.gif)
|
|
Import weights to the specified deformer. See the method flag for details
on how the weights will be mapped to the destination deformer.
|
|
path(p)
|
string
|
![create create](../gfx/create.gif) ![query query](../gfx/query.gif)
|
|
The path to the given file. Default to the current project.
|
|
shape(sh)
|
string
|
![create create](../gfx/create.gif) ![query query](../gfx/query.gif)
|
|
Specify the source shape. Export will write out all the deformers on the shape node into one file.
|
|
deformer(df)
|
string
|
![create create](../gfx/create.gif) ![query query](../gfx/query.gif)
|
|
Specify the deformer whose weights should be exported or imported.
|
|
method(m)
|
string
|
![create create](../gfx/create.gif) ![query query](../gfx/query.gif)
|
|
Specify the method used to map the weight during import. Valid values are:
"index", "nearest", "barycentric" and "over". The "index" method
uses the vertex index to map the weights onto the object. This is most useful
when the destination object shares the same topology as the exported data.
The "nearest" method finds the nearest vertex in the imported data set and
sets the weight value to that value. This is best used when mapping a higher
resolution mesh to a lower resolution. The "barycentric" method is only
supported with polygon meshes. It finds the nearest triangle of the target
geometry and rescales the weights by how close the source point
is to the vertices. This is normally used with a coarse mesh being mapped to
a high resolution mesh. The "over" method is similar to the "index" method but
the weights on the destination mesh are not cleared prior to mapping, so that
unmatched indices keep their weights intact.
|
|
ignoreName(ig)
|
boolean
|
![create create](../gfx/create.gif) ![query query](../gfx/query.gif)
|
|
Ignore the names of the layers on import, just use the order of the layers instead. This can be used for
case that joint names have been changed. Leaving it on only name that match on import will be write to the deformer.
|
|
worldSpace(ws)
|
boolean
|
![create create](../gfx/create.gif) ![query query](../gfx/query.gif)
|
|
For spatially based association methods (barycentric and nearest), the position should be based on the world space position
rather then the local object space.
|
|
weightTolerance(wt)
|
float
|
![create create](../gfx/create.gif) ![query query](../gfx/query.gif)
|
|
The weight tolerance is used to decide if a given weight value is close enough to the default value that it does not need to be included. This flag is only used with export. The default value is .001.
|
|
positionTolerance(pt)
|
float
|
![create create](../gfx/create.gif) ![query query](../gfx/query.gif)
|
|
The position tolerance is use to determine the radius of search for nearest and barycenteric searches. This flag is only
used with import.
Defaults to a huge number.
|
|
defaultValue(dv)
|
float
|
![create create](../gfx/create.gif) ![query query](../gfx/query.gif)
|
|
Manually set the default value. Default values are values that are not written to file. For example, for blendShapes the default value is automatically set to 1.0 and these values are not written to disk. For skinClusters the value is 0.0. If you want to force all weights to be written to disk you can set a defaultValue = -1.0.
|
|
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.
|
import maya.cmds as cmds
# Create plane and a cluster.
#
cmds.file( f=True,new=True )
cmds.polyPlane( ch=1, w=10, h=10, sx=5, sy=5, ax=(0,1,0) )
cmds.cluster('pPlane1', name='testCluster')
# Modify some weights on the -x side of the character
#
cmds.select( ['pPlane1.vtx[5]', 'pPlane1.vtx[11]', 'pPlane1.vtx[17]', 'pPlane1.vtx[23]'])
cmds.percent( 'testCluster', v=0.5 )
# export the weights from the cluster node
#
cmds.deformerWeights ("clusterWeights.xml", ex=True, deformer="testCluster")