MRが楽しい

MRやVRについて学習したことを書き残す

Blenderでpythonスクリプトをコマンドラインで利用する

本日は Blender の技術調査枠です。
以前、Blenderpython スクリプトを利用する技術を試しました。
bluebirdofoz.hatenablog.com

しかし操作内容を python スクリプトで書いているのに態々 blender を起動するのは手間な話です。
そんなときはコマンドライン上からも実行可能です。
・BlenderWiki
https://wiki.blender.org/index.php/Doc:JA/2.6/Manual/Render/Command_Line
Blender起動時オプション
http://blendstudy.readthedocs.io/en/latest/02_launchblender/introduction.html

Windows上で利用する場合、コマンドプロンプトを開きます。
Blender がインストールされたディレクトリに移動してから、blender コマンドを実行することで利用可能です。

python スクリプトの利用は -P または --python オプションで可能です。

試しに、ファイルを自動で読み込んで別形式で保存出力するスクリプトを作成します。
・TestFBXMaker.py

import bpy

bpy.context.scene.objects.unlink(bpy.data.objects['Cube'])

bpy.context.scene.objects.unlink(bpy.data.objects['Camera'])

bpy.context.scene.objects.unlink(bpy.data.objects['Lamp'])

bpy.ops.import_scene.x3d(filepath='D:\Paraview\Output\WingTest\WingGeo0000.x3d')

bpy.ops.export_scene.fbx(filepath='D:\Paraview\Output\WingTest\Test\TestWingGeo0000.fbx', version='BIN7400', ui_tab='GEOMETRY', use_mesh_modifiers=True, mesh_smooth_type='OFF')

早速コマンドプロンプトで使ってみましょう。

……と、私の環境では Blender が D ドライブにあるため、コマンドプロンプトのドライブ移動に手間取りました。
情報を残して置きます。「C:\> D:」で移動できます。
nemoplus.hateblo.jp

では早速、Blender のインストールフォルダに移動して以下のコマンドを実行します。
blender.exe -P D:\Blender\pythonScript\TestFBXMaker.py
f:id:bluebirdofoz:20170914005401j:plain

しかし、Blender が起動するだけで python スクリプトは実行されませんでした。
f:id:bluebirdofoz:20170914005422j:plain

どうやらスクリプト実行のコントロール設定で実行の許可を与えないといけない模様です。
スクリプティングとセキュリティ
https://wiki.blender.org/index.php/Doc:JA/2.6/Manual/Extensions/Python/Security

セキュリティ的に当然ですね。以下の通り、ユーザ設定で自動実行を許可します。
f:id:bluebirdofoz:20170914005515j:plain

では再度実行します。
f:id:bluebirdofoz:20170914005535j:plain

今度は処理が実行され、ファイル出力も行われました。
因みに上記のキャプチャの通り、本実行コマンドではGUIが起動します。

GUIの起動も不要という場合は以下の通り、-b オプションまたは--backgroundを追加する事で GUI を表示せず実行が可能です。
blender.exe -b -P D:\Blender\pythonScript\TestFBXMaker.py
または
blender.exe --background --python D:\Blender\pythonScript\TestFBXMaker.py
f:id:bluebirdofoz:20170914005639j:plain