The bpy.ops.export_scene.fbx argument block was duplicated in six scripts (hero, block frontage, north buildings, site, scale test, MPFB character) and all six carried mesh_smooth_type="OFF", which drops smoothing groups and made every Unreal import warn and every round part faceted. Tools/fbx_export_preset.py now owns the presets: - preset_kwargs(preset, selection, **overrides) is bpy-free and unit-tested; - export_static()/export_character() are thin wrappers that import bpy lazily; - ue_metric_v1 and ue_character_v1 keep the recorded scale contract (FBX_SCALE_NONE, apply_unit_scale, -Y forward / Z up) and use FACE smoothing. Callers switched: hero_facade_build, export_block_frontage, export_north_buildings, scale_test_export, mpfb_character_export, Art/blender/site/export_site_fbx. Verified by re-exporting every asset through the preset and re-importing all of them: 0 smoothing warnings on site, frontage and north buildings; packaging and -qaselftest all PASS (walk, transect 0 holes, wall probe 0/35, facade probe 0/9). 49 tool tests pass (9 new for the preset contract).
Art
Editable sources and original textures. Exported, game-ready output goes to Game/Content/.
Layout (as content arrives)
| Path | Contents |
|---|---|
Art/blender/ |
.blend sources, one file per building or asset family |
Art/textures/ |
Original texture sources before baking or compression |
Art/reference/ |
Reference photography, local only, gitignored — never committed. Fetch with Tools/commons_fetch.py; what it is evidence for goes in Docs/reference-notes-hollywood.md |
Rules
- Every
.blendsaves with a real-world metric scene scale. No exceptions; scale drift is the main source of import defects. - Named export presets only. Record the preset name and its settings next to the asset that used it.
- Textures enter as a documented source (author, licence, source URL) and are listed in ../THIRD_PARTY_NOTICES.md.
- Reference photography is never committed and never shipped. It is evidence, not content. Licensing is not a gate for local private development, but anything that would derive from a reference in a shipped asset needs a licensing decision before release.
.blendfiles are LFS-tracked and lockable; pull before editing.