摘 要: 在三維動(dòng)畫制作軟件中,傳統(tǒng)的人工調(diào)整虛擬人動(dòng)作的工作方式已經(jīng)不再適合現(xiàn)在的計(jì)算機(jī)動(dòng)畫制作。針對(duì)這一問題,提出了一種采用Maya腳本語言編程來實(shí)現(xiàn)人物動(dòng)畫控制的用戶界面,在該界面中,動(dòng)畫師可以通過選擇按鈕移動(dòng)滑塊進(jìn)行關(guān)鍵幀的設(shè)置,從而產(chǎn)生骨架的運(yùn)動(dòng),形成動(dòng)畫。該方法可以提供對(duì)制作人物特征有用的工具,使得人物動(dòng)畫的制作更簡(jiǎn)單。
關(guān)鍵詞: Maya;MEL語言;人體建模;虛擬士兵動(dòng)畫
計(jì)算機(jī)三維動(dòng)畫技術(shù)是指使用計(jì)算機(jī)技術(shù)自動(dòng)或半自動(dòng)地生成動(dòng)畫的技術(shù),它是計(jì)算機(jī)圖形學(xué)與藝術(shù)相結(jié)合的產(chǎn)物。隨著計(jì)算機(jī)硬件技術(shù)的快速發(fā)展和對(duì)計(jì)算機(jī)圖形學(xué)理論的深入研究,三維動(dòng)畫技術(shù)已取得長(zhǎng)足的進(jìn)步,動(dòng)畫師可以借助計(jì)算機(jī)創(chuàng)作出具有高度真實(shí)感的虛擬場(chǎng)景和數(shù)字化人物。三維動(dòng)畫技術(shù)在工業(yè)、娛樂、旅游開發(fā)、軍事等多種領(lǐng)域前景廣闊。尤其是對(duì)于文物、遺跡在長(zhǎng)期的保存過程中,無法避免自然消亡、磨損,利用數(shù)字化技術(shù)來模擬,可以避免人直接接觸文物,對(duì)文物遺址也起到一個(gè)很好的保護(hù)和傳播作用。
目前,國(guó)內(nèi)外很多科研機(jī)構(gòu)及公司利用自己的三維虛擬人運(yùn)動(dòng)及顯示技術(shù)開發(fā)了一些非常實(shí)用的系統(tǒng), 如美國(guó)賓夕法尼亞大學(xué)設(shè)計(jì)的JACK[1],英國(guó)諾丁漢大學(xué)設(shè)計(jì)的Sammie[2]等。這些系統(tǒng)都有自己的顯示及控制虛擬人運(yùn)動(dòng)的方法, 也取得了比較好的效果,但在虛擬人的幾何外形表示和顯示方面還存在很多不足。本文借助Maya的腳本語言MEL表達(dá)式編程來實(shí)現(xiàn)人物運(yùn)動(dòng)的控制界面,使得動(dòng)畫的制作簡(jiǎn)單又自動(dòng)化。
1 基于MEL的骨骼動(dòng)畫控制界面設(shè)計(jì)
1.1 建立虛擬士兵模型
國(guó)際上的虛擬人體建模方法主要有棒模型、表面模型和體模型3種[3],本文采用目前主流的表面模型建模方法。表面模型將人體分成骨架與皮膚, 皮膚位于骨架層之上。這一分層建模方法符合人體拓?fù)浣Y(jié)構(gòu), 可以更精確地表達(dá)人體的信息。
Maya軟件是目前最強(qiáng)大的整合3D建模、動(dòng)畫、效果和渲染的制作軟件之一。它廣泛地應(yīng)用在電影、電視、廣告、電腦游戲和電視游戲等的數(shù)位特效創(chuàng)作, 尤其是在角色動(dòng)畫的制作中。在Maya中建好的模型如圖1所示。
1.3 用戶控制界面的實(shí)現(xiàn)
Maya的MEL腳本語言是Maya提供給用戶的一種嵌入式腳本語言,使用MEL語言,用戶可以訪問Maya自身的更多屬性,靈活地執(zhí)行更多Maya界面中提供給用戶的菜單命令,甚至可以使用MEL提供給用戶的界面編寫功能來編寫用戶自己的小插件和菜單欄等。
1.3.1 載入綁定好的模型場(chǎng)景
模型已經(jīng)裝配有骨骼和皮膚,此骨架只是用來擺放模型的關(guān)節(jié)點(diǎn)。在透視面板中隱藏多邊形模型,只單獨(dú)查看關(guān)節(jié)點(diǎn)、IK句柄和定位器。這里關(guān)鍵是模型的脊柱控制,因?yàn)榧怪墓趋拦?jié)點(diǎn)比較多,容易變形。為了給模型添加一些定制屬性,在腳本編輯器中執(zhí)行以下命令,在屬性編輯器中就可以看到圖4所示的屬性。
其生成代碼如下:
m_backRoot.rotateY=(l_foot.translateY*2)
-(r_foot.translateY*2);
m_backRoot.translateX=(-l_foot.translateY/4)
-(-r_foot.translateY/4);
第1條命令是當(dāng)右腳r_foot在Y軸方向移動(dòng)時(shí),表達(dá)式將每只腳在Y軸上的平移量乘以2,然后將所得的結(jié)果相減,以決定沿著Y軸旋轉(zhuǎn)關(guān)節(jié)點(diǎn)的程度。第2條命令是將r_foot和l_foot在Y軸方向上平移量的負(fù)值除以4,并將左腳減去右腳作為將脊柱平移開較高的那只腳的量。
1.3.3 創(chuàng)建控制人物動(dòng)畫的用戶界面
本文創(chuàng)建人物動(dòng)畫控制用戶界面包括以下幾個(gè)部分:
?。?)創(chuàng)建視窗,使用下面的命令:
window-w 450-h 500-title "mrBlah Controls;
showWindow mrBlahControls;
其中,第1條命令是為該窗口創(chuàng)建框架和標(biāo)題,最后一條命令為啟動(dòng)該窗口??梢钥吹綀?chǎng)景中生成了一個(gè)空的視窗。
(2)創(chuàng)建滑軌控制器,使用下面的命令:
floatSliderButtonGrp-label "Twist"-field true-buttonLabel "Key"-buttonCommand "select -r spineCtrl;-minValue-20.0 -maxValue 20.0
-value 0.0 Twist;
其中,floatSliderButtonGrp創(chuàng)建控制一個(gè)浮點(diǎn)數(shù)值的滑塊,-field true標(biāo)記提供一個(gè)與之關(guān)聯(lián)的文本框,Value表示的是滑塊的最小值與最大值。
?。?)創(chuàng)建橫向和縱向布局,使用下面的命令:
columnLayout-rs 距離數(shù) 布局名;rowLayout-rs 距離數(shù) 布局名;
其中,columnLayout命令在窗口中將很多控件從上到下進(jìn)行排列,rowLayout命令在窗口中將控件從左向右進(jìn)行排列。
經(jīng)過以上命令,就創(chuàng)建了一個(gè)滑塊控件,其效果圖如圖7所示。
?。?)創(chuàng)建按鈕,使用下面的命令:
button-w 參數(shù)-h 參數(shù)-l “按鈕名” 按鈕變量名;
本文中創(chuàng)建的按鈕有Right arm、Left arm、Waist、Right foot和Left foot。在布局了以上的界面之后,最重要的就是把人物的骨骼控制器與按鈕和滑塊結(jié)合起來,從而實(shí)現(xiàn)允許用戶對(duì)窗口中所選擇的定位器進(jìn)行關(guān)鍵幀的設(shè)置。
2 仿真實(shí)驗(yàn)結(jié)果與分析
本文選用Maya軟件進(jìn)行實(shí)驗(yàn),采用其腳本語言MEL編程實(shí)現(xiàn)了人物動(dòng)畫控制界面。圖8是人物的初始狀態(tài),沒有對(duì)其進(jìn)行關(guān)鍵幀設(shè)置。其中,控制界面中的按鈕HiRes是平滑顯示覆蓋于關(guān)節(jié)點(diǎn)上的模型,這里沒有加入頭部信息;LoRes是粗糙顯示覆蓋于關(guān)節(jié)點(diǎn)上的多邊形小塊,并顯示關(guān)節(jié)點(diǎn)本身;Joints是僅顯示關(guān)節(jié)點(diǎn)。在實(shí)驗(yàn)中為了操作方便,采用僅顯示關(guān)節(jié)點(diǎn)的模型。圖9是人物骨骼節(jié)點(diǎn)發(fā)生變化的情況,可以看出,在選擇了某一個(gè)需要的按鈕之后,滑動(dòng)上面的滑塊,骨骼就會(huì)發(fā)生變化,這樣動(dòng)畫師實(shí)現(xiàn)對(duì)動(dòng)作進(jìn)行關(guān)鍵幀的設(shè)置就比較直觀而且容易了。
計(jì)算機(jī)動(dòng)畫是計(jì)算機(jī)圖形學(xué)領(lǐng)域的一個(gè)重要方向, 本文結(jié)合專業(yè)動(dòng)畫軟件Maya對(duì)虛擬人動(dòng)畫進(jìn)行了研究。采用MEL語言表達(dá)式生成了可以控制虛擬人動(dòng)畫的用戶界面,同時(shí)完成了人物骨骼的連接,從而簡(jiǎn)化了動(dòng)畫制作過程。但是在文章中沒有添加士兵頭部的動(dòng)作表情,因此更加逼真的動(dòng)畫效果有待進(jìn)一步研究。
參考文獻(xiàn)
[1] BADLER N I, PHILLIPS C B, WEBBER B L. Simulating humans: computer graphics, animation, and control[M]. London: Oxford University Press, 1999.
[2] KINGSLEY E C, SCHOFIELD N A, CASE K. SAMMIE- a computer aid for man-machine modeling[J]. Computer Graphics, 1981,15(3):163-169.
[3] 王兆其.虛擬人合成研究綜述[J].中國(guó)科學(xué)院研究生院學(xué)報(bào), 2000,17(2):89-98.
[4] 羅漢.Maya MEL動(dòng)畫編程從入門到精通[M].北京:兵器工業(yè)出版社,2005.
[5] WILKINS M R, KAZMIER C, OSTERBURG S. MAYA動(dòng)畫師MEL腳本編程全攻略[M].唐俊東,王東安,譯.北京:電子工業(yè)出版社,2004.
[6] 姚俊峰.三維動(dòng)漫游戲人物角色仿真技術(shù)[M].北京:科學(xué)技術(shù)出版社,2009.