群集シミュレーションでのアクション ソースの使用方法

 
 
 

群集シミュレーションにモデルをロードするときには、「アクション ソースをロードする」で説明するように、そのアクション ソースもロードする必要があります。これらのアクション ソースからのアニメーションを、群集シミュレーションでアクタに対して使用できるように、群集モデルとシミュレーション ポイント クラウドの ICE ツリーで複数の要素が設定されます。以下に全般的な概略を示します。

注:アクション ソースをロードしてポーズ状態を作成しなくても、ICE ツリー内のアクション ソースに直接アクセスすることもできます。アクション状態を使用して、リグ プロキシで特定のデフォーマをアニメートしている場合に、この方法を使用できます。これには、ポーズ状態を使用する場合以上に ICE の知識が必要になりますが、制御できる範囲も広がります。詳細については、「アニメーションの状態のデフォーマ変換を修正する」を参照してください。

アクション ソース データをポイント クラウドに変換する

アクション ソースをロードするときに、群集モデルの[アニメーション プロキシ](Animation Proxies)ノードにソースごとのポイント クラウドが作成されます。それぞれのオリジナル アクション ソースにあるローカル変換データは、それぞれのフレームで、アクターのリグ プロキシ内のすべてのデフォーマに対するグローバル変換データとして、このポイント クラウド内に格納されます(「アクターのリグを修正する」を参照)。これらのポイント クラウドは、群集シミュレーションに ICE ツリーで使用できるように、アクションに対して特定の ICE 属性も設定します。

ICE にアクション ソース データを取得する

ロードされたアクション ソースから生成された各ポイント クラウドは、シミュレーション ポイント クラウドの[アニメーション ソースの取得](Get Animation Sources) ICE ツリーで参照されます。ポイント クラウドは、[CrowdFX アクター プロキシ]プロパティ エディタからアクション ソースがロードされた順序で ICE ツリーに接続されます。この順序により、その ID が設定されます(0 から始まります)。これらのアクションは、移動タイプのアクションである場合、上から下に最も遅いものから最も速いものの順になります。

アクターが使用するアクション ソースを変更または更新する

1 つまたは複数のアクターを含む群集シミュレーションを作成した後で、シミュレーションでアクターが使用するアクション ソースを変更できます。たとえば、群集シミュレーションを行うためにアクターを選択するときにロードしたアクション ソースは「走行」だったが、その代わりに「ジョギング」するアクション ソースをアクターに使用させたい場合です。または、オリジナルの「走行」アクション ソースのアニメーションを改善のために修正しておいたものがあり、これを既にアクターに対してロードされている「走行」アクション ソースの代わりに使用しようとする場合です。

基本的には、ここで説明するように、既にロードされているアクション ソースを削除して、新しいアクション ソースを取得する必要があります。

  1. アクション ソースを変更するアクターの[CrowdFX アクター プロキシ]プロパティ エディタを開きます。
  2. [選択済みアクション](Selected Actions)リストから、削除するロード済みのアクション ソースを選択し、[移動 <<](Move <<)ボタンをクリックして、これらを[アクション ソース](Action Sources)リストに移します。これはロードしているソースを明らかにするだけで、ICE ツリーでは何も変更されません。
  3. ロードする新しいアクション ソースを[アクション ソース](Action Sources)リストから[選択済みアクション](Selected Actions)リストに移します。
  4. このリストで新しいアクション ソースを選択し、[選択](Selected)ボタンをクリックして、アクター上にロードします。
  5. シミュレーション ポイント クラウドの[アニメーション ソースの取得](Get Animation Sources)ICE Tree で、[アクター プロキシ アニメーションの取得](Get actor proxy Animations)コンパウンドから、削除されたアクション ソースの[Get Data]ノードをアンプラグまたは削除します。

    このイメージでは、「走行」アクション ソースが削除され、新しくロードした「ジョギング」アクション ソースに置き換えられています。

  6. 未使用の[In Name]ポートを右クリックして、[ポートの削除](Delete Port)を選択します。これが削除されるのは、[ロード アクター サイクル](Load Actor Cycles)によって背後で行われる計算に「空白」データが追加されないようにするためです。

    これでアクターは「ジョギング」アクション ソースを使用できます。

  7. シミュレーション ポイント クラウドの他の ICE ツリーで設定されたロジックが、ロードした新しいアクション ソースで機能することを確認します。Initialize Move Locomotion Data(移動データの初期化)コンパウンドで新しいアクション ソースに設定されている速度およびデュレーション データを確認します(「アクターのアニメーションの制御」を参照)。

アニメーションの状態を定義する

アクション ソースを群集システムに読み込むと、アニメーションの状態で使用できるようになります。

[アニメーションの定義](Animation Definition)ノードを展開すると、[アニメーションの状態の定義](Define Animation State)[移動アニメーションの状態の定義](Define Move Animation State)[アニメーション状態のトランジションの定義](Define Animation State Transition)ノードが表示されます。たとえば次の図では、4 つのアニメーション状態(Idle、Move、Move_Zombie_Style_A、Move_Zombie_Style_B)があります。これらすべての状態の名前は、アクターの状態のトランジションを理解することができるようにわかりやすくなっています。

状態名を変更するには

  1. [アニメーションの状態の定義](Define Animation State)ノードをダブルクリックします。

    [アニメーションの状態の定義](Define Animation State)ウィンドウが表示されます。

  2. [状態名](State Name)テキスト ボックスに、新しい状態名を入力します。

[アニメーションの状態の定義](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 では、さまざまな環境が定義され、アクターが定義された環境に反応するための条件が設定されます。

群集システムにアニメーションの状態の挙動を適用するには

  1. [挙動](Behavior)ICE Tree で、[アニメーション状態のセット](Set Animation State)コンパウンドをダブルクリックします。

  2. [アニメーション状態のセット](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]ICE Tree でアクション ソースを使用する

アクション ソースは[Animation_Blending]ツリーのアニメーションの状態で使用されます。群集システムで直接アニメーション ソースを使用することはできません。アニメーションの状態のみを使用する必要があります。アニメーションの状態は 1 つまたは複数のアニメーション ソースを参照します。

[アニメーション状態パラメータのセット](Set Animation State Parameters)ノードを使用して、アニメーションの状態内でアニメーション ソースがどのように使用されるかを定義できます。

Set Animation State(アニメーションの状態の設定)およびSet Animation States Sequentially(アニメーションの状態を順番に設定)を設定します。