How to: Behavior Tree and Blueprint Integration

When designing Behavior Trees for game AI, it’s very common that you will need to build game-specific functionality into the Behavior Tree system. This might be so that your behavior tree can interact with your game’s inventory system, or so that you can toggle the blinking lights on your spaceship on and off. We recognise that Kythera cannot possibly hope to predict every single need of your game, and as such we have made the Kythera AI framework extensible. Users can create their own custom Behavior Tree nodes to access their game-specific code.

Until recently, these custom Behavior Tree nodes could only be created from C++. This meant that any time a user wished to add a new behavior tree node, they needed to involve a coder- a fairly serious limitation for projects where the AI is created by designers, and not programmers.

That is why we have added a new feature to our Unreal Engine plugin: Blueprint Behavior Tree Nodes.

By simply inheriting from the KytBTNode Blueprint class and overriding the functions DoEnter, DoUpdate and DoCleanup, designers can create a new Behavior Tree node in minutes. You have full access to the Blackboard and the Controller of the character running the Behavior Tree, and you can call any Blueprint functions that you want from your functions. Once you create the node, it is automatically added to the Behavior Tree Editor where it is treated like any other Behavior Tree node.

We also support passing parameters to the node as inputs and outputs. We can map Blueprint member variables to node input and output fields, giving you the flexibility to express whatever functionality you need in your Behavior Tree node.

Get in touch today to arrange an evaluation of the Kythera AI plugin for Unreal!