持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第 3 天,点击查看活动详情
软件
Blender 3.3.0 | 虚幻引擎 5.0.3
以下是通过 FBX 文件格式将 3D 内容从 Blender 导出到虚幻引擎的准备和指南列表。
Blender 场景和模型设置
Blender 中的系统单位
在 Blender 中定义场景单元如下:
Blender 默认的单位系统是 公制
(Metric),单位尺度是 1.
,长度是 米
我们设置单位尺度为 0.01
,并使用 厘米
单位来建模。
在 1 米的单位上建模似乎可以被正确地导入到 UE,但实际上会 导致无法解决的问题,如骨骼网格物理资产有不正确的自动生成的形状,在我的经验中,这个问题不能手动修复。
变换(Transform)
在 Blender 中建模你的模型,即世界坐标系下,前面沿着 -Y
轴,顶面沿着 +Z
向上(对于 Blender 是显然的)。
通过这种方式,模型与 Blender 的视图对齐,所以前视图显示模型的正面。
确保在导出之前应用了模型的转换。
枢轴(Armature)
确保枢轴对象没有命名为 Armature
。
命名或留下名为 Armature
的 Blender 骨架将导致 UE 导入失败,因为其有 “多个根”。
还记得一些与动画比例导入错误相关的奇怪 bug,但现在无法确认。
层级中不需要专门的根骨。枢轴对象就是骨骼层级的根。
参见下面的导出选项
纹理烘焙
将法线贴图的绿色通道设置为 -Y
。
这一点倒不是很重要,因为如果烘焙成
+Y
的话,它可以很容易地在 UE 中修改。
元数据
Blender 自定义属性 作为 UE 资产元数据 导入,编辑器脚本可以读取这些元数据以实现自动化。
参见下面的导出选项
FBX Blender 导出和 UE 导入设置
建议用以下这些设置保存一个 FBX 导出预设。
可选
希望导出设置只包括 Selected Objects
。
对我来说,在导出之前选择 想要导出到单个 FBX 文件的具体对象 比 从场景中删除所有的临时/参考/草稿对象 更高效。
如果你想将 Blender 自定义属性导出到 FBX,选中 Custom Properties
选项
轴(Axis)
Blender 的原生模型/世界方向是 模型的 正向 面向 -Y
轴,左侧面向 +X
轴,向上 面向 +Z
轴。
UE 的原生模型/世界方向是 模型的 正向 面向 +X
轴,左侧面向 -Y
轴,向上 面向 +Z
轴。
在 Blender 的 FBX 导出模块 中有轴的设置,理论上,应该像这样设置:
然而,在我做的测试中,当导入到 UE 时,轴设置 没有任何区别,即使设置了故意不正确的倒置轴。
也许 FBX 导出器将这些设置写入元数据,可惜 UE4 导入器读取不了..
根据我的经验,最重要的是在 Blender 中正确定位模型(见上面),应用转换,
在 UE 导入菜单中,选中 Force Front XAxis
选项:
几何(Geometry)
确保在 Smoothing
选项中选择了 Edge
或 Face
,以正确导入网格的平滑着色,避免在导入时出现平滑组警告:
- 警告示例
可选
取决于你对网格切线空间的控制程度,
你可能想要检查 Tangent Space
导出选项,
这将使 Blender 导出 完整的切线空间 到 FBX,并使 UE 从 FBX 读取它,而不是自动生成它。
为了支持这个选项,网格几何 必须 只有 三角形 或 四边形 的多边形。
在 UE 的 导入设置 中,在 Normal Import Method
中选择 Import Normals and Tangents
选项:
枢轴(Armature)
设置 Armature FBXNode Type
为 Root
。
取消勾选 Add Leaf Bones
选项,以避免添加不需要的末端骨。
设骨头主轴为 X
,次轴为 -Z
。
动画
取消勾选 All Actions
,以避免导出实际上不属于骨架的动作。
FBX 中不相关的动画也会破坏 UE 中的角色休息姿势。
NLA Strips
选项在导出带有骨架的动画库时非常有用。
在 Blender 的 NLA 编辑器 中,激活你想要导出到 FBX 的动作。