马上注册,加入CGJOY,让你轻松玩转CGJOY。
您需要 登录 才可以下载或查看,没有帐号?立即注册
×
前言 美术经常会在DCC与Unity间联调工作,特别是3D软件,在不借助外力的情况下,步骤很繁锁,严重影响工作效率,那有没有什么办法可以解决这个问题呢?
答案就是FBX Exporter,这是Unity官方出的一款插件,目的就是要打通美术人员与3D软件间的联调方式,做到让美术人员可以所见即所得!
FBX Exporter FBX Exporter可以打造良好的3D软件与Unity间的往返工作流,这里的3D软件包括Maya与3ds Max。
主要的功能如下: 版本要求: 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文件的导出功能。
支持导出的格式: 导出模型时支持的数据:
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导出了。 有两种方式: 导出前需要选择导出的对象,如果是多个就多选,导出后他们会各自覆盖到各自的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 }
|