在虚幻引擎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控制和道具的主要内容,如果未能解决你的问题,请参考以下文章

在虚幻引擎5中构建你的首款游戏 - 08 - AI控制和道具

在虚幻引擎5中构建你的首款游戏 - 05 - 岩石和植物

在虚幻引擎5中构建你的首款游戏 - 04 - 地形和草地

在虚幻引擎5中构建你的首款游戏 - 05 - 岩石和植物

在虚幻引擎5中构建你的首款游戏 - 04 - 地形和草地

在虚幻引擎5中构建你的首款游戏 - 07 - 角色模型和动画