エージェントの同期 - 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.