欧拉角-万象锁问题。

Posted mygameblogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了欧拉角-万象锁问题。相关的知识,希望对你有一定的参考价值。

欧拉角,Roll-Pitch-Yaw. Roll表示绕X轴旋转,Pitch表示绕Y轴旋转,Yaw表示绕Z轴旋转。

在欧拉角中,三个角度存在层级关系。例如Roll->Pitch->Yaw,Roll旋转时会同时旋转Pitch和Yaw,Pitch旋转时会旋转Yaw,而Yaw旋转时则不能影响前面2个。

在UE4中,层级关系似乎是Yaw->Pitch->Roll。 Pitch一定是第二层级,因为本人测试过当Pitch旋转为±90°的时候,将发生万象锁。

 

万象锁,即由于第二层级旋转轴发生±90°的旋转,从而导致第三层级的旋转轴与第一层级的旋转轴重合。此时,因为第一层级和第三层级的旋转轴重合,因此第一层级的旋转效果和第三层级的旋转效果是一样的。

这个现象就是万象锁问题。  

解决方法:

第一是限制第二层级旋转轴的旋转角度。只要旋转角度不是±90°,则不会发生万象锁。不过这种情况下,要进行连续的旋转动画则可能会由问题。

 

以上为对欧拉角万象锁的理解。

附上万象锁解释视频:https://www.bilibili.com/video/av8387812/?spm_id_from=333.338.recommend_report.2 

 

以上是关于欧拉角-万象锁问题。的主要内容,如果未能解决你的问题,请参考以下文章

Unity基础:欧拉角、四元数

UnityUnity 欧拉角四元数万向节死锁四元数转轴角

unity3d把 x的欧拉角赋给y啥作用

欧拉角到四元数然后四元数到欧拉角

VR-四元素、欧拉角转换条件

如何将欧拉角转换为四元数并从四元数中得到相同的欧拉角?