如何讓 Maya 裏的所有 message 都丟到 console 外頭?

前天 Timothy 和我聊到一個非常有趣的事。 他因為工作需要,常常要批次(batch)處理一大堆的 Maya scene files,透過一些他自行寫的 scripts 來執行一些例行性的工作。然後他需要把 Maya 產生的任何 message 都以某種型式丟出來,方便他 debug 或是分析。我們兩個人在想,有哪些方法可以做到?(從這點可以看出來,Timothy 是一位非常稱職的 RD/TD,會汲汲於想一些方法來做 mass production,而不是手動一個一個處理。因為即使你手動做得再快,只要量一大,還是有一定的速度上限~) 我們最後釐清了需求: Maya 會由 terminal/console 下執行,所有的 message 要能正常輸出,而不是只留在 Maya Script Editor 裏頭。 message 包括:Maya 本身產生的;Mel 的 print;Python 的 print。 解法: 要讓 Python 的 print 得以輸出到 terminal,只要把 sys.stdout 由原來的 Maya Output object 換成 sys.stdout 即可。 要讓 Mel 的 print 與 Maya 原生的 message 輸出到 terminal 的話,需要利用到 Maya API 裏頭 CommandMessage 所提供的 CommandOutputCallback。向 Maya 註冊一個 callback 後,每當有任何一個 command 的 output 時,這個 callback 就會被呼叫,然後我們可以來決定怎麼處理這個 output message。 For Python’s print: ...

February 24, 2009 · 2 分鐘 · Drake Guan

Maya 的 Splash Window

有天(2007/10)突然心血來潮,想說認識了 7 年有餘的 Maya(從大五寫遊戲開始,至進入太極影音工作),還真不曉得它的歷史,要了解一個軟體的歷史得花不少時間,但如果只是抓抓圖的話,可就比較快了。那就來收集一下 Maya 歷年版本的 Splash Window 好了。不過目前還缺不少版本中…… 如果有人有其它版本的 splash window,還請通知一下 :) ...

February 22, 2009 · 3 分鐘 · Drake Guan

拿 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 但是它也有幾點好處: ...

February 13, 2009 · 3 分鐘 · Drake Guan

Maya Scripting - MEL V.S. Python

Maya scripting 現在有了 MEL 與 Python 可供選擇,對於大部分的 Maya 使用者來說,這是件微不足道的事,但對於天天使用與撰寫 Maya scripting 的人來說(ex, TD?!)(或保守一點的說,很有機會被要求寫點程式的人),這重要極了。 ...

February 8, 2009 · 7 分鐘 · Drake Guan

把 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 使用。 ...

February 5, 2009 · 2 分鐘 · Drake Guan

pymel 讓 optionVar 用起來看起來,更像 dictionary

Maya 裏頭有個非常 high level 的 mel function: optionVar,有別於其它的 functions 的簡單與立即反應,它的目的在提供一個跟 Maya session 的設定檔的存取。換個說法,你可以在一次執行 Maya 的時候,存一個自訂的變數 IamSoHandsome,然後在下一次執行時取出來用。所以你可以把它想成是 Windows 上頭的 registry、Unix-like 下的 .ooxx 個人設定檔、或是會永續存在下去的 environment variables。 ...

February 4, 2009 · 1 分鐘 · Drake Guan

Maya UI 裏的 Callback

GUI 是個非常偉大的發明,它讓電腦就這麼快速地滲透進家家戶戶與各大小商辦或公家機關,因為我們有 Mac OS、Windows、X Window System,再加上現下當紅的掌上型界面(iPhone、NDSL、PDS、Android)與從 web browser 裏出生的 web interface,世界就此進入資訊高科技時代,人人都會使用這些電腦設備,因為它們都提供了一套容易使用的 GUI。 ...

February 4, 2009 · 3 分鐘 · Drake Guan

逆風時代,希望啟航~宮崎駿的動畫世界

天下雜誌 414 期,特別在崖上的波妞上映前,專訪了日本動畫大師–宮崎駿–逆風時代,希望啟航~宮崎駿的動畫世界 。 我不確定我看到的,是不是完整的採訪,裏頭就宮老與他的吉卜力工作室的工作環境做了點介紹,有機會看到一些真正活著,在那一幕幕動畫作品後的原畫師與動畫師們,也可以看到宮老身穿圍兜兜到處晃來晃去的樣子,偶爾還可以聽到他們說一些輕鬆的生活或工作趣事。更棒的是,還可以看到傳說中的吉卜力美術館 ,裏頭多的是小朋友與爸爸媽媽到處亂串~ ...

February 1, 2009 · 1 分鐘 · Drake Guan