邵輝
摘 要 主要介紹目前應用最為廣泛的骨骼動畫的一些相關知識,簡要分析骨骼動畫的原理及優缺點,并結合自己的理解對骨骼動畫的發展及其在中等職業教育中的應用進行研究。
關鍵詞 骨骼動畫;網格模型;頂點;中等職業教育
中圖分類號:TP317.4 文獻標識碼:B
文章編號:1671-489X(2014)04-0086-02
1 概述
隨著計算機動畫在電影、游戲、虛擬現實等領域的廣泛應用,越來越多的人們經常會聽到一個最流行的詞語——骨骼動畫(bones animation)。所謂骨骼動畫,就是通過改變骨骼的位置和朝向來移動和編輯一個模型而生成的動畫。理解骨骼動畫可以先從骨骼開始。在骨骼動畫中,骨骼是基礎,是關鍵點。目前在各類實時動畫應用中骨骼動畫已經成為使用最廣泛的動畫技術,使用骨骼動畫技術,可以設計塑造出很多栩栩如生、形象逼真的動畫角色,特別是對于人和其他脊椎動物的造型設計。如大家熟知的很多游戲(如魔獸世界、合金裝備等)中的造型,都是骨骼動畫技術的運用。
本文將對骨骼動畫的一些相關知識進行分析與思考,進而探索骨骼動畫在中等職業教育中應用的可行性。
2 骨骼動畫的原理
骨骼動畫的基本原理 在自然界中,人和大多數動物的運動都是由骨骼的運動帶動依附于對應骨骼的皮毛血肉一起運動完成的,骨骼動畫正是起源于這一點。一般來說,在骨骼動畫中每一個角色主要是由兩部分表示的,即骨架和皮膚。骨架是按照一定層次組織起來的骨骼的總稱。而皮膚主要是指蒙在骨骼之上的網格模型。網格模型即角色的多邊形模型,該多邊形模型一般由三角形面片組成,而三角形又是由頂點組成的,同時還需要確定哪些骨骼影響哪些頂點,當骨骼運動時依附于骨骼的頂點會隨著一起運動,這樣就實現了動畫中角色的運動。
骨骼動畫的細節分析 在骨骼動畫中,骨骼按照動畫角色的特點形成一個層次結構,即骨骼結構。骨骼結構就是一系列的骨頭相結合形成的骨層級,這些骨骼按照父子關系是以樹狀結構組織起來的,形成角色模型的整個骨骼框架。位于樹根處的骨頭稱為根骨骼,它是形成骨骼結構的關鍵點。而其他所有的骨骼被稱為子骨骼或者兄弟骨骼,它們都附屬于根骨骼,都直接或間接連接到根骨骼上。骨骼動畫中一般每塊骨骼都帶有兩個矩陣,一個是初始變換矩陣,又稱相對矩陣,用于表示骨骼的初始位置;另一個是組合變換矩陣,又稱絕對矩陣,它是骨骼的最終矩陣,可以通過相對矩陣和其父骨骼的絕對矩陣相乘計算得到,主要用于對骨骼進行變換。相鄰的骨骼由關節連在一起,可以做相對的運動。當相鄰骨骼之間的夾角或位移發生改變時,組成動畫角色的骨骼就可以做出不同的動作,從而實現不同的動畫效果。而作為皮膚的網格模型則用于規定動畫角色的外在形象,它是在骨骼運動影響下變化的一個可變形網格。
組成網格模型的每一個頂點都會受到一個或多個骨骼的影響。當一個頂點受到一個或多個骨骼運動影響時,不同的骨骼按照其與該頂點的關系可以確定出對該頂點的影響權重,這一權重信息既可以通過建模軟件計算,也可以用手工設置完成。按照網格模型中各個頂點中保存的相應的權重信息和影響它的骨骼索引,可以計算出該頂點的新位置,在骨骼動畫中骨骼的位置是隨時間變化的,而頂點的位置是隨骨骼變化的。如果要改變頂點的位置,只需移動模型中對應的一根骨頭就可以,這樣就能實現在骨骼驅動下的單一網格動畫。
在骨骼動畫文件中,一般只有一幀的頂點位置信息,而其他幀的頂點信息完全是在動畫運行中實時計算出來的,計算的方式,就是要了解骨骼的作用。也就是說,每一幀的頂點信息都是依靠“骨骼”計算出來的。這種時間換空間的做法,相對于頂點來說,骨骼需要的存儲量會少很多,但卻多了一些運算。
3 骨骼動畫的優缺點
如今骨骼動畫已經成為渲染3D角色模型的主要技術,在計算機圖形學中基于骨骼運動的角色造型具有很強的真實感。它對處理器性能的要求很高,占用磁盤空間相對比較小,可以更容易、更快捷地創建角色模型,不但比單一的網格模型動畫更加靈活、逼真,還克服了關節動畫中的接縫問題。骨骼動畫只需要存儲骨骼變換數據,不需要在每一幀中存儲各個頂點的數據,因此使用骨骼動畫可以節省許多磁盤空間,并且能夠較好地控制網格模型的變換。不同的骨骼動畫可以被組合到一起使用,一些引擎可以實時操縱單個骨骼,這樣可以使角色和環境更加準確地進行交互。
目前骨骼動畫被廣泛地應用在很多領域,特別是網絡游戲制作方面。骨骼動畫具有很多優勢,但其技術難度也很高。有了骨骼動畫這種技術,在創建角色動畫時,不再需要動畫模擬幾何圖形數據。有了骨骼動畫,就不用提前做好預處理,可以在游戲運行時計算動畫,這樣在游戲中可以有更真實的運動效果。因為不是所有的引擎都支持骨骼動畫,骨骼動畫中大量的計算,對中央處理器來說是一個很大的負擔,容易造成系統利用率的不平衡,使骨骼動畫的繪制效率降低。這一問題隨著可編程GPU技術的廣泛研究,一種基于GPU實現骨骼動畫的方法被提出,已經得以解決。
4 骨骼動畫的發展與應用
近年來國內外有很多學者都在研究骨骼動畫,目前已經取得了一些成果。如孔德慧等提出了一種增強骨骼動畫運動細節的關鍵幀插值方法,實現了對變速運動和手臂擺動運動模擬的動畫效果。張典華等提出用頂點索引法存貯數據,大大降低了骨骼動畫的運算量。陳志榮等討論并實現了骨骼混合算法。Merrick等研究與分析了幾種骨骼動畫算法的性能。季卓爾等提出了一種可以提升骨骼動畫繪制效率的方法。骨骼動畫有很強的兼容性,它可以與動作捕捉技術、可編程Shader技術和正向反向動力學等技術進行結合。
研究骨骼動畫的計算過程發現,骨骼動畫的計算量特別大,因為當一個頂點受到許多骨骼影響時,求一個頂點的新位置會牽涉到大量的矩陣與乘法運算,骨骼動畫技術也因此一度發展比較緩慢。現在,隨著計算機計算能力的不斷提高,特別是3D硬件技術的快速發展,骨骼動畫已經走向成熟,并且已經廣泛應用于電影、游戲、虛擬現實、建筑和教育等領域。
我國中等職業教育培養的是高素質的勞動者,需要學生在就業前具備很強的實踐操作能力,即學生在接受中等職業教育階段應該熟練掌握相關專業對應的崗位所需要的理論知識和基本技能。目前,中等職業教育主要還是以教師講授為主,盡管增加了很多實訓課,但還遠遠不夠,不能滿足實際教學需求,特別是汽修、數控和計算機專業。學生來源主要是初中畢業生,這些學生絕大多數的基礎都很差,更缺乏自我約束力和學習能力,很多專業知識無法理解,比較厭學。這一狀況一直困擾著中職教育工作者。同時,中等職業學校的學生因為年齡偏低,喜歡動畫和游戲,有很強的好奇心和模仿力。因此,作為一名中等職業學校的計算機專業教師,幫助認為如果能將骨骼動畫技術應用于中等職業教學環節,模擬各個就業崗位中的實際動畫效果開展教學與實訓,可以使學生看到以往只能在動畫電影中才能看到的各種生動逼真的動畫效果,親身體會學習和工作帶來的快感,來激發學生的學習興趣,這樣會得到事半功倍的效果。
將骨骼動畫技術引入中職課堂教學,是一件龐大的工程,需要一個教師團隊和一些企業單位共同參與來完成。可以先選擇一個專業的某一門課程進行試點,利用骨骼動畫技術的實時性、靈活性和仿真性,通過對企業工作崗位的調研分析,結合課程內容制作教學動畫或游戲。在教學過程中使用這些教學動畫或游戲,讓學生有身臨其境的感受,在玩中學,這將是中等職業教育的一次大的變革。
5 結論與展望
本文以一名中等職業學校計算機專業教師的視角簡要分析了骨骼動畫的原理及其發展與應用。目前,骨骼動畫是最流行也是最復雜的動畫技術,隨著這一技術的發展與普及,可以想象,在不久的將來,骨骼動畫的應用領域會更加廣泛,一定能在中等職業教育的課堂中展現出無窮的魅力。
參考文獻
[1]張振華,徐波,王虓宇,等.骨骼動畫在仿真中的應用[J].現代計算機,2013(8):48-51.
[2]袁會杰.骨骼動畫技術的研究與實現[D].成都:電子科技大學,2010.
[3]王蕊,萬旺根,王瑞,等.基于iPhone平臺的骨骼動畫研究與實現[J].計算機工程與設計,2010(23):5043-5047.
[4]丁鵬,賈月樂,張靜,等.骨骼蒙皮動畫設計與實現[J].技術與市場,2009(10):11-12.
[5]張俊文.基于VC的3D角色動畫的實現[J].中國水運,2008(12):107-108.
[6]Pipho E. Focus On 3D Models[M].Portland: Premier Press,2003:71.