インタフェース: 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 とともに表示されます。

  • MacroRecorder を有効にします。

  • [メイン メニュー](Main Menu) > [ツール](Tools) > [選択フロータ](Selection)を選択します。

  • MacroRecorder にコードが表示されます。

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 ボタン、キーボード ショートカット、およびクアッド メニュー項目が含まれます。

関連事項