博文谷

位置:首頁 > 實用範文 > 論文

基於運動捕獲數據的三維角色動畫設計論文

論文5.12K

摘要:本文研究了怎樣把現有的人體運動數據重新定向到新的動畫角色對象上,並實現了一個原型系統——盼盼三維角色動畫系統。透過這種方法, 用戶只需要從動畫庫中選擇所需的人體運動,便可方便地控制任意三維動畫角色的運動和變形,從而重用現存的人體運動數據去控制新的角色,創作出一些誇張的動畫效果。

基於運動捕獲數據的三維角色動畫設計論文

關鍵詞:運動重用 三維角色 計算機動畫 人體動畫

一、引言

在近十幾年裏,計算機動畫技術得到了突飛猛進的發展,以動畫卡通、網絡遊戲、手機遊戲、多媒體產品等爲代表的動漫產業是21世紀知識經濟的核心產業,被稱爲21世紀最有希望的朝陽產業,這場“後現代產業浪潮”不僅給全球經濟戰略結構帶來了根本性轉變,也爲進入新世紀的中國經濟創造了一次千載難逢的歷史發展機遇。

但是,目前的動畫技術還遠沒達到理想的地步。計算機輔助二維動畫具有製作相對方便、製作成本低、對製作和執行的硬件環境要求較低等優點。但是由於傳統的二維對象缺少顯式的三維資訊,使得自動生成好的中間幀畫面非常困難,比如在變化過程中,特別是那些非平行於畫面的變換,引起的起各幀畫面之間對象的對應問題、剪影輪廓的變化問題、各個部分的自遮擋問題、保持形狀比例和體積問題等等,都是研究者們一直試圖解決的難點問題。

計算機動畫之所以有那麼強大的表現能力,各式各樣逼真的模型扮演着舉足輕重的地位。這些模型大多由獨立的動畫軟件,如3DSMax、Maya、Softimage等進行設計。怎樣給一個靜態的模型賦予生命力,並讓它動起來一直是圖形學研究者感興趣的研究課題。三維動畫製作系統中,使用關節骨架控制三維動畫角色已非常流行,動畫師可以非常容易地設定和控制三維角色關節進行動畫控制。但是準確地控制三維模型的變形和運動使其符合實際的物理規律,特別是想要達到實時的要求,難度很大。一種解決方法爲採用自動角色動畫。角色動畫動包括骨骼動畫和頂點動畫。骨骼動畫把整個人體按生理結構分爲許多部分(圖1-2), 每個部分都有自己的幾何形體,然後再用數據結構把所有的部分合理地組成爲一個有層次的整體,例如,上臂連着前臂, 前臂連着手。骨骼動畫與頂點動畫相比,佔用空間小,因爲它不需要象頂點動畫那樣要存儲每一幀的各個頂點的數據,而是隻需要存儲每一幀的骨骼的數據。骨骼的數據量與頂點的數據量相比,要少得多。所以骨骼動畫有很多優勢,不管是在遊戲、電影動畫還是虛擬現實中,生動逼真的動畫(人、動物等)會使之增色不少。當然骨骼動畫處理技術難度也很高,它需要解決的一個重要的問題是:如何得到和模型相關聯的骨架?

本文研究了把現有的人體運動數據重新定向到新的動畫角色對象上。透過這種方法,動畫師能夠利用現存的BVH人體運動數據去創造新的動畫。動畫角色對象常被賦予複雜的非剛體運動方式以達到誇張的效果,我們實現了三維角色的自動綁定,使之能做到局部的非剛體變形描述。若要生成新的動畫,只需要從動畫庫中選擇用戶所需的人體運動,便可方便地控制新的三維動畫角色的運動和變形。人體的運動數據可以來源於運動捕捉,也可以從現存的動畫和影片視頻中透過圖像處理和計算機視覺的方法來獲取。基於這些素材,我們可以得到運動的素材庫,作爲動畫師創作新動畫的來源,從而豐富動畫產品的多樣化和體現製作者的創造性思維。在如今的計算機動畫中,建立模型的過程已經變得比較簡單。但是如果要讓模型動起來,還需要人們手動去嵌入骨架,並且定義骨架驅動表面面板的每一個細節。這個複雜繁瑣的過程只能由專業的動畫師來完成,對於一些初學者來說是可望而不可及的。我們實現的系統可以讓一個靜態的模型可以根據給定的運動數據進行所需要的運動。整個過程由程序自動實現,不需要人手動來操作它。這樣的創新使它能夠表現更加複雜的動畫,因此不僅能夠爲專業動畫師所用,而且讓初學者也能體驗到自己設計動畫的樂趣。

二、相關工作

在骨架提取方面,已經有很多自動生成骨架的方法。①②③Baran等的Pinocchio系統創造性地提出了骨架嵌入的方法。在自動角色動畫方面,骨架嵌入比骨架提取要好的原因是對於複雜骨架的角色,骨架提取可能會產生不同的拓撲結構,這就讓使用者很難將原來有的骨架運動數據運用到其中來。雖然可以透過附屬肢體模板來鑑別複雜的附屬肢體,但是由於拓撲結構的複雜性,自動生成時也會產生各種不同的誤差。骨架嵌入相對於骨架提取的另一個優勢就是它能夠在骨架中定義角色所需要的很多的結構資訊,這是在提取的純幾何骨架圖中難以得到的。

幾乎所有的網格變形技術,無論是基於表面的還是基於體積的,都可以用來作爲基於骨架運動動畫中的對錶面進行蒙皮。④⑤不幸的是,到目前爲止,這些方法都不能實現實時的動畫。Baran等的線性混合蒙皮(LBS)具有簡單高效並且能夠利用GPU進行運算,並可以根據骨架進行子空間變形等優點。雖然在質量上的不能夠達到很好的效果,但是它仍然成爲在實踐應用中最常用的方法。所以我們的系統採用該方法。⑥

三、原型系統設計設計過程

對於輸入的三維角色模型,我們首先嵌入骨架,然後透過定義骨骼運動對錶面網格上每個頂點的變化的影響權值,將表面面板依附在骨骼上。對於不同的角色,我們建立不同的罰函數去懲罰那些我們不期望的骨架嵌入方式。基於樣本用支援向量機的方法求得最大邊緣解,然後對不同罰函數賦予不同的權值。用人工智能中A*啓發式的方法在指數級的搜尋空間里加速尋找最優的骨架嵌入方式。在蒙皮階段用熱擴散方程的方法去計算骨架運動時每一塊骨骼對錶面網格上頂點的影響權值。據骨架的變化情況,插值計算出骨架的“蒙皮”模型的各個頂點的位置變化。對於某個特定骨骼,“蒙皮”模型的頂點變換矩陣=初始姿勢的變換矩陣的逆×姿勢變換後的矩陣。另外還要考慮到一個頂點可能受多個骨骼運動的共同影響。

1.骨架嵌入

由於骨架嵌入需要將骨架重新定義大小和定位使得它能夠正確的嵌入到模型當中,所以它能公式化爲一個優化的過程:計算關節點的位置和朝向使它能夠更好的適合於給定的模型。但是這個優化是一個三維空間的問題,所以連續優化的方法是不可行的。因此可以建立一個用頂點表示潛在關節點,用邊表示獨立的骨骼的圖來簡化優化問題。建立這樣一個圖是具有一定挑戰的,因爲我們可以用未知數量的頂點和邊來表示相同模型的關節和骨架。我們在近似模型垂直等分的平面上建立中軸面,並且建立圓心在中軸面上的圓的一個特定的集合,將這些圖的圓心連接起來形成一個圖。然後使用自訂的離散的罰函數來最優化的骨架嵌入這個圖。爲了幫助優化,在給定的骨架中可以包括一些關節點的額外的資訊。比如說對稱的部位應該以相同的名稱命名,又比如如果一個關節被命名爲腳,那麼就表示它應該事在模型中位置最低的一個關節。由於定義的罰函數是獨立於具體的模型的,所以並沒有減弱它的通用性。

2.簡化骨架

前面的步驟建立了幾何圖G=(V, E)來表示骨架,我們需要將它嵌入到我們給定的骨架當中。給定骨架原先是以有s個節點的樹的形式給出(在一般人形的骨架上會取s=18),但是如果這s個節點沒有經過簡化,嵌入的優化過程是很難處理的。因此我們需要一個簡單的骨架,所以在嵌入骨架之前,需要將骨架簡化。所有的自由度爲2的關節都將被除去(比如說膝關節), 關節兩端的骨骼塊被連在一起。簡化後的骨架將會只有r個連接點。那麼骨架嵌入以後缺少某些必要關節的骨架怎麼讓角色動起來呢?我們根據未簡化骨架上關節在整條邊上的比例,重新計算出該關節在簡化骨架上的位置,然後插入到骨架中。在我們的系統中,簡化的骨架中r=7。簡化後的結果就是我們可以將簡化的骨架嵌入到系統中以最小化罰函數懲罰的對象。否則這樣的工作是很難實現的。

3.離散的嵌入骨架和優化

一般不可能計算離散的嵌入方式時使罰函數最小,因爲嵌入的數量是指數級的。但是可以用類似分支定界的方法在問題的解空間樹T上搜尋問題解。我們使用這樣一種方法:首先根據部分嵌入的下界估計儲存優先級隊列。然後在每一步,取出在隊列中最好的部分嵌入,將它展開,與下一個關節進行計算,然後將結果儲存在隊列中。所以,第一個被完整展開的嵌入就是最好的嵌入。爲了加速算法並且儘可能少的佔用內存,如果部分嵌入有一個很高的下界,那麼它將被立即拒絕並不在嵌入到隊列中。雖然這種算法在最壞的情況下依然是指數級的,但是在我們測試實際情況它都是很快的。

在骨架嵌入前將骨架進行了簡化,省略了很多的關節,比如說膝關節,但簡單骨架嵌入以後,要讓角色真正的動起來,還是需要重新插入這些關節。在這裏可以透過按比列分割骨架圖中路徑最短的邊來得到。我們希望嵌入後的骨架能夠很好的滿足角色的形態比列,但是,有時候骨架並不能很好的`適應我們的角色。同時,一些小的被忽略的骨骼塊並沒有被賦予正確的朝向。骨架優化的過程就是爲了解決這些問題的提出的。

4.蒙皮

我們的角色和嵌入的骨架在將面板依附到骨架上之前是沒有任何關聯的。骨架並不能夠驅動角色運動。因此我們需要指定骨架運動與角色表面網格變化之間的聯繫。雖然在這裏我們可以用很多的網格編輯技術來進行網格變形,但是我們選擇標準的LBS方法:假設表示網格頂點j的座標,表示第i塊骨骼的變形矩陣,表示第i塊骨骼對第j個網格頂點的變形權值。LBS把j變形後的位置表示爲。我們的目標就是找到每一塊骨骼變化對所有頂點的影響權值。我們所期望權值有以下幾個特性:首先它應該與網格的大小無關,其次權值的變化應該平滑,最後關節間兩塊骨骼的移動寬度必須與關節到表面網格的距離成一定的比例。即使有一個方案能夠得到權值使得骨骼能夠滿足這些特性,但是它們很可能失敗因爲他們忽略了角色的的幾何學特性。作爲代替,我們用熱平衡原理來尋找權值。假設我們把角色的體積認爲是一個不佔容積的熱導體,然後我們強迫骨骼i的溫度爲1,而其他骨骼的溫度爲0。當熱平衡以後,我們就可以把表面上每個頂點的溫度值作爲該骨骼對它影響的權值。

四、實驗結果

盼盼動畫系統設計時主要依照三個標準:① 廣泛性。適應於盡可能多的模型。對一些結構比較特殊,或者會產生歧義的模型能夠儘可能的正確嵌入骨架。②質量。關鍵在於蒙皮的技術,讓表面面板能根據骨架運動驅動正確的位和形變,以期與視頻遊戲中的模型相媲美。③ 性能。執行在大多數的家用計算機上。 在盼盼動畫系統裏對採用的模型進行了一些簡單的限制:模型必須是全封閉的,並且是以最自然的姿勢站立,這樣能大幅度的提高骨架嵌入的準確性。當然模型需要是一個有四肢能被嵌入人體骨架的。

圖3爲盼盼三維角色動畫系統的一張截圖畫面。系統主要包括模型選取、BVH運動數據選取、執行、視圖操作、工具條等功能。該系統的執行環境爲英特爾酷睿雙核CPU,主頻爲1.73Mhz,內存爲1GB。因爲盼盼動畫系統是單線程的,所以雙核的CPU幾乎沒有什麼影響。測試發現,計算的主要消耗花費在分離過程中距離場的計算上。

五、展望

雖然盼盼動畫系統在人體動畫領域取得了一定的進展,但是它依然存在着不足,限制着它的應用範圍。在技術方面,建立骨架圖的時候可以用橢圓來建立初始骨架圖。在應用方面,首先它的蒙皮質量在某些地方還可以改進,可以透過在骨架上自動蒙皮的技術來提高質量;其次,它的骨架中的關節與一般人體的關節有出入,不能由一般人體骨架運動的數據來驅動,這樣就不能很好地利用網絡上大量的表現複雜運動的運動數據。另外,盼盼動畫系統依然不能夠表現手部動畫、臉部動畫這些需要細節的動作。如果能在後期中加入這些方面的應用,一定能夠得到更爲廣泛的應用,並且大大減少人體動畫開發的整個週期。

註釋

①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.

②Teichmann M, Teller S. “Assisted articulation of closed polygonal models.” Proc. of Computer Animation and Simulation’98, pp. 87-102.

③Katz S, Tal A, “Hierarchical mesh decomposition using fuzzy clustering and cuts”, ACM Transactions on Graphics, 2003, 22(3): 954-961.

④Wade L. Automated generation of control skeletons for use in animation. PhD thesis, The Ohio State University, 2000.

⑤Baran 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.