[摘 要]本文針對具體的場景設(shè)計,引入MEL語言,詳細闡述了Maya的二次開發(fā)的流程,通過比較進而說明基于三維設(shè)計軟件平臺的二次開發(fā)在三維設(shè)計建模中的可用性。 [關(guān)鍵詞]MayaMEL語言場景設(shè)碧棗計

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)赤峰林西免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
[中圖分類號]TP[文獻標識碼]A[文章編號]1007-9416(2010)03-0065-03
1 引言
Maya 作為Alias―Wavefront 的旗艦產(chǎn)品,現(xiàn)已成為國際3D 設(shè)計制作界的主流軟件。它適用于專業(yè)角色動畫、電影特技、影視廣告等。并以其靈活、開放、高速和高效而備受推崇。
MEL 是Maya Embedded Language (Maya嵌入式語言)的縮寫,是一種強大的命令和腳本語言,讓你直接控制Maya 的特征、進程和工作流程。Maya界面的幾乎每一個要點都是在MEL指令和腳本程序上建立的。由于Maya給出了對于MEL自身的完全的訪問,你可以擴展和定制Maya。通過MEL,你可以進一步開發(fā)Maya使它成為你和你的項目的獨特而創(chuàng)新的環(huán)境[1]。
2 MEL語言對Maya的進一步開發(fā)
目前的主流動畫設(shè)計軟件都或多或少的給用戶提供了一個編程接口以進行開發(fā)。Maya則使用MEL語言對其進行開發(fā)。MEL作為一種腳本語言,受腳本解釋器(Command Engine)和Maya內(nèi)置命令的影響,還是有很多局限的。MEL不能使用ActiveX插件,還只能根據(jù)Maya中已有的命令(dll或mll中注冊過的命令)進行擴展,無法直接調(diào)用dll模塊中的函數(shù)。我們平常使用的dll或exe程序文件是經(jīng)過編譯器優(yōu)化的二進制文件,命令的執(zhí)行速度非常快,而MEL腳本語言是文本,有一個腳本解釋器分析的過程,命令的執(zhí)行速度較慢,大約要慢20倍。MEL不支持指針,不能對內(nèi)存進行直接操作。這就導(dǎo)致了很多方面的效率超級低下,對內(nèi)存的間接操作可能會使運行速度降低100倍甚至1000倍以上。不過這樣也有一個不容爭辯的好處,就是不會產(chǎn)生內(nèi)存泄漏,保障了Maya的穩(wěn)定性。盡管如此,考慮到MEL在場景設(shè)計中的許多優(yōu)勢,如快速搭建重復(fù)的場景,MEL仍不失為一個公認的選祥慧洞擇。
2.1 流程簡化
Maya中的所有的按鈕命令都是通過MEL來調(diào)用的,你可以記錄并把其中一些命令組合起來,通過一鍵或按鈕來自動執(zhí)行這一組命令,就像PhotoShop里的Actions一樣。在場景設(shè)計中,有些環(huán)節(jié)步驟非常繁瑣,通過MEL命令將這些步驟整的命令整合在一起,大大簡化了操作的流程。
2.2 功能擴展
對謹枯于一個項目來說,必然有各種特定的需求,這些是Maya庫中的基本工具所不能滿足的,但是MEL可以按用戶需求編輯設(shè)計各種細微的場景并封裝成塊調(diào)用,這大大擴充了Maya的功能,使Maya運用起來更友好,更順手。
2.3 界面友好
MEL有一個很重要的功能是編寫界面,Maya的整個界面是用MEL編寫的,Maya中的所有界面元素都可以編寫到你自己的MEL程序界面中,你可以用MEL跟據(jù)自己的習(xí)慣定制自己的操作界面。
實際的應(yīng)用使我們感到:MEL是Maya使用最方便和控制最靈活的編程接口。Maya中的每一步操作都是在執(zhí)行MEL,因此Maya的任何一個功能,能做的任何一項操作,都可以加到你自己的MEL程序中。正如Maya的圖形用戶界面(GUI)也是由MEL來控制的。既然在Maya的每個角落都有MEL的存在,那么,對MEL了解得越是深入,Maya就會運用的越好,在場景設(shè)計中也會更加得心應(yīng)手。
3 MEL在場景設(shè)計中的應(yīng)用
3.1 草地建模
場景設(shè)計中經(jīng)常需要在戶外鋪設(shè)草地。草地的制作可以通過對單根小草建模,然后批量復(fù)制,在對其細節(jié)進行修改,但即便如此,同樣是草地,由于區(qū)域不同,某個場景下完成的草地效果未必能適合其他場景的需要,所以必須重新建模。這種建模修改的工作非常繁瑣,而且耗時。
3.1.1 通過MEL對草地建模提速
草地的特征是草的高度參差不齊,草的方向也會隨生長長短倒向不同的方向,通過MEL對這些細節(jié)進行編寫,可以制作各種樣式的草地,由于草地的特征數(shù)據(jù)是可以手動修改的,這給與設(shè)計極大的靈活度,所以創(chuàng)建成后只需修改這些參數(shù)就能迅速生成場景設(shè)計中需要的樣式。結(jié)果如圖1所示。
3.1.2 基于MEL的草地建模流程
●制作一根草,加變形器
string $grassName[]=`polyCone -r $radius -h $height-sx3-sy 10-sz 0 -ax 0 1 0 -tx 1 -ch 1`;
setAttr ($grassName[0]+".translateY") ($height/2);
setAttr($grassName[0]+".scaleX") 0.25;
string $bendName[]=`nonLinear -type bend-lowBound 0 -highBound $height -curvature $curvature`;
setAttr($bendName[1]+".translateY")0;
草的模型是三棱錐,用polyCone建立單根草的模型,賦予其高度h,底面邊數(shù)sx,棱劃分數(shù)sz,再用縮放scaleX對其進行變形,令底面沿x軸方向由頂點向底邊靠近,以體現(xiàn)草扁的特質(zhì),然后設(shè)置彎曲軌跡曲線curvature[2],顯出草的彎折。效果如圖2所示。
●隨機放置每根草
global proc genGrass(float $minX,float $maxX,float $minZ,float $maxZ, int $num,string $style)
{
int $i;
for($i=0;$i 本文為全文原貌 未安裝PDF瀏覽器用戶請先下載安裝 原版全文 ●帶入具體場景需求的參數(shù),生成草地。
generateGrass(x方向最小值,x方向最大值,z方向最小值,z方向最大值,草的個數(shù),“草的長短”)
genGrass(-10,10,-10,10,20,"long")
效果如圖3所示。
經(jīng)過以上流程,一塊草地的設(shè)計就初步完成了。實際設(shè)計中還要對草地進行渲染,加上光線,這里重點在于介紹草地模型的建立,故不贅述。
可以看出,我們只要修改genGrass()中的參數(shù)即可生成各種樣式的草地,但是這樣在工作中,如果每次設(shè)計草地場景都要復(fù)制整段的MEL,再修改參數(shù)也是不人性化的。因為復(fù)制中如果漏了一個符號很可能導(dǎo)致整段MEL語言就無法運行,所以這里就要再次利用MEL對以上的模塊進行封裝。
3.1.3 基于MEL的草地建模腳本的封裝
事實上,我們在使用Maya時,在菜單中創(chuàng)建某個物體,選擇某個工具,對某項操作進行參數(shù)設(shè)置,在屬性編輯器中對物體的屬性進行調(diào)節(jié),等等操作都是在Maya提供的用戶圖形界面上進行的。這些用戶圖形界面的使用方法已經(jīng)以MEL命令的方式公開給了用戶,使我們可以通過這些命令,創(chuàng)建自己的界面,在界面上輸入或選擇相關(guān)參數(shù),調(diào)用編寫好的腳本,起到封裝的效果。
●定義圖形界面框體
window -title "makeGrass" -w 400 -h 300 grassWin;
通過window命令建立了窗體的寬w,高h,以及formLayout的標題title。
●劃分框體份數(shù)
string $form=`formLayout-numberOfDivisions 3`;
通過numberOfDivisions,將formLayout劃分為3份,這在后面的用attachPosition定位時會起到作用。
●定義各參數(shù)按鈕
floatSliderGrp -label "mindirectx" -field true -min -100 -max 0 minX;
floatSliderGrp -label "maxdirectx" -field true -min 0 -max 100 maxX;
floatSliderGrp -label "mindirecty" -field true -min -100 -max 0 minY;
floatSliderGrp -label "maxdirecty" -field true -min 0 -max 100 maxY;
floatSliderGrp -label "number" -field true -min 1 -max 1000 num;
radioButton -label "long" long;
radioButton -label "normal" normal;
radioButton -label "short" short;
string $but =`button -label "make grass" -command genGrass`;
根據(jù)設(shè)計需要,通過floatSliderGrp.生成拖動條,可以定義場景范圍,快捷的選擇場景需要的數(shù)據(jù),通過radioButton生成單選按鈕,選擇草地的類型。最后設(shè)置功能按鈕,用-command命令將生成草地genGrass模塊與button按鈕聯(lián)系起來。
●顯示封裝模塊操作窗口
showWindow makegrass;該命令將之前設(shè)置的按鈕屬性以圖形界面顯示出來,效果如圖4所示。
通過以上闡述,繁瑣重復(fù)的草地場景設(shè)計就可以通過幾個拖動條,幾個單選框方便的完成。
3.2 MEL運用的在場景設(shè)計中的收益
MEL的運用在設(shè)計過程中無疑大大節(jié)省了時間,降低了工作人員的工作強度,效率也得到極大的提高,制作人員可以將更多地精力投放到其他諸如場景燈光,道具設(shè)計等更重要的工作中去。與之前的重復(fù)建模,細節(jié)修改相比,運用MEL后一個同樣規(guī)模的場景設(shè)計從之前的1個/2小時縮減到1個/10分鐘,并且完成每個場景所需時間隨著工作時間增長,前者所需時間會進一步增加,而后者則保持不變,可見MEL帶來的不僅僅是單個任務(wù)的效率提高,對項目整體也是進一步的優(yōu)化和提高。
3.3 MEL在場景設(shè)計中的應(yīng)用擴展
MEL功能強大,上述草地場景只是其運用的很小一部分,但通過該設(shè)計,可以使我們了解到Maya出色的個性化控制, 其極大的靈活性和良好的開放性可見一斑。運用想象力, 改變上面的程序,還可以變化出更多更出色的效果[3]。MEL不僅在靜態(tài)場景中表現(xiàn)出眾,在設(shè)計動態(tài)場景如小溪緩緩流下高山,原子彈模擬爆炸,遨游太空行走一樣表現(xiàn)不俗,Maya 為實現(xiàn)上述種種效果提供了一個豐富的工具庫,而MEL使得動畫師可以簡便地設(shè)置模型或粒子關(guān)系,來精確地模擬真實世界中存在的一些作用力(如摩擦、重力和風(fēng)),而這在過去用二維Flash 軟件要花上幾個小時的時間用關(guān)鍵幀方法才能實現(xiàn)。
4 結(jié)語
有效地使用MEL可以加深對Maya理解 。通過在Maya 的工作流程中使用MEL 語言進行開發(fā)工作,可以給你提供最大程度的流程簡化,從而節(jié)省時間,降低強度,提高效率。同時,人機界面的改進也是亟待解決的問題,現(xiàn)有的工具在實現(xiàn)功能的前提下界面還不夠友好,有的工具需要使用者進行簡單的學(xué)習(xí)才能使用。創(chuàng)建簡單易學(xué),功能強大,適合設(shè)計師自身的界面也是工作的重要部分。MEL不是運用Maya必須精通的,但掌握MEL將會讓Maya更好的為我們服務(wù)。
[參考文獻]
[1] 陳綠春. Maya8.5從新手到高手[M].北京:清華大學(xué)出版社,2007.
[2] CompleteMayaProgrammingAnExtensiveGuide[M].北京:電子工業(yè)出版社.
[3] 陳汗青,呂杰鋒.數(shù)碼設(shè)計藝術(shù)[M].上海:人民美術(shù)出版社,2004.
本文為全文原貌 未安裝PDF瀏覽器用戶請先下載安裝 原版全文
為什么要學(xué)習(xí)GO語言,GO的優(yōu)勢是什么?
1、 Go有什么優(yōu)勢
Go的優(yōu)勢
1:性能
2:語言性能很重要
3:開發(fā)者效率纖做不要過于創(chuàng)新
4:并發(fā)性通道
5:快速的編譯時間
6:打造團隊的能力
7:強大的生態(tài)系統(tǒng)
8:GOFMT,強制代碼格式
9:gRPC 和 Protocol Buffers
可直接編譯成機器碼,不依賴其他庫,glibc的版本有一定要求,部署就是扔一個文件上去就完成了。
靜態(tài)類型語言,但是有動態(tài)語言的感覺,靜態(tài)類型的語言就是可以在編譯的毀耐衡時候檢查出來隱藏的大多數(shù)問題,動態(tài)語言的感覺就是有很多的包可以使用,寫起來的效率很高。
Go 是一個開源的編程語言,它能讓構(gòu)造簡單、可靠且高效的軟件變得容易。想學(xué)習(xí)這門編程語言,首先要找到一份不錯的教程,兄弟連go語言+區(qū)塊鏈培訓(xùn)最近新出了一套go語言的教程,老師講的非常不錯!
伴隨著“區(qū)塊鏈”概念在全球范圍內(nèi)的熱議,金融、物流、征信、制造、零售等日常生活場景中也悄然加入了相關(guān)區(qū)塊鏈技術(shù)應(yīng)用。有專家表明,未來區(qū)塊鏈將與人們的生活息息相關(guān),區(qū)塊鏈技術(shù)與大眾日常生活融合是大勢所趨。
區(qū)塊鏈市場的火熱引發(fā)了大量以區(qū)塊鏈技術(shù)型人員畝此為基礎(chǔ)的人才性需求,區(qū)塊鏈人才受熱捧程度呈光速上升。據(jù)拉勾網(wǎng)發(fā)布的“2018年區(qū)塊鏈高薪清單”顯示,騰訊、小米、蘇寧、京東等國內(nèi)企業(yè)巨頭發(fā)布了眾多高薪區(qū)塊鏈崗需求,力圖探索區(qū)塊鏈相關(guān)技術(shù)與應(yīng)用。清單中同時指出,高薪崗位以區(qū)塊鏈相關(guān)技術(shù)型崗位需求為主,其中蘇寧和科達月薪最高已給到100k。
極大的技術(shù)型人才市場需求,必然會帶動整個區(qū)塊鏈培訓(xùn)市場的爆發(fā)式涌現(xiàn)與增長。培訓(xùn)模式大都可分為線上培訓(xùn)、傳統(tǒng)IT機構(gòu)培訓(xùn)及主打高端形式的線下短期訓(xùn)練營等幾種形式,但市場火爆演進過程中也充斥著種種區(qū)塊鏈培訓(xùn)亂象:講師資質(zhì)注水化、甚至是最基本的姓名都不敢公開,課程大綱不透明、授課質(zhì)量縮水化,課時安排不合理及培訓(xùn)收費標準參差不齊等等。
在整個區(qū)塊鏈培訓(xùn)市場規(guī)模化發(fā)展之下,兄弟連教育攜手資深區(qū)塊鏈專家尹成及其清華水木未名團隊成立區(qū)塊鏈學(xué)院,利用其專業(yè)強大的技術(shù)講師團隊、細致全面的課程體系及海量真實性企業(yè)區(qū)塊鏈項目實戰(zhàn),旨在深耕區(qū)塊鏈教培領(lǐng)域,并為企業(yè)為社會培養(yǎng)更多專業(yè)型技術(shù)人才。
尹成 資深區(qū)塊鏈技術(shù)專家 兄弟連區(qū)塊鏈學(xué)院院長畢業(yè)于清華大學(xué),曾擔(dān)任Google算法工程師,微軟區(qū)塊鏈領(lǐng)域全球最具價值專家,微軟Tech.Ed 大會金牌講師。精通C/C++、Python、Go語言、Sicikit-Learn與TensorFlow。擁有15年編程經(jīng)驗與5年的教學(xué)經(jīng)驗,資深軟件架構(gòu)師,Intel軟件技術(shù)專家,著名技術(shù)專家,具備多年的世界頂尖IT公司微軟谷歌的工作經(jīng)驗。具備多年的軟件編程經(jīng)驗與講師授課經(jīng)歷, 并在人機交互、教育、信息安全、廣告、區(qū)塊鏈系統(tǒng)開發(fā)諸多產(chǎn)品。具備深厚的項目管理經(jīng)驗以及研發(fā)經(jīng)驗, 擁有兩項人工智能發(fā)明專利,與開發(fā)電子貨幣部署到微軟Windows Azure的實戰(zhàn)經(jīng)驗。教學(xué)講解深入淺出,使學(xué)員能夠做到學(xué)以致用。
網(wǎng)站標題:go語言適合畢業(yè)設(shè)計 go語言適合畢業(yè)設(shè)計嘛
網(wǎng)頁網(wǎng)址:http://chinadenli.net/article29/dsphgjh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、建站公司、網(wǎng)站內(nèi)鏈、響應(yīng)式網(wǎng)站、云服務(wù)器、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)