即角色瞄准偏移的制作
非常感谢您能来看我的博文!!o(* ̄▽ ̄*)ブ
紫色字体为资产类型名
蓝色字体为蓝图节点和引脚名
绿色字体为设置名
目录
绝大多数3A游戏内都有像这样玩家移动摄像机(控制视角),游戏内角色跟随旋转的效果
本期讲讲如何实现这个效果
(本期对于初学者可能稍显复杂,若有不懂的可以直接私聊我捏!)
1.找到对应的动画素材并进行动画资产设置
首先我们需要找到角色正常待机动画以及角色面朝八个方向的扭头动画(这里就先以在虚幻商城里找到的为例)
然后就是进行一些资产的属性设置,首先Ctrl+A全选,右键,选择资产操作,点击编辑属性矩阵中的选择
之后,就可以打开这几个动画资产的矩阵列表,我们需要在这里面设置一下动画的姿势类型以及各个方向旋转的参考动画
打开矩阵列表后,全选,将所有动画的姿势类型改为动画帧,并且将所有动画的基础姿势改为归中的角色动画(此处即Idle.cc)
这样一来,基础的动画资产设置就设置好了
2.创建瞄准偏移资产
之后,需要创建瞄准偏移资产,并且添加我们刚才设置好的动画
右键内容浏览器空白处,选择-动画-瞄准偏移-设置骨骼为角色骨骼-创建
双击打开瞄准偏移进行设置
因为角色是否扭头以及扭头的方向是通过角度进行确定的,所以我们设置瞄准偏移的水平坐标为同样控制水平旋转的Yaw角,垂直坐标为控制竖直旋转的Pitch角,两者区间均为-90 ~ 90 °
随后我们添加进对应的角度的动画进瞄准偏移
向上的角度就添加向上看的动画,向右下方的角度就添加向右下角看的动画,其他同理
然后保存瞄准偏移。
3.为角色动画添加瞄准偏移
在角色所使用的动画蓝图中,添加进我们所创建好的瞄准偏移(此处注意层级关系,理论上来说瞄准偏移的层级高于其他大部分动作)
目前的瞄准偏移只是一个空壳,虽然输出轨迹经过了他,但是并没有传入对应的Yaw和Pitch角,所以瞄准偏移仍然处在最中心不会变化
4.通过检测玩家控制视角的角度,设置瞄准偏移应用的角度
要实现玩家视角看向哪,游戏角色看向哪的效果,一种实现方法是,通过检测摄像机视野的角度和角色正脸所朝向的角度的差值,来决定是否播放瞄准偏移动画(角色扭头动画),若是在适当的范围内,就需要播放动画
所以我们打开角色所使用的动画蓝图
获取到目前的控制旋转(即视野/摄像机旋转角度)和actor旋转(游戏角色面朝的旋转)
将这两旋转体作差,使用差量(旋转体)节点,
然后将做差得到的旋转体拆分开来,使用拆分旋转体节点(因为我们只需要用到Pitch角和Yaw角)
然后拖出Pitch和Yaw角,设置一个旋转的角度限制,此处的推荐设置为 -75 ~75°,使用限制角度节点
注意此处的做差不要连反了,否则会出现玩家视角朝右看,角色朝左看的效果
限制好角度之后,将其创建旋转体,设置一个过渡(这里设置过渡是为了避免角色头部旋转过于生硬)
利用R插值到节点即可简单设置一个过渡
R插值到参数设置
Current:目前的旋转体(初始旋转体)
Target:需要达到的旋转体(目标旋转体)
Delta Time:更新帧率(选择获取场景差量,从而让更新速率和游戏帧率相同)
Interp Speed:Current 到 Target 的速度(此处推荐15)
过渡设置好之后,就需要设置Yaw 和Pitch两个角了
右键R插值到的右边的节点,点击分割结构体引脚
拖出其中的Yaw和Pitch角,然后链接设置这两个变量的节点
5.修复当摄像机面对角色的时候,角色突然扭头的小bug
在进行了先前的几步之后,这个功能还会有一个bug,就是当玩家用视角面朝角色的时候,角色可能会突然扭头,这里是由于动画的判定问题,所以我们需要设置,当玩家视角正面朝向角色的时候,角色会自动扭头归中向前看
所以就要设置控制器的Yaw角的范围(即玩家操控的视角的范围)
通过引出actor的旋转和控制旋转的差值的旋转体进行调试
此处调试即为找角度,找到角色左右扭头的最大角度,可以通过实时打印字符串的方法
我们可以找出,角色左右最大扭头角度为-120 ~ 120°
所以可以设置控制器(视角)的Yaw角的绝对值,大于(或等于)120°的时候,设置瞄准偏移所使用的Yaw角为0,即可
这里同样为了避免角色瞬间扭头至0度归中,也设置了一个F插值到,具体使用方法和前文一样
5.使用创建的Yaw和Pitch角作为瞄准偏移的参数
最后在第3步中添加好的瞄准偏移中,设置刚才创建的Yaw和Pitch角作为参数,即可实现角色跟随视角功能
至此,则实现了角色瞄准偏移跟随视角功能
非常感谢您能来看我的博文!!o(* ̄▽ ̄*)ブ