Blender导出FBX至Unity的对象变换异常问题求助
解决Blender导出FBX到Unity的模型偏移问题
我之前也碰到过一模一样的问题!当时折腾了好一阵才找到几个靠谱的解决办法,给你捋捋:
修正FBX导出的轴向设置
Blender默认是Z轴向上,而Unity用的是Y轴向上,这是最常见的偏移根源。在Blender导出FBX时:- 打开导出面板的Transform选项卡
- 将Forward设置为
-Z Forward,Up设置为Y Up - 确保Apply Transform选项已勾选(哪怕你之前手动应用过,导出时再确认一次准没错)
检查骨骼根节点的变换
即使你应用了模型变换,骨骼根节点可能还有隐藏的未应用变换:- 在Blender中选中骨骼的根骨(通常是Armature对象的根层级骨骼)
- 按下
Ctrl+A依次应用位置、旋转、缩放 - 同时选中模型和骨骼,导出时勾选Selected Objects,并确保Armature选项里的Deform Bones已勾选,取消Add Leaf Bones(多余的叶子骨可能会干扰Unity的骨骼识别)
调整Unity的导入设置
导入FBX后在Inspector面板里做这些检查:- 切换到Model标签,把Scale Factor设为
1(避免单位缩放导致的位移) - 检查Transform部分的Mesh Compression暂时设为Off,排除压缩带来的顶点偏移
- 切换到Animation标签,把Root Transform Position (Y)设置为 Bake Into Pose,如果之前是Original,可能会把根骨的不必要Y轴位移带入场景
- 切换到Model标签,把Scale Factor设为
对齐模型原点与骨骼根
有时候模型原点和骨骼根不在同一位置也会导致偏移:- 在Blender中选中骨骼根节点,按下
Shift+S选择Cursor to Selected - 选中模型,按下
Ctrl+Alt+Shift+C选择Origin to 3D Cursor,让模型原点和骨骼根对齐后再导出
- 在Blender中选中骨骼根节点,按下
如果还是有问题,可以先导出不带动画的模型测试——如果静态模型没问题,那就是动画根骨的设置需要调整;或者新建一个空白Unity项目导入,排除项目内其他设置的干扰。
内容的提问来源于stack exchange,提问作者CrayzyHayzy




