29 Commits

Author SHA1 Message Date
63aa7aa104 Commit vor Änderung Umstellung auf eine einzelne Animation 2026-06-28 22:59:36 +02:00
6d061cd621 Sicherstellen des Zustands der passt 2026-06-28 21:31:00 +02:00
cd350a92fa Bank-Sitz: blockingAnimRemaining +1Frame, applyMotionKfOffset als Lerp
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-27 15:11:44 +02:00
b44d583dc3 Bank-Sitz-Fix: clearKfOffset-Timing, Approach-Distanz, Animationsübergänge
- clearKfOffset() erst nach get_up-Animation (Callback) statt sofort beim Start
  → kein Slide des Visuals während der Aufsteh-Animation
- Approach-Distanz zur Bank um 17.5cm verkürzt (läuft näher ran, sitzt tiefer)
- blockingAnimRemaining um 1 Frame (1/60s) gekürzt → verhindert Extra-Keyframe-Hold
  am Animationsende (noch zu beobachten)
- Diverses aus vorheriger Session: AnimSet-Editor, Navigation, Assets

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 22:51:11 +02:00
ba0b80f524 Navigation, Bank-Setzen und AnimSet-Editor Keyframes
- CharacterNavigator: universelle Pfad-Navigation für Spieler und NPCs
  (PathFinder + Terrain-Slope-Check + Stuck-Erkennung, Walk/Run)
- PlayerInputControl: navigateTo/stopNavigation-API, Navigator hat Vorrang
  vor WASD; setNavigationSources für PathFinder + TerrainChunkState
- WorldInteractableState: Bank-Setzen komplett neu (< 5m, E-Taste),
  Navigator läuft zum Sitzpunkt, dreht Rücken zur Bank, spielt
  sit_down_bench / sitting / get_up_sitting; Bett weiterhin mit Rücklauf
- AnimSet-Editor: Kamera startet mit -45° Pitch; AnimKeyframe-Offset-Editor
- WorldScene: PathFinder + ObstacleRoot an PlayerInputControl übergeben

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 18:18:58 +02:00
79f9cf12a3 Animationen jetzt heil und Keyframes eingebaut 2026-06-23 17:44:22 +02:00
b3b943e588 Charakter-Liegend-Fix: T-Pose im Editor, CullHint im Spiel, Strip in src+bin
Editor (AnimPreviewState):
- __tpose__ AnimClip mit Einzel-Frame-Track für Root-Joints (behebt NPE in
  ClipAction.doInterpolate; leerer Clip hatte null-tracks-Array)
- Beim Laden: eingebettete Clips automatisch strippt und in src+bin speichern;
  danach __tpose__ abspielen → Charakter steht in Bind-Pose
- stopAll(): zurück zur T-Pose statt SkinningControl deaktivieren
- Achsen-Indikator immer fest auf (0,0,0) statt bounding-box-Mitte

Spiel (WorldScene):
- CullHint.Always beim Laden, Inherit nach Animation-Setup (kein liegender Charakter)
- stripEmbeddedClips: speichert jetzt in src + bin + build (alle bekannten Pfade);
  besseres Logging bei fehlendem Pfad

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 22:25:23 +02:00
d3c6e8ed77 Zwischenstand: CullHint-Workaround gegen liegenden Charakter + stripEmbeddedClips-Fix
- WorldScene: Charakter wird beim Laden mit CullHint.Always versteckt, erst nach
  setupAnimationContext (idle läuft) wieder sichtbar
- WorldScene: stripEmbeddedClips nutzt jetzt AnimationLibrary.findAssetRoot() statt
  hartkodierter Pfad-Liste; besseres Logging wenn Datei nicht gefunden
- AnimPreviewState: Modell beim Laden versteckt (CullHint.Always), erst bei playClip
  sichtbar; stopAll versteckt Modell wieder
- PlayerInputControl: tryPlay setzt Action VOR SkinningControl-Aktivierung

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 22:03:48 +02:00
7a3b2b8733 snapRootBoneXZ: Achsen-Fix für Mixamo-Hips (X=0, Y=0/frei, Z=frei)
In diesen Mixamo-Exporten ist Local-Y die Vorwärts-Richtung (nicht Höhe),
Local-Z die Höhe. Bisheriger Code fror Z=0 ein → Charakter 1m zu tief.
Und Y war frei → Lauf-Drift blieb.

Neue Logik:
  X → 0 (kein Seiten-Drift)
  Y → 0 für Lauf-Clips (running/walking/sprinting/running_jump), normalisiert sonst
  Z → vollständig frei (Höhe und Setz/Aufsteh-Bewegung erhalten)

Nur der flachste Bone (Hips) wird modifiziert, alle anderen unberührt.
Clips vollständig neu importiert mit korrektem Snap.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 18:28:51 +02:00
e669e29096 Zwischenstand 2026-06-21 23:04:40 +02:00
52c1fb1fe8 Revert Variante B – zurück zu snapRootBoneXZ mit frame0-XZ
RootDriftCompensatorControl entfernt, AnimationLibrary auf Stand 7dcf16f
zurückgesetzt (snapRootBoneXZ friert XZ auf frame0-Wert ein, Early-Return
bleibt, kein Clip-Clearing in applyAllTo).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 23:01:29 +02:00
197a820ef9 Option B: RootDriftCompensatorControl verhindert Mesh-Drift ohne Animation zu verändern
Neues Control auf dem Modell-Spatial (nach AnimComposer hinzugefügt):
- Läuft nach AnimComposer aber vor SkinningControl → liest aktuellen Frame
- Findet den flachsten Knochen mit nicht-nullem Model-Space XZ (= Hüft-Bone)
- Verschiebt den Modell-Spatial in die entgegengesetzte Richtung
- Mesh bleibt immer über der Physik-Kapsel; Y (sit_down/Jump) wird nicht berührt
- Animations-Daten, J3Os und AnimationLibrary bleiben unverändert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 11:35:12 +02:00
7dcf16fddf snapRootBoneXZ: flachsten Joint mit Translations snappen statt nur Tiefe-0
Rigs wo Hips auf Tiefe 1 liegt (Kind des Root) wurden bisher nicht gesnappt
weil nur Tiefe-0-Joints gefunden wurden. Jetzt wird die kleinste Tiefe unter
allen Joints mit Translation-Track gesucht und nur diese Ebene eingefroren.
Passt zu beiden Rig-Strukturen (Root-Translation und Hips-Translation).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 10:09:27 +02:00
71ba297657 Root-Bone XZ in-memory einfrieren beim Clip-Apply (kein Drift mehr ingame)
Beim Anwenden eines Clips auf ein Modell (AnimationLibrary.applyTo) wird der
Root-Joint-Track jetzt in-memory gepatcht: X und Z werden auf Frame-0-Wert
eingefroren, Y (Höhenachse) bleibt vollständig frei. Damit bleibt das Mesh
immer über der Physik-Kapsel, sit_down/Jump/Bounce laufen korrekt weiter.
J3O-Dateien werden nicht verändert.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 10:01:37 +02:00
07a4c6a323 Animations neu importiert, SLF4J-Format-Bugs gefixt, stripRootXZ als tote Methode für später
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 09:58:15 +02:00
c8f1dd9432 Animations-Import, Massenimport-Queue, Asset-Archivierung, Voxel-Refactor
- Animations-Import: GLB wird direkt vom Ursprungspfad geladen (kein Zwischenkopieren), J3O in clips/ gespeichert
- RetargetingSystem: Translations-Tracks im Full-Retarget-Pfad erhalten (Hips-Y für sit_down)
- AnimationLibrary: lädt nur J3O, Clip-Name wird bei applyTo() auf Library-Key umbenannt
- SharedInput: animPreviewAddAnimPath → ConcurrentLinkedQueue animImportQueue (Massenimport-Fix)
- EditorApp: archiveOriginal() archiviert Originaldateien nach assets/imported/<assettyp>/
- EditorApp: Animations-Unterknoten im Asset-Baum zeigen enthaltene Clip-Namen
- Neue Animations-Clips: sit_down, get_up_sitting, sitting, pickup, sprinting u.a.
- Voxel: VoxelChunkState entfernt, VoxelChunkNode/MarchingCubes überarbeitet
- Map: Voxel-Chunks bereinigt, Terrain-Chunks aktualisiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20 20:52:04 +02:00
a369647e9c Weiter gearbeitet 2026-06-16 07:03:08 +02:00
a80269e681 Commit vor Voxel Update für die Klippen 2026-06-11 21:52:00 +02:00
edb9cfc946 Weiter gebastelt 2026-06-09 19:25:30 +02:00
5e85051716 Weiter am Editor gearbeitet, unter anderem LOD System, Items, Trees, Modelle 2026-06-08 22:25:47 +02:00
1297869dfa Commit vor großem Terrain refactoring 2026-06-08 08:42:45 +02:00
7faed35287 Einmal den Fortschritt mit dem Wasser sichern 2026-06-06 09:05:25 +02:00
d56f2ea41f Weiter gearbeitet 2026-06-04 22:40:17 +02:00
50f496c864 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>
2026-06-02 23:12:46 +02:00
1e0789461f Weiter am Editor gebastelt 2026-05-27 20:52:01 +02:00
728f506e97 Weiter daran gearbeitet, die welt aus dem editor ins game zu bringen 2026-05-23 09:07:44 +02:00
f9a77cc321 Weiter das Palmen Tool verfeinert 2026-05-19 21:54:04 +02:00
4f48834e2c Arbeiten aus dem URlaub 2026-05-19 12:55:05 +02:00
b8a0234ad2 Initaler Commit 2026-05-07 11:54:11 +02:00