Course contentsShow
← Unreal Engine Game Development
Lesson 418 of 8806. AI, Navigation, and Decision MakingFree lesson

Creating Custom Blueprint Tasks

You will develop reusable Task nodes to execute specific logic, such as playing animations or moving to a target location.

In this lesson, you will learn how to encapsulate reusable AI logic into custom BTTask_BlueprintBase nodes to keep your Behavior Trees clean, modular, and easy to maintain.

Why Custom Tasks?

While Unreal provides built-in nodes like "Move To" or "Wait," real-world game logic often requires specific sequences—like playing a custom animation montage, toggling an object’s state, or resetting a Blackboard key. Instead of cluttering your Behavior Tree with generic nodes, you can create a Custom Blueprint Task to package that logic into a single, reusable "black box" that you can drop into any AI controller.

The Anatomy of a Custom Task

To create a custom task, create a new Blueprint class derived from BTTask_BlueprintBase. When you open it, you aren't using the standard Event Graph; instead, you override specific functions:

  • Receive Execute AI: This is the entry point. It triggers when the Behavior Tree reaches this node.
  • Finish Execute: This is critical. Because AI tasks are often latent (they take time to complete), the tree won't proceed to the next node until you explicitly call Finish Execute. You must pass a boolean indicating whether the task succeeded or failed.

For example, if you want your AI to play a "Cheer" animation:

  1. In Receive Execute AI, get the Controlled Pawn and cast it to your character class.
  2. Call Play Anim Montage on the character.
  3. Use the OnCompleted or OnInterrupted delegates of the animation to trigger Finish Execute.
// Logic flow inside your custom Task Blueprint:
Event Receive Execute AI (OwnerController, ControlledPawn)
    -> Play Anim Montage (MyCheerAnim)
    -> Set Timer by Event (or bind to OnMontageEnded)
    -> Finish Execute (Success = True)

By encapsulating this in a task, you can simply add "BTTask_PlayCheer" to your Behavior Tree, exposing parameters like "Montage To Play" directly in the Details panel. This turns your complex behavior logic into a library of modular, human-readable building blocks that any level designer can drag and drop.

Key Takeaway: Custom Blueprint Tasks allow you to wrap complex, latent logic into reusable nodes, ensuring your Behavior Trees remain readable and your AI logic remains modular.