Go to: Synopsis. Return value. Flags. Python examples.
deformableShape(
[objects...]
, [chain=boolean], [createOriginalGeometry=boolean], [createTweakNode=boolean], [createUpstreamTagInjectionNode=boolean], [frontOfChain=boolean], [localShapeInAttr=boolean], [localShapeOutAttr=boolean], [nodeChain=boolean], [originalGeometry=boolean], [outputPlugChain=boolean], [plugChain=boolean], [tagInjectionList=boolean], [tagInjectionNode=boolean], [tweakNode=boolean], [upstreamTagInjectionNode=boolean], [worldShapeOutAttr=boolean])
Note: Strings representing object names and arguments must be separated by commas. This is not depicted in the synopsis.
deformableShape is undoable, NOT queryable, and NOT editable.
This command finds information about deforming shape(s).
If no shapes are specified on the command then the curently selected
shapes are used.
None
chain, createOriginalGeometry, createTweakNode, createUpstreamTagInjectionNode, frontOfChain, localShapeInAttr, localShapeOutAttr, nodeChain, originalGeometry, outputPlugChain, plugChain, tagInjectionList, tagInjectionNode, tweakNode, upstreamTagInjectionNode, worldShapeOutAttr
Long name (short name) |
Argument types |
Properties |
|
chain(ch)
|
boolean
|
|
|
This flag will return the list of deformers that deformer the specified shapes
|
|
createOriginalGeometry(cog)
|
boolean
|
|
|
This creates an original geometry for the shape if it does not exist yet.
|
|
createTweakNode(ctw)
|
boolean
|
|
|
This creates a traditional tweak node if one did not exist yet.
|
|
createUpstreamTagInjectionNode(cti)
|
boolean
|
|
|
This creates an upstream component tag injection node if an editable one does not exist yet.
|
|
frontOfChain(foc)
|
boolean
|
|
|
This flag will return the name of the plug on a shape node at the front end of
the deformation chain. This can return an empty plug when none exists.
|
|
localShapeInAttr(lsi)
|
boolean
|
|
|
Returns the name of local shape in attribute
|
|
localShapeOutAttr(lso)
|
boolean
|
|
|
Returns the name of local shape out attribute
|
|
nodeChain(nch)
|
boolean
|
|
|
This flag will return the list of nodes through which the geometry passes to get to this shape
|
|
originalGeometry(og)
|
boolean
|
|
|
This flag will return the name of a plug on a node in the deformation chain
(likely at the front end) that is the best candidate to be used as the
originalGeometry. This can return an empty plug when none exists.
|
|
outputPlugChain(och)
|
boolean
|
|
|
This flag will return the list of output plugs leading to the shape
|
|
plugChain(pch)
|
boolean
|
|
|
This flag will return the list of plugs leading to the shape (both input and output plugs)
|
|
tagInjectionList(til)
|
boolean
|
|
|
This flag will return the list of nodes which are non-procedural componentTag injection nodes
|
|
tagInjectionNode(ti)
|
boolean
|
|
|
This flag will return the name of the non-referenced component tag injection node as high
up in the deformation chain as possible. This can be the same as the input shape or an
empty string when none exists.
|
|
tweakNode(tw)
|
boolean
|
|
|
This flag will return the name of the tweak node in the deformation chain.
This can return an empty string when none exists.
|
|
upstreamTagInjectionNode(uti)
|
boolean
|
|
|
This flag will return the name of the non-referenced component tag injection node most
upstream from (but not including) the input shape.
This can be an empty string when none exists. If so, one can be created using the
cti/createUpstreamTagInjectionNode flag.
|
|
worldShapeOutAttr(wso)
|
boolean
|
|
|
Returns the name of world shape out attribute
|
|
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 an original geometry if it does not exist
cmds.deformableShape('ball', cog=True)
import maya.cmds as cmds
cmds.polyCylinder(n="myGeo", r=1, h=6, sx=4, sy=5, sz=1)[0]
cmds.select(['myGeo.vtx[12:23]', 'myGeo.vtx[25]'])
clusterNode, clusterHandle = cmds.cluster()
cmds.move(1.0, 0, 0, clusterHandle, absolute=True)
# Get the node chain leading up to the shape
cmds.deformableShape('myGeoShape', nch=True)
# Result: [u'polyCylinder1', u'myGeoShapeOrig', u'groupParts2', u'tweak1', u'cluster1GroupParts', u'cluster1', u'myGeoShape'] #
# Get the deformer chain leading up to the shape
cmds.deformableShape('myGeoShape', ch=True)
# Result: [u'tweak1', u'cluster1'] #
# Get the plug chain leading up to the shape
cmds.deformableShape('myGeoShape', pch=True)
# Result: [u'polyCylinder1.output', u'myGeoShapeOrig.inMesh', u'myGeoShapeOrig.worldMesh[0]', u'groupParts2.inputGeometry', u'groupParts2.outputGeometry', u'tweak1.input[0].inputGeometry', u'tweak1.outputGeometry[0]', u'cluster1GroupParts.inputGeometry', u'cluster1GroupParts.outputGeometry', u'cluster1.input[0].inputGeometry', u'cluster1.outputGeometry[0]', u'myGeoShape.inMesh'] #
# Get the output plug chain leading up to the shape
cmds.deformableShape('myGeoShape', och=True)
# Result: [u'polyCylinder1.output', u'myGeoShapeOrig.worldMesh[0]', u'groupParts2.outputGeometry', u'tweak1.outputGeometry[0]', u'cluster1GroupParts.outputGeometry', u'cluster1.outputGeometry[0]'] #