Atoms Crowd works with several file formats and assets.
Agent Type
An agent type is defined by three files:
- Skeleton (.atomsskel): the skeleton file containing the joint structure and metadatas
- Geo (.geos): the proxy geometry used in the viewport when the proxy mode draw mode is enabled
- Skin (.geos): the sking geometry used in the viewport when the skin mode draw mode is enabled
Interpendencies
The skin file might contain a reference to a xgen description file, if the an xgen groom was attached to the skin mesh at the time of exporting the skeleton definition files.
Animation clip
An animation clip is defined by one file:
- Clip (.fbx/.atomsclip): the animation file containing the joint animation and metadata animated values
Interpendencies
None.
Scene Json
A scene json represents of the data displayed in the Atoms UI.
This file can be exported and imported from/into your host app and its content is generally stored on an attribute of a node called tcAtomsNode.
This files is a descriptor for your scene setup and contains all definitions for Animation Clips, Agent Types, Simulation Events, Behaviour Modules and State Machines.
You don't necessarily need a scene json to setup your scene as this process can be done with the API. Please note, if any asset registered via script won't be editable through the Atoms UI.
Interpendencies
As the scene json contains the actual definition of animation clip and agent types with all their parameters, this file will contain the paths to clip files, skeleton files, proxy and skin geo files.
Variation Json
A variation json describes the variation data for one or more agent types.
It stores a dictionary containing all geometries, materials and their associations for each agent type.
This file can be exported and imported from/into your host app and its content is generally stored on an attribute of a node called tcAtomsNode.
Variation Json can be store on a disk on file or generated at run-time with our API.
A variation json table can be generated using the variation builder tool.
Interpendencies
A variation json contains references to the variation geos files, the variation materials, preview images and the material textures for the variation draw mode in the viewport.
Atoms Cache
An Atoms cache stores the simulation of one or more agents groups. An atoms caches only contains skeleton data and metadata values, it does not contain any geometry data.
Each cache is broken into several files to improve performances.
Each cache has a file with no padding and .atoms extension containing global info, such as start frame, end frame, agent ids, etc.
For each frame 4 files are created:
- header: basic info such as number of agents at the current frame, number of created agents and number of deleted agents
- frame: agent data such as agent type, position, velocity, bbox and variation
- meta: agents metadata
- pose: agent skeleton data
To make sure caches are portable, all agent type files (containinig skeleton and joint metadatas) are saved in a subfolder next to your cache files. The cache will also have a header file containing global infos, such as start frame, end frame, agent ids, etc.
You need a cache to render your crowds.
Interpendencies
None.
Cloth Cache
A cloth cache stores the cloth deformation data of your simulation geos.
Each frame file contains the points, normals and bounding box data for each cloth geo of your simulation agents, plus a global bounding box for all the cloth geos.
Interpendencies
None.
Alembics
Alembics are used as xgen scalp geos and and curves.
Alembics can also be used as geos for your agents, both skin and variations (if you wish to do so you have to store the skin weights with the menu command).
Interpendencies
None.
Rendering
As already explained in the reference guide you can render from your host app using an Atoms Proxy or you can render directly with our procedurals.
In all cases, for rendering you always need:
- an atoms cache
- a variation json file (when rendering you can pass directly its content to the procedurals)
Optionally you can provide:
Atoms Crowdは、いくつかのファイル形式とアセットで機能します。
Agent Type
Agent Typeは、3つのファイルによって定義されます。
- Skeleton(.atomsskel):ジョイント構造とメタデータを含むスケルトンファイル
- Geo(.geos):ProxyモードのDrawモードが有効になっているときに、ビューポートで使用されるプロキシジオメトリ
- Skin(.geos):SkinモードのDrawモードが有効になっているときに、ビューポートで使用されるシェイクジオメトリ
相互依存関係
なし
Animation clip
アニメーションクリップは、1つのファイルによって定義されます。
- Clip(.fbx / .atomsclip):ジョイントアニメーションとメタデータのアニメーション値を含むアニメーションファイル
相互依存関係
なし
Scene Json
Scene Jsonは、Atoms UIに表示されるデータを表します。
このファイルは、ホストアプリケーションとの間でエクスポートおよびインポートすることができ、その内容は通常tcAtomsNodeというノードのアトリビュートに格納されます。
このファイルはシーン設定の記述子で、Animation Clip、Agent Type、SimulationEvent、Behaviour Module、State Machineのすべての定義を含みます。
このプロセスはAPIで実行できるため、シーンをセットアップするために必ずしもScene Jsonを必要としません。スクリプト経由で登録されたアセットが、Atoms UIから編集できない場合があることに注意してください。
相互依存関係
Scene Jsonには、すべてのパラメータを持つAnimation ClipとAgent Typeの実際の定義が含まれているので、このファイルにはClipファイル、Skeletonファイル、ProxyおよびSkinジオファイルへのパスが含まれます。
Variation Json
Variation Jsonは、1つ以上のエージェントタイプのバリエーションデータを記述します。
各エージェントタイプのすべてのジオメトリ、マテリアル、およびそれらの関連付けを含むdictionaryが格納されています。オプションで、Cloth Setupファイルとルックファイルを含めることもできます。
このファイルは、ホストアプリケーションとの間でエクスポートおよびインポートすることができ、その内容は通常tcAtomsNodeというノードのアトリビュートに格納されます。
Variation Jsonは、ファイル上のディスクに保存することも、APIを使用して実行時に生成することもできます。
Variation Jsonテーブルは、Variation Builder Toolを使用して生成できます。
相互依存関係
Variation jsonには、ビューポートのVariation DrawモードのVariation geoファイル、Variation Material、プレビュー画像、およびマテリアルテクスチャへの参照が含まれています。
Atoms Cache
Atoms Cacheは、1つ以上のエージェントグループのシミュレーションを保存します。Atoms Cacheには、スケルトンデータとメタデータ値のみが含まれ、ジオメトリデータは含まれません。
各キャッシュはパフォーマンスを向上させるために、いくつかのファイルに分割されています。各キャッシュには、開始フレーム、終了フレーム、エージェントIDなどのグローバル情報を含む、パディングおよび.atoms(拡張子)のないファイルがあります。
フレームごとに4つのファイルが作成されます。
- header:現在のフレームのエージェント数、作成されたエージェントの数、削除されたエージェントの数などの基本情報
- frame:エージェントの種類、位置、速度、Bボックス、バリエーションなどのエージェントデータ
- meta:Agent Metadata
- pose:Agent Skeletondata
正確にキャッシュを移植するために、すべてのエージェントタイプファイル(スケルトンとジョイントメタデータを含む)は、キャッシュファイルの隣のサブフォルダに保存されます。キャッシュには、開始フレーム、終了フレーム、エージェントIDなどのグローバル情報を含むヘッダーファイルもあります。
ユーザーは、群衆をレンダリングするためにキャッシュを行うことが必要です。
相互依存関係
なし。
Cloth Cache
Cloth Cacheには、Simulation geoのCloth Deformationデータが格納されています。
各フレームファイルには、シミュレーションエージェントの各Cloth geoのポイント、法線、およびバウンディングボックスのデータと、すべてのCloth geoのグローバルバウンディングボックスが含まれています。
相互依存関係
なし。
Alembics
Alembicは、Xgen Scalp geoおよびカーブとして使用されます。
Alembicは、ユーザーのエージェント、スキンとバリエーションの両方に対して、ジオとしても使用することができます(そのような場合は、Menu Commandでスキンウェイトを保存する必要があります)。
相互依存関係
なし。
Rendering
リファレンスガイドで既に説明したように、Atoms Proxyを使用してホストアプリケーションからレンダリングすることも、私たちのプロシージャルを使用して直接レンダリングすることもできます。
どのような場合でも、レンダリングには常に次のものが必要です。
- Atoms Cache
- Variation Jsonファイル(レンダリング時にその内容を直接プロシージャルに渡すことができます)
必要に応じて以下を提供することができます。
- Cloth Cache
- Groom Cache(Scalp geo)
- Groom Curve Cache