接上一节

6、 寻路网格体代理

通过允许配置多个“代理”,虚幻引擎使得用户能够轻松为大小各异的AI创建寻路网格体。首先,选中世界大纲视图中的“RecastNavMesh”,找到细节面板中的“生成”分段,如下图所示。这里的几个选项都与代理相关,分别是“代理半径”(Agent radius)、“代理高度”、“代理最大高度”、“代理最大斜面”和“代理最大步高”。默认的代理半径是35,而这个值应该和AI宽度相同。代理高度应该和AI高度相同。

在项目设置中,有一个选项循序我们添加多种类型的代理,并且每一种都能定义不同的参数。首先打开项目设置,然后找到“引擎-导航系统”,如下图所示,在最底层有一个“agent”分段,其中一个选项是“支持的代理”,它实际上是一个数组,我们可以向里面添加一些元素,每个元素都包括“代理半径”(Agent radius)、“代理高度”、跳、游泳等选项,我们能够为不同的AI设置不同的代理,配置不同的导航网格体。

7、 寻路网格体

创建完寻路网格体后,我们将为AI角色蓝图添加功能,让AI随机移动到附近某个位置,等待片刻,然后移动到另一个位置,循环往复。首先,要在角色蓝图中新建一个自定义事件,并让它包含随机漫游逻辑,然后使用另一个函数在游戏运行中时反复调用自定义事件。

首先在内容浏览器中打开AI蓝图,在事件图表中,右击并搜索“自定义事件”,将新的自定义事件命名为“random wander”.

拖动这个自定义事件的执行引脚,然后搜索“simple move to location”,添加到图表中,其需要两个参数,一个是角色使用的控制器,一个是以向量表示的目标位置。先设置角色使用的控制器,右击搜索“get conroller”,点击后连接至自定义事件;接下来右击搜索“get random reachable point in radius”,点击应用。这个函数有许多参数,我们只用其中部分。其中,“orgin”表示它移动的起点,“radius”定义了起点周围的移动距离。在这里,我们的起点就是第三人称AI的起点位置,我们可以使用“get actor location”函数,右击搜索得到该函数,默认下,该函数返回值就是当前目标的位置,并将其连接到“orgin”。然后根据自己需求设置半径“radius”。然后将“get random reachable point in radius”连接到“simple move to location”的“goal”中。现在,我们的随机漫游事件就完成了。

接下来需要再创建一个事件·来调用它,否则它不会自动运行。右键找到“beginplay”,拖动“beginplay”的引脚,然后搜索输入“set timer by event”。关于这个函数,首先需要告诉它触发哪个事件。为此,我们可以将“random wander”事件的委托输出引脚,连到“set timer by event”的事件输入上。接下来,我们需要指定这个事件何时被触发,可以将时间值设置为1.5。这意味着每过1.5秒,关联的事件就会被触发。为了让它能够循环触发,勾选“set timer by event”的循环选项。“set timer by event”的返回值是一个定时器句柄结构。我们不需要使用它,因为不需要在其它地方用到定时器。这意味着我们无需设置这个输出。编译后,我们需要检测这个蓝图是否在游戏中有效。

UE4蓝图AI角色制作(三)的更多相关文章

  1. UE4蓝图AI角色制作(四)之Gameplay调试器

    8. 寻路网格体和Gameplay调试器 为了及时识别出AI系统中的导航问题,UE4提供了一个工具用来解决这类问题,它叫Gameplay调试器.打开项目设置,在左侧找到"引擎",然 ...

  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的AI学习(2)——官方案例实例分析

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

  7. UE4蓝图编程的第一步

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

  8. [UE4]让AI跑起来

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

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

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

随机推荐

  1. Spring @Order注解的使用

    注解@Order或者接口Ordered的作用是定义Spring IOC容器中Bean的执行顺序的优先级,而不是定义Bean的加载顺序,Bean的加载顺序不受@Order或Ordered接口的影响: 1 ...

  2. 【ArcEngine】AE连接SDE_For_SQLServer参数设置

    SDE for sqlserver直连的ArcEngine访问 Ae中的数据的连接实质还是采用服务连接的方式.连接代码如下: 1 public IWorkspace Getworkspace() 2 ...

  3. 【转】SpringCloud学习

    Spring Cloud Alibaba与Spring Boot.Spring Cloud之间不得不说的版本关系   这篇博文是临时增加出来的内容,主要是由于最近连载<Spring Cloud ...

  4. MZY项目笔记:session歧路

    from my typora MZY项目笔记:session歧路 文章目录 MZY项目笔记:session歧路 那该怎么办? 1. 手动加上cookie的header. 2.自己模拟一个Session ...

  5. Java程序设计学习笔记(四)—— GUI

    时间:2016-3-24 11:24 天道酬勤  --GUI(图形用户界面)    1.GUI        Graphical User Interface(图形用户接口).        用图形的 ...

  6. Docker与数据:三种挂载方式

    操作系统与存储 操作系统中将存储定义为 Volume(卷) ,这是对物理存储的逻辑抽象,以达到对物理存储提供有弹性的分割方式.另外,将外部存储关联到操作系统的动作定义为 Mount(挂载). Dock ...

  7. MySQL5.7 高可用高性能配置调优

    [client]default-character-set = utf8mb4[mysqld]### 基本属性配置port = 3306datadir=/data/mysql# 禁用主机名解析skip ...

  8. pip install 报错 TypeError: 'module' object is not callable

    $ pip install filetype Traceback (most recent call last): File "/usr/local/bin/pip2", line ...

  9. 剑指 Offer 34. 二叉树中和为某一值的路径

    剑指 Offer 34. 二叉树中和为某一值的路径 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点所经过的节点形成一条路径. 示例: 给定如下 ...

  10. Jenkins 构建JOB失败

    问题描述 同事在使用Jenkins打包项目的时候报错 error:index-pack died of signal 15 fatal: index-pack failed 出现这个问题,初步怀疑是拉 ...