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