Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # maya rock gen
- # creates a good rock every once in a while, other times it makes nothing.
- # just create 100 and pikc out the good ones.
- from pymel.core import *
- import random as r
- def randE(object):
- ea = []
- for edge in object.e:
- rE = r.randint(0,6)
- if rE == 3:
- polyCollapseEdge(edge,ch=0)
- ea.append(edge)
- def randEs(object):
- ea = []
- for edge in object.e:
- rE = r.randint(0,6)
- if rE == 3:
- polyCollapseEdge(edge,ch=0)
- ea.append(edge)
- def randoY(object):
- rx = r.randint(0,360)
- ry = r.randint(0,360)
- rz = r.randint(0,360)
- rotate(object,rx,ry,rz)
- def cleanRock(rock):
- #select(cl=1)
- #select(rock,add=1)
- #bb = polyEvaluate(b=1)
- nwMesh = polyCube()[0]
- polySmooth(nwMesh,dv=2)
- delete(rock, ch = 1)
- polySmooth(nwMesh,dv=1)
- print nwMesh, rock
- #select(cl=1)
- #select([nwMesh[0],rock])
- #transferAttributes(nwMesh,rock,pos=1,sm=0)
- def worldCenter(object):
- xform(object,cp=1)
- l = spaceLocator(n = "temp_position")
- pc = pointConstraint(l,object)
- delete(pc,l)
- def randoT(rock):
- amount = .1
- ammountNeg = -amount
- tY = r.uniform(ammountNeg,amount)
- tX = r.uniform(ammountNeg,amount)
- tZ = r.uniform(ammountNeg,amount)
- print rock[0]
- move(rock[0],tX,tY,tZ, r=1)
- def makeRock():
- c = polyCube(ch=0,n="rock_")[0]
- c1 = c
- complexity = 1
- for i in range(0,complexity):
- randEs(c)
- polyTriangulate(c,ch=0)
- polySmooth(c,ch=0)
- randE(c)
- polyAutoProjection(c, p = 6, l=2,ch=0)
- polyTriangulate(c,ch=0)
- polySmooth(c,ch=0)
- c2 = duplicate(c)
- randoY(c2)
- randoT(c2)
- rock = polyBoolOp(c,c2, op=3, o=1)
- worldCenter(c1)
- #sets("rocksSG",e=1, fe = c1)
- #cleanRock(c)
- #select(c1)
- #print "c1 is ",c1
- return rock[0]
- slList = []
- for i in range(0,1):
- rock = makeRock()
- print rock.getShape()
- delete(rock,all=1,ch = 1)
- slList.append(rock)
- select(slList)
Advertisement
Add Comment
Please, Sign In to add comment