champions-of-luneraria/tools/blender/export_manifest.json
Martin Stickelbroeck c386206876 U5.5-pilot Figuren: Meshy-Kohlenbeißer, Lava-Glut, GPU-Skinning
Pilot für eine generierte Figur: der Kohlenbeißer g01 kommt als Meshy-Ergebnis
in den Port und ersetzt dort das Phase-4-Modell. Eine Figur genügt, um Pipeline,
Bild und Leistung zu bewerten; Anatomie, Gesichter und Haare bleiben
Künstler-Sculpts oder lizenzierte Packs (Vorgabe vom 1. Oktober).

- Meshy-Pipeline unter tools/meshy/: API-Client (meshy.py, Ledger, Schlüssel
  nie geloggt) und Blender-Generator (build_figure.py) aus den unveränderten
  Downloads in assets-source/meshy/g01/. Export über den Manifest-Eintrag
  kohlenbeisser mit "replaces": "g01"; LuneUnitLibraryBuilder hängt die Figur
  zusätzlich unter der Godot-ID ein.
- UV-Material AI_Kohlenbeisser (Familie authored): die Karten der Figur selbst,
  Lava-Glut aus der Albedo-Alpha (Meshy 7.1 ohne Emission-Map) mit _Glow 1,25.
- Schatten ohne Normalen-Versatz (LuneShadowBias, _ShadowNormalScale 0): die
  UV-Naht-Kopien tragen geknickte Normalen; URP ApplyShadowBias zog helle
  Nähte durch den Schatten. Die Figur wirft nur mit Tiefen-Bias.
- GPU-Batched-Skinning (PlayerSettings.meshDeformation, LuneProjectSetup):
  35 Meshy-Kohlenbeißer kosteten mit CPU-Skinning rund 1 ms Haupt- und
  1,7 ms Render-Thread je Bild.
- LuneBenchmark: -luneBenchmarkRound und -luneBenchmarkArmy (Figuren-Stress).
  LuneAssetPreview: LUNE_ONLY für Vorher/Nachher, Trefferframe aus der
  Kontaktzeit des Manifests. FigureViewsTests (Explicit) für die vier
  Spielmomente der Figur.
- Tests: EditMode 29/29, PlayMode 14/14 (6 Explicit), Verify 718/0,
  Player-Selbsttest 30/30, Kerntests 457/457, Fingerabdrücke unverändert
  (DCE95C96556F3A1A, 7B8E43AEFC0D60C5).
- Leistung (A/B im selben Fenster, 35x g01): Meshy -21 % Mid (109,7 zu 138,8)
  und -13 % Karte (91,7 zu 105,6) gegenüber Phase-4. GPU-Skinning hebt Mid
  um 7-27 % und entlastet Haupt- und Render-Thread. Standard-Partie ab Runde 21
  ohne g01 im Bild: drei Varianten bis 6 %.
- Doku: U5-VISUAL (U5.5), PORT-QA, PORT-STATUS, KNOWN-BEHAVIOR-DIFFERENCES;
  Bilder screenshots/u5.5/ und u5.5-gpu/, Rohdaten logs/u5.5/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 14:14:59 +02:00

1640 lines
38 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"
}
},
{
"id": "g02",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/g02.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "g02"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "g03",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/g03.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "g03"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "g04",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/g04.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "g04"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "g05",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/g05.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "g05"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "g06",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/g06.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "g06"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "g07",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/g07.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "g07"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "g08",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/g08.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "g08"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "g09",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/g09.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "g09"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "g10",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/g10.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "g10"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "m01",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/m01.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "m01"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "m02",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/m02.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "m02"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "m03",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/m03.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "m03"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "m04",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/m04.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "m04"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "m05",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/m05.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "m05"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "m06",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/m06.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "m06"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "m07",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/m07.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "m07"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "m08",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/m08.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "m08"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "m09",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/m09.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "m09"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "m10",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/m10.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "m10"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "n01",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/n01.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "n01"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "n02",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/n02.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "n02"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "n03",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/n03.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "n03"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "n04",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/n04.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "n04"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "n05",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/n05.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "n05"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "n06",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/n06.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "n06"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "n07",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/n07.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "n07"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "n08",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/n08.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "n08"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "n09",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/n09.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "n09"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "n10",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/n10.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "n10"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "w01",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/w01.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "w01"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "w02",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/w02.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "w02"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "w03",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/w03.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "w03"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "w04",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/w04.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "w04"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "w05",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/w05.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "w05"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "w06",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/w06.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "w06"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "w07",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/w07.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "w07"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "w08",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/w08.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "w08"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "w09",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/w09.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "w09"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "w10",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/w10.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "w10"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "s01",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/s01.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "s01"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "s02",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/s02.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "s02"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "s03",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/s03.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "s03"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "s04",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/s04.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "s04"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "s05",
"group": "Units",
"kind": "rigid",
"source": "assets-source/phase4/blend/s05.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "s05"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "worker",
"group": "Props",
"kind": "rigid",
"source": "assets-source/phase4/blend/worker.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "worker"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "map_lane_segment",
"group": "Props",
"kind": "rigid",
"source": "assets-source/phase4/blend/map_lane_segment.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "map_lane_segment"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "core_team0",
"group": "Props",
"kind": "rigid",
"source": "assets-source/phase4/blend/core_team0.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "core_team0"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "core_team1",
"group": "Props",
"kind": "rigid",
"source": "assets-source/phase4/blend/core_team1.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "core_team1"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "e01",
"group": "Enemies",
"kind": "rigid",
"source": "assets-source/phase4/blend/e01.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "e01"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "e02",
"group": "Enemies",
"kind": "rigid",
"source": "assets-source/phase4/blend/e02.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "e02"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "e03",
"group": "Enemies",
"kind": "rigid",
"source": "assets-source/phase4/blend/e03.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "e03"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "e04",
"group": "Enemies",
"kind": "rigid",
"source": "assets-source/phase4/blend/e04.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "e04"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "e05",
"group": "Enemies",
"kind": "rigid",
"source": "assets-source/phase4/blend/e05.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "e05"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "e06",
"group": "Enemies",
"kind": "rigid",
"source": "assets-source/phase4/blend/e06.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "e06"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "e07",
"group": "Enemies",
"kind": "rigid",
"source": "assets-source/phase4/blend/e07.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "e07"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "e08",
"group": "Enemies",
"kind": "rigid",
"source": "assets-source/phase4/blend/e08.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "e08"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "e09",
"group": "Enemies",
"kind": "rigid",
"source": "assets-source/phase4/blend/e09.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "e09"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "e10",
"group": "Enemies",
"kind": "rigid",
"source": "assets-source/phase4/blend/e10.blend",
"godot_manifest": {
"file": "assets/phase4_manifest.json",
"id": "e10"
},
"rules": {
"skip_modifiers": [
"HIGH RES"
],
"logical_names": true,
"forward_marker": "Forward"
}
},
{
"id": "ringborke",
"group": "Characters",
"kind": "skinned",
"source": "assets-source/phase11/ringborke.blend",
"godot_manifest": {
"file": "assets/phase11_manifest.json",
"id": "w04"
},
"rules": {
"join": {
"parent": "RingborkeRig",
"into": "RingborkeBody"
},
"rest_action": null,
"root_bone": "Root",
"required_clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
],
"textures": [
"assets/materials/phase11/ringborke-cut-albedo-4k.png",
"assets/materials/phase11/ringborke-cut-normal-4k.png",
"assets/materials/phase11/ringborke-cut-roughness-4k.png"
]
}
},
{
"id": "arbeiter",
"group": "Characters",
"kind": "skinned",
"source": "assets-source/phase12/arbeiter.blend",
"godot_manifest": {
"file": "assets/phase12_manifest.json",
"id": "worker"
},
"rules": {
"join": {
"parent": "ArbeiterRig",
"into": "ArbeiterBody"
},
"rest_action": null,
"root_bone": "Root",
"required_clips": [
"idle",
"walk"
]
}
},
{
"id": "basaltbastion",
"group": "Characters",
"kind": "skinned",
"source": "assets-source/phase15/basaltbastion.blend",
"godot_manifest": {
"file": "assets/phase15_manifest.json",
"id": "g04"
},
"rules": {
"join": {
"parent": "BasaltRig",
"into": "BasaltBody"
},
"rest_action": null,
"root_bone": "Root",
"required_clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
}
},
{
"id": "quellgeflecht",
"group": "Characters",
"kind": "skinned",
"source": "assets-source/phase16/quellgeflecht.blend",
"godot_manifest": {
"file": "assets/phase16_manifest.json",
"id": "w10"
},
"rules": {
"join": {
"parent": "QuellRig",
"into": "QuellBody"
},
"rest_action": null,
"root_bone": "Root",
"required_clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
}
},
{
"id": "glasballiste",
"group": "Characters",
"kind": "skinned",
"source": "assets-source/phase19/glasballiste.blend",
"godot_manifest": {
"file": "assets/phase19_manifest.json",
"id": "g06"
},
"rules": {
"join": {
"parent": "GlassRig",
"into": "GlassBody"
},
"rest_action": null,
"root_bone": "Root",
"required_clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
}
},
{
"id": "p_mensch",
"group": "Peoples",
"kind": "skinned",
"source": "assets-source/luneraria/peoples/p_mensch.blend",
"godot_manifest": {
"file": "assets/luneraria/peoples_manifest.json",
"id": "p_mensch"
},
"rules": {
"join": {
"parent": "PeopleRig",
"into": "MenschBody"
},
"rest_action": null,
"root_bone": "Root",
"required_clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
}
},
{
"id": "p_elf",
"group": "Peoples",
"kind": "skinned",
"source": "assets-source/luneraria/peoples/p_elf.blend",
"godot_manifest": {
"file": "assets/luneraria/peoples_manifest.json",
"id": "p_elf"
},
"rules": {
"join": {
"parent": "PeopleRig",
"into": "ElfBody"
},
"rest_action": null,
"root_bone": "Root",
"required_clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
}
},
{
"id": "p_zwerg",
"group": "Peoples",
"kind": "skinned",
"source": "assets-source/luneraria/peoples/p_zwerg.blend",
"godot_manifest": {
"file": "assets/luneraria/peoples_manifest.json",
"id": "p_zwerg"
},
"rules": {
"join": {
"parent": "PeopleRig",
"into": "ZwergBody"
},
"rest_action": null,
"root_bone": "Root",
"required_clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
}
},
{
"id": "p_troll",
"group": "Peoples",
"kind": "skinned",
"source": "assets-source/luneraria/peoples/p_troll.blend",
"godot_manifest": {
"file": "assets/luneraria/peoples_manifest.json",
"id": "p_troll"
},
"rules": {
"join": {
"parent": "PeopleRig",
"into": "TrollBody"
},
"rest_action": null,
"root_bone": "Root",
"required_clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
}
},
{
"id": "p_fee",
"group": "Peoples",
"kind": "skinned",
"source": "assets-source/luneraria/peoples/p_fee.blend",
"godot_manifest": {
"file": "assets/luneraria/peoples_manifest.json",
"id": "p_fee"
},
"rules": {
"join": {
"parent": "PeopleRig",
"into": "FeeBody"
},
"rest_action": null,
"root_bone": "Root",
"required_clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
}
},
{
"id": "p_ork",
"group": "Peoples",
"kind": "skinned",
"source": "assets-source/luneraria/peoples/p_ork.blend",
"godot_manifest": {
"file": "assets/luneraria/peoples_manifest.json",
"id": "p_ork"
},
"rules": {
"join": {
"parent": "PeopleRig",
"into": "OrkBody"
},
"rest_action": null,
"root_bone": "Root",
"required_clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
}
},
{
"id": "p_biest",
"group": "Peoples",
"kind": "skinned",
"source": "assets-source/luneraria/peoples/p_biest.blend",
"godot_manifest": {
"file": "assets/luneraria/peoples_manifest.json",
"id": "p_biest"
},
"rules": {
"join": {
"parent": "PeopleRig",
"into": "BiestBody"
},
"rest_action": null,
"root_bone": "Root",
"required_clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
}
},
{
"id": "g1_tower",
"group": "Buildings",
"kind": "static",
"source": "assets-source/luneraria/tower.blend",
"godot_manifest": {
"file": "assets/luneraria/tower_manifest.json",
"id": "lane_tower"
}
},
{
"id": "g1_grotto",
"group": "Buildings",
"kind": "static",
"source": "assets-source/luneraria/grotto.blend",
"godot_manifest": {
"file": "assets/luneraria/grotto_manifest.json",
"id": "boss_grotto"
}
},
{
"id": "verdant_rift",
"group": "Environment",
"kind": "static",
"source": "assets-source/phase10/verdant-rift.blend",
"expect": {
"triangles": 1607600,
"mesh_count": 62
},
"rules": {
"chunk": 16,
"allow_bad_normals": {
"Chunk_-2_-1_ENV_cliff": 2,
"Chunk_1_0_ENV_cliff": 2
},
"textures": [
"assets/materials/phase10/limestone-albedo.png"
]
}
},
{
"id": "menu_stage",
"group": "Environment",
"kind": "static",
"source": "assets-source/phase20/menu-stage.blend",
"godot_manifest": {
"file": "assets/menu_stage_manifest.json",
"id": null
}
},
{
"id": "compare_rock",
"group": "Environment",
"kind": "static",
"source": "assets-source/phase14/build_compare_props.py",
"generator": {
"inputs": [
"assets/characters/ringborke.glb",
"assets/characters/arbeiter.glb",
"assets/models/core_team0.glb"
]
},
"godot_manifest": {
"file": "assets/compare/compare-manifest.json",
"id": "compare_rock"
},
"rules": {
"objects_prefix": "CompareRock"
}
},
{
"id": "compare_tree",
"group": "Environment",
"kind": "static",
"source": "assets-source/phase14/build_compare_props.py",
"generator": {
"inputs": [
"assets/characters/ringborke.glb",
"assets/characters/arbeiter.glb",
"assets/models/core_team0.glb"
]
},
"godot_manifest": {
"file": "assets/compare/compare-manifest.json",
"id": "compare_tree"
},
"rules": {
"objects_prefix": "CompareTree"
}
},
{
"id": "compare_arena_tile",
"group": "Environment",
"kind": "static",
"source": "assets-source/phase14/build_compare_props.py",
"generator": {
"inputs": [
"assets/characters/ringborke.glb",
"assets/characters/arbeiter.glb",
"assets/models/core_team0.glb"
]
},
"godot_manifest": {
"file": "assets/compare/compare-manifest.json",
"id": "compare_arena_tile"
},
"rules": {
"objects_prefix": "CompareArenaTile"
}
},
{
"id": "kohlenbeisser",
"group": "Characters",
"kind": "skinned",
"representative": "U5.5 pilot: Kohlenbeißer (g01) from Meshy (image to 3D, auto rig, library clips)",
"source": "tools/meshy/build_figure.py",
"source_root": "unity",
"generator": {
"args": [
"tools/meshy/g01/figure.json"
],
"inputs": [
"tools/meshy/g01/figure.json",
"assets-source/meshy/g01/kohlenbeisser-skelett.glb",
"assets-source/meshy/g01/kohlenbeisser-animationen.glb"
]
},
"replaces": "g01",
"expect": {
"triangles": 20714,
"bones": 25,
"clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
},
"rules": {
"rest_action": null,
"root_bone": "Root",
"required_clips": [
"idle",
"walk",
"attack_a",
"attack_b",
"hit",
"ability",
"death"
]
}
}
],
"aliases": {
"compare_ringborke": "ringborke",
"compare_arbeiter": "arbeiter",
"compare_core": "core_team0"
}
}