Hi, I apologize for the delay. I watched the video, but I found it a bit vague and didn’t understand much. From what I gathered, it seemed like overkill for what I was looking for.
Afterward, I discovered this guy who explained how to approach it using state trees. I then reworked that idea to incorporate it into a behavior tree.
What I’m currently doing is creating an actor called BP_PatrolRoute, which contains a list of child BP_PatrolPoints. Each patrol point has a list of previous and next points to keep track of its neighbors, along with a list of actions to take at that point (I’ll explain that later).
The behavior tree consists of a selector that includes all the tasks the AI can perform at each point (for example, play an animation, proceed to the next point, or wait). Thanks to the service in the selector, it updates the current action at the current point and selects the appropriate task to execute.
I have enough flexibility using this approach without needing an actor for each action. I’m not certain if this is the correct method, and I’m still working on it, but it feels robust to me—though I could be wrong.