Reproduzierbarer Export aus den Blender-Quellen der Godot-Referenz nach FBX, geprüft auf beiden Seiten; sechs repräsentative Assets vollständig in Unity verifiziert (normale Einheit g01, Einheit mit Skelett Funkenlanze, Turm Grenzwacht, Ancient, Schlundkrone, Vegetation/Kartenrequisiten), dazu Bastion, Kernwacht und Bossgrotte für die Szene. - tools/blender: Manifest mit Exportregeln je Asset, Exportskript mit Prüfungen (Einheiten, Maßstab, Achsen, Vorderseite, Mesh-Namen, Dreiecke, Materialslots, Normalen, Tangenten, Vertexfarben, Maße, Root Bone, Bone-Namen, Clips, Blend Shapes) gegen die Manifeste der Godot-GLBs, FBX-Rundreise, byteidentische Ausgabe (feste Uhrzeit, PYTHONHASHSEED). - Regeln wie beim GLB-Export: HIGH-RES-Modifikatoren weglassen, logische Namen, Skin-Teile zusammenfügen; 180°-Drehung, damit die Vorderseite nach Unitys Achsen-Bake auf +Z liegt (Unity = (-x, y, z) der Godot-Koordinaten). - Unity: Importregeln (Postprocessor), Verifier gegen das Blender-Protokoll, Vorschaubilder; URP-Asset, Linear-Farbraum, URP-Settings nach Assets/Luneraria/Settings/Rendering. - Ergebnis: 176/176 Blender-Prüfungen, 128/128 Unity-Prüfungen, Dreiecke gleich den Godot-GLBs, Maße auf 0,05 mm. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
58 lines
3.4 KiB
JSON
58 lines
3.4 KiB
JSON
{
|
|
"comment": "Export rules per asset for tools/blender/lune_fbx_export.py. source: Blender file in the Godot reference (../saumwacht-godot). godot_manifest: the manifest entry of the GLB the reference game uses; the FBX must match it (triangles, names, materials, bounds, bones, clips). kind: static | rigid (named parts, animated by the view) | skinned.",
|
|
"assets": [
|
|
{
|
|
"id": "g01", "group": "Units", "kind": "rigid", "representative": "normal unit (Glutpakt melee, 131 named parts)",
|
|
"source": "assets-source/phase4/blend/g01.blend",
|
|
"godot_manifest": {"file": "assets/phase4_manifest.json", "id": "g01"},
|
|
"rules": {"skip_modifiers": ["HIGH RES"], "logical_names": true, "forward_marker": "Forward", "check_parts": false}
|
|
},
|
|
{
|
|
"id": "funkenlanze", "group": "Characters", "kind": "skinned", "representative": "rigged unit (hero Funkenlanze)",
|
|
"source": "assets-source/phase18/funkenlanze.blend",
|
|
"godot_manifest": {"file": "assets/phase18_manifest.json", "id": "g05"},
|
|
"rules": {"join": {"parent": "FunkenRig", "into": "FunkenBody"}, "rest_action": null, "root_bone": "Root",
|
|
"required_clips": ["idle", "walk", "attack_a", "attack_b", "hit", "ability", "death"]}
|
|
},
|
|
{
|
|
"id": "grenzwacht", "group": "Buildings", "kind": "static", "representative": "tower (outer lane tower)",
|
|
"source": "assets-source/luneraria/g2/grenzwacht.blend",
|
|
"godot_manifest": {"file": "assets/luneraria/g2/g2_manifest.json", "id": "grenzwacht"},
|
|
"rules": {"bounds_exclude": ["Upper_Damaged", "Debris", "Ruin", "Pennant", "Banner"]}
|
|
},
|
|
{
|
|
"id": "ancient", "group": "Buildings", "kind": "static", "representative": "Ancient (Mondherz)",
|
|
"source": "assets-source/luneraria/g2/ancient.blend",
|
|
"godot_manifest": {"file": "assets/luneraria/g2/g2_manifest.json", "id": "ancient"},
|
|
"rules": {"bounds_exclude": ["Banner", "Ruin_"]}
|
|
},
|
|
{
|
|
"id": "schlundkrone", "group": "Characters", "kind": "skinned", "representative": "Schlundkrone (boss)",
|
|
"source": "assets-source/luneraria/g2/schlundkrone.blend",
|
|
"godot_manifest": {"file": "assets/luneraria/g2/g2_manifest.json", "id": "schlundkrone"},
|
|
"rules": {"rest_action": null, "root_bone": "Root",
|
|
"required_clips": ["idle", "walk", "attack_a", "attack_b", "hit", "ability", "death", "roar", "victory"]}
|
|
},
|
|
{
|
|
"id": "map_props", "group": "Environment", "kind": "static", "representative": "vegetation and map props (oaks, pines, shrubs, rocks, bridge, curb)",
|
|
"source": "assets-source/luneraria/map_props.blend"
|
|
},
|
|
{
|
|
"id": "bastion", "group": "Buildings", "kind": "static",
|
|
"source": "assets-source/luneraria/g2/bastion.blend",
|
|
"godot_manifest": {"file": "assets/luneraria/g2/g2_manifest.json", "id": "bastion"},
|
|
"rules": {"bounds_exclude": ["Upper_Damaged", "Debris", "Ruin", "Pennant", "Banner"]}
|
|
},
|
|
{
|
|
"id": "kernwacht", "group": "Buildings", "kind": "static",
|
|
"source": "assets-source/luneraria/g2/kernwacht.blend",
|
|
"godot_manifest": {"file": "assets/luneraria/g2/g2_manifest.json", "id": "kernwacht"},
|
|
"rules": {"bounds_exclude": ["Upper_Damaged", "Debris", "Ruin", "Pennant", "Banner"]}
|
|
},
|
|
{
|
|
"id": "bossgrotte", "group": "Buildings", "kind": "static",
|
|
"source": "assets-source/luneraria/g2/bossgrotte.blend",
|
|
"godot_manifest": {"file": "assets/luneraria/g2/g2_manifest.json", "id": "bossgrotte"}
|
|
}
|
|
]
|
|
}
|