Skip to content

Instantly share code, notes, and snippets.

@jhoolmans
Created February 24, 2014 19:49
Show Gist options
  • Save jhoolmans/9195634 to your computer and use it in GitHub Desktop.
Save jhoolmans/9195634 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()
@vishal980-glitch
Copy link

i have done some changes now it will work for skin cluster instead of normal cluster

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment