フィールド1

フィールドとは

フィールドによって自然界にある様々な力をシュミレートしてアニメーションを実行することができる。
作られたフィールドはconnectDynamic -fieldsによってパーティクルなどにコネクトする。

フィールドの種類

フィールドの使用例1

airコマンドの使用例

以下のスクリプトを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];
}

  1. particle -p 0 5 0; パーティクルを(0, 5, 0)の位置に作る。
  2. $name1 = `emitter -type "direction" -dx 0 -dy -1 -dz 0 -spread 0.2 -rate 3`; そのパーティクルに対してY軸に対して下方向に発生・運動するエミッターを作り、作られたエミッターの名前を$name1(配列)に代入する。
  3. $name2 = `particle`; 後でemitterによって発生されるパーティクルを作って、その名前を$name2という変数(配列)に代入しておく。
  4. connectDynamic -emitters $name1[0]; emitterとパーティクル($name1[0])をコネクトしてパーティクルを発生させる。
  5. $name1 = `air -pos 3 0 0 -maxDistance 5.0 -magnitude 1.0 -dx -1 -dy 0 -dz 0`; airフィールド作る。 作られたairフィールドの名前を$name1に代入しておく。
    各フラグの意味は以下の通り。
    -pos 3 0 0
    位置は3 0 0
    -maxDistance 5.0
    airの届く範囲は5.0の距離まで
    -magnitude 1.0
    airのスピード
    -dx -1 -dy 0 -dz 0
    -magnitude の方向 (X軸に平行な方向)
  6. connectDynamic -fields $name1[0] $name2[0]; airフィールド($name1)をパーティクル($name2)に接続する。 これでパーティクルがairフィールドによって影響されるようになる。

練習

参考


Prev | Next
Home | Contents
abe@injapan.net