Back
27.08.2024
#One
#Two
#Three

Coming Soon

Techstack: VScode, Upscale, Lazy Nezumi

Here is a description

Behaviour Trees (BTs) sind eine Methode zur Implementierung von künstlicher Intelligenz (KI) in Videospielen, die es ermöglicht, komplexe Verhaltensweisen auf eine strukturierte und leicht verständliche Weise zu modellieren. Sie bestehen aus einer hierarchischen Anordnung von Knoten, die unterschiedliche Arten von Verhaltenslogiken repräsentieren. Hier ist eine detaillierte Erklärung, wie sie funktionieren:

Grundlegende Konzepte Knotenarten: In einem Behaviour Tree gibt es verschiedene Knotenarten, jede mit ihrer eigenen Funktion: Aktionsknoten: Führen konkrete Aktionen aus (z.B. bewegen, angreifen, warten). Bedienknoten: Evaluieren Bedingungen oder Zustände (z.B. „Ist der Spieler in Sichtweite?“). Composite-Knoten: Kombinieren mehrere Knoten und definieren die Logik ihrer Ausführung (z.B. Sequenzen, Selektoren). Decorator-Knoten: Modifizieren das Verhalten anderer Knoten (z.B. Wiederholen einer Aktion, bis sie erfolgreich ist). Composite-Knotenarten: Sequenz (Sequence): Führen ihre Kinder in Reihenfolge aus. Wenn ein Kind fehlschlägt, schlägt die gesamte Sequenz fehl. Selektor (Selector): Führen ihre Kinder in Reihenfolge aus, bis eines erfolgreich ist. Wenn ein Kind erfolgreich ist, ist der gesamte Selektor erfolgreich. Decorator-Knoten: Diese Knoten können das Verhalten von Kindknoten ändern, indem sie zum Beispiel wiederholen, negieren oder zusätzliche Bedingungen hinzufügen. Diagramm eines Behaviour trees in Unreal Engine 5

Ausführung und Steuerung Die Ausführung eines Behaviour Trees beginnt am Wurzelknoten und folgt einem Traversal-Mechanismus:

Tick: Jeder Knoten im Baum wird regelmäßig „getickt“ (d.h., die Logik wird aktualisiert). Ein Tick signalisiert dem Knoten, dass er seine Operationen ausführen soll. Status: Jeder Knoten kann nach einem Tick einen von drei Zuständen zurückgeben: Success: Die Operation war erfolgreich. Failure: Die Operation ist fehlgeschlagen. Running: Die Operation läuft noch und ist nicht abgeschlossen. Beispiel eines Behaviour Trees Betrachten wir ein Beispiel, in dem ein NPC (Non-Player Character) verschiedene Verhaltensweisen ausführt:

Sequenz: Die Sequenzknoten könnten folgende Aktionen haben: Bedingung: Ist der Spieler in Sichtweite? Aktion: Bewege dich zum Spieler Aktion: Angreifen Selektor: Der Selektorknoten könnte folgendes Verhalten definieren: Sequenz: Bedingung: Ist der Spieler in Sichtweite? Aktion: Bewege dich zum Spieler Aktion: Patrouilliere In diesem Beispiel versucht der NPC zunächst, den Spieler zu finden und anzugreifen. Wenn der Spieler nicht in Sichtweite ist, patrouilliert der NPC.

Vorteile von Behaviour Trees Modularität: Verhalten kann leicht geändert oder erweitert werden, indem neue Knoten hinzugefügt oder bestehende neu arrangiert werden. Lesbarkeit: Der hierarchische Aufbau macht die Logik des Verhaltens leicht verständlich. Wiederverwendbarkeit: Einmal erstellte Verhalten können in verschiedenen Teilen des Spiels oder sogar in verschiedenen Projekten wiederverwendet werden. Flexibilität: BTs ermöglichen eine einfache Kombination und Verschachtelung von Verhaltensweisen, wodurch komplexe KI-Verhalten auf einfache Weise modelliert werden können. Behaviour Trees sind daher ein mächtiges Werkzeug zur Gestaltung der KI in Videospielen, das sowohl Entwicklern als auch Designern hilft, komplexe Verhaltensweisen auf eine intuitive und effiziente Weise zu implementieren.