Entity Type

An Entity Type defines a type of characters in the crowd (e.g. archer, swordsman…). Entities of the same type share the same skeleton hierarchy and the same behaviors. Entity Type must be created before placing and simulating Entities in the scene.
 
Notice that sharing the same Character file, does not necessarily means that all the entities of a type will look the same. Skeletons can be scaled in various ways, and assets can be added or removed on some people to add some diversity.
 
Notice that sharing the same Behavior Container, does not necessarily mean that all the Entities of an Entity Type will move in the same way. Operators and Triggers can be configured in various ways to add some diversity.
 
The attributes of an Entity Type are not keyable. Once an Entity Type has been initialized, if attribute values are changed they will not be taken into account until the next reinitialization of the node (start frame of the manager).

Creation

  • Golaem Shelf: 
  • Golaem Menu: CrowdEntityType Node
  • MEL command: glmCrowdEntityTypeNodeCmd;

Configuration

Entity Type Id Unique id of the relative Entity Type

Animation Attributes

Character File (.gcha file)

File describing the Character. It can be made using the Character Maker and contains information about the Animation Skeleton, Dynamics Shapes and Geometry... Open the Character File in the Character Maker by clicking on

Scale Random If checked, the Entity will have a random scale between Scale Random Min and Scale Random Max. 
Scale Random Min The lower scale bound
Scale Random Max The upper scale bound
Scalepp Name If Scale Random is unchecked the Entity scale value will be the value of this ppAttribute name.

For more explanation about how to use ppAttributes, see ppAttributes Handling.


Illustration of the use of scaled (0.5 to 1.0) Entity Types during the placement step (see the Population Tool

Entity Type Attributes

In Behavior Container

Behavior Container attached to this Entity Type. A Behavior Container is automatically created with an Entity Type. Open the mapped Behavior Container in the Behavior Editor by clicking on

Radiuspp Name / Radius Name of the PPAttribute containing the Radius value. If empty or invalid, use Radius Attribute. For Navigation purposes an Entity is represented as a bounding cylinder, the Radius parameter represents this cylinder radius. An Entity will not be able to navigate in spaces smaller than this radius.
Personal Spacepp Name / Personal Space Name of the PPAttribute containing the Personal Space value. If empty or invalid, use Personal Space Attribute. The Personal Space value represents the physical space surrounding an Entity, which will lead to that Entity moving to avoid another Entity entering its Personal Space. The Personal Space affects how close the members of a group will try to get to each other if there is no Formation behavior.
Heightpp Name Name of the ppAttribute containing the Height value. If empty, uses Height Attribute. For Navigation purposes an Entity is represented as a bounding cylinder, the Height parameter represents this cylinder height. An Entity will not be able to navigate in spaces smaller than this height.
Radius To Height Ratio Ratio with which we should multiply the Entity radius with to define the height of the Entity
For other Navigation attributes see the Navigation Behavior.
Override Detection Shape If not checked, radius and height will be used to define the Detection Shape of the entity used in the perception system (see the Sensor Locator and Activate Sensor Behavior). The detection shape defines the volume of the entity - which is a box - in the perception system.
Detection Shape (W/H/D) Detection shape box size (width / height / depth or x, y, z)
Detection Shape Offset The vector by which to offset the detection shape box relative to the entity position.
In Dynamic Attributes The Dynamic Attributes associated with the Entity Type. See Entity Type Attribute

For more explanation about how to use ppAttributes, see ppAttributes Handling.

Display Attributes

See here.

Rendering Attributes

Rendering Attributes
Rendering Types List of the Rendering Types assigned to this Entity Type and their weights (to be able to assign Rendering Types, it is required to create some in the Geometry part of the Character File).
Rendering Type PPName Name of the float per-particle field of the relative particle system, in which the Rendering Type Id of the Entities is stored. If the field does not exist or if its value is negative, the global Rendering Types list and weights will be used (see above).

For more explanation about how to use ppAttributes, see ppAttributes Handling.

Advanced Attributes

Enable Animation Blind Data Allows to replay specific animation blind data on the entity type. See here for more information about it.
Pelvis Height Ratio The Root Height is a value corresponding to the height delta between the pelvis and the lowest bone extremity. A value of 0 will make the skeleton pelvis at the same height of the particle. 
Master / Slave Level When using MasterSlave behavior, the master EntityType should be updated before the slave, so that master has been updated when slaves binds to it. To achieve this, assign lower Master/Slave Level to a master EntityType, and its update will occur sooner in the update process. To make it short, in simple cases, you can assign 0 to the master EntityType, and 1 the the slave EntityType.
Shader Color Attribute Names The name of the shader output color. This name is used to retrieve a diffuse color or a diffuse texture for the "Render Previz" mode.If no shader output plug color is provided, a list of standard names is used. This list contains: diffuseColor, diffuse, diffuseTex, color, tipColor, waterColor, selectedColor, viewportColor

Relation with the Crowd Manager

When an Entity Type is created, it is automatically registered in the Crowd Manager and, thus, is available to every Golaem node in the simulation
 
Sometimes you want to keep a base file with all your Entity Types, but only use some of them in your current scene. In these cases, it is possible to unregister an Entity Type so that it will not be used in the simulation. Alll that you have to do is to unmap it from the Crowd Manager.