fbx是filmbox這套軟體所使用的格式,現在改稱Motionbuilder。
因為Motionbuilder扮演的是動作製作的平台,所以在前端的modeling和後端的rendering也都有賴於其它軟體的配合,所以Motionbuilder在檔案的轉換上自然下了一番功夫。
所以fbx最大的用途是用在諸如在max、maya、softimage等軟體間進行模型、材質、動作和攝影機資訊的互導,這樣就可以發揮max和maya等軟體的優勢。可以說,fbx方案是最好的互導方案。
模型篇
模型的轉換,相信是最常見的需求。點對點線對線的狀況最為單純,FBX在這個部份的表現相當理想,多邊型模型基本上是分毫不差。
有趣的是,在Max裡相同拓樸的模型,如果是mesh轉出去,都會變成三角面,用poly輸出的話就是漂亮的四角面(MAYA沒有這個問題,因為MAYA只有polygon),而MAX輸入fbx的模型,都會成為mesh的形式。
更利害的是fbx居然能夠保留nurbs — 例如用MAYA轉出一個用nurbs建的模型,相同的fbx檔案,如果用MAX輸入的話會自動轉成mesh,用maya輸入的話還是nurbs~更神奇的是再從xsi 輸出一個nurbs模型到maya,仍然保留unrbs的格式(好吧!MAX的NURBS真的是超級廢柴)
這裡有一個小技巧,在MAYA如果輸出NURBS到FBX,進入MAX就會轉成Mesh,在MAYA的時候可以先按1鍵,將顯示的平滑度降低,這樣出來的模型資料量會小很多,到MAX再執行Meshsmooth即可。
接下來這一點很重要,避免使用不等比縮放,如果有用到,MAX在Hierarchy->Reset欄位下有兩組按鈕,點選Transform和Scale,真正將位移縮放的變形量歸零;之後再到Utilities面版下,點選Reset Xform或再convert一次將比例歸零。MAYA則使用freeze transformation。 這樣轉換的模型才不會出現亂飛的狀況。
材質與燈光
材質
方面,能夠保留MAX或MAYA多邊形的貼圖軸資訊(NURBS的UV不行),材質球的屬性,有部分可以保留,能轉的就算賺到了,shader都會轉成phong shader,diffuse(MAX)對應到color(MAYA)、Opacity(MAX)對應到transparency(MAYA).......其它的依此類推,色彩轉換是無誤,但比較可惜的是部分數值的對應並不是很理想,這一點還請各位朋友自行比較,我是不太信任這一點,畢竟同樣的數值在不同的軟體下不見得會產生相同的效果。
在轉檔後,常會覺得有OVER的感覺,怎麼打光都不對,其實在轉檔後,FBX會自動把MAX的Enviroment>Global Lighting>Ambient設為50%的灰,調低即可,至於東西轉到MAYA則是會把每一個材質的Ambient設為0.588,全選起來用Attrib sprend sheet一次調低即可。
貼圖的部分,不用說只能轉bitmap(files)的貼圖,此外只會保留diffuse這個channel,其它的部分要再自行指定,希望新版可以提供支援(基本上支援bump和Opacity就很感動了)
FBX在轉換後,會把每一個單獨的模型產生一個新的材質,所以會發現在材質編輯器裡面有爆多的材質球(尤其是MAYA看起來會很可怕),所以在轉換前,能夠先Attach或combine就先結合在一起,省得整理麻煩。
若是從MAYA轉出的模型,如果沒有上貼圖設定UV,以MAX開啟的話都會被賦予一個材質,在Diffuse的地方還是會加上一個bitmap的貼圖(但是是空的-maya ghost),這時候用MAX算圖時就會出現沒有UVWMap的警告訊息,必須要手動加上UVWmap,或是在MAYA裡就先拆UV。
另外,有的時候還是會產生法向量方向的問題,開2side或下normal指令修正啦。
標準的三種光源,Spotlight轉成spotlight、onmi轉成point light,Directlight轉Directlight,位置、方向都不會有問題,燈光強度:Multiplier對應到Intensity、顏色、Spotlight的Cone angle都會保留,不過前面也提過了,相同的數值不代表相同的效果 。
一些比較特別的燈光種類,如MAYA的Ambientlight、體積光、MAX的Skylight…就會被轉成helper之類的虛擬對象。陰影部份的屬性不會保留,所以FBX的燈光轉換還滿雞肋的,主要是作對位功用吧!
"聽說"有一個叫OHM的格式,可以順利轉換燈光的屬性,不過大半年過去了,似乎還是只聞樓梯響的階段。