UE4每日学习笔记_AI篇(四)

EQS系统

前期准备

1.创建以下几个类文件

1_1>创建必要的文件

UE4每日学习笔记_AI篇(四)

其中EQC_C是继承自EnvQueryContextBlueprintBase的类

1_2>对EQC_C修改

UE4每日学习笔记_AI篇(四)

对这个方法重载,用一个玩家角色作为返回值


 

2.对EQSAIController的操作

2_1>先添加视觉组件

UE4每日学习笔记_AI篇(四)


2_2>重载AI感知中,当AI感知发生变化方法(视觉)

UE4每日学习笔记_AI篇(四)

 代码解释:先保存看到的Actor,判断看到的Actor是否含有Player标签,并且是看到的情况下

设置黑板值(下图).SeePlayer为true,并设置看到的PlayerActor黑板值为Actor(看到的物体)

如果没看到,就先执行看不到玩家代码,然后过5s后执行PlayerActor为空的函数.

2_2>黑板值补充

UE4每日学习笔记_AI篇(四)

注:其中PointActor的Object的BaseClass为Actor

2_3>上图函数方法补充

UE4每日学习笔记_AI篇(四)

UE4每日学习笔记_AI篇(四)


3.对于EQS_FindPlayer 的书写

 3_1>打开EQS场景查询,在下面添加一个PointGrid,并修改网格范围大小.

UE4每日学习笔记_AI篇(四)

 3_2>添加一个追踪测试一个距离测试并设置参数如下

UE4每日学习笔记_AI篇(四)

UE4每日学习笔记_AI篇(四)注:距离测试是对返回的项目计分,-1是离得近的得高分,1是离得远的分数高


4.对于行为树EQS_BT的编写

UE4每日学习笔记_AI篇(四)

 行为树如图所示


5.关于随机找点的复习

UE4每日学习笔记_AI篇(四)

此方法在AI篇前面文章用过,此处不过多解释


6.一些细节部分 

6_1>最后别忘了在AI控制器中运行行为树

6_2>别忘了给第三人称角色类加标签

6_3>别忘了添加导航网格部分内容.


7.功能演示 

角色被巡逻的AI发现后,如果视野被挡住,AI会自己找附近点位置,使得自己能看到角色,如果角色距离太远看不到超过5s后,AI就会重新巡逻.

 

UE4每日学习笔记_AI篇(四)


 

 


 

 

上一篇:【UE4】帧数据获取与转换


下一篇:UE4之宠物系统——01