UE4学习日记(七)跑步倾斜动画
有时候,我们希望能够实现当玩家进入冲刺状态的时候,镜头转动导致玩家发生变化时,玩家的身体也会朝着转动的方向发生倾斜。
首先要做的是在角色蓝图中添加一个是否冲刺的bool变量IsSprinting,并通过按键控制角色是否冲刺。
然后在输入轴MoveForward后面的【添加移动输入】后面,设置倾斜值LeanValue。
注:【F插值到】中Current值会每隔DeltaTime秒以InterpSpeed的速度向Target值接近。
其中的【获取场景差量(秒)】就是刷新频率。
【GetLeanValues】 则是自己写的一个纯函数,用于获取倾斜值和倾斜速度。以下就是GetLeanValues的函数:
注:【获取Turn】是在获取坐标轴的偏移量的,【是否在掉落】以及NOT IsSprinting则是决定是否倾斜,还有右下角的【1-10选择】则是在确定倾斜的速度。倾斜动画是会自动回正的,当角色发生倾斜时,就以LeanSpeed=10的速度较快的完成倾斜行为,但回正的时候,我们希望能够慢慢回正,所以回正的速度LeanSpeed=1。
动画蓝图中添加LeanValue和LeanOffset变量,LeanOffset的初始值设定为30,该值为角色冲刺时的最大倾斜角度。
AnimGraph中。
先保存基础动画。
然后混合成FullLocoAnim姿势,其中的AttackLockPose是(六)中攻击动画混合后的产物,可以代替BasicAnimPose,直接完成混合攻击动画的操作,当然前面的【事件蓝图更新动画】部分蓝图得改改。
注:【变换(修改)骨骼】会修改给定的骨骼的变换,LeanValues作为其Y轴的倾斜度。其细节设定如下:
然后将混合好的动画给到【输出姿势】
基本设置已经完成,运行游戏。
需要按Shift,没法截图,就不截图了。
参考视频链接:https://www.bilibili.com/video/BV1Y54y1S7cY?t=712