ai行为树——基础追击敌人

基础追击敌人

基本内容

aicontroller  大脑

character 身体

BT行为树 控制

BB黑板 大脑信息 桥梁

BTD 装饰器 if语句

BTT 任务节点

BTS 更新 获得key

接口 函数集合

初始化角色

1.基本配置    创建一个什么都没有的character

名字为BP_Enemy_Base

创建一个子类继承,名字是BP_Enemy_FDragon

随便你怎么命名

蓝图里只有角色模型和动画蓝图(动画蓝图怎么创建,不在ai行为树内容范围,后续会具体讲解)

在关卡中添加NavMeshBoundsVolume

如果是开放世界得把仅在导航触发器打开,因为可以从角色周围创建导航

如果是体量小的关卡,可以关闭(由于题主在开放世界项目下进行测试,使得出现问题)


2.AI行为树 功能实现和应用

ChasePlayer
 

创建行为树,黑板,AIController 



黑板中创建AttackTarget的Key,并把类型设置为Object下的Actor



行为树中引出moveto 设置 key 为AttackTarget

然后从AIController将AttackTarget添加进黑板中


Attack

在character中创建Attack事件

事件分发器目的是确保动画播放完毕,也可以在蒙太奇设置一些点来实现

创建BTT

将character的attack事件引入到BTT DefaultAttack

记得在character加入aicontroller

focus target
 

但角色位于敌人后面时,敌人并没有根据角色位置发生变化而产生相应的行为
因此创建BTT_focustarget,设置敌人focustarget
 

clear target


但远离敌人时,敌人会发生一个方向朝向角色的bug
因此创建BTT_cleartarget


在character中选择UseContollerDesiredRotation

同时要理清行为树sequence的顺序,来确保敌人行为合理和正常

Equipweapon


根据自身需要可以参加多个BTT
例如遇见角色时,敌人会拔出剑来攻击敌人
因此创建BTT_equipweapon来实现相应逻辑


但是如果本身有剑呢
所以要创建一个装饰器,即if语句BTD_isEquipingWeapon

Bool值设置在character上的equipweapon事件中
BTD_isEquipingWeapon


来判断当前情况,要获得bool值,因此需要再character中取得

然后在BTD中放进装饰器

selector
因为装饰器的出现,就得启用selector
来进行逻辑判断,装备武器时干嘛,没装备武器时干嘛
在装饰器上可以根据自己逻辑来判断是否要反转condition

运行时,敌人会变出武器来攻击角色,由于没设置动画,剑会立马出现

下一篇会完善此敌人,并创建巡逻敌人
完善部分是对敌人的合理化,也是加加功能啥的
创建巡逻敌人,需要创建路线,将路线传入行为树
文章会陆续完善
如果文章出现错误,可在评论区指出,或者私信来共同解决

  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值