3ds Max 2008 で導入された、タブ付きスクリプト エディタの MAXScript 固有の言語設定は、3ds Max ルート フォルダにある MAXScript.properties ファイルを編集することによってカスタマイズできます。これによって、MAXScript 言語には含まれないユーザ定義のキーワードを含めることができます。
これは、たとえばプロジェクト固有の変数名などをハイライト表示する際に使用できます。
MAXScript ファイルのソース コードにおいてカラー化されて表示されるカスタム キーワードを定義するには、次の手順を実行します。
スクリプト エディタを開きます。
新しいスクリプトを作成して、「So long and thanks for all the fish.[改行] Earth is mostly harmless」と入力します。
以下のように表示されます。
エディタの[ツール] (Tools)メニューから、[開く MAXScript.properties](Open MAXScript.properties)]を選択します。
MAXScript.properties ファイルで、
keywords12 とコメントが付けられたセクションが検索され、カラー化されているユーザー定義の単語が特定されます。このリストのキーワードが最初にチェックされます。
keywords12.$(file.pattern.MAXScript)= definition にキーワードを追加できます。各新規行の末尾には、必ず ¥ を入力するようにしてください。
たとえば、次のように入力します。so long thanks all the fish mostly harmless
[Ctrl]+[S]を押して、MAXScript.properties ファイルを保存します。
フォーマットは次のようになります。
ユーザ定義のキーワードの既定値カラ―は赤で、スタイルは太字のイタリック体となっています。
これは、同じ MAXScript.properties ファイルにある Keywords12 のカラ―定義で変更できます。
MAXScript.properties ファイルを下方にスクロールして、次の行を特定します。
# Keywords12 - User defined
style.MAXScript.23=fore:#FF0000,bold,italics
この定義を変更して、独自のキーワードに目的のカラーとスタイルを設定できます。
たとえば、既存の行に # でコメントを付け、代わりに次の内容を入力します。
style.MAXScript.23=fore:#0040F0,bold
その後、[Ctrl]+[S]を押して保存します。結果は次のようになります。
MAXScript.properties ファイルの keywords12 の定義へのコメントで説明したように、キーワードは常にユーザ定義のリストにおいてチェックされた後に、言語固有の定義がチェックされます(MAXScript の場合は自動的に書き出されます)。
上記の例で、キーワード「and」と「for」は言語の一部としてカラ―化されています(論理演算の AND と FOR ループ)。これらをカスタム キーワード リストに含める場合、次のように濃い青色ではなく明るい青色でカラー化され、言語固有の設定が上書きされます。
ユーザ アカウント制御(UAC)が有効になっている Vista や Windows 7 のような新しいオペレーティング システムでは、MAXScript.properties ファイルの初期値を変更することはできません。これは、このファイルが 3ds Max のルートにあるためです。このため、エディタの[ツール] (Tools)メニューからも利用可能な[ユーザ オプション ファイル] (User Options File)を使用してカスタム設定を行うことをお勧めします。
ファイルが存在しない場合は、現在のユーザ アカウントのローカル設定フォルダにファイルが自動的に作成されます。ファイル名は「MXS_EditorUser.properties」となり、「MAXScript.properties」グローバル ファイルに通常あるすべての設定を上書きできます。
keywords12 のカスタム キーワード定義とカラー定義をこのファイルにコピーして、[Ctrl]+[S]を押してファイルを保存します。
ユーザ定義のキーワードをカラー化した場合、その結果は上記の例と同じですが、3ds Max のインストールには依存しません。たとえば、ローカル ユーザ設定を保持しつつ 3ds Max を再インストールした場合、MXS_EditorUser.properties ファイルに入力されたオーバーライドもすべて保持されます。