三維角色動畫設計論文
時間:2022-01-28 03:27:00
導語:三維角色動畫設計論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
一、相關工作
在骨架提取方面,已經有很多自動生成骨架的方法。①②③Baran等的Pinocchio系統創造性地提出了骨架嵌入的方法。在自動角色動畫方面,骨架嵌入比骨架提取要好的原因是對于復雜骨架的角色,骨架提取可能會產生不同的拓撲結構,這就讓使用者很難將原來有的骨架運動數據運用到其中來。雖然可以通過附屬肢體模板來鑒別復雜的附屬肢體,但是由于拓撲結構的復雜性,自動生成時也會產生各種不同的誤差。骨架嵌入相對于骨架提取的另一個優勢就是它能夠在骨架中定義角色所需要的很多的結構信息,這是在提取的純幾何骨架圖中難以得到的。
幾乎所有的網格變形技術,無論是基于表面的還是基于體積的,都可以用來作為基于骨架運動動畫中的對表面進行蒙皮。④⑤不幸的是,到目前為止,這些方法都不能實現實時的動畫。Baran等的線性混合蒙皮(LBS)具有簡單高效并且能夠利用GPU進行運算,并可以根據骨架進行子空間變形等優點。雖然在質量上的不能夠達到很好的效果,但是它仍然成為在實踐應用中最常用的方法。所以我們的系統采用該方法。⑥
二、原型系統設計設計過程
對于輸入的三維角色模型,我們首先嵌入骨架,然后通過定義骨骼運動對表面網格上每個頂點的變化的影響權值,將表面皮膚依附在骨骼上。對于不同的角色,我們建立不同的罰函數去懲罰那些我們不期望的骨架嵌入方式?;跇颖居弥С窒蛄繖C的方法求得最大邊緣解,然后對不同罰函數賦予不同的權值。用人工智能中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幾乎沒有什么影響。測試發現,計算的主要消耗花費在分離過程中距離場的計算上。
4、展望
雖然盼盼動畫系統在人體動畫領域取得了一定的進展,但是它依然存在著不足,限制著它的應用范圍。在技術方面,建立骨架圖的時候可以用橢圓來建立初始骨架圖。在應用方面,首先它的蒙皮質量在某些地方還可以改進,可以通過在骨架上自動蒙皮的技術來提高質量;其次,它的骨架中的關節與一般人體的關節有出入,不能由一般人體骨架運動的數據來驅動,這樣就不能很好地利用網絡上大量的表現復雜運動的運動數據。另外,盼盼動畫系統依然不能夠表現手部動畫、臉部動畫這些需要細節的動作。如果能在后期中加入這些方面的應用,一定能夠得到更為廣泛的應用,并且大大減少人體動畫開發的整個周期。
注釋
①LiuP,WuF,MaW,LiangR,OuhyoungM,“Automaticanimationskeletonusingrepulsiveforcefield”,Proc.ofPacificGraphics’2003,pp.309-413.
②TeichmannM,TellerS.“Assistedarticulationofclosedpolygonalmodels.”Proc.ofComputerAnimationandSimulation’98,pp.87-102.
③KatzS,TalA,“Hierarchicalmeshdecompositionusingfuzzyclusteringandcuts”,ACMTransactionsonGraphics,2003,22(3):954-961.
④WadeL.Automatedgenerationofcontrolskeletonsforuseinanimation.PhDthesis,TheOhioStateUniversity,2000.
⑤BaranI,Popovi?J,“Automaticriggingandanimationof3Dcharacters”,ACMTransactionsonGraphics,2007,26(3):72.
⑥KryP,JamesD,PaiD,“EigenSkin:Realtimelargedeformationcharacterskinninginhardware”,Proc.ofSymposiumonComputerAnimation(SCA)’2003,pp.153-160.
摘要本文研究了怎樣把現有的人體運動數據重新定向到新的動畫角色對象上,并實現了一個原型系統——盼盼三維角色動畫系統。通過這種方法,用戶只需要從動畫庫中選擇所需的人體運動,便可方便地控制任意三維動畫角色的運動和變形,從而重用現存的人體運動數據去控制新的角色,創作出一些夸張的動畫效果。
關鍵詞運動重用三維角色計算機動畫人體動畫
- 上一篇:動畫敘事結構探究論文
- 下一篇:墨西哥記者成名分析論文