動畫運動規(guī)律分解圖_基于運動捕獲數(shù)據(jù)的三維角色動畫設計
發(fā)布時間:2020-02-15 來源: 短文摘抄 點擊:
摘要本文研究了怎樣把現(xiàn)有的人體運動數(shù)據(jù)重新定向到新的動畫角色對象上,并實現(xiàn)了一個原型系統(tǒng)――盼盼三維角色動畫系統(tǒng)。通過這種方法, 用戶只需要從動畫庫中選擇所需的人體運動,便可方便地控制任意三維動畫角色的運動和變形,從而重用現(xiàn)存的人體運動數(shù)據(jù)去控制新的角色,創(chuàng)作出一些夸張的動畫效果。
關(guān)鍵詞運動重用 三維角色 計算機動畫 人體動畫
中圖分類號TP391 文獻標識碼
3D Character Animation using Motion Capture Data
Fujun YeRuifang Pan
(Zhejiang University of Media and Communications, 310018;Zhejiang University of Media and Communications, 310018)
AbstractThis paper introduces a prototype system called PanPan to retarget the existing BVH human motion data to new three dimensional characters. This makes it possible to control the motion and deformation of 3D characters easily by selecting a specific human motion from the human motion library. We can use this system to control new 3D characters to create novel animation effects using existing BVH data.
Key words motion retargeting 3D character computer animation human animation;
一、引言
在近十幾年里,計算機動畫技術(shù)得到了突飛猛進的發(fā)展,以動畫卡通、網(wǎng)絡游戲、手機游戲、多媒體產(chǎn)品等為代表的動漫產(chǎn)業(yè)是21世紀知識經(jīng)濟的核心產(chǎn)業(yè),被稱為21世紀最有希望的朝陽產(chǎn)業(yè),這場“后現(xiàn)代產(chǎn)業(yè)浪潮”不僅給全球經(jīng)濟戰(zhàn)略結(jié)構(gòu)帶來了根本性轉(zhuǎn)變,也為進入新世紀的中國經(jīng)濟創(chuàng)造了一次千載難逢的歷史發(fā)展機遇。
但是,目前的動畫技術(shù)還遠沒達到理想的地步。計算機輔助二維動畫具有制作相對方便、制作成本低、對制作和運行的硬件環(huán)境要求較低等優(yōu)點。但是由于傳統(tǒng)的二維對象缺少顯式的三維信息,使得自動生成好的中間幀畫面非常困難,比如在變化過程中,特別是那些非平行于畫面的變換,引起的起各幀畫面之間對象的對應問題、剪影輪廓的變化問題、各個部分的自遮擋問題、保持形狀比例和體積問題等等,都是研究者們一直試圖解決的難點問題。
計算機動畫之所以有那么強大的表現(xiàn)能力,各式各樣逼真的模型扮演著舉足輕重的地位。這些模型大多由獨立的動畫軟件,如3DSMax、Maya、Softimage等進行設計。怎樣給一個靜態(tài)的模型賦予生命力,并讓它動起來一直是圖形學研究者感興趣的研究課題。三維動畫制作系統(tǒng)中,使用關(guān)節(jié)骨架控制三維動畫角色已非常流行,動畫師可以非常容易地設置和控制三維角色關(guān)節(jié)進行動畫控制。但是準確地控制三維模型的變形和運動使其符合實際的物理規(guī)律,特別是想要達到實時的要求,難度很大。一種解決方法為采用自動角色動畫。角色動畫動包括骨骼動畫和頂點動畫。骨骼動畫把整個人體按生理結(jié)構(gòu)分為許多部分(圖1-2), 每個部分都有自己的幾何形體,然后再用數(shù)據(jù)結(jié)構(gòu)把所有的部分合理地組成為一個有層次的整體,例如,上臂連著前臂, 前臂連著手。骨骼動畫與頂點動畫相比,占用空間小,因為它不需要象頂點動畫那樣要存儲每一幀的各個頂點的數(shù)據(jù),而是只需要存儲每一幀的骨骼的數(shù)據(jù)。骨骼的數(shù)據(jù)量與頂點的數(shù)據(jù)量相比,要少得多。所以骨骼動畫有很多優(yōu)勢,不管是在游戲、電影動畫還是虛擬現(xiàn)實中,生動逼真的動畫(人、動物等)會使之增色不少。當然骨骼動畫處理技術(shù)難度也很高,它需要解決的一個重要的問題是:如何得到和模型相關(guān)聯(lián)的骨架?
本文研究了把現(xiàn)有的人體運動數(shù)據(jù)重新定向到新的動畫角色對象上。通過這種方法,動畫師能夠利用現(xiàn)存的BVH人體運動數(shù)據(jù)去創(chuàng)造新的動畫。動畫角色對象常被賦予復雜的非剛體運動方式以達到夸張的效果,我們實現(xiàn)了三維角色的自動綁定,使之能做到局部的非剛體變形描述。若要生成新的動畫,只需要從動畫庫中選擇用戶所需的人體運動,便可方便地控制新的三維動畫角色的運動和變形。人體的運動數(shù)據(jù)可以來源于運動捕捉,也可以從現(xiàn)存的動畫和影片視頻中通過圖像處理和計算機視覺的方法來獲取;谶@些素材,我們可以得到運動的素材庫,作為動畫師創(chuàng)作新動畫的來源,從而豐富動畫產(chǎn)品的多樣化和體現(xiàn)制作者的創(chuàng)造性思維。在如今的計算機動畫中,建立模型的過程已經(jīng)變得比較簡單。但是如果要讓模型動起來,還需要人們手動去嵌入骨架,并且定義骨架驅(qū)動表面皮膚的每一個細節(jié)。這個復雜繁瑣的過程只能由專業(yè)的動畫師來完成,對于一些初學者來說是可望而不可及的。我們實現(xiàn)的系統(tǒng)可以讓一個靜態(tài)的模型可以根據(jù)給定的運動數(shù)據(jù)進行所需要的運動。整個過程由程序自動實現(xiàn),不需要人手動來操作它。這樣的創(chuàng)新使它能夠表現(xiàn)更加復雜的動畫,因此不僅能夠為專業(yè)動畫師所用,而且讓初學者也能體驗到自己設計動畫的樂趣。
二、相關(guān)工作
在骨架提取方面,已經(jīng)有很多自動生成骨架的方法。①②③Baran等的Pinocchio系統(tǒng)創(chuàng)造性地提出了骨架嵌入的方法。在自動角色動畫方面,骨架嵌入比骨架提取要好的原因是對于復雜骨架的角色,骨架提取可能會產(chǎn)生不同的拓撲結(jié)構(gòu),這就讓使用者很難將原來有的骨架運動數(shù)據(jù)運用到其中來。雖然可以通過附屬肢體模板來鑒別復雜的附屬肢體,但是由于拓撲結(jié)構(gòu)的復雜性,自動生成時也會產(chǎn)生各種不同的誤差。骨架嵌入相對于骨架提取的另一個優(yōu)勢就是它能夠在骨架中定義角色所需要的很多的結(jié)構(gòu)信息,這是在提取的純幾何骨架圖中難以得到的。
幾乎所有的網(wǎng)格變形技術(shù),無論是基于表面的還是基于體積的,都可以用來作為基于骨架運動動畫中的對表面進行蒙皮。④⑤不幸的是,到目前為止,這些方法都不能實現(xiàn)實時的動畫。Baran等的線性混合蒙皮(LBS)具有簡單高效并且能夠利用GPU進行運算,并可以根據(jù)骨架進行子空間變形等優(yōu)點。雖然在質(zhì)量上的不能夠達到很好的效果,但是它仍然成為在實踐應用中最常用的方法。所以我們的系統(tǒng)采用該方法。⑥
三、原型系統(tǒng)設計設計過程
對于輸入的三維角色模型,我們首先嵌入骨架,然后通過定義骨骼運動對表面網(wǎng)格上每個頂點的變化的影響權(quán)值,將表面皮膚依附在骨骼上。對于不同的角色,我們建立不同的罰函數(shù)去懲罰那些我們不期望的骨架嵌入方式。基于樣本用支持向量機的方法求得最大邊緣解,然后對不同罰函數(shù)賦予不同的權(quán)值。用人工智能中A*啟發(fā)式的方法在指數(shù)級的搜索空間里加速尋找最優(yōu)的骨架嵌入方式。在蒙皮階段用熱擴散方程的方法去計算骨架運動時每一塊骨骼對表面網(wǎng)格上頂點的影響權(quán)值。據(jù)骨架的變化情況,插值計算出骨架的“蒙皮”模型的各個頂點的位置變化。對于某個特定骨骼,“蒙皮”模型的頂點變換矩陣=初始姿勢的變換矩陣的逆×姿勢變換后的矩陣。另外還要考慮到一個頂點可能受多個骨骼運動的共同影響。
1.骨架嵌入
由于骨架嵌入需要將骨架重新定義大小和定位使得它能夠正確的嵌入到模型當中,所以它能公式化為一個優(yōu)化的過程:計算關(guān)節(jié)點的位置和朝向使它能夠更好的適合于給定的模型。但是這個優(yōu)化是一個三維空間的問題,所以連續(xù)優(yōu)化的方法是不可行的。因此可以建立一個用頂點表示潛在關(guān)節(jié)點,用邊表示獨立的骨骼的圖來簡化優(yōu)化問題。建立這樣一個圖是具有一定挑戰(zhàn)的,因為我們可以用未知數(shù)量的頂點和邊來表示相同模型的關(guān)節(jié)和骨架。我們在近似模型垂直等分的平面上建立中軸面,并且建立圓心在中軸面上的圓的一個特定的集合,將這些圖的圓心連接起來形成一個圖。然后使用自定義的離散的罰函數(shù)來最優(yōu)化的骨架嵌入這個圖。為了幫助優(yōu)化,在給定的骨架中可以包括一些關(guān)節(jié)點的額外的信息。比如說對稱的部位應該以相同的名稱命名,又比如如果一個關(guān)節(jié)被命名為腳,那么就表示它應該事在模型中位置最低的一個關(guān)節(jié)。由于定義的罰函數(shù)是獨立于具體的模型的,所以并沒有減弱它的通用性。
2.簡化骨架
前面的步驟建立了幾何圖G=(V, E)來表示骨架,我們需要將它嵌入到我們給定的骨架當中。給定骨架原先是以有s個節(jié)點的樹的形式給出(在一般人形的骨架上會取s=18),但是如果這s個節(jié)點沒有經(jīng)過簡化,嵌入的優(yōu)化過程是很難處理的。因此我們需要一個簡單的骨架,所以在嵌入骨架之前,需要將骨架簡化。所有的自由度為2的關(guān)節(jié)都將被除去(比如說膝關(guān)節(jié)), 關(guān)節(jié)兩端的骨骼塊被連在一起。簡化后的骨架將會只有r個連接點。那么骨架嵌入以后缺少某些必要關(guān)節(jié)的骨架怎么讓角色動起來呢?我們根據(jù)未簡化骨架上關(guān)節(jié)在整條邊上的比例,重新計算出該關(guān)節(jié)在簡化骨架上的位置,然后插入到骨架中。在我們的系統(tǒng)中,簡化的骨架中r=7。簡化后的結(jié)果就是我們可以將簡化的骨架嵌入到系統(tǒng)中以最小化罰函數(shù)懲罰的對象。否則這樣的工作是很難實現(xiàn)的。
3.離散的嵌入骨架和優(yōu)化
一般不可能計算離散的嵌入方式時使罰函數(shù)最小,因為嵌入的數(shù)量是指數(shù)級的。但是可以用類似分支定界的方法在問題的解空間樹T上搜索問題解。我們使用這樣一種方法:首先根據(jù)部分嵌入的下界估計保存優(yōu)先級隊列。然后在每一步,取出在隊列中最好的部分嵌入,將它展開,與下一個關(guān)節(jié)進行計算,然后將結(jié)果保存在隊列中。所以,第一個被完整展開的嵌入就是最好的嵌入。為了加速算法并且盡可能少的占用內(nèi)存,如果部分嵌入有一個很高的下界,那么它將被立即拒絕并不在嵌入到隊列中。雖然這種算法在最壞的情況下依然是指數(shù)級的,但是在我們測試實際情況它都是很快的。
在骨架嵌入前將骨架進行了簡化,省略了很多的關(guān)節(jié),比如說膝關(guān)節(jié),但簡單骨架嵌入以后,要讓角色真正的動起來,還是需要重新插入這些關(guān)節(jié)。在這里可以通過按比列分割骨架圖中路徑最短的邊來得到。我們希望嵌入后的骨架能夠很好的滿足角色的形態(tài)比列,但是,有時候骨架并不能很好的適應我們的角色。同時,一些小的被忽略的骨骼塊并沒有被賦予正確的朝向。骨架優(yōu)化的過程就是為了解決這些問題的提出的。
4.蒙皮
我們的角色和嵌入的骨架在將皮膚依附到骨架上之前是沒有任何關(guān)聯(lián)的。骨架并不能夠驅(qū)動角色運動。因此我們需要指定骨架運動與角色表面網(wǎng)格變化之間的聯(lián)系。雖然在這里我們可以用很多的網(wǎng)格編輯技術(shù)來進行網(wǎng)格變形,但是我們選擇標準的LBS方法:假設表示網(wǎng)格頂點j的坐標,表示第i塊骨骼的變形矩陣,表示第i塊骨骼對第j個網(wǎng)格頂點的變形權(quán)值。LBS把j變形后的位置表示為。我們的目標就是找到每一塊骨骼變化對所有頂點的影響權(quán)值。我們所期望權(quán)值有以下幾個特性:首先它應該與網(wǎng)格的大小無關(guān),其次權(quán)值的變化應該平滑,最后關(guān)節(jié)間兩塊骨骼的移動寬度必須與關(guān)節(jié)到表面網(wǎng)格的距離成一定的比例。即使有一個方案能夠得到權(quán)值使得骨骼能夠滿足這些特性,但是它們很可能失敗因為他們忽略了角色的的幾何學特性。作為代替,我們用熱平衡原理來尋找權(quán)值。假設我們把角色的體積認為是一個不占容積的熱導體,然后我們強迫骨骼i的溫度為1,而其他骨骼的溫度為0。當熱平衡以后,我們就可以把表面上每個頂點的溫度值作為該骨骼對它影響的權(quán)值。
四、實驗結(jié)果
盼盼動畫系統(tǒng)設計時主要依照三個標準:① 廣泛性。適應于盡可能多的模型。對一些結(jié)構(gòu)比較特殊,或者會產(chǎn)生歧義的模型能夠盡可能的正確嵌入骨架。②質(zhì)量。關(guān)鍵在于蒙皮的技術(shù),讓表面皮膚能根據(jù)骨架運動驅(qū)動正確的位和形變,以期與視頻游戲中的模型相媲美。③ 性能。運行在大多數(shù)的家用計算機上。 在盼盼動畫系統(tǒng)里對采用的模型進行了一些簡單的限制:模型必須是全封閉的,并且是以最自然的姿勢站立,這樣能大幅度的提高骨架嵌入的準確性。當然模型需要是一個有四肢能被嵌入人體骨架的。
圖3為盼盼三維角色動畫系統(tǒng)的一張截圖畫面。系統(tǒng)主要包括模型選取、BVH運動數(shù)據(jù)選取、運行、視圖操作、工具條等功能。該系統(tǒng)的運行環(huán)境為英特爾酷睿雙核CPU,主頻為1.73Mhz,內(nèi)存為1GB。因為盼盼動畫系統(tǒng)是單線程的,所以雙核的CPU幾乎沒有什么影響。測試發(fā)現(xiàn),計算的主要消耗花費在分離過程中距離場的計算上。
五、展望
雖然盼盼動畫系統(tǒng)在人體動畫領(lǐng)域取得了一定的進展,但是它依然存在著不足,限制著它的應用范圍。在技術(shù)方面,建立骨架圖的時候可以用橢圓來建立初始骨架圖。在應用方面,首先它的蒙皮質(zhì)量在某些地方還可以改進,可以通過在骨架上自動蒙皮的技術(shù)來提高質(zhì)量;其次,它的骨架中的關(guān)節(jié)與一般人體的關(guān)節(jié)有出入,不能由一般人體骨架運動的數(shù)據(jù)來驅(qū)動,這樣就不能很好地利用網(wǎng)絡上大量的表現(xiàn)復雜運動的運動數(shù)據(jù)。另外,盼盼動畫系統(tǒng)依然不能夠表現(xiàn)手部動畫、臉部動畫這些需要細節(jié)的動作。如果能在后期中加入這些方面的應用,一定能夠得到更為廣泛的應用,并且大大減少人體動畫開發(fā)的整個周期。
注釋
①Liu 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.
⑥Kry 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.
相關(guān)熱詞搜索:捕獲 動畫設計 角色 基于運動捕獲數(shù)據(jù)的三維角色動畫設計 三維動畫角色造型設計 三維動畫設計軟件
熱點文章閱讀