UE4 第三人称人物 目标偏移(Aim offset)学习笔记

时间:2024-04-08 15:34:53

今天撸UE4教程时,学到了状态机,其中在学目标偏移时出现了挺多的BP结点,感觉逻辑上对于欧拉角的一些计算上的一些理解需要记一下。

欧拉角

关于欧拉角个人的理解呢,其实和三维坐标系差不了太多,只要根据 xyz 和 roll pitch yaw,两种的顺序一起记就行,只不过欧拉角是根据xyz三轴进行旋转而已。具体的解释贴一个博客网址欧拉角
里面有非常详细的解释,最早学的时候解了很久的疑惑,点个赞!!

目标偏移(Aim offset)

好了,二话不说,先上蓝图。
UE4 第三人称人物 目标偏移(Aim offset)学习笔记
1.Aim_Hero是一个做好的Aim Offset ,目标偏移做的是人物静止时的头部转动,类似于吃鸡里边的那种。
UE4 第三人称人物 目标偏移(Aim offset)学习笔记
2.Delta(Rotator)结点是用来计算两个Rotator的差值的,简单打个比方呢,如图上获取的两个Rotator,一个是Actor的,一个是Control的。
UE4 第三人称人物 目标偏移(Aim offset)学习笔记
就像这个时候你的人物(Actor)与你的正向前进方向是相同的所以Actor Rotator是0,而鼠标控制的转向是向左转了90度(不考虑Yaw的方向)所以这时候Delta Rotator得到的旋转就是这两个方向的差值。
PS:上图是做好了目标偏移的效果图。
UE4 第三人称人物 目标偏移(Aim offset)学习笔记
个人感觉比较需要理解一下过程的是Pitch和Yaw两个参数的传递运行情况,我说一下我个人的理解,如果有错的希望能帮忙纠正下。

前面的Delta Rotator计算了旋转差值,获得了我们要的目标旋转度,也就是我们应该转到什么位置,而根据RInterp To这个结点的参数呢,他需要两个Rotator,一个是目标旋转,一个是当前旋转,目标偏移只需要pitch和yaw两个方向的Rotator,所以我们只要用之前从状态机中提升为变量的两个pitch和yaw做成Rotator,RInterp To 结点的作用是从一个旋转到另一个旋转使其更加平滑(个人认为应该跟TimeLine的auto差不多),最后再拿到两个参数的值进行设置,那么在状态机里边,Aim就会根据两个参数的值播放对应的位置的动画了。