Come funziona la ricerca del percorso della mesh di navigazione?


27

Voglio capire come funzionano le reti navali, come implementarle e perché è meglio di altri tipi di sistemi di tracciamento.


Questo è emerso nel corso delle mie vagabondaggio su Internet di mattina: aigamedev.com/open/reviews/alienswarm-node-graph Potrebbe valere la pena di leggere :-)
coderanger

Questo tutorial può essere utile per gli utenti Unity che si imbattono in questo post: binpress.com/tutorial/unity3d-ai-navmesh-navigation/119
MichaelHouse

Risposte:


6

È lo stesso del waypoint di riferimento, solo al posto dei waypoint hai poligoni di way e puoi dedurre alcune cose sulla navigazione da esso:

  • i poligoni sono aree in cui le entità possono tranquillamente camminare
    • altre aree probabilmente non dovrebbero essere prese in considerazione
    • i punti di passaggio devono fare un salto di fede nello spazio tra loro; ricordi gli NPC bloccati nei muri? Era in luoghi in cui due waypoint non erano direttamente collegati.
  • Esistono potenzialmente meno nodi (poiché i poligoni sono più grandi)
    • Pertanto è molto probabilmente più veloce
    • Pertanto ha requisiti di memoria potenzialmente più piccoli
  • È più realistico (perché l'area del poligono contiene in teoria una quantità infinita di punti)

2

Generalmente vengono utilizzati con una sorta di algoritmo A * avanzato (tiene conto dei collegamenti jump o fly per l'individuazione di percorsi 3D). In questo modo non è in realtà un sistema diverso rispetto a qualsiasi altra cosa, è più un modo di generare una normale rete di pathfinding direttamente da un ambiente o terreno ad alto poli (bene, relativamente parlando). Per qualsiasi motivo qui li chiamiamo beacon, ma l'idea è la stessa, una sorta di processo automatizzato viene eseguito su ogni mappa e produce un semplice set di connessioni che possono far funzionare A * su di esse in tempi ragionevoli. Se provassi a individuare i dati grezzi sottostanti, sarebbe troppo lento per un gioco a causa della densità della mesh.


Questo non è un grafico waypoint se non fatto su una mesh semplificata? Pensavo che le navmeshes ti consentissero di eseguire il pathing sul poligono.
Fuoco

Il grafico semplificato consente di eseguire percorsi a lunga distanza, mentre la breve distanza viene generalmente gestita in un altro modo. Sembra che il sistema di Valve utilizzi i dati mesh per entrambi, solo in modi diversi (instradamento dei supernodi rispetto ai vincoli locali).
coderanger,

Un semplice set di connessioni non è una maglia, vero? Ho pensato che fosse chiamato navmesh perché fai il pathing sui poligoni.
Spara il

Non penso che la navigazione locale rispetto a quella globale sia rilevante qui.
Fuoco

1
Una serie di poligoni vicini è ancora un grafico proprio come una serie di waypoint e puoi fare A * su di essa allo stesso modo. L'unica differenza è che una volta che sai quali poligoni attraverserai, traccerai le linee in modo diverso.
coderanger,

0

Ci sono molti modi per farlo. Un * e tale è una buona opzione, ma manca di documentazione. Potresti fare qualcosa come posizionare i nodi in modo quasi casuale attorno alla mappa e verificare quali nodi possono vedersi e costruire una piccola rete di nodi. Non il più ottimale ma facile da capire.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.