MAXScript マクロ レコーダは、ユーザが実行した多くのアクションをキャプチャし、それらのアクションに対応する MAXScript コマンドを生成します。
マクロ レコーダの出力は[MAXScript リスナー](MAXScript Listener)ウィンドウの[マクロ レコーダ](Macro Recorder)ペインにピンクで表示されます。
複数のフィルタ オプションがあり、記録するユーザ アクションの種類が何か、生成される MAX スクリプト コマンドに含めるオブジェクト参照が明示的なものか選択に関連したものかどうか、生成される MAXScript コマンドに含める変換や座標が明示的か相対的かなどをコントロールできます。
これらのオプションは、[リスナー](Listener)ウィンドウの[マクロ レコーダ](MacroRecorder)メニューを使用して設定します。
オプションの既定設定は、3ds Max ユーザ基本設定の「MAXScript 基本設定」に記載されているように、3ds Max の[基本設定](Preferences)ダイアログ ボックスの[MAXScript]ページで指定します。
これらの設定は 3dsmax.ini ファイルの[MAXScript]セクションを編集することでも、変更または設定できます。
3ds Max の多くの領域でマクロ レコーダ出力が生成されますが、マクロ レコーダ出力が生成されない領域も多くあります。
通常、3ds Max のメニュー バー、ツールバー、ステータス バー、[作成](Create)パネル、[修正](Modify)パネルのほとんどのボタンは、マクロ レコーダ出力を生成します。
ボタンで 2 番目のダイアログ ボックスを呼び出した場合、2 番目のダイアログ ボックスで設定を変更したりアクションを実行したりしても、通常マクロ レコーダ出力は生成されません。
[作成](Create)および[修正](Modify)パネルでマクロ レコーダ出力が生成されるのは、オブジェクトまたはモディファイヤを MAXScript で作成できる場合です。
オブジェクトまたはモディファイヤを実装するプラグインがマクロ レコーダをサポートするように更新されていない場合もあり、このような場合には、オブジェクトまたはモディファイヤはマクロ レコーダ出力を生成しません。
MAXScript では、テキストをツールバーへトラッグ アンド ドロップして[マクロ スクリプト](Macro Script)ボタンを作成することができます。
[リスナー](Listener)ウィンドウ パネルや[エディタ](Editor)ウィンドウなどのテキスト ウィンドウからテキストを選択して、表示されているツールバー上にドラッグできます。
テキストをドロップする準備ができると、カーソルは + 記号付きの矢印に変わります。
テキストをドロップすると、[マクロ スクリプト](Macro Script)ボタンがツールバーに追加され、ドロップされたテキストはマクロ スクリプトの本体になります。
一般的な例として、マクロレコーダ ペインからテキストをツールバー上にドラッグして、記録した一連のイベントを実行するボタンを作成することが挙げられます。詳細は、マクロ スクリプトの定義を参照してください。
次のマクロ レコーダ メニュー コマンドは[リスナー](Listener)で使用できます。
オブジェクトが 1 つだけ選択された場合に、生成するコマンドに明示的なシーン オブジェクト名と選択セット トークンのどちらを使用するかを指定します。
複数のオブジェクトが選択された場合は、常に選択セット トークンが使用されます。
例: |
[明示的シーン オブジェクト名](Explicit Scene Object Names)を選択すると、通常、次のようなコマンドが生成されます。 |
[選択に関連するシーン オブジェクト名](Selection-Relative Scene Object Names)を選択すると、通常、次のようなコマンドが生成されます。 |
[選択に関連するシーン オブジェクト名](Selection-Relative Scene Object Names)にすると、記録したスクリプトを異なる選択に適用して、ある程度一般化することができます。
現在のサブオブジェクト選択にかかわらず、スクリプトで操作するサブオブジェクトを常に同じものにする場合は、[明示的サブオブジェクト セット](Explicit Scene Object Names)を使用します。
生成するコマンドに明示的なサブオブジェクト識別子とサブオブジェクト選択セット プロパティのどちらを使用するかを指定します。
例: |
[明示的サブオブジェクト セット](Explicit Sub-object Sets)を選択すると、通常、次のようなコマンドが生成されます。 |
[選択に関連するサブオブジェクト セット](Selection-Relative Sub-object Sets)を選択すると、通常、次のようなコマンドが生成されます。 |
[選択に関連するサブオブジェクト セット](Selection-Relative Sub-object Sets)を選択すると、記録したスクリプトを異なる選択に適用して、ある程度一般化することができます。現在のサブオブジェクト選択にかかわらず、スクリプトで操作するサブオブジェクトを常に同じものにする場合は、[明示的サブオブジェクト セット](Explicit Sub-object Sets)を使用します。
スクリプト ロールアウトでパラメータ ブロックを実行して値がイベント ハンドラから切り替わると、マクロ レコーダは自動的に無効になります。
3ds Max 2013 では、スクリプト ロールアウトのイベント ハンドラでマクロ レコーダの出力を再度有効にするための専用の MAXScript コンテキストが導入されています。