【用途】 blender-export-pipelines 用于把 Blender 资产按预设导出到游戏引擎和通用格式。其执行模型位于 blender-core。在导出前,应先运行 blender-asset-qa,若涉及资源预算,还应运行 blender-game-optimization。
【主要能力】 提供一次调用式导出脚本,支持多种预设:roblox、roblox_gltf、unity、unity_skeletal、unreal、unreal_skeletal、godot、web、gltf、usd。可通过 --set key=value 传入任意导出器参数。每个预设都经过往返测试,保持缩放并避免 100 倍骨架缩放问题。
示例命令: scripts/export_asset.py -- --preset unreal_skeletal --objects SK_Hero --out //export/SK_Hero.fbx scripts/export_asset.py -- --preset web --collection Export --out //export/scene.glb scripts/export_asset.py -- --preset unity --objects SM_A SM_B SM_C --batch --out //export/x.fbx (batch 为每个对象在原点各导出一个文件。)
【引擎参考文档】 按需加载:references/roblox.md(MeshParts、R15 角色身体、配件、分层服装 cages、SurfaceAppearance、限制);references/unity.md(FBX 设置、Humanoid 骨架、URP/HDRP 贴图、动画剪辑);references/unreal.md(静态/骨骼 FBX、根骨骼、UCX 碰撞、LOD、Nanite、ORM/DirectX);references/godot-web.md(glTF/GLB、导入后缀、three.js/Babylon、压缩、KHR 扩展)。
【通用导出前检查清单】 缩放:场景单位缩放 1.0,对象缩放 1,应用旋转(除有意保留的对象变换);预设会处理单位转换。 轴心/原点:道具在底部中心,角色在世界原点两脚之间,朝向 -Y(Blender 正面);每个预设会转换为引擎的前向。 修改器:预设导出评估后的网格;Mirror、Bevel 和 Weighted Normals 保留,布尔会变为实际几何体。 法线:自定义/加权法线可导出;平滑着色,并用 sharp 标记硬边。 三角化:FBX 预设三角化(use_triangles),使烘焙与引擎切线一致;glTF 始终三角化。 材质:仅使用图像纹理到 Principled 的链路,命名 M_,纹理命名 T_;程序化节点不会导出,需先烘焙。 骨架:仅变形骨骼,无叶骨,静止姿势即绑定姿势,每顶点最多 4 个权重,根骨在原点。 动画:每个剪辑一个 action,命名为 Rig_Clip;将约束/IK 烘焙为关键帧(见 blender-animation)。FBX 按预设设置导出活动/NLA action;glTF ACTIONS 模式导出骨架有对应 slot 的所有 action。 命名:唯一、ASCII、无空格;引擎在重新导入时以名称识别材质/网格。
【格式选择】 Unity、Unreal(骨骼最稳定)用 FBX;Godot、Web、Roblox(支持)、Unreal 5.x Interchange、Blender 互导用 glTF 2.0(.glb);影视/VFX、Omniverse、Apple AR(.usdz)、布局交换用 USD;打印/CAD 的静态几何用 OBJ/STL(wm.obj_export、wm.stl_export);点缓存/变形模拟用 Alembic(wm.alembic_export)。
【导出后验证(必需)】 脚本返回 ok、文件大小;对 .glb 返回解析摘要(网格、材质、图像、动画、蒙皮、三角面、扩展),与预期对比。 FBX/USD:导入空场景(import_scene.fbx / wm.usd_import),检查尺寸、骨架缩放(应为 1,而非 100)和 action 数量。 引擎内:对照参考物检查缩放(UE 人形 180 cm、Unity 胶囊 2 m、Roblox 角色 5 studs)、法线/平滑、法线贴图绿通道、动画根运动。
【集合导出器(4.2+ 一键再导出)】 参见 blender-scene-setup:collection.exporters 按集合保存格式与设置,bpy.ops.wm.collection_export_all() 可重新导出全部。
【注意事项】 FBX use_tspace 在 n-gon 上会静默失败,需先三角化(预设已做)。 bake_space_transform(Apply Transform)为实验性,仅用于 Unity 静态网格,切勿与骨架同用。 glTF 导出通过 slot/NLA 关联的 action;骨架无使用者(user)的 action 会被跳过(export_animation_mode 选项:ACTIONS、ACTIVE_ACTIONS、NLA_TRACKS、SCENE、BROADCAST)。 glTF 需要 PNG/JPEG/WebP 图像纹理,EXR/TIFF 会被转换(export_image_format)。 链接库数据可正常导出,但如需修改应先本地化或覆盖。 形态键:FBX 导出为 blendshape,glTF 导出为 morph target(export_morph)。位于 Armature 修改器之前的修改器可能阻止 FBX 形态键导出,需先应用。