cwisbg

ScatterToCopy_v0.1

Oct 18th, 2015
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.49 KB | None | 0 0
  1. # ScatterToCopy_v0.1
  2. # Select mesh, then scatter object
  3. from pymel.core import *
  4. import maya.cmds as cmds
  5.  
  6. import random as r
  7. def getSG(s):
  8.     s = s[0]#ls(s)[0]
  9.     objSG = s.getShape().listConnections(s, t = "shadingEngine")
  10.     #objSG = listConnections(s)
  11.     objMat = objSG[0].surfaceShader.listConnections()
  12.     if not objMat:
  13.         objMat = objSG[0].miMaterialShader.listConnections()
  14.     return objSG, objMat
  15.    
  16.  
  17. sl = selected()
  18. scatterObjs = sl[:-1]
  19. scatterBase = sl[-1]
  20. select(cl=1)
  21. scatCheck = listConnections(scatterBase.outMesh)
  22. i=0
  23. if scatCheck:
  24.     i = len(scatCheck)
  25.    
  26. mesh2arraysCheck = ls(scatterBase+"_mesh2arrays_"+str(i))
  27. if not mesh2arraysCheck:
  28.     scat = soup().create('mesh2arrays')
  29.     rename(scat, scatterBase+"_mesh2arrays_"+str(i))
  30.     scat = ls(scatterBase+"_mesh2arrays_"+str(i))
  31.     print scat
  32.     scatterBase.getShape().outMesh >> scat[0].inputMesh
  33.  
  34. copyCheck = ls(scatterBase+"_copy_"+str(i))
  35. if not mesh2arraysCheck:
  36.     cop = soup().create('copier')
  37.     rename(cop, scatterBase+"_copy_"+str(i))
  38.     cop = ls(scatterBase+"_copy_"+str(i))
  39.     scat[0].positionArray >> cop[0].posArray
  40.     scat[0].normalArray >> cop[0].aimArray
  41. #newMesh = duplicate(scatterObjs[0], n = scatterObjs[0]+"_stc")[0]
  42. newMesh = createNode("mesh")
  43. cop[0].outputMesh >> newMesh.inMesh
  44. scatterObjs[0].worldMesh[0] >> cop[0].inputMesh[0]
  45. objSG, objMat = getSG(scatterObjs)
  46. print objSG, objMat
  47. sets(objSG[0],e=1,forceElement = newMesh)
  48. polySoftEdge(newMesh,a=0)
Advertisement
Add Comment
Please, Sign In to add comment