基于運動(dòng)捕獲數據的三維角色動(dòng)畫(huà)設計論文
摘要:本文研究了怎樣把現有的人體運動(dòng)數據重新定向到新的動(dòng)畫(huà)角色對象上,并實(shí)現了一個(gè)原型系統——盼盼三維角色動(dòng)畫(huà)系統。通過(guò)這種方法, 用戶(hù)只需要從動(dòng)畫(huà)庫中選擇所需的人體運動(dòng),便可方便地控制任意三維動(dòng)畫(huà)角色的運動(dòng)和變形,從而重用現存的人體運動(dòng)數據去控制新的角色,創(chuàng )作出一些夸張的動(dòng)畫(huà)效果。
關(guān)鍵詞:運動(dòng)重用 三維角色 計算機動(dòng)畫(huà) 人體動(dòng)畫(huà)
一、引言
在近十幾年里,計算機動(dòng)畫(huà)技術(shù)得到了突飛猛進(jìn)的發(fā)展,以動(dòng)畫(huà)卡通、網(wǎng)絡(luò )游戲、手機游戲、多媒體產(chǎn)品等為代表的動(dòng)漫產(chǎn)業(yè)是21世紀知識經(jīng)濟的核心產(chǎn)業(yè),被稱(chēng)為21世紀最有希望的朝陽(yáng)產(chǎn)業(yè),這場(chǎng)“后現代產(chǎn)業(yè)浪潮”不僅給全球經(jīng)濟戰略結構帶來(lái)了根本性轉變,也為進(jìn)入新世紀的中國經(jīng)濟創(chuàng )造了一次千載難逢的歷史發(fā)展機遇。
但是,目前的動(dòng)畫(huà)技術(shù)還遠沒(méi)達到理想的地步。計算機輔助二維動(dòng)畫(huà)具有制作相對方便、制作成本低、對制作和運行的硬件環(huán)境要求較低等優(yōu)點(diǎn)。但是由于傳統的二維對象缺少顯式的三維信息,使得自動(dòng)生成好的中間幀畫(huà)面非常困難,比如在變化過(guò)程中,特別是那些非平行于畫(huà)面的變換,引起的起各幀畫(huà)面之間對象的對應問(wèn)題、剪影輪廓的變化問(wèn)題、各個(gè)部分的自遮擋問(wèn)題、保持形狀比例和體積問(wèn)題等等,都是研究者們一直試圖解決的難點(diǎn)問(wèn)題。
計算機動(dòng)畫(huà)之所以有那么強大的表現能力,各式各樣逼真的模型扮演著(zhù)舉足輕重的地位。這些模型大多由獨立的動(dòng)畫(huà)軟件,如3DSMax、Maya、Softimage等進(jìn)行設計。怎樣給一個(gè)靜態(tài)的模型賦予生命力,并讓它動(dòng)起來(lái)一直是圖形學(xué)研究者感興趣的研究課題。三維動(dòng)畫(huà)制作系統中,使用關(guān)節骨架控制三維動(dòng)畫(huà)角色已非常流行,動(dòng)畫(huà)師可以非常容易地設置和控制三維角色關(guān)節進(jìn)行動(dòng)畫(huà)控制。但是準確地控制三維模型的變形和運動(dòng)使其符合實(shí)際的物理規律,特別是想要達到實(shí)時(shí)的要求,難度很大。一種解決方法為采用自動(dòng)角色動(dòng)畫(huà)。角色動(dòng)畫(huà)動(dòng)包括骨骼動(dòng)畫(huà)和頂點(diǎn)動(dòng)畫(huà)。骨骼動(dòng)畫(huà)把整個(gè)人體按生理結構分為許多部分(圖1-2), 每個(gè)部分都有自己的幾何形體,然后再用數據結構把所有的部分合理地組成為一個(gè)有層次的整體,例如,上臂連著(zhù)前臂, 前臂連著(zhù)手。骨骼動(dòng)畫(huà)與頂點(diǎn)動(dòng)畫(huà)相比,占用空間小,因為它不需要象頂點(diǎn)動(dòng)畫(huà)那樣要存儲每一幀的各個(gè)頂點(diǎn)的數據,而是只需要存儲每一幀的骨骼的數據。骨骼的數據量與頂點(diǎn)的數據量相比,要少得多。所以骨骼動(dòng)畫(huà)有很多優(yōu)勢,不管是在游戲、電影動(dòng)畫(huà)還是虛擬現實(shí)中,生動(dòng)逼真的動(dòng)畫(huà)(人、動(dòng)物等)會(huì )使之增色不少。當然骨骼動(dòng)畫(huà)處理技術(shù)難度也很高,它需要解決的一個(gè)重要的問(wèn)題是:如何得到和模型相關(guān)聯(lián)的骨架?
本文研究了把現有的人體運動(dòng)數據重新定向到新的動(dòng)畫(huà)角色對象上。通過(guò)這種方法,動(dòng)畫(huà)師能夠利用現存的BVH人體運動(dòng)數據去創(chuàng )造新的動(dòng)畫(huà)。動(dòng)畫(huà)角色對象常被賦予復雜的非剛體運動(dòng)方式以達到夸張的效果,我們實(shí)現了三維角色的自動(dòng)綁定,使之能做到局部的非剛體變形描述。若要生成新的動(dòng)畫(huà),只需要從動(dòng)畫(huà)庫中選擇用戶(hù)所需的人體運動(dòng),便可方便地控制新的三維動(dòng)畫(huà)角色的運動(dòng)和變形。人體的運動(dòng)數據可以來(lái)源于運動(dòng)捕捉,也可以從現存的動(dòng)畫(huà)和影片視頻中通過(guò)圖像處理和計算機視覺(jué)的方法來(lái)獲取;谶@些素材,我們可以得到運動(dòng)的素材庫,作為動(dòng)畫(huà)師創(chuàng )作新動(dòng)畫(huà)的來(lái)源,從而豐富動(dòng)畫(huà)產(chǎn)品的多樣化和體現制作者的創(chuàng )造性思維。在如今的計算機動(dòng)畫(huà)中,建立模型的過(guò)程已經(jīng)變得比較簡(jiǎn)單。但是如果要讓模型動(dòng)起來(lái),還需要人們手動(dòng)去嵌入骨架,并且定義骨架驅動(dòng)表面皮膚的每一個(gè)細節。這個(gè)復雜繁瑣的過(guò)程只能由專(zhuān)業(yè)的動(dòng)畫(huà)師來(lái)完成,對于一些初學(xué)者來(lái)說(shuō)是可望而不可及的。我們實(shí)現的系統可以讓一個(gè)靜態(tài)的模型可以根據給定的運動(dòng)數據進(jìn)行所需要的運動(dòng)。整個(gè)過(guò)程由程序自動(dòng)實(shí)現,不需要人手動(dòng)來(lái)操作它。這樣的創(chuàng )新使它能夠表現更加復雜的動(dòng)畫(huà),因此不僅能夠為專(zhuān)業(yè)動(dòng)畫(huà)師所用,而且讓初學(xué)者也能體驗到自己設計動(dòng)畫(huà)的樂(lè )趣。
二、相關(guān)工作
在骨架提取方面,已經(jīng)有很多自動(dòng)生成骨架的方法。①②③Baran等的Pinocchio系統創(chuàng )造性地提出了骨架嵌入的方法。在自動(dòng)角色動(dòng)畫(huà)方面,骨架嵌入比骨架提取要好的原因是對于復雜骨架的角色,骨架提取可能會(huì )產(chǎn)生不同的拓撲結構,這就讓使用者很難將原來(lái)有的骨架運動(dòng)數據運用到其中來(lái)。雖然可以通過(guò)附屬肢體模板來(lái)鑒別復雜的附屬肢體,但是由于拓撲結構的復雜性,自動(dòng)生成時(shí)也會(huì )產(chǎn)生各種不同的誤差。骨架嵌入相對于骨架提取的另一個(gè)優(yōu)勢就是它能夠在骨架中定義角色所需要的很多的結構信息,這是在提取的純幾何骨架圖中難以得到的。
幾乎所有的網(wǎng)格變形技術(shù),無(wú)論是基于表面的還是基于體積的,都可以用來(lái)作為基于骨架運動(dòng)動(dòng)畫(huà)中的對表面進(jìn)行蒙皮。④⑤不幸的是,到目前為止,這些方法都不能實(shí)現實(shí)時(shí)的動(dòng)畫(huà)。Baran等的線(xiàn)性混合蒙皮(LBS)具有簡(jiǎn)單高效并且能夠利用GPU進(jìn)行運算,并可以根據骨架進(jìn)行子空間變形等優(yōu)點(diǎn)。雖然在質(zhì)量上的不能夠達到很好的效果,但是它仍然成為在實(shí)踐應用中最常用的方法。所以我們的系統采用該方法。⑥
三、原型系統設計設計過(guò)程
對于輸入的三維角色模型,我們首先嵌入骨架,然后通過(guò)定義骨骼運動(dòng)對表面網(wǎng)格上每個(gè)頂點(diǎn)的變化的影響權值,將表面皮膚依附在骨骼上。對于不同的角色,我們建立不同的罰函數去懲罰那些我們不期望的骨架嵌入方式;跇颖居弥С窒蛄繖C的方法求得最大邊緣解,然后對不同罰函數賦予不同的權值。用人工智能中A*啟發(fā)式的方法在指數級的搜索空間里加速尋找最優(yōu)的骨架嵌入方式。在蒙皮階段用熱擴散方程的方法去計算骨架運動(dòng)時(shí)每一塊骨骼對表面網(wǎng)格上頂點(diǎn)的影響權值。據骨架的變化情況,插值計算出骨架的“蒙皮”模型的各個(gè)頂點(diǎn)的位置變化。對于某個(gè)特定骨骼,“蒙皮”模型的頂點(diǎn)變換矩陣=初始姿勢的變換矩陣的逆×姿勢變換后的矩陣。另外還要考慮到一個(gè)頂點(diǎn)可能受多個(gè)骨骼運動(dòng)的共同影響。
1.骨架嵌入
由于骨架嵌入需要將骨架重新定義大小和定位使得它能夠正確的嵌入到模型當中,所以它能公式化為一個(gè)優(yōu)化的過(guò)程:計算關(guān)節點(diǎn)的位置和朝向使它能夠更好的適合于給定的模型。但是這個(gè)優(yōu)化是一個(gè)三維空間的問(wèn)題,所以連續優(yōu)化的方法是不可行的。因此可以建立一個(gè)用頂點(diǎn)表示潛在關(guān)節點(diǎn),用邊表示獨立的骨骼的圖來(lái)簡(jiǎn)化優(yōu)化問(wèn)題。建立這樣一個(gè)圖是具有一定挑戰的,因為我們可以用未知數量的頂點(diǎn)和邊來(lái)表示相同模型的關(guān)節和骨架。我們在近似模型垂直等分的平面上建立中軸面,并且建立圓心在中軸面上的圓的一個(gè)特定的集合,將這些圖的圓心連接起來(lái)形成一個(gè)圖。然后使用自定義的離散的罰函數來(lái)最優(yōu)化的骨架嵌入這個(gè)圖。為了幫助優(yōu)化,在給定的骨架中可以包括一些關(guān)節點(diǎn)的額外的信息。比如說(shuō)對稱(chēng)的部位應該以相同的名稱(chēng)命名,又比如如果一個(gè)關(guān)節被命名為腳,那么就表示它應該事在模型中位置最低的一個(gè)關(guān)節。由于定義的罰函數是獨立于具體的模型的,所以并沒(méi)有減弱它的通用性。
2.簡(jiǎn)化骨架
前面的步驟建立了幾何圖G=(V, E)來(lái)表示骨架,我們需要將它嵌入到我們給定的骨架當中。給定骨架原先是以有s個(gè)節點(diǎn)的樹(shù)的形式給出(在一般人形的骨架上會(huì )取s=18),但是如果這s個(gè)節點(diǎn)沒(méi)有經(jīng)過(guò)簡(jiǎn)化,嵌入的優(yōu)化過(guò)程是很難處理的。因此我們需要一個(gè)簡(jiǎn)單的骨架,所以在嵌入骨架之前,需要將骨架簡(jiǎn)化。所有的自由度為2的關(guān)節都將被除去(比如說(shuō)膝關(guān)節), 關(guān)節兩端的骨骼塊被連在一起。簡(jiǎn)化后的骨架將會(huì )只有r個(gè)連接點(diǎn)。那么骨架嵌入以后缺少某些必要關(guān)節的骨架怎么讓角色動(dòng)起來(lái)呢?我們根據未簡(jiǎn)化骨架上關(guān)節在整條邊上的比例,重新計算出該關(guān)節在簡(jiǎn)化骨架上的位置,然后插入到骨架中。在我們的系統中,簡(jiǎn)化的骨架中r=7。簡(jiǎn)化后的結果就是我們可以將簡(jiǎn)化的骨架嵌入到系統中以最小化罰函數懲罰的對象。否則這樣的工作是很難實(shí)現的。
3.離散的嵌入骨架和優(yōu)化
一般不可能計算離散的嵌入方式時(shí)使罰函數最小,因為嵌入的數量是指數級的。但是可以用類(lèi)似分支定界的方法在問(wèn)題的解空間樹(shù)T上搜索問(wèn)題解。我們使用這樣一種方法:首先根據部分嵌入的下界估計保存優(yōu)先級隊列。然后在每一步,取出在隊列中最好的部分嵌入,將它展開(kāi),與下一個(gè)關(guān)節進(jìn)行計算,然后將結果保存在隊列中。所以,第一個(gè)被完整展開(kāi)的嵌入就是最好的嵌入。為了加速算法并且盡可能少的占用內存,如果部分嵌入有一個(gè)很高的下界,那么它將被立即拒絕并不在嵌入到隊列中。雖然這種算法在最壞的情況下依然是指數級的,但是在我們測試實(shí)際情況它都是很快的。
在骨架嵌入前將骨架進(jìn)行了簡(jiǎn)化,省略了很多的關(guān)節,比如說(shuō)膝關(guān)節,但簡(jiǎn)單骨架嵌入以后,要讓角色真正的動(dòng)起來(lái),還是需要重新插入這些關(guān)節。在這里可以通過(guò)按比列分割骨架圖中路徑最短的邊來(lái)得到。我們希望嵌入后的骨架能夠很好的滿(mǎn)足角色的形態(tài)比列,但是,有時(shí)候骨架并不能很好的`適應我們的角色。同時(shí),一些小的被忽略的骨骼塊并沒(méi)有被賦予正確的朝向。骨架優(yōu)化的過(guò)程就是為了解決這些問(wèn)題的提出的。
4.蒙皮
我們的角色和嵌入的骨架在將皮膚依附到骨架上之前是沒(méi)有任何關(guān)聯(lián)的。骨架并不能夠驅動(dòng)角色運動(dòng)。因此我們需要指定骨架運動(dòng)與角色表面網(wǎng)格變化之間的聯(lián)系。雖然在這里我們可以用很多的網(wǎng)格編輯技術(shù)來(lái)進(jìn)行網(wǎng)格變形,但是我們選擇標準的LBS方法:假設表示網(wǎng)格頂點(diǎn)j的坐標,表示第i塊骨骼的變形矩陣,表示第i塊骨骼對第j個(gè)網(wǎng)格頂點(diǎn)的變形權值。LBS把j變形后的位置表示為。我們的目標就是找到每一塊骨骼變化對所有頂點(diǎn)的影響權值。我們所期望權值有以下幾個(gè)特性:首先它應該與網(wǎng)格的大小無(wú)關(guān),其次權值的變化應該平滑,最后關(guān)節間兩塊骨骼的移動(dòng)寬度必須與關(guān)節到表面網(wǎng)格的距離成一定的比例。即使有一個(gè)方案能夠得到權值使得骨骼能夠滿(mǎn)足這些特性,但是它們很可能失敗因為他們忽略了角色的的幾何學(xué)特性。作為代替,我們用熱平衡原理來(lái)尋找權值。假設我們把角色的體積認為是一個(gè)不占容積的熱導體,然后我們強迫骨骼i的溫度為1,而其他骨骼的溫度為0。當熱平衡以后,我們就可以把表面上每個(gè)頂點(diǎn)的溫度值作為該骨骼對它影響的權值。
四、實(shí)驗結果
盼盼動(dòng)畫(huà)系統設計時(shí)主要依照三個(gè)標準:① 廣泛性。適應于盡可能多的模型。對一些結構比較特殊,或者會(huì )產(chǎn)生歧義的模型能夠盡可能的正確嵌入骨架。②質(zhì)量。關(guān)鍵在于蒙皮的技術(shù),讓表面皮膚能根據骨架運動(dòng)驅動(dòng)正確的位和形變,以期與視頻游戲中的模型相媲美。③ 性能。運行在大多數的家用計算機上。 在盼盼動(dòng)畫(huà)系統里對采用的模型進(jìn)行了一些簡(jiǎn)單的限制:模型必須是全封閉的,并且是以最自然的姿勢站立,這樣能大幅度的提高骨架嵌入的準確性。當然模型需要是一個(gè)有四肢能被嵌入人體骨架的。
圖3為盼盼三維角色動(dòng)畫(huà)系統的一張截圖畫(huà)面。系統主要包括模型選取、BVH運動(dòng)數據選取、運行、視圖操作、工具條等功能。該系統的運行環(huán)境為英特爾酷睿雙核CPU,主頻為1.73Mhz,內存為1GB。因為盼盼動(dòng)畫(huà)系統是單線(xiàn)程的,所以雙核的CPU幾乎沒(méi)有什么影響。測試發(fā)現,計算的主要消耗花費在分離過(guò)程中距離場(chǎng)的計算上。
五、展望
雖然盼盼動(dòng)畫(huà)系統在人體動(dòng)畫(huà)領(lǐng)域取得了一定的進(jìn)展,但是它依然存在著(zhù)不足,限制著(zhù)它的應用范圍。在技術(shù)方面,建立骨架圖的時(shí)候可以用橢圓來(lái)建立初始骨架圖。在應用方面,首先它的蒙皮質(zhì)量在某些地方還可以改進(jìn),可以通過(guò)在骨架上自動(dòng)蒙皮的技術(shù)來(lái)提高質(zhì)量;其次,它的骨架中的關(guān)節與一般人體的關(guān)節有出入,不能由一般人體骨架運動(dòng)的數據來(lái)驅動(dòng),這樣就不能很好地利用網(wǎng)絡(luò )上大量的表現復雜運動(dòng)的運動(dòng)數據。另外,盼盼動(dòng)畫(huà)系統依然不能夠表現手部動(dòng)畫(huà)、臉部動(dòng)畫(huà)這些需要細節的動(dòng)作。如果能在后期中加入這些方面的應用,一定能夠得到更為廣泛的應用,并且大大減少人體動(dòng)畫(huà)開(kāi)發(fā)的整個(gè)周期。
注釋
、貺iu P, Wu F, Ma W, Liang R, Ouhyoung M, “Automatic animation skeleton using repulsive force field”, Proc. of Pacific Graphics’2003, pp. 309-413.
、赥eichmann M, Teller S. “Assisted articulation of closed polygonal models.” Proc. of Computer Animation and Simulation’98, pp. 87-102.
、跭atz S, Tal A, “Hierarchical mesh decomposition using fuzzy clustering and cuts”, ACM Transactions on Graphics, 2003, 22(3): 954-961.
、躓ade L. Automated generation of control skeletons for use in animation. PhD thesis, The Ohio State University, 2000.
、軧aran I, Popovi? J, “Automatic rigging and animation of 3D characters”, ACM Transactions on Graphics, 2007, 26(3):72.
、轐ry P, James D, Pai D, “EigenSkin: Real time large deformation character skinning in hardware”, Proc. of Symposium on Computer Animation (SCA)’2003, pp. 153-160.
【基于運動(dòng)捕獲數據的三維角色動(dòng)畫(huà)設計論文】相關(guān)文章:
基于數據抽取與訂閱實(shí)現數據共享分析及研究論文04-14
關(guān)于三維動(dòng)畫(huà)角色造型設計的論文04-23
三維動(dòng)畫(huà)設計報告02-14
關(guān)于高校三維動(dòng)畫(huà)設計教學(xué)研究的論文07-18
三維動(dòng)畫(huà)設計與制作課程教學(xué)研究論文01-10