19.5TheECMMSArchitecture 335
different types of interpretations that a surface may have to differing types of
agents, we use an affordance mapper. The affordance mapper determines the type
of interaction that the object allows to the agent. This allows the modelers to la-
bel the surfaces to an objectified agent, and then the animators populate the vari-
ous interactions for the different agent types. For example, a surface may be
jumpable for a small animal, but only serves as a stepping surface for a very large
animal.
19.5TheECMMSArchitecture
Figure 19.6 shows the various components of the framework that forms the
ECMMS. The primary system that facilitates access to the core navigation com-
ponents (e.g., spatial representation and pathfinding) is the navigation manager.
When an agent needs to move through the environment, it calls through the ani-
mal planner into the navigation manager. The navigation manager then generates
a coarse route [Ramsey 2009a]. The pathfinder uses a modified A* algorithm
[Hart et al. 1968]. As noted by Ramsey [2009a], the layout of the navigable spa-
tial representation for the environment may be nonuniform, and the agent’s lo-
comotion model may also need to factor in the agent’s facing and velocity in
order to generate a realistic motion path. The agent utilizes a planner to handle
coarse routing through the environment while factoring in the behavioral con-
straints of nearby agents. The behavioral controller handles the interaction of the
agent with any predefined contexts, as well as implements the behavioral re-
sponse algorithm (see Section 19.9). The behavioral controller also interfaces
with the ECMMS manager. The ECMMS manager deals with the creation of the
query space, handling of collision callbacks, generation of spatial semantics (see
Section 19.7), and animation validation (see Section 19.8).
19.6ModelinganECMMS‐EnabledAgent
Creating an agent for the ECMMS requires three different representations: a
coarse collision representation, a ragdoll representation, and the collision sensor
layout. The coarse collision representation for an agent can be anything from a
simple primitive to a convex hull that is a rough approximation of the agent’s
physique. The coarse representation is used during the physics simulation step to
generate the contact points for the agent’s position. This is just the agent’s rough
position in the world, as we can still perform inverse kinematics to fix up an
agent’s foot positions. The ragdoll representation is a more accurate depiction of
an agent’s physical makeup. Typically, a ragdoll is created by associating rigid