让美术所见即所得(转)
转自 Unity技术美术前言美术经常会在DCC与Unity间联调工作,特别是3D软件,在不借助外力的情况下,步骤很繁锁,严重影响工作效率,那有没有什么办法可以解决这个问题呢?
答案就是FBX Exporter,这是Unity官方出的一款插件,目的就是要打通美术人员与3D软件间的联调方式,做到让美术人员可以所见即所得!
FBX ExporterFBX Exporter可以打造良好的3D软件与Unity间的往返工作流,这里的3D软件包括Maya与3ds Max。
主要的功能如下:
[*]将Unity工程中的资源导出FBX格式,供3D软件读取。
[*]将3D软件中的资源与Unity中的做好关联,然后即可所见即所得。
版本要求:
[*]Unity2018.3及以上版本
[*]Maya2017及以上版本
[*]3ds Max2017及以上版本
安装FBX Exporter通过Window/Package Manager打开package安装器从中选择FBX Exporter进行安装
从Unity中导出FBX
选中需要导出的对象,然后从菜单栏中选择GameObject/Export To FBX...
分两种情况:
[*]选中Project面板中的对象
[*]选中Hierarchy面板中的对象
可导出所选对象以及所有子对象层级为一个FBX文件,比如可将多个FBX组合起来导出成一个FBX.另外,特别说明下,在Unity中通过ProBuilder制人和的模型的就可以通过这种方式导出进3D软件进行细化加工,关于Terrain,由于是.asset格式,而目前工具并不支持.asset文件的导出功能。
支持导出的格式:
[*]GameObject (对象层级与变换属性)
[*]Mesh (静态网格)
[*]SkinnedMeshRenderers (蒙皮网格, 有一定的限制)
[*]Material (材质球)
[*]Textures (纹理)
[*]Cameras (摄相机)
[*]Lights (灯光)
[*]Contraints (约束)
[*]Animation (动画)
[*]Blendshapes (做表情动画用的)
导出模型时支持的数据:
[*]Normals(法线)
[*]Binormals(副法线或者叫副切线)
[*]Tangents(切线)
[*]Vertex Colors(顶点色)
[*]UVs(8套UV,如果存在的话)
[*]Quads or Triangles(四角面或者三角面)
3D与Unity中联调
3D软件中的集成在进行畅通无阻的联调之前,我们需要在3D软件中集成一个工具,步骤很简单,按如下操作(以3ds Max为例):
打开设置界面Edit>Project Settings>Fbx Export将3D Application设置为你本地的3D软件,比如我这里的3ds Max2018,如图中步骤1所示。然后点击图中的步骤2所示的按钮即可(在弹出的面板中选择你希望工具安装的目录位置,不一定非得是3D软件的插件目录,然后稍微等待后即可)
导入Unity中的FBX到3dsMax中打开3dsMax,然后选择File>ImportAssetOptions>Import form Unity,由于我们是在某个Unity工程中给3dsMax安装的工具,所以3dsMax默认会打开我们之前的工程目录,还是很方便的。如果是3dsMax2017版本的话,导入选项在这里:Unity>Import然后从弹出的对话框中选择需要导入的FBX,可按住Shift或者Ctrl多选。导入完成后, 除了导入的模型以外, 还会自动生成一个叫做UnityFbxExportSets的dummy,这个dummy下又存储了每个导入模型的一些信息,而这个信息就是保证我们3D软件与Unity进行联调的关键(里面存储了导入路径以及文件名,还有动画路径及文件名)。
导出FBX到Unity当我们在3D软件中修改到一定阶段想在Unity中看下效果时, 就可以通过File>Export导出了。有两种方式:
[*]Export (同时导出模型与动画)
[*]Export Model Only (仅导出模型)
导出前需要选择导出的对象,如果是多个就多选,导出后他们会各自覆盖到各自的FBX上面,并不会变成一个FBX.导出集的设置如果只是对模型进行点面体级别的修改,那正常操作即可,如果是需要另外加一个模型的话那在导出前就要设置一下了,否则新加的模型不会被导出到相应的FBX中去。针对这种情况,首先先选中新添加的模型,然后点击图中的1,打开集合设置界面,在其中选择你希望添加到的集合项,然后点击加号按钮。接下来正常导出即可。
导出快捷设置通过File>Export的形式导出还是略显不便,这时我们可以把导出命令做成快捷键或者拖出来变成一个按钮,每次需要时直接点击下即可。
菜单栏选择Customize > Customize User Interface...打开自定义界面窗口切换到Toolbars标签, 从中找到Export models and animation to Unity或者Export models to Unity将你需要的命令拖到工具栏上,然后松开,即可生成一个命令按钮。然后我们再按钮上面点击右键,从中选择Edit Button Appearance... 从中选择一个自己满意的按钮。
FBX与Prefab的关联在3D软件导出FBX到Unity中后,默认情况下,我们用此FBX生成的Prefab,会出现下次从3D导出后信息被覆盖的情况,比如增加或者删除了模型,Prefab中不会自动更新,这肯定不是我们希望看到的。
解决这个问题我们需要用到FBX Exporter提供的另一个功能:FBX Linked Prefabs首先我们选中导进Unity中的FBX,然后右键从中选择Convert To FBX Linked Prefab...在弹出的对话框中设置下路径等相关信息,并点击Convert即可.至此,你从3D软件中再次导出时就会自动同步到Prefab上去了,同时Prefab上的Override也会保留,完美!
脚本上的支持
如果你有工具开发需求的话,我们也可以从代码层面去调用FBX Exporter 示例代码如下:using System.IO;using UnityEngine;using UnityEditor;using UnityEditor.Formats.Fbx.Exporter;
public static void ExportGameObjects(Object[] objects){ string filePath = Path.Combine(Application.dataPath, "MyGame.fbx"); ModelExporter.ExportObjects(filePath, objects);
// ModelExporter.ExportObject can be used instead of // ModelExporter.ExportObjects to export a single game object}
赞赞赞赞赞赞赞赞赞赞赞
页:
[1]