比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

Atoms has a behaviour module called "sync". THis module is usefull with horse/rider setup or any other setup where you need to syncronize or constraint agents of different agents group.

Let's see an example of a horse/rider setup

Asset preparation

Since atoms syncronize the agents the animation clips used by the 2 agents must by sincronyzed during the creatin of the fbx from the animation scene.

Usually the horse skeleton has an extra joint and the rig of the rider is constrained to this joint or you can bake the animation of the rider pelvis and the copy this animation to the horse extra joint. Export the animation clip as usual and load them inside atoms with also the agent type.

Image RemovedImage RemovedImage Removed

Set the agent group order

Create two agent groups with a layout module (grid or paint layout module) and a clip reader or state machine module. On the first agent group set the horse as agent type, and on the second one set the rider.

During the simulation Atoms cumpute sequentially the agent groups in the scene, so the agent gorup with the horses must be computed first since is the driver agent. To do that you can select the horse agent group and the rider agent group and then press the sync command from the Atoms shelf.

Image Removed

Or you can connect the messagge attribute of the horse agent group to the  parentAgentGroup message attribute of the rider agent group

Adding the sync module

The last ste to do is add the sync module to the rider agent group. This module copied for each agent some metadata from parent agents. It also override the current layout module, so you need to set the rider in the agent type attribute of the sync module. The you mast set the parent joint name (the driver joint) and the rider joint name (the driven joint). You can add also an offset and active the keepOffset to mantain the child joint animation. If the keepOffset is off then the module applies a normal constriant without offset. If you need to copie more metada, expand the metadata attribute list of the modules and add the metadata names you want copy from the parent agent.

Rewind the scene and you will see the riders constrained to the horses.

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

アセットの準備

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


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

Image AddedImage AddedImage Added


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を押します。

Image Added

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



Syncモジュールを追加する

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


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


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