人工智能学习

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

本文主要是介绍UE4每日学习笔记_AI篇(四),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

EQS系统

前期准备

1.创建以下几个类文件

1_1>创建必要的文件

其中EQC_C是继承自EnvQueryContextBlueprintBase的类

1_2>对EQC_C修改

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


 

2.对EQSAIController的操作

2_1>先添加视觉组件


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

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

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

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

2_2>黑板值补充

注:其中PointActor的Object的BaseClass为Actor

2_3>上图函数方法补充


3.对于EQS_FindPlayer 的书写

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

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

注:距离测试是对返回的项目计分,-1是离得近的得高分,1是离得远的分数高


4.对于行为树EQS_BT的编写

 行为树如图所示


5.关于随机找点的复习

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


6.一些细节部分 

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

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

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


7.功能演示 

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

 


 

 


 

 

这篇关于UE4每日学习笔记_AI篇(四)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!