網(wǎng)絡(luò)編程技術(shù)論文(2)
網(wǎng)絡(luò)編程技術(shù)論文
網(wǎng)絡(luò)編程技術(shù)論文篇二
Maya編程技術(shù)
摘要:對Maya中表達(dá)式和腳本這2種動(dòng)畫編程技術(shù)分別作了介紹,最后比較了這2種編程技術(shù)。
關(guān)鍵詞:動(dòng)畫編程;表達(dá)式;腳本;MEL
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2013)36-8409-02
Rendering properties on Maya Particles
YU Hai-wen
(College of Information Engineering NanChang University ,Nanchang 330000,China)
Abstract:The expression of Maya and script in the 2 animated programming technology are introduced;In the end ,Comparison between the 2 kinds of programming technology.
Key words:Animated programming; Expression; Script; MEL(Maya Embedded Language)
本文主要介紹Maya表達(dá)式和腳本的一般用法。
1 表達(dá)式
表達(dá)式動(dòng)畫是一種建立在數(shù)學(xué)模型基礎(chǔ)上的動(dòng)畫控制方式,即將動(dòng)畫的運(yùn)動(dòng)軌跡、與時(shí)間的關(guān)系、與某個(gè)屬性的關(guān)系轉(zhuǎn)化為數(shù)學(xué)運(yùn)算的模型關(guān)系,來達(dá)到控制物體產(chǎn)生動(dòng)畫的目的。
1.1 動(dòng)畫方式
所有的三維軟件控制動(dòng)畫的方式有3種:關(guān)鍵幀動(dòng)畫、關(guān)聯(lián)動(dòng)畫、表達(dá)式動(dòng)畫。
1)關(guān)鍵幀動(dòng)畫直接記錄物體參數(shù)隨時(shí)間的變化關(guān)系;
2)關(guān)聯(lián)動(dòng)畫記錄兩個(gè)屬性之間的變化關(guān)系;
3)表達(dá)式動(dòng)畫則將動(dòng)畫中的相關(guān)參數(shù)、時(shí)間屬性、運(yùn)動(dòng)軌跡等用數(shù)學(xué)公式模擬表示出來;
1.2 控制物體運(yùn)動(dòng)的基本方式
1)Keyframe(關(guān)鍵幀動(dòng)畫)
2)Set Driven Key(驅(qū)動(dòng)關(guān)鍵幀)
3)Constraint(約束)
4)Motion Path(路徑動(dòng)畫)
5)Expression(表達(dá)式動(dòng)畫)
6)Direct Connection(屬性關(guān)聯(lián))
在這6種方式中,Set Driven Key(驅(qū)動(dòng)關(guān)鍵幀)、Constraint(約束)、Direct Connection(屬性關(guān)聯(lián))都是標(biāo)準(zhǔn)的關(guān)聯(lián)動(dòng)畫,而Motion Path(路徑動(dòng)畫)則將關(guān)鍵幀動(dòng)畫與關(guān)聯(lián)動(dòng)畫的優(yōu)勢結(jié)合起來,顯得對運(yùn)動(dòng)中軌跡的控制和屬性的關(guān)聯(lián)更加靈活。
1.3 表達(dá)式動(dòng)畫
在3DMax、Maya等3D軟件中,一般首先通過建模建立所需要的場景、角色、等,而表達(dá)式動(dòng)畫的實(shí)質(zhì)是將這些建模中所定義的場景物體、角色等定義為對象,結(jié)合采用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,在表達(dá)式編程中利用參數(shù)來控制這些對象,這些參數(shù)可以是時(shí)間參數(shù),也可以是對象的一個(gè)參數(shù)受控于另一個(gè)參數(shù)來產(chǎn)生某種數(shù)學(xué)運(yùn)算下的動(dòng)畫軌跡,最終實(shí)現(xiàn)建立與改變模型與動(dòng)畫的設(shè)計(jì)。故通過表達(dá)式創(chuàng)建出的三維動(dòng)畫就稱為表達(dá)式動(dòng)畫。
除了特別加以說明,一般情況下,表達(dá)式動(dòng)畫對物體運(yùn)動(dòng)的控制是全程的,而且只要表達(dá)式中關(guān)聯(lián)的數(shù)學(xué)模型描述是對的,那么動(dòng)畫中受控物體屬性值一般就不會(huì)出現(xiàn)錯(cuò)誤動(dòng)作。
例如,九大行星運(yùn)動(dòng)軌跡都是橢圓,顯然這種動(dòng)畫用軌跡動(dòng)畫很難實(shí)現(xiàn),但用表達(dá)式動(dòng)畫結(jié)合數(shù)學(xué)中橢圓公式的應(yīng)用,就很易于實(shí)現(xiàn);而且,表達(dá)式動(dòng)畫實(shí)現(xiàn)中,通過修改幾個(gè)簡單的參數(shù)就可以很輕松地調(diào)整橢圓軌跡、形狀等,相比于關(guān)鍵幀動(dòng)畫需要修改大量參數(shù)而言,方便得多。
2 腳本
2.1 MEL
MEL(Maya Embedded Language),意思就是“Maya內(nèi)嵌語言”,是Maya自帶的高級編程語言,由于涉及到對Maya中建模得到的物體對象的操作,建議必須具備有面向?qū)ο缶幊陶Z言的基礎(chǔ)的用戶學(xué)習(xí)它。
Maya中所有的用戶界面,包括菜單、視窗、各種工具都是MEL語言編寫而成的。用戶在Maya中進(jìn)行的所有操作,無論是通過菜單還是通過命令行,或者是采用其他方式對場景或場景中的物體進(jìn)行的操作,實(shí)際上都是通過調(diào)用MEL命令實(shí)現(xiàn)的。
Maya的MEL命令對用戶是完全開放的,即給出了一個(gè)開放的拓展空間,用戶可以自己擴(kuò)展和定制Maya。比如,用戶可以編寫自己的界面而不必用類似C++這種較為底層的外部開發(fā)工具,用戶可以像搭積木一樣隨意拼裝自己的工具,可以自己開發(fā)Maya默認(rèn)狀態(tài)下不能提供的功能,或重新組織Maya的功能等,即通過MEL,可以按照自己的喜好在Maya下創(chuàng)建出特定的項(xiàng)目環(huán)境。
2.2 腳本使用
在腳本中有三種運(yùn)行MEL命令的方法:
如果返回值在以后不需要保留引用,則可以作為獨(dú)立語句運(yùn)行;
如果返回值在以后需要保留引用,比如想將返回值存入某變量,則可以考慮將其放入反引號中;
如果想在字符串中構(gòu)造某命令并執(zhí)行它,則使用eval函數(shù)命令。
MEL腳本使用的情況無非是如下幾種需求:
在Script editor窗口或純文本編輯器下產(chǎn)生MEL程序;
執(zhí)行用戶建模、動(dòng)畫、渲染等的腳本程序;
可以按項(xiàng)目特定的場景自定義UI,則用戶使用MEL指令時(shí)可以脫離Maya的UI,直接使用熱鍵,訪問快速而方便;
直接給某屬性輸入準(zhǔn)確的值;
比如用MEL腳本建立一個(gè)球:
1)打開記事本;
2)在記事本中輸入:
Global proc mysp()
{
sphere -p 0 0 0 -ax 0.5 1 0 -ssw 0 -esw 300 -r 1.5 -d 3 -ut 0 -tol 0.01 -s 16 -nsp 16 -ch 1;
}
3)保存該文件,文件名:mysp.mel(注意后綴!);
4)之后運(yùn)行該文件,就可以在Maya按mysp.mel腳本文件中的制定參數(shù)中建立一個(gè)球。
當(dāng)然,腳本運(yùn)行的環(huán)境設(shè)置、腳本書寫的基本規(guī)則、變量的定義、MEL中的數(shù)學(xué)邏輯運(yùn)算等,因篇幅原因,不再詳細(xì)解釋。
3 MEL和表達(dá)式的區(qū)別
1) MEL是間接控制物體屬性,是Maya編程的核心,也是利用Maya在3D世界自由創(chuàng)作的必需的語言工具;而表達(dá)式是直接控制物體屬性;
2) 在屬性賦值或取值方面:在表達(dá)式編程中可以直接用“=”;而MEL腳本中則通過函數(shù)getAttr和setAttr來實(shí)現(xiàn);
3) 表達(dá)式里有time和frame這兩個(gè)變量可以調(diào)用,而MEL無法直接使用(通過其他方法使用,比如currentTime -q);等。
參考文獻(xiàn):
[1] “火星時(shí)代”網(wǎng)站資源.Autodesk Maya培訓(xùn)系列[Z].
[2] 張寶榮.Maya總動(dòng)員—動(dòng)畫編程篇[M].北京:清華大學(xué)出版社,2011.
看了“網(wǎng)絡(luò)編程技術(shù)論文”的人還看:
1.計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)論文的范文