パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

Blenderで箱を延々と積む

2009-05-04 | Blender

賽の河原で鬼に命ぜられて
こつこつと箱を積み上げてできたのが写真
(1行目は気にしないでください テレビの見すぎです)



というわけではなくてpythonが頑張ってます

前日からの続き
1 GIMPを入れて透過GIFを作成して
  球に貼り付けて、「おお透きとおった」で一旦保留

2 アニメーションに挑戦しようとしたのですが
  一時間で何もできないまま保留

3 それならScriptやろうとしてpython3.0.1をダウンロードするも
  Blender2.48aが認識できないのでpython2.5.4をダウンロード

4 Blender pythonで検索して最初に出てきたサイトのソースを
  ちょこっと改造したのが写真です

  (ちょこっとの割に、えらく時間かかってます)
  「そういえばpythonのループの範囲ってインデントだったっけ」
  「なぜループがまわらん…… tabが混じって長さ違ってるーー」
  「グラデーションかけてるようにまったく見えないなー……
   一つ一つにつけないと最後のが有効になるのか!」云々

5 箱を球にしようとしたのですが挫折!


どこのサイトを参考にしたのか丸わかりですが、
こんな感じで積み上げてます

from Blender import *
import math

###### Scene ######
scene = Scene.New('myScene')
scene.makeCurrent()


###### Lights ######
ldat = Lamp.New('Area')
ldat.energy = 0.1
l1 = scene.objects.new(ldat, 'myLamp')
l1.loc = (0, 0, 8)

###### Camera ######
camdat = Camera.New('persp')
cam = scene.objects.new(camdat, 'myCamera')
cam.loc = (0, -12, 8)
cam.RotX = 0.9


###### Stuff ######
mdat = Mesh.Primitives.Cube(0.3)
for b in range(20):
    mmat = Material.New('myMaterial')
    mmat.rgbCol = (1.0*b/20, 1.0*b/30, 0.0)
    for a in range(32):
        m = scene.objects.new(mdat,'myMesh')
        m.LocX = math.sin(math.pi*2*a/32)*5
        m.LocY = math.cos(math.pi*2*a/32)*5
        m.LocZ = b*0.4-5
        m.setMaterials([mmat])
        m.colbits = 1

Redraw()

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。