3ds Max の終了およびリセット

quitMAX() 関数を使用すると、スクリプト コントロールによって 3ds Max を終了することができます。通常、この関数はバッチ処理またはレンダリング スクリプトに使用されます。この関数の形式は次のとおりです。

quitMAX [ #noPrompt ] quiet:<boolean> exitCode:<int>

オプションの #noPrompt 引数が指定されておらず、シーン内に未保存の変更がある場合、3ds Max は標準の保存/変更ダイアログ ボックスを表示します。quiet:<boolean> 引数の動作は同じで、両方を指定した場合、#noPrompt オプションはオーバーライドされます。

オプションの exitCode 引数を指定した場合、3ds Maxが終了するときに、「3ds Max は不明なエラーで終了しました(終了コード X)」というメッセージがコンソールに出力されます(X は整数)。これは、3dsmaxbatch.exe を使用するバッチ処理スクリプトでユーザが指定したステータス コードをアプリケーションから取得する場合に便利です。

さらに、以下の関数を使って 3ds Max でシーンを保存したり、状態を元に戻したりすることができます。

setSaveRequired <boolean>  [autobackupRequired:<boolean>]

3ds Max システムの「ダーティ」フラグを設定することができます。このフラグが設定されているか、または元に戻すバッファ内にエントリがある場合は、シーン ファイルを[ファイル] (File)/[新規作成] (New)で保存するか、[ファイル] (File)/[リセット] (Reset)を行うかどうかを尋ねるメッセージが表示されます。

オプションの autobackupRequired:<boolean> キーワード引数を使用すると、自動バックアップも必要かどうかを指定できます。指定しない場合、既定値は setSaveRequired に渡された最初の <boolean> と同じになります。

getSaveRequired() 

3ds Max システムの「ダーティ」フラグが true に設定されていたり、やり直しバッファが空でない場合は、true を返します。やり直しバッファが空でない場合、setSaveRequired false を呼び出した後でも true を返します。

clearUndoBuffer() 

元に戻すバッファを空にして、元に戻す状態をリセットする方法と変更の保存リクエスタをコントロールする方法を提供します。

通常は、シーンが閉じているときに元に戻すバッファにエントリがあると、3ds Max は変更の保存リクエスタでプロンプトを表示します。MAXScript で「やり直し」処理を制御している場合、常に変更の保存プロンプトを表示するようにできます。

resetMAXFile() 関数を使用すると、スクリプト コントロールによって 3ds Max をリセットできます。通常、この関数はバッチ処理またはレンダリング スクリプトに使用されます。この関数の形式は次のとおりです。

resetMaxFile() [#noPrompt] [quiet:<boolean>]

オプションの #noPrompt 引数が指定されていない場合、3ds Max では、「本当にリセットしますか」と尋ねるダイアログ ボックスが表示されます。

シーンをリセットする前に保存されていない変更があるかどうかをチェックするには、checkForSave() を使用します。「3ds Max ファイルのロードと保存」を参照してください。

例:

--CheckForSave checks whether the scene has been modified 
--and issues the standard "Do you want to save your changes" dialog. 
--If the user presses Yes or No, the function returns true and 
--resetMaxFile will be called. 
--If the user presses Cancel, the function returns false and 
--resetMaxFile will not be called. 
if checkForSave() do resetMaxFile()