パーティクルのゴールを作成すると、パーティクルは、属片が磁石に引き付けられるようにゴールに引き付けられます。ゴールを使用すると、さまざまなパーティクルエフェクトを作成できます。たとえば、水滴が水たまりに変化していくエフェクト、あるサーフェイスに塗料が吹き付けられていくエフェクト、通り過ぎる男性が身に付けている明るい色に引き付けられる蝶などの作成が可能です。
生成されたパーティクルはユーザが定義したゴールオブジェクト上の場所に割り当てられ、寿命の続く限り、その場所に向かって進みます。パーティクルはゴールオブジェクトの位置またはシェイプ(またはその両方)に到達しようとします。パーティクルがゴールのサーフェイスに到達すると、パーティクルの速度は低下し、「停止」します。ゴールが動いたり、そのサーフェイスがデフォームされている場合は、パーティクルはゴールのサーフェイスに到達しようとし続けます。
パーティクルでターゲットシェイプを形成する場合(ボリュームを埋める場合と同様)、そのシェイプは移動したりデフォームしたりすることができます。実際、ゴールオブジェクトをデフォームし、非表示またはレンダリング不可能に設定すると、それに応じてパーティクルのシェイプが変化し、パーティクルの方をデフォームしているかのような外観になります。
パーティクルのゴールは、パーティクルシミュレーション全体の一部です。つまり、ゴールに向かって進むパーティクルを、パーティクルに適用した障害物やフォースに反応させることもできます。実際には、ゴールは引力のフォースの動作と同じように、パーティクルに対するフォースとして動作します。たとえば、パーティクルが重力によって下方へ引っ張られている状態で、パーティクルのゴールが上方にある場合は、ゴールのフォースと重力のフォースが同じ強度であればパーティクルは静止します。
ゴールの作成には、[Move Towards Goal]コンパウンドが必要です。このコンパウンドを使用すると、次の2つの操作を実行できます。
パーティクルが複数のゴールの間を移動するようにする場合は、[Multi Goal Sequencer]コンパウンドと[Move Towards Goal]コンパウンドの複数のインスタンスを併用することができます。「複数のゴール間を移動するパーティクル」を参照してください。
ICE Tree の Preset Manager で、[タスク]タブをクリックし、[Particles]を選択します。
このコンパウンドの[Execute]出力を、[Simulation Root]ノードの[Execute]ポートまたは[ICETree]ノードのポートに接続します。
ゴールオブジェクトの[Get Data]ノードを[Move Towards Goal]コンパウンドの[Geometry]ポートに接続します。
[Move Towards Goal(ゴールに向かった移動)]プロパティエディタで、[Goal Definition(ゴール定義)]、[Motion Towards Goals(ゴールに向けた動き)]、および[Goal Reached(ゴール到達)]グループのパラメータを設定します。
2 つの[Move Towards Goal]コンパウンドで 2 つのゴールを作成し、[If]ノードを使用してパーティクルを同時に 2 つのゴールに向かわせることができます。
パーティクルを向かわせる各ゴールに、一連の「ゴールオブジェクト+[Move Towards Goal]コンパウンド」を作成します(詳細については、前のセクションを参照)。
[If]ノードを[Execution]グループから ICE Tree ビューにドラッグし、その[Result]出力を[ICETree]ノードのポートに接続します。
ICE Tree の Preset Manager で、[タスク]タブをクリックし、[Particles]を選択します。
[Every Nth Particle]コンパウンドを[Conditionals]グループからドラッグし、その出力を[If]ノードの[Condition]ポートに接続します。
このコンパウンドのプロパティエディタを開き、パーティクル切り替えの条件を設定します。この例では、パーティクルが 1 つおきに2つのゴールのいずれかに向かって進むように、2 という値が設定されています。
一方の[Move Towards Goal]の[Execute]出力を[If]ノードの[If True]ポートに接続し、他方の[Execute]出力を[If False]ポートに接続します。
パーティクルが一方のゴールから他方のゴールに移動するようにする場合は、一連の「[Move Towards Goal]+ゴールオブジェクト」ノードを作成してから、各セットを[Multi Goal Sequencer]コンパウンドに接続します。
ICE Tree の Preset Manager で、[タスク]タブをクリックし、[Particles]を選択します。
[Multi Goal Sequencer]コンパウンドを[Goals]グループからICE Treeビューにドラッグします。
パーティクルを向かわせる各ゴールに、一連の「ゴールオブジェクト+[Move Towards Goal]コンパウンド」を作成します(詳細については、前のセクションを参照)。
[Move Towards Goal]コンパウンドの各[Execute]出力を、パーティクルが移動する順番どおりに、[Multi Goal Sequencer]コンパウンドの[Execute Move Towards Goal]ポートに接続します(一番上のゴールに一番最初に到達します)。
[Multi Goal Sequencer]プロパティエディタでは、パーティクルがリストの次のゴールに移動する前に各ゴールに対して近付く必要がある距離を設定したり、連続サーキットを作成するためにすべてのゴールを一巡するように選択したりできます。
[Switch to Next Goal]コンパウンドを使用して複数のゴールを作成し、たとえば、特定の条件に基づいて一方のゴールから他方のゴールに切り替えることができます。他のゴールへの切り替えは、状態システム内か、条件を設定するためのコンパウンドまたはノード(小さくても強力な[If]ノードなど)で行うことができます。
次の手順では、[If]ノードと[Conditional]コンパウンドの使い方を示しています。
[If]ノードを[Execution]グループから ICE Tree ビューにドラッグし、その[Result]出力を最初の[Move Towards Goal]コンパウンドの[Execute Each Frame]ポートに接続します。
ICE Tree の Preset Manager で、[タスク]タブをクリックし、[Particles]を選択します。
コンパウンドを[Conditionals]グループからドラッグし、その出力を[If]ノードの[Condition]ポートに接続します。この例では[Every Nth Particle]コンパウンドが使用されています。つまり、パーティクルが n 個ごとに次のゴールに向かって移動します。
このコンパウンドのプロパティエディタを開き、パーティクル切り替えの条件を設定します。この例では、パーティクルが次のゴールに切り替わる条件として、「4 個ごとのパーティクル」が設定されています。
[Switch to Next Goal]コンパウンドを[Goals]グループからICE Tree ビューにドラッグします。
その[Execute]出力を[If]ノードの[If True]ポートに接続します。