前言
使NPC的头朝向玩家角色这一功能在各种项目中是非常基础的功能,制作这种功能的方法也是多种多样。笔者使用AimOffset制作该功能的时候发现了一些AO的一些局限性:当NPC播放动画蒙太奇时AO有可能会失效(可能是笔者将AO设置在了动画状态机而不是graph中导致的)。经过朋友的提醒与在网上查询解决方案,笔者得知在动画蓝图AnimGraph中有一个引擎封装好的,使用ControlRig制作的LookAt节点,使用该节点能够实时改变NPC的头部朝向。
节点参数与使用方法
在使用LookAt节点前,我们需要在细节面板中配置相关的参数,官方文档中对面板中的参数做了一些说明:虚幻引擎中的动画蓝图头部Look At节点
上图黄色框中的参数是与骨骼相关的参数:
Bone to Modify: 该节点将要控制的骨骼,用于转头的话一般会选择Head或Neck的骨骼,具体使用什么骨骼可以根据自身情况进行调整。
Look at Axis与Look Up Axis: 这两个参数分别代表Modify的骨骼它朝向正方向的轴与朝向正上方的轴。不同的骨骼可能会有不同的情况,以笔者所用的骨骼为例:
因为在Look At 节点上Look At Axis 和 Look Up Axis都勾选了 Local space,因此我们在查看骨骼的时候要将右上角的空间选项切换成本地空间。然后我们选中要控制的骨骼,笔者这里选择的是Head。由此可知Head骨骼的Look At Axis 是 Y轴, Look Up Axis是X轴。因此在LookAt节点的细节面板中要将这些修改成对应的轴(例如Axis(0,1,0)就代表着Y轴)
当调整好骨骼相关的参数,我们需要设置角色看向的位置,即下图所示参数:
我们需要将Look at Location公开为引脚,这样就能将外部的值传入Look At节点
设置至此已经可以实现NPC头部朝向玩家角色的基础功能了。
优化转向速度与平滑度
使用节点以后可能会觉得NPC转向的速度太快,转向的也是很机械的转向(匀速转头),如果想优化这些方面,LookAt节点也内置了优化功能,只需要修改下列参数即可:
Interpolation Type:
根据官方文档的解释,可以自己选择所需要的插值类型
Interp Speed 相关参数:
Interp Speed Increasing 应该是转向开始时的速度, Decreasing应该是转向结束前的减速速度
这两个参数大概相当于动画中的混入与混出。
参考视频:
笔者制作这个功能也是参考了B站战斗吧勇士大佬的视频,想要更加细致的了解与事件LookAt节点功能的朋友可以去观看勇士大佬的视频:
9.2 LookAt节点头朝向、动画蓝图层接口