群集シミュレーションにモデルをロードするときには、「アクション ソースをロードする」で説明するように、そのアクション ソースもロードする必要があります。これらのアクション ソースからのアニメーションを、群集シミュレーションでアクタに対して使用できるように、群集モデルとシミュレーション ポイント クラウドの ICE ツリーで複数の要素が設定されます。以下に全般的な概略を示します。
アクション ソースをロードするときに、群集モデルの[アニメーション プロキシ](Animation Proxies)ノードにソースごとのポイント クラウドが作成されます。それぞれのオリジナル アクション ソースにあるローカル変換データは、それぞれのフレームで、アクターのリグ プロキシ内のすべてのデフォーマに対するグローバル変換データとして、このポイント クラウド内に格納されます(「アクターのリグを修正する」を参照)。これらのポイント クラウドは、群集シミュレーションに ICE ツリーで使用できるように、アクションに対して特定の ICE 属性も設定します。
ロードされたアクション ソースから生成された各ポイント クラウドは、シミュレーション ポイント クラウドの[アニメーション ソースの取得](Get Animation Sources) ICE ツリーで参照されます。ポイント クラウドは、[CrowdFX アクター プロキシ]プロパティ エディタからアクション ソースがロードされた順序で ICE ツリーに接続されます。この順序により、その ID が設定されます(0 から始まります)。これらのアクションは、移動タイプのアクションである場合、上から下に最も遅いものから最も速いものの順になります。
1 つまたは複数のアクターを含む群集シミュレーションを作成した後で、シミュレーションでアクターが使用するアクション ソースを変更できます。たとえば、群集シミュレーションを行うためにアクターを選択するときにロードしたアクション ソースは「走行」だったが、その代わりに「ジョギング」するアクション ソースをアクターに使用させたい場合です。または、オリジナルの「走行」アクション ソースのアニメーションを改善のために修正しておいたものがあり、これを既にアクターに対してロードされている「走行」アクション ソースの代わりに使用しようとする場合です。
基本的には、ここで説明するように、既にロードされているアクション ソースを削除して、新しいアクション ソースを取得する必要があります。
このイメージでは、「走行」アクション ソースが削除され、新しくロードした「ジョギング」アクション ソースに置き換えられています。
アクション ソースを群集システムに読み込むと、アニメーションの状態で使用できるようになります。
[アニメーションの定義](Animation Definition)ノードを展開すると、[アニメーションの状態の定義](Define Animation State)、[移動アニメーションの状態の定義](Define Move Animation State)、[アニメーション状態のトランジションの定義](Define Animation State Transition)ノードが表示されます。たとえば次の図では、4 つのアニメーション状態(Idle、Move、Move_Zombie_Style_A、Move_Zombie_Style_B)があります。これらすべての状態の名前は、アクターの状態のトランジションを理解することができるようにわかりやすくなっています。
[アニメーションの状態の定義](Define Animation State)ノードで、事前に記録されたアニメーションの状態すべてが ICE CrowdFX から直接読み込まれます。[アニメーションの状態の定義](Define Animation State)ウィンドウ[名前](Name)ドロップダウン リストから、目的のアニメーションの状態を選択できます。
[アニメーションの状態の定義](Define Animation State)ノードの[ポーズ モディファイア](Pose Modifier)エレメントを使用して、事前に記録されたアニメーションを修正することができます。また、1 つのアニメーションの状態内で異なるアニメーション(歩いている、立っている、走っているなど)の間のブレンドを定義できます。
事前に記録されたアニメーションごとに状態を定義したら、アニメーションの状態間のトランジション(アイドルから移動、移動から走行など)およびトランジションの長さを定義する必要があります。状態間のトランジションを定義しない場合は、これらのアニメーションの状態間でハード スイッチになります。
[アニメーションのブレンド](Animation Blending)ツリーの[状態のトランジションの定義](Define State Transition)ノードでは、状態間のトランジションを定義できます。
[状態のトランジションの定義](Define State Transition)ノードをダブルクリックすると[状態のトランジションの定義](Define State Transition)ウィンドウが表示されます。
このウィンドウで、ソース状態からターゲット状態へのトランジションを設定することができます。[デュレーション](Duration) フィールドでは、フレーム数で、トランジションの時間を指定します。
これにより、[アニメーションのブレンド](Animation Blending)ツリーを使用して、アクターの機能を定義することができます。
[挙動](Behavior)ICE Tree では、アクターの挙動を定義することで、事前に定義されたアニメーションを使用することができます。[挙動](Behavior)ICE Tree では、さまざまな環境が定義され、アクターが定義された環境に反応するための条件が設定されます。
[挙動](Behavior)ICE Tree で、[アニメーション状態のセット](Set Animation State)コンパウンドをダブルクリックします。
[アニメーション状態のセット](Set Animation State)プロパティ エディタで、([アニメーションの状態の定義](Define Animation State)ノードで追加した)新しいアニメーションの状態を[状態](State)ドロップダウン リストから選択します。
[挙動](Behavior)ICE Tree の[アニメーションの状態セレクタ](Animation State Selector)ノードでは、各トランジションに別のアニメーションの状態を選択することができます。[アニメーションの状態セレクタ](Animation State Selector)ノードをダブルクリックすると、[状態セレクタ](State Selector)ウィンドウが表示されます。
[状態](State)ドロップダウン リストには、アニメーションのブレンドで定義されているすべてのアニメーションの状態が、分かりやすい名前で表示されます。これにより、トランジションの際に、目的のアニメーションの状態を簡単に選択することができます。
[Animation_Blending]および[挙動](Behavior)ICE Tree は、ICE CrowdFX シミュレーションの異なる部分と明確に分離されています。このため、アニメーションの状態および状態間のトランジションを簡単に定義でき、各トランジションで目的の状態を簡易的に選択することで、アクターの挙動をコントロールできます。
アクション ソースは[Animation_Blending]ツリーのアニメーションの状態で使用されます。群集システムで直接アニメーション ソースを使用することはできません。アニメーションの状態のみを使用する必要があります。アニメーションの状態は 1 つまたは複数のアニメーション ソースを参照します。
[アニメーション状態パラメータのセット](Set Animation State Parameters)ノードを使用して、アニメーションの状態内でアニメーション ソースがどのように使用されるかを定義できます。
Set Animation State(アニメーションの状態の設定)およびSet Animation States Sequentially(アニメーションの状態を順番に設定)を設定します。