スクリプト内へのスクリプトの組み込み

MAXScript には、コンパイル時ソースファイル組み込み機能があり、大きいスクリプトを小さいファイルに分割して、スクリプトの任意の位置に組み込むことができます。include <file> 構文を使って、その位置にファイルの内容を効果的に挿入できます。

他のスクリプトにのみ含まれていて、単独で実行することを想定していないスクリプトには、規則により、.mxs 拡張子が使用されます。 この拡張子は、MAXScript エディタのファイルの[開く] (Open)/[保存] (Save)ダイアログでサポートされていますが、[スクリプト] (Scripting) > [スクリプトを起動] (Run Script)ダイアログではサポートされていません。MAXScript エディタでは、.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() メソッドでは、スクリプト ファイルの内容がグローバル スコープのコンテキストでコンパイルされます。詳細は、Scope_of_Variables を参照してください。

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