本日は Blender の技術調査です。
前回記事では Python モジュール向けの Blender2.8 をビルドすることができました。
今回は Python に組み込んだ Blender2.8 をテスト実行する手順を記事にします。
前回記事の続きです。
bluebirdofoz.hatenablog.com
テストスクリプトの実行
初期画面のレンダリング画像を出力するスクリプトを作成してみます。
・RenderTest.py
# 不要なシステムパスの削除 import sys, os pythonexedir=os.path.dirname(sys.executable) del sys.path[5:] sys.path.append(pythonexedir + '\\lib\\site-packages') sys.path.append(pythonexedir + '\\lib\\site-packages\\blender') # bpy インポート import bpy # レンダリングの実行と画像ファイルの出力 import bpy bpy.context.scene.render.engine = 'CYCLES' bpy.ops.render.render() bpy.data.images['Render Result'].save_render(filepath='.\image.png')
システムパスの削除は前回エラーの対処としてスクリプトに追加しました。
レンダリングの際、レンダリングエンジンを 'CYCLES' に変更しているのは 'EEVEE' だとエラーが発生するためです。
以下のページを参考にしました。
qiita.com
RenderTest.py を保存したディレクトリを PowerShell で開き、以下のコマンドでスクリプトを実行します。
・(Pythonディレクトリ)\python.exe .\RenderTest.py
以下の通り、レンダリング結果の画像が出力されれば成功です。
アドオンの利用
更に Blender2.8 にアドオンを追加して利用する手順を試してみます。
今回は ifc ファイルを読み込んでレンダリングを行うスクリプトを作成します。
IfcOpenShell アドオンを利用します。アドオンについては以下の記事を参照ください。
bluebirdofoz.hatenablog.com
まずは利用する ifcBlender のアドオンをアドオン用ディレクトリ(Pythonディレクトリ/2.80/scripts/addons)にコピーします。
次に ifc ファイルを読み込んでレンダリングを行うスクリプトを作成します。
組み込み Blender でアドオンを利用するには、起動時にユーザ設定でアドオンを有効にする必要があります。
・IFCRenderTest.py
# 不要なシステムパスの削除 import sys, os pythonexedir=os.path.dirname(sys.executable) del sys.path[5:] sys.path.append(pythonexedir + '\\lib\\site-packages') sys.path.append(pythonexedir + '\\lib\\site-packages\\blender') # bpy インポート import bpy # ユーザ設定での IfcBlender アドオンの有効化 bpy.ops.preferences.addon_enable(module='io_import_scene_ifc') # デフォルトの Cube を削除 bpy.data.objects.remove(bpy.data.objects['Cube']) # ifcファイルの読み込み bpy.ops.import_scene.ifc(filepath='.\CapTest2Grip.ifc') # ifcファイルの大きさ調整 for item in bpy.data.objects: # 全メッシュオブジェクトを対象に処理を行う if item.type == 'MESH': # 大きさを15倍に設定する item.scale[0] = 15.0 item.scale[1] = 15.0 item.scale[2] = 15.0 # レンダリングの実行と画像ファイルの出力 bpy.context.scene.render.engine = 'CYCLES' bpy.ops.render.render() bpy.data.images['Render Result'].save_render(filepath='.\image.png')
RenderTest.py を保存したディレクトリを PowerShell で開き、以下のコマンドでスクリプトを実行します。
・(Pythonディレクトリ)\python.exe .\IFCRenderTest.py
以下の通り、読み込まれた ifc ファイルのレンダリング結果の画像が出力されれば成功です。