def softModToSticky(mesh, skin, soft, finalMesh=""): """creates a sticky point on the softmod location and transfer their weights""" trans = soft.parent control = stk.ControlOnMesh( name=soft.name.replace("_SFM", ""), baseJoint="", position=trans.worldPosition, mesh=mesh ) control.create() mc.select(mesh, control.skinJoint.name) mc.skinCluster(skin, e=True, dr=4, lw=True, wt=0, ai=control.skinJoint.name) control.skinJoint.a.lockInfluenceWeights.v = 0 if not soft.a.joint.exists: print "no existe joint attribute" soft.a.joint.add(at="message") if not control.skinJoint.a.soft.exists: print "no existe soft attribute" control.skinJoint.a.soft.add(at="message") soft.a.joint >> control.skinJoint.a.soft sf.copyWeightsToJoint(soft.name, skin, control.skinJoint.name, mesh, finalMesh) return control
def transferWeightToSel(skin, mesh): """transfer weight of selected softmod to their skin joint""" softMo = mn.ls(sl=True, dag=True, typ="softModHandle") if softMo: for s in softMo: sf.copyWeightsToJoint(s.name, skin, s.a.joint.output[0].node.name, mesh)