パーティクル状態システムのベースは、[ステート マシン](State Machine)ポートと、[シミュレーション ルート](Simulation Root)コンパウンドに接続された 1 つまたは複数の[状態](State)(または[シンプル ステート](Simple State))コンパウンドです。
[シミュレーション ルート](Simulation Root)ノード([シミュレーション ルート](Simulation Root)ノードを使用しないで作業している場合は[State Machine(ステートマシン)]コンパウンド)の[ステート マシン](State Machine)パラメータは、パーティクルの動作を定義するすべての[状態](State)コンパウンドをまとめる中心的な役割を果たします。すべてのフレームで、[State Machine]は接続されたすべての[State]コンパウンドの値を実行します。状態は[Simulation Root](または[State Machine])ノードに接続された順序で、上から下に向けて実行されます。
フレームごとの繰り返し回数([State]コンパウンドがフレームごとに何回繰り返し評価されるか)を定義できます。処理時間を短くするにはこの値を小さくします。ただし、フレーム間をすばやく移動するパーティクルについては、この値を高く設定する必要があります。
各[State]コンパウンドで、[State Machine]で使用されるパーティクルの動作を定義できます。各動作は「トリガー」コンパウンドと「エフェクト」コンパウンドの組み合わせです。たとえば、障害物に衝突したときに新しいパーティクルを連続発生させるパーティクルなどです。エフェクトコンパウンドの評価をその状態に入ったとき一度限りにすることも、フレームごとにしてエフェクトを継続させることも可能です。
複数の[State]コンパウンドすべてを互いに連続的にリンクさせ、大きなエフェクトの一部として機能するようにできます。パーティクルは、ある状態から次の状態へと移行します(各状態は、ユーザが固有の状態 ID で指定します)。パーティクルは、トリガーが「プル」されて新しい状態が使用されるまで、1つの状態にとどまります。
ある状態をパーティクルの初期状態にする場合は、[State]コンパウンドを[Simulation Root]ノードの[Primary State]ポートに接続することもできます。
パーティクル放出を作成します。詳細については、基本的なパーティクル放出の作成を参照してください。
ICE ツールバーから[パーティクル](Particles) [エミッション後](After Emission)
[ステート マシン](State Machine)
[状態の追加](Add State)を選択します。このコマンドは、[State(状態)]コンパウンドを ICE ツリーに追加し、[シミュレーション ルート](Simulation Root)コンパウンドの[状態](State)ポートに接続します。
ICE Preset Manager から[状態](State)コンパウンドをドラッグして、[状態](State)ポートに接続することもできます。
[シミュレーション ルート](Simulation Root)コンパウンドを使用していない場合は、[状態](State)コンパウンドを[ステート マシン](State Machine)ノードの[状態](State)ポートに接続する必要があります。
パーティクルがリジッド ボディの場合は、[状態](State)コンパウンドの代わりに[Simple State(シンプルな状態)]コンパウンドを使用することができます。[シンプル ステート](Simple State)コンパウンドは、[パーティクルのシミュレート](Simulate Particles)ノードを含まないため[バレット リジッド ボディのシミュレート](Simulate Bullet Rigid Bodies)または[リジッド ボディのシミュレート](Simulate Rigid Bodies)ノードを併用できるという点を除き、[状態](State)コンパウンドと同じです。
パーティクルまたはリジッド ボディ パーティクル放出を作成します。「ICE リジッドボディ パーティクル放出を作成する」を参照してください。
ICE Preset Manager から[シンプル ステート](Simple State)コンパウンドを取得し、[シミュレーション ルート](Simulation Root)コンパウンドの[状態](State)ポートに接続します。
[シミュレーション ルート](Simulation Root)コンパウンドを使用していない場合は、[ステート マシン](State Machine)ノードの[状態](State)ポートに接続する必要があります。
[バレット リジッド ボディのシミュレート](Simulate Bullet Rigid Bodies)または[リジッド ボディのシミュレート](Simulate Rigid Bodies)ノードを[シンプル ステート](Simple State)の[シミュレート](Simulate)ポートに接続します。
パーティクルが発生したときの状態を決定するプライマリ状態は、[Simulation Root]ノード(または放出コンパウンド)で設定します。パーティクルの発生先となるデフォルトのプライマリ状態 ID は[State 0(状態 0)]です。また、[State]コンパウンドで[State 0]を他のものに定義していない限り、パーティクルの寿命の間、これがそのパーティクルに設定され続けます。パーティクルは、[State]コンパウンドで他の状態に切り替えられていない限り、常にある一定の状態にとどまります。
状態を作成したら、すぐに固有の状態IDを指定することが重要です。固有の ID を指定しない場合、その状態が評価されない可能性があります。同じ状態システムに同じIDを持った2つの状態が存在する場合、[State Machine]で上位に接続された状態のみが評価されます。
各[State]コンパウンドのプロパティエディタを開き、各状態に[State ID]番号を指定して一意に識別できるようにします。This sets the State_ID attribute.
別の[State]コンパウンドの[トリガーで状態を変更](Change State on Trigger)リストでその状態を選択し、切り替えます。
たとえば、[State 1]コンパウンドのプロパティエディタで、トリガーの値に達したときにパーティクルが移行する状態として、[Change State on Trigger1(トリガー1で状態を変更)]リストで[State 2(状態 2)]を選択することができます。