UE4每日学习笔记_AI篇基本概念

20 篇文章 5 订阅

什么是EQS(环境查询系统)?

是UE4AI系统的一个功能,用于从周围环境中收集数据
在EQS中,可以通过不同种类的测试向收集的数据提问,
这些测试会根据提出问题的类型来生成最适合的项目


生成器 

比如EQS_FindPlayer中的SimpleGrid,是生成器,用于产生将要测试和加权的
位置或Actor,生成的是一个范围,一个形状


测试节点


主要是用于测试距离,自定义的边界,点,或者追踪某些命中或没命中的事件,还有
寻路的长度等等.

在Trace追踪测试中
蓝色代表过滤掉的位置,即不选择
红色是保留位置,即选择位置

Trace测试:
在场景查询的结果中,通过测试向结果提问,来过滤或选择出最优值.
Distance测试
根据不同测试选最优值,绿色比其他颜色更优先选择


情境

情境是为使用的所有测试或者生成器提供参考框架,可以是简单的查询
器,也可以很复杂,例如某种类型的所有Actor

可以简单理解为:什么地方要测试,或者谁需要测试

场景查询测试Pawn

通过把这个拖入场景,在编辑器里修改数值,可以提前看到查询测试变化,对应的范围变化,和查询颜色变化

 


允许控制器作为EQS查询器

项目设置中打钩后
允许将玩家或者AI在控制的Pawn,作为一个查询器使用
目前个人理解就是:原先是Test拖入场景的Pawn,现在可以作为AI,移动查询使用了.


 

EQS查询器中节点概念理解

1:ActorsofClass


生成器在搜索中心,周围特定的半径内,查找给定类的所有Actor
返回的Actor可以作测试的项目使用.

其中Actor可以被视为包含特殊类型对象的容器.
注意:这个搜索不受关卡中视角,地形的影响,只要在范围内,就能找到

 


 

2:情境


EnvQueryContext_Querier
项目中的EQC_C,就是指的查询器,

是当前被AI控制器控制的Pawn,执行启动场景查询的行为树,举个栗子
可以使用查询器作为情境的一种情况是:
我希望在AI角色周围的场景中搜索它们可以使用的物品,或者寻找可以使其获得
掩护躲避玩家的地方,或者只是确定AI执行查询的当前所在位置

简单理解是:以谁为查询中心,或参照物,物体,敌人,友方?

当设置为EnvQueryContext_Item时
如果打开仅生成半径中的Actor选项,则无法搜寻场景中玩家
去掉后,表示在整个场景中找玩家,无距离限制.

当设置为EnvQueryContext_Querier时
如果打开仅生成半径中的Actor选项,则表示在范围内搜索玩家
去掉后,表示在整个场景中找玩家,无距离限制.


 

自定义情境


重载函数中提供了一个.多个位置的数组
一个,多个Actor的排列
在Point:Grid中,会在GenerateAround下制定的查询器周围生成项目(item)网格


 

Dot测试


计算两个矢量的点积,利用点积的特性,这些矢量可以是情境选择,也可以是从一个点
到另一个点的矢量,用于确定是否有某些东西面向其他东西.
若两个矢量点积大于0,那他们方向朝向相近,小于0则方向相反,判断在player前面还是在后面

(待补充)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值