Unreal Engine 4 RPG 系列教程(十一):Enemy AI

380 阅读4分钟

前言

Hello 大家好,断更了一段时间是因为最近一直在准备一个 FPS 系列的教程,打算整理成视频的方式来呈现给大家,因为我觉得文字系列的教程有的时候表达的不如视频来的简单,往往有时候视频看一眼就能够明白的东西文字则需要记录很长的一段文字,所以我打算 RPG 这个系列用写完后,接下来的 FPS 系列就用视频来录制,希望大家多多捧场,关注我,不迷路。

导入 NPC 资源

首先,在 Mixmao 上去搜集一下所需的素材,以下是我用到的资源,大家可以根据我图片中的信息自己去下载,或者直接用我工程里的,工程下载地址后面我会贴出。

Enemy 的角色:

image

动画:Idle, Walk, Run, Attack

image

image

image

image

在 NPC 文件夹下创建 Enemy 文件夹,分别再依次创建 Blueprint,Animation 和 Mesh 文件夹。

image

在 Mesh 文件夹中 导入骨骼模型,然后在 Animation 文件夹中导入动画,骨骼选择 Paladin J Nordstrom,这样资源就准备好了。

动画蓝图

打开 Blueprint 目录,右键选择 Blend Space 1D, 创建一个融合动画,命名为 Knightmove_BS, 双击打开,将刚才的 idle, walk 和 run 动画拖进去,如图:

image

Horizontal Axis 设置 Name 为 Speed, 最大值为 400.

右键 Blueprint -> Animation Blueprint,创建动画蓝图,命名为 KnightAnim_BP。

双击打开,在 EventGraph 页面,添加 Float 变量 Speed, 然后构建蓝图逻辑如图:

image

再打开 AnimGraph 页面,右键 New State Machine 连接 Output Pose。

image

双击 New State Machine -> Add State 命名为 Base,双击打开后将我们的融合动画 Knight_BS 拖进来,并赋值 Speed, 效果如图:

image

image

记得给项目保存一下。

回到 Blueprint 目录中,右键选择 Blueprint Class 然后选择 Character,命名为 Knight_BP。

image

双击打开 Knight_BP,为其添加 Mesh , 动画然后调整一下姿态,如图所示:

image

这样 Emeny 的动画蓝图就好了,将 Knight_BP 拖到场景中,运行游戏 Enemy 是不是就动起来了。

NPC AI

上面只是让 NPC 在场景里有站立的动画,如何让 NPC 能够在场景里跑起来呢? 这里就要用到 AI 了,咱们往下继续。

打开我们的场景地图,搜索 Nav, 然后选择列表里的 Nav Mesh Bounds Volume,拖到场景里并修改它的配置如下:

image

image

按下键盘 P 场景中就会渲染出来绿色的范围, 该范围内就是 NPC 活动的区域。

打开我们的 Knight_BP 蓝图,创建自定义事件 AIMovement, 构建其蓝图逻辑如下:

image

解释如下:

  1. 在 BeginPlay 事件里去执行我们的 AIMovement 事件
  2. 在 AIMovement 事件里调用 AI MoveTo 节点
  3. Pawn 选择自己,地点在 5000 的半径范围内随机生成 Location
  4. 然后随机延期 2~5 秒,再去循环调用自己(AIMovement)

回到我们的场景里运行一下,就可以看到我们的 Enemy 自动的跑起来了,如图:

image

结尾

好了,本篇教程主要实现了 Enemy AI 移动的功能,下一篇将会给 NPC 添加上血条以及攻击,感谢捧场。

获取工程

关注我的公号 HelloWorld杰少 回复关键字 'RPG' 获取游戏工程文件 获取完整的工程。

往期文章:

请你喝杯 ☕️ 点赞 + 关注哦~

  1. 阅读完记得给我点个赞哦,有👍 有动力
  2. 关注公众号--- HelloWorld杰少,第一时间推送新姿势
  3. 封面图片由 AI 生成。

最后,创作不易,如果对大家有所帮助,希望大家点赞支持,有什么问题也可以在评论区里讨论😄~**