概要
メインのmaxscriptで他のmaxscript内に書いてある関数を利用したい!
等といった際にどうすればいいのか。
他の言語では include import とか言ったりするやつです。
(厳密に同じわけではないです。)
include と fileIn の2つがある
maxscriptでは上の2つのコマンドが読み込むコマンドとして準備されている。
include : スクリプト内へのスクリプトの組み込み
ヘルプから引用
MAXScript には、コンパイル時ソースファイル組み込み機能があり、大きいスクリプトを小さいファイルに分割して、スクリプトの任意の位置に組み込むことができます。
include <file>
構文を使って、その位置にファイルの内容を効果的に挿入できます。
fileIn : スクリプトの実行
ヘルプから引用
次のようにリスナーから、または他のスクリプト内から fileIn() メソッドを使用してスクリプトを実行することもできます。
何を言っているかは3dsMaxを立ち上げてMAXScript Listenerで実際に走らせてみると分かりやすい。
include では...
書いてあるスクリプトの文章が書き出されて最後に OK と出てくる。
fileIn では...
スクリプトが実行されて処理が行われる。
結局 includeとfileInは何が違う?
公式サイトの双方の説明、特にincludeの方を見たことをま大雑把にまとめる。
fileIn
- スクリプトの内容がグローバル スコープ コンテキスト内にコンパイルされる
include
- 名前付きファイルの内容に効果的に置換
- MAXScript スコープは組み込まれたファイル内に保持
- include は、名前、リテラル、句読点などの新しいトークンが必要とされる位置であれば、どこにでも入れることができる
まとめ
- スコープの違い
- 実行か、読み込みか
これを覚えておけばとりあえず問題なさそう。
エラーが起きる場合の検証は機会と時間があればやってみます。