Blender导出FBX模型到Unity

Blender设计生成了模型之后,要导入到Unity中使用,我们可以采用FBX格式,但是因为Blender和Unity采用的坐标系不同,Blender是-Y轴向前,Z轴向上,而Unity是Z轴向前,Y轴向上。如果直接导出,在Unity中可以看到模型的X轴是会旋转-90°,以及缩放是放大100倍的。

要解决这个问题,可以采用两种方式:

方式一,在Blender中对模型调整角度,即X轴旋转90°,然后缩放是缩小100倍,这样导入到Unity之后,就会自动调整为旋转为0,缩放为1了。

方式二,可以采用现成的插件,例如GitHub - EdyJ/blender-to-unity-fbx-exporter: FBX exporter addon for Blender compatible with Unity's coordinate and scaling systean

安装之后,在导出里面会增加一个导出为Unity FBX的选项。这种方式的好处是无需在Blender中进行额外的调整。

如果我们要把资源打包发布到Unity的商店,用Asset store validator工具检验,有时会报Modle have incorrect rotation的警告,但是用上述的方式一和方式二均不能解决,这个问题折腾了好久,最后发现需要先把模型沿X轴旋转-90°,然后Ctrl-A应用旋转,使得X轴变为0°,最后再设置X轴旋转90°即可,如果模型有层级关系,需要注意子级的有可能也需要做相应的调整(具体原因我也没搞懂,实在是很令人费解)

不过这两种方式都存在一个问题,那就是加入我们的模型涉及到了骨骼动画,那么无论方式一或方式二进行调整,在导入到Unity之后,我们给模型增加Animator组件后,会发现无法设置模型的位置和方向,我在Blender尝试了很多种方案都不可行。最后的解决办法就是,在Unity里面新建一个空对象,把模型作为子节点挂在这个对象上,然后对这个对象的位置和方向进行设置。

另外如果我们导入FBX模型到Unity,有时会报错说a polygon is self intersecting and has been discarded,这个通常是因为模型中有顶点重合导致的。在Blender里面选择有问题的那个物体,进入编辑模式,选择顶点,然后按A全选,在上边菜单的Mesh里面选择Merge vertices,这样可以自动删掉重合的顶点,再导入到Unity即可。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gzroy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值