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