Unity - Was ist ein NavMesh?

in games •  5 years ago 


Was ist ein NavMesh?

Ein NavMesh in Unity legt für die AI fest, in welchen Levelbereichen sie sich bewegen kann. Es gibt beispielsweise Bereiche, in welche sie sich nicht hineinbegibt. Bereiche, die beispielsweise blau makiert sind, werden von der AI aufgesucht.

Bake0

Über Window-->AI-->Navigation können Wege der AI eingegrenz werden.

Die Bake Settings

Bei diesen handelt es sich um die Einstellungen, die im Bezug auf die AI vorgenommen werden könnnen.

Agent Radius: Gibt den Radius an, den ein NavMesh Agent abdecken kann bzw. den horizontalen bereich im Level. Der Level muss horizontal für die AI passierbar sein.

Agent Height: Beschreibt die Höhe der AI bzw. in welchem vertikalen Raum sich die AI bewegen kann und ob sie sich über schmale oder hohe Bereiche hinweg bewegen kann.

Max Slope: Bestimmt, wie Steil die Steigung ist, welche die AI durchqueren kann. NavMesh kann beispielsweise beim richtigen Winkel auch Hänge abdecken, die z. B. 45° steigen, aber nicht darüber, wenn es nicht eingestellt ist.

Step Height: Bestimmt, wie hoch der Schritt ist, den die KI durchlaufen kann. Wird der Schritt auf 1 gesetzt bedeutet es, dass NavMesh-Bereiche verbunden werden, die bis zu 1m Höhe haben, aber nicht höher.

Generated Off Mesh Links: Hierbei handelt es sich um Links, die zwischen NavMesh-Abschnitten erstelltn werden, wenn das NavMesh erstellt wird.

Drop Height: Dieser Punkt besitzt Relevanz, wenn die KI im NavMesh-Bereich von oben nach unten springen kann, sofern sie getrennt sind. Das System erstellt Links dazwischen und die maximale Sprunghöhe wird festgelegt.

Jump Distance: Die Sprungdistanz bezieht sich auf den horizontalen Sprung der KI, wenn zwei NavMesh-Bereiche getrennt sind. Zwischen diesen Bereichen werden Links erstellt. Die Sprungdistanz wird eingestellt und Links zwischen den Bereichen werden erstellt.

Ist beispielsweise der Agentenradius auf 0,5m fesgelegt und die Agentenhöhe auf 2m. wird der Bereich mit einem roten Dreieck markiert, der zu schmal und zu niedrig für die NavMesh-Navigation ist. Nicht blau markierte Bereiche werden von der AI nicht abgedeckt.

Die anderen Tabs

Agent Tab: Hier findest du alle Informationen über die Agents, die über das NavMesh navigiert werden. Es ist sinnvoll hier hineinzuschauen, um die Variablen einzusehen, welche die KI bisher hat.

Areas Tab: Der Areas Tab hilft, neue Areabereiche festzulegen, welche die AI passieren oder nicht passieren kann. Es können Pfade bestimmt werden, die der Agent einschlägt, wenn er eine Auswahl zwischen mehreren Bereichen treffen muss. Die Kosten für jeden Bereich, helfen beim Bestimmen des Pfades. Je höher die Kosten, desto geringer die Wahrscheinlichkeit, dass ein Agent diesen Bereich durchquert.

Bake Tab - Erweiterte Einstellungen:

Advanced: Hier finden sich die erweiterten Einstellungen für NavMesh

Manual Voxel Size: Mit dem Umschalter kann die Voxel-Größe beeinflusst werden.

Voxel Size: Legt fest, wie genau der Navmesh-Prozess auf die Geormetrie der Levelebene funktioniert.

Min Region Area: Gibt die Mindesfläche an, die erforderlich ist, damit eine NavMesh-Region erstellt werden kann.

Height Mesh: Hilft bei der genauen Platzierung des NavMesh für die NavAgents, auf die eingeschränkte Geormetrie, wie z. B. bei Treppen

Objects Tab:

Um zu bestimmen, welcher Bereich für ein bestimmtes Objekt gilt, ist der Objekttab relevant. Du kannnst bestimmten Bereichen beispielsweise eine spezielle Area zuweisen.

Wenn die KI dein Asset wie z. B. eine Wand behandelt, aktiviere rechts oben beim Asset Static.

Static

Anschließend öffne das NavMesh und gehe auf BakeMesh. Dadurch umrundet die AI das statische Objekt.

 

 



Posted from my blog with SteemPress : https://games-und-lyrik.de/unity-was-ist-ein-navmesh/
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!