【Unity】FBX Exporter 的使用 (To 3ds Max 2018)

        Unity版本:Unity 2019.4.4f1

        3ds Max 版本:2018 (至少要 2017 以上的版本)

1、导入FBX Exporter

        在Unity中,点击Window→Package Manager,然后找FBX Exporter;

        如果在左边的列表中找不到,则在Advanced中勾选 Show preview packages :

        选中FBX Exproter,然后点Instailling进行导入。

        之后选择Edit→Project Settings→Fbx Export,选择你的3d建模软件(3ds Max、Maya等)。我是用的3ds Max 2018,注意,这个插件只适用于 3dsMax 2017 以上的版本

        然后点击那个 Install Unity Integration 这个按钮,选择文件路径未 3ds max 2018 安装目录下的Plugins 文件夹中。(理论上你也可以选择你自己喜欢的文件夹,这个是选择脚本插件的位置)。第一次安装的时候会打开一次3ds max,完成之后关了就完事了。

        这样就完成安装了。

1.1 故障排除:

        我再安装插件的时候就遇到这个问题,反正3dsMax就弹出这么一个警告:

        -- 无法转换:undefined 到类型 : String

        有些离谱,我打开3dsMax的调试器看了下,那个脚本第一行就报错了。他的源代码(configureUnityFbxForMax.ms)如下:

temp = pathConfig.GetDir(#userStartupScripts) + "/" + UnityPluginScript_Name;
deleteFile temp;
copyFile UnityPluginScript_Source temp;

maxIniFile = (GetMAXIniFile())
unityCategory = "Unity"
setINISetting maxIniFile unityCategory "UnityProject" UnityProject
setINISetting maxIniFile unityCategory "UnityFbxExportSettings" UnityFbxExportSettings
setINISetting maxIniFile unityCategory "UnityFbxImportSettings" UnityFbxImportSettings

quitmax()

        所以我只能理解为他自定义的宏 UnityPluginScript_Name 出错了,没能转换成字符串。虽然我不会MaxScript,但是根据我的猜测,他这个脚本前三行的目的如下:

        1、把一个叫 temp 的路径下的文件删除。

        2、然后把 UnityPluginScript_Source 这个路径下的文件复制到 temp 的路径下,起到覆盖的效果。

        然后问题就是 UnityPluginScript_Name 这个定义的变量没了嘛,那补齐理论上就OK了。理论上,他第一行定义的变量就没成功,那后续的什么 UnityProject 啊 UnityFbxExportSettings 啊应该也不行才对。

        于是经过一些摸索,在你之前的选择的插件目录下找到 configureUnityFbxForMax.ms ,在最前添加以下代码:

global UnityPluginScript_Source = @"D:/Autodesk/3ds Max 2018/Plugins/Integrations/Autodesk/max/scripts/UnityFbxForMaxPlugin.ms";
global UnityPluginScript_Name = @"UnityFbxForMaxPlugin.ms";
global UnityProject = @"F:/Project/FantacyArtSource/";
global UnityFbxExportSettings = @"D:/Autodesk/3ds Max 2018/Plugins/Integrations/Autodesk/max/scripts/unityFbxExportSettings.ms";
global UnityFbxImportSettings = @"D:/Autodesk/3ds Max 2018/Plugins/Integrations/Autodesk/max/scripts/unityFbxImportSettings.ms";

        这个是定义路径的,注意改成自己项目的路径。然后就可以不报错了。

1.2故障排除

        在上一步的基础上如果还是有问题,在3dsMax中没有出现Unity 的选单,但是没有报错,那么按照以下步骤进行检查:

        找到 C:\Users\Administrator\AppData\Local\Autodesk\3dsMax\2018 - 64bit\CHS 文件夹下的 3dsMax.ini 文件,打开看,里面能不找到如下图所示的部分:

        就是这个带[Unity]标签的部分。如果有则说明 configureUnityFbxForMax.ms 是成功运行了,但是3ds Max里没有正确显示的问题。后面我们就排除这个问题就OK了。

        在3ds Max 中点击自定义 -> 自定义用户界面,然后选择菜单子选项。

        然后在类别中找到Unity类别,然后分别拖动到 文件-导入和文件-导出中:

        当然,你也可以给他分配一个快捷键,你也可以保存这个配置。

        这样目前的故障就算排除完成了。

        (Unity - New FBX Exporter in 2017.2 | Page 13 - Unity Forum)

2、生成一个FBX Linked Prefab

        之后选择我们要导出的物体的所有依赖项目,右键选择 Convert To FBX Linked Prefab ... :

        之后会出现一个对话框:

        需要注意的就是你的Fbx导出位置和Prefab导出位置。他会生成一个新的Prefab,一个新的FBX文件。然后新的Prefab就对应的FBX文件,只要对原FBX文件进行修改就可以在Unity里产生效果了。

        其实只要有这个FBX文件,就可以在别的3D软件里操作他了。例如新的FBX文件进行修改之后再覆盖原FBX。但是这样就必须要在别的软件里不停地导入、导出,其实还是有些不方便。

3、在3ds Max里进行操作:

        在3dsMax 中,文件→导入→Import an FBX from a Unity project and auto-configure for exproting . (怎么名字这么长……)

        然后找到我们之前的项目文件,找到刚才我导出用的那匹马。之后工程如下:

        可以看到左侧的面板上已经显示出了一个主模型、骨骼、以及一个UnityFbxExportSets的物体。之后我们在3ds max里面对齐进行一些操作,这里我给他加上一个角。

        我这里就改了一下顶点,简单弄一弄就完事了。

        然后选择导出,这里就只导出模型就完事了。

        之后直接跳转到Unity,可以看到我们的模型已经变过了:

        完成,这样就完成了Unity 和 3ds Max 的互相联动。

小结

        其实这么一套操作我感觉其实……没有很大用处。

        首先一般的工作流程是美术直接导出FBX到Unity的项目,程序引用这个FBX的数据。其实和他目前的流程是一样的,不过区别就是用FBX Exporter的话你不用一直在“导出”对话框里面选文件。你只要在3dsMax里面点一下导出就完事了,算了省了一步吧。如果美术小伙伴是刚上手的,他就不用熟悉项目结构,直观在3ds Max里面搞搞就可以了。

        对程序员来说我觉得是比较鸡肋的,他那个Link Prefab其实可有可无,反正程序一般也会自己操作这个。而且他那个Link Prefab还容易出些Bug,这个就遇到了再说了。

        然后我本来以为他是可以和Unity完美联动的,可以优化一些Fbx 和 3ds Max之间的导入,但其实并没有。如何你有一个FBX文件,你用FBX Exporter导出,和直接在3ds Max里面导入其实结果是一样的。比如你的骨骼都会变成辅助对象,虽然有蒙皮但其实并不能做动画。

        不过对于游戏流程来说有个明显的加强,就是程序或者策划可以现在Unity用Cube之类的来搭建场景、模型之类的。然后直接把Unity里的GameObject导出FBX给美术做,美术一上手就知道了一些模型的大概形状、参数之类的。可以实现程序/策划 就白模快乐地搭起来,不用理会美术资源;同理,美术也可以有一部分工作和程序解耦。

        总之,就是目前虽然有些鸡肋,还有Bug,但是肯定是有流程优化的。

  • 39
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Unity社区中有一个称为UnityFBXExporter的工具,它允许开发者将Unity项目中的模型和动画以UnityPackage的形式进行导出。 UnityPackage是Unity的一种打包格式,用于共享和分发Unity项目中的内容。通过使用UnityFBXExporter,我们可以将Unity中的模型和动画转换为FBX格式,然后将其打包为UnityPackage,方便其他开发者在不同的Unity项目中使用UnityFBXExporter提供了简单易用的界面,通过几个简单的步骤,开发者可以选择要导出的模型和动画,选择导出的FBX选项(如轴向、坐标系等),然后指定导出的目标文件夹和文件名。 使用UnityFBXExporter导出的UnityPackage可以包含多个模型和动画,在导入到其他Unity项目时,可以轻松地选择和使用其中的内容。导入UnityPackage后,开发者可以直接在Unity编辑器中使用导出的模型和动画,无需重新创建或导入资源。 UnityFBXExporter对于需要与其他开发者共享或分发Unity项目中的模型和动画的情况非常有用。它简化了导出和共享Unity资源的过程,节省了开发者的时间和精力。 总而言之,UnityFBXExporter是一个能够将Unity项目中的模型和动画转换为FBX格式,并以UnityPackage形式进行导出的工具,方便开发者在不同的Unity项目中共享和分发这些资源。 ### 回答2: Unity3D是一款非常流行的游戏开发引擎,开发者可以使用该引擎创建各种类型的游戏和应用程序。UnityFBXExporterUnity的一个插件,它允许开发者将Unity场景中的3D模型,材质和动画导出为FBX文件格式。而UnityPackage则是一种Unity特有的文件格式,用于导出和共享Unity项目。 UnityFBXExporter插件的作用是为了方便开发者与其他建模软件(例如Maya或Blender)之间的工作流程,开发者可以在Unity中制作和编辑3D模型,并使用UnityFBXExporter插件将其导出为FBX文件。这样,开发者就可以在其他建模软件中进一步处理和修改模型,然后再将其导入到Unity中进行使用。这个插件可以帮助开发者提高工作效率和灵活性。 而UnityPackage可以理解为存储Unity项目的一种压缩文件,其中包含了Unity项目中的所有资源以及其配置信息。开发者可以创建一个UnityPackage,并将其分享给其他开发者或在不同的Unity项目中使用UnityPackage可以包含各种类型的资源,如场景、脚本、材质、纹理、声音等。通过使用UnityPackage,开发者可以轻松地共享和复用自己的项目,也可以从其他开发者那里获取他们创建的资源。 总的来说,UnityFBXExporterUnityPackage是Unity开发者在工作中使用的重要工具和文件格式。UnityFBXExporter插件使得Unity与其他建模软件之间的工作流更加方便和高效,而UnityPackage则是一种用于共享和复用Unity项目资源的文件格式。这些工具和文件格式的使用帮助开发者更好地进行游戏开发。 ### 回答3: UnityFBXExporterUnity中的一个插件,它的主要功能是将Unity中的游戏资源以FBX格式进行导出。FBX格式是一种通用的交互式3D文件格式,广泛用于不同3D建模和动画软件之间的数据交换。UnityPackage是Unity的打包文件格式,可以将Unity项目中的资源、脚本和设置打包成一个整体,方便在不同项目之间进行共享和导入。 使用UnityFBXExporter插件可以方便地将Unity中的模型、动画、材质等资源以FBX格式进行导出,以供其他3D建模软件使用。导出后的FBX文件可以保留Unity中的层级结构、动画数据、材质设置等信息。这对于需要在Unity之外进行渲染、动画制作、模型修改等工作的人来说非常有用。 另外,UnityPackage是Unity的打包格式,可以将Unity项目中的各种资源整合在一起,方便进行导入、共享和备份。UnityPackage可以包含场景、模型、材质、贴图、脚本、动画等资源。导出UnityPackage后,其他人可以轻松地导入到他们的项目中,无需手动拷贝和配置资源路径。 简而言之,UnityFBXExporter插件用于将Unity中的资源以FBX格式导出,方便在其他3D建模软件中使用。而UnityPackage是Unity的打包文件格式,用于整合和共享Unity项目中的各种资源。这两者都提供了便利性,使得在不同软件和项目之间进行资源交换更加方便快捷。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值