Meshy-Figur Sylvara (20.709 Dreiecke, Lane-Fassung 4.999) mit zwei Sicheln
als eigene Modelle, Clips leap/ultimate, 116 Credits. Skin-System: hero_skin
als kosmetische Planungswahl, Blutmond als Varianten-Skin (skin_variant.py,
AI_*_Blutmond, Dress mit Skin). Heldenfenster mit Reiter Ultimate & Skin,
Befehlsplatz der Heldenkarte, Mondring. Ultimate zündet nicht im Sprungschritt.
Kern 500/500, EditMode 30/30, PlayMode 15/15, Verify 718/0, Selbsttest 30/30,
Fingerabdrücke unverändert; Balance 50 % wie Ringborke/Funkenlanze; Leistung
gleich der Funkenlanze-Heldin.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Konzept aus Icon, Phase-4-Modell und Kohlenbeißer-Konzept als Stilvorlage,
Modell, Skelett und sieben Bibliotheks-Clips für 68 Credits; Figurendatei
vom Kohlenbeißer übernommen, Lane-Fassung inklusive. Bildwerkzeug und
Stresstest nehmen aufgewertete Truppen. Stresstest 35 Schlackenklauen:
Mid 152,5 -> 135,8 fps, Karte 116,7 -> 115,6. Tests grün, Fingerabdrücke
unverändert.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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>
Das G3-HUD ist abgenommen; der Meilenstein U3 ist damit fertig.
- Prüfung (Port von verify_g3, Teile A–H plus I): 718 Prüfungen ohne
Fehler. Teil I prüft die Feld-Darstellung um das HUD (U3-Zugabe aus
dem Motivvergleich): Aufstellungsflächen, Grotteneingang, ruhender
Boss, Namensschilder, Eigentümer-Ring, Ancient-Balken.
- Feld um das HUD: Namensschilder für Helden (mit Stufe), Angriffs-
champions und den eingesetzten Boss („für Blau“), Eigentümer-Ring,
Ancient-Balken bei Schaden, ruhende Schlundkrone auf dem Podest,
eigener Grotteneingang, Aufstellungsflächen als eigene Objekte.
- Schriften korrigiert: Die Referenz deklariert Cantarell 560/700–760
und Cinzel 700, wendet die Gewichte aber nie an (variation_opentype
mit dem String-Schlüssel „wght“ wird von Godot ignoriert). G3 zeigt
Regular 400, der Port ebenso — Cinzel-Regular statt Bold, keine
Kontur zur Aufdickung. Laufweite aus spacing_glyph umgerechnet;
dunkler Saum als Schatten statt TextCore-Kontur.
- Werkzeuge: HudViewsTests (14 G3-Motive), HudPlaytest (Spieltest über
die echte Oberfläche per Befehlsdateien), ui_ms_per_frame im
LuneBenchmark. Layout folgt den echten Panelhöhen, Kamera startet wie
Godot _ready auf der eigenen Lane.
- Tests: EditMode 23/23, PlayMode 13/13, Kerntests 402/402, Verify
718/0. Fingerabdrücke der Bot-Partien unverändert (DCE95C96556F3A1A,
7B8E43AEFC0D60C5).
- Bilder: 14 Motive bei 1920×1080, Auflösungen 1152×720 bis 2560×1440,
Prüf-Schlüsselbilder, Spieltest-Screenshots.
- Leistung (macOS-Player mit HUD, 116 Einheiten): 169 fps Übersicht,
218 fps Mid nah; HUD-Skripte 0,090 bzw. 0,078 ms je Bild.
- Dokumentation: U3-UI (U3D, Schriftbefund), PORT-QA (U3), PORT-STATUS
(U3 fertig, U4 nächster Schritt), KNOWN-BEHAVIOR-DIFFERENCES.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Das G3-HUD steht im Spiel; die Abnahme (U3D) folgt.
- U3B: alle Bereiche und Komponenten aus Godot übertragen (LuneHud,
Lanes, Bossgrotte, nächste Welle, Kaufkarten, Armee, Held mit Items und
Talenten, Angriffschampions, Team, Ereignisse, Minimap, Tooltip,
Optionen, Partieende). Porträts aus den echten Modellen, einmal gerendert.
- Offene G3-Punkte umgesetzt: „1 WELLE“ als Band am Porträtrand,
Schadens- und Rüstungssymbole auf den Karten, Armeewert, Heldenporträts
auf der Minimap. Befehlsplatz für die Ultimates der geplanten Helden
reserviert (verborgen).
- U3C: LuneGame verdrahtet Befehle (gleiche Schnittstelle wie die Bots),
Bereit mit 1-s-Sperre nach dem Kampf, Tempo und Pause, Tasten wie in G3,
Kamera-Ziele, Auswahl im Feld, Planungsvorschau und Aufstellungsflächen.
Ersetzt die U2-Debug-Anzeige. Bot-Partien und Benchmark unverändert.
- Szenen- und Bibliotheksbauer idempotent: Animator-Controller und
Post-Processing-Profil werden an Ort und Stelle aktualisiert. Die Szene
bekommt bei jedem Bau neue Objekt-IDs, der Inhalt ist gleich.
- Prüfung (Port von verify_g3, Teile A–H): 699 Prüfungen ohne Fehler.
EditMode 23/23, PlayMode 12/12, Fingerabdrücke der Bot-Partien
unverändert (DCE95C96556F3A1A, 7B8E43AEFC0D60C5).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fester Simulationstakt und Ansichten, die nur lesen; Nachweis, dass die Partie
bei jeder Bildrate dieselbe ist.
- LuneClock: Akkumulator, ganze Schritte zu 0,05 s, Alpha zum Interpolieren.
- LuneMatchRunner: Host-Ablauf einer Bot-Partie (Planung über die
Befehlsschnittstelle, Kampf im festen Takt, Abrechnung, nächste Runde);
LuneMatchDriver reicht in Update nur Bildzeit weiter.
- LuneTrace: Fingerabdruck der Partie (jeder Schritt, jede Abrechnung) und der
reine Kernlauf zum Vergleich.
- Ansichten: LuneMatchView, LuneUnitView (interpolierte Position, Blickrichtung,
Clips aus Kampfereignissen, Teamring, Lebensbalken), LuneBuildingView mit
Einsturz und Ruine aus den autoritativen HP, Turmblitze, LuneCameraRig wie
lune_camera.gd, vorläufige Debug-Anzeige (kein HUD; U3 portiert das G3-HUD).
- Einheitenbibliothek: Kohlenbeißer aus 131 Teilen zu einem Mesh, Animator-
Controller mit den Blender-Clips, Ring- und Balkenmeshes, Markermaterialien.
- Tests: EditMode (30/60/120 fps, unbegrenzt, Ruckler, 8x Tempo; Seed 2 und
Seed 9 ab Runde 21) und PlayMode in der Szene bei echten Bildraten 30, 60,
120 und unbegrenzt: überall derselbe Fingerabdruck wie der Kern.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>