スクリプト ユーティリティ パネルは、MAXScript の utility 定義構文を使用して作成します。
utility <var_name> <description_string> [rolledUp:<boolean> ] [silentErrors:<boolean> ] ( <utility_body> )
<var_name>は、スクリプト ユーティリティ パネルを表す値を保持するために、自動的に作成されたグローバル変数の名前です。
<description_string>は、MAXScript ロールアウトの[ユーティリティ](Utilities)リスト内のユーティリティの説明に使用される文字列です。
オプションの rolledUp: パラメータには、ユーティリティ ロールアウトが最初にロール アップされるかどうかを指定します。 true に設定すると、ユーティリティ ロールアウトは最初にロール アップされます。既定値は false です。
オプションの silentErrors: パラメータは、スクリプト ユーティリティの実行時に MAXScript ランタイム エラーのメッセージを表示するかどうかをコントロールします。このパラメータを false に設定すると、エラーメッセージがリスナーに、場合によってはポップアップ エラー ダイアログ ボックスに表示され、ユーティリティの続行は停止されます。このパラメータを true に設定すると、エラーメッセージは表示されず、ユーティリティの続行が許可されます。 true に設定すると、ユーザが MAXScript エラー メッセージと混同する可能性のある配布されたスクリプト プラグインの場合に便利です。既定値は false です。
<utility_body>は、括弧で囲まれている必要があり、ユーザ相互作用を処理する関数およびイベント ハンドラとともに、ユーティリティに表示されるユーザ インタフースを定義する一連の句です。詳細は、「ユーティリティ句」を参照してください。
ここでは、現在選択したものにオブジェクトの位置を展開するユーティリティを実装する簡単な例を挙げます。この例では、 Spread objects エントリを[ユーティリティ](Utilities)リストにインストールします。 Spread objects ロールアウトを開くと、3 つのチェック ボックスと 1 つのスプレッド量スピナーがあります。スプレッド スピナー イベント ハンドラは、ユーザがスピナーを調整するときは必ず呼び出されます。イベント ハンドラ式では選択したオブジェクトの新しい位置が計算され、スプレッドをコントロールするために各チェック ボックスの状態がテストされます。
このスクリプトで書かれた[ユーティリティ](Utilities)パネル ロールアウトは、次の図のようになります。[閉じる](Close)ボタンは、ユーティリティ ロールアウトの MAXScript によって自動的に作成され、ロールアウトを閉じます。
ユーティリティ定義の評価により、いくつかのことが実行されます。ロールアウト クラスのインスタンスであり、ユーティリティ定義を含む新しい値が作成されます。この値は名前付きグローバル変数に割り当てられ、ユーティリティの説明が MAXScript ロールアウトの[ユーティリティ](Utilities)リストにインストールされます。この時点で、ユーザはユーティリティを[ユーティリティ](Utilities)リストから選択でき、ユーティリティのロールアウトが開きます。