簡單的IK骨骼動畫(huà)IK解算方法(fǎ)
2018/11/15 點擊:
我們知道一般的骨骼動畫就是FK骨(gǔ)骼動畫即正向骨骼動畫,它的實現相信大家都(dōu)以(yǐ)經很清楚,我假設你們都已經了(le)解了。 IK骨骼動畫就(jiù)是逆向(xiàng)骨骼動畫,如果(guǒ)需要高級的動畫效果我們就(jiù)要用到它。如果對遊戲角色來說FK骨骼動畫(huà)的作用帶有主觀性,那麽IK骨(gǔ)骼動畫的(de)作用則(zé)是環境對角(jiǎo)色的客(kè)觀影響。
說到(dào)IK骨骼動畫,我(wǒ)們就需要談到IK解算器。在3DSMAX中我們可以很輕易的創建它(tā),我們這裏以HI解算器為例,除此(cǐ)之外還有HD解算器IK肢體解算器。
效果說明:假設黃色的線段(duàn)為父骨頭,綠色的線段為子骨頭,紅色的(de)為IK解算線(xiàn)(姑且這麽叫吧),當IK解算線的右端向左(zuǒ)端靠近時會帶(dài)動骨(gǔ)骼做彎曲運動。
假設(shè)上圖是當前動畫幀的骨骼狀態。
首先我們需要做出IK解算(suàn)線並記錄下來,即紅(hóng)色的線段。
其次先讓子(zǐ)骨(gǔ)頭(tóu)做一次旋轉運動,再做一次IK解算線,即橙色的線段。這時我們就可以算出紅色線段和橙色線段之間夾角。
後讓父骨頭反向旋轉相應度數,由於父骨頭會帶動(dòng)子骨頭(tóu),使得橙色線段與紅色線段重合。此時就是想要的結果了。
說到(dào)IK骨骼動畫,我(wǒ)們就需要談到IK解算器。在3DSMAX中我們可以很輕易的創建它(tā),我們這裏以HI解算器為例,除此(cǐ)之外還有HD解算器IK肢體解算器。
效果說明:假設黃色的線段(duàn)為父骨頭,綠色的線段為子骨頭,紅色的(de)為IK解算線(xiàn)(姑且這麽叫吧),當IK解算線的右端向左(zuǒ)端靠近時會帶(dài)動骨(gǔ)骼做彎曲運動。
上圖告訴我們可以用圓(yuán)的當然三維空間中是球的方程來求交點實(shí)現,不過我想誰也不希望用計算機來(lái)求解這個方程,所以有一種替代方(fāng)案它(tā)的實現原理,這是(shì)一(yī)種獨立曆史記錄的IK骨骼動畫.
實現方法大致分為(wéi)三步:假設(shè)上圖是當前動畫幀的骨骼狀態。
首先我們需要做出IK解算(suàn)線並記錄下來,即紅(hóng)色的線段。
其次先讓子(zǐ)骨(gǔ)頭(tóu)做一次旋轉運動,再做一次IK解算線,即橙色的線段。這時我們就可以算出紅色線段和橙色線段之間夾角。
後讓父骨頭反向旋轉相應度數,由於父骨頭會帶動(dòng)子骨頭(tóu),使得橙色線段與紅色線段重合。此時就是想要的結果了。
這隻是眾多方法中的(de)一種,當(dāng)然這還有缺點,比如旋角度不能過大,骨頭隻間不能成(chéng)一條直線,但是這些都可以(yǐ)通過加入條件判斷來解決。
- 上一篇:C# 串口二進製協議(yì)數據解析範例 2018/12/26
- 下一篇:骨骼反向動(dòng)力學(INVERSE IK)的實現 2018/11/15