コマンド ラインからのスクリプトの実行

3ds Max では、コマンド ラインに MAXScript コマンドを直接入力できます。DOS のコマンド ラインから 3ds Max を起動するときは、特定の MAXScript または Python スクリプトを実行できます。これは、自動のバッチ レンダリングなどのタスクに便利です。

この機能では、既存のコマンド ラインの -U スイッチを使用し、これにより 3ds Max の起動時に実行するユーティリティの名前を指定できます。-U スイッチにはオプションでさらに引数を指定できます。MAXScript と Python ではこれが実行する起動スクリプトの名前であるとみなします。MAXScript の場合は(大文字を使用)、次に示す例のとおりである必要があります(3ds Max ディレクトリに対する CD の後に入力):

3dsmax -U MAXScript rendercams.ms

このコマンド ラインの例では、3ds Max の実行プログラムを起動し、MAXScript を起動してから、rendercams.ms という起動スクリプトを実行させます。

次に示す起動スクリプトの例では 2 つのシーンを読み込み、その中にある各カメラからフレームをレンダリングし、3ds Max を終了します。

loadMaxFile "foo.max"
for c in cameras do render camera:c outputfile:("foo_"+c.name+".bmp")
loadMaxFile "baz.max"
for c in cameras do render camera:c outputfile:("baz_"+c.name+".bmp")
quitMax #noPrompt

この例では、スクリプト終了時の 3ds Max の終了に、quitMax() メソッドを利用しています。この例のように起動スクリプトがバッチ スクリプトである必要はありませんが、シーン ファイルを読み込んで ユーザ インタフェース オプションを設定することで、3ds Max をインタラクティブに使用するのに役立つこともあります。

通常のスタートアップ スクリプト startup.ms と、¥scripts¥startup ディレクトリにあるスクリプトは、起動スクリプトの前に実行されます。スクリプトを個々のシーン ファイルにインストールし、シーンを開くときや閉じるとき、またはその他のイベント時に自動的に実行することもできます。

注: コマンド ラインの -U MAXScript スタートアップ スクリプトは、 3ds Max が完全に起動し、標準のスクリプトおよびスタートアップ スクリプトが実行された後に実行されます。

MAXScript と Python コマンドライン スイッチ

次のスイッチは、特に MAXScript と Python のファイルおよび関数とともに使用されるものです。

スイッチ 効果
-mi 3ds Max を最小化モードで起動します。インタラクティブに使用するためにウィンドウを開くことはできません。
-mxs -U MAXScript file.ms と実質的に同じですが、.ms ファイルは必要ではありません。スイッチの後に MAXScript コマンドを続けることができます。
-silent setSilentMode という MAXScript コマンドに似ているこのスイッチは、MAXScript および 3ds Max のすべてのユーザ インタフェースのダイアログ ボックスを表示せず、-U コマンドで指定されたバッチ スクリプトが中断されないようにします。
u MAXScript <ファイル名> 指定された MAXScript ファイルを開きます。
-u Python ホスト<ファイル名> 指定された Python スクリプト ファイルを開きます。

推奨される構文使用の例を次に示します。

3dsmax.exe -silent -mxs "for c in cameras do render c outputFile:(c.name + ".bmp") vfb:off " file.max

この例では、3ds Max をサイレント モードで起動し、file.max を開きます。各カメラ ビューが BMP ファイルにレンダリングされますが、レンダリング フレーム ウィンドウは表示されません。

3dsmax.exe -q -mi -U MAXScript \\server1\folder\myScript.ms \\server2\folder\file.max

この例では、3ds Max を最小化モードで起動しますが、スプラッシュ画面は表示しません。ネットワーク サーバから file.max を開き、別のサーバ上の myScript.ms を実行します。myScript.ms に最初の例と同じコマンドが記述されていれば、どちらの例でも同じ結果になります。

3dsmax.exe -q -silent -mip -mxs  "for c in cameras do render c outputFile:(c.name + ".bmp") vfb:on; quitMAX() #nopromptfile.max" file.max

この最後の例では、3ds Max がサイレント モードで起動しますが、スプラッシュ画面は表示されません。また、永久に最小化された状態で file.max が開き、レンダリング フレーム ウィンドウを表示しながら各カメラ ビューが BMP ファイルにレンダリングされた後、3ds Max が終了します。