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