Atmosphäre-Tools, EZ-Tree-Fixes, i18n, AnimSet, Baum-Export

- blight-lang: TextResolver + EN/DE Sprachpakete (TextReference i18n)
- AnimSet: Clips + ActionMap in .animset.json zusammengeführt
- EZ-Tree: Branch-Parameter-Fixes (length/radius/children/force nicht senden,
  twist Grad→Radiant, leaves.size ×5); Ordner-ComboBox mit Auto-Refresh
- Logging beim Baum-Export in allen drei Generatoren (EZ-Tree, Blight, Palme)
- Atmosphäre-Tools: Emitter, Licht, Wasser, Sound-/Musikbereiche, Spiel-Starten
- AnimPreviewState, RetargetingSystem, AnimationLibrary (Animations-Editor)
- Terrain-Transparenz-Fix, Schatten-Fix, ThirdPersonCamera-Fix
- DayNightState, WeatherState, CloudsNode, JmeConsole
- MapIO v6, neue blight-common Modell-Klassen (GameCharacter, NPC, Quests…)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-02 23:12:46 +02:00
parent 1e0789461f
commit 50f496c864
121 changed files with 13277 additions and 806 deletions

View File

@@ -0,0 +1,98 @@
ANIMATIONEN BLENDER RETARGETING WORKFLOW
==========================================
WARUM DIESER WORKFLOW?
----------------------
Das Mixamo-Skelett (stand.glb etc.) und das Tripo3D-Skelett (Charakter-Modell) haben
unterschiedliche Bone-Orientierungs-Konventionen. Das Runtime-Retargeting in Java kann
diesen Mismatch nicht zuverlässig beheben. Lösung: Animationen einmalig in Blender auf
das Tripo-Skelett "umrechnen" (baken) und als neue GLBs exportieren.
Diese Arbeit ist EINMALIG pro Animations-Clip. Danach funktioniert jedes weitere
Tripo3D-Modell mit denselben Bone-Namen automatisch über AnimationLibrary.
VORAUSSETZUNGEN
---------------
- Charakter-Modell als GLB-Datei (die Quelldatei, aus der die .j3o erzeugt wurde)
- Mixamo-Animations-GLB (z.B. stand.glb, twohand_idle.glb)
- Blender 3.x oder 4.x
WORKFLOW (für jede Animation einmal wiederholen)
------------------------------------------------
Schritt 1: Beide Armatures in Blender laden
File → Import → glTF 2.0 → Charakter-Modell .glb (= Custom-Armature)
File → Import → glTF 2.0 → stand.glb (= Mixamo-Armature + Animation)
Schritt 2: Custom-Armature vorbereiten
- Custom-Armature selektieren
- Pose Mode (Ctrl+Tab)
- Alle Bones selektieren (A)
Schritt 3: Copy-Rotation-Constraints setzen
Für jeden Bone in der Custom-Armature:
Bone-Properties → Constraints → Add Bone Constraint → Copy Rotation
Target: Mixamo-Armature
Bone: entsprechender Mixamo-Bone (siehe Mapping unten)
BONE-MAPPING (Custom → Mixamo):
┌─────────────────┬─────────────────────────┐
│ Custom │ Mixamo │
├─────────────────┼─────────────────────────┤
│ Pelvis │ mixamorig:Hips │
│ Waist │ mixamorig:Spine │
│ Spine01 │ mixamorig:Spine1 │
│ Spine02 │ mixamorig:Spine2 │
│ NeckTwist01 │ mixamorig:Neck │
│ L_Clavicle │ mixamorig:LeftShoulder │
│ L_Upperarm │ mixamorig:LeftArm │
│ L_Forearm │ mixamorig:LeftForeArm │
│ L_Hand │ mixamorig:LeftHand │
│ R_Clavicle │ mixamorig:RightShoulder │
│ R_Upperarm │ mixamorig:RightArm │
│ R_Forearm │ mixamorig:RightForeArm │
│ R_Hand │ mixamorig:RightHand │
│ L_Thigh │ mixamorig:LeftUpLeg │
│ L_Calf │ mixamorig:LeftLeg │
│ L_Foot │ mixamorig:LeftFoot │
│ R_Thigh │ mixamorig:RightUpLeg │
│ R_Calf │ mixamorig:RightLeg │
│ R_Foot │ mixamorig:RightFoot │
└─────────────────┴─────────────────────────┘
Schritt 4: Animation baken
Pose → Animation → Bake Action
✓ Only Selected Bones
✓ Visual Keying
✓ Clear Constraints
Bake Data: Pose
→ Erzeugt eine neue Action auf dem Custom-Skelett.
Schritt 5: Exportieren
- Mixamo-Armature aus der Szene löschen (X → Delete)
- Custom-Armature selektieren
- File → Export → glTF 2.0
Format: GLB
Include: Selected Objects only
Animation: ✓ (Export animations)
- Speichern als: blight-assets/src/main/resources/animations/stand.glb
(überschreibt das alte, fehlerhafte GLB)
→ Workflow für jede weitere Animation (twohand_idle.glb etc.) wiederholen.
WIE ES DANACH FUNKTIONIERT
---------------------------
Die neuen GLBs haben das Tripo-Skelett mit den korrekten vorgerechneten Animationen.
AnimationLibrary lädt sie beim Start automatisch und verteilt sie per applyAllTo()
auf alle Charaktere im Spiel.
Neue Tripo3D-Charaktere (gleiche Bone-Namen) bekommen alle Animationen automatisch —
kein weiteres Blender-Mapping nötig, weil das RetargetingSystem Bind-Pose-Unterschiede
(z.B. unterschiedliche Proportionen) selbst korrigiert.
Neuer Animations-Clip von Mixamo:
→ Einmal durch diesen Workflow → GLB in animations/ ablegen → fertig.