前言:本站為你精心整理了3ds ma中腳本語(yǔ)言范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個(gè)性化的參考范文,歡迎咨詢(xún)。
摘要:本文主要介紹了3dsmax中的腳本語(yǔ)言MAXScript的主要功能,并簡(jiǎn)單介紹了腳本語(yǔ)言的編制及其應(yīng)用技巧。
關(guān)鍵詞:腳本語(yǔ)言、MAXScript、函數(shù)表達(dá)式
所謂腳本語(yǔ)言,即在應(yīng)用程序中由用戶(hù)根據(jù)由應(yīng)用程序以供的命令集,自己編寫(xiě)的程序段,用來(lái)簡(jiǎn)化程序的操作過(guò)程或?qū)?yīng)用程序進(jìn)行擴(kuò)展。像許多應(yīng)用程序一樣,3DSMax也有自己專(zhuān)門(mén)設(shè)計(jì)的腳本語(yǔ)言MAXScript,它是像3DStudioMAX一樣面向?qū)ο蟮?,有許多對(duì)于MAX用戶(hù)界面中特征和結(jié)構(gòu),帶動(dòng)畫(huà)關(guān)鍵幀的動(dòng)畫(huà)模式,并通過(guò)層次改變場(chǎng)景對(duì)象對(duì)應(yīng)于MAX的對(duì)象層次。是可以調(diào)用大部分c++函數(shù)的,和MAYA的MEL語(yǔ)言也有很多的相通之處。對(duì)于三維軟件的高級(jí)用戶(hù)來(lái)說(shuō),掌握了較全面的技術(shù)后發(fā)現(xiàn)現(xiàn)有的軟件已無(wú)法全力表現(xiàn)出她們的思想,他們需要一種可以隨時(shí)擴(kuò)展軟件工作能力的工具,可以自己開(kāi)發(fā)程序外掛來(lái)幫助工作已經(jīng)是必需的要求了。MAXScript程序給用戶(hù)提供了更多的想象空間,也是高級(jí)用戶(hù)的必修課。
MAXScript是3dsmax中的插入腳本語(yǔ)言,它為用戶(hù)提供了以下功能:
·描述3DStudioMAX的全部用途,如造型、動(dòng)畫(huà)、材質(zhì)、渲染等;
·將腳本集成在用戶(hù)應(yīng)用面板卷展欄工作界面上,給腳本一個(gè)標(biāo)準(zhǔn)的MAX用戶(hù)接口;
·使用插入的文件的I/O,建立用戶(hù)輸入/輸出工具;
·寫(xiě)入可以訪(fǎng)問(wèn)全部場(chǎng)景狀態(tài)的過(guò)程控制器;
·建立批處理工具,例如批處理渲染腳本;
·通過(guò)OLEAutomation,與外部系統(tǒng)建立活動(dòng)接口。
表達(dá)式控制器和MAXScript的基本結(jié)構(gòu)和VB類(lèi)似,但由于3DSMax是圖形程序,所以在MAXScript中有許多繪制圖形的命令,這些命令類(lèi)似于AUTOCAD中的LISP文件命令。這樣的命令不需要編輯,可直接在程序中運(yùn)行,并可直接看到運(yùn)行結(jié)果。
在3dsmax的MAXScript這個(gè)菜單中有一個(gè)記錄宏(MacroRecorder),選中這一項(xiàng),在以后繪制圖形時(shí),每一步的操作都會(huì)自動(dòng)轉(zhuǎn)化成腳本語(yǔ)言,打開(kāi)同一菜單下的腳本記錄(MAXScriptListener),可以看到每一步操作的命令形式,通過(guò)這種方法可以初步了解MAXScript的基本格式,也可以通過(guò)復(fù)制命令簡(jiǎn)化編程步驟。下面以一個(gè)簡(jiǎn)單的實(shí)例加以說(shuō)明。
1、打開(kāi)記錄宏命令,打開(kāi)腳本記錄。
2、在任意窗口劃一直線(xiàn)和一個(gè)球體。
3、為球體制定位置控制器為路徑,選擇直線(xiàn)作為運(yùn)動(dòng)路徑。
4、打開(kāi)動(dòng)畫(huà)記錄按鈕,將時(shí)間調(diào)到100幀。
5、將球體在路徑中位置調(diào)到50(%AlongPath),關(guān)閉動(dòng)畫(huà)記錄按鈕。
下面是相應(yīng)的腳本語(yǔ)言:
1.linetransform:(matrix3[1,0,0][0,0,1][0,-1,0][4.42805,-1.45167e-007,3.32103])isSelected:on
Sphereradius:13.0567smooth:onsegs:32chop:0slice:offsliceFrom:0sliceTo:0transform:(matrix3
[1,0,0][0,0,1][0,-1,0][86.7159,-3.25819e-006,74.5387])isSelected:on
2.select$Sphere01
$.pos.controller=path()
$.pos.controller.path=$Line01
3.maxtoolanimmode
setanimateon
sliderTime=100f
select$Sphere01
4.$.pos.controller.percent=50
maxtoolanimmode
setanimateoff
現(xiàn)欲使球體前50幀運(yùn)動(dòng)1/4路程,后50幀運(yùn)動(dòng)3/4路程。則根據(jù)上面記錄編寫(xiě)程序如下(其中繪制過(guò)程省略):
maxtoolanimmode
setanimateon’開(kāi)啟動(dòng)畫(huà)記錄
fort=1to100by1doattimet’設(shè)置動(dòng)畫(huà)范圍從1到100
(
$Sphere01.pos.controller=path()’指定路徑控制器
$Sphere01.pos.controller.path=$line01’選擇路徑
ift<50then’當(dāng)在50幀以?xún)?nèi)時(shí)
(
$Sphere01.pos.controller.percent=t/2’路程為0到25%
)
ift>=50then’當(dāng)在50幀以后時(shí)
(
$Sphere01.pos.controller.percent=t*75/50-50’路程為25%到100%
)
)
maxtoolanimmode
setanimateoff’關(guān)閉動(dòng)畫(huà)記錄
這樣就完成了一個(gè)簡(jiǎn)單的腳本語(yǔ)言的編制??梢?jiàn)通過(guò)這種方法編制腳本語(yǔ)言是一種簡(jiǎn)便快捷的好方法。另外腳本語(yǔ)言中還有很多函數(shù),可通過(guò)相關(guān)資料查詢(xún)其用法,這里就不再贅述了。
下面講一點(diǎn)MAXScript在應(yīng)用方面的技巧:
1、用MAXScript控制布爾運(yùn)算
先生成一子彈狀物體起名bullet,再生成一與其等直徑圓柱和一個(gè)立方體,調(diào)整子彈頭部指向x軸負(fù)向,其軸心在子彈x軸最小值處,立方體和圓柱體軸心在x最大值處,對(duì)齊立方體和圓柱體軸心,(注意在使用MAXScript時(shí)軸心的位置非常重要),關(guān)聯(lián)復(fù)制立方體和圓柱體,復(fù)制后的物體分別起名為box、bar(圓柱體),將復(fù)制后的物體移開(kāi)便于觀(guān)察,對(duì)原物體進(jìn)行布爾運(yùn)算,這是通過(guò)對(duì)復(fù)制后的物體進(jìn)行控制即可控制布爾物體。下面的程序通過(guò)控制圓柱體的高度來(lái)控制子彈在立方體上打孔的深度。(在此為簡(jiǎn)化程序未考慮加減速問(wèn)題,有興趣的讀者可加以補(bǔ)充)
animateon
fort=1to100by1doattimet
(
$bullet.pos.x=3000-10*t’子彈勻速向x軸負(fù)向運(yùn)動(dòng)
if$bullet.pos.x-$box.pos.x>=0then
(
$bar.height=0’當(dāng)子彈未接觸到立方體時(shí)洞深為0
)
if$bullet.pos.x-$box.pos.x<0then
(
$bar.height=$box.pos.x-$bullet.pos.x’當(dāng)子彈未接觸到立方體時(shí)洞深為子彈頭距立方體右邊的距離
if$bar.height>250then’圓柱體高度即洞深不超過(guò)立方體厚度
(
$bar.height=250
)
)
)
animateoff
2、MAXScript對(duì)燈光的控制
通過(guò)對(duì)燈光的三種顏色分別控制可以模仿霓虹燈的效果,當(dāng)然通過(guò)開(kāi)關(guān)控制器就可以較簡(jiǎn)單的控制燈光,但那樣的控制方式比較單調(diào),無(wú)法形成霓虹變幻莫測(cè)的效果,用MAXScript控制燈光產(chǎn)生的效果幾乎可以亂真,這里只提供一種思考不做詳細(xì)介紹,希望廣大愛(ài)好者們開(kāi)動(dòng)腦筋,發(fā)揮想象創(chuàng)造出完美的場(chǎng)景。
3、MAXScript對(duì)模型的變形控制
物體的變形動(dòng)畫(huà)是動(dòng)畫(huà)的一種重要的形式,用MAXScript控制模型Modify面板中的各種變形修改命令,可以產(chǎn)生多種真實(shí)的效果,如飛翔、搖擺、扇動(dòng)、磨光等。
利用腳本可以幫助大家更好的控制場(chǎng)景元素,生成意想不到的效果。到了這里我想大家一定對(duì)MAXScript有了簡(jiǎn)單的了解,但作為一種腳本語(yǔ)言它還有很大的潛力等著我們?nèi)ラ_(kāi)發(fā),希望MAXScript能成為你的一種超強(qiáng)的輔助工具,使你在三維領(lǐng)域展翅翱翔。