IK在骨骼動畫里常常能看到,作用就是根據子骨骼的方位推算出它的那些父骨骼方位。可是一直都是知道有那么回事,但是又不太知道具體是怎么實現的。
在multi-crash.com上看到一篇骨骼動畫反向動力學(IK)的實現 ,內容寫的很易懂。
這是基于CCD(Cyclic Coordinate Descent
)算法的。還有種雅可比矩陣的算法,不過這種算法我還不太清楚,希望高手指教啊。
下面講講CCD,先看這張圖。

注意圖中的紅線和綠線,紅線是當前骨骼與目標骨骼的連線,綠線是目標骨骼與最終位置的連線。
從子骨骼到父骨骼的順序迭代計算,旋轉紅線到綠線。這樣多迭代幾次就會得到較好的結果。
要注意的是需要對骨骼的旋轉范圍加以限制,因為人體的關節不是以可以任意方式旋轉的。

[例如圖中藍色部分為可以旋轉的范圍]