摘要:該文分析了3DS MAX 提供的MAX Script語言,并提出了如何利用MAX Script腳本語言解決一些特殊的實(shí)際問題,通過實(shí)例解決了有限的24個(gè)材質(zhì)球在不夠用的情況下,保留場景中已經(jīng)貼圖并不再改變材質(zhì)的對象,重新設(shè)定、屬性清空以備其它對象使用,實(shí)現(xiàn)了3DS MAX本身自帶功能而不能解決的問題。使學(xué)生體驗(yàn)到該腳本語言的優(yōu)越性。
關(guān)鍵詞:MAXScript;材質(zhì)球;屬性清空;Utility;代碼
中圖分類號:TP311.56文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2009)14-3702-02
Wisely Useing Of 3DS MAX Script to Clear the Material Properties of the Ball
SUN Zhen-ping
(Computer Department of Dalian Workers University, Dalian 116033, China)
Abstracts: This article analyses the MAX Script language which is given by 3DS MAX,and put forward that how to solve some specific practical problems by using MAX Script language. Through the actual examples to retain the object which?has been texture-mapped in the scene under the circumstances that the limited 24 material balls are not enough for using, and to unchange its substance,reseting and emptying properties for the use of other objects,so to realize the?function of 3DS MAX that cannot be solved by itself,and?to enable students to experience the advantages of the script language.
Key words: MAXScript; Material ball; Attribute clear spatial; Utility; Code
1 引言
隨著國內(nèi)3DS MAX應(yīng)用水平的不斷提高,3DS MAX使用者已經(jīng)不再僅僅滿足于手工交互調(diào)整動(dòng)畫,而是不斷的尋求更好、更快、更方便和更高層次的動(dòng)畫制作途徑。MAX Script語言是3DS MAX自帶的腳本語言,它不但擁有一般程序語言的所有特點(diǎn),而且可以在程序內(nèi)實(shí)現(xiàn)幾乎所有在3DS MAX界面下的交互操作,功能非常強(qiáng)大,而且語法比較簡單,對初學(xué)者來說比較容易入門。
游戲場景設(shè)計(jì)和制作中,由于一個(gè)場景中的對象較多,每個(gè)場景對象相同的材質(zhì)又少,所以學(xué)生在做作品時(shí),24個(gè)材質(zhì)球不夠用,有些場景對象不再變化的貼圖,用過的材質(zhì)球可以屬性清空即處于初始狀態(tài),重新利用;還有的時(shí)候可能將原有的材質(zhì)復(fù)制改名再賦予場景,但感覺還是太亂。這時(shí)可以將部分或24個(gè)材質(zhì)球清空,循環(huán)再用,這一想法可以利用3DS MAX Script的功能實(shí)現(xiàn),編一小段程序代碼,并利用Visual MAX Script編輯器,制作一個(gè)控制按鈕,在命令面板的實(shí)用工具Utility中只要點(diǎn)擊一下此按鈕,就將用過的材質(zhì)球有選擇的還原了。
2 相關(guān)知識
3DS MAX交互操作方式,首先它不能解決建立批處理工具,不能把3DS MAX從業(yè)人員從一些簡單重復(fù)的工作中解脫出來。例如不能建立一次可以渲染多個(gè)場景文件;不能模擬有上千個(gè)球體的星系;不能生成逼真的群鳥飛翔的動(dòng)畫;不可以使物體按某個(gè)特點(diǎn)的數(shù)學(xué)曲線運(yùn)動(dòng)等。其次不能定制自己的卷展欄界面、鼠標(biāo)工具、插件、工具按鈕等。所以現(xiàn)在很多3DS MAX從業(yè)人員開始研究MAX Script語言。
該語言非常適應(yīng)沒有多少編程基礎(chǔ)和學(xué)習(xí)語言經(jīng)驗(yàn)者,關(guān)鍵在于是否能很好的理解MAX Script里面每一個(gè)字符的使用方法和它的作用。
可以使用該語言添加新的特征或設(shè)置自定義的3DS MAX,這樣它被定制成符合你的要求的樣式。還可以用3DS MAX記錄用戶的動(dòng)作,這樣以后可以使用它們減少重復(fù)的動(dòng)作。還可以用MAX Script告訴3DS MAX你需要的場景的類型,讓3DS MAX提供合適的場景,或者告訴3DS MAX你所做的事,或著輸入你希望執(zhí)行的指令的時(shí)候告訴它希望發(fā)生什么事情。一句話,使用腳本語言就更為方便,目前在建筑、機(jī)械以及游戲設(shè)計(jì)的高端用戶都在使用腳本語言。
MAX Script的功能相當(dāng)強(qiáng)大:MAX Script是完全基于OpenGL開源以及VC核心制作出來的,而當(dāng)今世界上任何一款CG制作軟件也主要依賴這兩種語言編寫,也就是說如果MAX Script使用的好,我們完全有能力在3DS MAX里面集成Maya的所有功能。這不單是二次開發(fā)的樂趣,它更是一次CGer思維的革命。很多使用傳統(tǒng)制作方法難以完成的任務(wù),在使用了MAX Script后就會變的非常簡便、快捷!
3 通過實(shí)例來解決實(shí)際問題步驟
1) 首先打開3DS MAX9.0應(yīng)用軟件,在命令面板選擇工具按鈕■,再選擇“MAXScript”命令如圖1所示,并按“打開偵聽器”如圖2所示,在宏錄制器中如圖3所示,打勾并選擇,即打開了錄制max腳本動(dòng)作的功能。
2) 打開材質(zhì)編輯器,選擇一個(gè)空的材質(zhì)球,在水平命令欄中,按左邊的“獲取材質(zhì)”命令,并拾取“標(biāo)準(zhǔn)(standard)”材質(zhì),再將名稱改名為“sss”臨時(shí)材質(zhì)球名,如圖4所示,目的是為了獲取自動(dòng)錄制的腳本語句,如圖5所示中被紅圈圈住的兩行語句,然后將偵聽器窗口最小化,這為了后面?zhèn)溆谩?/p>
3) 創(chuàng)建一個(gè)腳本,并在實(shí)用工具中,添加定義一個(gè)UI條目事件 “清空材質(zhì)球” 。運(yùn)行腳本后,在實(shí)用工具Utility中就有對應(yīng)的UI條目出現(xiàn)即用戶界面,如圖6所示。
4) 新建腳本,在編輯器窗口中的編輯下選擇“新建卷展欄”,并在其打開的Visual MAXScript編輯器中新建一個(gè)內(nèi)嵌按鈕,然后將嵌入按鈕改名為“清空”。如圖7所示。在“事件處理程序”標(biāo)簽命令下選擇Pressed事件,并保存此文件,如圖8所示。
圖7 制作內(nèi)嵌按鈕
圖8 設(shè)置內(nèi)嵌按鈕的事件
5) 回到偵聽器新建的腳本窗口,完成pressed do括號中的語句。pressed do事件屬性表示當(dāng)按了此按鈕就有事件發(fā)生,如圖9所示。
6) 程序說明,如圖10所示:
*“qkcaq”是實(shí)用程序名(name),可以自已定義;
* 雙引號即字符串表示標(biāo)題(caption)即UI條目;
* (……)表示函數(shù)內(nèi)容;
* for a to bdo循環(huán)語句,a開始到b終止,都做一次事情。a 和b可以是變量或常量。本程序的意思是將6賦值給變量i,i數(shù)到24就終止做事,24就是24個(gè)球。
* do 表示被選中的對象去做一件事情;
* meditMaterials[i]= Standardmaterial()表示修改第i個(gè)材質(zhì)球獲取標(biāo)準(zhǔn)材質(zhì)的動(dòng)作;是剛才在偵聽器(listener)拷過來的腳本語句,稍作整理的動(dòng)作,這樣做主要是省時(shí)間,并代碼準(zhǔn)確。
* meditMaterials[i].name=i as string +“–Defanlt”給材質(zhì)球重新命名動(dòng)作,加上字符串“–Defanlt”,是為了把24個(gè)材質(zhì)球區(qū)分開來,as stringl將整數(shù)變量i轉(zhuǎn)換為字符串類型,因同一種類型才能進(jìn)行運(yùn)算。
7) 在MAXScript卷展欄中按“運(yùn)行腳本”命令,查找選擇剛才保存的ms文件并運(yùn)行,此時(shí)在“工具”下可找到剛添加的“清空材質(zhì)球”條目,如圖11所示,然后按一下“清空”按鈕,立刻可以看到從第6個(gè)材質(zhì)球到第24個(gè)材質(zhì)球全部重新定義了,如圖12所示。
8) 以后如果需要用此功能,運(yùn)行一下“清空材質(zhì)球”腳本文件,是件很輕松的事情。
4 結(jié)束語
以上是本人一些拙見,意為拋磚引玉,引起大家更深層次的思考和探究,同時(shí)也解決了一直困惑喜歡這項(xiàng)工作的專業(yè)人員的難點(diǎn)問題,并節(jié)約了大量的時(shí)間。本人的目標(biāo)是以共同實(shí)現(xiàn)對三維建摸、動(dòng)畫的精確控制,從而為我們找到一條全面提升3DS MAX專業(yè)水準(zhǔn)的捷徑。
參考文獻(xiàn):
[1] 黃心淵. 3DS MAX高級編程—使用腳本制作動(dòng)畫[M].北京:清華大學(xué)出版社,2004.