当前课程知识点:虚幻引擎(UE4)技术基础 >  第十一章 游戏AI >  11.1 行为决策的AI >  11.1 行为决策的AI

返回《虚幻引擎(UE4)技术基础》慕课在线视频课程列表

11.1 行为决策的AI在线视频

下一节:11.2 AI监听玩家行为

返回《虚幻引擎(UE4)技术基础》慕课在线视频列表

11.1 行为决策的AI课程教案、知识点、字幕

大家好

欢迎来到虚幻引擎技术基础课堂

我是主讲教师

黄颖翠

现在我们将在

虚幻引擎技术基础课程中

游戏AI章节

学习实现行为决策的AI

这章

我们开始接触AI了

我们这节课主要了解AI的应用场景

AI是通过什么方式进行设计的

最后我们需要学习行为树

黑板

AI控制器

构造一个决策AI

第一点

AI的应用场景

人工智能开发

是游戏研发中最具挑战性的任务之一

那么游戏中AI的具体使用场景在哪里呢

英雄联盟里怪物战斗AI

场景AI

人机挑战中机器人战斗AI

除了大家熟知的LOL

3A大作里AI一般运用到哪里呢

巫师3中的NPC AI

怪物AI等AI运用

基本可以囊括

现有AI的运用场景

从上面举的两个例子

已经可以看出现在制作游戏离不开AI

AI通过什么方式进行设计

现在游戏AI

基本通过下面两个方式实现

行为树与有限状态机

行为树就是一棵节点层次分明的树

控制着AI物体的一系列决定

从树延伸出的叶子节点

执行控制AI物体的指令

各种工具节点组成树的分支

来控制AI指令的走向

以形成一系列的指令

这样来满足游戏需要

“状态机”是一种表示状态

并控制状态切换的设计模式

常常用于设计某种东西的多个状态

而有限状态机是指

游戏内的条件逻辑封装到各个状态类里

例如一个人有站立状态

跑动状态

走路状态

蹲下状态

开火状态等

当一个事件发生

将会触发一个动作

或者执行一次状态的迁移

现在开始操作部分

我们这节课

要做一个AI

他会在两个位置点 来回巡逻

当他看到我们时

就会靠近我们

现在我们开始实现这个效果

首先我们到虚幻商场里面去找我们需要的资源

我们在这里搜索 Animation starter pack

然后点击下载

我这边之前已经下载了

这个AI也不是什么地方都可以走的

我们需要限制行走范围

我们在体积这里找到 Nav mash

拖进场景

我们的地面需要在这个矩形区域内

我们可以看到地面出现了绿色

绿色就是可行走范围

有障碍物的地方就不能走

我们在内容文件夹中创建文件夹

改名为Enemy敌人

我们需要创建4个东西

来实现AI

在里面 我们创建AI本体蓝图类

这个本体需要继承

与UE4Asp_Character

点击选择按钮

取名EnemyCharacter

我们还需要创建一个控制器

继承于AIChontroller

取名EnemyController

还需要创建行为树

取名EnemyBehavior

再创建黑板

取名EnemyBlackBoard

现在我们还需要创建

让他可以导航的点

查找TargetPoint

我们需要让他导航到哪个地方

就把TargetPoint放置到哪个地方

把这个导航修改下名字为Npoint1

拷贝一个

移动到新的位置

取名为Npoint2

好了

这两个点就是我们给AI定的行走位置

让AI

在这两个位置上来回行走

接下来

我们需要让这个AI有一定的智能

我们打开黑板

黑板是干什么的呢

黑板是用于设置AI的

共同所认识的变量

我们先给他建一个键值

point

这里就是键值巡逻点

这个是一个变量

是每一个AI都能看到的地方

这里基础类型我们设置它的类型为Actor

因为每个巡逻点都需要用到它的位置

Actor类型可以存储到位置

它需要限定这个键值可以被赋值的类型

我们回到我们熟悉的蓝图面板

首先我们需要建立几个变量巡逻点1

point1

actor类型

把它眼睛睁开

然后复制一个

取名为point2巡逻点2

再拷贝一个取名为currentPint

当前巡逻点

巡逻点1和巡逻点2

就是要告诉AI

以后就在这两个点来回巡逻

而currentPint

是当前AI正在向哪个巡逻点前进

那这个AI的蓝图主要干什么呢

我们现在来画蓝图

我们把这不需要的事件删除

我们保留beginPlay

我们先找到黑板

get black Board

设置值的类型

Set value as object

我们刚设置的键值就是Object类型

我们现在需要把黑板的键值改一下

名字是point

这个名字不能打错了

然后这个键值是需要一个值的

我们要给的值就是当前点

黑板获取前还需要一个self

好了

这个AI就可以直接给这个黑板的键值

进行赋值了

可能大家要问

那这个赋值的意义是什么

这个值的意义在后面才会需要

我们在场景中

给这三个变量设置一下值

Point1赋值场景中的

巡逻点Npoint1

point2 赋值场景中的

巡逻点Npoint2

currentPoint我们就暂定为

巡逻点已Npoint1

也就是当游戏运行时

先向巡逻点1方向行走

我们还需要给这两个巡逻点添加碰撞器

用于AI碰到巡逻点后

可以触发逻辑

来到我们蓝图

刚刚我们已经给变量赋了值

那运行后这个point也会赋值

就是巡逻点1

下面我们需要编辑一下

当AI碰撞到巡逻点后

需要做的事情

要用beginOverLap

当AI碰到巡逻点要做的事情

就是需要判断下一个巡逻点的位置

我们先判断当前是否是巡逻点1

如果不是巡逻点1

那就是假

那需要再判断下是否是巡逻点2

如果不是巡逻点2

那就不做处理

我们需要处理如果当前是巡逻点1

那我们需要把当前巡逻点设置为巡逻点2

而当前巡逻点是2时

则设置当前巡逻点设置为1

下面我们需要把黑板的值用到AI身上了

我们需要先把右边细节面板中的

Auto Prossess AI的值

设置成我们刚刚创建的

EnemyController 敌人控制器

这样就把蓝图

和我们新建的控制器连接起来了

那这个控制器需要改什么呢

我们需要它运行一个行为树

选择我们刚创建的

EnemyBehaviour 敌人行为树

Controller就做完了

我们来整理下

现在本体已经关联到了控制器

控制器关联了行为树

这个行为树我们应该做什么呢

我们需要让这个行为树根据黑板的值

让AI进行一些行为

首先这个行为树需要和黑板挂钩起来

在细节这里我们选择我们的敌人黑板

你会发现它已经指定好了

因为我们工程中只有这一个黑板

他自己就指定好了

我们现在可以关闭黑板和行为树

从新打开行为树

我们发现黑板

和行为树已经融合一体

我们可以在行为树右上角

可以切换选择黑板

首先我们先拉一个选择器

然后拉个序列

这个选择器

就是按照顺序尝试执行下面的序列

例如这底下有些行为

例如

睡觉

看书

这底下是行走

吃饭

如果第一个成功了

那后面的其他序列就不会做了

如果第一个不成功

再去尝试第二个

不行再第三个

那这个序列下面是可以有很多的事情

例如睡觉

看书

玩游戏

都会执行

他会尝试做他下面所有事情

如果有一个失败

就会返回失败

尝试下一个序列

我们现在来做巡逻

我们需要在序列这里

加一个MoveTo移动到某个位置

然后这里选择刚定义的键值point

移动到这个键值

然后再建立一个序列

下面放一个键值

做等待wait 2-4秒

为什么要做等

是用来当到达巡逻点

就给他换一个新的巡逻点

好运行看下效果

AI会在巡逻点来回行走了

这个巡逻功能就基本完成了

本小节的操作讲解已经完成

留给大家一个思考题

了解游戏AI

与智能AI的区别

还有一个课后练习

请大家课后自己操作一下

做一个人物AI

当我们靠近他时

他会走到我们附近

并和我们进行对话

本节课内容就讲解完毕

感谢大家聆听

再见

虚幻引擎(UE4)技术基础课程列表:

第一章 UE4引擎基础

-1.1 虚幻4引擎简介

--1.1 虚幻4引擎简介

--1.1 小节习题

-1.2 虚幻4引擎的安装及环境部署

--1.2 虚幻4引擎的安装及环境部署

--1.2 小节习题

-1.3 创建项目及试玩

--1.3 创建项目及试玩

--1.3 小节习题

-第一章 章节测试

第二章 UE4编辑器

-2.1 虚幻4编辑界面介绍01

--2.1 虚幻4编辑界面介绍01

--2.1 小节习题

-2.2 虚幻4编辑界面介绍02

--2.2 虚幻4编辑界面介绍02

--2.2 小节习题

-2.3 视口导航及基本操作

--2.3 视口导航及基本操作

--2.3 小节习题

-2.4 导入资源、项目迁移和管理

--2.4 导入资源、项目迁移和管理

--2.4 小节习题

-第二章 章节测试

第三章 地形系统

-3.1 地形工具

--3.1 地形工具

--3.1 小节习题

-3.2 新建地形

--3.2 新建地形

--3.2 小节习题

-3.3 塑造地形

--3.3 塑造地形

--3.3 小节习题

-3.4 使用植被工具

--3.4 使用植被工具

--3.4 小节习题

-第三章 章节测试

第四章 材质系统

-4.1 初识材质

--4.1 初识材质

--4.1 小节习题

-4.2 编辑基于物理材质

--4.2 编辑基于物理材质

--4.2 小节习题

-4.3 使用贴图纹理创建材质

--4.3 使用贴图纹理创建材质

--4.3 小节习题

-第四章 章节测试

第五章 光照系统

-5.1 大气照明和定向照明

--5.1 大气照明和定向照明

--5.1 小节习题

-5.2 添加点光源

--5.2 添加点光源

--5.2 小节习题

-5.3 添加聚光源

--5.3 添加聚光源

--5.3 小节习题

-5.4 光源质量和反射

--5.4 光源质量和反射

--5.4 小节习题

-第五章 章节测试

第六章 场景搭建

-6.1 几何体及纹理贴导入

--6.1 几何体及纹理贴导入

--6.1 小节习题

-6.2 素材整理和项目准备

--6.2 素材整理和项目准备

--6.2 小节习题

-6.3 搭建流程

--6.3 搭建流程

--6.3 小节习题

-第六章 章节测试

第七章 动画系统

-7.1 动画资源与编辑器

--7.1 动画资源与编辑器

--7.1 小节习题

-7.2 混合空间

--7.2 混合空间

--7.2 小节习题

-7.3 动画窗口及编辑动画

--7.3 动画窗口及编辑动画

--7.3 小节习题

-7.4 创建自定义角色

--7.4 创建自定义角色

--7.4 小节习题

-第七章 章节测试

第八章 特效系统

-8.1 创建粒子系统

--8.1 创建粒子系统

--8.1 小节习题

-8.2 虚幻粒子基础功能介绍01

--8.2 虚幻粒子基础功能介绍01

--8.2 小节习题

-8.3 虚幻粒子基础功能介绍02

--8.3 虚幻粒子基础功能介绍02

--8.3 小节习题

-8.4 粒子特效的综合运用

--8.4 粒子特效的综合运用

--8.4 小节习题

-第八章 章节测试

第九章 蓝图概念

-9.1 初识蓝图

--9.1 初识蓝图

--9.1 小节习题

-9.2 蓝图类型

--9.2 蓝图类型

--9.2 小节习题

-9.3 蓝图通信

--9.3 蓝图通信

--9.3 小节习题

-9.4 创建蓝图

--9.4 创建蓝图

--9.4 小节习题

-第九章 章节测试

第十章 蓝图应用

-10.1 击中事件

--10.1 击中事件

--10.1 小节习题

-10.2 实现物体来回移动

--10.2 实现物体来回移动

--10.2 小节习题

-10.3 Input输入与玩家快捷键交互

--10.3 Input输入与玩家快捷键交互

--10.3 小节习题

-10.4 用户界面和HUD

--10.4 用户界面和HUD

--10.4 小节习题

-10.5 创建游戏约束

--10.5 创建游戏约束

--10.5 小节习题

-10.6 游戏结束与重玩功能

--10.6 游戏结束与重玩功能

--10.6 小节习题

-第十章 章节测试

第十一章 游戏AI

-11.1 行为决策的AI

--11.1 行为决策的AI

--11.1 小节习题

-11.2 AI监听玩家行为

--11.2 AI监听玩家行为

--11.2 小节习题

-11.3 AI与玩家的攻击伤害

--11.3 AI与玩家的攻击伤害

--11.3 小节习题

-11.4 AI生成点与随机巡逻

--11.4 AI生成点与随机巡逻

--11.4 小节习题

-11.5 优化游戏体验

--11.5 优化游戏体验

--11.5 小节习题

-11.6 渲染及代码优化

--11.5 优化游戏体验

--11.6 小节习题

-第十一章 章节测试

第十二章 音频系统

-12.1 音频基础

--12.1 音频基础

--12.1 小节习题

-12.2 音频混成器

--12.2 音频混成器

--12.2 小节习题

-12.3 声音特效

--12.3 声音特效

--12.3 小节习题

-第十二章 章节测试

11.1 行为决策的AI笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。