MacroScript は 3ds Max 3 で初めて導入されました。当初はマクロ レコーダ (これまでの名前) の出力を調整するために実装され、ツールバーのボタンとして使用されていました。
MacroScript は、MacroRecorder の出力、MAXScript リスナ、または MAXScript エディタからツールバー上にスクリプト コードをドラッグ アンド ドロップすると、自動的に生成されます。新規スクリプトの拡張子は .mcr で、既定値ではUI¥UserMacros フォルダに書き込まれます(3ds Max 9 より前のバージョンでは、.mcr ファイルはアプリケーションに付属のマクロ スクリプトと同様に、アプリケーション ルートの下の UI¥MacroScripts フォルダに書き出されていましたが、Microsoft Vista OS の登場によってこのフォルダに対するアクセスが制限されたため、新しく ¥UserMacros フォルダが使用されるようになりました)。
UserMacros フォルダの位置は、メイン メニューの[カスタマイズ](Customize) > [システムパスを設定](Configure System Paths) > [追加マクロ](Additional Macros)で設定できます。設定の内容を確認するには、MAXScript リスナーに以下のように入力します。
ドラッグ アンド ドロップで MacroScript を作成するには:
結果: 新しいボタンが作成され、一般的な MacroScript アイコンが表示されます。新しいスクリプトには「MacroN」という名前が付きます。Nは、ドラッグ アンド ドロップ操作を行うたびに増加する一意の数値です。新しいスクリプトのカテゴリは「DragAndDrop」です。
3ds Max 4 以降では UI が拡張され、MacroScript をメニュー、クアッドメニュー、ツールバー、およびキーボード ショートカットのアクション項目として使用できるようになりました。現在の 3ds Max では、UI をカスタマイズするときに欠かせない手段として、この作成方法が最も普及しています。
スクリプトを開発するときには、手入力で記述することもできますが、自動的に生成された MacroRecorder コードをテンプレートとして使用すれば、効率的に作成することができます。開発者のソース コードを .ms ファイルに入れることもできます。
標準的な MacroScript は通常、次の行で始まります。
category: の名前に注意してください。 [カスタマイズ](Customize)ダイアログ ボックスでスクリプトを検索するときに必要になります。
または、[ユーティリティ](Utilities)パネルに移動して MAXScript Utility を開き、[スクリプトを開く](Open Script)を押します。
評価される MacroScript がアクション項目の[カスタマイズ](Customize)ダイアログ ボックスのカテゴリに表示されます。このスクリプトは、そのソースの場所を記憶しています。マクロ スクリプトの定義が評価されると、ソースのコピーが Macros フォルダに自動的に保存されます。保存名は、カテゴリ名、MacroScript 名、.mcr 拡張子で構成されます。
スクリプトを変更または更新したときに、同じ名前とカテゴリを使って新しいスクリプトまたは別のスクリプトを評価すると、UI¥UserM acros フォルダ 内のスクリプトのコピーが変更または更新されたスクリプトで上書きされます。
あらかじめ定義されている UI¥MacroScript が含まれている UI¥MacroScripts フォルダ、およびユーザ定義の MacroScript が含まれている UI UserMacros フォルダ内のスクリプトはすべて、起動時に自動的に評価され、ユーザはそれ以降のセッションで使用することができます。MacroScript を永久に削除するには、 UI¥UserMacros フォルダから .mcr ファイルを個別に削除する必要があります。
MacroScript ソースは、 ¥Scripts¥Startup またはプラグイン パスなど、自動的に起動されるフォルダにはできるだけ保存しないでください。1 つのソース コードが、2 つの異なる場所から二重に評価されることになります。MacroScripts のソース (独自に作成したスクリプト、Web から無料でダウンロードしたスクリプト、または市販のスクリプト) は、[パスを設定](Configure Paths)ダイアログ ボックスに表示されていないパスに保存してください。3ds Max では、このように自動的に管理される UI¥MacroScripts および UI¥UserMacros フォルダの内容だけが使用されます。