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