MAXScript では、既存の 3ds Max ユーザ インタフェースに組み込むことができるカスタム ロールアウトを作成できるように、クラス、関数、および特別な構文のセットが提供されています。カスタム ロールアウトは、一般的に MAXScript で記述したツールをポイント & クリック インタフェースで利用できるようにするために使われ、ツールのユーザはスクリプト記述などの作業をする必要がなくなります。
3ds Max ユーザ インタフェースには、次に示すように、スクリプトで書かれたロールアウトをインストールできる場所がいくつかあります。
[ユーティリティ](Utilities)パネル。MAXScript の utility 定義構造を使用して、スクリプト ユーティリティを定義およびインストールします。インストールすると、スクリプト ユーティリティが MAXScript ロールアウトの下部にある[ユーティリティ](Utilities)ドロップダウン リストに表示されます。このリストのユーティリティを選択すると、選択したユーティリティのロールアウトが MAXScript ロールアウトの下部に表示され、プラグイン ユーティリティのような動作をします。これは、3ds Max 2 で MAXScript が初めて導入されたときの、元来のスクリプト ユーティリティの作成方法です。スクリプト ユーティリティを使用する主な利点は、非常にすばやく作成できること、大量の管理コードを用意せずにロールアウトを追加できること、シーン上で操作を実行できるので、スクリプティングの入門としても優れている点などがあります。また、主な短所としては、[ユーティリティ](Utilities)ロールアウトの横幅が狭くて見えにくいこと、およびコマンド パネルの[作成](Create)タブおよび[修正](Modify)タブと同時には開けないことなどがあります。
特別なモードレスのロールアウト フロータ ウィンドウ。このウィンドウは、 newRolloutFloater() 関数を使用して作成できます。このウィンドウは、デスクトップ上に表示され、3ds Max のマテリアル エディタおよび MAX の選択フロータと同じように作用します。これらおよびメインの 3ds Max ユーザ インタフェースを自由にクリックして行き来することができます。MAXScript の rollout 定義構造を使用して、これらのウィンドウに個々のロールアウトを作成したり、 addRollout() 関数を使用してロールアウト フロータ ウィンドウにインストールすることができます。
フローティングのスクリプトで作成されたダイアログの内部。ダイアログはロールアウトのホルダーではなく、既存のロールアウトの特殊な表示形式です。 createDialog() 関数を使用して、ロールアウトから作成することができます。
スクリプト プラグインの内部。スクリプト プラグインには、1 つまたは複数のロールアウトを含むことができます。このロールアウトをコマンド パネルの[作成](Create)タブおよび[修正](Modify)タブの内部に表示し、パラメータ ブロックにリンクすることによってアニメーション トラック管理を自動化することができます。
カスタム アトリビュートの内部、シーン オブジェクトまたはモディファイヤに追加。カスタム アトリビュートは、他のオブジェクトにアタッチできる、特殊な形式のパラメータ ブロックです。
スクリプトで書かれたロールアウトをどの場所に配置するのが最適かは、係数の数によって決まります。画面を最大限に利用することができ、3ds Max ユーザ インタフェース規則に準拠するため、ロールアウトは[ユーティリティ](Utilities)パネルに入れておくのが最適です。ただし、ユーザがツールを使用中にさまざまなコマンド パネル間を移動する必要がある場合は、モードレスのウィンドウにロールアウトを入れるほうが便利な場合があります。[カラー クリップボード](Color Clipboard)ユーティリティのようなスクリプト化された[ユーティリティ](Utilities)ロールアウトに[フロート化](float me)ボタンを提供する場合などは、ユーザがロールアウトをロールアウト フロータ ウィンドウまたは[ユーティリティ](Utilities)パネルに表示できるようにしてください。
次のトピックは、ユーティリティ パネルおよびロールアウト フロータ ウィンドウについての説明です。
スクリプトで書かれたユーティリティでの複数のロールアウトの管理
ユーティリティおよびロールアウトのプロパティ、メソッド、およびイベント ハンドラ
ロールアウト コード内のローカル、関数、構造体、ユーザ インタフェース項目の可視性
外部コードからロールアウトのローカルおよび他の項目へのアクセス