前言
在上一篇(【UE5.1 角色练习】10-物体抬升、抛出技能 - part2)基础上创建一个新的大象坐骑角色,并实现控制该角色行走的功能。
效果
步骤
1. 在商城中下载“African Animal Pack”资产和“ANIMAL VARIETY PACK”资产导入工程中
2. 复制一份第三人称角色蓝图,这里命名为“Character_Elephant”
打开“Character_Elephant”,将网格体组件中的骨骼网格体资产替换为“SK_Elephant”
增加弹簧臂长度
新增一个骨骼网格体组件,用于表示象牙,这里命名为“SkeletalMesh_Teeth”,骨骼网格体资产使用“SK_ElephantTusksBig”
3. 新建一个动画蓝图,骨骼使用“SK_Elephant_Skeleton”
动画蓝图这里命名为“ABP_Elephant”
打开“ABP_Elephant”,在动画图表中添加一个新的状态机,这里命名为“Default”
打开“Default”状态机,添加一个状态,这里状态命名为“Idle/Run”
打开状态“Idle/Run”,我们需要在里面添加大象走路和跑步的动画混合空间。因此这里先创建一个
混合空间,骨骼选择“SK_Elephant_Skeleton”
这里命名混合空间为“BlendSpace_Elephant_IdleRun”
打开“BlendSpace_Elephant_IdleRun”,设置一下水平和垂直坐标
将待机的动画序列“ANIM_Elephant_IdleLookAround放到方向为0,Speed为10位置处
将走路的动画序列放置在(0,400)处
放入大象向左转和向右转的动画序列
放入大象跑步的动画序列
4. 回到动画蓝图的状态“Idle/Run”中,将刚创建的混合空间作为该状态的输出姿势,可以看到我们需要设置混合空间的“Direction”和“Speed”数值
新建两个浮点型变量,这里就命名为“Direction”和“Speed”
将这两个变量的值作为混合空间的输入值
再添加一个布尔类型变量,这里命名为“IsInAir”,用于表示大象当前是否在空中(常用于掉落或跳起)
接下来我们需要在动画蓝图的事件图表中去设置这三个变量的值
5. 在大象蓝图中,设置网格体的动画使用我们上面创建的动画蓝图
设置最大行走速度为800
如果感觉大象转向速度太快,我们可以修改一下旋转速率
此时控制大象移动效果如下,可以看到象牙位置有误,因此我们需要设置蒙皮
6. 在大象蓝图的事件图表中添加如下节点,表示将牙齿蒙在身体上
此时可以看到象牙的位置准确无误