Houdini 20.0 群衆シミュレーション

他のソルバとの相互作用

エージェントと他のタイプのダイナミクス間との相互作用を設定するヒントです。

On this page

概要

現在のところ、Houdiniは、エージェントから他のソルバへの一方向の作用のみをサポートしています。 例えば、エージェントはRBDオブジェクトや水の飛沫を跳ね返すことはできますが、RBDオブジェクトはエージェントを跳ね返すことはできません。

一般的なヒント

  • エージェントの作成に使用したAgent ROPまたはAgent SOPで、必ず Generate Collision Layer パラメータが有効であることを確認してください。 これにより、リグの各ボーンに対して低解像度の静的形状を含むレイヤが作成され、衝突検出を有効に実行できるようになります。

  • Delete SOPを使用して、シミュレーションでどのオブジェクトにも衝突しない遠方のエージェントを削除します。

Cloth

布をエージェントに取り付ける方法を参照してください。

Bullet Solver

  1. Agent Edit SOPを使用して、エージェントの現在のレイヤをCollisionレイヤーに切り替え、Agent Unpack SOPを使用して、エージェントをアンパックします。

  2. Rigid Bodies シェルフタブのRBD Fractured Objectツールを使用して、エージェントのCollisionレイヤーから形状に対するRBDオブジェクトを作成します。

  3. 新しく作成したRBD Packed Object DOPで、 Initial Object Type パラメータを Create Animated Static Objects に設定します。 これにより、エージェントのモーションに一致させるために、RBDオブジェクトの変形が各フレームで更新されます。

    Geometry Representation パラメータをプリミティブシェイプ( CapsuleBox など)に変更することを考慮に入れてください。 これにより、パフォーマンスを上げることができます。

FLIP SolverおよびPOP Solver

  1. Agent Unpack SOPを使用して、エージェントをアンパックします。

  2. Collisions シェルフタブのDeforming Objectツールを使用して、衝突ジオメトリを流体やパーティクルシミュレーション内へ入れます。

高度: エージェントに対してさらなるシミュレーション

  • エージェントジオメトリに対してさらにセカンダリシミュレーション(例えば、クロスシミュレーション)を作成したい場合は、エージェントジオメトリをアンパックしなければなりません。

  • エージェントのジョイントの位置を計算するには(例えば、エージェントの頭上から流れるパーティクルを生成したい場合)、Agent Unpack SOPを使って、 Output パラメータを Joints に設定します。

群衆シミュレーション

はじめよう

  • 基本

    Houdiniにおける群衆シミュレーションの考え方の概要を説明します。

  • セットアップ

    群衆シミュレーションのセットアップと編集の方法

動くパーツ

  • エージェント

    群衆シミュレーションの要員である動くアクターであるエージェントについて説明します。

  • ステート

    エージェントのステート、各エージェントのアニメーションや仕草を制御する仮想的な雰囲気について。

  • トリガー

    エージェントのステートを変更する条件を指定する方法です。

  • キャッシュ

    群衆シミュレーションの効率的なキャッシュ化と読み込みのTips。

SOP群衆

挙動

外観

  • 多様性

    エージェントに異なる外観と行動を作成することで、より現実的な群衆を作成する方法。

  • 布の取り付け

    Vellum Clothをエージェントシェイプジオメトリの一部として追加/拘束すれば、エージェントの動きに基づいて布をシミュレーションすることができます。

地形

  • 足の着地

    エージェントのアニメーションを地形に適応させて滑りを回避するためのセットアップ方法。

  • 地形

    エージェントが歩く地形ジオメトリを指定する方法です。

  • 障害物

    エージェントが回避する障害物を設定する方法です。