1、场景搭建的「地基」:坐标系与单位制混乱导致的模型错位
说实话,我见过太多新手在场景搭建上栽跟头了。明明模型做得挺漂亮,一拼到一起就「穿模」、「悬空」、「对不齐」。
问题出在哪?十有八九是坐标系和单位制没统一。
这就像盖房子,你用的尺子是米,我用的尺子是寸。你说地基挖三米深,我理解成三尺——这楼能盖得起来才怪。
坐标系:你的「东南西北」和我的一样吗?
3D软件里,坐标系就是世界的「东南西北」。但问题是,不同软件默认的「上」方向不一样。
- 3ds Max、Blender:默认 Y 轴向上
- Maya、Unity、Unreal:默认 Z 轴向上
- CAD、Revit:默认 Z 轴向上,但单位通常是毫米
我有个血泪教训。几年前做智慧城市项目,团队用 Maya 做建筑模型,我用 Blender 做道路。合到一起时,所有建筑都「躺」在地面上。为什么?因为 Maya 的 Z 轴向上,Blender 的 Y 轴向上。模型本身没毛病,但坐标系没对齐,整个场景就废了。
单位制:毫米、厘米还是米?
单位制混乱比坐标系更隐蔽。你想想看,一个 1 米长的桌子,在 Maya 里用厘米表示就是 100,在 Blender 里用米表示就是 1。导出到 Unity 时,如果不做单位换算,桌子要么变成 100 米长,要么变成 1 厘米长。
我整理了一张常用软件的单位对照表,建议你收藏:
| 软件 | 默认单位 | 导出建议 | 常见坑点 |
|---|---|---|---|
| 3ds Max | 英寸(Inch) | 厘米(cm) | 导入 Unity 时缩放因子 100 |
| Blender | 米(Meter) | 米(m) | FBX 导出时勾选「单位转换」 |
| Maya | 厘米(cm) | 厘米(cm) | 与 Unity 单位一致,无需缩放 |
| SketchUp | 毫米(mm) | 米(m) | 导出前必须手动换算 |
| CAD | 毫米(mm) | 毫米(mm) | 导入引擎前除以 1000 |
核心逻辑:坐标系与单位制的「对齐流程」
下面这张图是我自己总结的「场景搭建地基检查流程」。每次开始新项目,我都会走一遍这个流程,基本没再出过错。
实战案例:一个「悬空」的椅子
有一次,一个学员发来截图,椅子模型在 Blender 里看着好好的,导入 Unity 后却悬在半空中。我让他检查原点位置。
果然,椅子的原点在模型底部中心,但 Blender 导出时原点默认在世界原点。椅子本身高 0.8 米,原点在底部,所以椅子底部在 y=0,顶部在 y=0.8。但导入 Unity 后,引擎把原点当成了椅子的中心,结果椅子底部在 y=-0.4,顶部在 y=0.4——看起来就像悬空了。
我的「地基检查清单」
嗯,这里我直接给你一份清单。每次开始新场景搭建前,花 5 分钟过一遍:
- 确认目标平台:PC、移动端还是 VR?不同平台对单位精度要求不同。
- 统一坐标系:所有软件设置成同一轴向。我个人推荐 Z 轴向上(Unreal 标准)。
- 统一单位制:全部用「米」。建模时 1 单位 = 1 米,导出时不要缩放。
- 导出测试模型:做一个 1m×1m×1m 的立方体,导入引擎后测量尺寸是否准确。
- 检查原点位置:每个模型的原点是否在预期位置?地面物体是否在 y=0?
- 团队约定文档:把以上规则写成文档,新成员加入时先读这个。
说白了,坐标系和单位制就是场景搭建的「地基」。地基没打好,后面再漂亮的模型也是白搭。我见过太多项目因为这个问题返工,有的甚至拖了一两周。
你想想看,与其后期花时间手动调整几百个模型的位置,不如一开始就花 10 分钟把规则定好。这笔账,怎么算都划算。
Scene Scale 属性统一调整单位。在 Maya 里,用 Working Units 设置。在 3ds Max 里,用 System Unit Setup。记住:所有软件的单位设置必须在导入/导出前统一,而不是在引擎里做二次缩放。
好了,这一章就到这里。坐标系和单位制搞定了,你的场景搭建之路才算真正开始。