胡曉輝+余瀚欣
摘 要:在動畫項目制作過程中常常需要制作印痕類的物體建模,采用傳統(tǒng)手動方式既費事費力,也無法保證建模的真實性和準確性。文中以三維腳印制作為例,利用MEL語言編寫了能快速建模的Maya模塊。該模塊通過分析腳底與地面的接觸關系,計算出地面出現(xiàn)腳印的形狀、深淺和時間,再利用bump mapping凹凸紋理映射法及Displacement mapping位移貼圖法根據(jù)腳印貼圖序列制作出地面上的三維腳印。這個模塊制作三維腳印的原理同樣可以用在其他三維印痕的制作。
關鍵詞:Maya;MEL;插件;印痕;建模
中圖分類號:TP391.41 文獻標志碼:A 文章編號:2095-2945(2018)07-0014-02
Abstract: In the process of making animation project, it is often necessary to make the object modeling of imprints, and it is difficult to use the traditional manual method, and the authenticity and accuracy of the modeling can not be guaranteed. Taking the three-dimensional footprint making as an example, the Maya module which can model quickly is compiled by using MEL language. This module calculates the shape, depth and time of footprints by analyzing the contact relationship between foot soles and ground. Using bump mapping concave and convex texture mapping method and displacement mapping method, the three-dimensional footprints on the ground are made according to the footprint mapping sequence. This module can also be used in the production of other three-dimensional prints.
Keywords: Maya; MEL; plug-in; imprint; modeling
引言
三維動畫制作已經(jīng)在影視、媒體、教育等方面得到了廣泛的應用。三維動畫軟件Maya作為頂尖的行業(yè)軟件,以它功能強大,兼容性好等優(yōu)點在通常作為首選的開發(fā)工具之一。在用Maya開發(fā)三維動畫作品的時候,常會遇到一些場景中一些移動的物體留下地面痕跡的建模,比如腳印、爪印等印痕的建模工作,這些印痕的建模往往是情節(jié)和日常生活中的真是場景必不可少的,但是這些印痕的建模又比較繁瑣,完全通過手工建模工作量大、準確性低。論文將以三維印痕中的腳印為例,運用Mel語言進行編寫腳本,制作一個能在Maya中快速建模的插件模塊。
1 建模開發(fā)思路
在Maya中,如果不考慮真實感細節(jié)特效的制作,有兩種方法可以實現(xiàn)產(chǎn)生凹凸三維效果:
一是bump mapping凹凸紋理映射法:
采用bump mapping凹凸紋理映射法制作的的凹凸效果并不是真實的三維模型存在凹凸,而是一種紋理映射,是一種視覺假象。一般是在渲染完成后的模型表面上疊加凹凸紋理,造成表面的亮度波動變化,進而使人在視覺上覺得形狀是凹凸的。bump mapping凹凸紋理映射法對計算機系統(tǒng)資源需求較少,也可以批量做出大量的凹凸映射,但是如果是近景鏡頭或者仔細觀察,還是較容易發(fā)現(xiàn)真實性不佳,所以bump mapping凹凸紋理映射法適合于制作遠景鏡頭中的凹凸效果。
二是displacement mapping位移貼圖法:
采用displacement mapping位移貼圖法通過真正改變模型幾何形狀的辦法來再現(xiàn)凹凸,所以這種方法對系統(tǒng)資源的占用也比較高。它可以制作比較精細的凹凸,所以適合于制作近景或者是特寫鏡頭中的凹凸效果。
無論是采用凹凸紋理映射法還是位移貼圖法制作凹凸效果,最終都需要進行表面貼圖。由于現(xiàn)實中印痕的出現(xiàn)往往是動態(tài)的、是逐步成型的,所以貼圖也應該是動態(tài)進行的,要表現(xiàn)出印痕逐步產(chǎn)生的過程,這些動態(tài)地貼圖就要采用動畫文件來粘貼制作。
在動畫項目制作中,場景是這樣的:人物走在沙地或者是泥土上,腳步踩進地面再抬起來,另外一只腳重復這個過程,如此往復在地面上留下一行凹凸的腳印痕跡。單個腳印因為人類行走通常是腳后跟先著地,然后整個腳板從后到前全部落地,地面在壓力下,腳印從后往前開始逐步凹下,外緣被擠壓凸出,最終形成整個腳印。從一個單一腳印形成到一連串腳印形成過程從時間上來講是動態(tài)的,從空間上來講造成了地面的凹凸變形。此外,在近景和特寫鏡頭中,根據(jù)現(xiàn)實的真實效果,還需要有陰影等細節(jié)表現(xiàn)。
動畫場景中的腳印是由腳步踩到地面形成的,也即是當腳板低于地面產(chǎn)生三維凹凸,就生成腳印了??梢愿鶕?jù)現(xiàn)實中腳印的出現(xiàn)原理來進行腳印的制作和貼圖。具體思路是:根據(jù)腳步下地面模型的凹凸落差來判斷是否生成腳印,腳印的大小和形狀與腳掌模型一樣,凹陷表面圖案可根據(jù)鞋底花紋復制,再設置其它細節(jié)和材質,最后以此為模型藍本,進行其余腳印的復制建模。
2 解決方案與制作方法
利用Maya中的凹凸特效之外,根據(jù)上述思路制作腳印效果還存在幾個問題:endprint
首先,該如何根據(jù)腳板地面的位置判斷生成腳印。由于地面可能坑洼不平和起伏,無法用地平面的水平坐標為基準確定是否生成腳印。
可以創(chuàng)建一個新的虛擬物體,把它的坐標位置確定為地面位置,在Maya中創(chuàng)建Locator,通過MEL語言geometryConstraint -w 12 $Ground_name “Foot_Locator”;將Locator和地面約束在一起來定義這個Locator貼著地面滑動來確定腳板踩到地面的位置。其中變量$Ground_name是要關聯(lián)的地面位置,F(xiàn)oot_Locator是這個新建的Locator名稱。通過這種方法,就可以將兩者的接觸面貼合在一起,即可以確定了這個Locator的Y軸坐標位置。
保證了Y軸坐標位置之后,就要依據(jù)腳步的軌跡確定Locator的X軸和Y軸坐標位置。因為腳板的形狀也是不平整的,采用腳板BoundingBox矩形的中心點位置坐標為腳板的位置。然后將腳板BoundingBox矩形的X軸和Y軸坐標參數(shù)賦值給Locator的X軸和Y軸坐標,這樣就可以保證隨著腳步軌跡Locator隨著腳板在地面上的位置移動。最后計算Locator和腳板之間的間隔,并且對這個間隔數(shù)值設置一個偏差值α,這個偏差值α允許腳板BoundingBox矩形的中心點可以比腳板最低點的位置有正負的細小偏差時也能復制腳板。
其次,腳板模型在復制之后會長時間保留,但在渲染階段并不是根據(jù)腳印出現(xiàn)才進行渲染的,這就需要另外控制腳印出現(xiàn)和消失的時間??梢岳貌馁|控制單獨對每一個復制的腳板模型用surface shader表面著色器定義材質,再通過材質操作out matte opacity對腳板的透明度進行控制。腳印出現(xiàn)的時間一般就是復制出新腳板模塊的時刻,在場景中可以設置腳印出現(xiàn)的前幾幀畫面漸變出現(xiàn),在腳印需要消失的后幾幀畫面漸變?yōu)橥该?,使得腳印的變化不那么僵硬,更加顯得自然和真實。
為了保證近景鏡頭的細節(jié)清晰度,所以在創(chuàng)建腳印貼圖時設置垂直于地面的攝像機,通過選景框包含整個腳印范圍盡量使得模型貼圖最大化。設置好攝像機的鏡頭范圍后,為了降低建模和制作的系統(tǒng)資源占用率,都會把要對出現(xiàn)新腳印的地面單獨復制,如果是displacement mapping位移貼圖法還需要對凹凸模型進行平滑化設置,使得貼圖盡可能清晰。
設置好的攝像機位置可以控制Bump3D凹凸節(jié)點的相對位置,進而控制了Bump Projection,因此攝像機映射和Bump Projection選取范圍相同,所以保證了這種由貼圖控制bump mapping凹凸紋理映射法和displacement mapping位移貼圖法腳步和腳印變化的一致性。
3 結束語
論文根據(jù)在動畫制作過程中碰見的印痕制作問題,以腳印為例介紹了采用MEL程序快速建模的思路和方法。通過Mel語言程序,借助新建Locator和腳板BoundingBox矩形確定腳板踩出腳印的時間制作出腳印的模型貼圖,再利用bump mapping凹凸紋理映射法和displacement mapping位移貼圖法來實現(xiàn)地面上的腳印。通過這種原理制作的腳印動畫,可以應用到其它很多印痕動畫的制作之中,不僅可以是本文涉及到的人或者動物的腳印,也可以是場景中其它物體的運動造成的各種印痕。該方法制作的腳印建模,經(jīng)過Mel程序實現(xiàn)和調試,證明用在腳印生成方面是可行的,此外降低了系統(tǒng)占有率,也便于實踐操作,具有很好的應用前景。
參考文獻:
[1]David A.D. Gloud.Maya 5編程全攻略[M].北京:電子工業(yè)出版社,2004.
[2]于海雯.Maya編程技術[J].電腦知識與技術,2013(36):8409-8410.
[3]李志豪,李才應.Maya 命令參考大全[M].北京:兵器工業(yè)出版社,2006.
[4]田玉婷.Maya的MEL語言在項目中的開發(fā)應用[J].黑龍江科技信息,2007(22):100.
[5]吳文哲.MEL語言在Maya場景設計中的應用[J].數(shù)字技術與應用,2010(3):65-67.
[6]胡曉輝,萬嵩.基于軟件工程及其模型的課件開發(fā)研究[J].高教學刊,2015(23):95-96.
[7]王澄宇.Maya腳本應用手冊:表達式與MEL語言[M].北京:人民郵電出版社,2013.endprint