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 provides tools for exporting the necessary files to define your agent types.
From Atoms 4.0, a new status icon is displayed in the item list: red means the agent type could not be loaded, while green means the clip was loaded successfully.
Agent types will show a red icon only for agent types created from version 4 and above.
Agent types will show a red icon only when a path for any of the files provided is invalid. Empty paths are not considered invalid, this is because an agent type might have no skeleton and only geo, or vice versa, or none of them. A default skeleton with one joint is created when no skeleton is provided.
Skeleton
Users can create the agent type skeleton in their favourite 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.
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 feet root, two feet Ik's and two feet tips.
Atoms needs these informations to place your agents correctly on the ground and apply the foot lock during the simulation.
If you are using a USD file, you can select a specific primitive to load using its full path like "C:/my_usd_skeleton.usd@/Rig/Skeleton". If you want to select a specific variation, use this syntax C:/my_usd_skeleton.usd@/Rig/Skeleton{myvariant=SkeletonA} .
Skin Path - Skinned geo
The skinned GEO can be single or multiple meshes skinned to the skeleton. At the export time, all the meshes, skin weights, UV and textures are saved inside the skinned GEO definition file.
If you are using a USD file, you can select a specific primitive to load using its full path like "C:/my_usd_character.usd@/MyCharacter/BodyGeo". If you want to select a specific variant use this syntax C:/my_usd_character.usd@/MyCharacter/BodyGeo{myvariant=variationA}
Note |
---|
All your skinned GEO should live under the same parent, although the hierarchy does not have to be flat. |
Ragdoll Path
The ragdoll path is the file describing the ragdoll setup for this agent type.
Character Path
The character path is the file describing the characterization for this agent type. Characterization files are used for retargeting animations from agents of one agent type onto agents of other agent types.
State machine
You can link every agent type to a state machine. During the agent creation stage, the state machine module uses this name to build the state machine for each agent of this type.
Agent scale
This value is a multiplier on the global scale of the skeleton. The pelvisHeight, footHeight, velocity metadata are affected by this value.
Draw Optimization
Atoms Crowd supports levels of detail (LOD), where the geometry of your agent type will be simplified at run-time inside the viewport.
Users can have 3 levels of detail and choose a mode between "Camera Distance" and "Screen Area" (the geo will be simplified based on the area the agent will use in screen space).
The two values for each LOD are:
- the number of levels of simplification. The iterative algorithm for simplifying the geo will remove 25% of the points at each iteration.
- the camera distance or screen area (depending on the mode) value.
Pelvises
In this section, users can tag Skeleton pelvises directly in the Atoms UI. This means you can now avoid using the skeleton exporter and use directly supported mesh and skeleton files.
SkipIks
In this section, users can tag skip Ik joints as they would do with the skeleton exporter. Skip IK joints instruct Atoms not to use those joints as part of the IK chain when rebuilding the leg.
Legs
In this section, users can tag the leg joints. Each leg has a foot root, foot ik, foot tip and a pole vector.
The pole vector field is automatically populated with the foot root world position as soon as the foot root is selected. The pole vector needs to be in front of the foot root following the direction the skeleton is facing.
Preview
The preview widget displays the skeleton for the selected agent type. At the bottom, you have a widget for changing the joint size.
Joints are coloured depending on their tags:
- Green: pelvis joint
- Cyan: foot root joint
- Red: skip ik joint
- Pink: foot ik joint
- Yellow: foot tip joint
Each pole vector is shown as a white cube connected with a white line to its foot root.
By right-clicking on the viewport, a menu will appear with the following options:
- Draw grid: enable/disable the grid in the viewport display
- Draw Joint Axis: enable/disable the joint axis in the display
- Draw Skin Mesh: enable/disable the skin mesh visibility
- Draw Joint Names: enable/disable the joint name visibility
- Draw Joint World Pos: enable/disable the joint world position visibility, useful for guessing a valid pole vector position
- Lock Camera: enable/disable the locking on the camera
- Reset Camera: resets the translation/rotation of the camera
- Frame Objects: Frame the objects in the viewport.
Navigation Controls:
- Alt + left click and drag: Rotate camera
- Alt + middle click and drag: Pan camera
- Alt + right click and drag: zoom camera