UE4 AI制作

一、创建AIcontroller的蓝图类,行为树BehaviorTree和黑板Blackboard

在这里插入图片描述
在创建蓝图类里搜索AIController即可找到ALcontroller类
黑板和行为树都在右击内容浏览器的Artificial Intelligence里

二、在AIcontroller里绑定行为树

target为self就行
BTAsset为AI controller绑定的行为树,我的理解是AIcontroller使用行为树来进行对AI的控制,所以AIcontroller里可以什么都没有,将所有的控制内容全部放在行为树里即可。

三、在黑板里放入变量

在这里插入图片描述
newkey添加变量,这里面的变量相当于AIController的变量,不过我们不用AIcontroller,就将行为中需要的变量放在黑板里。

四、行为树中添加内容

  1. Task(任务):控制AI执行任务
  2. Decorator(装饰器):大多用于判断节点(相当于行为书中的Branch)
  3. Service:用于检查和更新黑板的数据

在这里插入图片描述

1.Decorator

在这里插入图片描述
我的这个装饰器是用来检测AI周围是否有玩家
先在左边的function里重写(Override)Perform Condition Check AI,就会生成一个头节点和一个尾节点,尾节点把return value勾选可以将这个装饰器蓝图类里的公开的成员变量暴露出去给其装饰节点
一般装饰器作为判断节点都要有参数作为判断条件,比如这里我的参数是TargetPlayer就setBlackBoardvalueasObject(我这Target Player是个对象所以采用Object)将key节点提升为变量并将其变成public变量(就是将左边的浏览器里的此变量的那个眼睛打开,这个眼睛打开就是将这个变量变成public变量并允许returnvalue暴露出去。)在行为树中装饰器也要将Target Player绑定到对应的黑板变量(点击装饰器左边的details里default里进行绑定)
在这里插入图片描述

如果你和我一样是对Object进行检测,别忘了在黑板中将对应的变量进行更具体的分类,比如我这里的就是Third PersonCharacter类在这里插入图片描述

这里注意看我的行为树里装饰器下的装饰节点(在添加装饰器的里面有个blackboard,选那个就是相当于给这个sequence进行判断,如果这个blackboard节点的判断条件正确则执行,如果失败则按顺序进入同层下一个sequence在这里插入图片描述

2.Service

在这里插入图片描述
重写Event Receive Tick AI(和普通蓝图类里的TickEvent差不多都是每帧判断)和装饰器一样将变量暴露出去,只不过他不需要return value。

3.Task

Move To 和Wait都是自带就有的,你也可以自己写自己需要的Task比如我这里的AIAttack
在这里插入图片描述
重写Event Receive Execute AI
我这里是让我的小鳄鱼(AI)执行一个攻击的动作(动作在小鳄鱼的character类里,是个自定义事件)
task结束记得假上Finish Execute sucess打勾才能执行行为树的下一个Task。

注意MoveTo需要有可移动范围,如下图所示将Nav Mesh Bound Volume 拖入场景就行(按P显示其可移动范围)在这里插入图片描述

这样我们就可以做一个简单的人工智障啦

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值