2011/09/23

Blender 2.5 をコマンドラインツールとして使う

Blender をコマンドラインツールとして使う

以下のようにすると Blender をコマンドラインから起動して指定した Python スクリプトを実行することができます。

$ blender --background --python test.py

--background オプションを付けると Blender の UI を出さないモードで起動します。 コマンドラインツールとして大量のレンダリングを実行したり、モデルを自動生成するのに使えます。

blender コマンドにはパスを通すなどしてシェルから実行できるようにしておく必要があります。当方では以下のように alias を設定しています。

alias blender='/Applications/blender-2.59-OSX_10.5_i386/blender.app/Contents/MacOS/blender'


視点をスクリプトから設定したい

で、当方ではモデルを自動生成するのに使っているんですが、その blend ファイルを開いて確認する際、毎回決まった視点で表示したいと思ったので調べました。以下のようなスクリプトで設定できます。(ついでにテクスチャ付きで描画するようにしてあります)

# -*- coding: utf-8 -*-

import bpy
from mathutils import Quaternion


for a in bpy.context.window.screen.areas:
    for s in a.spaces:
        if s.type == "VIEW_3D":
            # テクスチャ付きで描画する設定
            s.viewport_shade = "TEXTURED"
            
            # ビューの設定
            s.region_3d.view_rotation = Quaternion((1,0,0),-1.57)
            s.region_3d.view_distance = 5
# 保存
bpy.ops.wm.save_as_mainfile(filepath="sample.blend", relative_remap=True)

Quaternion を使ってビューを設定します。
Blender の座標系は右手系なので、Quaternion((1,0,0), -1.57) は「X軸の方向を向いて反時計回りに-90度の回転」を表します。

何も回転しないと「X 軸が右、Y 軸が上、 Z 軸が手前」のビューになるので、上記の回転を施すと「X 軸が右、Y 軸が手前、Z 軸が下」になります。



スクリーンショット
生成された sample.blend を開いたところです。確かに X 軸が右、Y 軸が手前、Z 軸が下になっています。