次の図は、単一のパーティクル システムの典型的な ICE ツリーを示しています。
ルートの[ICETree]ノードは、オブジェクトのコンストラクション スタックに表示されます。同じオブジェクトに複数の ICE ツリーを作成することができ、それぞれのツリー名は変更できます。ICE ツリーはスタック内での位置に応じて他のオペレータとともに評価され、ドラッグ アンド ドロップによって移動できます。
シミュレートされた ICE ツリーを作成すると、[シミュレーション]領域と[シミュレーション後]領域の 2 つの新しいコンストラクション領域が作成されます。ICE ツリーは[シミュレーション]領域に追加されます。シミュレートされた ICE ツリーとシミュレートされていない ICE ツリーの唯一の違いは、スタック内での位置です。シミュレートされたツリーをシミュレートされていないツリーに変更するには、対象のツリーを別の領域([モデリング]領域など)に移動します。また、シミュレートされていないツリーをシミュレートされたツリーに変更するには、対象のツリーを[シミュレーション]領域に移動します。
[シミュレーション]領域とその他の領域の違いは、[シミュレーション]領域がインクリメンタル(増分的)である点です。つまり、下位のコンストラクション領域の結果ではなく前のフレームに基づいて計算が行われます。
これは、ICE ツリーだけではなく、[シミュレーション]領域のすべてのオペレータについて同様です。たとえば、[シミュレーション]領域で非 ICE のツイスト デフォーメーションを小さな角度値で適用してシーンを再生すると、オブジェクトは次第にツイストの度合いを増しますが、キーフレームや他のアニメーションが直接定義されることはありません。
シミュレーション環境がアクティブでない場合、[シミュレーション]領域のオペレータはスキップされます。コンストラクション スタックが評価されると、[アニメーション]領域の最上位にあるオペレータの結果が直接[シミュレーション後]領域と[2 次シェイプ モデリング]領域に渡されます。
既定では、シミュレーションの初期状態は、シミュレーション環境がアクティブな最初のフレームの[シミュレーション]領域の下にある領域の結果です。シミュレーションがアクティブである間は、下位の領域は再評価されません。
シミュレーションの最初のフレームは初期状態であるため、[シミュレーション]領域でパーティクルを放出すると、次のフレームで表示されます。
初期状態を手動で設定した場合は、その状態が保存され、シミュレーションの開始時に[アニメーション]領域の最上位にあるオペレータの代わりに使用されます。
間違って[シミュレーション]領域を作成してしまった場合に下位の領域を再評価するには、コンストラクション オペレータ スタックから[Simulation Region Marker]を選択して削除します。[Simulation Region Marker]と[Post Simulation Region Marker]は、一方が削除されると他方も削除されますが、これらの領域内のオペレータは影響を受けず、後から必要な領域に移動することができます。
シミュレーション環境の詳細については「ICE シミュレーション環境」を、初期状態の詳細については「ICE パーティクルシミュレーションの初期状態の作成」を参照してください。
[シミュレーション後]領域は、シミュレーションに適用するあらゆるオペレータに使用できますが、[シミュレーション]領域のようにインクリメンタルな適用を行わない場合や、[2 次シェイプ モデリング]領域のようにシェイプの定義に使用しない場合は除きます。たとえば、[シミュレーション後]領域を使用してパーティクル エフェクトにラティスを適用することができます。
[シミュレーション]領域以外にあるパーティクルを放出できます。たとえば、[モデリング]領域にある数多くのパーティクルを放出し、その後必要に応じてコンストラクション ヒストリをフリーズすることができます。
他の領域はシミュレートされないため、パーティクルは前のフレームに存在していた領域には追加されず、代わりにスタック内の前のオペレータの結果に追加されます。
[シミュレーション]領域外でも、他のタイプのジオメトリと同様、パーティクルを選択したり移動できます。ただし、[シミュレーション]領域の下位にあるオペレータは、シミュレーション環境がアクティブである間は再評価されません。シミュレーション環境の最初のフレーム(既定の初期状態)に移動し、[MoveComponent]や他のオペレータのエフェクトを確認する必要があります。
属性は、ICE の中核となる要素です。属性はシーン エレメントに関連付けられたデータであり、 ポイント、エッジ、ポリゴン、ノード(ポリゴン ノードやテクスチャ サンプルとも呼ばれます)などのオブジェクトやコンポーネントに保存できます。ほぼすべての ICE ツリーで、属性の取得と設定が関与します。
[PointPosition]、[PointNormal]、[Weights]、[EdgeLength]、[PolygonArea]などの一部の定義済み属性は、シーン内のエレメントに固有のものです。[PointPosition]や[Weights]などの一部の固有の属性は、ICE ツリーで変更できます。[PointPosition]、[EdgeLength]、[PolygonArea]など、その他の固有の属性は直接変更できません(ただし、[PointPosition]などの他の属性が変更されると、その影響を受けます)。
固有の属性に加えて、[PointVelocity]、[Force]、[Mass]、[Size]などの他の定義済み属性もあります。これらの属性は動的なもの、つまり設定されるまでは存在しない属性です。一部のノードとコンパウンドでは一定の属性が自動的に設定されますが、それ以外の属性を設定するかどうかはユーザ次第です。たとえば、[Add Point]ノードでは[ID]属性が設定され、[Add Point]ノードを含むさまざまな[Emit]コンパウンドでも[Age]などの属性が設定されますが、[取得]>[プリミティブ]メニューからポイント クラウドを取得した場合は、これらの属性は設定されません。[ID]を除き、すべての動的属性を設定できます。
一部のノードとコンパウンドでは、特定の属性を名前で識別します。たとえば、[Simulate Particles]ノードは、[Force]、[Mass]、および[PointVelocity]を使用して[PointPosition]を更新します。
定義済みの属性に加えて、ツリーにカスタムの動的属性を設定し、そのデータを自由に使用することもできます。実際、[AgeLimit]や[StateID]など、用意されているコンパウンドの一部の属性は定義済みのものではなく、そのコンパウンドで特定の用途に使用されているカスタム属性です。
詳細については、「ICE ツリーでデータを取得し設定する」を参照してください。