バッチレンダリング
 
 
 

コマンドライン オプションを使用して、Softimage 画面を開かずに、シーンをレンダリングすることができます。この機能は、バッチ レンダリングまたはコマンドライン レンダリングと呼ばれます。 さらに、レンダ アーカイブを書き出すことができるだけでなく、コマンド ラインからバッチまたはスクリプト ファイルを作成して実行することもできます。

注:-r スイッチを使用したバッチ レンダリングの以前の構文は不適切なため、お勧めしません。-prescript および -postscript オプションの代わりにレンダ イベントを使用してください。

バッチモードでレンダリングするには、xsiコマンドまたはxsibatchコマンドを使用します。このとき、-renderスイッチまたは-exportスイッチを指定し、続けて適切なバッチレンダリングオプションを指定します。たとえば、以下のように実行できます。

xsi -render bob.scn -pass specular -frames 1,3,60
xsi -export bob.scn
xsi -script foo.vbs
xsi -render bob.scn -script foo.vbs

xsi および xsibatch は、同じオプションをサポートしています。異なる点は、xsibatchxsi コマンドのリモート対応バージョンであり、Windows 専用であることです。これによって、たとえば Telnet などを使用してバッチ モードでリモートからレンダリングを行ったり、単一のバッチ ファイルから複数のスクリプトを次々と実行する場合に自動的にコマンド ウィンドウを閉じるなど、他のタスクを実行することができます。バッチ スクリプトの詳細については、「バッチスクリプトの実行」『SDK ガイド』を参照してください。

注:Windows では、Softimage のインストール場所の Application¥bin ディレクトリに ScriptXSI.bat というバッチ ファイルがあります。.scn ファイルをこのファイルにドラッグすると、シーンをバッチレンダリングできます。また、このバッチ ファイルのショートカットをデスクトップ(または他の場所)に作成し、.scn ファイルをそのショートカットにドロップしてレンダリングを行うこともできます。

バッチ モードでレンダリングする

バッチ モードでレンダリングを行うには、環境を設定し、コマンド ラインにレンダリング コマンドとオプションを入力する必要があります。

  • Windows 対応環境を設定するには

    • Softimage のコマンド プロンプト ウィンドウを開きます。

    • [スタート](Start) [プログラム](Programs) [Autodesk] [Autodesk Softimage 2012.SAP [コマンド プロンプト](Command Prompt)を選択します。

  • Linux 対応環境を設定するには

    • シェルまたはターミナルウィンドウを開き、 .xsi_2012.SAP Softimageリソースファイルを表示させます。

  • バッチ モードでレンダリングするには

    • コマンド ラインで、xsi または xsibatch (Windows のリモート対応バージョン)に -render または -export オプションを指定して実行します。

    • たとえば、次のように記述します。

      		xsi -render mypath/myscene.scn
      		xsibatch -render mypath/myscene.scn

バッチ レンダリング オプション

ここでは、コマンド ラインで -render または -export スイッチと一緒に使用できるバッチ レンダリング オプションについて説明します。これらのバッチ レンダリング オプションは、Softimage が制御する一般的なシーンおよびパスレベルのレンダリング オプションです。レンダラに固有のオプションを変更する場合は、-script オプションを使用してスクリプトを指定します(「スクリプトを使用してレンダラ固有のオプションを設定する」を参照)。

使用法

xsi|xsibatch <-render|-export> <path to scene> 
				[-pass <pass1,pass2,...,passN>] 
				[-frames <start,end[,step]>|<frame set>] 
				[-output_dir <dir>] 
				[-mb <on|off>] 
				[-skip <on|off>]

オプション

-render <scene>

指定のシーンを読み込み、レンダリングします。

-export <scene>

指定のシーンを読み込み、それをレンダ アーカイブに書き出します。

-pass <pass1,pass2,...,passN> 
				  

レンダリングするパスの一覧を表示します。パスが指定されていない場合は、すべてのパスがレンダリングされます。

-frames <start,end[,step]>|<frame set>

すべてのパスのフレーム設定が上書きされます。フレーム設定には、カンマで区切られた 2 つまたは 3 つの複数の数値、またはその他の文字列をフレーム セットとして使用できます。必要となるフレームセットが2つまたは3つのフレームで構成されている場合、ハイフンを含む文字列(-)が常にフレームセットと解釈されるため、2-25-5というフレームセットが表示されます。または、文字列を単一引用符で囲んで表示することもできます。

-output_dir <dir>

シーン レンダ オプションの出力ディレクトリを上書きします。

-mb <on|off>

すべてのパスのモーション ブラーの有効/無効を切り替えます。

-skip <on|off>

すべてのパスのフレームのスキップの有効/無効を切り替えます。

スクリプトを使用してレンダラ固有のオプションを設定する

-render および -export スイッチに含まれているオプション以外のオプションを変更する場合は、-script オプションを使用してスクリプトを指定します。スクリプトは、シーンが読み込まれ、パスとシーン レンダ オプションが変更された後に、指定されたコマンド ライン オプションによって実行されます。レンダリングまたは書き出しは、スクリプトが終了してから開始されます。

例 1

ファイナル ギャザリングのオン/オフを切り替えるには、このプロシージャを含む RenderScript.vbs というスクリプトを作成します。

Sub RenderScript( fg_enable )
	SetValue "Passes.List.*.mentalray.FGEnable", CBool( fg_enable )
End Sub

これは、次のようにコマンド ラインで使用できます。

xsi -render <.scn file> -script RenderScript.vbs -main RenderScript -args -fg_enable True

例 2

mental ray の冗長レベルを最大レベルに設定するには、次のラインとともに VerboseFull.vbs というスクリプトを作成します。

SetValue "Passes.List.*.mentalray.Verbosity", 252

これは、次のようにコマンド ラインで使用できます。

xsi -render <.scn file> -script VerboseFull.vbs

スクリプトによるバッチ レンダリング

スクリプトを使用したバッチ レンダリングには、2 つの方法があります。

xsi -render bob.scn -script foo.vbs

-script-render を一緒に使用する場合、スクリプト自体にレンダ コマンドを含める必要はありません。スクリプトが終了した後、-render オプションがシーン ファイルのレンダリングを担当します。

xsi -script foo.vbs

-script-render を指定しない場合、[RenderPass]コマンドを使用して、指定されたパス(指定されていない場合は現在のパス)を現在のレンダリング オプションでレンダリングできます。また、[RenderAllPasses]コマンドと [RenderPassesFrameSet]コマンドを使用することもできます。レンダラ オプションを指定する場合は、[GetValue]および[SetValue]を使用します。

レンダリング コマンドを含むスクリプトの良い例として、[DSScripts]サブディレクトリの [Rendering.vbs]があります。このファイルをスクリプト エディタで開くと、その機能がわかります。

重要:[Rendering.vbs]はコア システム ファイルです。このファイルを変更すると、インストールされたものが破損する可能性があります。このファイルを編集および保存しないでください。

レンダリングするシーン ファイルを指定する引数が必要であることに注意してください。これは、コマンド ラインから実行したスクリプトでは、シーンの選択のようなインタラクションを要求できないためです。スクリプトをバッチ モードで実行するには、あらかじめスクリプトを用意しておく必要があります。

スクリプト、バッチスクリプト、およびスクリプトエディタの一般的な情報については、「バッチスクリプトの実行」『SDK ガイド』を参照してください。