标签:场景 AI 查询器 Actor 查询 测试 UE4 基本概念
什么是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前面还是在后面
(待补充)
标签:场景,AI,查询器,Actor,查询,测试,UE4,基本概念 来源: https://blog.csdn.net/qq_35337794/article/details/121705906
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。