本章包括以下內容: 1、了解腳本語言;2、設立腳本語言環境。
1、了解腳本語言
編寫腳本語言程序是產生maya埋入式語言(mel)腳本程序的過程。一個腳本語言程序是一個mel指令或者mel序列的集。通過產生腳本語言程序,你可以利用maya的用戶界面使執行任務自動化,可以獲得"under the hood"訪問maya所有的各個部分,還可以對界面進行擴展和自定義。
2、設立腳本語言環境
為了設立腳本語言環境,需要考慮以下內容:
⑴、腳本語言文件
⑵、建立腳本語言路徑
⑶、在腳本語言程序中使用程序
⑴、腳本語言文件
一個mel腳本文件(*.mel)是一個包含mel指令、mel程序或者二者都有的文件。典型地,是用一個mel腳本文件執行一系列的指令。如,可以寫一個腳本程序以產生一個墻形狀的物體,然后再給它施加一個磚的紋理。
可以用一個文字編輯器寫一個mel腳本文件然后把它保存到磁盤的一個文件中。mel腳本文件使用文件擴展名 .mel。可以把腳本文件用于不同的場景中和不同的工作期間中。當執行一個mel腳本文件時,它并不變成為場景的一個部分,因此如果你要想重復它的作用時,應該每次都執行該腳本程序。
⑵、建立腳本文件路徑
在缺省狀態下,maya在你的scripts目錄中查找mel腳本文件。
在缺省狀態下,這個目錄定義在你的login名下。例子如下:
(irix) ~elvis/maya/scripts
(windows nt) c:/aw/elvis/maya/scripts
使你的腳本文件可以運行的最簡單的方法是把它們放在上述路徑里。
注意你的scripts目錄缺省地包含了一些腳本文件。它們以menu_作為名字的開始,用于maya內部。
你可以給maya用于查找腳本文件的缺省路徑增加目錄。
為腳本文件路徑增加一個目錄(在irix中):
1--在一個irix shell中,設立環境變量maya_script_path給附加目錄的路徑。
2--從這個shell啟動maya。
為腳本文件路徑增加一個目錄(在windows nt中):
1--使用windows nt explorer或者my computer,顯示maya nt bin目錄的內容。
缺省時是c:/aw/mayax.x/bin。
2--雙擊mayaenvironment.exe啟動該程序。
這樣顯示出了你的home、project、plug-in、script和bitmap目錄的路徑。該路徑包括在安裝期間產生的缺省路徑和你后來定義的任何路徑。不能改變缺省路徑。
對于plug-in、script和bitmap路徑,用分號(;)分離路徑,這些項可以定位。
在這個窗口中禁止編輯路徑。但你可以用以下的步驟代替。
重要事項:
如果你的計算機上安裝了maya nt的多個版本,你會看到一個版本的路徑。版本號是在窗口的標題欄里。為了看另外的版本的路徑,點擊previous或next。為了保存一個版本的路徑,點擊save。如果你的計算機只裝了一個版本,這些鍵會變暗。
3--點擊maya script path框旁邊的change鍵。
注意,如果你改變了home路徑,這就按照新的home路徑改變了project、plug-in、 script和bitmap路徑。會詢問你是否想這樣做。點擊cancel可以放棄這個改變。
4--在change setting窗口中輸入(或者編輯)一個路徑。
一般地,可以增加缺省路徑,但是不能重置它們。當你定義路徑時使用左斜線或者右斜線。
為了定義一個遠程路徑,可以將一個隱含目錄與你的計算機上的一個驅動器字符對應起來。細節請看你的windows nt文件。
如果需要輸入多個路徑,使用分號把這些路徑分離開。
如果要使用一個文件瀏覽器從別的文件系統查找和選擇一個路徑,點擊browse。
為了返回到你原來的缺省路徑中,點擊restore default。這對于當你定義了一個不正確的路徑或者想刪除廢棄的路徑是非常有用的。
5--點擊ok。
例子(irix)
為了給scripts路徑增加~/maya/scripts/clipfx and remote/x/scripts目錄,在啟動maya之前給irix增加以下目錄:
setenv maya_script_path ~/maya/scripts/clipfx:/remote/x/scripts
隨后maya將能夠在~/maya/scripts, ~/maya/scripts/clipfx, 或者/remote/x/scripts中找到你的腳本文件。
⑶、在腳本文件中使用程序
你可以在mel腳本文件中使用全局和局部程序。全局程序在它們的文件外邊是可見的;局部程序僅在它們的文件內部是可見的。
如果maya遇到一個沒有定義的指令,它會為找到一個與該指令有相同基名的mel腳本文件搜索腳本路徑。當它找到該文件之后,它在該文件中會聲明所有的全局mel程序。任何具有與該指令有相同基名的全局程序會被執行。
如,假定你在運行一個saywhat指令。因為沒有這樣的一個saywhat指令,maya會在它的所有的script路徑中對一個叫做saywhat或者saywhat.mel的文件進行搜索。如果在一個script目錄中,它找到了有以下內容的saywhat.mel腳本文件:
proc red5() {print("red5 standing by.../n");}
global proc saywhat() {print("saywhat online/n");}
global proc gogo() {print("gogo online/n");}
然后全局程序saywhat和gogo被聲明,并執行saywhat程序。結果是:
saywhat online
因為gogo全局程序已經聲明過了;現在就可以在指令行中或者在腳本語言編輯器中輸入gogo運行它。
使用maya內部腳本文件
maya有一些用于它的用戶界面和其他運算細節的mel腳本文件。你可以在alias|wavefront中查找這些腳本文件,學習專業腳本程序作者的這些技術。這些腳本文件是在由缺省定義的以下述目錄開始的目錄中:
(irix) /usr/aw/mayax.x/scripts
(windows nt) c:/aw/
[1] [2] 下一頁
新聞熱點
疑難解答