Action Behavior Tree

by gsioteam

22

Action Behavior Tree

A behavior tree plugin for action games.

In many cases we want the behavior tree have continuous state capabilities.
For example, during a character is casting an action, we need this behavior tree
focus on this action and no need to check or toggle states in partial branches.

A RUNNING status is added for indicating that this node is running continuously.

Try the living demo

https://gsioteam.github.io/ActionGame/

Special Nodes

Action Node

Action nodes is used to execute specific actions.

Override action method to implement the behavior.
You can use yield in action method, the state will
be RUNNING until action method is complete.

func action(tick):
    bodis = []
    # The returned state will be Status.RUNNING until animation completed.
    yield(tick.target.play_anim(animation), "completed")
    return Status.SUCCEED

In a tick if the action is still in running, running method will be invoked.

If can_cancel returns true. The children nodes
will be ran, and if any child returns not
Status.FAILED, move focus to that child.

If Node

A condition node, returns FAILED while the result
of test method is false. Otherwise the child node
will be ran. The test method will not be invoked while
the child node is in RUNNING state.

Link Node

Select a target node, and the behavior of this link node is same as the target node.

Goto Node

Move focus to target node.

During Select Node

Totaly same as Selector node. But if a child node
returns RUNNING, that child node will get focus.
And the selecting behavior will continue after that
child node is complete (No longer in RUNNING state).

Queue Node

Run children nodes sequentially. Next child node
will be ran after prev child node is complete
(No longer in RUNNING state).

Switch Node

Run the selected child node.

Version

0.1.0

Engine

3.4

Category

Tools

Download

Version0.1.0
Download Now

Support

If you need help or have questions about this plugin, please contact the author.

Contact Author