アクターのアクション ソースをロードし、群集シミュレーションを作成した後、このアニメーション データは、シミュレーションで使用できるように初期化されます。アニメーション データの使用方法は、作成したシミュレーションのタイプ(歩行者(移動)またはスタジアム)に応じて決まります。
移動シミュレーションの場合は、アクターの移動速度に相当するターゲット スピードを設定します。次に、各ポーズ状態に切り替えるときの速度と、ポーズ状態間でトランジションに要する時間の長さを設定します。詳細については、以下のセクションを参照してください。
スタジアム シミュレーションの場合は、ターゲット スピード設定はなく、デフォルトで 1 つのポーズ状態(アイドル)が作成されるだけです。その他のポーズ状態を使用する場合は、追加のアクション ソースをロードし、それらのアクション ソースごとにポーズ状態を作成して、アクターがポーズ状態から別のポーズ状態に切り替わる方法を制御するロジックを作成する必要があります。詳細については「アクション ソースとポーズ状態を追加する」を参照してください。
両タイプのシミュレーションの場合に、シミュレーションで使用されるアニメーションの初期ポーズ状態とその初期フレームを設定できます。詳細については、以下のセクションを参照してください。
デフォルトで、ID が 0 のポーズ状態は、シミュレーション ポイント クラウドのエミット ICE ツリーの[移動データの初期化](Initialize Locomotion Data)または[スタジアム データの初期化](Initialize Stadium Data)コンパウンドの[初期ポーズ状態 ID](Initial Pose State ID)値として設定されます。
多くの場合、使用される最初のポーズ状態はニュートラルまたはアイドル アニメーションですが、すべてのアクターを歩かせたり走らせたりするなどの別のポーズ状態の ID を選択してシミュレーションを開始できます。この利点は、シミュレーションの開始からすべてのアクターを特定の状態にしておこうという場合に、シミュレーション専用のプリロールを作成する必要がなくなることです。
また、ポーズ状態 ID 値をランダマイズし、各アクター インスタンスがシミュレーションで同一の開始ポーズ状態にならないようにすることができます。これは、アクターに無作為に使用させる何種類かの「アイドル」アクション ソースが指定されているスタジアム シミュレーションにおいて役立つ場合があります。
デフォルトで、指定される最初のポーズ状態の初期フレーム(初期ポーズ状態 ID (Initial Pose State ID))はパーティクルごとにランダマイズされるため、各アクター インスタンスには、そのアニメーションのための同一の開始点はありません。
これを行うには、[移動データの初期化](Initialize Locomotion Data)または[スタジアム データの初期化](Initialize Stadium Data)の[初期フレーム](Initial Frame)ポートに接続された[初期フレームのランダマイズ](Randomize Initial Frame)を使用します。[初期フレームのランダマイズ](Randomize Initial Frame)コンパウンドでは、[シード](Seed)および[ウェイト](Weight)値を変更してランダマイズが行われる方法を変更したり、必要に応じて別のランダマイズ ノードまたはロジックを使用したりすることもできます。
軍隊の隊列やマーチング パレードなど、アクターのすべてのインスタンスがアニメションの同じフレームで開始するようにするには、[初期フレームのランダマイズ](Randomize Initial Frame)ノードの接続を解除してから、どちらかの初期化コンパウンドで、[初期フレーム](Initial Frame)の値を、使用するアニメーションのフレームに設定します。
アクション ソースにあるアニメーションのフレームを確認するには、「アクション ソースのアニメーションをテストする」で説明されている[アクター ポーズの取得](Get Actor Pose)コンパウンドを使用するか、[サイクルの現在フレームの取得](Get Current Frame in Cycle)コンパウンドによってオリジナル アニメーション フレーム数を表示します。
移動でのアクター(パーティクル)のターゲット スピードの設定
移動タイプの群集シミュレーションでのアクターの速度(水平速度)は、COG (重心)デフォーマの Z 方向の速度によって決まります。アクター(パーティクル)は常に、シミュレーションの進行中、このターゲット スピードに到達しようとします。
シミュレーション ポイント クラウドのパーティクル シミュレーション ICE ツリーで、[衝突回避のシミュレート](Simulate Collision Avoidance)コンパウンドを開きます。
[ターゲット スピード](Target Speed)値を設定します。これは、パーティクルが移動する毎秒の Softimage 単位の数です。
アクターの速度は、[ターゲット スピード](Target Speed)、[最大加速](Maximum Acceleration)、および[最大減速](Max Deceleration)(両方とも[衝突回避の初期化](Initialize Collision Avoidance)コンパウンドで設定)を組み合わせた速度です。たとえば、ターゲット スピードまでの加速が速いほど、すぐに最終移動状態(以下を参照)に到達します。
ターゲット スピードにより、移動状態に到達したかどうかを判断することもできます。たとえば、ターゲット スピードを 10 に設定し、「走る」状態の最低速度を 20 に設定すると、アクターが最低速度に到達することがないため、その状態に到達することはなくなります。
ターゲット スピードはアクターの最終的な速度目標ですが、アクターの速度は他のアクターまたは壁との衝突による影響も受けます(「Collision Avoidance Behavior for Actors」を参照)。アクターは衝突を回避するために減速しますが、その後の速度は、衝突の脅威が過ぎると再加速されます。
歩行者シミュレーションでは、[移動データの初期化](Initialize Locomotion Data)コンパウンドでの速度に合わせて、3 つの基本的な移動状態(アイドル、ウォーク、および走る)が設定されています。もちろん、アイドル、ウォーク、および走る以外のタイプのアクション ソースをロードできますが、これら 3 つの「速度状態」が選択可能な標準状態となります。
1 つの状態が次の状態に切り替わるタイミングを判別するトリガーは、アクターの現在速度が、各状態に設定された[最低速度](Min Speed)より速くなった時です。
各状態の最低速度とトランジション デュレーションを設定するには:
シミュレーション ポイント クラウドのエミット ICE ツリーで、[移動データの初期化](Initialize Locomotion Data)コンパウンドのプロパティ エディタを開きます。
ICE ツリー ビューを開いていない場合は、ICE ツールバーで[CrowdFX] [シミュレーション](Simulation) [編集](Edit) [初期アニメーションの検査](Inspect Init. Animation)コマンドを選択して、このプロパティ エディタを開きます。
ウォーク状態と走る状態の[最低速度](Min Speed)値を設定します。これは、アクターがその状態に切り替わるときの最低速度(毎秒の Softimage 単位)です。
これらは、どのアクション ソースであれ ID 1 および ID 2 としてロードしたアクション ソースに速度が適用されるときの状態にすぎません。それらは、ウォークおよび走るアクション ソースである必要はありません。
[最低速度](Min Speed)値は、必ず[ターゲット スピード](Target Speed)と調和した値に設定してください。つまり、シミュレーション時にアクターを走る状態に到達させる場合は、ターゲット スピードが走る状態の最低速度値より少なくとも 1 高い値になるようにしてください。ターゲット スピードと走る状態の最低速度を同じ値にすると、アクターのアニメーションがウォーク状態と走る状態の間で揺らぐことになります。
状態ごとに[トランジション デュレーション](Transition Duration)を設定します。これは、前の状態からこのポーズ状態へのトランジション(ブレンド)が発生するときのフレーム数です。
シミュレーションを再生するとき、各ポーズ状態からのアニメーションは、アクターがその状態の速度範囲内にあるときのフレームと同じ数だけサイクルされます。
たとえば、別のアクターまたは壁との衝突を回避するためにアクターが減速する場合、そのアクターは速度に合った別の状態に切り替わります(走る状態からウォーク状態に戻るなど)。衝突の危険がなくなると、アクターはもう一度ターゲット スピードへの到達を試み、再び状態を切り替えます。