摘要:針對動作捕捉技術(shù)教學(xué)實驗實施不便、實驗設(shè)備搭建和維護麻煩等問題,提出利用Kinecc鏡頭采集骨骼運動數(shù)據(jù),實時驅(qū)動三維虛擬角色動作并記錄輸出動畫的方法,論述實時角色動畫實驗教學(xué)設(shè)計過程。
關(guān)鍵詞:實時角色動畫;Kinect鏡頭;實驗教學(xué);教學(xué)設(shè)計
0.引言
隨著增強現(xiàn)實、虛擬現(xiàn)實和動作捕捉等高級計算機視覺技術(shù)的發(fā)展,計算機三維動畫的應(yīng)用范圍日益寬廣,在建筑場景交互展示、城市虛擬規(guī)劃、工業(yè)產(chǎn)品展示、角色動畫等領(lǐng)域均有較大市場,特別是《阿凡達(dá)》《變形金剛》《星球黎明》等一系列融合了三維建模、動作捕捉等計算機三維動畫技術(shù)的電影熱映以后,以動作捕捉技術(shù)為核心,演員實時驅(qū)動三維虛擬角色進(jìn)行動作,記錄生成動畫的角色動畫制作方式變得流行。
目前各個高校開設(shè)的三維動畫課程在角色動畫部分都以講授傳統(tǒng)動畫技術(shù)為主,大致分為關(guān)鍵幀動畫技術(shù)和渲染輸出技術(shù)兩大模塊,對上述新興的實時角色動畫制作技術(shù)較少涉及。
1.動作捕捉與實時角色動畫技術(shù)的特點
近年來,隨著在動畫制作、影視特效、體感交互等領(lǐng)域的廣泛應(yīng)用,動作捕捉及實時角色動畫技術(shù)取得了長足發(fā)展。目前普遍應(yīng)用的運動捕捉方式為電磁式和光學(xué)式兩大類,無論使用哪種,一般都要求演員穿著專業(yè)的運動捕捉服記錄動作,如圖1所示。
運動捕捉基于計算機圖形學(xué)原理,通過傳感器——光學(xué)攝像頭或電磁傳感器將運動物體(如人)的運動狀態(tài)記錄下來,最終得到基于時間維度的各個觀測點的三維空間坐標(biāo),其運動數(shù)據(jù)質(zhì)量的高低取決于捕捉觀測點的準(zhǔn)確程度,因此在對運動狀態(tài)記錄精度要求較高的應(yīng)用(如大型電影、面部表情動畫、運動分析、精細(xì)肢端動作交互等)中均需使用專業(yè)運動捕捉服裝并在服裝上準(zhǔn)確設(shè)置觀測點標(biāo)志,如光學(xué)式捕捉系統(tǒng)用的反光球或電磁式傳感器與電纜。
上述動作捕捉得到的運動狀態(tài)數(shù)據(jù)精度較高,實時l生好,《變形金剛》《星球黎明》等電影的拍攝普遍采用此種方式。但對于教學(xué)實驗而言,角色動畫實驗學(xué)時有限,每次實驗都穿著服裝并進(jìn)行標(biāo)定并不現(xiàn)實;同時,動作捕捉服裝及其附件價格較高,受設(shè)備數(shù)量和維護需要等限制也難以在本科生課程實驗中應(yīng)用。
2.基于Kinect鏡頭的實時角色動畫實驗環(huán)境搭建
微軟發(fā)布的Kinect價格較低,能實時采集RGB彩色圖像和深度數(shù)據(jù)并可同時提供兩人的骨骼數(shù)據(jù)追蹤,鏡頭采用USB口與計算機相連,即插即用,硬件設(shè)置簡單易行,如圖2所示。
Kinect鏡頭可用于體感捕捉的原因是:設(shè)備本身提供了可以采集對象在立體空間中的深度信息的鏡頭組?;贙inect鏡頭和計算機平臺的實時角色動畫制作實驗開發(fā)環(huán)境可以用圖3表示。
上圖中層①為硬件基礎(chǔ)層,核心部件是Kinect的傳感器,包括鏡頭角度驅(qū)動馬達(dá)、攝像頭和麥克風(fēng)陣列。實驗中主要用到的是鏡頭組。Kinect的鏡頭共有2個,一個用于RGB彩色圖像采集,一個用于深度信息采集。還有一個紅外發(fā)射器,具體的原理可以參閱微軟公司的Kinect產(chǎn)品網(wǎng)頁。
層②為鏡頭設(shè)備的驅(qū)動層,設(shè)備通用性較高,開發(fā)系統(tǒng)具有良好的平臺移植能力。Kinect鏡頭的驅(qū)動安裝非常簡單,需要調(diào)用的部分主要是設(shè)備訪問、視頻流控制和鏡頭組堆棧。
層③是自然人機接口NUI的API部分,也包括有音頻識別等功能的API。
要實現(xiàn)骨骼數(shù)據(jù)的實時傳輸,需要借助微軟發(fā)布的Kinect SDK,這個二次開發(fā)包中提供了軟件類庫和開發(fā)工具,通過它可以捕獲體感交互中需要的自然數(shù)據(jù),如人體的骨骼信息(動作信息)、深度信息(距離信息)、圖像信息等。Kinect鏡頭采集的骨骼數(shù)據(jù)如圖4所示。
3.Kinect骨骼數(shù)據(jù)驅(qū)動的實時角色動畫實驗教學(xué)設(shè)計
筆者以三維動畫設(shè)計課程中的“角色動畫制作實驗項目”為例,給出實時角色動畫實驗教學(xué)設(shè)計。
3.1實驗項目概述
傳統(tǒng)的角色動畫實驗教學(xué)中主要利用3DSMax軟件中的骨骼動畫技術(shù)完成角色動作的關(guān)鍵幀編輯,完成后將動作存儲為BIP文件,最后綁定角色模型和BIP動作并渲染生成動畫。筆者給出的方法主要是利用Kinect鏡頭實時采集演員動作并生成BVH動作數(shù)據(jù),通過3DSMax腳本加載后實時驅(qū)動綁定好骨骼的角色模型,進(jìn)而記錄為動畫。使用該方法,學(xué)生實驗操作簡單易行,能體會到流行的實時角色動畫制作流程,調(diào)動學(xué)習(xí)熱情,為學(xué)生進(jìn)一步學(xué)習(xí)高級角色動畫技術(shù)打下基礎(chǔ)。
3.2實驗關(guān)鍵步驟
(1)設(shè)備連接:Kinect硬件連接后利用系統(tǒng)中安裝的Kinect for windows Developer Toolkit進(jìn)行測試,可以通過調(diào)用其中的Skeleton Basic.WPF來進(jìn)行,以正確顯示綠色的骨骼線條。
(2)角色導(dǎo)入:打開3DSMax軟件,加載角色模型(已綁定好骨骼BIPED),加載實時BVH腳本。
(3)實時動作捕捉:實驗演員在Kinect鏡頭前的有效范圍內(nèi)(離鏡頭1.4~3.8米)按預(yù)先編排的動作腳本進(jìn)行動作。
(4)保存動作文件:設(shè)置渲染器并渲染輸出動畫。
Kinect骨骼數(shù)據(jù)驅(qū)動的實時動畫制作如圖5所示。
3.3實驗設(shè)計
本實驗需6學(xué)時,分兩次課進(jìn)行,中間間隔1周,學(xué)生有較充分的課下準(zhǔn)備時間。第1次課要求學(xué)生熟悉硬件設(shè)備環(huán)境和操作規(guī)程,完成角色模型的骨骼綁定對齊。第2次課要求學(xué)生進(jìn)行實時動作捕捉并輸出結(jié)果,除了得到動畫視頻文件外,還可以得到相應(yīng)的動作文件BIP或BVH。
通過本次實驗項目實踐,學(xué)生將完整掌握Kinect骨骼數(shù)據(jù)驅(qū)動的實時角色動畫制作技術(shù),熟悉動作數(shù)據(jù)文件處理,為將來進(jìn)行大型或精細(xì)動作的角色動畫制作打下基礎(chǔ)。實驗項目同時培養(yǎng)了學(xué)生的創(chuàng)新性思維,使學(xué)生學(xué)習(xí)的內(nèi)容緊跟技術(shù)的發(fā)展。
4.結(jié)語
實時角色動畫制作技術(shù)與傳統(tǒng)的關(guān)鍵幀編輯制作方法相比,具有效率高、效果好、制作周期短等優(yōu)勢,有較廣泛的應(yīng)用市場。該實驗教學(xué)設(shè)計在學(xué)院3個專業(yè)、共計4輪的三維動畫設(shè)計教學(xué)中進(jìn)行了實踐,深受師生歡迎。由于Kinect鏡頭成本低廉,動作捕捉時無須穿著專業(yè)捕捉服裝,實驗容易實施,且設(shè)備安裝維護方便,實驗效果良好;通過結(jié)合實際動畫制作項目,構(gòu)造虛擬教學(xué)情境,提高了學(xué)生學(xué)習(xí)的主動性和參與度,實現(xiàn)了科技化教學(xué)。