champions-of-luneraria/Assets/Luneraria/Art/Environment/map_props.export.json
Martin Stickelbroeck 3ca38a8443 U2 Batch Asset Import
Alle 86 Modelle der Godot-Referenz laufen durch die Blender→FBX-Pipeline
(nach bestandenem Vertical Function Test); jede Einheit zeigt ihr eigenes
Modell.

- Exportmanifest aus den Godot-Manifesten (tools/blender/make_manifest.py):
  Units, Enemies, Props, Characters, Peoples, Buildings, Environment; die
  drei Vergleichs-GLBs als Aliase. Neu in der Pipeline: Tangenten berechnet
  Unity mit MikkTSpace, Generatoren laufen in einer temporären Kopie, die
  Grüne Kluft wird wie das GLB zusammengefasst, Texturen kommen mit.
  1.616 Blender- und 1.247 Unity-Prüfungen grün, zwei Exportläufe
  byteidentisch; Kontaktbögen je Gruppe.
- Einheitenbibliothek nach Godots AssetLibrary: 70 Einträge der
  Einheitengruppen, Figuren mit Skelett ersetzen das starre Modell ihrer ID.
  Starre Modelle werden zur Laufzeit je Material zusammengefasst; Controller
  werden an Ort und Stelle aktualisiert.
- Tests mit allen Modellen: EditMode 11/11, PlayMode 2/2. Vertical Function
  Test Seed 2 DCE95C96556F3A1A und Seed 9 ab Runde 21 7B8E43AEFC0D60C5,
  beide gleich dem Kern (Nachweise mit LUNE_EVIDENCE=u2a-batch; die Belege
  von U2C und U2D bleiben unverändert).
- macOS-Player mit allen Modellen: 158-160 fps in der Übersicht
  (116 Einheiten), 205-207 fps auf der Mid-Lane; Haupt- und Render-Thread
  etwa doppelt so lang wie mit dem Platzhalter, Present-Ausreißer kürzer.
- Befund iCloud Drive: Konfliktkopien ("Name 2.ext") im Build-Cache ließen
  den Build die Einheitenbibliothek mit altem Feldlayout schreiben; der
  Player meldete sharedassets0.assets als beschädigt. LunePlayerBuild
  entfernt solche Kopien vor dem Build und bricht ab, wenn während des
  Builds neue entstehen. Bereits committete Kopien: Controller-Duplikate und
  World/Generated 2.meta entfernt, drei U2D-Benchmarkläufe als -run1 bis
  -run3 benannt.
- Dokumentation: U2-WORLD (Batch-Import), PORT-STATUS (Entscheidungen:
  Modelle direkt in Git, Projektort außerhalb von iCloud Drive), PORT-QA.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 19:10:35 +02:00

710 lines
12 KiB
JSON

{
"id": "map_props",
"group": "Environment",
"source": "assets-source/luneraria/map_props.blend",
"exporter_version": 10,
"blender": "5.2.2 LTS",
"fbx_settings": {
"use_selection": true,
"use_visible": false,
"use_active_collection": false,
"global_scale": 1.0,
"apply_unit_scale": true,
"apply_scale_options": "FBX_SCALE_UNITS",
"axis_forward": "Y",
"axis_up": "Z",
"bake_space_transform": false,
"object_types": [
"ARMATURE",
"EMPTY",
"MESH"
],
"use_mesh_modifiers": true,
"use_mesh_modifiers_render": true,
"mesh_smooth_type": "OFF",
"use_subsurf": false,
"use_mesh_edges": false,
"use_tspace": false,
"use_triangles": false,
"colors_type": "LINEAR",
"prioritize_active_color": true,
"use_custom_props": false,
"add_leaf_bones": false,
"primary_bone_axis": "Y",
"secondary_bone_axis": "X",
"use_armature_deform_only": true,
"armature_nodetype": "NULL",
"bake_anim": true,
"bake_anim_use_all_bones": true,
"bake_anim_use_nla_strips": false,
"bake_anim_use_all_actions": true,
"bake_anim_force_startend_keying": true,
"bake_anim_step": 1.0,
"bake_anim_simplify_factor": 0.0,
"path_mode": "STRIP",
"embed_textures": false,
"batch_mode": "OFF"
},
"checks": [
{
"check": "turn_applied",
"ok": true,
"detail": "[]"
},
{
"check": "units_metric",
"ok": true,
"detail": "METRIC"
},
{
"check": "unit_scale_1",
"ok": true,
"detail": "1.0"
},
{
"check": "no_negative_scale",
"ok": true,
"detail": "{}"
},
{
"check": "object_scale_1",
"ok": true,
"detail": "{}"
},
{
"check": "mesh_names_unique",
"ok": true,
"detail": "['Banner', 'Bridge', 'Curb', 'EdgeCliff', 'Oak_0', 'Oak_1', 'Oak_2', 'Pine_0', 'Pine_1', 'Pine_2', 'Rock_0', 'Rock_1', 'Rock_2', 'Shrub_0', 'Shrub_1']"
},
{
"check": "material_slots_filled",
"ok": true,
"detail": "{}"
},
{
"check": "normals_unit_length",
"ok": true,
"detail": "{}"
},
{
"check": "no_blend_shapes",
"ok": true,
"detail": "{}"
},
{
"check": "no_armature",
"ok": true,
"detail": "[]"
},
{
"check": "roundtrip_mesh_names",
"ok": true,
"detail": "[]"
},
{
"check": "roundtrip_triangles",
"ok": true,
"detail": "7338 / 7338"
},
{
"check": "roundtrip_materials",
"ok": true,
"detail": "[]"
}
],
"source_sha256": "e2e723fc53da0d4bb686800ddba36ebebe7708e0944c32a81fd6d9c159e30e68",
"removed_modifiers": 0,
"kind": "static",
"fps": 24.0,
"objects": 15,
"meshes": {
"Bridge": {
"mesh": "Deck_0",
"triangles": 1088,
"vertices": 656,
"ngons": 0,
"materials": [
"ENV_paving",
"ENV_limestone",
"ENV_brass"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-5.515,
-1.3,
-3.9
],
"max": [
5.515,
1.46,
3.9
]
}
},
"Curb": {
"mesh": "Curb",
"triangles": 12,
"vertices": 8,
"ngons": 0,
"materials": [
"ENV_limestone"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-0.65,
-0.01,
-0.21
],
"max": [
0.65,
0.25,
0.21
]
}
},
"Pine_0": {
"mesh": "Trunk",
"triangles": 358,
"vertices": 191,
"ngons": 0,
"materials": [
"ENV_bark",
"ENV_leaf_dark",
"ENV_leaf_mid"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-1.411,
0.0,
-1.3761
],
"max": [
1.2882,
4.332,
1.3462
]
}
},
"Pine_1": {
"mesh": "Trunk.001",
"triangles": 358,
"vertices": 191,
"ngons": 0,
"materials": [
"ENV_bark",
"ENV_leaf_dark",
"ENV_leaf_mid"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-1.4442,
0.0,
-1.4865
],
"max": [
1.434,
5.244,
1.3943
]
}
},
"Pine_2": {
"mesh": "Trunk.002",
"triangles": 358,
"vertices": 191,
"ngons": 0,
"materials": [
"ENV_bark",
"ENV_leaf_dark",
"ENV_leaf_mid"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-1.5452,
0.0,
-1.5182
],
"max": [
1.4493,
3.648,
1.5733
]
}
},
"Oak_0": {
"mesh": "Trunk.003",
"triangles": 1270,
"vertices": 669,
"ngons": 0,
"materials": [
"ENV_bark",
"ENV_leaf_mid",
"ENV_leaf_light",
"ENV_leaf_dark"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-1.7039,
-0.0306,
-1.8912
],
"max": [
1.373,
4.02,
1.5742
]
}
},
"Oak_1": {
"mesh": "Trunk.004",
"triangles": 1270,
"vertices": 669,
"ngons": 0,
"materials": [
"ENV_bark",
"ENV_leaf_mid",
"ENV_leaf_light",
"ENV_leaf_dark"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-1.7964,
-0.0255,
-1.5792
],
"max": [
1.5389,
4.6442,
1.6028
]
}
},
"Oak_2": {
"mesh": "Trunk.005",
"triangles": 1270,
"vertices": 669,
"ngons": 0,
"materials": [
"ENV_bark",
"ENV_leaf_mid",
"ENV_leaf_light",
"ENV_leaf_dark"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-1.7448,
-0.0387,
-1.4185
],
"max": [
1.6053,
3.4947,
1.7902
]
}
},
"Rock_0": {
"mesh": "Rock",
"triangles": 140,
"vertices": 78,
"ngons": 0,
"materials": [
"ENV_cliff",
"ENV_leaf_dark",
"ENV_limestone"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-1.7155,
-0.04,
-1.0953
],
"max": [
1.0683,
1.0416,
1.0294
]
}
},
"Rock_1": {
"mesh": "Rock.001",
"triangles": 140,
"vertices": 78,
"ngons": 0,
"materials": [
"ENV_cliff",
"ENV_leaf_dark",
"ENV_limestone"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-2.4291,
-0.055,
-1.4554
],
"max": [
1.8589,
1.5017,
1.32
]
}
},
"Rock_2": {
"mesh": "Rock.002",
"triangles": 140,
"vertices": 78,
"ngons": 0,
"materials": [
"ENV_cliff",
"ENV_leaf_dark",
"ENV_limestone"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-1.2032,
-0.025,
-0.7362
],
"max": [
0.776,
0.6172,
0.7375
]
}
},
"Shrub_0": {
"mesh": "Shrub",
"triangles": 80,
"vertices": 42,
"ngons": 0,
"materials": [
"ENV_leaf_mid"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-0.813,
0.135,
-0.8861
],
"max": [
0.7211,
0.8205,
0.7093
]
}
},
"Shrub_1": {
"mesh": "Shrub.001",
"triangles": 80,
"vertices": 42,
"ngons": 0,
"materials": [
"ENV_leaf_dark"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-1.0772,
0.135,
-0.8513
],
"max": [
0.9518,
0.9641,
0.8895
]
}
},
"Banner": {
"mesh": "Pole",
"triangles": 74,
"vertices": 48,
"ngons": 0,
"materials": [
"ENV_brass",
"PR_Banner"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-1.13,
0.0,
-0.0866
],
"max": [
0.1,
4.5,
0.0866
]
}
},
"EdgeCliff": {
"mesh": "Block_0",
"triangles": 700,
"vertices": 378,
"ngons": 0,
"materials": [
"ENV_cliff",
"ENV_leaf_mid"
],
"uv_layers": [],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": false,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-7.3684,
0.4308,
-2.0375
],
"max": [
7.4555,
4.1121,
1.9761
]
}
}
},
"armatures": {},
"empties": {},
"bounds_unity": {
"min": [
-7.3684,
-1.3,
-3.9
],
"max": [
7.4555,
5.244,
3.9
]
},
"clips": [],
"expected_from_godot": {},
"meshes_with_ngons": {},
"meshes_without_uv": [
"Banner",
"Bridge",
"Curb",
"EdgeCliff",
"Oak_0",
"Oak_1",
"Oak_2",
"Pine_0",
"Pine_1",
"Pine_2",
"Rock_0",
"Rock_1",
"Rock_2",
"Shrub_0",
"Shrub_1"
],
"triangles": 7338,
"fbx": "Assets/Luneraria/Art/Environment/map_props.fbx",
"fbx_bytes": 236284,
"ok": true
}