Skip to content

Instantly share code, notes, and snippets.

@SEVEZ
Forked from jhoolmans/softCluster.py
Created May 11, 2016 18:53
Show Gist options
  • Save SEVEZ/11e5e58d622fc593ce9e83cbc35a85e1 to your computer and use it in GitHub Desktop.
Save SEVEZ/11e5e58d622fc593ce9e83cbc35a85e1 to your computer and use it in GitHub Desktop.
Maya create soft cluster
import maya.cmds as mc
import maya.OpenMaya as om
def softSelection():
selection = om.MSelectionList()
softSelection = om.MRichSelection()
om.MGlobal.getRichSelection(softSelection)
softSelection.getSelection(selection)
dagPath = om.MDagPath()
component = om.MObject()
iter = om.MItSelectionList( selection,om.MFn.kMeshVertComponent )
elements = []
while not iter.isDone():
iter.getDagPath( dagPath, component )
dagPath.pop()
node = dagPath.fullPathName()
fnComp = om.MFnSingleIndexedComponent(component)
for i in range(fnComp.elementCount()):
elements.append([node, fnComp.element(i), fnComp.weight(i).influence()] )
iter.next()
return elements
def createSoftCluster():
softElementData = softSelection()
selection = ["%s.vtx[%d]" % (el[0], el[1])for el in softElementData ]
mc.select(selection, r=True)
cluster = mc.cluster(relative=True)
for i in range(len(softElementData)):
mc.percent(cluster[0], selection[i], v=softElementData[i][2])
mc.select(cluster[1], r=True)
createSoftCluster()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment