Pfadfindung für eine Arena-basierte Karte in 3D mit NavMesh

7

Ich habe eine 3D-Arenakarte (betrachten Sie eine kleine Insel, die auf allen Seiten von Wasser umgeben ist) für ein Multiplayer-Panzerkampfspiel. Die beweglichen Bereiche werden mit einem vom Arena-Designer erstellten Navigationsnetz markiert.

Meine Frage ist, was wäre der beste Weg für die Navigation in einer solchen Umgebung? Besonders in Anbetracht des Falls, dass sich in der Mitte der Arena eine Brücke befindet und Sie darunter oder sogar darüber gehen könnten?

Geben Sie hier die Bildbeschreibung ein

Angenommen, der Feind steht oben auf der Brücke und meine KI befindet sich an einem der Ränder der Karte? Wie kann es wissen, ob sich der Feind über oder unter der Brücke befindet und wie kann er bis dahin navigieren?

Alles Gute zum Geburtstag
quelle
Stimmt etwas nicht, wenn Sie das Navigationssystem bitten, einen Pfad zwischen den beiden Punkten auf dem Navigationsnetz zu generieren?
Mokosha
1
Ich suche besonders nach dem Fall, wenn ich an einem Punkt bin, an dem wir uns sowohl unter einer Brücke als auch über der Brücke bewegen können.
Happybirthday
Unter der Brücke befindet sich nicht an der gleichen Stelle wie über der Brücke. Ich sehe hier kein Problem. Entweder sind sie einfach irgendwo auf dem Navigationsnetz, dies ist schließlich eine 3D-Welt , mit Über und Unter und all dem.
Patrick Hughes
6
Ein Navigationsnetz ist nur ein Bündel verbundener Dreiecke (das Netz), die angeben, wohin Sie gehen können. In 3D können Sie einige dieser Dreiecke unten im Fluss und weitere dieser Dreiecke oben auf der Brücke verbinden. Es kann Löcher geben, in denen niemand gehen kann, getrennte Maschen, zu denen man fliegen oder springen müsste (eine komplexere Diskussion), und Brücken. Der Pfadfindungscode, der ein Navmesh verwendet, kümmert sich nur um das Dreieck, das mit den anderen Dreiecken verbunden ist, und erstellt Schritt für Schritt einen Pfad.
Patrick Hughes
2
ohh ohk! groß! Ich habe bis jetzt in Form einer Matrixdarstellung der gesamten Karte gedacht. Ich war also verwirrt, wie ich zwei Punkte (oben und unten) an einer einzelnen Zelle in der Matrix markieren kann. Jetzt verstehe ich es eher wie ein Diagramm mit miteinander verbundenen Nachbarknoten. Vielen Dank @PatrickHughes
Happybirthday

Antworten:

1

Nav-Mesh-Generierung, Navigation und Agentensteuerung bieten viel. Es ist jedoch eines dieser Themen, bei denen Sie entscheiden, "wie tief das Kaninchenloch geht". Es ist ein interessantes Thema. Je mehr Sie daraus lernen, desto einfacher wird es für Sie, es zu implementieren / zu hacken.

Ich fand diese Ressourcen hilfreich und könnte Sie auf den richtigen Weg bringen:

https://en.wikipedia.org/wiki/Johnson%27s_algorithm - Überprüfen Sie alle Paare der kürzesten Pfade

http://www.red3d.com/cwr/steer/ - Lösungen und Konzepte für intelligente Navigationsagenten.

http://www.ai-blog.net/archives/000152.html - Beispiele und Anwendungen für Navigationsnetze und Lenkung.

Simon Jordan
quelle