BlenderでPythonスクリプトを実行する手順の説明である.Blenderは3Dコンピュータグラフィックス・アニメーションソフトウェアであり,Pythonコンソールを使用してプログラムを実行できる.Blenderの公式ページからインストールし,スクリプト作成ワークスペースに切り替えるとPythonコンソールが利用できる.コンソール内ではIPythonシェルが動作し,Blenderオブジェクトや画面の情報を表示できる.さらに,レンダリングやライト・カメラの設定もPythonスクリプトで行える.データアクセスやオブジェクトの一覧表示に関する情報も提供されている.
Blenderは,3次元コンピュータグラフィックス・アニメーションソフトウェア. 立体の編集,レンダリング、ライト(ランプ)やカメラ等を設定しての3次元コンピュータグラフィックス・アニメーション作成機能がある.
【目次】
【サイト内の関連ページ】
【関連する外部ページ】
前準備として,Blender のインストールが終わっていること.
画面ワークスペースとして「スクリプト作成」を選ぶ.
画面ワークスペースとして「レイアウト」を選ぶ.
コンソール画面の中では, IPython シェルが動いている.
コンソール画面で次を実行
D = bpy.data for i in D.objects: print(i.name)
Blender オブジェクトが確認できる(下の実行結果例では Camera, Cube, Light の 3つ)
コンソール画面で次を実行
D = bpy.data for i in D.objects: if i.type == "MESH": print(i.name)
コンソール画面で次を実行
D = bpy.data for i in D.screens: print(i.name)
画面名が確認できる
コンソール画面で「bpy.data.」と入力したあとで、「オートコンプリート (Autocomplete)」をクリック
補完の候補が表示される.
Windowsの場合は,環境変数 HOMEPATH を使うことにする.
※ Linux の場合は,「HOMEPATH」の代わりに「HOME」を使う.
import os bpy.ops.render.render() D = bpy.data D.images['Render Result'].save_render(filepath = os.environ['HOMEPATH'] + '/hoge.png')
できあがった画像ファイル hoge.png は次の通り.
Pythonスクリプトでライトを設定する
import os pi = 3.141592 lamp = { "location" : (20, 0, 10), "rotation_euler" : (0, 0.2, 0.4), "falloff_type" : 'INVERSE_LINEAR', "shadow_method" : 'RAY_SHADOW' } # lamp = { "location" : (20, 20, 10), "rotation_euler" : (0, 0.2, 0.4), "falloff_type" : 'INVERSE_LINEAR', "shadow_method" : 'NOSHADOW' } D = bpy.data lamp_obj = D.objects['Light'] lamp_obj.location = lamp["location"] lamp_obj.rotation_euler = lamp["rotation_euler"] lamp_obj.data.falloff_type = lamp["falloff_type"] bpy.ops.render.render() D.images['Render Result'].save_render(filepath = os.environ['HOMEPATH'] + '/hoge.png')
できあがった画像ファイル hoge.png は次の通り.
Pythonスクリプトでカメラを設定する
pi = 3.141592 camera = { "location" : (15, 0, 15), "rotation_euler" : (0, 1, 0), "type" : 'PERSP', "angle" : 50.0 * (pi/180.0) } D = bpy.data scene = D.scenes["Scene"] scene.camera.location = camera["location"] scene.camera.rotation_euler = camera["rotation_euler"] scene.camera.data.type = camera["type"] scene.camera.data.angle = camera["angle"] bpy.ops.render.render() D.images['Render Result'].save_render(filepath = os.environ['HOMEPATH'] + '/hoge.png')
できあがった画像ファイル hoge.png は次の通り.
【関連する外部ページ】
https://docs.blender.org/api/blender_python_api_2_63_release/bpy.data.html
https://docs.blender.org/api/blender_python_api_2_63_release/bmesh.html
D = bpy.data for i in D.objects: print(i.name)
D = bpy.data print(D.scenes.keys())
D = bpy.data if "Cube" in D.meshes: mesh = bpy.data.meshes["Cube"] for i in mesh.edges: print(i) for i in mesh.vertices: print(i) for i in mesh.polygons: print(i)