22_ue4进阶末日生存游戏开发[EQS]

EQS:环境查询系统

功能:1.按照规则生成点 2.跟踪搜寻目标 3.过滤目标

打开编辑器偏好设置

22_ue4进阶末日生存游戏开发[EQS]_第1张图片

 搜索eqs

22_ue4进阶末日生存游戏开发[EQS]_第2张图片

 我们得打勾

22_ue4进阶末日生存游戏开发[EQS]_第3张图片

有什么变化呢?

创建AI的时候,出现了一个eqs

22_ue4进阶末日生存游戏开发[EQS]_第4张图片

 创建一个eps

22_ue4进阶末日生存游戏开发[EQS]_第5张图片

进去之后,发现还是树形的。

22_ue4进阶末日生存游戏开发[EQS]_第6张图片

我们创建这个节点,这个节点的意思是以使用者为圆心,在圆上创建几个点

22_ue4进阶末日生存游戏开发[EQS]_第7张图片

 22_ue4进阶末日生存游戏开发[EQS]_第8张图片

 这些是比较重要的参数

22_ue4进阶末日生存游戏开发[EQS]_第9张图片

 这样看挺抽象的,我们把这些进行可视化,需要新建一个蓝图

22_ue4进阶末日生存游戏开发[EQS]_第10张图片

 重命名testpawn

22_ue4进阶末日生存游戏开发[EQS]_第11张图片

我们把我们创建好的eqs拉进去

22_ue4进阶末日生存游戏开发[EQS]_第12张图片 22_ue4进阶末日生存游戏开发[EQS]_第13张图片

 把这个可视化蓝图拉到场景中

22_ue4进阶末日生存游戏开发[EQS]_第14张图片

我们把僵尸与可视化蓝图重合,就能得到僵尸生成的点

22_ue4进阶末日生存游戏开发[EQS]_第15张图片 修改eqs参数,看效果

22_ue4进阶末日生存游戏开发[EQS]_第16张图片

发现点变得稀疏了

22_ue4进阶末日生存游戏开发[EQS]_第17张图片 给eqs换个节点,看一下效果

22_ue4进阶末日生存游戏开发[EQS]_第18张图片

 效果是散射状的

22_ue4进阶末日生存游戏开发[EQS]_第19张图片

再换一个节点

22_ue4进阶末日生存游戏开发[EQS]_第20张图片

 成了菊花类型的

22_ue4进阶末日生存游戏开发[EQS]_第21张图片

 此外还还有网格形式的,等等,自己去尝试。

22_ue4进阶末日生存游戏开发[EQS]_第22张图片

 除了生成点以外,还有搜寻功能节点。

22_ue4进阶末日生存游戏开发[EQS]_第23张图片

 为了能搜寻主角,要在参数里设置主角的蓝图类

22_ue4进阶末日生存游戏开发[EQS]_第24张图片

打上勾就是以半径范围内进行搜索,不打勾就是全图进行搜索。

22_ue4进阶末日生存游戏开发[EQS]_第25张图片

 在场景中看一下效果

现在是这个样子

22_ue4进阶末日生存游戏开发[EQS]_第26张图片

向主角移动可视化蓝图,发现主角亮了。 

22_ue4进阶末日生存游戏开发[EQS]_第27张图片

------------------------------------------------------------------------------------------------------------------------

最后的过滤功能直接以这个项目为例: 

重命名eqs

22_ue4进阶末日生存游戏开发[EQS]_第28张图片

先添加追踪节点

22_ue4进阶末日生存游戏开发[EQS]_第29张图片然后添加过滤

首先过滤是否可到达

22_ue4进阶末日生存游戏开发[EQS]_第30张图片

 22_ue4进阶末日生存游戏开发[EQS]_第31张图片

 修改参数,只过滤,不用打分

22_ue4进阶末日生存游戏开发[EQS]_第32张图片

再添加方向过滤

22_ue4进阶末日生存游戏开发[EQS]_第33张图片

 22_ue4进阶末日生存游戏开发[EQS]_第34张图片

 设置只过滤不打分,过滤条件是最小值0.7,最大值1

22_ue4进阶末日生存游戏开发[EQS]_第35张图片

模式由3d改成2d

22_ue4进阶末日生存游戏开发[EQS]_第36张图片

添加障碍物过滤

22_ue4进阶末日生存游戏开发[EQS]_第37张图片

 22_ue4进阶末日生存游戏开发[EQS]_第38张图片

这个勾要去掉,因为我们要过滤中间有格挡的。

22_ue4进阶末日生存游戏开发[EQS]_第39张图片

这个eqs就可以代替昨天写的逻辑了。

在行为树里面删掉这个服务。

22_ue4进阶末日生存游戏开发[EQS]_第40张图片

然后节点选择run eqs

22_ue4进阶末日生存游戏开发[EQS]_第41张图片

选择我们刚刚创建的eqs

22_ue4进阶末日生存游戏开发[EQS]_第42张图片

 22_ue4进阶末日生存游戏开发[EQS]_第43张图片

 随机找点的任务,我们也可以用eqs替代。

首先我们再新建一个,命名为FindRamPoint。

22_ue4进阶末日生存游戏开发[EQS]_第44张图片

22_ue4进阶末日生存游戏开发[EQS]_第45张图片

22_ue4进阶末日生存游戏开发[EQS]_第46张图片

 调整参数,点不需要这么密

22_ue4进阶末日生存游戏开发[EQS]_第47张图片

22_ue4进阶末日生存游戏开发[EQS]_第48张图片

为了不让僵尸按照一个方向的点巡逻,我们要加入打分机制。

 越跟我们朝向不一样的点,我们打分越高。

还是使用dot来计算

22_ue4进阶末日生存游戏开发[EQS]_第49张图片

 模式是只打分

22_ue4进阶末日生存游戏开发[EQS]_第50张图片

模式改成2d

22_ue4进阶末日生存游戏开发[EQS]_第51张图片

 方向越不一样,dot的值越小,得分越高。所以我们这样设置

22_ue4进阶末日生存游戏开发[EQS]_第52张图片

 丢弃不可到达的点,再加一个过滤,参数不用改

22_ue4进阶末日生存游戏开发[EQS]_第53张图片

 添加这个,来替换原来的task

22_ue4进阶末日生存游戏开发[EQS]_第54张图片

 22_ue4进阶末日生存游戏开发[EQS]_第55张图片

 我们需要指定叶子节点的eqs,发现有两个可以指定的地方,一个是node,一个是eqs

22_ue4进阶末日生存游戏开发[EQS]_第56张图片

 建议使用eqs,node是为了兼容老版本才保留的。

22_ue4进阶末日生存游戏开发[EQS]_第57张图片

运行模式选择这个,因为我们希望僵尸每次在前百分之二十五最符合条件的点去随机选。

22_ue4进阶末日生存游戏开发[EQS]_第58张图片

 设置要控制的值

22_ue4进阶末日生存游戏开发[EQS]_第59张图片

 测试成功。

这是巡逻点的打分

22_ue4进阶末日生存游戏开发[EQS]_第60张图片

 机器人每次更倾向于往这个方向移动,这样先得太死板。

我们希望机器人往自己的左后方,和右后方的百分之二十五的方向移动

我们可以添加过滤器。过滤掉自己后方的点。

首先设置成过滤加打分

22_ue4进阶末日生存游戏开发[EQS]_第61张图片

 获得选点范围-0.8到1

22_ue4进阶末日生存游戏开发[EQS]_第62张图片

 效果

22_ue4进阶末日生存游戏开发[EQS]_第63张图片

现在休息的时间有点长了,我们让他休息3+-1.5s

22_ue4进阶末日生存游戏开发[EQS]_第64张图片 

 

你可能感兴趣的:(ue4)