在虚幻引擎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.总结

  • 下一篇讲添加其他互动物品.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值