エージェントの同期

エージェントを同期させるためには、 "Sync"モジュールを使用することができます。これは、horse/riderのセットアップや、異なるグループのエージェントを同期またはコンストレイントする必要がある場合など、その他のセットアップで特に役立ちます。
horse/riderの設定の例を見てみましょう。

アセットの準備

エージェントは、シミュレーション中にAtomsによって同期されるので、それらのアニメーションクリップは、Animation Clip File(Fbxなど)にエクスポートする前に同期させる必要があります。


horseに余分なジョイントを加えて、それにriderの主要なぺルビスをコンストレイントすることは適切な判断です。または、riderのメインとなるぺルビスのアニメーションをベイクして、それをhorseの余分なジョイントにコピーすることも可能です。
アニメーションクリップを通常どおりエクスポートして、それらをエージェントタイプと一緒にAtomsにロードします。


Agent Groupの順番を設定する

Layoutモジュール(Grid Layout)とClip Reader、またはState Machineモジュールを使用して2つのエージェントグループを作成します。最初のエージェントグループでは "AgentType"を "horse"に設定し、2番目のエージェントグループでは "rider"に設定します。

シミュレーション実行中、Atomsは、シーン内のエージェントグループを順次計算します。この場合、horseを含むエージェントグループが最初に計算されます。よって、まずhorse agent groupを選択し、次にrider agent groupを選択する必要があります(この順序で)。次に、AtomsシェルフからSync Commandを押します。

ボンネットの下では、horseグループの「Message」アトリビュートとriderグループの「ParentAgentGroup」アトリビュートの間で接続が確立されています。



Syncモジュールを追加する

最後のステップは、Syncモジュールをrider agent groupに追加することです。
このモジュールは、いくつかのメタデータを親から子エージェントにコピーします。
現在のLayoutモジュールも上書きします。このため、Syncモジュールの "AgentType"フィールドを "rider"に設定する必要があります。また、 "ParentJoint"の名前(運転手の関節)とriderの "Joint"の名前(Driven Joint)も設定する必要があります。


最後に、オフセットを追加して、KeepOffsetチェックボックスを有効にします。よって、子のジョイントアニメーションを維持することもできます。 keepOffsetがオフの場合、モジュールは、オフセットなしで通常のコンストレイントを適用します。さらに、メタデータをコピーする必要がある場合は、「metadata」リストを展開し、コピーしたいメタデータ名を親エージェントから追加します。


シーンを巻き戻すと、riderがhorseにコンストレイントされているのがわかります。

Copyright © 2017, Toolchefs LTD.