Interrupting wait task with conditional abort

syu15

New member
Hello,
I have set up my behavior tree in the configuration you can see in the screenshot. I want the wait task to be interrupted when any of the left child conditional evaluators return true, but I can't seem to get the left selector branch to be reevaluated. I've tried pretty much every combination of self/lower-priority/both for each of the selectors but it doesn't seem to work. I've also tried selecting "reevaluate" for the conditional evaluators but that didn't seem to make a difference. Is it possible to achieve what I want with conditional aborts or do I need to use something else?
Thanks,
Sarah
 

Attachments

  • Screen Shot 2021-10-03 at 2.25.11 PM.png
    Screen Shot 2021-10-03 at 2.25.11 PM.png
    26.1 KB · Views: 21
Do you have any tasks to the right of your screenshot? And what conditional tasks do you have? When a conditional task is reevaluating the task status indicator (success/failure) will have a circle around it so that's a good way to determine if you have the correct abort type.
 
Sorry for the delay in response. I've attached a full screenshot of my entire tree. The conditional tasks are ones that I have written myself and return either a success or failure status. I've been able to verify that they are not being reevaluated using the conditional aborts I've put in place. I have a conditional task that checks if food has been dropped, and it does not run when the wait task (in green) is active, but it works when I disable the wait task.
 

Attachments

  • Screen Shot 2021-10-12 at 9.00.55 PM.png
    Screen Shot 2021-10-12 at 9.00.55 PM.png
    56.3 KB · Views: 13
It's hard to see from that screenshot, but if no tasks are being reevaluated then you'll need to change the abort type. This page has a great example of a behavior tree which has different conditions based on a priority of branches:

 
I used that guide to set up my tree before I posted here (tried using every combination of Lower Priority/Both Selector tasks) but the end result was the same. Is there something I need to do in the conditional tasks to get it to work or is there something specific with the wait task I need to handle?
 
The abort types rely on the location that the current active node is within the tree. It looks like your wait task is out of the scope of the aborts so that's why they are not being reevaluated.
 
I see. So my goal is that this wait task can be interrupted by any of the conditional tasks, but I don't want any of the conditional tasks to be able to interrupt each other. Can you help me figure out how to accomplish this? Thanks!
 
For that use case you'll need to use the Interrupt/Perform Interruption tasks. Conditional aborts do not allow you to select which tasks they abort.
 
Ah ok thanks. I have seen those tasks but tbh am unsure of how to use them. Can you point me to some documentation or videos so I can figure out how to set them up?
 
One of the CTF/RTS/Mini Gauntlet sample projects has an example. When the Perform Interruption task runs it will abort the specified Interrupt task.
 
Top