当前位置: > > > UE5 - 手动替换默认的人物模型和动画教程(以UE5自带的第三人称游戏为例 )

UE5 - 手动替换默认的人物模型和动画教程(以UE5自带的第三人称游戏为例 )

    在 Unreal Engine 5 中,官方提供的 ThirdPerson(第三人称)模板是很多项目的起点,但实际开发时,我们往往需要使用自己的角色模型与动画,而不是默认的 UE 人物。本文将以 UE5 自带的第三人称游戏模板为例,系统讲解如何将默认人物模型与动画完整替换为我们自己的角色资源。

1,准备工作

(1)首先我们要创建一个“第三人称游戏”项目,后面我们会将其默认的小人替换为我们自定义的角色模型。

(2)接着我们还要准备一个用来替换的人物模型文件(需要包含骨骼),以及使用该模型的 6 个动画文件 boy.fbx:角色基础骨骼 + 默认绑定姿态模型(通常是 T Pose / A Pose 状态)
  • boy.fbx:角色基础骨骼 + 默认绑定姿态模型(通常是 T Pose / A Pose 状态)
  • boy_idle.fbx:角色待机 / 站立不动 动画
  • boy_walk.fbx:角色行走动画
  • boy_run.fbx:角色奔跑动画
  • boy_jump.fbx:角色起跳动画
  • boy_falling.fbx:角色空中下落/滞空动画
  • boy_landing.fbx:角色落地缓冲动画
提示:如果我们的模型没有骨骼,或者没有对应的动画。可以将我们的模型导入到 Mixamo 进行骨骼绑定。Mixamo 会为我们生成带有骨骼的 Tpose 和动作动画。具体可以查看我之前写的文章:

2,导入模型

(1)打开项目创建一个 boy 文件夹,将 boy.fbx 拖拽进来,在弹出的对话框中使用如下配置,然后点击“导入所有”。

(2)导入后该文件夹内容如下:

3,导入动画

(1)新建一个 boyAnimations 文件夹,将另外 6 个动画文件拖拽进来。注意这次我们不勾选“导入网格体”,并且“骨骼”选择我们前面导入的小男孩模型骨骼。最后点击“导入所有”按钮。

(2)导入后可以看到文件夹里的内容如下:

(3)双击任意一个动画可以查看下效果。由于我使用的 boy_walkboy_run 动画包含了 Root Motion 位移(即预览时会发现角色自动向前移动),这里就需要将“启用根运动”和“强制根锁定”打上勾,确保位置不会发生变化。

(6)对于落地动画 boy_landing 则需要设为 Additive 动画,因为后面将会使用它在角色原有的移动动画(走 / 跑)基础上,叠加一个“落地缓冲动画(Landing)”,而不是完全打断原动画。

4,复制一个新的混合空间 1D

(1)在 Characters/Mannequins/Animations/Manny 文件夹下找到 BS_MM_WalkRun 这个混合空间 1D,复制出一个名为 BS_Boy_WalkRun 新的混合空间 1D。右键点击新文件,选择“替换骨架”。

(2)骨架选择我们的小男孩骨骼,然后点击确定。

(3)双击刚创建的 BS_MM_WalkRun 这个混合空间 1D,先将网格里面原来的三个动画点删除,然后将新三个动画拖动进来。
  • boy_idle 拖放到起始 0 坐标位置。
  • boy_run 拖放到结束 500 坐标位置。
  • boy_walk 拖放到 230 坐标位置。

5,复制一个新的动画蓝图

(1)在 Characters/Mannequins/Animations/ 文件夹下找到 ABP_Manny 这个动画蓝图,复制出一个名为 ABP_Boy 新的动画蓝图。右键点击新蓝图,选择“指定骨骼”。

(2)在弹出的对话框中选择小男孩骨骼,然后点击“接受”。

(3)双击打开 ABP_Boy 这个新的动画蓝图,接下来我们需要修改动画图表中如下 5 个状态使用的动画。

(4)第 1 个修改“Idle”状态,双击打开后改用 boy_idle 作为输出动画。

(5)第 2 个修改“Walk/Run”状态,双击打开后改用 BS_Boy_WalkRun 作为输出动画。

(6)第 3 个修改“Jump”状态,双击打开后改用 boy_jump 作为输出动画。

(7)第 4 个修改“Fall loop”状态,双击打开后改用 boy_falling 作为输出动画。

(8)第 5 个修改“Land”状态,双击打开后改用 boy_landing 作为输出动画。

6,修改角色蓝图

(1)双击打开 ThirdPerson/Blueprints 文件夹下的 BP_ThirdPersonCharacter 角色蓝图。

(2)选择“网格体”后再右侧的属性面板中,将“骨骼网格体资产”设置为新的骨骼“boy”,将“动画类”设置为新的动画蓝图“ABP_Boy

(3)切换到“视口”调整角色模型动垂直位置,确保运行后角色脚底能够贴地。

7,运行测试

(1)运行程序可以看到人物以及变为我们导入的小男孩模型了。

(2)奔跑时动画播放正常。

(3)跳跃也是没问题的。
评论0