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事件。

UE4蓝图AI角色制作(四)之Gameplay调试器的更多相关文章

  1. UE4蓝图AI角色制作(三)

    接上一节 6. 寻路网格体代理 通过允许配置多个"代理",虚幻引擎使得用户能够轻松为大小各异的AI创建寻路网格体.首先,选中世界大纲视图中的"RecastNavMesh& ...

  2. UE4蓝图AI角色制作(七)之追逐玩家

    15.追逐玩家 现在我们的AI无法做出任何决策,它总是执行相同的决策.我们先把感知系统中的相关信息提供给AI,让AI知道如何做出决策,然后我们会修改行为树.我们首先需要创建新的黑板键,这样我们就能在行 ...

  3. UE4蓝图AI角色制作(六)之行为树

    13.行为树原理 AI最重要的环节就是行为树.我们将解释什么是行为树.为何它如此重要,以及构建行为树需要哪些元素. 借助行为树,我们可以轻松控制并显示AI的决策制定过程.行为树是一种将AI在场景中的决 ...

  4. 【摸鱼向】UE4的AI模块探索手记(1)

    前言 之前实现了自主创作的角色导入进UE4并成功控制其进行一系列动作,但目前的样子距离基本的游戏架构还差了一个很大的模块:NPC,而这部分是由电脑来进行自动控制,所以,我有一句话不知当讲不当讲(对,我 ...

  5. UE4简单AI

    首先做个小小的声明把,由于俺之前也没接触过AI ,所以有一些专业的词汇可能翻译存在各种问题,如果你发现的话,还是希望能够提出来哦,我们一起进步. 记住配合视频食用更佳哦~ 视频连接:http://ww ...

  6. UE4蓝图与C++交互——射击游戏中多武器系统的实现

    回顾   学习UE4已有近2周的时间,跟着数天学院"UE4游戏开发"课程的学习,已经完成了UE4蓝图方面比较基础性的学习.通过UE4蓝图的开发,我实现了类似CS的单人版射击游戏,效 ...

  7. UE4蓝图编程的第一步

    认识UE4蓝图中颜色与变量类型: UE4中各个颜色对应着不同的变量,连接点和连线的颜色都在表示此处是什么类型的变量.对于初学者来说一开始看到那么多连接点, 可能会很茫然,搞不清还怎么连,如果知道了颜色 ...

  8. UE4的AI学习(2)——官方案例实例分析

    官方给出的AI实例是实现一个跟随着玩家跑的AI,当玩家没有在AI视野里时,它会继续跑到最后看到玩家的地点,等待几秒后如果仍然看不到玩家,则跑回初始地点.官方的案例已经讲得比较详细,对于一些具体的函数调 ...

  9. [UE4]让AI跑起来

    让AI由静止状态变成跑步状态,做法跟玩家角色走路一样. 一.创建1D混合动画 二.在AI角色关联的动画蓝图中使用第一步创建的混合动画

随机推荐

  1. vue3 项目 用 vue-video-player 做直播 ( 亲测可用 )

    npm 安装 npm install --save vue-video-player npm install --save videojs-flash 1 <template> 2 < ...

  2. 【odoo】【知识杂谈】单一实例多库模式下定时任务的问题分析

    欢迎转载,但需标注出处,谢谢! 背景: 有客户反应有个别模块下的定时任务没有正常执行,是否是新装的模块哪些有问题?排查后发现,客户是在一台服务器上跑着一个odoo容器,对应多个数据库.个别库的定时任务 ...

  3. 性能测试工具JMeter 基础(七)—— 测试元件: 逻辑控制器之if逻辑控制器

    逻辑控制器线程组指定了其取样器执行的逻辑条件.顺序,并且执行顺序是按照位置顺序从上至下执行的 if逻辑控制器(If Controller) 在逻辑控制器中可设置条件,当条件满足的时候才会被执行 一共有 ...

  4. 利用job提升马哈鱼数据血缘分析效率

    利用job提升马哈鱼数据血缘分析效率 一.Job基本知识 前面文章中已介绍马哈鱼的基本功能,其中一个是job,job其实是一个任务集合处理的概念,就是让用户通过job,可以一次递交所有需要处理的 SQ ...

  5. MongoDB(2)- 安装 MongoDB

    MacOS 安装 MongoDB 博主目前都用 mac 电脑练习,所以这里重点讲 MacOS 安装方式 系统要求 MongoDB 4.4 社区版支持 macOS 10.13 或更高版本 安装 Home ...

  6. IKE~多预共享密钥问题~解决方案

    原文链接:Configuring more than one Main-Mode Pre-Shared Key (PSK) *dialup* IPSec phase1 可能需要梯子来翻过高墙.文章内容 ...

  7. Lua io.lines()

    前言# 从文章的题目可以看出,今天的内容是和文件的行相关的,其实这个函可以看成是一个文件读取函数,只不过文件读取的形式固定了,就是只能一行一行的读,接下来我们就一起来看看这个函数究竟要怎么使用. 内容 ...

  8. 集合Collection ----Set集合

    set系列集合:添加的元素是 无序,不重复,无索引的 ----HashSet: 无序,不重复,无索引 ------LinkHashSet<>:有序不重复无索引(添加顺序) ----Tree ...

  9. python中安装第三方库(使用豆瓣的镜像网站快速安装)

    #安装第三方库#标准库,第三方库#pip install selenium 直接从官网进行安装,有时网速会有点慢#可以去国内的镜像站安装#pip install selenium -i https:/ ...

  10. 简单了解Phar代码打包工具的使用

    简单了解Phar代码打包工具的使用 Phar 是在 PHP5 之后提供的一种类似于将代码打包的工具.本质上是想依照 Java 的 Jar 文件那种形式的代码包,不过本身由于 PHP 是不编译的,所以这 ...