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