champions-of-luneraria/Assets/Luneraria/Art/Characters/funkenlanze_meshy.export.json
Martin Stickelbroeck eddf49dc88 U5.5 Funkenlanze: vierte Meshy-Figur (g05 und Heldin)
Figur und Lanze getrennt von Meshy; build_figure legt die Lanze in die
rechte Hand und bindet sie an RightHand (props), Lanzenstoß aus dem Stand
(in_place). Ersetzungen gelten nach den Godot-Zuordnungen. HUD-Porträts
zeichnen Skelettfiguren als gebackenes Netz: mit GPU-Skinning blieben
Karten leer. 110 Credits. Stresstest 38 Funkenlanzen gegen Phase 18:
Mid 128,6 -> 147,6 fps, Karte 112,4 -> 128,0. Tests grün, Fingerabdrücke
unverändert.

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

597 lines
10 KiB
JSON

{
"id": "funkenlanze_meshy",
"group": "Characters",
"source": "tools/meshy/build_figure.py",
"exporter_version": 11,
"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": "['FunkenlanzeLanze_LOD0', 'FunkenlanzeLanze_LOD1', 'Funkenlanze_meshyBody_LOD0', 'Funkenlanze_meshyBody_LOD1']"
},
{
"check": "material_slots_filled",
"ok": true,
"detail": "{}"
},
{
"check": "normals_unit_length",
"ok": true,
"detail": "{}"
},
{
"check": "no_blend_shapes",
"ok": true,
"detail": "{}"
},
{
"check": "triangles_match_godot",
"ok": true,
"detail": "29045 fbx / 29045 godot"
},
{
"check": "one_armature",
"ok": true,
"detail": "['Funkenlanze_meshyRig']"
},
{
"check": "single_root_bone",
"ok": true,
"detail": "['Root']"
},
{
"check": "root_bone_name",
"ok": true,
"detail": "['Root']"
},
{
"check": "bone_count_match_godot",
"ok": true,
"detail": "25 / 25"
},
{
"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": "29045 / 29045"
},
{
"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', 'walk']"
}
],
"generator": {
"clips": {
"idle": {
"source": "Idle",
"frames": [
0.0,
96.0
],
"seconds": 4.0,
"loop": true,
"contact_seconds": -1.0
},
"walk": {
"source": "Walk_Fight_Forward",
"frames": [
0.0,
40.0
],
"seconds": 1.2917,
"loop": true,
"contact_seconds": -1.0
},
"attack_a": {
"source": "Thrust_Slash",
"frames": [
4,
30
],
"seconds": 1.0,
"loop": false,
"contact_seconds": 0.6538
},
"attack_b": {
"source": "Right_Hand_Sword_Slash",
"frames": [
0,
36
],
"seconds": 1.0417,
"loop": false,
"contact_seconds": 0.4051
},
"hit": {
"source": "Hit_Reaction",
"frames": [
0,
12
],
"seconds": 0.5,
"loop": false,
"contact_seconds": -1.0
},
"ability": {
"source": "Charged_Slash",
"frames": [
0.0,
52.80000305175781
],
"seconds": 1.2083,
"loop": false,
"contact_seconds": 0.2975
},
"death": {
"source": "Shot_and_Fall_Backward",
"frames": [
0.0,
84.0
],
"seconds": 2.4167,
"loop": false,
"contact_seconds": -1.0
}
},
"textures": {
"glow_share": 0.0104,
"palette_gains": {
"rock": [
0.8951,
1.1038,
1.4391
],
"metal": [
2.0845,
1.7399,
0.7883
]
},
"size": [
2048,
2048
]
},
"unit": 0.009999999776482582,
"lod": {
"lod0_triangles": 20372,
"lod1_triangles": 4997,
"lod1_vertices": 2464,
"welded_triangles": 20372,
"lod0_screen": 0.2
},
"props": [
{
"name": "FunkenlanzeLanze",
"triangles": 3077,
"textures": {
"glow_share": 0.098,
"palette_gains": {
"rock": [
0.7881,
1.0317,
1.2699
],
"metal": [
2.1491,
1.8245,
0.8038
]
},
"size": [
2048,
2048
]
},
"lod": {
"lod0_triangles": 3077,
"lod1_triangles": 599,
"lod1_vertices": 292,
"welded_triangles": 3077,
"lod0_screen": 0.2
}
}
]
},
"inputs_sha256": {
"tools/meshy/g05/figure.json": "ec5cadcedc85c63ae7bea78912ad86b1c3f4efa1567fd1ce6b555743c130b085",
"assets-source/meshy/g05/funkenlanze-skelett.glb": "d7f93f79ae7993afaab8924b310307d38ec0c5e8b39f230826a10d79b33f91c1",
"assets-source/meshy/g05/funkenlanze-animationen.glb": "c47d742ee9379dee380ad2b1d4003778a56f301e38ea004c363901fd0065b383",
"assets-source/meshy/g05/funkenlanze-lanze.glb": "79406f8f6e5a51a449e2b55dde310ade8b17ebbfb0857092dae5829fc2aa902d"
},
"source_sha256": "d9ce9bca5de4e49a3b4e01f3304bebefc9a69497493699647c4ad9bcc40b2331",
"removed_modifiers": 0,
"kind": "skinned",
"fps": 24.0,
"objects": 5,
"meshes": {
"Funkenlanze_meshyBody_LOD0": {
"mesh": "Funkenlanze_meshyBody_LOD0",
"triangles": 20372,
"vertices": 24114,
"ngons": 0,
"materials": [
"AI_Funkenlanze"
],
"uv_layers": [
"UVMap"
],
"color_attributes": [],
"active_color": null,
"custom_normals": true,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": true,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-0.5654,
-0.0,
-0.1531
],
"max": [
0.565,
1.8,
0.1649
]
}
},
"FunkenlanzeLanze_LOD0": {
"mesh": "FunkenlanzeLanze_LOD0",
"triangles": 3077,
"vertices": 4763,
"ngons": 0,
"materials": [
"AI_FunkenlanzeLanze"
],
"uv_layers": [
"UVMap"
],
"color_attributes": [],
"active_color": null,
"custom_normals": true,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": true,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
0.2956,
0.8369,
-0.6454
],
"max": [
0.5814,
1.1601,
1.0769
]
}
},
"Funkenlanze_meshyBody_LOD1": {
"mesh": "Funkenlanze_meshyBody_LOD1",
"triangles": 4997,
"vertices": 2464,
"ngons": 0,
"materials": [
"AI_Funkenlanze"
],
"uv_layers": [
"UVMap"
],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": true,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
-0.5657,
0.0002,
-0.1539
],
"max": [
0.5653,
1.8005,
0.1654
]
}
},
"FunkenlanzeLanze_LOD1": {
"mesh": "FunkenlanzeLanze_LOD1",
"triangles": 599,
"vertices": 292,
"ngons": 0,
"materials": [
"AI_FunkenlanzeLanze"
],
"uv_layers": [
"UVMap"
],
"color_attributes": [],
"active_color": null,
"custom_normals": false,
"normals_unit_length": true,
"bad_normals": 0,
"degenerate_triangles": 0,
"shape_keys": 0,
"skinned": true,
"scale": [
1.0,
1.0,
1.0
],
"bounds_unity": {
"min": [
0.2952,
0.8349,
-0.6468
],
"max": [
0.5829,
1.1619,
1.0777
]
}
}
},
"armatures": {
"Funkenlanze_meshyRig": {
"bones": [
"Root",
"Hips",
"Spine02",
"Spine01",
"Spine",
"neck",
"Head",
"head_end",
"headfront",
"LeftShoulder",
"LeftArm",
"LeftForeArm",
"LeftHand",
"RightShoulder",
"RightArm",
"RightForeArm",
"RightHand",
"LeftUpLeg",
"LeftLeg",
"LeftFoot",
"LeftToeBase",
"RightUpLeg",
"RightLeg",
"RightFoot",
"RightToeBase"
],
"roots": [
"Root"
]
}
},
"empties": {},
"bounds_unity": {
"min": [
-0.5657,
-0.0,
-0.6468
],
"max": [
0.5829,
1.8005,
1.0777
]
},
"clips": [
{
"name": "ability",
"frames": [
0.0,
29.0
],
"seconds": 1.2083,
"loop": false,
"contact_seconds": 0.2975
},
{
"name": "attack_a",
"frames": [
0.0,
24.0
],
"seconds": 1.0,
"loop": false,
"contact_seconds": 0.6538
},
{
"name": "attack_b",
"frames": [
0.0,
25.0
],
"seconds": 1.0417,
"loop": false,
"contact_seconds": 0.4051
},
{
"name": "death",
"frames": [
0.0,
58.0
],
"seconds": 2.4167,
"loop": false,
"contact_seconds": -1.0
},
{
"name": "hit",
"frames": [
0.0,
12.0
],
"seconds": 0.5,
"loop": false,
"contact_seconds": -1.0
},
{
"name": "idle",
"frames": [
0.0,
96.0
],
"seconds": 4.0,
"loop": true,
"contact_seconds": -1.0
},
{
"name": "walk",
"frames": [
0.0,
31.0
],
"seconds": 1.2917,
"loop": true,
"contact_seconds": -1.0
}
],
"expected_from_godot": {
"triangles": 29045,
"bones": 25,
"clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
},
"meshes_with_ngons": {},
"meshes_without_uv": [],
"triangles": 29045,
"fbx": "Assets/Luneraria/Art/Characters/funkenlanze_meshy.fbx",
"fbx_bytes": 3395228,
"ok": true
}