The walkmesh of an area covers the surface of the area, indicating where a character can actually walk. Obstacles—such as trees, buildings, rocks, and placeables—create "holes" in this walkmesh where characters cannot travel.
Static placeables create holes in this walkmesh when the area is being loaded (i.e. only needs to be done once per area load), whereas non-static placeables dynamically affect the walkmesh every time a character comes close enough to see them (i.e. done fairly often in case the obstacles disappear).
Builders notes[]
- The walkmesh is really a 2.5D height mesh. It covers the whole area, but it can never be at two different heights at the same point. So it is impossible to make a bridge with a walkable path under it. The same goes for blocking roof and other edges that lean over the walkable surface.
- Its primary purpose is to determine where a creature can walk and where it cannot. However, it also determines which sounds a creature makes when it moves over the surface, if there should be grass growing on the surface, and if two creatures can see each other (line of sight). It will also add visual effects on some surfaces, such as water and puddles, when something is moving through it.
- There isn't much a builder can do with the walkmesh, since it comes with the content being used. However, one should avoid placing placeables across the gridlines on a tile since it can confuse pathfinding. One should also be aware that really large creatures cannot fit into small passages. For example, dragons cannot move through small doors. One should also check for walkmesh features when deciding which community tileset hakpaks to download. Some have walkmeshes for water, which gives the option of having fish, drowning, and swimming; others have walkmeshes for balconies and roofs, which can be useful for rogues. Other aspects to consider are the scale for interior/exterior and matching placement on doors and windows.
- The game does not like big placeables, and they tend to create problems. Large things are meant to be tiles not placeables.
- There is only one walkmesh, and at the current time there is no support for flying or swimming types of movement. Neither can ethereal creatures walk through walls. (One can of course add walkmeshes in water, air, and walls, but then every creature would be able to move there by default. Triggers and scripts would be needed to avoid that kind of behavior.)
Custom content notes[]
There are three types of walkmesh.
- .wok: This is the tile walkmesh. It supports all types of terrains. In some special cases it can be used on placeables as well, but the placeable must be static.
- .pwk: This is the placeable walkmesh, which will change the tile walkmesh. It only supports non-walkable and blocking terrain, so a placeable cannot change the height at which a creature will walk or make an already unwalkable area walkable. (To do that would require a .wok walkmesh on the placeable.)
- .dwk: This is the door walkmesh. It defines where a creature can walk, based on the door's animation state. It only supports non-walkable and blocking terrain.
The different surface materials are listed in surfacemat.2da, and the footstep sounds in footstepsounds.2da.
More information is available in the tileset construction tutorial from BioWare.