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. Cookie及通过Cookie常见应用

    会话的概念 会话可以简单理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 会话需要解决的问题 每个用户与服务器进行交互的过程中,各自会有一 ...

  2. Jenkins 使用PowerShell插件部署Net5项目

    Jenkins安装 PowerShell plugin 插件 新建自由项目 拖到 构建 处,添加 PowerShell 构建 贴入下方脚本即可 # 变量 $ProjectPath = "E: ...

  3. 1,Spark参数调优

    Spark调优 目录 Spark调优 一.代码规范 1.1 避免创建重复RDD 1.2 尽量复用同一个RDD 1.3 多次使用的RDD要持久化 1.4 使用高性能算子 1.5 好习惯 二.参数调优 资 ...

  4. Django的form组件基本使用——生成标签

    from django.contrib import admin from django.urls import path from app01 import views urlpatterns = ...

  5. Spring系列之集成MongoDB的2种方法

    MongoDB是最流行的NoSQL数据库,SpringBoot是使用Spring的最佳实践.今天带大家讲一讲SpringBoot集成MongoDB的两种方式,MongoDB的安装自行去官网查询,本地开 ...

  6. 通过url把第一个页面的数据传到第二页面

    第一个页面: function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^& ...

  7. type switch使用

    type    switchs用法 这里存在一个未知类型变量的内省操作(introspection operation),就是x.(type),其中x是interface{}类型

  8. "指针"和"引用"大对比

    相同点: 都能够直接引用对象,并对对象进行操作. 不同点: 指针 引用 指针类型的变量能够保存一个对象的地址 引用是一个对象的别名 可以为空nil,可以不初始化 不可以为空nil,必须初始化 当设计一 ...

  9. Go学习【02】:理解Gin,搭一个web demo

    Go Gin 框架 说Gin是一个框架,不如说Gin是一个类库或者工具库,其包含了可以组成框架的组件.这样会更好理解一点. 举个 下面的示例代码在这:github 利用Gin组成最基本的框架.说到框架 ...

  10. javascript 标签轮播

    html <div id="banner-switch"> <!-- 切换内容 --> <div class="notice-content ...