8、 寻路网格体和Gameplay调试器

为了及时识别出AI系统中的导航问题,UE4提供了一个工具用来解决这类问题,它叫Gameplay调试器。打开项目设置,在左侧找到“引擎”,然后找到“Gameplay debugger”。查看“输入分段”,检查激活键有没有绑定。记住绑定的键盘键,然后播放游戏,通过快捷键打开“Gameplay debugger”,然后看向AI所在的位置,在屏幕上会出现许多信息并在不断更新。按“shift+F1”会出现光标,点击暂停,我们可以仔细看显示的参数。在左上方,我们可以看到一个列表,提示我们可以按哪些键来显示Gameplay调试器中的各种功能,它可以告诉我们Gameplay调试器绑定了哪个键。表下面是调试器最重要的几个功能,导航网格体、AI、行为树、EQS和感知。继续播放,按“Tab”键可以进入旁观者模式。

其中,数字键0对应着左上角信息中导航网格体信息的展示或关闭,数字键1对应着AI相关的信息,数字键2对应着行为树信息。

9、AI感知原理

在本模块中,我们将对AI感知系统一探究竟,了解如何将它们整合到AI中,以及系统中的各个部分如何帮助AI感知整个环境。我们还将了解这些部分如何通过蓝图代码传递它们的信息。

虚幻引擎提供了一个AI感知系统,它能控制Actor的感知内容和能够感知到的场景区域。AI感知系统中有两个关键组件,分别是AI感知组件和AI感知刺激源。AI感知刺激源组件将决定Actor拥有哪些“可感知”属性,而AI感知组件则决定哪些感官可以使用或者被感知到。  AI感知组件这个组件允许我们设置感知系统可以使用哪些感官或“看到”哪些内容。同一个组件中可以添加多种感官。此外,在确定被感知Actor的位置时,你可以通过“主导感官”属性指定优先使用哪种感官进行感知。例如,在视频游戏中,你可能会希望“视觉”优先于“听觉”。

AI感知刺激源:为Actor添加这个组件将决定AI感知系统会注册哪些感官。例如,假如你将某个AI感知刺激源设置为只对视觉产生刺激,那么拥有视觉感官的AI就会感知到这个刺激源Actor。单个组件可以注册多个刺激。

事件和刺激:在确定了场景中会生成哪些Actor作为刺激源后,AI就需要针对这些信息进行思考,并考虑基于它们感知到的信息可能要采取哪些行动。为此,你需要使用On Target Perception Updated事件。这个事件会通过AIStimulus结构体为我们提供有关被感知刺激源的实用信息。此外在项目中,你还会找到许多其他有用的感知事件。你可以在AI感知文档页面中找到这些事件的详细列表。其地址是:“https://docs.unrealengine.com/en-US/Engine/ArtificialIntelligence/AIPerception/index.html”。

AI的感知方式:1、确认来源和刺激源:为了让AI感知到对象,场景中的对象需要添加刺激源组件。2、为了让AI角色感知到刺激,我们腰围AI添加一个AI感知组件。如果某个Actor要成为刺激源,它就必须被赋予一个AI感知刺激源组件。3、感知刺激:如果我们在玩家的AI感知组件中添加“视觉”感官,那么当AI角色看到玩家角色时,它就会检查AI感知组件。如果玩家角色拥有可以被感知的刺激,并且该刺激在AI感知组件中是有效的,那么玩家就会触发AI角色中的On Target Perception Updated事件。

最新文章

  1. js返回顶部效果
  2. public static void Invoke (Action action)
  3. 实现SQL Server 2008 Reporting Services匿名访问报表有两种方法
  4. java基础1_Java数据类型
  5. CSS实现垂直居中
  6. Ubuntu安装Mysql+Django+MySQLdb
  7. win7如何共享文件 图文教你设置win7文件共享
  8. [Node.js] Web Scraping with Pagination and Advanced Selectors
  9. BZOJ 1087 互不侵犯king
  10. 20141014C#面向对象抽象方法,抽象类,接口
  11. s=a+aa+aaa+aaaa+aa...aaaa
  12. 【python】自定义函数def funName():
  13. Linux压缩和解压缩
  14. Qt 获取屏幕信息
  15. OpenStack实践系列⑨云硬盘服务Cinder
  16. 浅析STM32之usbh_def.H
  17. Redis进阶实践之五Redis的高级特性(转载 5)
  18. centos6 ext4修复
  19. java-JSP脚本的9个内置对象
  20. Anaconda之常用命令

热门文章

  1. leaflet加载离线OSM(OpenStreetMap)
  2. Android中TextView和EditView常用属性设置
  3. 剑指 Offer 32 - III. 从上到下打印二叉树 III
  4. 从kratos分析breaker熔断器源码实现
  5. python代码检查工具(静态代码审查)
  6. Python__bs4模块
  7. Vs code添加自定义snippet
  8. 基于ECDHE的TLS握手流程
  9. GO安装golang.org/x/net扩展库
  10. 乐肴2.0环境改名后,需要删除原来的软链接(public/storage)