你可能遇到过这种情况:在Blender里明明把模型摆得整整齐齐,导出FBX拖进UE5,结果模型要么躺在地上,要么转了90度,要么放大缩小不成比例。群里问了一圈,有人说改导入设置,有人说改导出设置,还有人建议你用Datasmith,试了一圈折腾半天,最后还是一堆烂摊子。
这篇文章我打算把Blender和UE5之间FBX轴向匹配这件事彻底讲透。我会从两套软件对坐标系的定义差异说起,然后拆解FBX导出导入的完整流程,给出可以直接照抄的导出配置和导入配置,最后把那些最常见的坑列出来,比如模型躺倒、单位不对、法线发黑、骨骼动画错位,逐一说明排查思路。
1. 核心思路:搞懂Blender和UE5各自的空间坐标系
1.1 两种坐标系到底差在哪
先说结论:Blender是Z轴向上的右手坐标系,UE5也是Z轴向上的坐标系。看起来都是Z轴向上,理论上不应该有轴向问题,但实际导入导出总会出幺蛾子,问题出在“如何把Blender的坐标表达转换到UE5能识别的坐标表达”上。
Blender里一个模型,它的前方向对应的是-Y轴,上方向是+Z轴。UE5里一个模型,前方向对应的是+X轴,上方向是+Z轴。两者都是Z轴向上,但“前方”的指向不同,一个是-Y,一个是+X。这个差异直接导致FBX在中间做桥梁时,必须做一次旋转转换,否则模型就会朝向错误。
这个旋转换算关系可以写成:从Blender坐标转到UE5坐标,等价于绕Z轴旋转-90度。也就是Blender的-Y方向变成了UE5的+X方向。FBX格式本身并没有规定“必须用哪个轴作为前方”,它只负责把坐标数据存下来,至于怎么解释这些坐标,就看导出方和导入方各自的约定。
很多教程会让你在导出时直接选“-Y轴为前方”,但这个方法在不同版本的Blender、不同版本的UE5下并不总是可靠。我自己更习惯的做法是:在Blender里把模型摆正,让模型的前方指向Blender的-Y轴,然后导出时使用FBX默认设置,进入UE5后再在导入面板里微调旋转参数。这个流程的可复现性更高,不会因为Blender烘焙动画、骨骼绑定不同而翻车。
1.2 为什么单位不一致会引发连锁问题
轴向和单位这两个问题经常纠缠在一起。Blender默认单位是米,UE5默认单位也是厘米——不对,UE5的单位是厘米,Blender的单位是米。这里的坑在于:FBX文件内部存储的单位是由导出方决定的,导入方会根据文件内的单位换算比例自动做缩放。
具体来说,Blender里如果场景单位是米(默认就是米),导出FBX时会把单位信息写入文件。UE5导入时识别到文件单位是米,就会自动换算成厘米,也就是放大100倍。听起来没问题,但实际经常出问题的情况是:你在Blender里建模时,网格尺寸本身已经不对了。
举例,你在Blender里创建一个Cube,默认边长是2米。导出到UE5,引入后边长变成200厘米,也就是2米,这是对的。但如果你在Blender里用的是“毫米”作为场景单位,那你建的模型如果原本想着“10毫米”的尺寸,结果导出后UE5导入时会把它当成10米来处理——因为FBX单位换算只知道场景单位是毫米,会把10毫米换成1厘米,但如果你在Blender里输入数值时心里想的是“10”,实际网格却是10毫米,到了UE5就变成了1厘米,就完全不对了。
所以推荐的固定做法是:Blender场景单位锁定为米,建模时用真实尺寸,1米就是1米,导出的FBX单位设为厘米,UE5导入时缩放选择1.0,或者让UE5自动检测。把单位这个变量提前锁死,后面所有关于轴向的调整才有意义。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心细节:FBX导出面板里每一项该怎么设
2.1 左侧面板的通用设置项
先说如何调出FBX导出面板。在Blender里选中你要导出的模型(或选中多个模型),按快捷键File > Export > FBX (.fbx),右侧会弹出一个属性面板。这个面板的选项很多,但真正影响轴向匹配的其实就几个关键选项。
