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