Jump to content
Unity Insider Forum

Navmesh Agents


turritom

Recommended Posts

Ja ich werde wohl mit Unity 5.6 auf Navmehs umsteigen ..habe gestern mal nen Testlauf gemacht und bin einigermaßen zufrieden ..jetzt mal ne Frage habe das Gefühl das die Agents sich nicht unbedingt sehen ..oder irre ich mich da ? ich habe aber auch nen besonderes Movement system ..da bei mir die Gegner nicht einfach den Pfad ablaufen und demensprechend in die Richtung des Pfades schauen ..sondern sie fixieren den Player und laufen den Pfad ab und benutzen dabei dann eben auch automatisch seitwärts laufen .. kennt sich jemand damit aus ob die Navmesh agents sich gegenseitig wahrnehmen oder ob es da nen extra script für gibt?

also so wie ich das gelesen habe nehmen die Agents sich untereinander auch als Hindernisse wahr ..allerdings funktioniert das nicht so wie ich die dinger Bewege ..oh man naja muss ich heute abend nochmal testen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sie nehmen sich gegenseitig war (man kann hier auch noch einiges mit Prioritäten steuern, ist aber ist auch begrenzt), ABER sie haben wohl nichts dagegen, wenn sie auch mal leicht kollidieren oder sie sich überscheiden (wenn es eng wird). Ich habe auch schon unzählige Tests damit durchgeführt. Unity verwendet Reciprocal Velocity Obstacles (RVO). Die normalen Navmesh-Agenten verwenden lokale Obstacle Avoidance, was vermutlich die Probleme erklärt, wenn sich die Agenten an einem bestimmten Punkt versammeln müssen und es eng wird, denn hier wird diese Methode wohl immer schlechter. Wie gesagt gibt es wohl vor allem dann vermehrt Probleme, wenn sie "gezwungen" werden sich im selben Bereich aufzuhalten, d.h. wenn sie beispielsweise alle den Spieler als Target haben und sie sich um diesen versammeln müssen, je mehr es sind desto grösser werden die Probleme. Nicht nur das sie sich gegenseitig überlagern, es kommt dann auch zu einem recht heftigen Flimmern, da sich die Positionen der Agenten wohl zu schnell anpassen.

Im Gegensatz dazu verwenden die Navmesh Obstacles auch die globale Obstacle Avoidance. Diese zwingen einen Agenten nun mehr oder weniger zu einem Ausweichen. Man kann nun die Vor- und Nachteile beider Systeme verbinden, indem man den Navmesh Agenten zusätzlich Navmesh Obstacles verpasst und diese aktiv werden lässt, sobald die Navmesh Agenten quasi stationär werden (sich nicht mehr bewegen). Damit weichen die Agenten sich nun wieder "fast" vollständig aus. Verzögert man zudem noch ein wenig die Positionen der Transforms von den Positionen der Agenten, so kann man auch das Flimmern der Agenten in den Griff bekommen. Wenn es dich interessiert, ich habe dazu ein Beispielprojekt, welches diese beiden Sachen kombiniert. Somit versammeln sich die Agenten nun wieder "ordentlich" um einen Spieler und klumpen nicht an einer Seite, überscheiden sich oder fangen an zu flimmern.

PS:
Das seitliche Drehen der Agenten ist kein Problem. Man kann die Rotation der Agenten in Pfadrichtung ausschalten und dann die Rotation selbst bestimmen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Zero cool .. ich hab schon alles soweit durch :P ich benutze zum bewegen komplett RootMotion über den Animator ..somit können die Gegner den Spieler fixieren und gleichzeitig Hindernisse umgehen ..funktioniert wunderbar ..die animation blenden seamless über einen blendtree :P

danke für deine Hilfe

siehe video

 

mein Problem war nur eine Funktion zum berechnen des Winkels von dem Gegner zum Pfad .. die hatte einen Fehler ..jetzt geht alles :P

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie in deinem Video zu sehen hatte ich nicht das Problem, daß die Agenten dem Spieler folgen oder sich korrekt drehen, sondern die Probleme mit den Navmesh-Agenten begannen, nachdem der Spieler stehenblieb und die Agenten sinnvoll den Spieler einkreisen sollten. Ohne Modifikationen klumpen sie an einer Seite zusammen und laufen sich teilweise gegenseitig über den Haufen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...