KI-Knotenstrukturen: Selector, Sequence Und Decorator Knoten In Verhaltensbäumen
Recherche

KI-Knotenstrukturen: Selector, Sequence Und Decorator Knoten In Verhaltensbäumen

AutorGameDev Base
Datum20. Oktober 2026
22 Min. Lesezeit

KI-Verhaltensbäume in der Spieleentwicklung: Eine umfassende Analyse von Selektor-, Sequenz- und Dekorator-Knotenstrukturen im Kontext von Unreal Engine 5 und Unity

Die Evolution von Systemen der künstlichen Intelligenz in Videospielen spiegelt einen grundlegenden Paradigmenwechsel wider, der sich von rein deterministischen Regelwerken hin zu dynamischen, modularen und kontextsensitiven Entscheidungsmechanismen bewegt. Im Zentrum dieser Evolution stehen mathematische und logische Planungsmodelle, die als „Verhaltensbäume“ (Behavior Trees – BT) bekannt sind. Ursprünglich für Robotik und Steuerungssysteme entwickelt und insbesondere von Rodney Brooks' verhaltensbasierter Architektur inspiriert, haben sich diese Strukturen in der Spieleindustrie bei hochkarätigen Projekten wie Halo, Bioshock und Spore bewährt. 1 Heutzutage bilden sie die grundlegenden KI-Bausteine moderner Spiel-Engines wie Unreal Engine 5 und Unity. Dieser Bericht untersucht umfassend die Selektor- (Selector), Sequenz- (Sequence) und Dekorator-Knoten (Decorator), die das wesentliche Rückgrat von Verhaltensbäumen bilden, sowie die theoretische Logik hinter diesen Knoten, ihre Vorteile gegenüber endlichen Zustandsautomaten (FSM), ihre mathematischen Funktionsmechanismen und ihre spezifischen Anwendungen in modernen Engine-Architekturen.

Theoretische und mathematische Grundlagen von Verhaltensbäumen

Verhaltensbäume sind gerichtete (directed) und hierarchisch strukturierte mathematische Baummodelle, die die Planausführung in der Informatik, Robotik und in Videospielen modellieren. 1 Dieses Modell, das auf einer hierarchischen Baumstruktur entworfen wurde, verfügt über einen Ausführungsfluss, der vom Wurzelknoten (Root) ausgehend über innere Knoten (zusammengesetzte Knoten) zu den Blattknoten (Leaf/Task) verläuft. 3 Das grundlegendste architektonische Merkmal des Systems besteht darin, dass jeder Knoten, wenn er an der Reihe ist (Tick), eine spezifische logische Operation ausführt und anschließend dem aufrufenden Elternknoten einen bestimmten Ausführungsstatus (Status) zurückgibt. 3 Diese zurückgegebenen Zustände werden universell in drei Hauptkategorien unterteilt:

  1. Erfolgreich (Success): Gibt an, dass der Knoten seine definierte Aufgabe oder logische Überprüfung vollständig erfüllt hat und abgeschlossen ist. 3

  2. Fehlgeschlagen (Failure): Gibt an, dass der Knoten seine definierte Aufgabe nicht ausführen konnte, auf ein Hindernis gestoßen ist oder die Bedingung nicht erfüllt wurde. 3

  3. Laufend (Running): Gibt an, dass die Aufgabe noch nicht abgeschlossen ist, andauert und im nächsten Verarbeitungszyklus (Tick) erneut ausgewertet werden muss. 3

Im Gegensatz zu traditionellen Entscheidungsbäumen (Decision Trees) und einfachen if-else-Blöcken ermöglicht das Vorhandensein des Zustands „Laufend“ (Running) den Verhaltensbäumen, Aktionen über mehr als einen einzelnen Verarbeitungszyklus (Frame/Tick) hinweg unterbrechungsfrei auszuführen, und verleiht dem System eine reaktive Struktur, die es vor Einfrieren schützt. 5 In der Spieleentwicklung dauert es gewöhnlich Sekunden, bis ein KI-Agent von Punkt A nach Punkt B gelangt; während dieses Prozesses gibt der auszuführende Blattknoten kontinuierlich den Zustand „Laufend“ zurück, wodurch die Elternknoten im Wartezustand (Waiting) gehalten werden. 4 Dieser asynchrone Ablauf verhindert das Blockieren der Haupt-Pipeline der Engine.

2>Paradigmenvergleich: Endliche Zustandsautomaten (FSM) und Verhaltensbäume (BT)

Der Hauptgrund dafür, dass Verhaltensbäume zum Standard in der Spieleindustrie geworden sind, liegt darin, dass sie die architektonischen Sackgassen lösen, die durch endliche Zustandsautomaten (Finite State Machines – FSM) entstehen. Eine FSM verwaltet die Übergänge (Transitions) jedes Zustands (State) zueinander über einen vordefinierten Adjazenzgraphen (Adjacency Graph). 2 FSMs, die bei einer geringen Anzahl von Zuständen einfach zu bauen sind und perfekt funktionieren, verwandeln sich bei steigender Zustandszahl aufgrund der exponentiellen Zunahme von Übergangskombinationen in ein unkontrollierbares „Spaghetti-Code“-Chaos. 7 Im Gegensatz dazu erstellen Verhaltensbäume dank ihrer hierarchischen Struktur sehr komplexe Aktionen durch die Kombination (Komposition) einfacher Aufgaben. 1 Wie Unteraufgaben implementiert sind, fungiert für übergeordnete Knoten als Blackbox. 1 Dank ihrer reaktiven Struktur kann der Baum bei jedem externen Reiz oder einer hochprioren Zustandsänderung sich selbst von der Wurzel an oder über bestimmte Event-Listener (Observers) neu auswerten, die aktuellen Aktionen abbrechen und den situationsgerechten neuen Zweig aktivieren. 5 Während bei FSMs Übergänge direkt in den Zuständen selbst oder in einer separaten Manager-Klasse codiert werden müssen, sind bei Verhaltensbäumen der Kontrollfluss und die Aktionsausführung vollständig voneinander getrennt. 2

Analysemetrik

Verhaltensbäume (Behavior Trees)

Endliche Zustandsautomaten (FSM / HFSM)

Architektonische Struktur

Hierarchisch, basiert auf Eltern/Kind-Beziehung (Parent/Child), Fluss von oben nach unten.

Adjazenzgraph (Adjacency Graph) und Kantenübergänge zwischen Knoten.

Skalierbarkeit

Hohe Modularität; Teilbäume können unabhängig getestet werden, die Komplexität steigt linear mit wachsendem Graphen.

Mit zunehmender Komplexität wird das Übergangsmanagement exponentiell schwieriger (Risiko von Spaghetti-Code).

Ausführungslogik

Aufgabenbasiert (Task-based). Knoten werden bei jedem Tick oder Ereignis dynamisch von oben nach unten ausgewertet.

Zustandsbasiert (State-based). Ein aktiver Zustand bleibt unverändert, bis eine bestimmte Übergangsbedingung erfüllt ist.

Reaktivität

Mechanismen für sofortigen Abbruch (Abort) und Umleitung für hochpriorisierte Aufgaben vorhanden.

Explizite Regeln sowie Ausstiegs- und Einstiegsfunktionen sind erforderlich, um vom aktuellen in einen neuen Zustand zu wechseln.

Speicherverwaltung

Vergangene Entscheidungen werden nicht in Baumform gespeichert; das System arbeitet jedes Mal von der Wurzel oder vom aktuellen Knoten aus (gedächtnislose Reaktivität).

Vergangene Aktionen und Entscheidungen erzeugen ein explizites Gedächtnis (Memory) im aktuellen Zustand (hohe Ausdrucksstärke).

Tabelle 1: Struktureller, algorithmischer und operationaler Vergleich von Verhaltensbäumen und endlichen Zustandsautomaten in KI-Systemen. Diese Tabelle fasst die architektonischen Unterschiede und Anwendungsszenarien der beiden Paradigmen zusammen. 1

Wenn Forscher BTs mit Entscheidungsbäumen, teleo-reaktiven Programmen und FSMs vergleichen, haben sie bewiesen, dass FSMs „ausdrucksstärker“ (expressive) sind, da sie Zustände konstruieren können, die Zugriff auf interne Variablen und vergangene Entscheidungen haben; im Gegensatz dazu sind BTs viel „reaktiver“ (reactive) und lesbarer, da sie bei jedem neuen Eingang oder Tick die Ausführung von der Wurzel aus starten (oder durch Ereignisse unterbrechen). 5 Spieleentwickler haben diesem speicherlosen, aber sofort reagierenden Aufbau von BTs entgegengewirkt, indem sie ihn mit Datenspeichereinheiten namens Blackboard (Blackboard) unterstützten, wodurch das Fehlen eines Gedächtnisses behoben und eine perfekte hybride Daten-Logik-Trennung erreicht wurde. 12

Das Epizentrum der Ablaufsteuerung: Zusammengesetzte Knoten (Composite Nodes)

In Verhaltensbäumen bilden „zusammengesetzte Knoten“ (Composite Nodes) das Herzstück des Entscheidungsmechanismus und des logischen Flusses. Ein zusammengesetzter Knoten ist eine Hauptskelettstruktur, die einen oder mehrere ihr untergeordnete Kindknoten (Child Nodes) haben kann und bestimmt, in welcher Reihenfolge, mit welchen Prioritätsregeln oder nach welchen logischen Bedingungen diese Kinder ausgeführt werden. 3 Die Flussgeometrie erfolgt universell von oben nach unten (von Eltern zu Kind) und von links nach rechts (vom priorisierten Zweig zum sekundären Zweig). 10 Die beiden grundlegendsten und unentbehrlichsten zusammengesetzten Knotenmodelle im System sind Sequenz- (Sequence) und Selektorknoten (Selector). 3

Sequenzknoten (Sequence Node): Logischer „UND“-Fluss (AND)

Der Sequenzknoten ist der Baustein, der die ihm untergeordneten Unterknoten beginnend vom ganz linken Kind nach rechts in einer aufeinanderfolgenden und strengen Regelabfolge ausführt. Nach seiner Funktionslogik kann der Sequenzknoten als logisches „UND“-Gatter (AND) in einer Programmierarchitektur modelliert werden. 3 Damit die Aufgabe des Knotens als erfolgreich abgeschlossen gilt, muss jeder einzelne Kindknoten in der Kette ausgeführt werden und ausnahmslos den Zustand „Erfolgreich“ (Success) zurückgeben. 3 Wenn an irgendeinem Punkt der Kette ein Kindknoten „Fehlgeschlagen“ (Failure) zurückgibt, bricht der Sequenzknoten die Ausführung sofort an diesem Punkt ab, verzichtet auf die Ausführung der verbleibenden rechten Kinder und übermittelt seinem eigenen Elternknoten den Zustand „Fehlgeschlagen“. 3

Solange einer der Kindknoten während der Ausführung den Zustand „Laufend“ (Running) zurückgibt, stoppt der Sequenzknoten den Fortschritt und leitet weiterhin den Zustand „Laufend“ an seinen eigenen Elternknoten weiter. 3 Beim nächsten System-Tick setzt der Sequenzknoten die Ausführung bei diesem aktuell laufenden Kindknoten fort; er beginnt nicht von vorn.

Mathematisch kann der Zustand eines Sequenzknotens S, wobei die Zustände der Kindknoten jeweils sind, mit folgender Gleichung ausgedrückt werden:

In Spieleentwicklungsprozessen ist der Sequenzknoten ein hervorragendes Werkzeug zur Modellierung von komplexen Gesamtaktionen, die absolut voneinander abhängig sind und in einer chronologischen Reihenfolge ablaufen müssen. Betrachten wir eine klassische Aktion „Tür öffnen“: Die Aktion einer KI, die Tür zu öffnen, kann unter einem Sequence-Zweig zusammengefasst werden, der aus drei separaten Blattknoten besteht: „Zur Tür gehen“, „Tür aufschließen“ und „Klinke drücken und schieben“. 10 Wenn der Charakter im ersten Schritt seinen Weg nicht finden und nicht zur Tür gelangen kann (Navigationsfehler – Failure), schlägt die gesamte Aktionssequenz fehl. Da es für das System unlogisch wäre, den Befehl „Aufschließen“ auszuführen, wenn sich der Charakter nicht neben der Tür befindet, erkennt der Sequenzknoten diesen Fehler sofort, bricht die Kette ab und spart Prozessorzyklen (CPU). 13 In ähnlicher Weise wird ein Sequence-Zweig für den Angriff eines feindlichen Agenten auf den Spieler entworfen: „Auf den Spieler zubewegen“, „Prüfen, ob in Reichweite“, „Zum Spieler drehen“ und „Angriffsanimation abspielen“. Wenn die Reichweitenprüfung fehlschlägt, werden die Rotations- und Angriffsaktionen niemals ausgeführt. 14

Selektorknoten (Selector / Fallback Node): Logischer „ODER“-Fluss (OR)

Der Selektorknoten (in manchen Engines auch als Fallback bekannt) arbeitet mit einer Philosophie, die genau das Gegenteil des Sequenzknotens ist, wie ein flexibler Problemlöser und ein logisches „ODER“-Gatter (OR). 3 Dieser Knoten versucht die ihm untergeordneten Kindknoten ebenfalls in einer Hierarchie von links nach rechts, stellt jedoch in dem Moment, in dem ein Kindknoten „Erfolgreich“ (Success) ist, die Auswertung anderer Alternativen ein und gibt seinem Elternknoten sofort „Erfolg“ (Success) zurück. 3 Damit ein Selektorknoten als fehlgeschlagen gilt, müssen alle unter ihm liegenden Kindknoten ausnahmslos versucht werden und alle zusammen „Fehlgeschlagen“ (Failure) sein. 3

Genau wie beim Sequenzknoten wird auch der Selektorknoten ausgesetzt und spiegelt den Zustand „Laufend“ an seinen Elternknoten wider, wenn ein gerade ausgeführter Kindknoten „Laufend“ zurückgibt.

Seine mathematische Definition lautet wie folgt:

Im Spieldesign wird diese Struktur verwendet, um der KI das Ausprobieren verschiedener priorisierter Routen, Taktiken oder Reaktionen zu ermöglichen, um ein einzelnes Gesamtziel zu erreichen. Da die linke Seite immer die höchste Priorität darstellt, wird in der Designpraxis die am meisten bevorzugte, am wenigsten kostspielige oder optimalste Aktion ganz links platziert, während nach rechts hin alternative, kostspieligere und weniger ideale Lösungen angeboten werden. 3 Dies erzeugt eine starke Prioritätsschichtung (Priority) in der Baumarchitektur. 3

Um dies zu veranschaulichen, erweitern wir das Türöffnungsszenario: Der Charakter muss auf die andere Seite der Tür gelangen. Unter einem Selektorknoten können drei verschiedene Aktionen oder Teilbäume (Sequence) angeordnet werden. Ganz links befindet sich die Aktion „Schlüssel benutzen“, in der Mitte „Schloss knacken“ (langsamer) und ganz rechts „Tür aufbrechen“ (laut und gefährlich). 10 Wenn der Agent den Schlüssel im Inventar hat, wird die erste Aktion versucht und ist erfolgreich. Der Selektorknoten bricht alle anderen Operationen ab und die Tür ist passiert. Hat der Agent jedoch keinen Schlüssel (Failure), gibt der Selektorknoten nicht auf und geht direkt zur Option „Dietrich benutzen“ auf der rechten Seite über. Wenn auch das fehlschlägt, versucht er als letztes Mittel, die Tür aufzubrechen. Wenn alle drei Aktionen fehlschlagen (z. B. wenn die Tür eine unzerstörbare Stahltür ist), meldet der Selektorknoten erst dann seinem Elternknoten, dass alle Alternativen erschöpft sind (Failure). 10 Diese prioritätsbasierte ODER-Architektur spiegelt die eigentliche Stärke von Selektorknoten wider, äußerst ausgefeilte und naturally wirkende künstliche

Intelligenzverhalten zu erzeugen.

Ausführungsmanipulation: Dekorator-Knoten

Während Komposit-Knoten die Reihenfolge und die Ausführungslogik ihrer Kinder organisieren, sind Dekorator-Knoten (Decorator Nodes) für die Feinabstimmung der Kontrollmechanismen innerhalb des Baums zuständig. Diese Struktur, die denselben Namen wie das „Decorator“-Entwurfsmuster in der Softwaretechnik trägt, kann im Gegensatz zu Komposit-Knoten nur ein einziges Kind-Knoten (oder einen Teilbaum) besitzen. Sie manipuliert die Ausführungsregeln, die zurückgegebenen Ergebnisse oder die Schleifenmechanismen dieses Kindes, indem sie es wie eine äußere Rüstung umschließt.3 Dekoratoren fungieren als bedingte Barrieren (Conditionals) oder Wächter-Knoten (Guard Nodes), die entscheiden, ob ein Zweig ausgeführt werden kann oder nicht.15

Grundlegende Funktionen und Einsatzszenarien von Dekoratoren

Die häufigste und wichtigste Verwendung von Dekoratoren in der KI von Spielen sind Bedingungsprüfungen (Conditionals).4 Ein Zweig des KI-Baums wird nur dann zugänglich, wenn die vom Dekorator definierten Bedingungen erfüllt sind. Ein Dekorator, der beispielsweise am Anfang eines „Angriffs“-Zweigs platziert wird, der darauf abzielt, den Feind anzugreifen, überprüft kontinuierlich Bedingungen wie „Ist der Feind im Sichtfeld?“ oder „Ist die Waffe geladen?“.3 Wenn die Bedingung nicht erfüllt ist, blockiert der Dekorator sofort die Ausführung seines Kindes und gibt direkt den Status „Fehlschlag“ (Failure) zurück.4

Neben Bedingungen gibt es auch Varianten von Dekoratoren, die die Ergebnisse des Ablaufs direkt modifizieren oder Aktionen an einen bestimmten Zeitplan binden 4:

  • Inverter (Umkehrer): Funktioniert wie ein logisches „NICHT“ (NOT)-Gatter. Wenn der Kind-Knoten fehlschlägt, gibt er „Erfolg“ an den Elternknoten zurück; wenn das Kind erfolgreich ist, gibt er „Fehlschlag“ zurück.4 Er wird insbesondere dann verwendet, wenn ein bestimmter Zustand nicht eintreten soll (z. B.: „Patrouilliere, wenn der Feind nicht in der Nähe ist“).

  • Succeeder (Erzwungener Erfolg): Unabhängig vom Ergebnis des Kindes, selbst wenn es fehlschlägt, gibt er dem Elternknoten erzwungenermaßen „Erfolg“ zurück.4 Dies wird innerhalb einer großen Sequence-Kette verwendet, um zu verhindern, dass eine optionale Aufgabe, deren Scheitern unerheblich ist (z. B.: „Den Feind anschreien“), die gesamte Kette unterbricht.18

  • Repeat (Schleife / Wiederholung): Ermöglicht es, einen bestimmten Knoten oder Zweig eine festgelegte Anzahl von Malen, unendlich oft oder bis zum Erfolg/Fehlschlag hintereinander zu wiederholen.4

  • Cooldown und Time Out (Zeitbeschränkungen): Cooldown fügt eine obligatorische Wartezeit zwischen zwei aufeinanderfolgenden Ausführungen eines Zweigs ein (z. B.: Abklingzeiten von Fähigkeiten). Time Out hingegen sorgt dafür, dass ein langwieriger Prozess (Running) nach Ablauf einer bestimmten Sekundenzahl zwangsweise abgebrochen wird, indem er als fehlgeschlagen markiert wird.4

Unreal Engine 5: Ereignisgesteuerte Verhaltensbaum-Architektur

Unreal Engine 5 (UE5) bietet eine branchenübliche Implementierung von Verhaltensbäumen mit eigenen, hochleistungsfähigen und komplexen Architekturmodifikationen. Die tiefgreifendste und wichtigste dieser Modifikationen ist, dass die Verhaltensbäume von UE5 vollständig auf einer „ereignisgesteuerten“ (Event-Driven) Architektur basieren.16 In klassischen Verhaltensbäumen bewertet das System den gesamten Baum in jedem Frame (Tick) kontinuierlich von der Wurzel bis zu den Blättern neu, um die Gültigkeit der Aktionen zu testen. Dieser auf „Polling“ basierende Ansatz belastet die CPU-Leistung in einem Spiel mit Hunderten von Feinden enorm.19

Laut der Dokumentation von Unreal Engine arbeiten die Verhaltensbäume innerhalb der Engine im passiven Abhörmodus, um diese unnötige Rechenlast zu vermeiden. Anstatt die Bedingungen in jedem Frame zu prüfen, wartet das System auf „Ereignisse“ (Events), die durch die Änderung von Variablen auf dem Blackboard (Schwarzes Brett) ausgelöst werden, und öffnet, schließt oder bewertet nur dann die notwendigen Zweige des Baums, wenn sich die entsprechende Variable ändert.16

Ein KI-Profil in UE5 basiert im Wesentlichen auf dem AI Controller, der das KI-Gehirn verwaltet, dem Blackboard, einer Datenbank, die Speicher und Variablen enthält, dem Behavior Tree, der die Entscheidungslogik zeichnet, sowie Tasks, die Aktionen ausführen, Decorators, die Zustände filtern, und Services, die Daten aktualisieren.12 Das Blackboard ist eine Datenklasse, die kontextbezogene Informationen wie die Ziele des Charakters, die aktuelle Position, Feinde im Sichtfeld oder Patrouillenpunkte speichert und völlig unabhängig vom Verhaltensbaum existiert.12 Der Verhaltensbaum ist lediglich ein Logikprozessor; er zieht die Daten vom Blackboard, trifft die Entscheidung und löst die Aktion (Task) aus.19

Komposit-Knoten in UE5: Selector, Sequence und Simple Parallel

Während der „Selector“-Knoten in der UE5-Oberfläche verwendet wird, um zwischen Teilbäumen (Subtrees) zu wechseln, wird der „Sequence“-Knoten verwendet, um eine Reihe von Unteraktionen nacheinander auszuführen.12 Anstelle der komplexen „Parallel“-Knoten, die in traditionellen Systemen zu finden sind, verwendet UE5 aus Gründen der Benutzerfreundlichkeit und Stabilität den „Simple Parallel“-Knoten.14 Der Simple Parallel-Knoten hat genau zwei Verbindungen: eine „Hauptaufgabe“ (Main Task) und einen „Hintergrundzweig“ (Background Branch). Die Hauptaufgabe muss immer ein Blattknoten (Task) sein. Während der Agent seine Hauptaufgabe ausführt (z. B.: „Auf den Feind schießen“), läuft der Hintergrundzweig gleichzeitig ab (z. B.: „Sich kontinuierlich vom Feind wegbewegen“). Was der Knoten tun soll, wenn die Hauptaufgabe oder der Hintergrundzweig beendet ist, kann in den Einstellungen konfiguriert werden.14

Das Herz des Systems: Der Mechanismus der Beobachter-Abbrüche (Observer Aborts)

Das grundlegendste Merkmal, das das Verhaltensbaumsystem der Unreal Engine 5 unübertroffen macht und die KI im Spiel „lebendig“ wirken lässt, ist der Mechanismus der „Beobachter-Abbrüche“ (Observer Aborts), der auf Hardware-Ebene in die Dekoratoren integriert ist.21 Ein KI-Agent muss nicht zur Wurzel des Baums zurückkehren und alle Zweige erneut durchlaufen, um einen bestimmten externen Zustand (z. B. das Verschwinden des Feindes aus dem Sichtfeld) zu bewerten. Stattdessen hören die Dekoratoren passiv auf die Blackboard-Variable (sie beobachten sie).17

Die Funktion „Observer Aborts“, die bestimmt, wie das System die Zweige abschneidet, wenn sich die Bedingungen ändern, bietet Entwicklern vier verschiedene Parameter 22:

Observer Abort Modus

Funktionale Beschreibung und operativer Effekt

None (Keiner)

Selbst wenn eine Beobachtung stattfindet, erfolgt keine sofortige Unterbrechung (Interrupt). Der Baum bewertet die Bedingung in seinem normalen Fluss, wenn der Dekorator in der hierarchischen Reihenfolge an der Reihe ist. Das Eintreten eines Ereignisses mit hoher Priorität kann eine Aufgabe mit niedriger Priorität nicht unterbrechen.

Self (Selbst)

Umfasst nur den Knoten, an den der Dekorator gebunden ist, und den Baum unter diesem Knoten. Wenn die Bedingung plötzlich ungültig wird, während die Ausführung bereits innerhalb dieses Zweigs stattfindet (z. B. wenn der Feind außer Reichweite gerät, während man sich im „Angriffs“-Zweig befindet), wird der Zweig sofort abgebrochen und der Baum meldet den Status „Fehlschlag“ an die übergeordnete Hierarchie.

Lower Priority (Niedrige Priorität)

Der Dekorator überwacht Zweige mit niedrigerer Priorität als er selbst (die sich rechts von ihm befinden). Wenn der Agent eine Aktion mit niedriger Priorität auf der rechten Seite ausführt (z. B. Patrouille) und die Bedingung dieses Dekorators erfüllt ist (z. B. Feind gesehen), bricht das System sofort die Patrouillenaufgabe auf der rechten Seite ab und zieht den Fluss nach links (in diesen Zweig).

Both (Beide)

Dies ist der reaktivste Modus, in dem die Funktionen „Self“ und „Lower Priority“ gleichzeitig arbeiten. Er bricht sich selbst ab, wenn die Bedingung des aktuell ausgeführten Zweigs verletzt wird, und bricht gleichzeitig eine Aktion mit niedriger Priorität ab, wenn seine eigene Bedingung erfüllt ist, um den Fluss zu übernehmen.

Tabelle 2: Systematische und taktische Funktionsweise der Observer Aborts-Parameter in Unreal Engine 5.

Um dies anhand eines Analyseszenarios zu erklären: Während der Agent den Sequenz-Knoten „Patrouille“ ausführt (niedrige Priorität, rechter Zweig) und der Spieler in das Sichtfeld des Agenten gelangt, wird der Schlüssel „HasLineOfSight“ (Sichtlinie vorhanden) auf dem Blackboard auf „True“ (Set) gesetzt. Wenn der Dekorator am Anfang des „Verfolgen“-Zweigs auf der linken Seite auf „Lower Priority“ oder „Both“ eingestellt ist, bricht das System den Patrouillen-Task-Knoten sofort ab (selbst wenn er sich mitten in einem langen Navigationsprozess befindet) und leitet die Ausführung an den „Verfolgen“-Zweig mit hoher Priorität weiter.14 Dies ist das softwareseitige Äquivalent eines hardwareseitigen „Interrupt“-Signals in Betriebssystemen für die KI von Spielen und ermöglicht es der KI, extrem reaktiv zu sein und sofortige Entscheidungen zu treffen. Wenn die Bedingung erneut verletzt wird (der Spieler versteckt sich) und der Dekorator auf „Both“ oder „Self“ eingestellt ist, wird die „Verfolgen“-Aufgabe sofort unterbrochen und das System kehrt zur Patrouillenroutine auf der rechten Seite zurück.14 In Fällen, in denen mehrere Dekoratoren versuchen, Aufgaben mit niedriger Priorität abzubrechen, müssen die Bedingungen des Dekorators ganz links (mit der höchsten Priorität) erfüllt sein.22

Service-Knoten in der UE5-Architektur

Ein weiterer Baustein, der sich völlig von klassischen Verhaltensbaum-Konzepten unterscheidet und speziell für UE5 entwickelt wurde, ist der spezifische Knotentyp namens „Service“. Services führen keine Aktionen wie Blattknoten aus und unterbrechen den Fluss nicht wie Dekoratoren. Es handelt sich um Update-Knoten, die nur zu Komposit-Knoten (Selector/Sequence) hinzugefügt werden können und in festgelegten Zeitintervallen (Frequenz) im Hintergrund kontinuierlich ausgelöst werden, solange dieser Zweig ausgeführt wird.27

Entwickler verwenden Services, um die sich bewegende Position des Ziels zu verfolgen, die Entfernung zum Spieler zu berechnen oder die Daten auf dem Blackboard durch Überprüfung von Umgebungsvariablen regelmäßig zu aktualisieren.19 Während in anderen Spiel-Engines für solche periodischen Datenaktualisierungen komplexe parallele Zweige (Parallel Nodes) oder schwerer C# Code geschrieben werden müssen, optimiert UE5 dies durch die Lokalisierung auf einen spezifischen Zweig des Baums und verbessert die CPU-Leistung enorm. Ein Service führt die „Tick“-Methode aus, solange die Sequenz oder der Selektor, an den er gebunden ist, aktiv ist, und schaltet sich ab, sobald dieser Zweig verlassen wird, um den Leistungsverbrauch zu stoppen.27

Unity 6 Behavior Package (v1.0+): Moderne, visuelle und vielseitige Baumarchitektur

Historisch gesehen mussten sich Entwickler, die die Unity-Engine verwendeten, für komplexe KI-Lösungen im Spiel meist auf Drittanbieter-Asset-Plugins wie NodeCanvas, Behavior Designer oder Playmaker verlassen.30 Mit dem offiziellen „Unity Behavior“-Paket (Version 1.0.x), das ab den Unity 6000-Versionen eingeführt wurde, hat die Engine jedoch einen integrierten, leistungsoptimierten und vollständig ereignisgesteuerten offiziellen visuellen Logik-Editor erhalten.

Die Unity-Ingenieure haben diese moderne Struktur, die sie geschaffen haben, als „Verhaltensgraphen“ (Behavior Graphs) bezeichnet, um sie von den starren Hierarchien klassischer Verhaltensbäume abzugrenzen und zu betonen, dass sie nicht-lineare und viel adaptivere Funktionen enthalten, bei denen Zweige wieder zusammengeführt werden können (Join nodes). Das Unity Behavior-System ist direkt in die Serialisierungsinfrastruktur und die C#-Logik der Engine integriert. Genau wie in UE5 werden Datenübertragungsaufgaben über „Blackboard“-Variablen verwaltet, während die Graph-Logik mit ereignisbasierten Triggern arbeitet. Im System werden Knoten basierend auf ihren universellen Funktionen in zwei Hauptgruppen unterteilt: „Ablaufkontroll“-Knoten (Control flow), die entscheiden, wohin der Fluss geht, und „Aktions“-Knoten (Action), die konkrete Aktionen ausführen und meist grau markiert sind. Ablaufkontrollknoten werden wiederum in Sequenzierungs- (Sequencing) und Modifikator-Knoten (Modifier) unterteilt.

Sequenzierungsknoten in Unity: Sequence und Try In Order

Obwohl die Sequenzierungsknoten im Unity-Paket die Logik von Sequence und Selector in klassischen Bäumen eins zu eins umsetzen, verwenden sie eine andere und innovative Syntax in Bezug auf Benennung und funktionale Anordnung. Der traditionelle „Selector“-Knoten wird im Unity-Ökosystem als „Try In Order“ (Der Reihe nach versuchen) bezeichnet.

  1. Sequence-Knoten: Funktioniert exakt nach der traditionellen Logik. Er führt die Zweige nacheinander von links nach rechts aus; wenn einer fehlschlägt, bricht er den Fluss ab und gibt „Failure“ zurück; wenn alle erfolgreich sind, gibt er „Success“ zurück. Eines der innovativsten Merkmale der Unity Behavior-Oberfläche ist die Struktur der „impliziten Sequenzierung“ (Implicit Sequence / Stacking). Wenn im visuellen Editor mehrere Aktionsknoten vertikal übereinander angeordnet werden (z. B. wenn drei Animationsknoten hintereinander hinzugefügt werden), benötigt das System keinen zusätzlichen Sequence-Knoten, um sie miteinander zu verbinden. Zur Laufzeit (runtime) wird diese gestapelte Struktur automatisch in einen versteckten Sequenz-Knoten umgewandelt. Dadurch werden visuelle Graph-Unordnung und das „Spaghetti“-Erscheinungsbild massiv reduziert.

  2. Try In Order-Knoten: Wie der Name schon sagt, versucht dieser Knoten die Zweige nacheinander von links nach rechts, bis eine Option „Erfolgreich“ ist. In diesem Zusammenhang ist er das exakte logische Äquivalent zum „Selector“- oder „Fallback“-Knoten in klassischen Verhaltensbäumen. Er wird meist in Szenarien verwendet, in denen der Agent die „beste Option“ aus verschiedenen Strategien finden muss.

  3. Run In Parallel und Random-Knoten: Dies sind Ablaufstrukturen, die verwendet werden, um alle verbundenen Zweige gleichzeitig (parallel) auszuführen oder einen der Kinder völlig zufällig auszuwählen. Bei parallelen Ausführungen kann die Logik des Elternknotens mit feinen Details konfiguriert werden, wie z. B. „Wait For All“ (Warten, bis alle Zweige erfolgreich beendet sind) oder „Wait For Any“ (Es reicht aus, wenn irgendein Zweig beendet ist).

Modifier-Knoten und ereignisgesteuerte Unterbrechungsarchitektur

Unity Behavior hat das Konzept des „Decorator“-Knotens aus klassischen Bäumen unter der Kategorie der „Modifier“-Knoten zusammengefasst und in einen wesentlich funktionaleren Rahmen eingebettet. Ein Modifier-Knoten ist eine Kontrollstruktur, die nur ein einziges Kind haben kann und die Arbeitsweise, die Anzahl der Ausführungen (Repeat), den zurückgegebenen Status (Inverter, Succeeder) oder die Bedingung für die Aktivität (Cooldown) dieses untergeordneten Zweigs direkt steuert. Im Unity-Ökosystem sind die wichtigsten Untertypen dieser Knoten zur Steuerung des Spielablaufs die „Abort“- (Abbrechen) und „Restart“- (Neustart) Modifikationen. Der Abort-Knoten stoppt die Ausführung des darunter liegenden Zweigs sofort, wenn die im Node Inspector festgelegten Bedingungen (z. B. Gesundheit < 20) erfüllt sind (Any Are True / All Are True), und leitet ein Failure an den übergeordneten Knoten weiter. Restart hingegen funktioniert nach dem umgekehrten Prinzip: Wenn die Bedingungen erfüllt sind, wird ein aktuell ausgeführter Zweig zurückgesetzt und von vorne begonnen.

Die eigentliche Revolution im modernen System von Unity ist das „Observer-based priority interruption“-System (beobachterbasierte Prioritätsunterbrechung), das eine direkte Reflexion des legendären „Observer Aborts“-Mechanismus von Unreal Engine darstellt. Offiziellen Anleitungen zufolge ermöglicht diese Struktur, dass hochpriorisierte Aktionen (linke Zweige im Graphen) automatisch niedrigpriorisierte Aktionen (rechte Zweige) unterbrechen, sobald die Bedingungen erfüllt sind. Entwickler müssen nicht mehr lange Guard Clauses für einen Patrouillen-Zweig schreiben, damit ein feindlicher Agent seine „Patrol“-Aufgabe abbricht und in den „Attack“-Zweig springt, wenn er plötzlich angegriffen wird. Der hochpriorisierte linke Zweig (Attack) definiert seine Bedingung im „Observer Abort“-Modus. Dadurch überwacht das System im Hintergrund automatisch die Patrouillen-Aktion auf der rechten Seite und bricht den niedrigpriorisierten Vorgang ab, sobald die Bedingung eintritt, wodurch der Fluss nach links verschoben wird. Ebenso ist der „Self“-Beobachter auch in Unity aktiv; wenn während der Ausführung eines aktiven Zweigs dessen eigene Vorbedingungen ungültig werden, wird die Aktion sofort abgebrochen. Auf diese Weise werden Verhaltensgraphen mit geringen Wartungskosten (maintenance complexity) und einer äußerst lesbaren Hierarchie (Priorität von links nach rechts) erstellt.

Darüber hinaus unterstützt Unity Behavior direkt Subgraphen. Ein komplexes Verhalten (z. B. das Zeichnen einer Patrouillenroute) kann als kleiner Graph gespeichert und über den „Run Subgraph“-Knoten dynamisch oder statisch in den Hauptbaum eingefügt werden, wodurch das modulare Design riesiger KI-Systeme sichergestellt wird. Entwickler können ihre eigenen benutzerdefinierten Aktionsknoten (Custom Action Nodes) mit Skripten, die OnStart-, OnUpdate- und OnEnd-Methoden enthalten – ähnlich der traditionellen C# MonoBehaviour-Struktur –, in Sekundenschnelle in das Behavior-System integrieren.

Architektonische Synthese: Vergleichende Analyse der Frameworks von Unreal Engine 5 und Unity Behavior

Obwohl die beiden dominierenden Spiel-Engines der Branche, Unreal Engine 5 und Unity, für KI-Entscheidungen im Grunde auf derselben mathematischen Theorie und der hierarchischen Struktur basieren, die die Komplexität von FSMs durchbricht, weisen sie deutliche Unterschiede in ihren Benutzeroberflächen, Terminologien und spezifischen Problemlösungsmethoden auf.

Konzept / Funktioneller Mechanismus

Unreal Engine 5 (Behavior Tree)

Unity Behavior (v1.0+) (Behavior Graph)

Logischer ODER (OR)-Knoten

Selector Node. Geht nach rechts, bis ein erfolgreiches Kind gefunden wird.

Try In Order Node. Abgesehen von der Benennung ist die Funktion identisch.

Logischer UND (AND)-Knoten

Sequence Node. Klassische hierarchische Baumanordnung.

Sequence Node / Implicit Stacking. Vertikale Anordnungen erzeugen automatisch versteckte Sequenzknoten.

Knotenbedingung / Filter

Decorator Node. Hält den Eingang des Zweigs.

Modifier Node / Conditional Branch. Ändert Flussrichtung, Schleifenanzahl und Logik.

Dynamische Unterbrechung und Reaktivitätssystem

Observer Aborts (None, Self, Lower Priority, Both). Überwacht Blackboard-Variablen passiv.

Observer-Based Priority Interruption (Self, Priority). Hohe Priorität unterbricht immer niedrige Priorität.

Hintergrund-Datenaktualisierung

Service Node. Wird zusammengesetzten Knoten hinzugefügt, tickt in bestimmten Frequenzen, während der Zweig läuft.

Run In Parallel-Knoten, C#-Skripte oder parallele Verarbeitung durch Action-Knoten im Graphen.

Unterbaum-Organisation und Modularität

Run Behavior Tree (Ein Baum wird innerhalb eines anderen als Task ausgeführt).

Run Subgraph (Subgraphen werden mit statischen oder dynamischen Variablen eingefügt).

Zustands- und Datentransportmechanismus

Blackboard Data Asset (Unabhängiges Daten-Asset und Keys).

Blackboard Variables (Visuelle Blackboard-Oberfläche und C#-Referenzverknüpfungen).

Tabelle 3: Terminologische und operative Entsprechungen von KI-Verhaltensbaum-Konzepten auf den Plattformen Unreal Engine 5 und Unity Behavior (Version 1.0.15+). Während beide Engines auf Modularität abzielen, hat Unity bei der Benennung die „menschliche Lesbarkeit“ (human-readable) in den Vordergrund gestellt.

Analysen und operative Statistiken zeigen, dass im Vergleich zur Anzahl der Übergänge (transition), die bei klassischen FSM-Designs exponentiell mit dem Quadrat der Anzahl der Zustände wächst (), das Entwerfen neuer Verhaltensweisen in Behavior Tree-Architekturen nur das Hinzufügen neuer Aktions- oder Dekoratorknoten () zum Baum erfordert. Dieses lineare strukturelle Wachstum hat sowohl auf Unity- als auch auf Unreal-Plattformen das Design riesiger, reaktiver und fehlerfreier KI-Systeme ermöglicht, die zum Industriestandard geworden sind. Dennoch ist die Manipulation des „Running“-Status (Läuft) äußerst wichtig, um zu verhindern, dass ein langwieriger Prozess zum Einfrieren des Baums führt. Wenn ein KI-Agent den Befehl erhält, von Punkt A nach Punkt B zu gehen, gibt er in jedem Zyklus „Running“ zurück, bis diese Aufgabe abgeschlossen ist. Wenn der Prozess fehlerfrei endet, wird der Erfolgsstatus auf der UE5-Seite mit dem „Finish Execute“-Knoten in Blueprint und auf der Unity-Seite mit der OnEnd-Methodik im C#-Skript besiegelt.

Fortgeschrittene Konzepte und Hybridsysteme: State Trees (Zustandsbäume)

Obwohl das Modell der „gedächtnislosen Reaktivität“ von Verhaltensbäumen bei taktischen Kämpfen oder sofortigen Entscheidungen (Mikromanagement) eine unübertroffene Überlegenheit bietet, fällt es der KI schwer, sehr langfristige Stimmungen, vergangene Kontexte oder Makro-Modi zu kontrollieren. Eine der am häufigsten geäußerten Kritiken von Entwicklern ist, dass die Daten vergangener Entscheidungen nicht im Design des Baums, sondern zwangsläufig im Blackboard oder in globalen Variablen gespeichert werden müssen.

Dank der Flexibilität, die UE5- und Unity-Engines bieten, haben Entwickler Wege gefunden, diese strukturellen Einschränkungen durch die Synthese von Verhaltensbäumen mit FSMs zu überwinden. Insbesondere mit Unreal Engine 5.1 wurde ein neues und bahnbrechendes Konzept namens „State Trees“ (Zustandsbäume) in das KI-Ökosystem der Engine aufgenommen. Zustandsbäume sind ein hybrides System, das eine architektonische Kombination aus FSM und Verhaltensbäumen darstellt. Zustandsbäume verwenden die Zustandsmaschinenstruktur für die allgemeine und umfassende Zustandsverwaltung (z. B. Kampf, Flucht, Patrouille, Schlaf). Wenn die Maschine jedoch in den Zustand „Kampf“ übergeht, werden die sekündlichen Reaktionen und die Gesamtheit der Aktionen innerhalb dieses Zustands mithilfe der Baumlogik an bestimmte Übergänge und aufgabenbasierte Bewertungen gebunden.

Die kompetenteste Methodik, die Profis in der modernen Spieldesign-Philosophie anwenden, ist die parallele Ausführung dieser beiden Systeme. Entwickler verwalten die Stimmung und die Makrozustände von Agenten wie „Ruhig“, „Misstrauisch“ oder „Aggressiv“ über eine Zustandsmaschine (State Tree) oder eine Makro-Manager-Klasse. 5 Wenn das System in den Zustand „Aggressiv“ wechselt, löst die FSM als Aktion tatsächlich die Ausführung eines komplexen „Angriffs-Verhaltensbaums“ (Behavior Tree) aus. Die Entscheidungen darüber, ob der Agent in dieser Sekunde auf den Feind zulaufen, in Deckung gehen und nachladen oder ob er in der richtigen Entfernung ist, um eine Handgranate zu werfen, werden von den Selector- und Sequence-Knoten innerhalb der BTs getroffen. 46 Diese Synthese aus Makro-FSM und Mikro-BT verbindet die hohe Ausdruckskraft von Zustandsmaschinen nahtlos mit der hohen Reaktivität von Verhaltensbäumen.

Fazit

Die Planungsausführung und die algorithmischen Logikketten der KI in Videospielen haben dank der Verhaltensbäume (Behavior Trees), die sich im Laufe der Jahre zu einem riesigen Industriestandard entwickelt haben, eine beispiellose Flexibilität, Modularität und Designhierarchie erlangt. Während Sequenzknoten die präzise Verkettung von Aktionen garantieren und Fehler sofort filtern, ermöglichen Selektorknoten taktische Priorisierung, reaktive Entscheidungsfindung und das fehlerfreie Ausprobieren von Alternativen. Die Dekoratorknoten (Modifier), die diesen gesamten zusammengesetzten Körper wie eine äußere Hülle umgeben, ermöglichen eine sofortige Reaktion auf dynamische externe Reize und die Manipulation des Ablaufs. Unreal Engine 5 bietet mit seiner einzigartigen ereignisgesteuerten (event-driven) Infrastruktur, Blackboard-Optimierungen, Service-Knoten für Mikro-Anpassungen und den einzigartigen Observer Abort-Mechanismen ein äußerst ausgereiftes Ökosystem mit geringen Leistungskosten für die KI-Programmierung. Auf der anderen Seite hat Unity mit dem offiziellen Unity Behavior-Paket (Verhaltensgraphen), das mit der 6. Generation in das Herz der Engine integriert wurde, diesen Standard auf eine äußerst zugängliche Ebene gehoben – bei der Visualisierung, beim Lesen durch flüssige Benennungen wie „Try In Order“ und bei der Konstruktion riesiger, nicht-linearer Graphen durch moderne C#-Integration. Diese hierarchische Struktur, die im Vergleich zu klassischen Zustandsmaschinen (FSM) aufgebaut ist, wählt nicht nur den nächsten Schritt des Agenten aus; sie sichert auch die Lesbarkeit großer KI-Systeme, Debugging-Prozesse und die projektbasierte Modularität durch wiederverwendbare Unterzweige (Subgraphen) und festigt damit ihre unbestrittene Autorität im Ökosystem der Spiel-Engines. Systematische Analysen zeigen, dass die korrekte Verwendung der richtigen Kompositions-, Dekorations- und ereignisgesteuerten Unterbrechungsstrategien (Abort) in modernen Projekten die grundlegendste und kritischste Voraussetzung für die Schaffung organischer, intelligenter und lebendiger Agenten ist, die mit statischem Code allein nicht erzeugt werden könnten.

*Hinweis: Die Bilder wurden von Google Gemini erstellt.

BehaviorTreeGameAIUE5SequenceNodeFSMStateTree
Deep Research Tool
Google Gemini
Google Gemini
Übersetzungstool
Google Gemini
Google Gemini

Teilen
KI-Knotenstrukturen: Selector, Sequence Und Decorator Knoten In Verhaltensbäumen | GameDev Base