Tak som upravil moj skript na generovanie rastlín a už konečne funguje ako má
Kód:
#########################################################
# #
# Skript na jednoduche generovanie jednoduchych rastlin #
# #
# Oznacte list a stlacte "Alt-P" - A program vygeneruje #
# objekt podobny rastline (mozno ;)) Upravte ako chcete #
# ale hadam mi aj dajte vediet (mailing-list@szm.sk).. #
# #
# #
# #
# ..vdaka Ashovi za vydatnu pomoc :) #
# #
#########################################################
import Blender
from Blender import NMesh
from math import *
import random
vyska = 20 # pocet segnentov
segment = 0.3 # vyska jedneho segmentu
minus = 0.01 # kazdy novy segment moze mat inu vysku
# ^^^ Uzivat s rozvahou!
hrubka = 0.25 # hrubka stebla {?}
nahoda = 3 # nahoda
rotlist = 2 # o kolko zrotuje dajsi list
listy = 1 # Chceme listy?
zlist = 0.3 # O kolko chceme zvacsit dalsi list?
if (nahoda==0):
nahoda=1000
for i in range(15): # (kvazi)pomazeme okienko :)
print
me=NMesh.GetRaw() # ziskame kontrolu nad Meshmi
xp=0
yp=0
rt=0
sz=1+(1/vyska)
print dir(NMesh)
for i in range(vyska): # a rastlinime :)
Blender.Redraw()
xrnd=random.random()-0.5
yrnd=random.random()-0.5
xp=xp+xrnd/nahoda
yp=yp+yrnd/nahoda
v=NMesh.Vert(0+xp,0+yp,-(i-1)*segment+(vyska*segment)-1)
me.verts.append(v)
v=NMesh.Vert((hrubka*i/vyska)/2+xp,(hrubka*i/vyska)*3/4+yp,-(i-1)*segment+(vyska*segment)-1)
me.verts.append(v)
v=NMesh.Vert(hrubka*i/vyska+xp,0+yp,-(i-1)*segment+(vyska*segment)-1)
me.verts.append(v)
if (listy==1): # A olistime
oList=Blender.Object.GetSelected()[0]
nList=Blender.Object.New("Mesh")
mList=oList.getData()
nList.link(mList)
nList.setName("rList"+str(i))
Blender.Scene.getCurrent().link(nList)
nList.setLocation(0+xp,0+yp,-(i-1)*segment+(vyska*segment)-1)
nList.setEuler(0,0,rt)
nList.setSize (sz,sz,sz)
sz=sz-zlist
rt=rotlist+rt
segment=segment+minus
for i in range(1,vyska): #ofacujeme
Blender.Redraw()
f=NMesh.Face()
f.v.append(me.verts[i*3-3])
f.v.append(me.verts[i*3])
f.v.append(me.verts[i*3+1])
f.v.append(me.verts[i*3-2])
me.faces.append(f)
f=NMesh.Face()
f.v.append(me.verts[i*3-3+1])
f.v.append(me.verts[i*3+1])
f.v.append(me.verts[i*3+1+1])
f.v.append(me.verts[i*3-2+1])
me.faces.append(f)
f=NMesh.Face()
f.v.append(me.verts[i*3-3])
f.v.append(me.verts[i*3])
f.v.append(me.verts[i*3+2])
f.v.append(me.verts[i*3-1])
me.faces.append(f)
me.setSubDivLevels([2,2])
NMesh.PutRaw(me, "rastlinka", 1)
Blender.Redraw()