UHLBehaviorTree - pack of helpfull AI nodes for behavior tree. Most needed AI nodes toolset for developing at least 3d-action AI - GameplayFocus, Random choices using RandomChance and RandomSelector, PlayAnimMontage to play attacks animations, InRange and InAngle to check distance to enemy and required angle
Support: UE5.4 (at least) - UE5.6
- AI nodes
GameplayFocus- set focus on actorRandomChance- randomize actionsInRange- check distance to enemyInAngle- check angle to enemyPlayAnimMontage- play attack animationSetBBValue- set blackboard valueDebugPrintBBValue- print blackboard valueDebugPrintString- print string on screenInvokeGameplayAbility- activate/deactivate GAS Gameplay Ability by tag, with optional "wait for finishing"TurnTo- turn enemy using turn animations
// install as git submodule to your plugins folder
git submodule add https://github.com/Ciberusps/UHLAI.git ./Plugins/UHLAI
git submodule add https://github.com/Ciberusps/UHLBehaviorTree.git ./Plugins/UHLBehaviorTree
// to update plugin
git submodule update --remote`
- Composite
- Services
- Decorators
- Tasks
⚒️ InProgress
Select random child node using weights
With cool validations
BTD_CheckGASGameplayTagsOnActor - checks that actor has GAS gameplay tags specified.
Warning
Don't mess with UBTDecorator_CheckGameplayTagsOnActor - its only checks GameplayTags on actor itself not on AbilitySystem.
Requirements:
- actor should implement
IAbilitySystemInterfaceto getAbilitySystemComponent
BTD_InAngle - decorator to check is enemy in one of specified angle ranges. Useful in developing big enemies, for example we developing dragon we want to know is player under the right wing or leg, is player in front of dragon or behind and so on.
BTD_InRange - decorator to check distance between actors. Compliant with "MoveTo" node have same settings bIncludeSelfCapsuleRadius and bIncludeTargetCapsuleRadius to check distance excluding capsules radiuses
BTD_LoopRandomCount - randomized version of decorator Loop
BTD_TimeLimitRandom - randomized version of decorator TimeLimit
BTD_RandomChance - commonly used decorator to randomize actions. Fine for single child node, extra bad for multiple nodes due to chance regression, for randomization between multiple child nodes better to use RandomSelector
BTS_SetGameplayFocus - alternative for "Set default focus". SetGameplayFocus made right way - prevents rotation jittering while enemy rotation. One of most common problems that anybody stucks when starting developing AI - "focus dont work"/"focus works wrong".
Requirements:
- turn on
UseControllerDesiredRotation - turn off
bOrientRotationToMovementUseControllerRotationYawUseControllerRotationPitchUseControllerRotationRoll
Troubleshooting:
- check that nothing "ClearFocus"
- check that MoveTo uses "AllowStafe"
BTT_SetBBValue - helps settings values in blackboard, supports all blackboard types and for some values event provides opportunity to make calculations like int
BTT_DebugPrintBBValue - prints BB value of any type
BTT_DebugPrintString - simple task for printing debug info on screen
BTT_InvokeGameplayAbility - activate/deactivate GAS Gameplay Ability by tag, with optional "wait for finishing"
BTT_PlayAnimMontage - play anim montage with option to customize PlayRate, Starting Position, Start Section Name and stopping montage on task abort
BTT_TurnTo - turn to enemy using turn animations
Drop in replacement for "RotateToFaceBBEntry" but with option to "RotateTo" with animations
To get settings from actor requires IUHLActorSettings to be implemented on character


















