999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于網格遷移的恐龍骨骼和動畫仿真方法研究

2023-07-29 00:30:48馬韋偉
計算機仿真 2023年6期
關鍵詞:動畫模型

高 燕,馬韋偉,2

(1. 河源職業技術學院,廣東 河源 517000;2. 云南師范大學教育學部,云南 昆明 650500)

1 引言

在各種影視作品和電子游戲等應用當中,人體和動物角色模型的制作,以及基于骨骼進行角色的動畫驅動,是非常必要且常見的需求。生動的人物和動物造型可以讓三維場景增色不少,而人物和動物角色的動畫運動,尤其是交互式的動畫仿真效果,則能夠將三維內容提升到一個全新的高度。

傳統的角色模型制作和動畫仿真,需要美術人員的大量介入。這其中包括角色模型頂點和三角面的制作,角色骨骼的擺放和蒙皮操作(即綁定模型頂點到對應的骨骼之上),角色骨骼的動畫關鍵幀制作,以及角色模型的實時動畫驅動和渲染效果。對于常見的雙足人類角色,以及四足動物角色(例如貓、狗、牛等)而言,美術人員可以憑借自身經驗,將以往作品作為參考,迅速地構建角色模型和動畫,如圖1所示。

圖1 常見雙足和四足動物角色及其骨骼

但是對于一些特殊的生物體,例如各式各樣的恐龍角色而言,制作過程中就會存在比較大的變數;而這些問題主要源自于制作人員并沒有真的見過恐龍的外形和運動方式,導致無從下手,制作的骨骼關節位置和結構不合理,關鍵幀動畫生硬,并且不知道如何調節等等。

科學研究人員可以基于現有的生物體來推測恐龍的運動方式,但是并不能要求美術人員同樣具有這樣的能力。如果可以通過某種方法,將恐龍角色與已經存在的某些生物體模型進行匹配,將后者的常見運動方式映射到恐龍身上,從而快速產生平滑自然的動畫效果,那么將對相關應用的開發和角色制作流程產生非常大的幫助。本文嘗試通過網格遷移的方法,將已經制作完成的角色動畫快速地移植到可能具有類似動作行為的恐龍模型身上,從而批量式地生成恐龍角色動畫;并且省去了為恐龍角色制作骨骼關節的環節,有效提升了工作效率,并且可以與傳統的美術環節無縫銜接。

2 恐龍角色和參考角色的制作

2.1 參考角色的意義

假設有原始的三角網格模型S,它可以是任何常見的動物或者人物模型。那么通過模型頂點變形或者動畫關鍵幀的生成,可以得到一系列的形變模型S′。

此時認為,S和多個S′之間一定存在某種確定的形變關系,可以通過數學模型復現。

對于目標的三角網格模型T,假設它是已經制作好的恐龍角色模型,并且不需要后續的骨骼和蒙皮步驟。

如果它和原始模型S的形態上基本一致,那么同樣可以認為,T和它的多個形變模型T′之間也存在著確定的形變關系,并且可以通過S和S′之間的形變數學模型遷移實現,如圖2所示。

圖2 已知原始模型S,T和形變模型S′,生成形變模型T′的遷移過程

原始模型S和T之間不需要有相同的頂點數,也不需要相同的三角面索引(即頂點的連接方式)。因此,可以針對任意恐龍網格模型,選擇一個與它相近的動物模型并通過角色骨骼和動畫產生多個形變模型,進而通過網格遷移的方式產生對應的恐龍形變模型。形變模型的頂點變化過程,也就是恐龍角色的動畫仿真過程。

2.2 參考角色的骨骼制作

可以使用Maya等常見建模軟件來制作參考網格模型,并設置它的骨骼信息。人體和四足動物的骨骼關節有一定的相似之處,都有頭部,頸部,脊柱,雙手和雙腳,且通常都具有肩關節、肘關節和膝關節的設置(手指和腳趾數量這里不做考慮)。區別在于人體采取站姿,雙手垂立身旁;而四足動物的脊柱是平行于地面的,“雙手”和雙腳均站立在地面上,如圖3所示。

圖3 常見的四足動物參考角色骨骼分布

四足動物還可能有一些特定的骨骼關節,例如尾巴部分,或者例如大象等動物的鼻子和耳朵。是否要對這些部分進行骨骼構建,通常取決于實際應用中的需求。

2.3 參考角色的模型和標記點導出

將參考模型和恐龍模型均輸出為Autodesk FBX格式。該格式采用公開的數據標準,可以直接用于Unity,Unreal等常見的三維渲染引擎。

FBX格式內部通過FbxMesh類來管理每個模型網格體。獲取模型頂點和三角面信息的基本代碼如下:

FbxMesh* m=…;

FbxVector4* v=m->GetControlPoints();

int num=m->GetPolygonCount();

for (int i=0,n=0; i

int v0=m->GetPolygonVertex(i,n+0),

v1=m->GetPolygonVertex(i,n+1),

v2=m->GetPolygonVertex(i,n+2);

∥ 三角形={vertices[v0],

∥ vertices[v1],vertices[v2]}

n+=3;

}

為了正確執行網格遷移算法,還需要在建模軟件中建立一些標記點,用來標記角色模型表面的一些關鍵位置。標記點可以直接用系統默認的Cylinder或者Node來標記,并隨FBX格式導出;也可以在后續的渲染引擎Unity或者Unreal中手動編輯制作,并用于算法計算過程當中。

3 恐龍角色的自動網格遷移

3.1 網格形變遷移算法的推導

源模型S的變形S′可以表示為為源模型網格中的每個三角形的仿射變換集合。仿射變換矩陣中的非平移部分包括了由三角形變形引起的方向、比例和傾斜度的變化。但是,三角形的三個頂點v1,v2和v3并不能完全確定一個完整的仿射變換結果,因為它們不能確定垂直于三角形的空間是如何變形的。因此,需要引入第四個頂點v4,它垂直于三角形存在,其計算公式為

因此,源模型S中每個三角形的4個頂點,變換到形變模型S′之后,新的4個頂點可以表達為原頂點乘以一個3×3的仿射矩陣Q,再加上一個位移d的結果,即

v′1=Qvi+d,i∈[1,4]

為了計算仿射矩陣Q,需要消去位移值d,那么有如下公式

d=v′1-Qv1

v′i-v′1=Q(vi-v1)

Q=(v′i-v′1)(vi-v1)-1=V′V-1

由此可以計算得到放射矩陣Q的值,進而得到源模型S與形變模型S′之間的變換數學模型。

3.2 基于已有角色的模型網格遷移

需要建立兩組源模型T與S之間的映射關系。進而由于S和S′之間的變換關系已知,那么就可以得到T與T′之間的變換關系。但是,因為S和T的頂點數和三角面數都是不一樣的,不能直接采取一一對應的方式來計算映射關系。此時需要手動建立多個標記點,用來標識用戶模型T和參考模型S之間的對應關系。標記點的數量不限,但是每個參考點在兩個模型中必須表達同樣的物理位置(例如頭部,手部,腳步),并且總數量必須相等,如圖4所示。

圖4 在源模型S和T上設置同樣數量的標記點

遍歷每個標記點,搜索質心非常接近的成對的網格S三角形和網格T三角形,進而計算三角形對應關系。通過迭代最近點的算法,即可得到兩個三角形之間的仿射變換矩陣Q和位移d,并通過上一節的方法進行計算。

此外,根據共享頂點的原理,模型網格發生形變后,相鄰的兩個三角網格應當滿足如下關系

Tjvi+dj=Tkvi+dk

其中j,k表示模型網格中兩個相鄰的三角形,vi表示它們共享的頂點。

3.3 基于已有角色的快速動畫數據遷移

根據之前的算法,可以通過用戶輸入多個標記點的方式,計算參考模型S與源恐龍模型T之間的變換關系。而通過類似的方法也可以計算形變模型S′和S之間的變換關系。并且因為S和S′的頂點和三角面是完全一致的,因此不需要添加新的參考點。依據上述兩次運算的結果,可以得到目標形變模型T′與T之間的關系,進而通過原始的靜止恐龍模型T,得到新的運動恐龍模型T′。

這一過程可以通過計算機程序實現自動運算,即,對于已經制作完成的參考模型S和它的關鍵幀動畫As,可以通過骨骼和蒙皮計算,輸出它的每個關鍵幀對應的形變模型SAi。之后對于恐龍模型T,雖然它沒有骨骼和蒙皮信息,但是依然可以通過網格遷移的方式,得到每個參考形變模型SAi對應的恐龍形變模型TAi。

對于一組關鍵幀動畫As,可以得到對應的關鍵幀動畫序列At={TA1,TA2,…,TAn}。注意新的動畫序列并不是角色骨骼動畫,而是模型頂點變形動畫。相比于前者來說,頂點變形動畫的實時執行效率更高,動畫仿真效果更為精細,但是需要更多的存儲空間,并且無法逆運算轉換到骨骼動畫。

4 實例研究

使用Unity引擎作為基礎測試平臺,使用C#實現網格遷移的算法。原始的低多邊形恐龍模型(無骨骼或者動畫數據)如圖5所示。

圖5 原始的恐龍模型

用于進行網格遷移算法應用的參考模型是一種常見的四足動物,其行走的骨骼動畫已經制作完成,可以直接播放,并按照關鍵幀輸出多組形變網格模型,如圖6所示。

圖6 參考模型和形變模型

通過網格遷移算法,將參考模型的動畫效果移植到恐龍角色上。為此,首先在Unity引擎中添加30-40個標記點,主要用來標記兩個原始模型中相似的位置,例如頭頂,嘴部,四足位置,肩部和胯部,尾部等等。之后,通過網格遷移算法進行仿射矩陣計算和形變模型運算。具體的模型和計算參數如下表1所示。

表1 網格遷移模型參數

通過驗證可知,該算法過程消耗的CPU計算時間較短,且能夠產生較好的形變效果,基本滿足了恐龍模型和動畫仿真系統的需求,如圖7所示。

圖7 恐龍角色動畫形變結果

5 結語

研究了一種網格遷移的算法,對于沒有進行骨骼蒙皮操作的原始模型T,可以通過另一個已經制作完畢的參考模型S,以及多組由關鍵幀動畫生成的形變模型S′,生成新的形變模型T′。該方法不需要原始模型和參考模型的頂點數或者三角面數相等,但是需要在兩者表面上添加多個標記點,對應于兩組模型上物理意義相同的位置標注。標記點可以在建模軟件中設置,也可以實時引擎中直接添加。但是標記點數量必須相等,且ID在兩個模型上是一一對應的。

該方法可以用于處理復雜的恐龍三維模型。通過已經制作完畢的參考模型和動畫數據,經過簡單的標記點添加操作,即可產生恐龍模型的多組變形動畫,并且不需要制作骨骼和設置蒙皮效果。這大大降低了美術人員的工作量,并且得到的動畫仿真數據結果平滑可靠,符合大多數人對一般動物的運動認知,不會產生生硬感。

該方法目前依然有一些需要優化的地方:首先,手動添加標記點的操作目前是無法避免的,這導致整個恐龍動畫仿真的流程無法實現完全自動化,仍然需要有美術和三維基礎的人員介入;其次,標記點的數量和準確性對于形變結果的影響較大,如果標記點數量過少,則極易出現形變結果的異常。并且頂點變形效果如果存在不平滑和不連續的情況,其表現結果比骨骼動畫要更為明顯,并且很難通過手動的方式進行后續修補,而是只能通過調整標記點來重新輸出。如何改善和解決這些問題,也是后續研究的重點方向。

猜你喜歡
動畫模型
一半模型
做個動畫給你看
重要模型『一線三等角』
動畫發展史
重尾非線性自回歸模型自加權M-估計的漸近分布
我的動畫夢
文苑(2019年22期)2019-12-07 05:28:56
動畫批評融入動畫教育的思考
新聞傳播(2018年3期)2018-05-30 07:01:39
3D打印中的模型分割與打包
我是動畫迷
學生天地(2016年9期)2016-05-17 05:45:06
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 欧美精品高清| 四虎国产永久在线观看| 国产原创演绎剧情有字幕的| 欧美自慰一级看片免费| 另类综合视频| 性视频一区| 国产亚洲精品自在线| 国产欧美日韩专区发布| 国产一级毛片高清完整视频版| 国产精品久久久久久久久久98| 成人福利在线观看| 黄色三级毛片网站| 亚洲无线观看| 亚洲另类色| 国产成人精品男人的天堂| 天堂在线www网亚洲| 波多野结衣无码中文字幕在线观看一区二区 | 国产成人亚洲精品蜜芽影院| 国产乱子伦视频三区| 粉嫩国产白浆在线观看| a毛片免费看| 国产精品男人的天堂| 青青草欧美| 亚洲伊人电影| A级毛片无码久久精品免费| 四虎永久在线| 欧美一级黄片一区2区| 国产爽歪歪免费视频在线观看| 精品91视频| 99热6这里只有精品| 欧美国产精品不卡在线观看 | 香蕉伊思人视频| 久久精品66| 99福利视频导航| 亚洲中文无码h在线观看| 国产国拍精品视频免费看| 色婷婷久久| 亚洲欧洲日韩国产综合在线二区| 国产一级精品毛片基地| 久久成人18免费| 亚洲天堂网在线视频| 亚洲天堂2014| 全免费a级毛片免费看不卡| 欧美激情首页| 国产丝袜第一页| 欧美精品二区| 欧美精品啪啪| 国产又黄又硬又粗| 日本欧美中文字幕精品亚洲| 久久情精品国产品免费| 成·人免费午夜无码视频在线观看| 综合成人国产| 97视频免费在线观看| 亚洲免费福利视频| 日韩成人在线一区二区| 国产呦视频免费视频在线观看| 麻豆国产在线观看一区二区| 波多野结衣中文字幕一区| 亚洲成人在线免费观看| 99久久国产自偷自偷免费一区| 小说 亚洲 无码 精品| 国产精品无码AV中文| 91无码人妻精品一区| 在线观看无码av五月花| 国产成人精品视频一区二区电影| 久久www视频| 99成人在线观看| 黄片一区二区三区| a级免费视频| 色悠久久久| jizz在线观看| 国产高颜值露脸在线观看| 久久久久国产精品熟女影院| 国产亚洲高清视频| 国产成人1024精品| 日韩不卡高清视频| 国产99精品视频| 成年人国产视频| 国产精品美女网站| 亚洲日本精品一区二区| 亚洲精品无码av中文字幕| aⅴ免费在线观看|