概要
blender で bpy を使った Python スクリプトを動かしてみました
blender の Scripting スクリーンでも動かせるのですがいちいちインタラクティブに実行するは面倒なのでスクリプトする場合に便利です
なお Python や bpy などのモジュールはすべて blender に同梱されているので個別にインストールはしません
環境
- macOS 11.6.2
- blender 2.93.1
事前準備
blender で適当な形でいいのでモデリングしておきましょう
今回は昔作成した箸置きのモデルを使います
スクリプト
内容は簡単でオブジェクト一覧の取得とオブジェクトを画像ファイルに保存する処理になっています
- vim test.py
import bpy
import os
for i in bpy.data.objects:
print(i.name)
bpy.ops.render.render()
bpy.data.images['Render Result'].save_render(filepath = os.environ['HOME'] + '/Downloads/hashioki.png')
動作確認
blender コマンドを使います
「-b」でバックグラウンドで blener を実行し「-P」で実行する python スクリプトを指定します
- blender -b hashioki.blend -P test.py
Blender 2.93.1 (hash 1b8d33b18c2f built 2021-06-22 23:47:10)
Read prefs: /Users/username/Library/Application Support/Blender/2.93/config/userpref.blend
Read blend: /Users/username/data/repo/ruby-scraping-tools/blender/hashioki.blend
Camera
Cube
Light
Fra:1 Mem:88.95M (Peak 89.62M) | Time:00:00.90 | Syncing Cube
Fra:1 Mem:89.42M (Peak 89.65M) | Time:00:01.29 | Syncing Light
Fra:1 Mem:89.42M (Peak 89.65M) | Time:00:01.29 | Syncing Camera
Fra:1 Mem:89.39M (Peak 89.65M) | Time:00:01.30 | Rendering 1 / 64 samples
Fra:1 Mem:89.31M (Peak 89.65M) | Time:00:04.33 | Rendering 26 / 64 samples
Fra:1 Mem:89.31M (Peak 89.65M) | Time:00:05.21 | Rendering 51 / 64 samples
Fra:1 Mem:89.31M (Peak 89.65M) | Time:00:05.67 | Rendering 64 / 64 samples
Blender quit
ちゃんと画像ファイルも作成されていることが確認できると思います
最後に
今回は簡単なスクリプトとして動かしていませんがアニメーションやオブジェクトの作成も行えます
blener ファイルだとバイナリになるので python スクリプトで管理することができれば差分などをテキストで確認することができるようになります
またクラスなどを使ってオブジェクトのパーツを管理することで他のモデリングをするときに簡単に流用できることができる他、管理も一箇所になるので修正などが簡単に行えるかなと思います
ただ使いこなすには API をしていなければならないのと blender の仕組みも知る必要があるのでハードルはそれなりに高いと思います
0 件のコメント:
コメントを投稿