とりあえず Hello World
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次元座標を表すタプル(この場合は実数の組)。