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