Table of contents
AAS File Format.
The settings section defines general parameters for the AI navigation mesh:
bboxes
: Bounding boxes for navigation areas.usePatches
: Determines whether patches (curved surfaces) are considered in navigation.writeBrushMap
: Indicates whether a brush map is written.playerFlood
: A flag to enable flooding from the player’s area.fileExtension
: The extension used for the AAS file, here it is"aas48"
.gravity
: The gravity vector applied in the game world.maxStepHeight
,maxBarrierHeight
,maxWaterJumpHeight
,maxFallHeight
: Parameters defining movement constraints for AI.minFloorCos
: The minimum cosine of the angle for a surface to be considered walkable.tt_*
: Various time-to-travel parameters for different movement actions.
Example:
settings {
bboxes { (-24 -24 0)-(24 24 82) }
usePatches = 0
writeBrushMap = 0
playerFlood = 1
fileExtension = "aas48"
gravity = (0 0 -1050)
maxStepHeight = 16
maxBarrierHeight = 32
maxWaterJumpHeight = 20
maxFallHeight = 64
minFloorCos = 0.6999999881
tt_barrierJump = 100
tt_startCrouching = 100
tt_waterJump = 100
tt_startWalkOffLedge = 100
}
Planes
Planes are defined by their normal vector and a distance from the origin. The format for each plane is:
planes <count> {
<index> ( <normal x> <normal y> <normal z> <distance> )
...
}
Vertices
Vertices are points in 3D space used to define the geometry of the navigation mesh:
vertices <count> {
<index> ( <x> <y> <z> )
...
}
Edges
Edges connect two vertices, defining the boundaries of faces:
edges <count> {
<index> ( <vertex index 1> <vertex index 2> )
...
}
EdgeIndex
The edge index is a list that indexes the edges for quick lookup:
edgeIndex <count> {
<edge index>
...
}
Faces
Faces are polygons (usually triangles) that make up the surfaces of the navigation mesh:
faces <count> {
<index> ( <plane index> <edge index list...> )
...
}
FaceIndex
Indexes the faces, similar to how edgeIndex works for edges:
faceIndex <count> {
<face index>
...
}
Areas
Areas represent navigable spaces within the navigation mesh:
areas <count> {
<index> ( <attribute values...> ) <node index> {
// Area-specific data
}
...
}
Nodes
Nodes are part of the BSP tree structure for organizing the navigation mesh spatially:
nodes <count> {
<index> ( <plane index> <front node index> <back node index> )
...
}
Portals
Portals represent connections between areas, allowing for the passage of AI:
portals <count> {
<index> ( <area 1 index> <area 2 index> <vertices...> )
...
}
PortalIndex
Similar to edgeIndex and faceIndex, portalIndex provides quick lookup for portals:
portalIndex <count> {
<portal index>
...
}
Clusters
Clusters group multiple areas for efficient pathfinding and spatial organization:
clusters <count> {
<index> ( <cluster attributes...> )
...
}
Features
This feature is only avaliable in Quake IV!
Features tells the AI do something specifict in a section of the map (Take Cover/Look Left or Rigth), or tell the AI that sertain part of the map needs some special behavior (Pinch Area, Vantage Point):
features <count> {
<index> ( <feature flags> <size_x> <size_y> <size_z> <x> <y> <z> )
...
}