2013/02/07

3ds Max的巴別塔發展歷史、外掛系統


作者:Jean-François Yelle
編譯:Hammer Chen

3ds Max的巴別塔發展歷史、外掛系統

我一直在想這件事,雖然我還沒完全確認,但我相信與事實相去不遠了。很久很久以前, Yost group寫出了『3D Studio Max』這套軟體,但撰寫時間不夠,所以他們就想藉由可延伸的架構,就能夠在發佈軟體以後,在靠外掛使軟體功能變的完整,從中獲利。

回想在1994年代,對於能有Metaballs、hair、PRS randomizer、early skinning這些外掛真的很令人驚艷!



產品彈性
那時 3D Studio Max非常地成功,融合了彈性與擴充性,證明是很成功的軟體。外掛的產業出現也給了3ds Max很大的彈性,因為這些擴充功能是來自第三方外掛,讓原本直接寫在軟體裡面可能產生的各種問題得以獲得緩衝。所以讓3ds max本身可以有很大的彈性。

任何Autodesk錯失的功能或是不想要投資的軟體開發,都會透過第三方外掛開發商來接手。到目前為止Autodesk仰賴第三方外掛的方式具有管理風險,而且Autodesk也習慣地併購成功的外掛軟體商,並整合到軟體中。

綁住用戶的圈套
具有SDK也就表示用戶能夠製作自己專有的工具用在自己的產品(電影或是遊戲產業),
允許用戶3ds Max作為開發的平台,讓3ds max能夠具有原本缺乏的功能。

以外掛的形式,公司內部開發的流程,讓客戶極端第仰賴Autodesk的產品(甚至特定版本的軟體)。你不太可能會想轉換其他3D軟體,因為這表示需要重新訓練員工 。

就我看來:彈性與使用者忠誠度就導致了3ds max的SDK價值。想都不用想,用就對了。

巴別塔: 穩定度會有問題
外掛的作法並不全是優點,也是有缺點的。目前我們看到的3ds Max缺點就是穩定度。 20年來投機地整合外部軟體,讓3ds Max變得像塊魂(Katamari)那樣的大雜匯。

穩定度...又是另一個複雜的專題,我還會多加著墨。相信你們一定遇過『3ds Max missing plugins』的問題吧!

網友Martin說:『想要知道你對以下的看法:外掛無法支援跨版本是3ds max最大的問題,我在想Adobe為什就能讓Photoshop使用10年前的老外掛?而Autodesk 3ds max卻必須要年年重新編譯?』

本文作者說:『據我了解因為Photoshop支援的API具有back-end舊版的支援能力,對3ds max很難做到這點因為SDK與Max的核心沒有明顯的分界。』

『想想也蠻有意思的,3ds Max使用自家公司寫的東西(吃自己做的狗食),3ds max大部分的程式碼是用它自身的SDK撰寫出來的,但是第三方外掛最後落得必須要跟Max研發團隊一樣用相同的版本來開發外掛』

3ds max的整體穩定度

上一篇是關於3ds Max SDK就是3ds max軟體本身彈性與使用者不得不維持忠誠度的原因。我很快地談了3ds max穩定度的問題,以巴別塔為比喻。本文我將解釋穩定度與相容性的問題。

3ds Max的核心是基於3ds Max SDK所撰寫出來的。大部分max推出的版本的元件都是各自的外掛,我們可以說 max 的研發團隊是採用自家的工具在開發(吃自己做的狗食),這也表示照理說SDK應該是非常堅固耐操的、經過充分地測試的。的確是這樣,至少大部分狀況是。

Max強大的地方是因為:
  • Max本身
  • 以及個別的外掛自身的威力
  • 但各個外掛之間的整體系統協同運作,在某個max版本之上,效果如何?
  • 向下相容的能力(用新版本的max 開啟舊版本的3ds max的檔案)
  • 向上相容 (存成舊版的能力)
3ds max的高塔的根基是由Autodesk所提供,而尖端部分是由外掛所構成的。在我的隱喻裡面 ,這座塔指的是特定年的產品,從一年到另一年需要跨越一道鴻溝,往舊版或是往新版相容。 三角眼代表的是整個塔的整體觀點視角。

Max的問與答
Autodesk每一年的新版本開發,涵蓋了圖中的#1, #4 與 #5 (#4 與 #5 當然只針對3ds max元件做測試) ,我不認為Autodesk能夠提供外掛在#4 與 #5部分提供測試。

第三方外掛的問與答
第三外掛的開發商必須要負責測試自己的產品(#2) 。針對每一版本的3ds Max,他們通常會由3ds Max beta獲得3ds Max SDK。想知道更詳細的資料嗎?你可以到ADN(Autodesk developer network)查看。SDK給的時間有點晚, 時間在穩定版的APIs推出之後。因為開始的時間點不同 ,所以各家的外掛商外掛的軟體測試品質差異極大,所以你也很難證實在#2階段,針對特定版本的3DS MAX外掛有經過徹底的測試。

至於#4 與 #5 我知道的幾家少數外掛開發商會測試這兩個階段。通常的作法是他們會詢問幾個大客戶,看看有沒有遇到哪些bug需要修正。

整體穩定度
(#3)的整體穩定度並沒有處理到,別責怪Autodesk, 因為這是不可能地任務。因為在每年的開發排程裡面時間不夠用,整體的穩定度也因此變得很隨機 跟其他元件/外掛的穩定度有關,如果你相信這會有整體穩定度的話,那就跟沒信仰是一樣的。阿們~

總結
  • 3ds max每年都會推出新版本
  • 會追求跨版本的穩定度,但無法保證
  • 就好像諺語『如果東西沒有壞掉的話就不要修它』的原則,如果你現有的工作流程還能運作的話 (例如團隊正在製作電影 遊戲 等等)
“YOU SHOULD NEVER UPDATE MID-PRODUCTION.”
如果專案還在進行中,就絕對不能更改現有流程

關於更新這件事,我的建議是對流程中的任何元件進行更新是好事。
對大部分的3D套裝軟體來說 #1與 #3似乎都有相同問題。

下一篇我將談談跨版本之間的技術問題。

JF說:『把外掛的因素加進來會提高風險,也需要做測試。
合併跨版本的檔案風險很高,如果裡面有外掛那就更危險了!
打斷現有的工作流程要付出極高的成本(所有的工作都會終止) 要注意這點。』

『我們調查了3ds max個版本的元件,之後應該可以提供這類的資訊,讓大家能清楚底知道哪個元件在哪個版本中 (例如哪年 32或64 bits, entertainment或design)』

『舉個簡單的例子,reactor在某個版本開始被拿掉了,有些外掛因為被其他功能取代所以也拿掉了。有一些經典的外掛無法轉換成64位元的版本,例如VRML exporter在64位元板中不存在』

延伸閱讀:

Post a Comment