1. 程式人生 > >遊戲動畫中歐拉角與萬向鎖的理解

遊戲動畫中歐拉角與萬向鎖的理解

article sdn 參考 球面 tps target tail str htm

總結:如果動畫師在某個關鍵幀處指定了會引發萬向鎖的方位,則下一個關鍵幀的方位一旦超出了萬向鎖的約束範圍,則這兩個關鍵幀之間的路徑就會發生偏移,反映在角色動畫上是旋轉偏移,反映在鏡頭控制上就是鏡頭抖動。

要獲得路徑偏移的感性認識,可以參考這個視頻:這個視頻和我的描述有些不同,該視頻使用一個稱為萬向節的奇怪裝置解釋的,而我是直接用的物體坐標系但路徑偏移都是一樣的。

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/

遊戲動畫中歐拉角與萬向鎖的理解