MAXScript には、コンパイル時ソースファイル組み込み機能があり、大きいスクリプトを小さいファイルに分割して、スクリプトの任意の位置に組み込むことができます。コード内の任意の位置で include <file>
構文を使用することで、コード内のその位置にファイルの内容を効果的に挿入することができます。
他のスクリプトにのみ含まれていて、単独で実行することを想定していないスクリプトには、mxs 拡張子を使用します。この拡張子は、スクリプト エディタのファイルの[開く] (Open)/[保存] (Save)ダイアログでサポートされていますが、[スクリプト] (Scripting) > [スクリプトを起動](Run Script)ダイアログではサポートされていません。スクリプト エディタでは、.mxs ファイルのカラー化およびオート コンプリートがサポートされています。
形式は次のとおりです。
include "filename_string"
filename_string
にパスが含まれている場合、ファイルはそのパス内で検索されます。フルパスが指定されていない場合に filename_string が検索されるディレクトリのリストについては、「ファイル アクセス関数の検索動作」を参照してください。
これは、コンパイル時の構文であるため、ファイル名の指定は文字列リテラルでなければなりません。ファイル名に変数や式を指定することはできません。
例
utility foo "Baz" ( local a, b, c include "foo-ui.ms" rollout bar "Bar" ( include "bar-rollout.ms" ) include "foo-handlers.ms" )
include <file>
構文は、ソース コード内の指定位置で、名前付きファイルの内容に効果的に置換されます。
組み込んだファイルは、必要に応じて深くネストできます。つまり、組み込まれたファイルに別のファイルを組み込んでいくことができます。
include
はコンパイル時の構文であるため、現在の MAXScript スコープは組み込まれたファイル内に保持されます。逆に、「スクリプトの実行」で説明されている fileIn()
メソッドでは、スクリプト ファイルの内容がグローバル スコープのコンテキストでコンパイルされます。詳細は、「変数のスコープ」を参照してください。
include <file>
は、名前、リテラル、句読点などの新しいトークンが必要とされる位置であれば、どこにでも入れることができます。つまり、include file を使用して式の一部を完成させることができます。
例:
include "op1.ms"+ include "op2.ms" if include "test2.ms" then print a else print b
トークンの中に include <file>
を入れることはできません。たとえば、次の代入は無効です。
無効:
timeval = 2:include "framenum.ms".0