游戏动画中欧拉角与万向锁的理解

总结:如果动画师在某个关键帧处指定了会引发万向锁的方位,则下一个关键帧的方位一旦超出了万向锁的约束范围,则这两个关键帧之间的路径就会发生偏移,反映在角色动画上是旋转偏移,反映在镜头控制上就是镜头抖动。

要获得路径偏移的感性认识,可以参考这个视频:这个视频和我的描述有些不同,该视频使用一个称为万向节的奇怪装置解释的,而我是直接用的物体坐标系但路径偏移都是一样的。

http://v.youku.com/v_show/id_XNzkyOTIyMTI=.html

怎样解决万向锁这个问题?

出现这个问题的根本原因是在万向锁情况下对欧拉角的插值不是线性的,因此旋转路径发生偏移。

解决方法是:

将欧拉角转换为四元数,对四元数进行slerp即球面线性插值,再将这一系列四元数转换为对应的欧拉角,而后作用于角色。缺点是耗费一定的内存,但角色可以任意旋转,灵活度高。

转载:http://blog.csdn.net/huazai434/article/details/6458257
https://zhuanlan.zhihu.com/HomoLuden
http://blog.csdn.net/candycat1992/article/details/41254799/

原文地址:https://www.cnblogs.com/porter/p/7574424.html