maya

Feb
21

Autodesk Labs 計畫:Twitch -- 遠端執行你的 AutoCAD, Maya 吧!

先看看下頭的這一段 YouTube 影片,透過一個 Autodesk 正在試驗的 Project Twitch,你就可以使用 Autodesk 的機器,執行起 AutoCAD, Revit, Inventor 或是 Maya 2010,最重要的是,不用安裝,不用購買,不需要有好的機器,當然,就更不需要破解了。你只需要有夠 ok 的網路頻寬。

PS. 一開始得知這個消息,還以為 Autodesk 運用了 HTML5, WebGL 之類的技術,原來不是 :p 可惜是 Windows 平台限定,無法測試。

Mar
12

改造 Linux 版 Maya 的 File Browser

Screenshot_maya_zenity VS. Screenshot_maya_default

因為工作的關係,我們一直以來都是使用 Linux 版的 Maya,導致曾經一度有錯覺,覺得 Linux 的東西就是比較好,即便是商業軟體 Maya,也是 Linux 版的比其它平台的版本來得優。事後證明這是種一相情願的想法,MS Windows 雖然在安全性與 GUI 的設計上進展緩慢,但它對 programmer 非常的友善,加上商業化的行為比較健全,所以多的是軟體公司或個人程式設計師在上頭寫了不少好的軟體,…說了這麼多,只是想說,MS Windows 版的 Maya 在 GUI 方面,的確有不錯的地方。

我曾針對 Linux 版 Maya 的 GUI 寫了兩篇:

maya8.5_04Karl Erlandsen 是我在工作過程中,要去處理一個問題而不小心看到的。一般來說,工作很忙錄時,我會刻意不去理會網頁,也不會開啟 MSN 之類的東西,但這一篇實在很有意思:Improving the Maya Linux File Browser

Feb
22

Maya 的 Splash Window

Maya Splash Window

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

Feb
13

拿 Vim 來替代 Maya Script Editor

Vim As a Maya Script Editor Vim As a 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()"); 來執行。
Feb
8

Maya Scripting: MEL V.S. Python

day fourty: the endless fight by petite corneille @ flickr

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 把事情搞得這麼麻煩?」

Feb
5

把 MSN 放進 Maya 裏頭?!

Maya ChatWin by Chris Chia

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 結合時,就顯得有價值一些了。

digimax_im_list對於 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 也,實在很有趣 ^^

Jan
29

Linux 版的 Maya:都是 Open Motif 害的!!!

太極影音的 3D 動畫長片部門(Feature Animation Department,名片上好像是這麼寫的),九成的機器是執行 Linux,週間的工作除了逛網頁、聽音樂、開 gtalk 打屁聊天以外,就是開著 Maya 幹正事了。我在猜,公司裏大部分的人,接觸 Maya 時,都是在 Windows 平台上的,於是乎,我們自然遇到了很多Linux 版 Maya 不適應症的案例。有些還有得救,有些就無藥可醫了。這一篇就是要指出那些我們覺得沒救了(或只是找不到解藥)的…一篇隨意聊聊的文章。

Maya 是跨平台的軟體,以前可以在 IRIX, Windows, LinuxMac OS 上執行,而最早的版本,則是出生在 IRIX(SGI 上的一種作業系統)這個平台上的,後來才 port 到其它平台。那時 Maya 的圖形界面部分(GUI),是使用一套叫 Open Motif 的來處理。後來 IRIX 平台的 Maya 不出了,於是只剩下三個平台,其中 Mac 版的,常常是三個版本裏頭比較遜的,或是功能比較晚補齊的。這也許是因為玩 Mac 的人,只愛搞平面,不愛搞 3D 的? Windows 的話,因為全世界的軟體業,幾乎被 Microsoft 給侵略了,Windows 自然是大宗。但動畫公司因為各種原因(原因也可能是不詳),所以都是以 Linux 為工作平台。所以 Linux 版的 Maya 使用者,不見得比 Windows 版的來得少。

maya8.5_01

取自 Maya 8.5sp1(Linux 版的)的一張 screenshot,看起來挺正常的,似乎沒什麼問題。

Nov
21

給 Maya 換個漂亮(好用?)一點的 GUI

A suggested screen-layout for material tuning and rendering by Thomas Mann

看過這樣的 Maya 嗎? 沒有的話,那你一定要去看一看這一篇文章

Syndicate content