コリジョン(collision)によってパーティクルとオブジェクト(ポリゴン、NURBS)との衝突をシュミレーションしてアニメーションを実行できる。
collision コマンドで作られたコリジョンオブジェクトは connectDynamic -collisions によってパーティクルなどにコネクトする。
エミッターから発生したパーティクルがnurbsPlaneに衝突して跳ね返りながら落ちてゆくプログラム。
global proc makeCollision1()
{
string $ename[] = `emitter -pos 0.0 5.0 0.0 -type "direction" -dx -1.0 -dy -1.0 -dz 0.0 -spread 0.5 -rate 3`;
string $pname[] = `particle`;
connectDynamic -emitters $ename[0];
string $plname[] = `nurbsPlane`;
scale 0 15 15;
rotate 0 0 45;
collision -resilience 0.3 -friction 0.1 $plname[0] $pname[0];
string $gname[] = `gravity`;
connectDynamic -fields $gname[0] $pname[0];
connectDynamic -collisions $plname[0] $pname[0];
}
string $ename[] = `emitter -pos 0.0 5.0 0.0 -type "direction" -dx -1.0 -dy -1.0 -dz 0.0 -spread 0.5 -rate 3`;
string $pname[] = `particle`;
connectDynamic -emitters $ename[0];
string $plname[] = `nurbsPlane`;
scale 0 15 15;
rotate 0 0 45;
collision -resilience 0.3 -friction 0.1 $plname[0] $pname[0];
string $gname[] = `gravity`;
connectDynamic -fields $gname[0] $pname[0];
connectDynamic -collisions $plname[0] $pname[0];