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的格式,可以顺利转换灯光的属性,不过大半年过去了,似乎还是只闻楼梯响的阶段。