This article was designed to provide users with a basic overview of the features and functionality of UE General AI Framework.
General AI Framework is a basic framework to design AI for UE Game. The framework will provide several basic behaivor trees to control AI and can be used to create different type of AI. Also, you can improve these behavior trees on your own. The framework can be easily applied to different projects and you can create different AI controller under the same framework.
Following blew steps, you will use this framework quickly.
(1) Migrate the framework to your project
Move the folder AI_Framework into your own project.
(2) Create your own AI controller and implement BP_AIGeneralActionInterface
You have to implement the interfaces of BP_AIGeneralActionInterface for your customized AI.
An example is given in blueprint “BP_AITestControllerA” and “BP_AITestControllerB”, located in Example/Blueprints/AI folder.
(3) Definition of Interfaces
CheckRootStateChanged: Update AI state at every frame and the state: Init, Idle, Move, Fight, NearDead, Dead.
InitStateProcess: The initial operations for AI.
IdleActionProcess: The AI action when AI state is Idle.
UpdateMoveDestination: Update AI move destination at every frame and the target destination can be an Actor or a Location.
ActionAfterMove: The AI action after moving stop.
CheckEnemy: Update ememy at every frame with different strategies.
ActionBeforeAttack: The AI action just before attacking enemy.
AttackEnemy: Different type of attacks on ememy.
ActionOnNearDeath: The AI action when dying, such as try to escape or get some help.
Notice, The return parameter WaitAfterAction is the wait time after function has been called, which is the same role as Wait task node in behavior tree.
(4) Spawn AI and run behaivor tree
Spawn your own AI and possess it by your controller created in step (1). An example is given in blueprint “BP_AISpawnSpot” and “BP_AITriggerBox”, located in Example/Blueprints/AI folder.
(5) Add NavMeshBoundsVolume into your level
For AI Navigation, you should add NavMeshBoundsVolume to your level. An example map is given in Maps folder, named “M_Battle”.
In the event you are unable to find the information you seek, feel free to contact easycomplex.tech@gmail.com.
[2] UE4 Marketplace