在人工智能里创建黑板
在人工智能里面创建一个行为树
再创建一个蓝图类,搜索AIcontroller并创建
这几个类的关系如下,小白人就是演员,aicontroller蓝图就是导演,行为树就是编写演员的行为,黑板就像大脑,存储变量
双击黑板,新建变量
新建一个布尔值
新建一个向量
双击点开AIcontroller,添加AI感知组件,用于感测周边的一些东西。
增加AI感知
单机AI感知组件,添加感官
我们先来添加视觉感官
这里打上勾,才能检测玩家。
添加感知组件的目标感知更新时事件
类型转换thirdpersoncharacter
这里没有????这是我的第一个坑
解决方法
小白人拖入场景中
然后再转换成小白人的类型就可以了
设置刺激物
打印AI是否看到小白人
让AI使用我们新创建的AI控制器
打开AI蓝图,点击类的默认值
选择我们新建的AI控制器
打开AI行为树
添加选择节点
添加两个序列合成节点
给序列合成节点添加装饰器
鼠标右键点击节点,添加黑板
目的是为了调用黑板中的变量
先给黑板重命名
点击行为树的空白
会出现这个地方
选择你的黑板
此时我们的根就变了(大脑换了)
左键点击黑板,选择是否看到玩家这个变量
右边节点也是同样操作,效果如下
右边的节点的变量要改为未设置
已设置就是true,未设置就是false
将他们优先级设为同一级,全部设成both
再次修改aicontroller的蓝图
先删掉那两个节点
获取黑板,并修改其中的布尔变量
这样就可以实时改变布尔变量了
重命名为随机找点
添加函数,覆盖,接受执行AI
之前我们用ai蓝图写的,记得要断掉, 要不然程序会混乱。
我们把有用的节点复制到那边去
连线
添加完成执行节点,当任务完成后,行为树会再运行一遍,或者去做下一个任务
如果没有看到玩家就随机找点
’
添加时间等待任务,等待5s
aicontroller关联行为树
添加新任务,看到玩家之后就跟着玩家
依旧是覆盖函数
连线
添加行为树
目前我的有两个错误
1.随机找点的完成执行节点没有打勾,这个要打勾才能真正结束一个事件
2.跟随玩家那里,也是需要相同的操作,也要完成执行节点
切记,只有完成当前任务才能继续下一个任务。
编译,测试成功。
让AI一直朝向我们
点开AI的蓝图类,再charactermovement里面,搜索朝向,然后取消那个勾
在跟随玩家任务蓝图里面添加设置焦距节点
打开AI蓝图,点开类默认值
这里打勾。
看不到玩家的时候关闭聚焦
打开随机选点任务蓝图
添加清除焦距节点,在随即找点蓝图里