使用 Qt Designer 來設計 Maya UI
Steven Roselle 於 Area 上頭,分享了 GDC 2010 上頭會給的 talk: Maya 2011 Highlight - QT user interface overview,blog 上分享了一段影片,看完的感想是:真是不賴吶,不管怎麼說 pymel + pyqt (骨子裏是 python + qt)都是王道呀~(雖然說,demo video 裏頭使用的是 MEL,但我想這不相違背XD)
PS. Qt Designer 裏頭加了 Dynamic Property 可以如 video 裏頭示範的用法,很是有趣。
PS2. video 最後的 Layout Tool,讓我想到公司曾經出現過的 Avatar System。
- Drake's blog
- 2 則回應
- 1360 reads
偷窺 Maya 2011
Jefri 昨晚送來了幾則非常有趣的消息:Maya 2011 的改版。
- 採用 Qt 整個改寫 Maya GUI,這個謠言終於成真了。我還記得去年(2009)時,Autodesk 原廠有一組人來太極,與我們的 RD/TD/Effects 就 Maya 的「改進事項」做 survey, 我們依我們每個人注意到的提出一些項目來,最後再從中理出幾點比較重要的來。那時我很直接地問了「聽說要用 Qt?」,得到「這還沒證實」的答覆 ^^ 使用 Qt 代表了很多意義:
- 多國語言化變得非常自然,中文化也就不是問題了。更直接的影響是,開發的 scripts, plugins 都可以有多國語言支援。
- 跨平台的 Maya GUI 變得比較一致了,因為 Qt 並不是採用 native GUI framework 的作法,使得每個平台下的 GUI 都可以長得一樣,行為也一樣!!! 終於,我們擺脫了該死的 Motif!!
- 更好用的 file browser 與 tab panels.
- 更自然的 docking windows 與 floating windows.
- pymel 將成為 Maya 2011 的 python modules 之一! 我想 Chad 的努力是最大的功臣,另一方面,Autodesk Maya Development 團隊沒有人有空撥力氣在這上頭也是原因之一。
- Multi-Camera 變強了。因為 stereoscopic filming 與 autostereoscopy 的大量出現,加上 animation studios 一再強調“一組 2-cam rigging 是不夠的“(PS. Quantum Quest 在幾個 shot 裏頭,最多用了四組,就是八隻 camera),於是 Multi-Camera 一次提供這些要求。
- Render View 是另一個值得注意的地方。直接提供 2D Pan/Zoom, HDR viewing, color profile (ex, gamma2.2/linear for output/input data), 搭配上 GUI 是用 Qt 寫的,所以即便是 Render dialog 也可以直接鑲嵌至 main window 裏頭了。
參考資料:
- Drake's blog
- 留言回應
- 2410 reads
Autodesk Labs 計畫:Twitch -- 遠端執行你的 AutoCAD, Maya 吧!
先看看下頭的這一段 YouTube 影片,透過一個 Autodesk 正在試驗的 Project Twitch,你就可以使用 Autodesk 的機器,執行起 AutoCAD, Revit, Inventor 或是 Maya 2010,最重要的是,不用安裝,不用購買,不需要有好的機器,當然,就更不需要破解了。你只需要有夠 ok 的網路頻寬。
PS. 一開始得知這個消息,還以為 Autodesk 運用了 HTML5, WebGL 之類的技術,原來不是 :p 可惜是 Windows 平台限定,無法測試。
- Drake's blog
- 留言回應
- 892 reads
改造 Linux 版 Maya 的 File Browser
因為工作的關係,我們一直以來都是使用 Linux 版的 Maya,導致曾經一度有錯覺,覺得 Linux 的東西就是比較好,即便是商業軟體 Maya,也是 Linux 版的比其它平台的版本來得優。事後證明這是種一相情願的想法,MS Windows 雖然在安全性與 GUI 的設計上進展緩慢,但它對 programmer 非常的友善,加上商業化的行為比較健全,所以多的是軟體公司或個人程式設計師在上頭寫了不少好的軟體,…說了這麼多,只是想說,MS Windows 版的 Maya 在 GUI 方面,的確有不錯的地方。
我曾針對 Linux 版 Maya 的 GUI 寫了兩篇:

Karl Erlandsen 是我在工作過程中,要去處理一個問題而不小心看到的。一般來說,工作很忙錄時,我會刻意不去理會網頁,也不會開啟 MSN 之類的東西,但這一篇實在很有意思:Improving the Maya Linux File Browser。
- Drake's blog
- 留言回應
- 閱讀全文
- 3652 reads
Maya 的 Splash Window
有天(2007/10)突然心血來潮,想說認識了 7 年有餘的 Maya(從大五寫遊戲開始,至進入太極影音工作),還真不曉得它的歷史,要了解一個軟體的歷史得花不少時間,但如果只是抓抓圖的話,可就比較快了。那就來收集一下 Maya 歷年版本的 Splash Window 好了。不過目前還缺不少版本中… 如果有人有其它版本的 splash window,還請通知一下 :)
- Drake's blog
- 2 則回應
- 閱讀全文
- 5560 reads
拿 Vim 來替代 Maya Script Editor
Maya 原生的 Script Editor 不太好用,因為:
- copy & past 不好用:這是指在 Linux 下,使用 Motif API 的 Maya 而言,其它平台的 Maya 沒有這個問題。
- 沒有 syntax highlighting:雖然說使用 script editor 時大都是試驗性或很簡短的程式碼,但天曉得,syntax highlighting 肯定能讓你的心情好一些,誰說「讓程式師計師的心情好不重要」的!!
- 不支援 regexp:just my humble opinion
- 不方便調整字型大小;just my humble opinion
- 沒有 smart indent;just my humble opinion but very important to Python
但是它也有幾點好處:
- 與 Maya output 在同一個視窗:方便 debug,在任何有疑問的地方 print 一下就行即時的 debug。
- 可以 run by selection:對於寫一些實驗性的 coding snippets 非常好用,至於在寫比較有規模的程式或模組時,直接透過 source (MEL) 與 import…reload (Python) 來做即可。
- 可以及時地查 mel 或 python 的 help:只有非常有經驗,寫過無數程式碼的工程師,才不需要查閱 API document,甚至可以誇張一點地說,程式設計師的工作不過就是查閱技術文件,然後把腦子裏的思緒(不管清不清楚,有沒有組織)以剛剛查到的語法寫出來,然後逐步(可能是逐行、逐函式、逐模組…)測試,最後交差,以接下來的維設與新增減功能。也因此,可否方便查閱文件,成了寫程式能不能很順暢的重要指標。不過 python 這一塊可以透過 mayaipy (maya + ipython2.4 + pymel) 來做到就是了。
- Maya 原生的:不容易當掉,當掉的話,大概都是 Maya 其它的部分爛了。
Vim as Maya's Script Editor 的目的是:
使用 vim(末來可以擴充至其它 editor)來編寫 maya script (目前先以 python 為主),以補足 maya script editor 的不足,同時希望可以盡可能地做到一些它原有的好處。重點是,
要很容易做到,不需要用 c/c++ 改寫 vim 什麼之類的就做到,這樣比較方便 deployment 與 maintain。
想法
- 透過 commandPort,先由 maya 開啟一個 tcp/ip commandPort (port 6000),用來與 vim 端溝通。
- 在 Maya 端,定義好一個叫 pythonCall 的 python function,這個 function 是用來被 vim 呼叫用的,目的是處理來自 vim 的 python script(因為 Maya 預設的 commandPort 只適合處理 MEL)。
- vim 這一邊,透過如下的設定檔來把程式碼先暫存到 /tmp/pythonToMaya.py,然後透過 socket (commandPort)呼叫 Maya 的 python("pythonCall()"); 來執行。
- Drake's blog
- 8 則回應
- 閱讀全文
- 3090 reads
Maya Scripting: MEL V.S. Python
Maya scripting 現在有了 MEL 與 Python 可供選擇,對於大部分的 Maya 使用者來說,這是件微不足道的事,但對於天天使用與撰寫 Maya scripting 的人來說(ex, TD?!)(或保守一點的說,很有機會被要求寫點程式的人),這重要極了。
個人淺見,Python 與之後由 Luma Pictures 的 Chad Dombrova 所推出的 pymel (0.7.8),是 Autodesk 買下 Maya 後,在 8.5 所做的 features 裏頭,最最重要的一點了。好吧,我是以 RD/TD/SD 人員的角度來看事的,請先暫時原諒我這有點狹隘的說詞,然後接著繼續看文章。
Maya 8.5 發表以前,在 Maya 上頭工作的技術人員,除了和大家一樣要去了解與使用 Maya 以外(說真的,Maya 的學習曲線有點長,進入門檻有點兒高,以致於很多資訊系所的電腦圖學實驗室,都不容易利用這個工具來做點什麼,實在很可惜),可能還需要去了解一下 Maya ascii file format, Maya nodes, Hierarchy in a Maya scene file, Mel, Maya C++ API, 技術名詞, …好不容易似懂非懂一些東西後,就是寫些程式來試試看。
舉些個例子。如果你想寫個可以自動幫你架好骨架的 joints 與一些 IK/FK 的設定的東西,你可以利用 Mel 來做到;如果你希望有一個特別的材質球,它會在你的模型有互相穿刺時,用紅色這種非常鮮豔且帶警告意味的顏色來提醒人,你可以用 C++ API 寫個 plugin 來提供一個特製化的 material node;如果你想用透過一個放在 Maya shelf 上頭的按鈕,讓 lighter 可以很快的下算圖指令的話,那你可以使用 Mel 外加 RMS/MtoR 提供的指令來做到;如果你想利用 locator 來實作 instance(一些 Maya instance 無法做到的情況下),同時要讓這個 locator 秀出原 reference model 的各種動態的話,你得用 Maya API 外加對於 Maya node 的了解(當然,你也可以使用 billboard(sprite) 做到);…
事情就是這麼複雜,以致於要訓練出一位可以依靠的 3D/CG TD,實在很花時間。如果很不幸地又沒辦法好好留住他,或是他個人不夠積極與拼命學習的話,可能浪費了兩三年,然後拍拍屁股走人,什麼都沒有留下來!!
這邊我們也許應該換個觀點,先來想想:「為什麼 Maya 把事情搞得這麼麻煩?」
- Drake's blog
- 2 則回應
- 閱讀全文
- 3325 reads
把 MSN 放進 Maya 裏頭?!
Chris Chia 在他的 blog 發表了一篇 Maya ChatWin v0.6.1 (100% Built on Python),完成了一件非常有趣的事:在 Autodesk Maya 裏頭實作了一個 MSN 外加一個遠端的 script editor 出來。
這個 Maya ChatWin 運作起來就像 MSN,只是聯絡人清單是來自於同網段(內網)的電腦,目的…大概是讓你工作到一半有個小問題,想找人問一下時使用的吧,我想基本立意應該是這樣。它另外比較有趣的功能是,可以直接遠端傳送 mel 或 python script,所以可以做到遠端執行一些 fixing scripts 之類的。這功能目前是單向的,不過也夠應付 supporting TD 使用。
我個人覺得,MSN(或更正確一點的說法是 instant messenger)這功能要很實用,得看大家的使用情況,畢竟當你已經有一個更好用的 IM 時(ex, MSN, Pidgin, Adium, ...),你並不會覺得有需要再有一個 IM。不過當這個 IM 與 remote mel/python scripting 結合時,就顯得有價值一些了。
對於 IM,太極是試著使用自行架設一個 XMPP server(by ejabberd),client 預設是使用 Pidgin,使用率其實不高,原因之一是我們還不是很了解怎麼好好善用這個 IM,有時亂用反而容易影響到其它人,另一方面是,有些情況還不如直接走過去當面問或聊來得好。RD/TD 對於 IM 的使用率高一些,尤其在於一些 scripting writing 或 tool 使用方法之類的,這些問題的答案常常是一兩行 commands,就很適合。
Maya 預設的 commandPort 目前只支援 mel script,所以這個 Maya ChatWin 可以支援 python script 是個非常吸引人的工作,就我所知,有不少 studio 的 TD 都非常渴望 Maya 有這個功能,相信不久的未來 Autodesk 會加入才是。
PS. Koichi Tamura 有寫了一個 Python CommandPort 的玩意兒,而且是 open source 的,有興趣的人可以去玩玩。
PS II. ejabberd 與 pidgin 的網址,最後頭都是 im 也,實在很有趣 ^^
- Drake's blog
- 2 則回應
- 1619 reads










