Simple Parallel wäre schon ein weg das zu machen:
Simple Parallel, hat ein Anbindung zu einer Task Node und eine zu eine zu einem sub tree.
Ein wenig Hintergrund: Das Konzept der Behavior Tree's sieht keine Parallele ausführung von Tree's innerhalb eines Behavior Tree's vor. Von daher solltest du es dir gut überlegen, denn zu weichst von der Theorie der Behavior Trees ab.
Meistens sehe ich das als Warnzeichen, dass du Behavior Tree's nutzt, aber deine Überlegungen zur Implementierung eigentlich kein Behavior Tree ist. (Habe den Fehler selbst schon am Anfang gemacht)
Der Parallel Node ist von daher ein Node der eine Main Task Ausführt, und parallel dazu einen Sub Tree. Die Main Task ist die Primäre Task, die den Node Steuert. Wenn diese Task mit einem success oder failure beendet wird, so wird entsprechend des drüber liegenden Nodes (z.B. Sequence oder Select) weiter gemacht.
Bei mir sah es wie folgt aus:
Beitrag
RE: FPS AI Übungsprojekt
Heute Mal ein Post der etwas mehr erklärt, was ich gemacht habe. Ich würde im Grunde wissen, wie so etwas ankommt also ob es hilft, oder nicht. Mein Gedanke war, dass es im Gegensatz zu Tutorials kompliziertere Themen abdecken kann, da ich nicht großartig in die Ausführung des ganzen gehe, sondern eher in die Struktur. Z.T. muss ich wahrscheinlich auch noch üben, meine schlechte Schreibangewohnheiten, wie Schachtelsätze zu vermeiden. Ich entschuldige mich schon im Voraus für Typos. Bin…
In diesem Fall ist es so dass es einen Combat Node gab, in dem die Main Task das Feuern und Zielen übernimmt, und parallel dazu die Bewegung lief. Wenn diese Task fehlschlägt, so kommt man durch den Select in den nächsten Node eine Art Reload Task. Diese initiert das nachladen, und es findet parallel eine Bewegung in Deckung statt. Schlägt dies fehl (keine Munition, oder kein Nachladen nötig), so kommt man in die Verfolgen Task, etc. Bei einem Success sorgt der Select dafür dass der ganze Baum neugestartet wird. D.h. wenn der Combat Node sich erfolgreich beendet (z.B.) Ziel ist eliminiert, dann wird der Baum neugestartet ein neues Ziel gesucht und die möglichen Aktionen werden abgearbeitet.
Was ich heutzutage anders machen würde ist, dass ich als Decorator keine Perception hatte. Dies ist aber viel zu Performancehungrid und ich hätte dies als Task machen sollen, die ausgeführt wird, wenn ein neues Ziel gesucht wird.
ist aber bei weitem nicht perfekt und ich würde einiges anders machen.
Mir ist am Ende auch aufgefallen, dass Gegner die sich bewegen und schießen, etwas zu schwer waren, gerade in Kombination mit einem sehr fiesen Recoil Modell.