2022年1月5日水曜日

(超入門) blender で Python スクリプトを実行する方法

(超入門) blender で Python スクリプトを実行する方法

概要

blender で bpy を使った Python スクリプトを動かしてみました
blender の Scripting スクリーンでも動かせるのですがいちいちインタラクティブに実行するは面倒なのでスクリプトする場合に便利です

なお Python や bpy などのモジュールはすべて blender に同梱されているので個別にインストールはしません

環境

  • macOS 11.6.2
  • blender 2.93.1

事前準備

blender で適当な形でいいのでモデリングしておきましょう
今回は昔作成した箸置きのモデルを使います

スクリプト

内容は簡単でオブジェクト一覧の取得とオブジェクトを画像ファイルに保存する処理になっています

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 件のコメント:

コメントを投稿