User Tag List

Ergebnis 1 bis 1 von 1

Thema: Arbeiten mit NPCs: Teil 3 - Grundlegende Navigation

  1. #1
    Moderator Avatar von Dmx6
    Registriert seit
    18.06.2010
    Ort
    Zwischen Frankfurt und Darmstadt
    Alter
    26
    Beiträge
    951
    Blog-Einträge
    3
    Renommee-Modifikator
    17

    Arbeiten mit NPCs: Teil 3 - Grundlegende Navigation

    Arbeiten mit NPCs Teil 3 - Grundlegende Navigation

    Willkommen zum dritten Teil der Tutorialreihe “Arbeiten mit NPC´s”. In diesem Tutorial lernt Ihr etwas über die grundlegende Navigation von NPC´s.

    Erstellen wir eine Map,stecken einen Combine Soldier hinein und compilen diese erhalten wir beim ersten Mapstart eine Meldung: Nodegraph out of date. rebuilding…
    Weil wir vor dem Mapstart keine Navigationsdatei erstellt haben eine *.nav, diese erstellt Half-Life 2 nun von selbst.
    Allerdings sind die vom Spiel erstellten Navigations Meshes von mangelhafter Qualität. In Counter-Strike: Source oder der Left 4 Dead Reihe kann man diese Navigations Meshes in nachhinein in die Map integrieren.
    In Half-Life 2 haben wir diverse Entitys um den Bots den weg zu weisen.
    Wir können anders wie in Counter-Strike: Source oder der Left 4 Dead reihe die Navigationsdatei im Editor bearbeiten, während dem compilen wird diese dann Automatisch erstellt.
    Eine fertige Navigationsdatei wird unter dem Verzeichnis „…\maps\graphs“ als .ain Datei gespeichert.

    Info_node:
    Fangen wir mit dem Grundlegendsten Entity der Navigation an: Dem Info_node (Ground node) . Die Position eines Info_nodes wird ins Nodegraph geschrieben.
    Info_nodes sind Wegpunkte für alle art NPC´s zum Angreifen, Fortbewegen, Flüchten und Verstecken.
    Info_nodes geben das Areal, auf einen festen Untergrund an, in dem sich der NPC bewegen kann.
    Wo zwischen den ganzen Info_nodes sich der NPC bewegt ist ihm überlassen und kann nach neuladen der Map variieren.
    Um eine Ground node zu platzieren wählt einfach ein "info_node" Entitite aus und platziert es in der Map.

    Name:  Ground_node.jpg
Hits: 184
Größe:  10,0 KB

    Die info_nodes (auch Ground node genannt) fallen auf den Boden wenn sie in die Navigations Datei geschrieben werden. Deshalb kann man sie, im Editor, bis zu 128 Units überhalb eines festen Untergrunds platzieren.

    Die Ground Nodes müssen bei einem Displacement überhalb des Displacements platziert werden und dürfen nicht in das Displacment hineinragen. Falls doch fallen sie durch das Displacement.

    Im Valve Developer Wiki gibt es eine .vmf die, die info_nodes gut beschreibt. Ich habe Sie euch hier als Anhang hochgeladen: info_node_demo.vmf
    Schaut auch an wo die Info_nodes platziert sind und kompiliert die Map. Ihr werdet sehen das die Combines immer verschieden reagieren und euch sogar auf das obere Plateau über die Treppe verfolgen.
    Probiert es einfach mal aus.

    Klicke auf die Grafik für eine größere Ansicht 

Name:	ground_nodes1.jpg 
Hits:	46 
Größe:	66,3 KB 
ID:	2214
    Je mehr Ground Nodes in der Map platziert sind, desto intelligenter agieren die NPC´s.

    Klicke auf die Grafik für eine größere Ansicht 

Name:	ground_nodes2.PNG 
Hits:	60 
Größe:	198,9 KB 
ID:	2215
    Auch Treppen sind kein Problem für Bots wenn Ground Nodes platziert sind. Die NPC-Clip Textur am Rand verhindert das die Bots an den Seiten der Treppe hinunterfallen.

    Hint Types
    Hint Types ist kein Entity, bevor wir aber weiterarbeiten erkläre ich euch was Hint Types sind:
    Hint Types können den NPC dazu bewegen auf seine Umgebung zu reagieren und so bestimmte Animationen auslösen.
    Allerdings kann man einen NPC nicht zwingen diese Auszulösen. Hint Types sind nur Möglichkeiten die der NPC zur Auswahl hat.

    Ein Beispiel für Hint Types:
    Der Spieler wird von NPC´s angegriffen, vor dem NPC ist ein Autowrack.
    Ist nun vor dem Autowrack ein Entity das ein Hint Type auslöst können wir den NPC hinter dem Autowrack Deckung suchen lassen.

    Eine Liste mit allen verfügbaren Hint Types, und Welche NPC´s welche Hints benutzen können findet ihr hier: http://developer.valvesoftware.com/w...ity_Properties

    Info_node_hint:
    Ein info_node_hint ist eine Ground Node die Hint Types auslösen kann.
    Name:  info_node_hint1.PNG
Hits: 187
Größe:  32,2 KB

    Um eine info_node_hint zu platzieren wählt einfach ein info_node_hint aus und platziert es in der Map.
    In den Einstellungen des Entitys können wir folgendes einstellen:

    Unter Hint können wir einstellen was für ein Hint der NPC ausführen kann. Zum Beispiel bei Crouch Cover Medium duckt sich der NPC.
    Node Fov - Winkel des FOV (Field of views), in dem ein NPC stehen muss, damit diese Hint benutzt werden kann.
    Mit Hint Group können wir bestimmen das nur bestimmten NPC´s diese Hints benutzen. Zum Beispiel nur Combines aber keine Rebellen.
    Welcher NPC zu welcher Hint Group gehört kann in den Optionen des NPC´s unter „Hint Group“ festgelegt werden.
    Mit Minimum & Maximum state könnt ihr die höhe der Stati festlegen die, die NPC´s benutzen können. Bei Minimum steht er standardmäßig auf „Idle“ bei Maximum auf „Combat“.

    Ein NPC ist nicht gezwungen ein Hint Type zu benutzen. Es kann auch passieren das der NPC auf den info_node_hint steht aber den Hint Type nicht benutzt.
    Im Valve Developer Wiki gibt es eine .vmf die, die info_node_hints gut beschreibt. Ich habe Sie euch hier als Anhang hochgeladen: info_hint.vmf

    Schaut auch an wo die Info_node_hints platziert sind und welche Hint Types angegeben sind und kompiliert die Map. Ihr werdet nun bei einigen NPC´s sehen wie sie den Hint Type ausführen. In dieser Map ducken sich die Combine Soldaten bei der großen Mauer ein wenig und bei der kleinen knien sie sich hin, währen sie angreifen.

    Klicke auf die Grafik für eine größere Ansicht 

Name:	info_node_hint2.PNG 
Hits:	44 
Größe:	107,0 KB 
ID:	2221
    Diese Hint Types geben dem NPC´s die Anweisung sich, vor der Mauer, hinzuknien.


    Info_node_climb
    Ist ein Ground Node nur für kletternde NPC´s. Auch können hier Hint Types ausgelöst werden. Nur kletternde NPC´s können diese Nodes benutzen. Die Fast Zombies aus Ravelholm sind solche.
    Name:  info_node_climb1.PNG
Hits: 183
Größe:  114,7 KB
    Info_node_climb können nur von kletternden NPC´s genutzt werden.


    Info_node_air
    Alle bisher aufgelisteten Nodes wahren für NPC´s die auf einen festen Untergrund rennen, laufen, kriechen o.Ä. Ein info_node_air (Air node) ist ein Wegpunkt nur für fliegende NPC´s. Die Position eines Info_nodes wird ins Nodegraph geschrieben. Im Gegensatz zur Ground Node bleib die Air Node in der Luft stecken, fällt also nicht zu boden.
    Name:  Air_node.jpg
Hits: 186
Größe:  11,2 KB

    Eine Einzige Ausnahme bei den NPC´s gibt es:
    Eine Air Node wird auch von Stridern benutzt, obwohl dieser NPC nicht fliegen kann.
    Wahrscheinlich liegt dies an der größe des NPC´s. Alle anderen NPC´s die sich auf festen Untergrund fortbewegen können mit Air Nodes nichts anfangen.

    Info_node_air_hint
    Funktioniert wie ein info_node_hint, nur für fliegende NPC´s. Viele Hint Types sind NPC´s spezifisch. Bei fliegenden NPC´s werden viele Hint Types von nicht fliegenden NPC´s nicht benutzt werden können.
    Name:  info_node_air_hint1.PNG
Hits: 184
Größe:  76,1 KB

    Wie Ihr Freunde zu Feinden machen könnt und umgekehrt lernt Ihr im nächsten Tutorial: Arbeiten mit NPC´s: Teil 4 - Das ai_relationship Entity
    Geändert von DaEngineer (14.02.2016 um 17:48:31 Uhr)

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
[email protected]