インタフェース: actionMan
actionMan インタフェースを使用すると、3ds Max 4 で導入された ActionTable および ActionItem にアクセスできます。これらは、[ユーザ インタフェースをカスタマイズ](Customize User Interface)ダイアログを使用してツールバー、メニュー、クアッド
メニュー、およびキーボード ショートカットに割り当てることができるアクションを表します。ActionItem には、マクロ レコーダを使用して作成されたか MAXScript
ユーザが手動で記述した MacroScript が含まれます。このインタフェースは、アクションを実行するためのメソッドやキーボード ショートカット ファイルを管理するためのメソッド、および
ActionTable へのアクセスとそれを通じた ActionItem MixinInterface へのアクセスを提供します(このトピックの後半を参照)。
プロパティ:
actionMan.numActionTables : integer : Read
アクション マネージャに登録されているアクション テーブルの数を格納します。読み込み専用。
メソッド:
<boolean>actionMan.executeAction <integer>tableId <string>persistentId
テーブル ID と永続 ID で指定されたアクションを実行します。
成功した場合は True、失敗した場合は False を返します。
MacroRecorder を有効にし、3ds Max ユーザ インタフェースでアクションを実行してアクションの ID を取得できます。actionMan インタフェースでのみ実行できるアクションは、 actionMan.executeAction() 呼び出しとして対応する ID とともに表示されます。
例
|
|
actionMan.executeAction 0 "40266" -- Selection: Selection Floater
|
<boolean>actionMan.loadKeyboardFile <filename>file
指定されたファイルからキーボード ショートカットの設定をロードします。
成功した場合は True、失敗した場合は False を返します。
<boolean>actionMan.saveKeyboardFile <filename>file
キーボード ショートカットの設定を指定されたファイル名で保存します。
成功した場合は True、失敗した場合は False を返します。
<filename>actionMan.getKeyboardFile()
現在のキーボード ショートカット ファイルのファイル名を返します。
例
|
actionMan.getKeyboardFile()
"C:\Program Files\Autodesk\3ds Max 2008\UI\MaxStartUI.kbd"
|
<Interface>actionMan.getActionTable <index>index
インデックスで指定されたアクション テーブルの <MixinInterface:ActionTable> を返します。
インデックスは 1 ~ actionMan.numActionTables の範囲で指定する必要があります。
ActionTable MixinInterface
プロパティ:
<ActionTable>.id : DWORD : Read
ActionTable の ID を格納します。読み込み専用。
<ActionTable>.name : string : Read
ActionTable の名前を格納します。読み込み専用。
<ActionTable>.contextID : DWORD : Read
ActionTable の ContextID を格納します。読み込み専用。
<ActionTable>.contextName : string : Read
ActionTable のコンテキスト名を格納します。読み込み専用。
<ActionTable>.numActionItems : integer : Read
ActionTable の ActionItem の数を格納します。読み込み専用。
メソッド:
<Interface><ActionTable>.getActionItem <index>index
インデックスで指定されたアクション項目の <MixinInterface:ActionItem> を返します。
インデックスは 1 ~ <ActionTable>.numActionItems の範囲で指定する必要があります。
ActionItem MixinInterface
プロパティ:
<ActionItem>.id : DWORD : Read
ActionItem の ID を格納します。
<ActionItem>.isVisible : boolean : Read
ActionItem の isVisible イベント ハンドラで特定される表示状態を格納します。
<ActionItem>.isEnabled : boolean : Read
ActionItem の isEnabled イベント ハンドラで特定される有効状態を格納します。
<ActionItem>.isChecked : boolean : Read
ActionItem の isChecked イベント ハンドラで特定されるチェック状態を格納します。
メソッド:
<void><ActionItem>.getDescription <&String>text
text is Out parameter
ActionItem の説明に参照引数を設定します。
<void><ActionItem>.getCategory <&String>text
text is Out parameter
ActionItem のカテゴリに参照引数を設定します。
<void><ActionItem>.getButtonText <&String>text
text is Out parameter
ActionItem をツールバーに割り当てた場合にボタンに表示されるテキストに参照引数を設定します。
<void><ActionItem>.getMenuText <&String>text
text is Out parameter
ActionItem をメニューまたはクアッド メニューに割り当てた場合に表示されるテキストに参照引数を設定します。
<boolean><ActionItem>.hasIcon()
ActionItem にアイコンが関連付けられている場合は True、ActionItem にアイコンがない場合は False を返します。
<bool><ActionItem>.getIconFileName <&String>fileName
fileName is Out parameter
アイコン ファイル名に参照引数を設定します。ActionItem にアイコン ファイルが関連付けられていない場合は "" に設定されます。
成功した場合は True、ActionItem にアイコン ファイルが関連付けられていない場合は False を返します。
<index><ActionItem>.getIconIndex()
アイコン ファイル内におけるアクション項目のアイコンのインデックスを返します。アイコンが関連付けられていない場合(<ActionItem>.hasIcon() が false を返した場合)は 0 を返します。
例
|
for i = 1 to actionMan.numActionTables-1 do
(
atbl = actionMan.getActionTable i
format "% ID:% Name:'%' ContextID:% ContextName:'%' NumActionItems:%\n" i atbl.id atbl.name atbl.contextID atbl.contextName atbl.numActionItems
for j = 1 to atbl.numActionItems do
(
aitm = atbl.getActionItem j
aitm.getDescription &desc
aitm.getCategory &cat
aitm.getButtonText &btn
aitm.getMenuText &mnu
hasicon = aitm.hasIcon()
if hasicon then
(
aitm.getIconFileName &iconfile
iconfile = filenamefrompath iconfile
iconindex = aitm.getIconIndex()
format "\t% ID:% Desc:'%' Cat:'%' BtnTxt:'%' MnuTxt:'%' Icon:[%,%] \n" j aitm.id desc cat btn mnu iconfile iconindex
)
else
format "\t% ID:% Desc:'%' Cat:'%' BtnTxt:'%' MnuTxt:'%'\n" j aitm.id desc cat btn mnu
)
)
|
出力の一部
|
...
3 ID:-1159893849 Name:'Render' ContextID:0 ContextName:'Main UI' NumActionItems:1
1 ID:36864 Desc:'Render Message Window Toggle' Cat:'Render' BtnTxt:'Render Message Window...' MnuTxt:'Render Message Window...'
4 ID:1724956863 Name:'Asset Tracking System' ContextID:0 ContextName:'Main UI' NumActionItems:2
1 ID:0 Desc:'Generate Proxies' Cat:'Asset Tracking System' BtnTxt:'Generate Proxies' MnuTxt:'Generate Stale Proxies'
2 ID:1 Desc:'Set Proxy Resolution...' Cat:'Asset Tracking System' BtnTxt:'Set Proxy Resolution...' MnuTxt:'Set Proxy Resolution...'
5 ID:161818329 Name:'FixAmbientActions' ContextID:2 ContextName:'Material Editor' NumActionItems:2
1 ID:1 Desc:'Fix Ambient All' Cat:'Utilities' BtnTxt:'Fix Ambient All' MnuTxt:'Fix Ambient All'
2 ID:2 Desc:'Fix Ambient Selected' Cat:'Utilities' BtnTxt:'Fix Ambient Selected' MnuTxt:'Fix Ambient Selected'
6 ID:132537306 Name:'MMCleanActions' ContextID:2 ContextName:'Material Editor' NumActionItems:1
1 ID:1 Desc:'Clean MultiMaterial' Cat:'Utilities' BtnTxt:'Clean MultiMaterial' MnuTxt:'Clean MultiMaterial...'
7 ID:4745576 Name:'InstanceDuplMapActions' ContextID:2 ContextName:'Material Editor' NumActionItems:1
1 ID:1 Desc:'Instance Duplicate Map' Cat:'Utilities' BtnTxt:'Instance Duplicate Map' MnuTxt:'Instance Duplicate Map...'
8 ID:-1682387772 Name:'Scene State Manager' ContextID:0 ContextName:'Main UI' NumActionItems:3
1 ID:4096 Desc:'Save Scene State' Cat:'Scene State' BtnTxt:'Save Scene State...' MnuTxt:'Save Scene State...'
2 ID:4112 Desc:'Scene State Manager Dialog Toggle' Cat:'Scene State' BtnTxt:'Manage Scene States...' MnuTxt:'Manage Scene States...'
3 ID:8192 Desc:'Restore Scene State' Cat:'Scene State' BtnTxt:'Restore Scene State' MnuTxt:'Restore Scene State'
9 ID:-1172021248 Name:'Containers' ContextID:0 ContextName:'Main UI' NumActionItems:17
1 ID:0 Desc:'Inherit Container' Cat:'Containers' BtnTxt:'Inherit Container' MnuTxt:'Inherit Container' Icon:[Containers,6]
2 ID:1 Desc:'Create Container from Selection' Cat:'Containers' BtnTxt:'Create Container from Selection' MnuTxt:'Create Container from Selection' Icon:[Containers,4]
3 ID:2 Desc:'Add Selected to Container' Cat:'Containers' BtnTxt:'Add Selected to Container' MnuTxt:'Add Selected to Container' Icon:[Containers,2]
4 ID:3 Desc:'Remove Selected from Container' Cat:'Containers' BtnTxt:'Remove Selected from Container' MnuTxt:'Remove Selected from Container' Icon:[Containers,12]
5 ID:4 Desc:'Unload Container' Cat:'Containers' BtnTxt:'Unload Container' MnuTxt:'Unload Container' Icon:[Containers,14]
6 ID:5 Desc:'Load Container' Cat:'Containers' BtnTxt:'Load Container' MnuTxt:'Load Container' Icon:[Containers,7]
7 ID:6 Desc:'Close Container' Cat:'Containers' BtnTxt:'Close Container' MnuTxt:'Close Container' Icon:[Containers,3]
8 ID:7 Desc:'Open Container' Cat:'Containers' BtnTxt:'Open Container' MnuTxt:'Open Container' Icon:[Containers,9]
9 ID:8 Desc:'Save Container' Cat:'Containers' BtnTxt:'Save Container' MnuTxt:'Save Container' Icon:[Containers,13]
10 ID:9 Desc:'Update Container' Cat:'Containers' BtnTxt:'Update Container' MnuTxt:'Update Container' Icon:[Containers,1]
11 ID:10 Desc:'Reload Container' Cat:'Containers' BtnTxt:'Reload Container' MnuTxt:'Reload Container' Icon:[Containers,11]
12 ID:11 Desc:'Make All Content Unique' Cat:'Containers' BtnTxt:'Make All Content Unique' MnuTxt:'Make All Content Unique' Icon:[Containers,15]
13 ID:12 Desc:'Merge Container Source' Cat:'Containers' BtnTxt:'Merge Container Source' MnuTxt:'Merge Container Source' Icon:[Containers,8]
14 ID:13 Desc:'Edit Container' Cat:'Containers' BtnTxt:'Edit Container' MnuTxt:'Edit Container' Icon:[Containers,5]
15 ID:14 Desc:'Override Object Properties' Cat:'Containers' BtnTxt:'Override Object Properties' MnuTxt:'Override Object Properties' Icon:[Containers,10]
16 ID:15 Desc:'Select Content's Container' Cat:'Containers' BtnTxt:'Select Content's Container' MnuTxt:'Select Content's Container' Icon:[Containers,16]
17 ID:16 Desc:'Override All Locks' Cat:'Containers' BtnTxt:'Override All Locks' MnuTxt:'Override All Locks' Icon:[Containers,18]
...
|
すべてのアクション項目は実行時にマクロに記録されます。これには、メイン メニュー項目、CUI ボタン、キーボード ショートカット、およびクアッド メニュー項目が含まれます。