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

20 篇文章 5 订阅
该博客介绍了如何在Unreal Engine 4中实现AI的智能寻路和视觉感知功能。通过创建自定义的EnvQueryContext蓝图类,设置AI控制器的视觉组件,以及编写行为树,AI能够感知到带有Player标签的角色,并根据视线遮挡或角色距离进行动态寻点。当AI失去对角色的视线时,会在附近寻找新的观察点,如果超过5秒仍无法看到目标,则会恢复巡逻。博客详细阐述了每个步骤的技术细节和代码实现。
摘要由CSDN通过智能技术生成

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就会重新巡逻.

 


 

 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值