フィールドとコリジョン

フィールドとは

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

フィールドの種類

airコマンドの使用例

以下のプログラムによってエミッターから発生するパーティクルがairフィールドによって飛ばされる。

particle -p 0 5 0;
emitter -type "direction" -dx 0 -dy -1 -dz 0 -spread 0.2 -rate 3 -n emitter;
particle;
connectDynamic -emitters emitter;
air -pos 3 0 0 -maxDistance 5.0 -magnitude 1.0 -dx -1 -dy 0 -dz 0 -n air1;
connectDynamic -fields air1 particle2;

newtonコマンドの使用例

以下のプログラムによってエミッターから発生するパーティクルがnewtonフィールドによってnurbsPlaneの中に吸い込まれてゆく。

particle -p 5 10 0;
emitter -type "direction" -dx 0 -dy -1 -dz 0 -spread 0.2 -rate 3 -n emitter;
particle;
connectDynamic -emitters emitter;
nurbsPlane;
scale 0 10 10;
newton -magnitude 1.0 -maxDistance 8.0 -attenuation 0.98 -n newton1;
connectDynamic -fields newton1 particle2;

dragコマンドの使用例

particle -p 0 0 0;
emitter -type "direction" -dx 0 -dy 1 -dz 0 -spread 0.2 -rate 3 -n emitter;
particle;
connectDynamic -emitters emitter;
drag -pos 0 0 0 -magnitude 0.3 -dx 0 -dy 1 -dz 0 -n drag1;
connectDynamic -f drag1 particle2;

radialコマンドの使用例

particle -p 0 0 0;
emitter -type "direction" -dx 0 -dy 1 -dz 0 -spread 0.2 -rate 3 -n emitter;
particle;
connectDynamic -emitters emitter;
radial -pos -2 5 0 -magnitude -2.0 -maxDistance 3.0 -n radial1;
connectDynamic -f radial1 particle2;

turbulenceコマンドの使用例

particle -p 0 0 0;
emitter -type "direction" -dx 0 -dy 1 -dz 0 -spread 0.2 -rate 3 -n emitter;
particle;
connectDynamic -emitters emitter;
turbulence -pos 0 5 0 -magnitude 2.0 -maxDistance 3.0 -n turbulence1;
connectDynamic -f turbulence1 particle2;

uniformコマンドの使用例

particle -p 0 0 0;
emitter -type "direction" -dx 0 -dy 1 -dz 0 -spread 0.2 -rate 3 -n emitter;
particle;
connectDynamic -emitters emitter;
uniform -pos -2 5 0 -magnitude 2.0 -maxDistance 3.0 -n uniform1;
connectDynamic -f uniform1 particle2;

vortexコマンドの使用例

particle -p 0 0 0;
emitter -type "direction" -dx 0 -dy 1 -dz 0 -spread 0.2 -rate 50 -n emitter;
particle;
connectDynamic -emitters emitter;
vortex -pos 0 0 0 -magnitude 0.15 -maxDistance 30.0 -ax 0 -ay 1.0 -az 0 -n vortex1;
connectDynamic -f vortex1 particle2;

コリジョンとは

コリジョン(collision)によってパーティクルとオブジェクト(ポリゴン、NURBS)との衝突をシュミレーションしてアニメーションを実行できる。
collisionコマンドで作られたコリジョンオブジェクトはconnectDynamic -collisionsによってパーティクルなどにコネクトする。

collisionのオプション

-resilience float
弾力を表す値(0.0 〜 1.0)
大きい値ほど良くはずむ。
-friction float
摩擦を表す値(0.0 〜 1.0)
この値によって跳ねる角度が変る。

collisionコマンドの使用例

エミッターから発生したパーティクルがnurbsPlaneに衝突して跳ね返りながら落ちてゆくプログラム。

particle -p 0 5 0;
emitter -type "direction" -dx -1 -dy -1 -dz 0 -spread 0.5 -rate 3 -n emitter;
particle;
connectDynamic -emitters emitter;
nurbsPlane -n plane1;
scale 0 15 15;
rotate 0 0 45;
collision -resilience 0.3 -friction 0.1 plane1 particle2;
gravity -pos 0 0 0 -n gravity1;
connectDynamic -fields gravity1 particle2;
connectDynamic -collisions plane1 particle2;

練習

参考


Prev | Next
Home | Contents
abe@injapan.net