MAXScript には、カスタム右クリック メニューを作成するためのクラス、関数、特別構文のセットがあります。
3ds Max 4 以前の、クアッドメニュー システムがまだ存在していないバージョンでは、スクリプトによる右クリック メニューを既存の 3ds Max ユーザ インタフェースに組み込むことができました。クリックメニューの一般的な用途は、MAXScript で作成されたツールをすばやく選択することでした。これらのツールには、通常はユーザ インタフェースはありませんが、右クリック メニューにダイアログ ボックスやロールアウト フロータ ウィンドウを作成してユーザ インタフェースを表示させることができました。
廃止予定のメソッドの例とリストについては、「廃止予定の RCmenu メソッド」のトピックを参照してください。
3ds Max 4 で導入されたクアッドメニュー システムによって、スクリプトによるカスタム右クリック メニューを登録することはできなくなりましたが、スクリプトによるツール内でメニュー自体を使用することは可能です。
以下で説明する popUpMenu() メソッドは現在も使用可能で、イベント ハンドラまたは macroScript から呼び出してマウス カーソルの下に右クリック メニューを表示することができます。
createDialog() メソッドを使用してロールアウトから作成されたスクリプトによるダイアログ ボックスには、オプションの menu: パラメータを使用できます。このパラメータは、RCmenu を受け入れ、 RCmenu がダイアログの上部にメニュー バーとして表示されます。詳細は、「CreateDialog 」のトピックを参照してください。
スクリプト化された右クリック メニューは、MAXScript の RCMenu 定義構文を使って作成されます。その後右クリック メニューを 3ds Max に登録します。トップレベルの構文は、次のとおりです。
<var_name> とは、右クリック メニューを表す rcmenu 値を保持するために自動的に作成されたグローバル変数の名前です。
<rcmenu_body> は、必ずカッコで囲まれていて、関数およびユーザによる操作を処理するイベント ハンドラとともにユーティリティに表示されるメニュー項目を定義する句のシーケンスです。これらの句の詳細は、RCMenu 句を参照してください。
このメソッドは、画面上の任意の場所でメニューをポップアップします。コントロールは以下のとおりです。
<RCMenu>: すべての RCMenu が定義されます。これは登録する必要はありません。
[pos:<Point2>]: メニューがポップアップするポイントで、ロールアウトまたは画面のいずれかの相対位置。 (既定値: 現在のマウスの位置からポップアップ)
[rollout:<Rollout>]: これにより、メニューはロールアウトのローカル座標系からポップアップします。undefined を指定すると、メニューは画面の左上隅に相対的にポップアップします。(既定値: undefined)
[align:<key>]: 次のいずれかを指定できます(既定値: #align_topleft )。
#align_topleft #align_topcenter #align_topright #align_bottomleft #align_bottomcenter #align_bottomright #align_vcenterleft #align_vcentercenter #align_vcenterright
スクリプト化された右クリック メニューの実行時にランタイム エラーが発生した場合は、エラー メッセージが[リスナー](Listener)に表示されます。右クリック メニューは無効にはなりません。