賈銀莎 李 敏
摘要:游戲動畫中三維人物模型的構(gòu)建是人體動畫研究領(lǐng)域中的熱點亦是難點。要制作真實感強的人體動畫,必須具備的要素有:逼真的人體造型和靈活的運動控制方法。本文利用已有的技術(shù)和手段,提出一種基于poser的快速構(gòu)建三維人物模型、實現(xiàn)控制手語動作的方法,并通過實例驗證了方法的可行性。
關(guān)鍵詞:三維人物建模 poser 手和手臂 手語
0 引言
動畫這門視覺藝術(shù)從誕生至今已經(jīng)有了近100年的歷史。20世紀80年代,伴隨著人體動畫的出現(xiàn),游戲動畫進入了全新的3D時代,其主流創(chuàng)作開始以3D動畫為主。為解決游戲動畫中人物運動相關(guān)性和肌肉效果的模擬,人體動畫提出了直接對皮膚和骨骼進行造型的方法。人體動畫作為計算機動畫研究中最具挑戰(zhàn)性和困難性的對象,吸引了大批研究者投入到相關(guān)的研究工作中。
1 研究現(xiàn)狀
目前,國內(nèi)外關(guān)于人體動畫的研究主要集中在兩個方面:人體的運動控制技術(shù)和人體造型與皮膚變形技術(shù)。20世紀70年代, “體元”在人體建模和變形中的應(yīng)用宣告了人體造型和皮膚技術(shù)的研究正式拉開序幕。無論是在學術(shù)界還是工業(yè)界,這個領(lǐng)域都處于非常活躍的地位。每年都能看到大量涉及該領(lǐng)域的學術(shù)論文得以發(fā)表,此外,與此相關(guān)的人體建模軟件或插件也層出不窮。雖然如此,人體造型和皮膚變形技術(shù)任然面臨重大的挑戰(zhàn),主要原因有以下幾點:第一,人體具有200個以上的自由度和非常復雜的運動;第二,人的形狀不規(guī)則,人的肌肉隨著人體的運動而變形。第三,人類對計算機動畫中人體的皮膚變形和運動狀態(tài)非常熟悉和敏感,人類通過直覺很容易就可以捕捉到虛擬人物和真實人物的區(qū)別。所以,人物建模技術(shù)的探究和皮膚變形技術(shù)的研究雖然經(jīng)歷了相當長的一段時間了,但至今任然任然存在很大困難。
2 方法的提出
隨著科學技術(shù)的迅猛發(fā)展和網(wǎng)絡(luò)游戲的興盛,三維游戲動畫中場景的制作技術(shù)已基本趨于成熟和穩(wěn)定,但游戲動畫中人物模型的制作技術(shù)還不是很成熟,仍處于一個研發(fā)試驗階段。
在三維游戲動畫中,人物模型的優(yōu)劣對整個游戲動畫的價值起著舉足輕重的作用。從三維游戲動畫的角度上說,國內(nèi)外目前都以3D MAX為主,因為游戲角色的設(shè)計主要是多邊形建模,而這正是3D MAX的強項。但是也存在一個問題,用3D MAX軟件繪制人物模型是一個比較費時費力的復雜過程。而如果采用其他方法,例如:利用openGL軟件,直接在openGL中給出點的坐標,再由這些坐標點組成若干個三角面,拼接成人物的三維模型,這種方法雖然比較快捷,但是得到的三維人物模型不夠細膩和真實。因此,本文提出一種基于poser的快速建模方法,該方法通過從已有的模型中提取數(shù)據(jù)信息,從而實現(xiàn)快速建模,并利用兩個模型的結(jié)合實現(xiàn)手語動作的控制。
3 方法的驗證
3.1 建立骨骼和皮膚模型:Poser作為一款專門用于制作人體造型的軟件,本身的模型庫中提供豐富的人體模型、人物姿態(tài)及相應(yīng)動作,可以實現(xiàn)快速人體造型建模。
以建立手和手臂模型并實現(xiàn)手語動作控制為例。整個實驗過程流程圖如圖一所示:
首先從poser軟件自帶的模型庫中挑選出適合的人體模型,截取所選人體模型的一支手和手臂模型,將截取好的模型保存為3DS格式,輸出。采用這種方法獲得模型省去了在3DS MAX中一步步繪制的過程,大大的減少了建模的時間,提高了效率。但是有一個問題,利用poser軟件輸出的人體模型缺乏關(guān)節(jié)點的數(shù)據(jù)。如何解決這一問題呢?
這就需要對所保存的3Ds文件的結(jié)構(gòu)進行深入的分析,可以借助C++的文件讀取技術(shù),對該文件進行讀取,通過把原有的3dS文件轉(zhuǎn)換為語言代碼,從而得到所需的數(shù)據(jù)信息。經(jīng)過轉(zhuǎn)換后的每一個三維模型的數(shù)據(jù)結(jié)構(gòu)中都包括頂點,法向量,材質(zhì),紋理坐標等信息。一個完整的模型文件數(shù)據(jù)包括以下幾方面內(nèi)容:①定義物體的材質(zhì):物體材質(zhì)信息主要描述物體的環(huán)境光、漫反射光、鏡面光、輻射光的光照情況,物體的透明度信息、發(fā)散系數(shù)和表面貼圖;②物體的材質(zhì)數(shù)據(jù):記錄轉(zhuǎn)換后每個三維模型的三維模型材質(zhì)信息;③點檢索面數(shù)據(jù):通過檢索頂點數(shù)據(jù)信息建立模型的幾何面;④頂點數(shù)據(jù):記錄設(shè)備模型的頂點坐標信息;⑤法線數(shù)據(jù):記錄設(shè)備模型表面的法線信息。
3.2 兩個模型的結(jié)合 根據(jù)從3DS文件中讀取的頂點和面的相關(guān)信息,可以方便的構(gòu)建手和手臂的皮膚模型,然后再將皮膚模型關(guān)節(jié)處一周的點打上標記,求出這一周的點的重心坐標(求出重心的方法:對由n個點構(gòu)成的多邊形進行三角剖分,將每個三角形的重心乘以該三角形的面積的加權(quán)平均值即是)作為骨骼模型的關(guān)節(jié)點,將相鄰關(guān)節(jié)點利用有向拓撲結(jié)構(gòu)連接起來,組成骨骼模型。從而構(gòu)建出一支完整的手和手臂的模型。
4 手語動作的實現(xiàn)(以肘關(guān)節(jié)為例)
接下來要考慮的問題就是如何實現(xiàn)手語動作的控制。在實現(xiàn)手語過程中,兩個模型的關(guān)系可以理解為:骨骼模型控制運動,皮膚模型表現(xiàn)運動。
首先實現(xiàn)骨骼模型控制運動。大家都知道肘關(guān)節(jié)有兩個自由度,肘關(guān)節(jié)的彎曲由兩種繞軸旋轉(zhuǎn)運動符合而成:第一種以大臂為軸的旋轉(zhuǎn)運動;第二種在一個平面上,以過肘關(guān)節(jié)點并垂直該平面的直線為軸的旋轉(zhuǎn)運動。其中旋轉(zhuǎn)軸的計算又有兩種方式:①以大臂為軸 ②以肩關(guān)節(jié)、肘關(guān)節(jié)和腕關(guān)節(jié)三點組成的平面來求過肘關(guān)節(jié)點垂直于該平面的直線作為旋轉(zhuǎn)軸。
皮膚模型表現(xiàn)運動。整個皮膚模型分為兩部分:可變部分和不可變部分??勺儾糠种钙つw模型在關(guān)節(jié)處的部分,其余部分為不變部分。
組成皮膚模型的小三角面的點分為三類:
第一類點:皮膚模型在大臂外面組成三角面的點;
第二類點:皮膚模型在手及小臂外面組成三角面的點;
第三類點:皮膚模型在關(guān)節(jié)處外面組成三角面的點(如圖二所示)
5 課題中的進展及改進
5.1 提出雙重模型:骨骼模型控制運動,決定運動姿態(tài)及運動約束;皮膚模型表現(xiàn)運動,表現(xiàn)真實感。
5.2 骨骼模型用“有向拓撲結(jié)構(gòu)”來描述,與傳統(tǒng)拓撲結(jié)構(gòu)一樣,有向拓撲也是由節(jié)點和路徑組成,不同的是,每一個路徑帶有指向和空間可以轉(zhuǎn)動的位相。
5.3 皮膚模型分為可變與不變兩部分,利用拓撲不變性保持運動后皮膚模型的完整性。
6 結(jié)束語
三維人物建模作為一門新興的學科,涉及到動畫、計算機圖形學、生理學、心理學、生物力學、機器人學和人工智能等多個研究領(lǐng)域,游戲中三維人物模型的研究是一個具有理論意義和實用價值的基礎(chǔ)課題,本文介紹了一種基于Poser模型的人體建模方法并實現(xiàn)了手語動作的控制。而隨著科技的不斷發(fā)展,還會不斷有高水平高層次的建模方式融入到人體動畫建模技術(shù)中,這將是游戲中三維人物建模技術(shù)發(fā)展的一個長遠目標,它需要眾多相關(guān)學科領(lǐng)域的深入發(fā)展與交叉才能最終實現(xiàn)。
參考文獻:
[1]吳小耗等.計算機動畫中人體建模與皮膚變形技術(shù)的研究現(xiàn)狀與展望中國圖像圖形學報.2007年4月.
[2]李艷,王兆其,毛天露.三維虛擬人皮膚變形技術(shù)分類及方法研究計算機研究與發(fā)展.2005 888~896.
[3]張昭華,徐軍.三維人體建模方法研究.陜西紡織.2004.1.
[4](美)Michele Bousquet著.路朝龍譯.3ds max角色動畫制作典型實例.北京:電力出版社.2006.
[5]李鐵等.三維動畫建模.北京:清華大學出版社.2007.