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. |
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.
注意 |
---|
All your skinned GEO should live under the same parent, although the hierarchy does not have to be flat. |
State machine
For every agent type you can link a state machine. During the agent creation stage, the state machine module uses this name to build the linked state machine.
Agent scale
This value is a multiplier on the global scale of the skeleton. The pelvisHeight, footHeight, velocity metadatas are affected by this value.
Retargeting
The retargeting section can have a single or multiple retargeting agent types. This agent type is mapped to the given agent types with a retargeting method and an optional config map file containing a map of joint names.
The retargeting method is used for evaluating a scale factor used while animation clips are being read:
- Pelvis To Feet: the factor is calculated as the ratio of the Y values of the average distances between the main pelvis and foot tips.
- Bounding Box: the factor is calculated as the ratio of the Y values of the skeleton bounding boxes.
- User Factor: provided by the user.
Draw Optimization
Atoms Crowd supports automatic level of detail (LOD) where the geometry of your agent type will be simplified at run-time.
Users can have 3 level of details 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 geos will remove 25% of the points at each iteration.
- the camera distance or screen area (depending on the mode) value.
Preview
The preview widget displays the animation skeleton for the selected clipagent type. At the bottom you have controls for playing/scrubbing the animation and a control for changing the joint size.
Joints are colored depending on their tags:
- Green: pelvis joint
- Cyan: foot root joint
- Red: skip ik joint
- Pink: foot ik joint
- Yellow: foot tip joint
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
- Lock Camera: enable/disable the locking on the camera
- Reset Camera: resets the translation/rotation of the camera
Navigation Controls:
- Alt + left click and drag: Rotate camera
- Alt + middle click and drag: Pan camera
- Alt + right click and drag: zoom camera