GMod Navmesh und AI-Nodes: Unterschied und Einrichtung
Navmesh oder AI-Nodes? Wann deine GMod-Map eine .nav-Datei für Nextbots braucht, wann info_node für klassische NPCs und wie du beides auslieferst.
Navmesh und AI-Nodes sind zwei getrennte Navigationssysteme der Source Engine. Nextbots bewegen sich über das Navmesh (Datei .nav), klassische NPCs wie npc_combine_s oder npc_zombie über einen Node-Graph aus info_node-Entities (Datei .ain). Soll deine Map mit beiden NPC-Arten funktionieren, braucht sie beides.
Navmesh und AI-Nodes im Vergleich
| Merkmal | Navmesh | AI-Nodes |
|---|---|---|
| Datei | maps/<mapname>.nav | maps/graphs/<mapname>.ain |
| Genutzt von | Nextbots, also NPCs auf Basis von base_nextbot | klassische NPCs wie npc_citizen, npc_combine_s, npc_zombie |
| Aufbau | Flächen, die den begehbaren Boden abdecken | einzelne Punkte, die die Engine miteinander verbindet |
| Entsteht | im Spiel über nav_generate | in Hammer über platzierte info_node |
| Nachbearbeitung | im Spiel mit nav_edit | in Hammer, danach neu kompilieren |
Die beiden Systeme wissen nichts voneinander. Ein Nextbot kann mit einem perfekten Node-Graph nichts anfangen, und ein npc_combine_s ignoriert das Navmesh vollständig.
Wann du was brauchst
- Nur Spieler, keine NPCs: Technisch ist keines der beiden Systeme nötig. Viele Server setzen später trotzdem NPC-Addons ein, deshalb lohnt sich die Vorbereitung.
- Kämpfe mit Half-Life-2-NPCs: Du brauchst AI-Nodes. Ohne sie können die NPCs zielen, schießen und kurze Strecken direkt laufen, aber keinen Weg um Hindernisse planen.
- Nextbot-Addons: Du brauchst ein Navmesh. Nextbots berechnen den Weg zu ihrem Ziel darüber.
- Maps zum Veröffentlichen oder Verkaufen: Liefere beides mit. Käufer wissen selten vorher, welche Addons sie später nutzen, und fehlende Navigation fällt erst im Betrieb auf.
AI-Nodes in Hammer setzen
- Platziere
info_nodeauf begehbarem Boden überall dort, wo NPCs laufen sollen: in Fluren, vor und hinter Türen, an Ecken, am oberen und unteren Ende von Treppen. - Achte auf Sichtverbindung. Die Engine verbindet zwei Nodes nur, wenn der Weg dazwischen frei und begehbar ist und sie nicht zu weit auseinanderliegen; das Valve-Wiki nennt 720 Units als Obergrenze. An engen Stellen setzt du die Nodes dichter, auf offenen Flächen reichen größere Abstände.
- Für fliegende NPCs gibt es
info_node_air. Mitinfo_node_hintmarkierst du besondere Stellen, zum Beispiel Deckung. - Kompiliere die Map und lade sie im Spiel. Beim ersten Laden baut die Engine den Node-Graph und speichert ihn als
.ainim Ordnermaps/graphs. - Prüfe das Ergebnis mit aktivem
sv_cheats 1: Der Konsolenbefehlai_nodesblendet die Nodes ein,ai_show_connectdie Verbindungen dazwischen, sodass du Lücken im Netz siehst.
Setze Nodes gezielt und nicht flächendeckend im Raster. Die Engine verwaltet nur eine begrenzte Zahl an Nodes, und ein überfülltes Netz verlängert das Bauen des Graphen. Mehr zu solchen Obergrenzen steht im Artikel über Map-Limits der Source Engine.
Navmesh erzeugen und nachbearbeiten
Das Navmesh entsteht nicht in Hammer, sondern im laufenden Spiel.
- Lade die fertig kompilierte Map im Einzelspieler und aktiviere
sv_cheats 1. - Gib
nav_generateein. Die Engine tastet den begehbaren Boden ausgehend von einem Spawnpunkt ab und lädt die Map danach neu. Auf großen Maps dauert das spürbar lange. - Bereiche, die vom Spawn aus nicht zu Fuß erreichbar sind, bleiben leer. Stelle dich in einen solchen Bereich, ziele auf den Boden, gib
nav_mark_walkableein und startenav_generateerneut. - Mit
nav_edit 1blendest du das Mesh ein und kannst es bearbeiten. Es gibt eigene Befehle zum Löschen, Teilen, Zusammenfügen und Verbinden von Flächen, etwanav_delete,nav_split,nav_mergeundnav_connect. - Sichere das Ergebnis mit
nav_saveund beende den Bearbeitungsmodus mitnav_edit 0. Die Datei liegt danach als<mapname>.navim Ordnermaps.
Das automatisch erzeugte Mesh ist selten fehlerfrei. Kontrolliere vor allem Türen, Treppen, schmale Durchgänge, Dächer und Stellen, an denen Flächen in Wände oder ins Leere ragen.
Mit der Map ausliefern
Keine der beiden Dateien entsteht beim Kompilieren, und keine landet von selbst in der BSP. Du musst beide ausdrücklich mitgeben:
maps/<mapname>.navmaps/graphs/<mapname>.ain
Der Dateiname muss exakt zum Namen der BSP passen. Benennst du die Map um, musst du beide Dateien ebenfalls umbenennen.
Wichtig ist die Reihenfolge. Die Engine baut den Node-Graph neu, wenn die .ain älter ist als die BSP oder für eine andere Map-Version erzeugt wurde. Wenn du die Map neu kompilierst oder die BSP nachträglich veränderst, etwa beim Packen von Custom Content, lädst du sie danach einmal im Spiel, lässt den Graph neu bauen und lieferst diese frische .ain aus. Das Navmesh musst du nur anpassen, wenn sich die begehbare Geometrie geändert hat.
Wie Dateien auf Server und Clients gelangen, erklärt der Artikel zu FastDL und Workshop. Der Map Scanner prüft Struktur, Entities und Pakfile einer BSP. Die .nav und die .ain sind eigene Dateien und gehören deshalb auf deine eigene Checkliste vor dem Release.
Typische Probleme
| Symptom | Ursache | Lösung |
|---|---|---|
| Klassische NPCs bleiben stehen und schießen nur | Keine oder unverbundene info_node | Nodes setzen, mit ai_nodes und ai_show_connect kontrollieren |
| Kein NPC reagiert, auch nicht auf Beschuss | ai_disabled 1 ist aktiv, in der Sandbox die Option „Disable Thinking“ | Option ausschalten |
| Nextbot steht still oder läuft gegen Wände | Keine .nav vorhanden oder der Bereich ist nicht abgedeckt | nav_generate, bei Bedarf vorher nav_mark_walkable |
| Nextbot bleibt an Türen oder Treppen hängen | Fehler im automatisch erzeugten Mesh | Mit nav_edit 1 nacharbeiten und nav_save |
| „Node Graph out of Date. Rebuilding...“ bei jedem Mapstart | Die Engine hält die .ain für veraltet, oder sie fehlt | Map einmal laden, neue .ain ausliefern, Dateinamen prüfen |
Die Meldung „Node Graph out of Date“ ist für sich genommen kein Fehler. Die Engine baut den Graph dann neu, was Ladezeit kostet. Laut Valve-Wiki kann das auch bei einer frisch heruntergeladenen .ain einmal passieren, weil das Spiel sie für veraltet hält. Zum Problem wird die Meldung erst, wenn sie bei jedem Start erscheint.
Häufige Fragen
Braucht jede GMod-Map ein Navmesh?
Nein. Ein Navmesh ist nur nötig, wenn auf der Map Nextbots laufen sollen. Für Maps, die du veröffentlichst, ist es trotzdem sinnvoll, weil viele Server später Nextbot-Addons installieren.
Kann ich das Navmesh in Hammer erstellen?
Nein. Das Navmesh wird im Spiel mit nav_generate berechnet und mit nav_edit nachbearbeitet. In Hammer platzierst du nur die info_node-Entities für den Node-Graph.
Warum erscheint „Node Graph out of Date“ bei jedem Mapstart?
Die Engine hält die gespeicherte .ain für veraltet. Das passiert zum Beispiel, wenn die BSP nach dem Erzeugen des Graphen noch einmal verändert wurde. Lade die endgültige BSP einmal im Spiel und liefere die dabei neu erzeugte Datei aus.
Funktionieren Nextbots auch mit AI-Nodes?
Nein. Nextbots nutzen ausschließlich das Navmesh, klassische NPCs ausschließlich den Node-Graph. Eine Map, die beide NPC-Arten unterstützen soll, braucht beide Dateien.