エージェントの同期 - Houdini
エージェントを同期させるためには "Sync"モジュールを使用することができます。これは、horse/riderのセットアップや、異なるグループのエージェントを同期またはコンストレイントする必要がある場合など、その他のセットアップ時に役立ちます。
horse/riderの設定の例を見てみましょう。
アセットの準備
エージェントは、シミュレーション実行中にAtomsによって同期されるため、アニメーションクリップは、Animation Clipファイル(Fbxなど)にエクスポートする前に同期させる必要があります。
良い練習は、horseに余分なジョイントを加えて、ライダーのメインとなるpelvisをコンストレイントすることです。または、ライダーのメインとなるpelvisのアニメーションをベイクして、それをhorseの余分なジョイントにコピーすることも可能です。
アニメーションクリップを通常どおりエクスポートし、それらをエージェントタイプと一緒にAtoms内にロードします。
エージェントグループの順番を設定する
Layoutモジュール(Grid Layout)とClip readerまたはState Machineモジュールを使用して2つのエージェントグループを作成します。最初のエージェントグループでは「Agent Type」を「horse」に設定し、2番目のエージェントグループでは「rider」に設定します。
シミュレーション実行中、Atomsは、シーン内のエージェントグループを順次計算します。この場合、horseを含むエージェントグループが最初に計算されます。
よって、riderのエージェントグループを選択する必要があります。パラメータエディタの一番下に移動し、「Parent Agent Group」パラメータ内にhorseのエージェントグループを設定します。
Syncモジュールを追加する
最後のステップは、Syncモジュールをriderのエージェントグループに追加することです。
このモジュールは、いくつかのメタデータを親から子のエージェントにコピーします。
現在のLayoutモジュールも上書きします。このため、Syncモジュールの「Agent Type」フィールドを「rider」に設定する必要があります。また、「parentJoint」の名前(driverジョイント)とriderの「joint」の名前(drivenジョイント)も設定する必要があります。
最後に、オフセットを追加して、KeepOffsetチェックボックスを有効にします。よって、子のジョイントアニメーションを維持することも可能です。KeepOffsetがオフの場合、モジュールはオフセットなしで通常のコンストレイントを適用します。さらに、メタデータをコピーする必要がある場合は、「metadata」リストを展開し、コピーしたいメタデータ名を親のエージェントから追加します。
シーンを巻き戻すと、riderがhorseにコンストレイントされていることが確認出来ます。
Copyright © 2017, Toolchefs LTD.