とりあえず Hello World


 まずは python スクリプトが実行できるようにする。

 Help の横にあるリストボックスの左側(上下三角のアイコン)をクリック。出てきたメニューから「5-scripting」をクリック。


 そうすると

 のようにウィンドウが分割される。分割部分の大きさは境界をドラッグして調整できる。ここでは右側がスクリプトを書くエディタ領域で、python スクリプトを直接書くことが出来る。


 例えば

print 'Hello, world.'


と入力して「Alt+p」(あるいはエディタ領域で右クリックして「Execute Script」)を押してスクリプトを実行すると標準出力に「Hello, world.」と表示される。


 更には

from Blender import *

scene = Scene.GetCurrent() 

for ob in scene.objects:
  print ob.name, ob.loc

と書いてスクリプトを実行(「Alt+p」)すると下記のように現在 scene 上にある object の名前とその3次元座標上の位置が表示される。

Cube (0.0, 0.0, 0.0)
Lamp (4.076, 1.005, 5.904)
Camera (7.481, -6.508, 5.344)

 ここで大雑把に Blender + python における主要なクラスと概念を図解するとだいたいこんな感じ。図中の英単語はそのまま Blender モジュール名かつクラス名にもなっている。


 Scene の中に Object を配置する(関連付ける)。Object として登録できるものには Mesh や Metaball などで作られる「もの」と、 視点を設定する Camera、光源を設定する Lamp などがある。Object に Material を関連付けることで色や透明度などが指定できる。また World で背景を指定する。



      • -

 以下蛇足。


 以上を踏まえた上で上記のスクリプトを見ると、

from Blender import *

scene = Scene.GetCurrent() 

for ob in scene.objects:
  print ob.name, ob.loc


 scene は Scene 型のインスタンス
 scene.objects は Scene型のインスタンス変数。その中身は(scene に関連付けられた) Object 型のインスタンスの系列。
 ob は Object 型のインスタンス
 ob.name や ob.loc は Object 型のインスタンス変数。その中身はそれぞれ名前(文字列)と3次元座標を表すタプル(この場合は実数の組)。