一. 骨骼動畫基本原理:
骨骼動畫,是遊戲中使用最多的動畫表現形式,遊戲中玩家怪物的動作表現基本都是基於骨骼動畫。
模擬現實中動畫運動模式,大多數動物的運動是由骨骼的運動連帶附着在骨骼上的皮肉一起運動。而三維中的模型是由頂點和麪組成的,爲其附加一套骨骼,同時指定哪些頂點附着於哪些骨骼(也就是受哪些骨骼影響)。這樣當骨骼運動時附着於骨骼的頂點也會發生相應的運動從而形成動畫,這就是骨骼動畫的基本原理。
二. 骨骼動畫基本流程:
a.首先要了解幾個名詞:
1.關鍵幀: 在幀動畫中用不連續的幾幀近似描述動作過程,用於標記在動作過程中某幀的具體表現。
2.蒙皮信息: 所謂的蒙皮信息則是記錄了每根骨骼對應網格中頂點的信息,如骨骼bone1影響的頂點列表以及對其影響的權重信息等內容。
1.事先在3DMax等軟件中編輯好一套骨骼動畫。
2.將骨骼動畫綁定到網格模型。
3.有程序中控制加載網格MESH和骨骼動畫並生成蒙皮信息。
4.每幀根據關鍵幀信息用線性差值(或者其他方式如B樣條)更新所有骨骼位置信息。
5.根據蒙皮信息更新網格數據,從而形成動畫效果。
注: 一般骨骼的邏輯結構是樹形結構,也就是從根骨骼出發,可以包含多個子節點,每個子節點又可以有多個子節點,父節點子節點之間的相對位置關係是用過相對父節點變化矩陣來來接的。子骨骼相對射界的變換矩陣
CombineSubBoneMat = SubBoneMat(相對父節點的變化矩陣) * ParentBoneMat(父節點變化矩陣);
每幀確定骨骼變化矩陣的方式(線性插值):CombineMat = t*MatFirst + (1-t)*MatSecond; t爲處於當前兩關鍵幀之間的時間比例,MatFirst爲上一關鍵幀矩陣MatSecond爲下一關鍵幀矩陣。