在三維游戲動(dòng)畫(huà)中,人物模型的優(yōu)劣對(duì)整個(gè)游戲動(dòng)畫(huà)的價(jià)值起著舉足輕重的作用。從三維游戲動(dòng)畫(huà)的角度上說(shuō),國(guó)內(nèi)外目前都以3D MAX為主,因?yàn)橛螒蚪巧脑O(shè)計(jì)主要是多邊形建模,而這正是3D MAX的強(qiáng)項(xiàng)。但是也存在一個(gè)問(wèn)題,用3D MAX軟件繪制人物模型是一個(gè)比較費(fèi)時(shí)費(fèi)力的復(fù)雜過(guò)程。而如果采用其他方法,例如:利用openGL軟件,直接在openGL中給出點(diǎn)的坐標(biāo),再由這些坐標(biāo)點(diǎn)組成若干個(gè)三角面,拼接成人物的三維模型,這種方法雖然比較快捷,但是得到的三維人物模型不夠細(xì)膩和真實(shí),本文通過(guò)一種基于poser的快速建模方法,該方法通過(guò)從已有的模型中提取數(shù)據(jù)信息,從而實(shí)現(xiàn)快速建模,并利用兩個(gè)模型的結(jié)合實(shí)現(xiàn)手語(yǔ)動(dòng)作的控制。
三維人物
1、 方法的驗(yàn)證
1.1 建立骨骼和皮膚模型:Poser作為一款專(zhuān)門(mén)用于制作人體造型的軟件,本身的模型庫(kù)中提供豐富的人體模型、人物姿態(tài)及相應(yīng)動(dòng)作,可以實(shí)現(xiàn)快速人體造型建模。
以建立手和手臂模型并實(shí)現(xiàn)手語(yǔ)動(dòng)作控制為例。整個(gè)實(shí)驗(yàn)過(guò)程流程圖如圖一所示:
首先從poser軟件自帶的模型庫(kù)中挑選出適合的人體模型,截取所選人體模型的一支手和手臂模型,將截取好的模型保存為3DS格式,輸出。采用這種方法獲得模型省去了在3DS MAX中一步步繪制的過(guò)程,大大的減少了建模的時(shí)間,提高了效率。但是有一個(gè)問(wèn)題,利用poser軟件輸出的人體模型缺乏關(guān)節(jié)點(diǎn)的數(shù)據(jù)。如何解決這一問(wèn)題呢?
這就需要對(duì)所保存的3Ds文件的結(jié)構(gòu)進(jìn)行深入的分析,可以借助C++的文件讀取技術(shù),對(duì)該文件進(jìn)行讀取,通過(guò)把原有的3dS文件轉(zhuǎn)換為語(yǔ)言代碼,從而得到所需的數(shù)據(jù)信息。經(jīng)過(guò)轉(zhuǎn)換后的每一個(gè)三維模型的數(shù)據(jù)結(jié)構(gòu)中都包括頂點(diǎn),法向量,材質(zhì),紋理坐標(biāo)等信息。一個(gè)完整的模型文件數(shù)據(jù)包括以下幾方面內(nèi)容:①定義物體的材質(zhì):物體材質(zhì)信息主要描述物體的環(huán)境光、漫反射光、鏡面光、輻射光的光照情況,物體的透明度信息、發(fā)散系數(shù)和表面貼圖;②物體的材質(zhì)數(shù)據(jù):記錄轉(zhuǎn)換后每個(gè)三維模型的三維模型材質(zhì)信息;③點(diǎn)檢索面數(shù)據(jù):通過(guò)檢索頂點(diǎn)數(shù)據(jù)信息建立模型的幾何面;④頂點(diǎn)數(shù)據(jù):記錄設(shè)備模型的頂點(diǎn)坐標(biāo)信息;⑤法線(xiàn)數(shù)據(jù):記錄設(shè)備模型表面的法線(xiàn)信息。
1.2 兩個(gè)模型的結(jié)合 根據(jù)從3DS文件中讀取的頂點(diǎn)和面的相關(guān)信息,可以方便的構(gòu)建手和手臂的皮膚模型,然后再將皮膚模型關(guān)節(jié)處一周的點(diǎn)打上標(biāo)記,求出這一周的點(diǎn)的重心坐標(biāo)(求出重心的方法:對(duì)由n個(gè)點(diǎn)構(gòu)成的多邊形進(jìn)行三角剖分,將每個(gè)三角形的重心乘以該三角形的面積的加權(quán)平均值即是)作為骨骼模型的關(guān)節(jié)點(diǎn),將相鄰關(guān)節(jié)點(diǎn)利用有向拓?fù)浣Y(jié)構(gòu)連接起來(lái),組成骨骼模型。從而構(gòu)建出一支完整的手和手臂的模型。
2、手語(yǔ)動(dòng)作的實(shí)現(xiàn)(以肘關(guān)節(jié)為例)
接下來(lái)要考慮的問(wèn)題就是如何實(shí)現(xiàn)手語(yǔ)動(dòng)作的控制。在實(shí)現(xiàn)手語(yǔ)過(guò)程中,兩個(gè)模型的關(guān)系可以理解為:骨骼模型控制運(yùn)動(dòng),皮膚模型表現(xiàn)運(yùn)動(dòng)。
首先實(shí)現(xiàn)骨骼模型控制運(yùn)動(dòng)。大家都知道肘關(guān)節(jié)有兩個(gè)自由度,肘關(guān)節(jié)的彎曲由兩種繞軸旋轉(zhuǎn)運(yùn)動(dòng)符合而成:第一種以大臂為軸的旋轉(zhuǎn)運(yùn)動(dòng);第二種在一個(gè)平面上,以過(guò)肘關(guān)節(jié)點(diǎn)并垂直該平面的直線(xiàn)為軸的旋轉(zhuǎn)運(yùn)動(dòng)。其中旋轉(zhuǎn)軸的計(jì)算又有兩種方式:①以大臂為軸 ②以肩關(guān)節(jié)、肘關(guān)節(jié)和腕關(guān)節(jié)三點(diǎn)組成的平面來(lái)求過(guò)肘關(guān)節(jié)點(diǎn)垂直于該平面的直線(xiàn)作為旋轉(zhuǎn)軸。
皮膚模型表現(xiàn)運(yùn)動(dòng)。整個(gè)皮膚模型分為兩部分:可變部分和不可變部分??勺儾糠种钙つw模型在關(guān)節(jié)處的部分,其余部分為不變部分。 組成皮膚模型的小三角面的點(diǎn)分為三類(lèi):
第一類(lèi)點(diǎn):皮膚模型在大臂外面組成三角面的點(diǎn);
第二類(lèi)點(diǎn):皮膚模型在手及小臂外面組成三角面的點(diǎn);
第三類(lèi)點(diǎn):皮膚模型在關(guān)節(jié)處外面組成三角面的點(diǎn)(如圖二所示) 5 課題中的進(jìn)展及改進(jìn)
2.1 提出雙重模型:骨骼模型控制運(yùn)動(dòng),決定運(yùn)動(dòng)姿態(tài)及運(yùn)動(dòng)約束;皮膚模型表現(xiàn)運(yùn)動(dòng),表現(xiàn)真實(shí)感。
2.2 骨骼模型用“有向拓?fù)浣Y(jié)構(gòu)”來(lái)描述,與傳統(tǒng)拓?fù)浣Y(jié)構(gòu)一樣,有向拓?fù)湟彩怯晒?jié)點(diǎn)和路徑組成,不同的是,每一個(gè)路徑帶有指向和空間可以轉(zhuǎn)動(dòng)的位相。
2.3 皮膚模型分為可變與不變兩部分,利用拓?fù)洳蛔冃员3诌\(yùn)動(dòng)后皮膚模型的完整性。
三維人物建模作為一門(mén)新興的學(xué)科,涉及到動(dòng)畫(huà)、計(jì)算機(jī)圖形學(xué)、生理學(xué)、心理學(xué)、生物力學(xué)、機(jī)器人學(xué)和人工智能等多個(gè)研究領(lǐng)域,游戲中三維人物模型的研究是一個(gè)具有理論意義和實(shí)用價(jià)值的基礎(chǔ)課題。而隨著科技的不斷發(fā)展,還會(huì)不斷有高水平高層次的建模方式融入到人體動(dòng)畫(huà)建模技術(shù)中,這將是游戲中三維人物建模技術(shù)發(fā)展的一個(gè)長(zhǎng)遠(yuǎn)目標(biāo),它需要眾多相關(guān)學(xué)科領(lǐng)域的深入發(fā)展與交叉才能最終實(shí)現(xiàn)。
推薦影視動(dòng)漫專(zhuān)業(yè)院校:重慶大學(xué)、安微大學(xué)、江蘇科技大學(xué)
如果你想要報(bào)考以上專(zhuān)業(yè)和大學(xué),可以在下面填寫(xiě)你的聯(lián)系方式,稍后會(huì)有學(xué)校老師聯(lián)系你。