スクリプトコントローラーに記述する


さて、Maxには色々とコントローラーが用意されているが、
なかでもスクリプトコントローラーは他では出来ない事をやる時に
抜群にイイコントローラーなんさ。

MayaとかSoftImageで言えば、
エクスプレッションに当たるこのコントローラー。
数式や関数を使う場合は、間違いなくコレを使う。

具体的にどんなことが出来るのかっといえば。
まず自動制御なんかは代表的かな。
Aオブジェクトが近づいてきたら、自分は別の場所に移動するとか。
とにかく、発想次第でなんでもできる。

で、このスクリプト。
あまり長いスクリプトは組み込まないと思うが。
10行程度でも、意外と面倒だったりする。

そこで、他からスクリプトを記述する方法がこれ。

$.Transform.controller = transform_script ()
$.Transform.controller.script = “matrix3 [1,0,0] [0,1,0] [0,0, 1] [0,0,0]\n”
–改行はこんな感じで全文の後につけてもよし
$.Transform.controller.script += “–コメント1\n”
$.Transform.controller.script += “–コメント2”

まず、上では、一端トランスフォームコントローラーを
スクリプトコントローラーに変換。
次に、1行ずつスクリプトを書き足していく。
改行も、\nとしっかり入れないといけない。

注意は変数などを1行ずつ書いていくと、エラーが起きるときがある。

そこで。

Local scritpStr = “Local obj = $Box01;
matrix3 [1,0,0] [0,1,0] [0,0, 1] [0,0,0];
–コメント1
–コメント2
obj.transform+matrix3 [1,0,0] [0,1,0] [0,0, 1] [0,0,0];
;”

–コントローラーを変換スクリプト追加
selection[1].Transform.controller = transform_script ();
–一端クリアして入れる
selection[1].Transform.controller.script = “matrix3 [1,0,0] [0,1,0] [0,0, 1] [0,0,0]”;
selection[1].Transform.controller.script = scritpStr;

こんな感じで一気に書き込むと良い感じ。
すこしながめのスクリプトならこんな感じでいじる方が好きかな。
ほかで言えば、includeをつかって、他で記述したスクリプトを
読み込む一文を使ってもいけるかも。

ちなみに、実数式も同じ方法で行けると思う。
試してないけど。。。

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください