目录
前言
效果
步骤
一、坐骑的父类
二、将角色附加到坐骑
三、添加坐姿
四、骑上坐骑
五、从坐骑上下来
前言
在上一篇(【UE5.1 角色练习】11-坐骑——Part1(控制大象移动))基础上继续实现角色骑上坐骑的功能。
效果
步骤
一、坐骑的父类
1. 新建一个父类为角色的蓝图类
这里命名为“BP_RideCharacter”,表示所有坐骑的父类
2. 打开上一篇制作的大象蓝图“Character_Elephant”
在类设置中设置父类为刚才创建的蓝图“BP_RideCharacter”
3. 打开“BP_RideCharacter”,添加一个盒体碰撞组件
设置一下盒体范围。当角色进入该范围内时就可以触发骑上坐骑的操作
4. 在角色蓝图中新建一个变量“Ride”,变量类型为“BP_RideCharacter”的对象引用
5. 在“BP_RideCharacter”的事件图标中添加如下节点。表示当角色靠近坐骑后就拥有了坐骑的引用
二、将角色附加到坐骑
1. 在项目设置中添加一个操作映射
2. 在角色蓝图中添加如下节点,表示按下T键来操控坐骑
但是光操作坐骑还不行,我还需要将角色放到坐骑的背上。
3. 打开大象的骨骼
添加一个插槽,用于标注角色在坐骑上的位置
这里命名插槽为“socket_seat”,然后设置该插槽的位置
4. 在角色蓝图中,继续完善角色控制坐骑的逻辑,我们可以通过“将Actor附加到组件”节点来将角色放置到坐骑上
此时运行效果如下
三、添加坐姿
1. 首先准备角色坐在坐骑上的动画
调整一下骨骼的旋转
点击“+关键帧”
同样的,我们可以复制一份动画序列,将角色的腿部间距调下,以适应背比较窄的坐骑
旋转好骨骼之后也需要点击“+关键帧”
在编辑曲线中,将上一个动画序列中的关键帧删除
创建一个混合空间1D,用于调整角色骑行动画中两腿之间的间距
将两腿窄间距的动画放在左边,宽的放右边
此时可以看到,我们通过预览不同的腿间距值,就可以看到相应的动画姿势
四、骑上坐骑
打开角色动画蓝图,添加一个布尔类型的变量和一个浮点类型变量,命名为“IsRiding”和“RidwWidth”,分别表示角色是否正在骑行和骑行时的腿间距
“RidwWidth”的值范围为0~100
在动画图表中添加骑行状态
双击进入“Ride”状态,添加如下节点,用变量“RideWidth”控制混合空间的腿间距
编辑一下过渡规则
在角色蓝图中添加如下节点,在角色坐上坐骑后设置动画蓝图中的“IsRiding”和“RidwWidth”变量
此时当角色坐上坐骑后就是坐姿状态
五、从坐骑上下来
在坐骑父类中添加如下节点,实现从坐骑上下来的功能
最终效果如下