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

Synopsis

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.

Return value

None

Flags

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 create
This flag will return the list of deformers that deformer the specified shapes
createOriginalGeometry(cog) boolean create
This creates an original geometry for the shape if it does not exist yet.
createTweakNode(ctw) boolean create
This creates a traditional tweak node if one did not exist yet.
createUpstreamTagInjectionNode(cti) boolean create
This creates an upstream component tag injection node if an editable one does not exist yet.
frontOfChain(foc) boolean create
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 create
Returns the name of local shape in attribute
localShapeOutAttr(lso) boolean create
Returns the name of local shape out attribute
nodeChain(nch) boolean create
This flag will return the list of nodes through which the geometry passes to get to this shape
originalGeometry(og) boolean create
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 create
This flag will return the list of output plugs leading to the shape
plugChain(pch) boolean create
This flag will return the list of plugs leading to the shape (both input and output plugs)
tagInjectionList(til) boolean create
This flag will return the list of nodes which are non-procedural componentTag injection nodes
tagInjectionNode(ti) boolean create
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 create
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 create
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 create
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.

Python examples

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]'] #