28_ue4[AI]03_AI行为树随机移动跟随移动

在人工智能里创建黑板

28_ue4[AI]03_AI行为树随机移动跟随移动_第1张图片

 在人工智能里面创建一个行为树

28_ue4[AI]03_AI行为树随机移动跟随移动_第2张图片

再创建一个蓝图类,搜索AIcontroller并创建

28_ue4[AI]03_AI行为树随机移动跟随移动_第3张图片

28_ue4[AI]03_AI行为树随机移动跟随移动_第4张图片

这几个类的关系如下,小白人就是演员,aicontroller蓝图就是导演,行为树就是编写演员的行为,黑板就像大脑,存储变量

双击黑板,新建变量

28_ue4[AI]03_AI行为树随机移动跟随移动_第5张图片

 新建一个布尔值

28_ue4[AI]03_AI行为树随机移动跟随移动_第6张图片

新建一个向量

28_ue4[AI]03_AI行为树随机移动跟随移动_第7张图片

 双击点开AIcontroller,添加AI感知组件,用于感测周边的一些东西。

28_ue4[AI]03_AI行为树随机移动跟随移动_第8张图片

28_ue4[AI]03_AI行为树随机移动跟随移动_第9张图片

 增加AI感知

单机AI感知组件,添加感官

28_ue4[AI]03_AI行为树随机移动跟随移动_第10张图片

 我们先来添加视觉感官

28_ue4[AI]03_AI行为树随机移动跟随移动_第11张图片

这里打上勾,才能检测玩家。

28_ue4[AI]03_AI行为树随机移动跟随移动_第12张图片

 添加感知组件的目标感知更新时事件

28_ue4[AI]03_AI行为树随机移动跟随移动_第13张图片

28_ue4[AI]03_AI行为树随机移动跟随移动_第14张图片

类型转换thirdpersoncharacter

28_ue4[AI]03_AI行为树随机移动跟随移动_第15张图片

 这里没有????这是我的第一个坑

解决方法

小白人拖入场景中

28_ue4[AI]03_AI行为树随机移动跟随移动_第16张图片

然后再转换成小白人的类型就可以了

28_ue4[AI]03_AI行为树随机移动跟随移动_第17张图片

设置刺激物

28_ue4[AI]03_AI行为树随机移动跟随移动_第18张图片

 打印AI是否看到小白人28_ue4[AI]03_AI行为树随机移动跟随移动_第19张图片

 让AI使用我们新创建的AI控制器

打开AI蓝图,点击类的默认值

28_ue4[AI]03_AI行为树随机移动跟随移动_第20张图片

选择我们新建的AI控制器

28_ue4[AI]03_AI行为树随机移动跟随移动_第21张图片

打开AI行为树

添加选择节点

28_ue4[AI]03_AI行为树随机移动跟随移动_第22张图片

28_ue4[AI]03_AI行为树随机移动跟随移动_第23张图片

添加两个序列合成节点

28_ue4[AI]03_AI行为树随机移动跟随移动_第24张图片

 给序列合成节点添加装饰器

鼠标右键点击节点,添加黑板

28_ue4[AI]03_AI行为树随机移动跟随移动_第25张图片

28_ue4[AI]03_AI行为树随机移动跟随移动_第26张图片

目的是为了调用黑板中的变量

先给黑板重命名

28_ue4[AI]03_AI行为树随机移动跟随移动_第27张图片

点击行为树的空白

会出现这个地方

28_ue4[AI]03_AI行为树随机移动跟随移动_第28张图片

 选择你的黑板

28_ue4[AI]03_AI行为树随机移动跟随移动_第29张图片

 此时我们的根就变了(大脑换了)

28_ue4[AI]03_AI行为树随机移动跟随移动_第30张图片

 左键点击黑板,选择是否看到玩家这个变量

28_ue4[AI]03_AI行为树随机移动跟随移动_第31张图片

右边节点也是同样操作,效果如下

28_ue4[AI]03_AI行为树随机移动跟随移动_第32张图片 右边的节点的变量要改为未设置

28_ue4[AI]03_AI行为树随机移动跟随移动_第33张图片

 已设置就是true,未设置就是false

将他们优先级设为同一级,全部设成both

28_ue4[AI]03_AI行为树随机移动跟随移动_第34张图片

 再次修改aicontroller的蓝图

先删掉那两个节点

28_ue4[AI]03_AI行为树随机移动跟随移动_第35张图片

获取黑板,并修改其中的布尔变量

28_ue4[AI]03_AI行为树随机移动跟随移动_第36张图片

 这样就可以实时改变布尔变量了28_ue4[AI]03_AI行为树随机移动跟随移动_第37张图片

 28_ue4[AI]03_AI行为树随机移动跟随移动_第38张图片

重命名为随机找点 

28_ue4[AI]03_AI行为树随机移动跟随移动_第39张图片

 添加函数,覆盖,接受执行AI

28_ue4[AI]03_AI行为树随机移动跟随移动_第40张图片

28_ue4[AI]03_AI行为树随机移动跟随移动_第41张图片 之前我们用ai蓝图写的,记得要断掉, 要不然程序会混乱。

28_ue4[AI]03_AI行为树随机移动跟随移动_第42张图片

我们把有用的节点复制到那边去

28_ue4[AI]03_AI行为树随机移动跟随移动_第43张图片

连线

28_ue4[AI]03_AI行为树随机移动跟随移动_第44张图片

 添加完成执行节点,当任务完成后,行为树会再运行一遍,或者去做下一个任务

28_ue4[AI]03_AI行为树随机移动跟随移动_第45张图片

如果没有看到玩家就随机找点

28_ue4[AI]03_AI行为树随机移动跟随移动_第46张图片 

28_ue4[AI]03_AI行为树随机移动跟随移动_第47张图片

 添加时间等待任务,等待5s

28_ue4[AI]03_AI行为树随机移动跟随移动_第48张图片

 aicontroller关联行为树

28_ue4[AI]03_AI行为树随机移动跟随移动_第49张图片

28_ue4[AI]03_AI行为树随机移动跟随移动_第50张图片

添加新任务,看到玩家之后就跟着玩家

28_ue4[AI]03_AI行为树随机移动跟随移动_第51张图片

依旧是覆盖函数

28_ue4[AI]03_AI行为树随机移动跟随移动_第52张图片

 连线

28_ue4[AI]03_AI行为树随机移动跟随移动_第53张图片

 添加行为树

28_ue4[AI]03_AI行为树随机移动跟随移动_第54张图片

目前我的有两个错误

1.随机找点的完成执行节点没有打勾,这个要打勾才能真正结束一个事件

28_ue4[AI]03_AI行为树随机移动跟随移动_第55张图片

 2.跟随玩家那里,也是需要相同的操作,也要完成执行节点

28_ue4[AI]03_AI行为树随机移动跟随移动_第56张图片

 切记,只有完成当前任务才能继续下一个任务。

编译,测试成功。

让AI一直朝向我们

点开AI的蓝图类,再charactermovement里面,搜索朝向,然后取消那个勾

28_ue4[AI]03_AI行为树随机移动跟随移动_第57张图片

 28_ue4[AI]03_AI行为树随机移动跟随移动_第58张图片

在跟随玩家任务蓝图里面添加设置焦距节点

 打开AI蓝图,点开类默认值

28_ue4[AI]03_AI行为树随机移动跟随移动_第59张图片

28_ue4[AI]03_AI行为树随机移动跟随移动_第60张图片 

这里打勾。

看不到玩家的时候关闭聚焦

打开随机选点任务蓝图

添加清除焦距节点,在随即找点蓝图里

28_ue4[AI]03_AI行为树随机移动跟随移动_第61张图片

 

 

 

你可能感兴趣的:(ue4)