champions-of-luneraria/docs/luneraria/H1-SYLVARA.md
Martin Stickelbroeck 805f5754c9 H1 Sylvara: Figur, Skin-System, Oberfläche, Nachweise
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>
2026-10-10 18:06:58 +02:00

145 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# H1 · Sylvara, die Mondklinge
Stand: 10. Oktober 2026 · Branch `luneraria/h1-sylvara` (von `luneraria/konzept-champions`, dieser von `luneraria/u5.5-g09` = `024937c`).
Grundlage: [CHAMPIONS-KONZEPT.md](CHAMPIONS-KONZEPT.md) und [IDEEN.md](IDEEN.md). Auftrag: „Variante 2“, also Sylvara als voller, spielbarer Held mit Figur, Ultimate und einem Skin.
![Mondsicheltanz im Kampf](../port/screenshots/h1/spiel/06-mondsicheltanz.jpg)
## Kurzfassung
- **Neue Heldin:** Sylvara ist der vierte kaufbare Held, Assassine in der Nahkampfreihe, 260 Gold wie alle Helden.
- **Kit:**
- Mondsprung (passiv, einmal pro Kampf)
- Sichelwurf (alle 6 s)
- Ultimate Mondsicheltanz (einmal pro Kampf)
- zwei Talentstufen
- **Ultimate-Auslöser in der Planung:** Der Spieler wählt, *wann* das Ultimate auslöst (Gruppe, Zweite Reihe, Notfall, Sofort). Der Kampf bleibt automatisch, das Netzwerk braucht keine Befehle während des Kampfes.
- **Skin-System:** Der erste Skin heißt „Blutmond“, Stufe „Variante“. Er ist für alle Spieler sichtbar, kostenlos in der Planung wählbar und ändert nie die Partie.
- **Figur:** Meshy-Figur mit zwei Sicheln als eigenen Modellen in beiden Händen, neun Clips inklusive Sprung und Doppelklingen-Wirbel. Verbrauch: 116 Credits.
- **Parität:** Die Referenzpartien bleiben unverändert: Golden 0 Abweichungen, Bot-Fingerabdrücke gleich. Sylvara ist eine reine Ergänzung.
## Arbeitsannahmen (anpassbar)
Die offenen Fragen aus `HELDEN-KONZEPT.md` sind für H1 so beantwortet:
| Frage | Annahme H1 |
| --- | --- |
| Helden pro Spieler | weiterhin einer |
| Bindung an Bünde | keine, frei wählbar wie bisher |
| Ersetzen die neuen Helden die vorläufigen? | nein; Ringborke, Quellgeflecht und Funkenlanze bleiben (Parität), Sylvara kommt dazu |
| Ultimate-Häufigkeit | eine Ladung pro Kampfphase, frühestens nach 2 s; ausgelöst durch die in der Planung gewählte Regel |
| Talente und Items | zwei eigene Talentstufen (3 und 6); die sechs Items gelten unverändert |
| Bots | Profil `assassine` mit Sylvara, aber **nicht** in der Seed-Rotation (sonst änderten sich alle Bot-Partien). Nutzbar als festes Profil (Balance-Läufe) |
## Regeln
| Teil | Wirkung |
| --- | --- |
| Grundwerte | 1.450 Leben, 42 Schaden, Klinge gegen Leicht, Reichweite 1,2 m, Tempo 2,8, Rolle Nahkampf |
| Mondsprung (passiv) | Einmal pro Kampf: Steht ein Fernkämpfer oder Unterstützer (Reichweite ≥ 3 m, kein Boss) in 8 m und hat er höchstens 2 Begleiter in 3 m, springt sie neben ihn und nimmt ihn als Ziel. Der erste Treffer macht 150 %. Mondschleier: Schild von 25 % ihrer Lebenspunkte für 4 s |
| Sichelwurf | Ab 4 s alle 6 s: 90 % Schaden an ihrem Ziel und bis zu 2 weiteren Gegnern in 2,5 m (Ziel in 6 m) |
| Mondsicheltanz (Ultimate) | Einmal pro Kampf, frühestens nach 2 s und nie im Sprungschritt: 220 % Schaden an bis zu 5 Gegnern in 5 m, 30 % Verlangsamung für 2 s, danach Mondschleier |
| Auslöser | **Gruppe** (Standard): mindestens 3 Gegner in 4 m · **Zweite Reihe:** ein Fernkämpfer/Unterstützer in 5 m · **Notfall:** unter 40 % Leben und ein Gegner in 4 m · **Sofort:** erster Gegner in 4 m |
| Talente Stufe 3 | **Mondsilber:** Sichelwurf nur aufs Ziel, 200 % · **Sichelsturm:** bis zu 5 Ziele in 3,5 m |
| Talente Stufe 6 | **Neumond:** +20 % Angriffstempo · **Vollmond:** Tanz trifft 7 Ziele mit 280 % |
| Gleichzeitigkeit | Sprung und Tanz entscheiden auf dem Zustand am Schrittbeginn; die Landung wird mit den Bewegungen angewendet, Schaden und Schilde mit den übrigen Ereignissen des Schritts. Damit gilt das Zwei-Phasen-Prinzip des Kerns unverändert |
Befehle: `ultimate_rule` (Regel-ID in `TypeId`) und `hero_skin` (Skin-ID in `TypeId`). Beide sind nur in der Planung möglich, kostenlos und rückgängig zu machen.
## Skin-System (technisch)
- **Kern:** `ContentData.HeroSkins` listet je Held die Skins; Standard ist `""`. `HeroState.Skin` und `UnitDef.Skin` werden übertragen (Wire), die Regeln lesen sie nie. Prüfung: dieselbe Partie mit und ohne Skin ist identisch.
- **Texturen:** `tools/meshy/skin_variant.py` mit `tools/meshy/sylvara/skins.json` färbt die Albedo-Karten um. Das Blau wird Karmesin, Metall wird abgedunkelt und leicht rot getönt, Haut, Haar und Leder bleiben. Normal- und ORM-Karten bleiben die des Standards.
- **Material:** `LuneMaterialFactory` macht aus `ai-<figur>_<skin>-albedo-2k.png` ein Surface-Material `AI_<Figur>_<Skin>`.
- **Darstellung:** `LuneMaterialSet.Dress(root, team, skin)` nimmt die Skin-Variante, wo es sie gibt. Porträts verstehen `sylvara#blutmond`.
- **Regeln aus dem Konzept:** Die Kern-Silhouette (Sicheln, Zopf, Körperbau) ist in jedem Skin gleich, die Teamfarbe bleibt am Ring.
## Figur
| Schritt | Ergebnis |
| --- | --- |
| Konzept | gpt-image-2 über Meshy, Funkenlanze-Konzept als Rahmenreferenz: `assets-source/meshy/sylvara/sylvara-konzept.png`; Sichel mit Sylvara als Stilreferenz |
| Modell | image-to-3d, 20.709 Dreiecke, Lane-Fassung 4.999; Sichel 2.039 / 498 Dreiecke, zweimal (rechte und linke Hand, gemeinsames Material) |
| Skelett und Clips | Auto-Rig 1,75 m; Clips idle, walk (Run 02), attack_a (Left Slash), attack_b (Right-hand Sword Slash), hit, ability (Over Shoulder Throw), death (Dying Backwards), **leap** (Run and Leap), **ultimate** (Double Blade Spin). Leap und Ultimate sind neue optionale Clips von `build_figure.py` |
| Export | `sh tools/blender/export_fbx.sh sylvara`: 23/23 Prüfungen, zwei Läufe byteidentisch |
| Credits | Konzept 12 + 12, Modelle 30 + 30, Skelett 5, Animationen 27 = **116** (Stand danach 291) |
Der Generator teilt das Material, wenn dieselbe Waffe in beiden Händen sitzt. Außerdem kann jedes Prop eine eigene Leuchtregel haben, hier die blaue Klingenkante.
## Oberfläche
- **Heldenwahl:** vier Helden. Der Hinweis „vorläufige Rolle“ steht nur bei den drei Referenzhelden, bei Sylvara steht stattdessen ihr Ultimate.
- **Heldenfenster:** neuer Reiter **„Ultimate & Skin“** mit Ultimate-Text, vier Auslöser-Karten und Skin-Karten mit Porträt. Die Fähigkeitsseite zeigt Passiv, Fähigkeit und Ultimate.
- **Heldenkarte:** Der lange reservierte Befehlsplatz zeigt „ULT · GRUPPE“, nach dem Auslösen „ULT GENUTZT“. Ein Klick öffnet das Heldenfenster auf dem Ultimate-Reiter.
- **Feld:**
- Clips `leap` und `ultimate` folgen den Zählern aus dem Kern. Im Netz reisen sie in den Flag-Bits des Kampfrahmens, die Rahmengröße bleibt bei 13 Werten je Einheit.
- Ein hellblauer Mondring wächst in 0,45 s auf die 5 m des Tanzes.
## Balance
Werkzeug: `dotnet run -c Release --project tools/dotnet/Luneraria.Balance 40`.
Aufbau: Jeder Held bekommt dasselbe Probeprofil (Truppenmix „ausgewogen“, gleiche Items, Held ab Runde 3) auf Platz 0 bzw. 3. Die anderen Plätze sind fest, gegenüber steht Ringborke. Gespielt werden 40 Seeds auf beiden Seiten.
| Held | Siegquote des Probesitzes | mittlere Rundenzahl |
| --- | ---: | ---: |
| Ringborke | 50 % | 15,0 |
| Quellgeflecht | 100 % | 13,5 |
| Funkenlanze | 50 % | 15,0 |
| **Sylvara** | **50 %** | 14,5 |
- **Werte vor der Abstimmung:** 1.150 Leben, Sprung auf jedes Ziel, kein Schild. Damit verlor Sylvara alle 80 Partien: Sie sprang nach etwa 9 s in die gegnerische Welle und fiel nach 3 bis 4 Treffern.
- **Abstimmung:** Mehr Leben, der gezielte Sprung (höchstens 2 Begleiter), Mondschleier und ein stärkerer Tanz brachten sie auf das Niveau von Ringborke und Funkenlanze.
- **Grenze der Messung:** Bot-Partien sind fast deterministisch, die Quote ist deshalb grob (je Seite gewinnen meist alle Seeds oder keiner).
- **Quellgeflecht bei 100 %:** Das ist ein bestehendes Ungleichgewicht der Referenz. Es bleibt wegen der Parität unverändert und ist als offener Punkt notiert.
## Tests
| Prüfung | Ergebnis |
| --- | --- |
| Kern (.NET 8) | content 76, core 91, m2 73, golden 157, determinism 6, net 43, net_rounds 12, **h1 42** = 500/500 |
| Golden-Parität | 51.221 Werte, 0 Abweichungen (Sylvara wird in keinem Referenzszenario gekauft) |
| h1 | Kauf, Regel- und Skin-Befehl samt Rückgängig, Sprung (Ziel, Landung, nur einmal, nicht auf Bosse und Nahkämpfer), Sprungtreffer 150 %, Sichelwurf (Zeitpunkte, drei Ziele), alle vier Auslöser, Talente, Rotation ohne `assassine`, Determinismus, Skin ohne Einfluss |
| Unity EditMode | 30/30 (29 + Kernsuite h1) |
| Unity PlayMode | 15/15, 7 Bildwerkzeuge übersprungen; neu `H1HeroViewsTests.SylvaraHud` (Heldenwahl mit vier Helden, Regel- und Skin-Karten, Befehlsplatz, Figur mit Clips `leap`/`ultimate`, Blutmond-Material an Körper und beiden Sicheln, Ultimate im Kampf) |
| Verify A–I | 718/0; eine G3-Prüfung angepasst: „three heroes to recruit“ → „all four heroes to recruit (H1)“ |
| Fingerabdrücke | `DCE95C96556F3A1A` (Seed 2, bei 30/60/120 fps und unbegrenzt) und `7B8E43AEFC0D60C5` (Seed 9 ab Welle 21) unverändert |
| Asset-Prüfung | Export 23/23, byteidentisch in zwei Läufen; Unity-Verifier ohne Fehler |
| Player-Selbsttest | macOS-Player 30/30 (`logs/h1/player-smoke.json`) |
## Leistung
Benchmark im selben macOS-Player, je drei Läufe abwechselnd, Seed 9 ab Welle 2. `-luneBenchmarkArmy <held>` gibt allen sechs Plätzen diesen Helden, als Vergleich dient die Funkenlanze-Heldin (ebenfalls Meshy-Figur mit Waffe):
| Held auf allen Plätzen | Karte (fps) | Mid nah (fps) |
| --- | --- | --- |
| Funkenlanze | 137,7 · 133,5 · 136,6 | 162,4 · 132,6 · 161,1 |
| Sylvara | 136,3 · 137,2 · 134,9 | 158,1 · 160,5 · 159,2 |
Die Mittelwerte liegen auf der Karte gleichauf (135,9 zu 136,1). Mid nah liegt Sylvara im Median 1,1 % darunter (159,2 zu 161,1). Der Lauf mit 132,6 fps ist ein Lastausreißer, der Mac arbeitete nebenbei. Ergebnis: Sylvara kostet nicht messbar mehr als eine vorhandene Heldenfigur. Rohdaten liegen in `docs/port/logs/h1/`.
## Bilder
- `docs/port/screenshots/h1/spiel/`:
1. Heldenwahl
2. Heldenfenster
3. Ultimate & Skin
4. Aufstellung
5. Sprung und Tanz
6. Mondsicheltanz mit Mondring
7. Mondsicheltanz, Wirbel
8. Lane
9. Blutmond im Fenster
10. Blutmond im Kampf
Alle Bilder in 1920×1080, aufgenommen mit `H1HeroViewsTests.SylvaraBilder`.
- `docs/port/screenshots/h1/figur/`: Figurenblatt.
- `docs/port/screenshots/h1/ablauf/`: die 14 Momente des Vertical Function Test.
## Offene Punkte
- **Bots in der Rotation:** Sie sollen Sylvara im normalen Spiel wählen. Das ändert die Bot-Fingerabdrücke und braucht deine Entscheidung.
- **Manuelles Ultimate per Klick im Kampf (🔴):** wartet auf Befehle während des Kampfes im Netzwerk.
- **Quellgeflecht-Dominanz:** Balance der Referenz, eigene Entscheidung.
- **Weitere Helden des Konzepts:** Thalion, Ilyra, Brunhild, Isolde, Aurelian und Rowan folgen dem Muster von H1. Kosten nach H1-Erfahrung etwa 110 bis 120 Credits je Held mit Waffe; Restguthaben 291.
- **Git LFS:** H1 fügt etwa 60 MB hinzu (Quellen, Texturen, FBX).