ゴール(Goal)とはパーティクルが目標とするオブジェクトのことである。
カーブオンサーフェイスを除くすべてのオブジェクトをゴールにすることができる。
また、ひとつのパーティクルに対してゴールを複数対応させることもできる。
ゴールはgoal コマンドによって作られる。
エミッターから発生したパーティクルがnurbsPlaneに向かって移動し最後にnurbsPlaneで止まるアニメーション。
以下のスクリプトをmakeGoal1.melという名前で作り、makeGoal1();によって実行させてみよう。
global proc makeGoal1()
{
$name1 = `nurbsPlane`;
$name2 = `emitter -pos 0 5 5 -type "direction" -dx 0 -dy -1 -dz 0 -spread 0.5 -rate 3`;
$name3 = `particle`;
connectDynamic -emitters $name2[0] $name3[0];
goal -goal $name1[0] -weight 0.75 $name3[0];
}
$name1 = `nurbsPlane`;
goalとなるnurbsPlaneを作る。
$name2 = `emitter -pos 0 5 5 -type "direction" -dx 0 -dy -1 -dz 0 -spread 0.5 -rate 3`;
パーティクルを発生させるためのエミッターを作る。
$name3 = `particle`;
エミッターによって発生するパーティクルを作る。
connectDynamic -emitters $name2[0] $name3[0];
パーティクル($name3[0])をエミッター($name2[0])とコネクトしてエミッターからパーティクルが発生するようにする。
goal -goal $name1[0] -weight 0.75 $name3[0];
nurbsPlane($name1[0])を目標としてパーティクル($name3[0])が吸い込まれてゆくようにgoalを作る。
makeGoal2(goalの影響する値, エミッターのX座標, エミッターのY座標, エミッターのZ座標)