效果
步骤
1. 之前我们已经创建了“BP_NPC”(见:【UE5.1 角色练习】06-角色发射火球-part2)
该蓝图继承于角色类
我们在该蓝图中添加了两个方法和两个变量。方法一个是用于修改角色HP值的,另一个是在收到伤害后执行的逻辑。两个变量分别表示NPC当前的HP值和满HP值。
修改HP的函数“F_ChangeHP”逻辑如下。受到伤害的函数“F_AfterDamage”的逻辑还没写
当NPC受到伤害后执行如下逻辑
2. 接下来我们开始制作狮子NPC,在“AfricanAnimalsPack”资源包中找到狮子相关资产
将狮子的骨骼和骨骼网格体复制到项目文件夹
将狮子相关的动画也复制过来
为复制过来的骨骼网格体指定骨骼
选中复制过来的所有动画序列,然后替换骨架
替换为复制过来的骨骼
3. 找到我们之前制作的大象蓝图“Character_Elephant”(见:【UE5.1 角色练习】11-坐骑——Part1(控制大象移动)_ue5 character 四足动物)
复制一份,这里命名为“Character_Lion”
打开“Character_Lion”,在类设置中将父类改为“BP_NPC”
选中网格体组件,将骨骼网格体资产替换为狮子
删除“SkeletalMesh_Teeth”组件
编译后删除报错的节点
将胶囊体组件的半高和半径都改为很小,因为我们不用这个组件作为碰撞
新添加一个胶囊体组件用作狮子的碰撞
设置合适的大小和位置
4. 新建一个动画蓝图
这里命名为“ABP_Lion”
打开“ABP_Lion”,创建一个混合空间
这里命名为“BS_Lion_IdleRun”
5. 打开“BS_Lion_IdleRun”,设置水平坐标名称为“Direction”,设置垂直坐标名称为“Speed”
坐标轴中放置动画序列
6. 回到动画蓝图“ABP_Lion”中,添加如下三个变量
在事件图表中添加如下节点来设置上面三个变量的值
在动画图表中新建一个状态机,这里命名为“Default”
进入“Default”,添加一个状态,这里命名为“Idle/Run”
进入状态“Idle/Run”,将我们制作的混合空间“BS_Lion_IdleRun”作为该状态的输出动画姿势
7. 打开狮子的蓝图“Character_Lion”,设置动画类为上一步创建的动画蓝图
将狮子网格体的脚步与胶囊体平齐,这样狮子的脚部不会陷入地面
调整一下弹簧臂的位置
此时可以看到我们已经可以控制狮子进行移动