フィールドによって自然界にある様々な力をシュミレートしてアニメーションを実行することができる。
作られたフィールドはconnectDynamic -fieldsによってパーティクルなどにコネクトする。
以下のスクリプトをmakeField1.melという名前で作り、makeField1();によって実行させてみよう。
このプロシージャーによってエミッターから発生するパーティクルがairフィールドによって飛ばされる。
global proc makeField1()
{
particle -p 0 5 0;
$name1 = `emitter -type "direction" -dx 0 -dy -1 -dz 0 -spread 0.2 -rate 3`;
$name2 = `particle`;
connectDynamic -emitters $name1[0];
$name1 = `air -pos 3 0 0 -maxDistance 5.0 -magnitude 1.0 -dx -1 -dy 0 -dz 0`;
connectDynamic -fields $name1[0] $name2[0];
}
particle -p 0 5 0;
パーティクルを(0, 5, 0)の位置に作る。
$name1 = `emitter -type "direction" -dx 0 -dy -1 -dz 0 -spread 0.2 -rate 3`;
そのパーティクルに対してY軸に対して下方向に発生・運動するエミッターを作り、作られたエミッターの名前を$name1(配列)に代入する。
$name2 = `particle`;
後でemitterによって発生されるパーティクルを作って、その名前を$name2という変数(配列)に代入しておく。
connectDynamic -emitters $name1[0];
emitterとパーティクル($name1[0])をコネクトしてパーティクルを発生させる。
$name1 = `air -pos 3 0 0 -maxDistance 5.0 -magnitude 1.0 -dx -1 -dy 0 -dz 0`;
airフィールド作る。
作られたairフィールドの名前を$name1に代入しておく。
connectDynamic -fields $name1[0] $name2[0];
airフィールド($name1)をパーティクル($name2)に接続する。
これでパーティクルがairフィールドによって影響されるようになる。
makeField2(速度, X方向, Y方向, Z方向)