本篇文章是使用Timeline(时间轴)实现视角的线性回弹效果。使用RelativeRotation(相对旋转)实现的视角控制。
Demo下载
完整蓝图节点预览
同样,先来看一下完整的蓝图,只需要创建一个变量。
Character说明
先讲解视角的输入控制
LookUp
LookUp这么多步骤仅仅是限制Pitch轴的最大角度,获取当前SpringArm的相对旋转Pitch轴,先把值给加上输入的驱动值,再判断是否超出设定的最大最小值。注意顺序是先给加上再判断。
Turn
Turn这里角色的旋转依旧是用的ControllerRotation,我们做的就是判断IsFreeSee(Alt是否被按下,自由视角)如果被按下,我们则将Turn的驱动值(鼠标X轴)传递给ApringArm设置它的相对旋转。
LeftAlt
LeftAlt在被按下时把IsFreeSee设为真(Turn将驱动SpringArm的相对旋转),并将时间轴Stop(停止更新),不然的话有可能在Alt被按下的时候时间轴继续更新直至更新结束(时间走完了)调用Finished把IsFreeSee设为假,这样Turn的将驱动的是AddControllerYawInput(此时Alt依旧被按下,尚未释放)。
SeeTimeline
双击节点打开时间轴,长度设为0.3s,添加一个浮点型轨道,第一个点时间为0s,值为1,第二个点时间为0.3s,值为0。
Update节点会持续调用直至结束,并且更新设置的轨道值,我们把这个值乘以SpringArm的当前相对旋转,并设置为新的相对旋转。你可以理解为在第0秒的时候值为100%,这个百分数一直在减少,在最后此更新时(0.3s)值为0%。
-----
在这里附上一张以Tick+Interp实现的视角线性回弹效果,也只需要2个bool变量
Tick+RInterpTo
网友评论