レンダリングのバッチ処理
Blender はコマンドラインからレンダリングを実行することができます。
その指定をバッチファイルに記述し、実行することで、複数のレンダリングを自動で処理させることができます。
この機能により、効率よくレンダリングを実行でき、PC に張り付いていられない時間にもレンダリングをし続けることができます。
構文
- 各オプションや値はすべて半角スペースで区切る
- 記述したオプションの順に実行される (-f か -a を必ず最後に渡す)
- オプションは大文字小文字注意 (-S と -s は別オプション)
サンプル
以下の様な構文をバッチファイルに記述し、実行することで、自動的に指定したファイル/シーン/フレームのレンダリングを実行して保存してくれます。(Windows 用)
- set BLENDER=C:\Blender\blender.exe
- set BLEND01=C:\blenderData\model01.blend
- set BLEND02=C:\blenderData\model02.blend
- set IMAGEOUT=C:\blenderRanderData
- %BLENDER% -b %BLEND01% -S Scene.001 -E CYCLES -o %IMAGEOUT%\model01-1_ -F PNG -f 1
- %BLENDER% -b %BLEND01% -S Scene.002 -E CYCLES -o %IMAGEOUT%\model01-2_ -F PNG -f 10
- %BLENDER% -b %BLEND02% -S Scene.001 -s 10 -e 150 -E CYCLES -o %IMAGEOUT%\model02-1_ -F AVIRAW -a
- %BLENDER% -b %BLEND02% -S Scene.002 -E CYCLES -o %IMAGEOUT%\model02-2_ -F AVIRAW -a
- pause
サンプルの説明
- set BLENDER=C:\Blender\blender.exe
- 管理者の場合、Blender はインストールせずに、ZIP を解凍した中の blender.exe を直接実行して利用しています。そのため、バッチファイルで blender.exe を指定する際、フルパスで指定するのですが、実際はパスにバージョン名が含まれたフォルダが挟まっていたりして、長くなるため、冒頭に変数定義してしまっています。
- set BLEND01=C:\blenderData\model01.blend
- レンダリングに使用する blend ファイルを変数設定してます。複数ある場合は、変数名を変えて設定します。こうしておくことで、実際のレンダリング指示をする行がすっきりします。
- %BLENDER% -b %BLEND01% -S Scene.001 -E CYCLES -o %IMAGEOUT%\model01-1_ -F PNG -f 1
- %BLENDER% :実行する blender.exe の指定。
- -b :バックグラウンドで実行する指示。バックグラウンド実行だと、Blender は表示されず、複数行を順次実行するので便利。
- %BLEND01% :レンダリングに使用する blend ファイル。
- -S Scene.001 :シーンの指定。ここでは「Scene.001」を指定。
- -E CYCLES :レンダリングエンジン指定。ここでは Cycles を指定。
- -o %IMAGEOUT%\model01-1_ :出力ファイル名の指定。
- -F PNG :出力ファイルの形式の指定。ここでは静止画ファイル形式の「PNG」を指定。
- -f 1 :レンダリングするフレーム番号の指定。ここではフレーム 1 を指定。
この実行により、model01.blend の Scene.001 の フレーム 1 が、model01-1_0001.PNG として保存されます。
- %BLENDER% -b %BLEND01% -S Scene.002 -E CYCLES -o %IMAGEOUT%\model01-2_ -F PNG -f 10
この実行により、model01.blend の Scene.002 の フレーム 10 が、model01-1_0010.PNG として保存されます。
- %BLENDER% -b %BLEND02% -S Scene.001 -s 10 -e 150 -E CYCLES -o %IMAGEOUT%\model02-1_ -F AVIRAW -a
この実行により、model02.blend の Scene.001 のフレーム 10 から 150 までが、model02-1_0010-0150.avi として保存されます。
- %BLENDER% -b %BLEND02% -S Scene.002 -E CYCLES -o %IMAGEOUT%\model02-2_ -F AVIRAW -a
この実行により、model02.blend の Scene.002 の Start Frame から End Frame までが、model02-2_####-####.avi として保存されます。
- pause
最後まで実行されたことが分かるように、最後に一時停止を入れてます。
また、エラーが発生している場合も表示が残るので便利ですが、さらっと終了して欲しい場合は不要です。
コマンドウィンドウの表示
バックグラウンドレンダリング実行中、コマンドウィンドウには以下の様な表示が羅列されます。
ざっくりわかっている範囲で書くと、
- Read new prefs: Blender User Preferences で保存した「userpref.blend」
- found bundled python: Python のバンドル
- read blend: レンダリングする blend ファイル
- Scene switch: シーン名 in file: blend ファイル名
- この後、オブジェクトのシンクロ情報や、BVH の構築状況等が表示
- Fra:1 Mem:1706.72M (0.00M, Peak 1917.45M) | Time:20:21.79 | Remaining:07:43.10 | Mem:314.29M, Peak:314.29M | Scene.001, RenderLayer | Path Tracing Tile 29000/40000
- Fra:1:フレーム番号
- Mem:1706.72M (0.00M, Peak 1917.45M):使用メモリ
- Time:20:21.79:経過時間
- Remaining:07:43.10:残り時間
- Mem:314.29M, Peak:314.29M:レンダリング用のメモリ?
- Scene.001, RenderLayer:シーン名とレンダレイヤ名
- Path Tracing Tile 29000/40000:レンダリング済みタイル数 / 全タイル数。
全タイル数 = ROUNDUP (Resolution X / Tile Size Z, 0) x ROUNDUP (Resolution X / Tile Size Z, 0)
- Fra:1 Mem:1706.67M (0.00M, Peak 1917.45M) | Time:29:39.07 | Mem:314.24M, Peak:314.29M | Scene.001, RenderLayer | Path Tracing Tile 40000/40000, Sample 2000/2000
- Fra:1 Mem:1706.66M (0.00M, Peak 1917.45M) | Time:29:39.07 | Mem:314.24M, Peak:314.29M | Scene.001, RenderLayer | Finished
- Fra:1 Mem:1109.52M (0.00M, Peak 1917.45M) | Time:29:39.11 | Sce: Scene.001 Ve:0 Fa:0 La:0
- Saved: 保存ファイル名
- Time: 29:46.82 (Saving: 00:07.70)
オプション
正規形または省略形でオプションを指定することができます。
正規形はハイフン 2 つ (--) から始まり、省略形はハイフン 1 つ (-) から始まります。
省略形あるオプションは ( ) 内に記述します。
省略形がないオプションもあります。
ヘルプ
--help (-h) または /?
blender.exe -h を実行すると、ヘルプが表示されます。
レンダリングオプション
バックグラウンド
--background (-b)
指定した blend ファイルをバックグラウンドで読み込み、UI を表示することなくレンダリングします。
バックグラウンドで実行した場合、レンダリングが終われば設定に従い画像を保存し終了し、次の指示に移行します。
※このオプションは必ず付けたほうが良い。
このオプションがない状態で実行すると、以下の状態になる。
- コマンドウィンドウとは別に Blender が起動するが、レンダリングが終わるまで Blender になにも表示されない
- レンダリングの進行状況がコマンドウィンドウに出力されない
- レンダリングが終わると、Bleder にファイルとレンダリング結果が表示されるが、自分で Blender を終了するまで次のコマンドに移らない
アニメーション
--render-anim (-a)
フレーム範囲を「--frame-start (-s) <frame>」「--frame-end <frame> (-e)」で指定していればその範囲を、その指定がなければ blend ファイル内で設定されている Start Frame から End Frame までをアニメーションレンダリングします。
※命令文の最後に「--render-anim (-a)」オプションか「--frame-start (-s) <frame>」オプションが来る必要があります。
シーン
--scene (-S) <name>
レンダリングするシーンの名前を設定します。
指定がない場合は、blend ファイルを開いた時のシーンが利用されます。
フレーム
--render-frame (-f) <frame>
レンダリングし保存するフレームの番号を設定します。
+<frame> とすると Start Frame からの相対フレーム、-<frame> とすると End Frame からの相対フレームの指定となります。
※Start Frame:10, End Frame:150 の blend ファイルに対して +30 で 40 フレームがレンダリングされ、-30 で 121 フレームがレンダリングされました。
※命令文の最後に「--render-anim (-a)」オプションか「--frame-start (-s) <frame>」オプションが来る必要があります。
開始フレーム
--frame-start (-s) <frame>
開始フレームを設定します。+/- による相対フレーム指定にも対応しています。
※最後にアニメーションとしての --render-anim (-a) を設定する必要があります。
終了フレーム
--frame-end <frame> (-e)
終了フレームを設定します。+/- による相対フレーム指定にも対応しています。
※最後にアニメーションとしての --render-anim (-a) を設定する必要があります。
ジャンプフレーム
--frame-jump (-j) <frames>
レンダリングしたフレームから次にレンダリングするフレームまでに飛ばすフレーム数を設定します。
このオプションが設定されていない場合、blend ファイルで設定されている Frame Step の値が利用されます。
※最後にアニメーションとしての --render-anim (-a) を設定する必要があります。
出力ファイル
--render-output (-o) <path>
レンダリングイメージを出力するパスとファイル名を設定します。
blend ファイルからの相対パスを設定する場合は、「//」を使用します。
「#」はフレーム番号で置き換えられ、「0」で埋められます。
サンプル:
- ani_##_test.png -> ani_01_test.png
- test-######.png -> test-000001.png
ファイル名の設定に「#」が含まれていない場合、サフィックス「####」が自動でファイル名の最後に付加されます。
サンプル:
- blender -b foobar.blend -o //render_ -F PNG -x 1 -a
-> //render_ -> //render_#### -> //render_0001.png
レンダリングエンジン
--engine (-E) <engine>
レンダリングエンジンを指定します。
利用可能なエンジンは、「-E help」を使用することで表示されます。
初期値の状態で「-E help」を実行すると、以下の様に表示されます。
Blender Engine Listing:
BLENDER_RENDER
BLENDER_GAME
CYCLES
指定なしは、blend ファイルで設定されているエンジンを使用します。
スレッド
--threads (-t) <threads>
レンダリングに使用するスレッド数 [1-64] を設定します。
指定なしは「0」。
「0」が指定された場合、blend ファイルの Render - Performance - Threads の設定値が使用されます。
その際、blend ファイルの Render - Performance - Threads が Auto-detect になっていると、全てのシステムプロセッサをレンダリングに使用します。
このオプションによりスレッド数が指定された場合 (0 以外)、blend ファイル内の設定は無視され、指定されたスレッド数を使用してレンダリングを実行します。
※PC のスレッド数より多く設定するとどのような影響があるか不明なので、実行する PC のスレッド数を上限に設定した方が良さそうです。複数の性能の異なる PC を同時に利用してレンダリングする場合、注意が必要です。混乱を避けるために、blend ファイルでは必ず Auto-detect としておき、このオプションによるスレッド数の指定をしない、というのもありです。
※blend ファイルで Render - Device が GPU Compute に設定されている場合は、User Preferences - System - Compute Device で設定されているデバイスが使用され、この設定は無視されます。
フォーマットオプション
画像フォーマット
--render-format (-F) <format>
レンダリングした結果を出力する際のフォーマットを設定します。
- 有効なオプション:
- TGA RAWTGA JPEG IRIS IRIZ AVIRAW AVIJPEG PNG BMP
- Blender にコンパイルされているが、全てのシステムでは使用できないもの:
- HDR TIFF EXR MULTILAYER MPEG FRAMESERVER QUICKTIME CINEON DPX DDS JP2
※各オプションで実行した結果 (Windows10 64bit Blender 2.77a)
- 正常に保存できた形式:
- TGA, RAWTGA, JPEG, IRIZ, AVIRAW (動画), AVIJPEG (動画), PNG, BMP, HDR, TIFF, EXR, MPEG, QUICKTIME (動画), DPX, JP2
- 正常に保存できなかった形式:
- FRAMESERVER:「Scene switch:」まで実行されるが、そこで止まり、レンダリングが実行されない
- MULTILAYER:ファイルは作成されているが、開くと真っ黒
- CINEON:「Error: EXCEPTION_ACCESS_VIOLATION」と表示され、レンダリング結果が保存されない
- DDS:「Render error (No error) cannot save:」と表示され、レンダリング結果が保存されない
- AVICODEC:ヘルプには表示されるが未対応
- 不明なもの:
- IRIS:ファイルはできているが、表示できるアプリがないため確認できず
ファイル拡張子
--use-extension (-x) <bool>
ファイル名の最後にファイル拡張子をつけるかどうかを設定します。
「0」で拡張子をつけず、「1」で拡張子をつけます。
指定なしは「1」。
動画再生オプション
動画再生
-a <options> <file(s)>
<file(s)> で指定した動画ファイルを、Blender を利用して再生します。
※「--background (-b)」オプションによるバックグラウンド実行時には動作しません。
「-a a.avi b.avi c.avi」といった様に複数の動画ファイルを指定することができ、指定した順に連続して再生することができます。
※複数ファイルの連続再生の場合、最初の動画に適したウィンドウサイズで表示されるため、異なる画面サイズ、特に最初の動画よりも大きな画面サイズの動画を含めて連続再生する際は注意が必要です。
- オプション:
- -p <sx> <sy>:Blender ウィンドウの左下コーナーが <sx>, <sy> にくるように開きます。(指定なしは「-p 0 0」)
- Windows10 64bit Blender 2.77a で実行した結果:
- 「-p 0 0」と設定しても実際には「7,7」に左下コーナーが来るように表示されます。
- <sx> は「設定値 + 7」の位置に来ますが、<sy> は「設定値 - 32」の位置に来るようです。
- そのため、「10,10」に左下コーナーを持ってきたい場合は、「-p 3 42」と設定する必要があります。
- -m:バッファを使用せず、ディスクから読み込みます。(効果不明)
- -f <fps> <fps-base>:開始時のフレームレートを設定します。(効果不明)
- -j <frame>:フレームステップを設定します。(効果不明)
- -s <frame>:開始フレームを設定します。(効果不明)
- -e <frame>:終了フレームを設定します。(効果不明)
- -p <sx> <sy>:Blender ウィンドウの左下コーナーが <sx>, <sy> にくるように開きます。(指定なしは「-p 0 0」)
Blender ウィンドウにおいては、以下の操作により様々な方法による再生が可能です。(結構便利です)
- キー操作:
- ESC 終了
- Space 再生/停止
- Enter 停止状態から再生
- Shift 再生中のファイル名、フレーム番号、フレームレートの情報を表示
- →/./Num. フレームを 1 進め、停止
- ← フレームを 1 戻し、停止
- ↑ フレームを 10 進め、停止
- ↓ フレームを 10 戻し、停止
- Shift→ 最終フレームに飛ばし、停止 (複数ファイルの連続再生の場合、最終ファイルの最終フレームになる)
- Shift← 最初のフレームに飛ばし、停止 (複数ファイルの連続再生の場合、最初のファイルの最初のフレームにる)
- Shift↑ フレームを 1 進め、動画を順送り再生に切り替える
- Shift↓ フレームを 1 戻し、動画を逆送り再生に切り替える
- 1/Num1 60.00 frames/s で再生
- 2/Num2 50.00 frames/s で再生
- 3/Num3 30.00 frames/s で再生
- 4/Num4 25.00 frames/s で再生
- 5/Num5 20.00 frames/s で再生
- 6/Num6 15.00 frames/s で再生
- 7/Num7 12.00 frames/s で再生
- 8/Num8 10.00 frames/s で再生
- 9/Num9 6.00 frames/s で再生
- //Num/ 5.00 frames/s で再生
- 0/Num0 連続再生する/しないの切り替え
- -/Num- 再生フレームレートを現状から約 91% の速度に落とす
- +/Num+ 再生フレームレートを現状から約 110% の速度に上げる
- I Blender ウィンドウの左端を最初のフレーム、右端を最後のフレートとし、再生中のカレントフレームの位置にラインを表示する/しない
- P 最後のフレームまで行くと逆再生し、最初のフレームまで行くと順再生にする/しないの切り替え (解除する場合、その時の再生方向が維持されます)
- F 左右方向に反転
- ShiftF 上下方向に反転
Blender ウィンドウオプション
ウィンドウの境界あり
--window-border (-w)
Blender をウィンドウ枠あり (フルスクリーンではない状態) で起動します。(初期値として指定されています)
※「--background (-b)」オプションによるバックグラウンド実行時には動作しません。
ウィンドウの境界なし
--window-borderless (-W)
Blender をウィンドウ枠なし (AltF11によるフルスクリーン状態) で起動します。
※「--background (-b)」オプションによるバックグラウンド実行時には動作しません。
ウィンドウ位置とサイズ
--window-geometry (-p) <sx> <sy> <w> <h>'
幅 <w> x 高さ <h> の Blender ウィンドウを、左下コーナーが <sx>, <sy> にくるように開きます。
- Windows10 64bit Blender 2.77a で実行した結果:
- 「-p 0 0 1000 1000」と設定しても、実際には「1002x1032」のウィンドウが「7,7」に左下コーナーが来るように表示されます。
- <w> と <h> のサイズは、ウィンドウ内の Blender 部のみのサイズの様で、実際には <w> にウィンドウの左右の境界分の計 2 px が、<h> にウィンドウの上下の境界分の計 2 px とタイトルバーの 30 px 分が増えている様です。
- <sx> は「設定値 + 7」の位置に来ますが、<sy> は「設定値 - 32」の位置に来るようです。
- そのため、「10,10」に左下コーナーを持ってきたい場合は、「-p 3 42」と設定する必要があります。
※「--background (-b)」オプションによるバックグラウンド実行時や「--window-borderless (-W)」オプションによるフルスクリーン実行時には動作しません。
コンソールウィンドウ
--start-console (-con)
コンソールウィンドウを開いて Blender を起動します。(Windows のみ)
※「--background (-b)」オプションによるバックグラウンド実行時には動作しません。
※もともとコマンドライン実行用のコンソールウィンドウが表示されているためか、新たにコンソールウィンドウは表示されませんでした。
ネイティブピクセルサイズなし
--no-native-pixels
高解像度ディスプレイ (MacBook Retina ディスプレイ) で、ネイティブピクセルサイズを使用しません。
その他
- 最終更新:2016-07-14 17:58:50