群集システムのアクターは、事前に記録されたアニメーションで定義されたパラメータに従って動作または反応します。たとえば、ある地形カラーから別の地形カラーに移動するときのアクターの動作方法や、障害物と衝突したときに取るアクションなどです。
このセクションでは、シーン内の既存のアニメーションに変化を持たせる方法について説明します。
¥Data¥XSI_Samples¥Scenes¥ICE¥CrowdFX で入手できるサンプルの群集シーンを使用して、このドキュメントで説明したとおりに、事前に記録されたアニメーションでバリエーションを試すことができます。
アクター プロキシに異なるアニメーションを割り当てる
グループ内の各アクターに異なるアニメーションを割り当てることにより、アニメーションをより興味深くすることができます。この処理には次が含まれています。
- アニメーション状態を初期化する
- [挙動](Behavior)ICE Tree でアニメーション状態を使用する
アニメーション状態を初期化するには
- ICE Tree で、[データのセット](Set Data)コンパウンドを追加して新しい ICE 属性を作成します。
- コンパウンドをダブルクリックします。
- [データのセット](Set Data)プロパティ エディタで、ICE 属性のリファレンス名またはアクション ID を入力します。
-
この[データのセット](Set Data)属性を整数で保持するには、[整数](Integer)ノードを追加して、その出力ポートを[データのセット](Set Data)コンパウンドの参照値に割り当てます。
これにより、整数 1 または 0 が各アクターに割り当てられます。
- コンパウンドを追加して、出力ポートを[整数](Integer)ノードの入力ポートに接続します。
- [範囲ごとに値をランダマイズ](Randomize Value by Range)コンパウンドをダブルクリックします。
- プロパティ エディタで、を 1 に設定し、オプションをオフに切り替えます。
- [データのセット](Set Data)コンパウンドの出力ポートを[Emit_and_Initialize]ICE Tree の入力ポートに接続します。
[挙動](Behavior)ICE Tree でアニメーション状態を使用するには
- [挙動](Behavior)ICE Tree でノードを追加します。
- [データの取得](Get Data)ノードをダブルクリックします。
- [データの取得](Get Data)プロパティ エディタで、ノードで入力したのと同じアクション ID を入力します。
- アクターの転倒を定義する既存の ICE Tree をコピーします。
- アクターの転倒を定義する最初の ICE Tree で、コンパウンドをダブルクリックします。
- [アニメーション状態のセット](Set Animation State)プロパティ エディタで、ドロップダウン リストからアニメーション状態を選択します。
- 同様に、アクターの転倒を定義する 2 番目の ICE Tree で、[アニメーション状態のセット](Set Animation State)プロパティ エディタの[状態](State)ドロップダウン リストから新しいアニメーション状態を選択します。
- ノードを追加します。
- 最初の ICE Tree の[実行](Execute)出力ポートを[条件による選択](Select Case)ノードの[Case0]入力ポートに接続します。
- 2 番目の ICE Tree の[実行](Execute)出力ポートを[条件による選択](Select Case)ノードの[Case1]入力ポートに接続します。
これらのノードは、アクション ID によってアクターを集約したり揺らしたりするために接続されています。
- [データの取得](Get Data)ノードの[値](Value)出力ポートを[条件による選択](Select Case)ノードの[条件](Condition)入力ポートに接続します。
- [条件による選択](Select Case)ノードの[結果](Result)出力ポートをノードの[True の場合](If True)入力ポートに接続します。
アニメーションの再生速度に変化を持たせる
ノードを使用して、事前に記録されたアニメーションの速度に変化を持たせることができます。
事前に記録されたアニメーションの再生速度に変化を持たせるには
- [挙動](Behavior)ICE Tree で[アニメーション状態パラメータのセット](Set Animation State Parameters)ノードを追加します。
- [アニメーション状態パラメータのセット](Set Animation State Parameters)ノードの[実行](Execute)出力ポートを転倒するアクターの ICE Tree の[実行](Execute)入力ポートに接続します。
- [アニメーション状態パラメータのセット](Set Animation State Parameters)ノードをダブルクリックします。
- ドロップダウン リストから、速度を定義するアニメーション状態を選択します。
- 値を増加または減少し、事前に記録したアニメーションをどのくらい高速または低速で再生するかを指定します。
- コンパウンドを追加します。
- [値を中心にランダマイズ](Randomize Around Value)プロパティ エディタで、、、およびに異なる値を指定します。オプションをオンに切り替えます。
- [値を中心にランダマイズ](Randomize Around Value)コンパウンドの[値](Value)出力ポートを[アニメーション状態パラメータのセット](Set Animation State Parameters)ノードの[速度](Speed)入力ポートに接続します。
2 つのアニメーション状態間でブレンドする
-
ICE Tree のノードを展開します。
[Animation_Definition]ノード ICE Tree のノードは、ある状態から別の状態へのトランジションを保存します。
- [アニメーション状態のトランジションの定義](Define Animation State Transition)ノードをダブルクリックします。
- プロパティ エディタで、を元の状態から新しい状態へ変更します。
- [実行](Execute)ノードを追加します。
- [ターゲット状態](Target State)を[実行](Execute)ノード入力ポートに変更したすべての[アニメーション状態のトランジションの定義](Define Animation State Transition)ノードの[定義](Define)出力ポートを接続します。
- [実行](Execute)ノードの出力ポートを Animation_Definition システムに接続します。
これにより、2 つの異なるアニメーション状態の間でスムーズなブレンドが作成されます。