パーティクルの寿命は、発生時点から消滅するまでの時間を秒単位で設定します。
デフォルトでは、パーティクルの存続期間はシミュレーション全体の長さになります。エフェクトの設定時にパーティクルのパラメータを調整しているときには、パーティクルを常に使用できる状態にしておくと便利です。また、星、雲、霧など、パーティクルの静止クラウドが必要なエフェクトを作成できるように、パーティクルをシーンに残しておくこともできます。
ただし、パーティクルはいずれ寿命に達して、消滅します。ほとんどのエフェクトで、いずれかのポイントでパーティクルを消滅させる必要があります。これには、パーティクルの寿命を設定し、その期限に従って削除されるようにする必要があります。
ここでパーティクルは、その時系列のパーセントに基づいて、カラーが変更されます。
パーティクルの寿命を定義するためのパーティクルの属性には、[Age]と[AgeLimit]の2つがあります。これらの属性は、このセクションで説明されているように複数のコンパウンドで使用されますが、ICE パーティクル属性を使用するで説明されているように、[Get Data]および[Set Data]ノードで指定してICEツリーで単独で使用することもできます。
属性の一般情報と使用可能なICE属性のリストについては、ICE 属性を参照してください。
パーティクルの存続期間を一定量に制限したい場合は、[Set Particle Age Limit]コンパウンドを使用する必要があります。このコンパウンドでは、[Age Limit]を設定して、パーティクルが放出後に存続する最長寿命(秒単位)を制御できます。
コンパウンドの中には、値を適切に計算できるように、パーティクルに時系列制限を必要とするものがあります。たとえば、次のように記述します。
パーティクル時系列のパーセントを使用するノードまたはコンパウンドには、パーティクルの寿命のパーセントが計算できるように、時系列制限値を設定する必要があります。たとえば、[パーティクルの値を時系列 % で修正](Modify Particle Value by Age %)コンパウンドを使用してパーティクルの値を変更するには、時系列制限を設定する必要があります。詳細については、「ICE パーティクルの値を修正する」を参照してください。
パーティクルの[State]システムを使用している場合は、パーティクルの寿命をトリガとして使用して、特定のエフェクトが発生されるようにすることができるため、寿命を設定する必要があります。たとえば、パーティクルが寿命に達すると、新しいパーティクルのセットが放出されます(花火など)。状態の使用については、「ICE パーティクル状態」を参照してください。
[Particle Gradient]シェーダでグラディエントを使用したパーティクルのカラーを定義している場合は、寿命を定義し、パーティクルの経過時間をカラーグラディエントの設定方法を定義するための属性として使用する必要があります。詳細については、「[Particle Gradient]シェーダ」を参照してください。
パーティクル放出を作成します。「基本的なパーティクル放出の作成」を参照してください。
[ICE]ツールバーから[パーティクル](Particles) [エミッション時](On Emission) [時系列制限の設定](Set Particle Age Limit)コマンドを選択します。
このコマンドは[Set Particle Age Limit(パーティクル時系列制限の設定)]コンパウンドをICEツリーに追加し、放出コンパウンドの[Execute on Emit]ポートに接続します。
次の例では、[Modify Particle Size]コンパウンドおよび[Modify Particle Color]コンパウンドも接続されています。これらのコンパウンドでは、寿命によって決定される時系列%を使用して、パーティクルの存続期間におけるパーティクルサイズおよびカラーの変化について定義できます。
[Set Particle Age Limit(パーティクル時系列制限の設定)]プロパティエディタで、パーティクルの寿命を設定します。この値は、パーティクル放出後の存続期間を秒単位で指定したものです。
[タスク]>[Particles]タブには、寿命の値にランダムさや乱流(ノイズ)を追加して、フレームがちらついたようなエフェクトなどで、複数のパーティクルの存続期間が同時に終了しないようにするいくつかのコンパウンドがあります。ランダマイズしたりノイズを追加すると、特定のタイプのエフェクトで、パーティクルがより自然に見えるようになります。
これらの各コンパウンドについては、「パーティクルの値をランダマイズする」を参照してください。
ここで、パーティクルの時系列制限は、フレームがよりランダムに見えるように乱流化されます。
寿命を設定しても、寿命に達したパーティクルを削除することはできません。寿命に基づいて意図的に削除する必要があります。この操作は、[パーティクルの削除]コンパウンドを使用して行うことができます。このコマンドを使用すると、指定した寿命に達した時点で各パーティクルを削除できます(映画『2300 年未来への旅』をご覧になった方は、あのパーティクルを思い出してください)。
パーティクル放出を作成します。「基本的なパーティクル放出の作成」を参照してください。
[ICE]ツールバーから[パーティクル](Particles) [エミッション後](After Emission) [パーティクルの削除](Kill Particles)コマンドを選択します。
このコマンドは[Kill Particles]コンパウンドをICEツリーに追加し、[Simulation Root]コンパウンドの[PostSimExecute]ポートに接続します。
[Kill Particles(パーティクルの削除)]プロパティエディタで、[Age Limit(寿命)]の値を希望する長さに設定します。
パーティクルの削除機能は、通常は状態システムまたはビヘイビア設定の一部として使用されます。たとえば、特定の場所に到達したときやオブジェクトと衝突したときに、パーティクルを消滅させることができます。
状態については、「ICE パーティクル状態」を参照してください。ビヘイビアコンパウンドについては、「ICE パーティクルサーフェイスインタラクションの動作」を参照してください。
パーティクル放出を作成します。「さまざまなICE パーティクル放出の設定」を参照してください。
ICEツリーのPreset Managerから[Delete Particles]コンパウンドを選択し、ICEツリーにドラッグします。
[Execute]出力を、[State]コンパウンドの[Execute on Trigger]または[Execute Once on Enter State]ポート、[Bounce Off Surface]コンパウンドの[Execute on Collide]ポートなど、任意の実行タイプのポートに接続できます。
このコンパウンドの[Execute]出力を[ICETree]ノードのポートに接続した場合、パーティクルは生成時にすべてのフレームで削除されます)。
パーティクル放出を作成します。「さまざまなICE パーティクル放出の設定」を参照してください。
[ICE]ツールバーから[パーティクル](Particles) [衝突](Collision) [衝突時に削除](Delete on Collision)コマンドを選択します。詳細については、「衝突時におけるパーティクルの削除」を参照してください。
オブジェクトのボリューム内にパーティクルがある場合に、そのパーティクルが削除されるようにできます。オブジェクトのボリューム内の減衰を設定して、パーティクルが削除されるときのシェイプを定義できます。
ここで、パーティクルは、球のボリューム内に入ったときに、定義済み減衰距離内で削除されます。
パーティクル放出を作成します。「基本的なパーティクル放出の作成」を参照してください。
[ICE]ツールバーから[パーティクル](Particles) [衝突](Collision) [ボリュームで削除](Delete by Volume)コマンドを選択します。
このコマンドはDelete Particles by Volume(ボリュームによるパーティクルの削除)コンパウンドをICEツリーに追加し、[Simulation Root]コンパウンドの[Execute]ポートに接続します。
パーティクルの削除に使用する1つまたは複数のボリュームオブジェクトを選択します。続けて、各オブジェクトの[Get Data]ノードを[Delete Particles by Volume]コンパウンドの[Volume]ポートに接続します。
オブジェクトを後からICEツリーに追加することもできます。その場合、各オブジェクトの名前をICE Treeビューにドラッグし、その[Get Data]ノードを作成してから、追加のオブジェクトとして接続します。
[Delete Particles by Volume(ボリュームによるパーティクルの削除)]プロパティエディタで、減衰距離などのパラメータを設定します。