在虚幻引擎5中构建你的首款游戏 - 08 - AI控制和道具
Posted L建豪 忄YH
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在虚幻引擎5中构建你的首款游戏 - 08 - AI控制和道具相关的知识,希望对你有一定的参考价值。
在虚幻引擎5中构建你的首款游戏 - 08 - AI控制和道具
前言介绍:
原版地址: << [功能亮点]在虚幻引擎5中构建你的首款游戏(官方字幕)_哔哩哔哩_bilibili >>
<< https://www.bilibili.com/video/BV1M34y1x7tc >>
官网地址: << Your First Game In Unreal Engine 5 | Tutorial (epicgames.com) >>
<< https://dev.epicgames.com/community/learning/tutorials/e2V/your-first-game-in-unreal-engine-5 >>
所处时间段:
[00:52:30]
~[00:55:47]
;[00:55:47]
~[01:01:22]
;主要内容: AI控制和道具
1.AI控制器
- 先把角色模式放入场景中,ai也使用同一个模型,直接拖拽即可.在选中角色时,还会有个摄像头的窗口出现,这是模型内装的相机视角.
- 在该文件夹内创建AI控制器,和角色控制器一样,都是在蓝图窗口,不过要输入
ai
搜索得到.然后命名为BP_AIController
.
科普知识:
<< Pawn | 虚幻引擎文档 (unrealengine.com) >>
Pawn 是可那些由玩家或 AI 控制的所有 Actor 的基类。
<< Actor和几何体 | 虚幻引擎文档 (unrealengine.com) >>
所有可以放入关卡的对象都是 Actor。
- 然后双击打开蓝图,在事件图表中编辑程序逻辑.定时器设置3s后触发一个事件,输入一个事件(注意到这个事件采用中文命名).该事件触发后就执行
ai moveto
节点,控制角色移动.输入受控角色的pawn
.目标点是(0,0,0)
.
- 设置完成后编译保存,添加到已经在场景中的角色模型.输入
ai
搜索得到.选择设置好的ai控制器蓝图.
- 添加好控制器后,还需要设定导航范围.点击左上角的创建图标,然后输入
NavMesh
,
- 创建好后归位零点,然后放大,直到覆盖整个山谷地形.可以在左上角中切换
顶视图
,方便查看.注意,如果你的地形弄弄的太高或太低,还需要设置一下Z
轴坐标和缩放.
- 你可以通过左上角的显示查看导航范围,快捷键
P
.运行后能看到效果,ai控制一直朝(0,0,0)
坐标移动.记得耐心等待3秒.
2.动态材质
-
为了区别电脑角色和玩家角色,设置一下不同颜色.为此将创建可用蓝图控制的材质.
-
打开角色蓝图
BP_Bot
.在Construction
函数页面添加如下逻辑.注意到有2名字一样的set vector parameter value
节点,但描述不一样,需要从蓝色节点拉出来再右键才可以找到.该节点修改参数名为角色颜色
的值.
- 然后打开角色模型的材质,将主体颜色黄色提升为变量,并命名为:
角色颜色
.然后运行就能看到效果了,不过是2个角色都变色了.
- 为了能使每一个实例都自主修改颜色,可以将节点拖出,提升为变量.修改名字
设置角色颜色
.同时在左下角设置中点击眼睛图标,公开这个变量.右边设置中改回深黄色.
- 然后就可以在项目实例中修改ai模型的颜色了.点击运行查看效果.
3.生成物品
- 先从资源工程里导出一些需要的模型.使用迁移功能.除了
UI
的关联内容外,其他都导入.这次就不再设置材质纹理了.导出路径也是直接到工程根目录.总共有5个模型需要导出,最后一次了.一次性全部导出来.
- 会有些资源重复,因为之前有些关联纹理相同.全部点是即可.迁移出成功后可以打开查看有没有报错丢失.
- 然后为其一的小球创建
Actor
蓝图,和之前盒子一样.命名为:BP_Orb
.
- 双击打开蓝图,直接拖拽模型到左边的组件栏.
- 然后拖动,将模型作为父级.如下.再选中,设置右边细节栏,输入
碰撞
,设置碰撞预设
.待会用到.编译保存.
- 接下来开始修改角色控制器的蓝图,在里面添加代码,用于生成这个小球.
- 使用
空格键
生成,和之前人物移动一样,打开项目设置-输入-按键映射-添加
.
- 然后在控制器的事件图表中添加如下程序逻辑,按下空格就生成类对象,位置是当前角色的位置.
- 运行一下看效果
4.收集物品
推荐参考: << 浅谈_UE5/UE4蓝图通信之恰恰舞_哔哩哔哩_bilibili >>
这个up的讲解生动形象,简单明了,还幽默风趣,强烈推荐.
- 打开AI控制器蓝图,创建一个函数,然后双击打开进入函数蓝图.右边可以设置输入输出.新建2个输出参数,一个
布尔
,一个actor对象引用
.这个函数的作用就是找场景中所有的特定类,并返回一个列表/数组.记得勾选纯函数,这样就没有输入引脚了.
- 然后在事件图表中设置如下逻辑.如果你的自定义函数是有输入引脚的,请在上图中勾选纯函数.每次事件成功执行完后就会立刻再调用一次事件,直到找不到球后就是不成功执行完.然后会进入3秒的周期执行.
bug说明,不好意思,有个地方做错了,定时器节点忘记勾选循环了.你如果没有及时触发ai会一直不动.图片太多了,就不重新截图了.
- 运行看效果,ai会停留在第一球那里.因为函数的返回值一直都是数组下标0的对象.
- 接下来要在小球的蓝图中添加删除逻辑.为小球的事件图表添加事件.貌似只能用一下方式添加.每个事件还是唯一的,不能重复添加.
- 在小球的事件图表中添加如下逻辑.发送碰撞时判断碰撞的对象是不是由玩家控制的,如果不是就代表是ai控制的,然后销毁.
- 运行看效果,完美.
5.总结
- 下一篇讲添加其他互动物品.
以上是关于在虚幻引擎5中构建你的首款游戏 - 08 - AI控制和道具的主要内容,如果未能解决你的问题,请参考以下文章