Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ScatterToCopy_v0.1
- # Select mesh, then scatter object
- from pymel.core import *
- import maya.cmds as cmds
- import random as r
- def getSG(s):
- s = s[0]#ls(s)[0]
- objSG = s.getShape().listConnections(s, t = "shadingEngine")
- #objSG = listConnections(s)
- objMat = objSG[0].surfaceShader.listConnections()
- if not objMat:
- objMat = objSG[0].miMaterialShader.listConnections()
- return objSG, objMat
- sl = selected()
- scatterObjs = sl[:-1]
- scatterBase = sl[-1]
- select(cl=1)
- scatCheck = listConnections(scatterBase.outMesh)
- i=0
- if scatCheck:
- i = len(scatCheck)
- mesh2arraysCheck = ls(scatterBase+"_mesh2arrays_"+str(i))
- if not mesh2arraysCheck:
- scat = soup().create('mesh2arrays')
- rename(scat, scatterBase+"_mesh2arrays_"+str(i))
- scat = ls(scatterBase+"_mesh2arrays_"+str(i))
- print scat
- scatterBase.getShape().outMesh >> scat[0].inputMesh
- copyCheck = ls(scatterBase+"_copy_"+str(i))
- if not mesh2arraysCheck:
- cop = soup().create('copier')
- rename(cop, scatterBase+"_copy_"+str(i))
- cop = ls(scatterBase+"_copy_"+str(i))
- scat[0].positionArray >> cop[0].posArray
- scat[0].normalArray >> cop[0].aimArray
- #newMesh = duplicate(scatterObjs[0], n = scatterObjs[0]+"_stc")[0]
- newMesh = createNode("mesh")
- cop[0].outputMesh >> newMesh.inMesh
- scatterObjs[0].worldMesh[0] >> cop[0].inputMesh[0]
- objSG, objMat = getSG(scatterObjs)
- print objSG, objMat
- sets(objSG[0],e=1,forceElement = newMesh)
- polySoftEdge(newMesh,a=0)
Advertisement
Add Comment
Please, Sign In to add comment