On this page |
概要
エージェント はスキンジオメトリとアニメーションを持ったキャラクタスケルトンで、DOPシミュレーションの パーティクルのようなポイント にそれぞれ関連しています。 エージェントには、現在の 状態 があります。 ある状態は、エージェントがその状態にある間、エージェントをアニメートする クリップ に対応します。 また、状態には、エージェントのポイントを動かすDOPパーティクルフォースのような、エージェントに変更を加える 挙動ノード が含まれます。 各シミュレーションのステップで、Houdiniは各エージェントに対する トリガ を評価します。 トリガがエージェントに適合すると、トリガは、現在の新しい状態をエージェントに与える トランジション ノードを有効にします。
例えば、ひしめきあう群衆を作成するには、walk
の状態のエージェントとidle
の状態のエージェントを使用することになります。
walk状態の内部には挙動ノードがあり、その状態のエージェントのポイントを動かします。
トリガにより、各エージェントがその現在の状態に特定の期間よりも長くとどまっていないかどうかをチェックできます。
トリガにより、2つのトランジションノード(walk → idle および idle → walk)が作成され、それぞれの一致するエージェントの状態が反転します。
クラウドはジオメトリネットワークのポイントから作成されます。 ジオメトリネットワークでは、Houdiniのジオメトリノードの機能を最大限に使用し、地形などの既存モデルからエージェントの位置を作成できます。 実際の群衆シミュレーションは、シミュレーションネットワークで実行されます。 このネットワークでは、エージェントは他の動的要素と相互に作用することができます。
基本的な群衆シミュレーションを作成するシェルフツールやネットワークエディタの使用方法に関しての詳細は、群衆シミュレーションの設定方法を参照してください。
Tip
群衆の作成方法をすぐにでも学習したいのであれば、Zombies for Everyoneチュートリアルを参照してください。
概念
群衆シミュレーションの“ソース”は、ジオメトリネットワークのポイントで、シミュレーションでのエージェントの開始位置を表します。
しかし、ソースポイントを設定しない場合、Crowd Sourceサーフェスノードは、指定した領域に特定の数のポイントを自動的にランダムにばら撒きます。
Agentsは、例えば、群衆シーン内のそれぞれの人々である群衆シミュレーションの“アクター”です。エージェントは、エージェントのスケルトンとジオメトリを含んだHoudiniオブジェクトサブネットまたはアセットからルックを取得します。
各エージェントは、エージェントの初期位置を定義した ソースポイント から作成されます。Crowd Sourceノードは、ポイントを、Crowd Solverで使用される情報を含んだPrimitiveアトリビュートを持った特別な エージェントプリミティブ に変換します。エージェントのジオメトリはパックプリミティブとして読み込まれるので、膨大な数のエージェントの表示とレンダリングがさらに速くなります。
初期群衆シミュレーションの作成方法は、セットアップを参照してください。
クリップとは、(walk
やrun
のように)エージェントと関連付けるアニメーションのことです。エージェントが特定の 状態 になった時にそのクリップが再生されるようにエージェントを設定することができます。
どの時間でも、すべてのエージェントは特定の状態にあります。例えば、“walk”、“idle”、“attack”、“run_to_goal”などです。 この状態は、 挙動 ノードをカプセル化します。挙動ノードは、エージェントプリミティブに影響を与え、エージェントを動かしたり、そのアトリビュートを変更したりします。 状態内部のフォースが、その状態のエージェントに対して、実際にどのように適用されるかは、ウェイトにより異なります。
Houdiniは、同じ状態の名前を持ったアニメーションクリップにより、指定した状態のエージェントをアニメーションさせます。
各状態の後にパーティクルDOPノードを追加して、その状態のエージェントを動かすことができます。
Houdiniには、“ポイントの方へ動く”や“パスを進む”など、便利な群衆挙動を実行する多数の“ステアリングフォース”ノードがあります。 このノードは、DOPパーティクルノードによく似ています。 実際、パーティクルフォースを使用してもエージェントに影響を与えることができますが、単純なパーティクルフォースには、ウェイトの概念がありません。
シミュレーションの各ステップで、Houdiniは各エージェントを見て、一連のトリガノードをチェックします(例えば、“対象までの距離>2”など)。論理ノードはトリガの結合に使用できます。トリガが適用されると、Houdiniは、トリガに付加されたトランジションを確認して、エージェントを新しい状態へ変更します(例えば、“walk”->“run”)。トランジションには、Houdiniが新旧の状態のアニメーションクリップを自動的にブレンドする 持続時間 が入っている場合があります。
エージェントに対してStatic DOPオブジェクトを指定して、挙動の使用を回避することができます。 この挙動は、behavior mergeノードの 前 に、この挙動を配置することができます。
現在のところ、Houdiniは、単一の地形オブジェクト(Static RBDオブジェクト)に対応しています。 エージェントは、オプションのIK foot adaptationを使用して地形に追従します。