前言
Hello 大家好,最近一直在准备一个 FPS 系列的教程,打算整理成视频的方式来呈现给大家,因为我觉得文字系列的教程有的时候表达的不如视频来的简单,往往有时候视频看一眼就能够明白的东西文字则需要记录很长的一段文字,所以我打算 RPG 这个系列用写完后,接下来的 FPS 系列就用视频来录制,希望大家多多捧场,关注我,不迷路。
首先,在 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 在场景里有站立的动画,如何让 NPC 能够在场景里跑起来呢?这里就要用到 AI 了,咱们往下继续。
打开我们的场景地图,搜索 Nav, 然后选择列表里的 Nav Mesh Bounds Volume,拖到场景里并修改它的配置如下:
image
image
按下键盘 P 场景中就会渲染出来绿色的范围, 该范围内就是 NPC 活动的区域。
打开我们的 Knight_BP 蓝图,创建自定义事件 AIMovement, 构建其蓝图逻辑如下:
image
解释如下:
回到我们的场景里运行一下,就可以看到我们的 Enemy 自动跑起来了,如图:
image
本文分享自 HelloWorld杰少 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!