An Agent type is a specialized Simulation event describing an agent definition. It contains a skeleton, proxy and skinned geos. It has a scale multiplier and can be linked to a State machine.
Atoms Crowd provide tools for exporting the necessary files to define your agent types.
Skeleton
Users can create the agent type skeleton in their favorite 3D package (i.e. Maya, Houdini, etc.) with a hierarchy of joints/bones.
The body skeleton should live under one main root, but you can also have detached joints or hierarchies. These should be added as extra (prop) joints when exporting the skeleton.
In order for a skeleton to work in Atoms, users have to tag the following joints: any pelvis joint, any foot root (the first joint of a leg), any foot ik (the IK handle) and any foot tip.
For a biped, you'll have one pelvis, two foot root, two foot iks and two foot tips.
Atoms needs these information to place correctly your agents on the ground and apply the foot lock during the simulation.
注意 |
---|
Your skeleton root must always be tagged as a pelvis. |
Proxy Geo
A proxy GEO is a set of low poly geometry that will be used by Atoms when showing your agents in "mesh" mode.In order to associate a geometry with a joint, users will have to name each piece of geo with the name of the joint followed by "_GEO" (see picture).
Please check the tutorial section to know more about how to name your proxy GEO.
注意 |
---|
All your proxy GEO should live under the same parent, although the hierarchy does not have to be flat. |
Skinned Geo
The skinned GEO can be single or multiple meshes skinned to the skeleton. At export time all the meshes, skin weights, UV and textures are saved inside the skinned GEO definition file.エージェントタイプは、エージェントの定義を説明する特殊なシミュレーションイベントです。Skeleton、Proxy、Skin geoを含みます。これは、スケール乗数を保有し、State Machineにリンクすることができます。
Atoms Crowdは、エージェントタイプを定義するために、必要なファイルをエクスポートするためのツールを提供しています。
Skeleton
ユーザーは、ジョイント/ボーンの階層を有する、ユーザーのお気に入りの3Dパッケージ(例えば、Maya、Houdiniなど)内にエージェントタイプのスケルトンを作成することができます。
ボディスケルトンは、1つのメインルートの下に配置する必要がありますが、独立したジョイントまたは階層を保有することもできます。スケルトンをエクスポートする場合は、これらは追加の(Prop)ジョイントとして加える必要があります。
スケルトンをAtomsで機能させるには、ユーザーは次のジョイントにタグを付与する必要があります。pelvisジョイント、foot root(脚の最初のジョイント)、foot IK(IKハンドル)、およびfoot tip。
二足歩行の場合は、pelvis(骨盤)が1本、foot root脚の(根元が2本)、foot IK(脚が2本)、foot tip(足先が2本)あります。
Atomsは、エージェントをグラウンドに適切に配置し、シミュレーション実行中にフットロックを適用するためにこれらの情報を必要とします。
注意 |
---|
ユーザーのskeleton rootは、常にpelvisとしてタグ付けされる必要があります。 |
Skin geo
スキンを適用したジオは、スケルトンをスキンに適用した単一または複数のメッシュにすることができます。エクスポート時には、すべてのメッシュ、スキンウェイト、UV、テクスチャはスキンされたジオの定義されたファイル内に保存されます。
注意 |
---|
スキンが滑らかである必要はありませんが、スキンされたすべてのジオは同じ親の下に配置される可能性があります。 |
State Machine
すべてのエージェントタイプに対して、ステートマシンをリンクすることができます。エージェント作成段階では、State Machineモジュールはこの名前を使用してLink State Machineを構築します。
Agent scale
この値はスケルトンのグローバルスケールの乗数です。 pelvisHeight、footHeight、velocityメタデータはこの値の影響を受けます。
Retargeting
リターゲティングセクションは、単一または複数のRetargeting Agent Typeを有することができます。このエージェントタイプは、リターゲットメソッドとジョイント名のマップを含むオプションのConfig Map Fileを使用して、指定されたエージェントタイプにマッピングされます。
Retargeting Methodは、アニメーションクリップの読み込み中に使用されるスケールファクタを評価するために使用されます。
- Pelvis To Feet:この係数は、メインとなる骨盤と足先までの間の平均距離をY値の比として計算されます。
- バウンディングボックス:ファクタは、スケルトンバウンディングボックスのY値の比率として計算されます。
- ユーザー係数:ユーザーによって提供されます。
Drawの最適化
Atoms Crowdは、実行時にエージェントタイプのジオメトリが単純化される自動詳細レベル(LOD)をサポートしています。
ユーザーは3つの詳細レベルを保有することができ、「Camera Distance」と「Screen Area」の間でモードを選択することができます(ジオは、エージェントがスクリーンスペースで使用する領域に基づいて単純化されます)。
各LODの2つの値は以下のとおりです。
- 簡易化のレベル数。ジオを簡易化するための反復アルゴリズムは、反復ごとにポイントの25%を削除します。
- カメラの距離または画面領域の値(モードによって異なります)。
Preview
Preview Widget Displayには、選択したエージェントタイプのスケルトンが表示されます。下部には、ジョイントサイズを変更するためのコントロールがあります。
ジョイントはタグによって色分けされています。
- グリーン: pelvis ジョイント
- シアン: foot root ジョイント
- レッド: skip ik ジョイント
- ピンク: foot ik ジョイント
- イエロー: foot tip ジョイント
ビューポートを右クリックすると、以下のオプションを含むメニューが表示されます。
- Draw grid:ビューポート表示のグリッドを有効/無効にします。
- Draw Joint Axis:ディスプレイのジョイント軸を有効/無効にします。
- Draw Skin Mesh:スキンメッシュの表示/非表示を切り替えます。
- Draw Joint Names:ジョイント名の表示/非表示を切り替えます
- Lock Camera:カメラのロックを有効/無効にします。
- Reset Camera:カメラの移動/回転をリセットします。
ナビゲーションコントロール
- Alt +左クリックしてドラッグ:カメラを回転
- Alt +中クリックでドラッグ:カメラをパン
- Alt +右クリックしてドラッグ:ズームカメラ