バッチ モードでスクリプトを実行する

 
 
 

バッチモードでスクリプトを実行するには、環境設定を行ってからスクリプトで Autodesk Softimage を起動する必要があります。

環境を設定する

スクリプトをバッチ モードで実行する前に、あらかじめ環境を正しく設定しておく必要があります。

  • Windows で、コマンド プロンプトを開きます。 Windows の[スタート]メニューから、[プログラム][Autodesk][Autodesk Softimage][Command Prompt]を選択します。

  • Linux では、シェルを開いて .xsi_2012 という Softimage のリソース ファイルを参照します。

スクリプトによる Autodesk Softimage の起動

プログラムおよびスクリプトをバッチモードで実行するには、-script スイッチを使用してスクリプト ファイル名を指定し、Autodesk Softimage を起動します。 スクリプト言語、実行プロシージャ、または引数の値を指定する必要があるかどうかによって、いくつかの方法があります。

バッチ モードで単純なスクリプトを実行するには

myscript.vbs という名前の単純な VBScript ファイルを実行するには、コマンド プロンプトに次の構文を入力します。

xsi -script myscript.vbs

バッチ モードでスクリプト言語を指定するには

スクリプト言語は、レジストリの情報に基づくファイル名拡張子によって判別されます。デフォルトでは、拡張子が .vbs であれば VBScript、.js であれば JScript、.pls であれば PerlScript、.pys であれば Python であるとみなされます。 スクリプト ファイル名に異なる拡張子が付いている場合には、-lang スイッチを使用してスクリプト言語を指定することができます。 たとえば、myscript.xxx という名前のスクリプト ファイルを実行する場合、次のいずれかのコマンドを入力します。

xsi -script myscript.xxx -lang VBScript
xsi -script myscript.xxx -lang JScript
xsi -script myscript.xxx -lang PerlScript
xsi -script myscript.xxx -lang Python

バッチ モードでプロシージャを指定するには

デフォルトでは、スクリプトをバッチ モードで実行した場合は、グローバル コードだけが実行されます。 スクリプトにプロシージャが含まれている場合には、-main スイッチを使用して、実行するプロシージャを指定することができます。 たとえば、myscript.vbs という名前の VBScript ファイルで、myproc というプロシージャを実行する場合には、次の構文を入力します。

xsi -script myscript.vbs -main myproc
重要:

プロシージャを指定した場合でも、プロシージャが呼び出される前にグローバル コードが実行されることがあります。 スクリプト エンジンによっては、このようにスクリプトの解析の影響を受けるものもあります。 すべての状況でスクリプトを正確に実行するには、グローバル コードとプロシージャを分離することをお勧めします。

注:

Autodesk Softimage では、PerlScript または Python のプロシージャを直接呼び出すことはできません。 ただし、グローバル コードまたは他のプロシージャから呼び出すプロシージャは、正しく実行されます。 簡単な VBScript や VBScript を使用し、引数のリストを作成して PerlScript または Python のプロシージャを呼び出すことができます。

バッチ モードで引数を指定するには

プロシージャに引数が必要な場合には、-args スイッチの後に指定することができます。 たとえば、myscript.vbs ファイルの myproc プロシージャに myargname1 および myargname2 という引数が必要な場合、引数の値を指定してプロシージャを実行するには、次の構文を入力します(すべてを 1 行で指定してください)。

xsi -script myscript.vbs -main myproc 
-args -myargname1 myargvalue1 -myargname2 myargvalue2
注:

-args スイッチで引数を指定していて、-main スイッチでプロシージャを指定していない場合、Autodesk Softimage は main という名前で呼び出されるプロシージャを探して実行します。 main で呼び出されるプロシージャが存在しない場合は、グローバル コードが実行され、コマンド ライン引数は無視されます。