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,有時亂用反而容易影響到其它人,另一方面是,有些情況還不如直接走過去當面問或聊來得好。RD/TD 對於 IM 的使用率高一些,尤其在於一些 scripting writing 或 tool 使用方法之類的,這些問題的答案常常是一兩行 commands,就很適合。
Maya 預設的 commandPort 目前只支援 mel script,所以這個 Maya ChatWin 可以支援 python script 是個非常吸引人的工作,就我所知,有不少 studio 的 TD 都非常渴望 Maya 有這個功能,相信不久的未來 Autodesk 會加入才是。
Maya 裏頭有個非常 high level 的 mel function: optionVar,有別於其它的 functions 的簡單與立即反應,它的目的在提供一個跟 Maya session 的設定檔的存取。換個說法,你可以在一次執行 Maya 的時候,存一個自訂的變數 IamSoHandsome,然後在下一次執行時取出來用。所以你可以把它想成是 Windows 上頭的 registry、Unix-like 下的 .ooxx 個人設定檔、或是會永續存在下去的 environment variables。
optionVar 另一個優秀的地方在於,它允許你隨時更改存下來的變數的 data type。所以你可以今天把 IamSoHandsome 宣告成一個只有 0 與 1 的 boolean,然後明天改成 “yes” 與 “no” 的 string,只要直接指定給它一個新的 data type 就做到了。如下:
optionVar -iv "IamSoHandsome" 1; ... ... optionVar -sv "IamSoHandsome" "yes"; ... ... optionVar -sv:
creates a new variable named using the first string with value given by the second string.
GUI 是個非常偉大的發明,它讓電腦就這麼快速地滲透進家家戶戶與各大小商辦或公家機關,因為我們有 Mac OS、Windows、X Window System,再加上現下當紅的掌上型界面(iPhone、NDSL、PDS、Android)與從 web browser 裏出生的 web interface,世界就此進入資訊高科技時代,人人都會使用這些電腦設備,因為它們都提供了一套容易使用的 GUI。
我依稀記得我的第一個有 GUI 的程式,是在新竹中學的軟研社(22th招生影片)裏頭,使用 QuickBasic 呼叫底層的 VGA interrupt 來存取 video buffer,在螢幕上畫了兩個眼睛,裏頭的眼珠子會依據滑鼠游標所在的方位,往那對應的方向看過去。這隻程式除了滑鼠移動時所造成的 event 以外,就沒別的了,既沒有 button 也沒有 textField 供輸入什麼的,非常的陽春,但我寫得很愉快,這經驗一直是那麼的深刻。事實上,這經驗讓我不討厭在寫程式之餘,花點力氣刻一下 UI,要多花點時間也行。這無形中讓我不至於學到某種壞習慣:programmer 覺得 GUI 是最最討人厭與沒有用的技術。
時間拉回到進入太極影音以降。
在 Maya 裏頭,scripts 提供 GUI programming 的函式,算是進入「MFC 之前,event driven 之後」的時代。所以 Maya 提供的 control(ex, button)大都可以針對一些 event(ex, click)指定一個 callback ,寫這類的程式對於一般修讀過四年資訊課程的學生來說,不是什麼問題。
遺憾的是,Maya 的 callback 機制很原始,callback 裏頭的程式碼並不會繼承所在的 namespace(or scope)的資訊,而是在 global namespace 下執行的,拿下頭這個例子來看:
proc dgCallbackCancel() { deleteUI "ooxx"; } global proc dgShiftAnimationKeysGUI() { if(`window -exists "ooxx"`) { deleteUI "ooxx"; } string $win = `window -title "ooxx by Drake" "ooxx"`; rowColumnLayout -nc 2 -cal 1 "right" -cal 2 "left" -cw 1 100 -cw 2 200 -w 300; text -label "Mode : "; string $mode = `radioButtonGrp -nrb 2 -labelArray2 "All" "Selected" -cw2 80 80 -select 1 "mode"`; text -label "Frames to shift : "; string $shift = `textField "shift"`; button -label "Do It" -c "dgCallbackDoIt()"; button -label "Cancel" -c "dgCallbackCancel()"; showWindow(); } dgShiftAnimationKeysGUI(); 兩個 button 的個別 callback functions 裏頭,為了可以順利存取到其它 control,使用了 hard-coded control name 的方式(直接假設 window name 是 “ooxx”, 另外兩個 control 分別是 “mode” 與 “shift”),另一種作法是使用全域變數的方式,直接把這些 control 的名稱存到全域變數,然後在 callback functions 裏頭使用他們。
天下雜誌 414 期,特別在崖上的波妞上映前,專訪了日本動畫大師–宮崎駿–逆風時代,希望啟航~宮崎駿的動畫世界。
我不確定我看到的,是不是完整的採訪,裏頭就宮老與他的吉卜力工作室的工作環境做了點介紹,有機會看到一些真正活著,在那一幕幕動畫作品後的原畫師與動畫師們,也可以看到宮老身穿圍兜兜到處晃來晃去的樣子,偶爾還可以聽到他們說一些輕鬆的生活或工作趣事。更棒的是,還可以看到傳說中的吉卜力美術館,裏頭多的是小朋友與爸爸媽媽到處亂串~
身為一位完全不懂得怎麼畫畫與拉 3D 模型的我,還是會忍不住被宮老與他們團隊的作品所感動,雖然只是一點點,沒有辦法像傻呼嚕同盟那樣說出讓人熱血沸騰的話來,但只就因為這麼一點點,就這樣傻呼嚕地加入遊戲動畫產業了。
我和導演合作了很長一段時間,宮崎先生了解我全部的優缺點,連父母都不會這麼了解。透過工作,他完全了解我,對我來說是很珍貴的事。如果用一句話來形容:
這真的是很棒的事。
Quote: 吉卜力工作室作畫指導 – 近藤勝也.
天下雜誌把整個採訪,放出了三個片段在 YouTube 上頭,每一段就短短地不到十分鐘,過了這麼一個長假,想再結束前再被感動一下的,去看看吧 :)
想跟著一起去感受一下Blog 也可以有自己的社群,而且是看得到的,還可以互動的,不只是 FeedBurner 上的一個數字或 Google Analytics 上的一個統計而已,加裝了 Google Friend Connect 來與大家一同玩樂。
左邊是我的 GFC 的樣貌,因為是一個小站,自然無法和 MMDays 這類比較大型的 blog 相比,但也希望有朝一日,可以像 Google 官網上秀的一樣:
有一個小小的社群,彼此透過 GFC 以網友的型式互相支持:我加入你的 GFC,你加入我的 GFC。我使用 Google Reader 訂閱你的 rss feed,或是把你加入我的 Flickr contact list 裏頭,然後偶爾去你的發表那留留言。
另一方面,我更希望有機會透過這一些小工具(web2.0 gadget?!),多認識一些華人,他們可能是以 3D/CG programmer、Animation Technical Director、3D/CG Artist、Web2.0 Pioneer、Music Player、…等自居,想多認識一些同好,可以彼此互通有無,讓 3D/CG 相關產業在華人的世界(不能再侷限於台灣而已了)發展起來。
就像最後一些人介紹的,GFC 有點像 MyBlogLog,但比它來得更好玩,有更多的功能,而且與 Google 其它服務,在未來的整合性會更高一些。就像 James Teng 在他的 blog 寫的:
Even though the WWW seems to be around for ages, it was invented only around 15 years ago.
Interesting subsequent comparison:
>>> a = 1 >>> b = 10 >>> c = 100 >>> a < b < c True >>> (a < b) < c True The following 2 code snippets are equal, which can explain why the above code works in that way.
if a < b < c: doSomething() if (a < b) and (b < c): doSomething() How about booleans? Is True bigger than False?
2009/01/17,叶問(Ip Man)
甄子丹實在很帥氣,衝著這點看這部電影的。
相對於李連杰演的霍元甲,甄子丹的葉問來得非常的低調,同樣是位公子爺,一樣是愛武成痴,一位卻只是把練武當興趣,差別之大就在於霍爭的是天津第一,葉玩的是自家院子裏的木頭人。
也許,北方人就是好爭鬥狠,南方人多的是人情世故。這,似乎是一直以來,不管哪個國家的人民都是這麼個樣呢~
話題扯遠了,是部看了會小小感動的電影喔。
2009/01/14,活人甡吃(Shuan of the Dead)
實在是蠢到一整個不行的電影了…自從看了原班人馬的哈拉警探(Hot Fuzz)後,就覺得偶爾看看這種無腦兼無理頭的搞笑片,實在不錯吶…
英國人果然都是神經病~~
2009/01/11,雷霆戰狗(Bolt)
好看吶…卻說不出為什麼覺得好看,因為這是一部一開始一點兒都不看好,要不是衝著它是 3D 立體電影的話,一點兒都不會感興趣的電影,結果呢!!! 出奇的好看。
這讓我想到之前的功夫熊貓,一樣是部一點兒都不會讓人提起興趣,但卻非常有“娛樂“效果的動畫片。是的,這兩部電影都非常地有“讓人意外的娛樂效果“,是因為 Hollywood 的故事團隊愈來愈懂得怎麼用 3D 動畫說故事了嗎? 這我就不曉得了 :)
2009/01/10,梅蘭芳(Forever Enthralled)
一直到看完戲,才曉得這是陳凱歌導的電影,驚覺地想到:是不是應該回去看看霸王別姬了呢?
我說,看一個男孩到男人所扮演的中國傳統女性,唱著聽不大懂的京劇,有啥好看的? 就因為沒啥好看的,一般人如你我鐵定看不懂的,導演與編劇團也鐵定知道這件事,所以這部戲反而變得非常值得期待與觀賞了。
我最最感到哀傷與震驚的是燕十三爺激動的道出了“那個年代,戲子是下九流。即使有了黃馬掛,下九流乃是“。我說,我也深深地替你們叫屈與不捨,尤其是看著馬三嘴臉“由奉承到不屑“,那種發自唯利是圖商人的個性,更是痛心但也同樣無奈。
黎明也許演得還好;章子怡俏皮足了,身材應該是比海灘豔照來得有料,就算不是衝著這兩人,這依舊是部看了會讓人想掉淚的好電影。
第一屆的 SIGGRAPH Asia 2008 於這個冬天,在新加坡落幕了。雖然沒有親臨現場參與到,但從多方得來的消息(第一手 + 第二手 + 第 n 手),皆透露出“與預期的有些落差“。另一個說法是「比較接近正常的學術論文樣貌」,亦即在有聲光、有話題、有商業加持等的活動,數量上都減少了,因而使得原來的 paper session 的比重就來得比較高了。因為是第一屆,所以 course 的部分有不少“入門級“的,但我特別喜愛這種 course,裏頭常常會有令人意外的東西。
由 SCAD(Savannah College of Art and Design)的 Malcolm A. Kesson 教授所開講的 Pixar’s RenderMan,就是個很好的「入門兼中等級」課程。Kesson 教授從事 Graphics Programming 教學(特別是與 RenderMan 有關)已經十餘年,是一位非常敬業且時時在 Pixar 官方討論板上提問題,讓人尊敬的教授。他自行維護的 fundza 已經出現在我的網站不下數次了,非常推薦。
雖然沒有機會現場收聽,倒是拿到了 course note,花了幾個晚上看完。說實在的,參與 SIGGRAPH course 是一件非常「累人」的任務,多麼累人,你只要稍稍回想一下,你那大學時期,聽課聽到有點出神,不小心跑去和周公下棋的經驗。對了,大致的感覺就是那樣。更何況是單單看 course note(pdf 檔),不過終究是看完了。
據說,偉大的天才科學家:愛因斯坦,他的研究之路是經過計劃的。他先是下了苦功把需要的技能一一學會,才開始了他的研究。換句話說,他把需要的「工具」摸熟了,才開始上工。(這也有可能是盜聽塗說,畢竟是一點兒考據都沒有的話,聽聽就好)
在這邊,提出一套學習 RenderMan(我的經驗,幾乎都來自於 Pixar’s RenderMan,但在寫這篇文章時,會盡量保持中立,把 PRMan 特有的東西給獨立出去不提)的途徑,說不定半年後我就推翻掉這個說法了,但「推翻」這件事本身就很有趣,所以還是值得試試。
What is RenderMan all about? RIB -> RSL -> front-ends (RMS/MtoR/3Delight For Maya/…)