解决Blender导出FBX文件到Unity坐标轴错误的问题

发现Blender的模型导入到Unity里面有问题,简单研究了下发现是坐标系不同,Unity使用的是左手坐标系,Blender使用的是右手坐标系 。

下面直接将如何解决

首先忽略Blender的右手坐标系以及Z轴朝上的事,依照unity坐标系情况修改模型物体的旋转,以Blender猴头为例

此时只需在Blender中将猴头绕Z轴向左转90°使猴头朝向X轴方向即可得到我们在unity中需要的正确朝向

然后选中猴头并按快捷键Ctrl+A弹出应用窗口,选择“旋转”即应用旋转,此时会发现原先旋转的Z轴值变为了0(即猴头的初始朝向已修改,同理也可以修改初始位置与尺寸)

然后导出FBX文件,在导出面板调整“变换”内容并勾选“应用变换”(导出到Unity一般设置如下图)

最后将FBX文件导入Unity就会发现物体的朝向完全符合unity坐标系情况

当然,如果物体的朝向不是X轴方向,而是其他轴方向,只需要在导出时调整“前进”与”向上“选项的值即可。

方法:

1.构建一个unity左手坐标系 A(Blender右手坐标系为B),将B的Y轴与Z轴朝向调换即可得到A坐标系

2.然后看当前物体的朝向为A坐标系下的哪个轴,最后将“前进”选项的值设置为该轴值即可,向上也是同样。

此方法能解决大部分物体旋转后导出FBX文件到unity引起的朝向问题,但有些情况下不行(目前我试出来不行的情况为物体在多个轴上都有旋转时不行,如果只在一个轴上有旋转是没问题的,我怀疑和万向节死锁有关).

上一篇:Java23种设计模式-行为型模式之中介者模式


下一篇:人大金仓数据库的数据分析的方法和工具