效果
步骤
- 找到"AnimStarterPack"资源包中的如下4个动画序列,分别表示角色射击状态下的前进、后退、向左走、向右走的动作。
- 通过IK重定向器将这4个动画序列重定向给我们的角色
- 打开动画蓝图,创建一个混合空间资产
这里命名为"BS_IdleRifle"
打开"BS_IdleRifle",设置水平坐标用于控制方向,垂直坐标用于控制速度,方向在-180~180之间,速度在-600~600之间
向前走的动画放在(0,600),向后走的放在(0,-600)
再次将向后走的动画放在(-180,600)和(180,600)
将向前走的动画放在(-180,-600)和(180,-600)
将向左跑的动画放在(-90,600)和(-90,-600);
将向右跑的动画放在(90,600)和(90,-600);
- 在动画蓝图中添加一个状态,这里命名为"RunRifle"
双击进入状态"RunRifle",将混合空间"BS_IdleRifle"作为输出动画姿势
由于我们已经有了变量"GroundSpeed"用于记录角色的移动速度,因此这里我们只需再创建一个浮点类型变量来表示角色的方向,这里命名变量"Direction"
将变量"Direction"、"GroundSpeed"作为混合空间的输入
在动画蓝图的事件图表中设置"Direction"值
下面需要在动画图表中的设置从站立射击状态到移动射击状态的过渡规则
当角色移动速度超过10就认为转为移动射击状态
当速度小于10就认为回到站立射击状态
此时运行效果如下,可以看到当我们控制角色移动时角色也能处于移动射击的状态
- 打开角色蓝图,如果我们希望在进入射击状态后视角能够随着角色的旋转而旋转,我们可以在进入射击状态后设置"Orient Rotation to Movement"为False
然后我们可以设置进入射击状态后不显示鼠标
选中角色移动组件,勾选"使用控制器所需的旋转"
此时运行可以看到角色在进入射击状态后,玩家能够通过鼠标来控制角色的朝向,效果如下