本日は Blender の技術調査枠です。
Blender2.8 の操作を python スクリプトを使って実行する手順を記事にします。
Python APIの確認方法
Blender2.8 の Python API に関するマニュアルは以下になります。
docs.blender.org
または GUI 上で行いたい操作にマウスオーバーすると、その操作の Python API が表示されます。
Blender2.79でのログウィンドウに当たる情報は[情報]ウィンドウを有効にすると確認できます。
Pythonのコマンド実行
実際に Blender 上で Python スクリプトを実行してみます。
実行用のウィンドウを用意し、エディタータイプから[Pythonコンソール]を選択します。
すると以下のエディタ画面が開きます。
試しに Cube オブジェクトを削除してみます。
以下のコマンドでシーンの"Collection"に含まれた"Cube"オブジェクトの削除(リンク削除)が行えます。
bpy.context.scene.collection.children['Collection'].objects.unlink(bpy.data.objects['Cube'])
実行してみると、"Cube"オブジェクトが削除されました。
Pythonのファイル実行
Python スクリプトのテキストファイルを実行する事も可能です。
何度も利用する処理はスクリプトファイルとして保存しておくと便利です。
例えば、以下のような全オブジェクトの削除処理をスクリプトファイルとして保存します。
・AllDelete.py
# bpyインポート import bpy # 全オブジェクト/メッシュ/マテリアル/コレクションの削除 # 引数 # 戻り値 def delete_all(): for item in bpy.data.objects: bpy.data.objects.remove(item) for item in bpy.data.meshes: bpy.data.meshes.remove(item) for item in bpy.data.materials: bpy.data.materials.remove(item) for item in bpy.data.collections: bpy.data.collections.remove(item) return # 関数の実行例 delete_all()
次に作成したスクリプトファイルを Blender 内で利用してみます。
ウィンドウのエディタ―タイプから[テキストディター]を選択します。
ウィンドウが切り替わったら[開く]ボタンから先ほど作成したスクリプトを選択して読み込みます。
ファイルが読み込まれたら[スクリプト実行]ボタンで処理を開始します。
スクリプトが実行され、全てのオブジェクトが削除されました。
Blender2.79とBlender2.8のPythonの差異
Blender2.8は過去バージョンの Python API と差異があり、互換性が一部ありません。
公式ページの説明が以下にあります。
wiki.blender.org
以下のページで日本語訳されています。
dskjal.com
本ブログでも理解できたものは適宜まとめていきます。