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>
405 lines
6.5 KiB
JSON
405 lines
6.5 KiB
JSON
{
|
|
"id": "funkenlanze",
|
|
"group": "Characters",
|
|
"source": "assets-source/phase18/funkenlanze.blend",
|
|
"exporter_version": 5,
|
|
"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": true,
|
|
"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": "['FunkenBody']"
|
|
},
|
|
{
|
|
"check": "material_slots_filled",
|
|
"ok": true,
|
|
"detail": "{}"
|
|
},
|
|
{
|
|
"check": "normals_unit_length",
|
|
"ok": true,
|
|
"detail": "[]"
|
|
},
|
|
{
|
|
"check": "tangent_prerequisites",
|
|
"ok": true,
|
|
"detail": "{}"
|
|
},
|
|
{
|
|
"check": "no_blend_shapes",
|
|
"ok": true,
|
|
"detail": "{}"
|
|
},
|
|
{
|
|
"check": "triangles_match_godot",
|
|
"ok": true,
|
|
"detail": "24036 fbx / 24036 godot"
|
|
},
|
|
{
|
|
"check": "mesh_names_match_godot",
|
|
"ok": true,
|
|
"detail": "[]"
|
|
},
|
|
{
|
|
"check": "bounds_match_godot",
|
|
"ok": true,
|
|
"detail": "largest difference 0.00005 m"
|
|
},
|
|
{
|
|
"check": "one_armature",
|
|
"ok": true,
|
|
"detail": "['FunkenRig']"
|
|
},
|
|
{
|
|
"check": "single_root_bone",
|
|
"ok": true,
|
|
"detail": "['Root']"
|
|
},
|
|
{
|
|
"check": "root_bone_name",
|
|
"ok": true,
|
|
"detail": "['Root']"
|
|
},
|
|
{
|
|
"check": "bone_count_match_godot",
|
|
"ok": true,
|
|
"detail": "26 / 26"
|
|
},
|
|
{
|
|
"check": "bone_names_portable",
|
|
"ok": true,
|
|
"detail": "[]"
|
|
},
|
|
{
|
|
"check": "skinned_meshes_present",
|
|
"ok": true,
|
|
"detail": ""
|
|
},
|
|
{
|
|
"check": "clips_match_godot",
|
|
"ok": true,
|
|
"detail": "[]"
|
|
},
|
|
{
|
|
"check": "required_clips_present",
|
|
"ok": true,
|
|
"detail": "[]"
|
|
},
|
|
{
|
|
"check": "roundtrip_mesh_names",
|
|
"ok": true,
|
|
"detail": "[]"
|
|
},
|
|
{
|
|
"check": "roundtrip_triangles",
|
|
"ok": true,
|
|
"detail": "24036 / 24036"
|
|
},
|
|
{
|
|
"check": "roundtrip_materials",
|
|
"ok": true,
|
|
"detail": "[]"
|
|
},
|
|
{
|
|
"check": "roundtrip_bones",
|
|
"ok": true,
|
|
"detail": "[]"
|
|
},
|
|
{
|
|
"check": "roundtrip_clips",
|
|
"ok": true,
|
|
"detail": "['ability', 'attack_a', 'attack_b', 'death', 'hit', 'idle', 'start', 'stop', 'walk']"
|
|
}
|
|
],
|
|
"source_sha256": "e21714e04a93f6266aae2edbf7db69c25d33b00429ebf62c01c6f832e18a771f",
|
|
"removed_modifiers": 0,
|
|
"joined_parts": 104,
|
|
"kind": "skinned",
|
|
"fps": 30.0,
|
|
"objects": 2,
|
|
"meshes": {
|
|
"FunkenBody": {
|
|
"mesh": "FunkenBody",
|
|
"triangles": 24036,
|
|
"vertices": 12226,
|
|
"ngons": 0,
|
|
"materials": [
|
|
"FL_Basalt",
|
|
"FL_BurnishedBronze",
|
|
"FL_Obsidian",
|
|
"FL_Ember",
|
|
"FL_Joint",
|
|
"FL_BronzeEdge",
|
|
"FL_Iron",
|
|
"FL_Crystal"
|
|
],
|
|
"uv_layers": [
|
|
"UVMap"
|
|
],
|
|
"color_attributes": [
|
|
"SurfaceColor"
|
|
],
|
|
"active_color": "SurfaceColor",
|
|
"custom_normals": false,
|
|
"normals_unit_length": true,
|
|
"shape_keys": 0,
|
|
"skinned": true,
|
|
"scale": [
|
|
1.0,
|
|
1.0,
|
|
1.0
|
|
],
|
|
"bounds_unity": {
|
|
"min": [
|
|
-0.5652,
|
|
-0.0104,
|
|
-0.2945
|
|
],
|
|
"max": [
|
|
0.43,
|
|
2.0212,
|
|
1.435
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"armatures": {
|
|
"FunkenRig": {
|
|
"bones": [
|
|
"Root",
|
|
"Pelvis",
|
|
"Spine",
|
|
"Chest",
|
|
"Neck",
|
|
"Head",
|
|
"Clavicle.L",
|
|
"UpperArm.L",
|
|
"Forearm.L",
|
|
"Hand.L",
|
|
"Index.L",
|
|
"Clavicle.R",
|
|
"UpperArm.R",
|
|
"Forearm.R",
|
|
"Hand.R",
|
|
"Index.R",
|
|
"Weapon",
|
|
"Bolt",
|
|
"Crystal",
|
|
"Chamber",
|
|
"Thigh.L",
|
|
"Shin.L",
|
|
"Foot.L",
|
|
"Thigh.R",
|
|
"Shin.R",
|
|
"Foot.R"
|
|
],
|
|
"roots": [
|
|
"Root"
|
|
]
|
|
}
|
|
},
|
|
"empties": {},
|
|
"bounds_unity": {
|
|
"min": [
|
|
-0.5652,
|
|
-0.0104,
|
|
-0.2945
|
|
],
|
|
"max": [
|
|
0.43,
|
|
2.0212,
|
|
1.435
|
|
]
|
|
},
|
|
"clips": [
|
|
{
|
|
"name": "ability",
|
|
"frames": [
|
|
0.0,
|
|
39.0
|
|
],
|
|
"seconds": 1.3,
|
|
"loop": false,
|
|
"contact_seconds": 0.9
|
|
},
|
|
{
|
|
"name": "attack_a",
|
|
"frames": [
|
|
0.0,
|
|
39.0
|
|
],
|
|
"seconds": 1.3,
|
|
"loop": false,
|
|
"contact_seconds": 0.9
|
|
},
|
|
{
|
|
"name": "attack_b",
|
|
"frames": [
|
|
0.0,
|
|
39.0
|
|
],
|
|
"seconds": 1.3,
|
|
"loop": false,
|
|
"contact_seconds": 0.9
|
|
},
|
|
{
|
|
"name": "death",
|
|
"frames": [
|
|
0.0,
|
|
60.0
|
|
],
|
|
"seconds": 2.0,
|
|
"loop": false,
|
|
"contact_seconds": -1.0
|
|
},
|
|
{
|
|
"name": "hit",
|
|
"frames": [
|
|
0.0,
|
|
15.0
|
|
],
|
|
"seconds": 0.5,
|
|
"loop": false,
|
|
"contact_seconds": -1.0
|
|
},
|
|
{
|
|
"name": "idle",
|
|
"frames": [
|
|
0.0,
|
|
90.0
|
|
],
|
|
"seconds": 3.0,
|
|
"loop": true,
|
|
"contact_seconds": -1.0
|
|
},
|
|
{
|
|
"name": "start",
|
|
"frames": [
|
|
0.0,
|
|
12.0
|
|
],
|
|
"seconds": 0.4,
|
|
"loop": false,
|
|
"contact_seconds": -1.0
|
|
},
|
|
{
|
|
"name": "stop",
|
|
"frames": [
|
|
0.0,
|
|
12.0
|
|
],
|
|
"seconds": 0.4,
|
|
"loop": false,
|
|
"contact_seconds": -1.0
|
|
},
|
|
{
|
|
"name": "walk",
|
|
"frames": [
|
|
0.0,
|
|
36.0
|
|
],
|
|
"seconds": 1.2,
|
|
"loop": true,
|
|
"contact_seconds": -1.0
|
|
}
|
|
],
|
|
"expected_from_godot": {
|
|
"triangles": 24036,
|
|
"bounds_godot": {
|
|
"min": [
|
|
-0.4300000071525574,
|
|
-0.010409347712993622,
|
|
-0.2945486903190613
|
|
],
|
|
"max": [
|
|
0.5651692152023315,
|
|
2.021195411682129,
|
|
1.4350000619888306
|
|
]
|
|
},
|
|
"bones": 26,
|
|
"clips": [
|
|
"idle",
|
|
"start",
|
|
"walk",
|
|
"stop",
|
|
"attack_a",
|
|
"attack_b",
|
|
"hit",
|
|
"ability",
|
|
"death"
|
|
],
|
|
"resource_path": "res://assets/characters/funkenlanze.glb"
|
|
},
|
|
"meshes_without_uv": [],
|
|
"triangles": 24036,
|
|
"fbx": "Assets/Luneraria/Art/Characters/funkenlanze.fbx",
|
|
"fbx_bytes": 3675308,
|
|
"ok": true
|
|
}
|