在 2007 年 (Maya 8.5版,Autodesk(或Alias) 團隊開始把 Python 引進 Maya 裡當一個工具開發語言之一(其他兩個就是 MEL & C++)。相對於其他那兩位,Python 是一個易懂,方便,功能有強大的一個語言。MEL 雖然是 Maya 的core script language, 可是因為功能上限制太多了,也沒有額外的 library 支援,所以可以開發的工具非常有限。C++ 又是一個 hardcore 的程式語言 ,需要經過編譯過才可以用,執行檔又無法跨作業系統使用,所以開發起來非常不便。Python 就剛好可以站在這兩位的中間,而且可以取代很多 Mel & C++ 的必要性,所以也難怪近年來 Python 的程式 (尤其是 script 類的) 越來越普遍了。
在這我就大概分享一下 Python script 的第一門課。也就是如何安裝以及使用它 。其實我的 blog 第一篇文章就有稍微解釋如何安裝 python 程式,只是又跟 MEL & C++ 混雜在一起,所以在這就特別針對 python 在分享一次。
呼叫一個python 程式時,Maya Python 需要先知道這程式的位子在哪。不像 Mel script 可以直接指定絕對路徑 (source "C:/mymaya/scripts/myscript.mel") ,Python 指令並沒有這一種 source 絕對路徑的方式。所以我們必須告知 Python 編譯器要在哪找這程式。有幾種方法可以用:
- 大家可能最熟悉的方式就是把 Python script 放在 maya 預設的 script 目錄裡,例如 :
- C:\Users\rainmaker\Documents\maya\2013\scripts
- /home/rainmaker/maya/2011-x64/scripts
放在這的好處就是方便,但缺點就是不好做分類或管控。 - 在 Maya.env 檔案裡列出你想要增加的目錄,例如:
- PYTHONPATH = C:\mymaya\scripts\python; D:\others\maya_scripts\;
- 直接在 script editor 裡指定目錄的路徑。例如 :
(Maya.env 的檔案位子請參考此文章)
把 script 目錄增加完過後,我們就可以開始在 script editor 裡呼在此目錄裡的叫 python script 了。
一般來說,呼叫 python script 的 方法就是 import [檔案名字 (不包含.py 或 .pyc)] ,然後在執行 script 裡的某一個 function。 通常 script 作者都會告訴你要執行哪一個 function 來開工具視窗或執行工具的某個功能。在呼叫 function 之前也可以加一行 reload([檔案名字]) 。加這一行的目的是為了強迫 python 編譯器重新讀取該檔案 (如果沒重開Maya 然後檔案內容有更新就需要執行這一行)。
以下我有提供一個簡單的 Maya python script 來方便做測試. 呼叫方法就是:
callMe.pyt
(把副檔名從 .pyt 改為 .py)
成功執行的話,在Maya script editor 就會顯示 : I am here
失敗的話大概就會出現紅字吧 XD
一般來說,呼叫 python script 的 方法就是 import [檔案名字 (不包含.py 或 .pyc)] ,然後在執行 script 裡的某一個 function。 通常 script 作者都會告訴你要執行哪一個 function 來開工具視窗或執行工具的某個功能。在呼叫 function 之前也可以加一行 reload([檔案名字]) 。加這一行的目的是為了強迫 python 編譯器重新讀取該檔案 (如果沒重開Maya 然後檔案內容有更新就需要執行這一行)。
以下我有提供一個簡單的 Maya python script 來方便做測試. 呼叫方法就是:
import callMe
callMe.go()
callMe.pyt
(把副檔名從 .pyt 改為 .py)
成功執行的話,在Maya script editor 就會顯示 : I am here
失敗的話大概就會出現紅字吧 XD
感謝葉教授3年前的分享....XD
回覆刪除