Konzeptphase. Interne Planungsfassung, Stand 04.11.2026. Pocket Planet ist noch in Entwicklung – Inhalte, Zahlen und Abläufe können sich ändern.
Grundsatz: Was sich oft und vielfach bewegt, bewegt die GPU (Shader). Was einmalig und erzählerisch ist, bewegt Godot (Tween/AnimationPlayer). Skelette nur, wenn nichts anderes geht – im aktuellen Plan nie.
9.1 Werkzeuge in Godot – wofür was
| Technik | Stärken | Kosten | Einsatz in Pocket Planet |
|---|---|---|---|
| Shader (Vertex/Fragment) | Tausende Instanzen ohne CPU, endlos | GPU, sehr gering | Wind, Tierbewegung, Wachstum, Wolken, Wasser, Lava, Aufbau-Effekt |
| Tween | einfache Zustandsübergänge per Code, kein Asset | CPU, gering | UI, Kamera, Energie-Funke, Planet-Drehimpuls, Zähler |
| AnimationPlayer | geschnittene Sequenzen mit mehreren Spuren (Kamera, Licht, Partikel, Ton) | CPU, gering | Epochenwechsel, Raketenstart, Meteoriteneinschlag, Rückkehr-Rückblick |
| AnimationTree | Zustandsautomaten für Skelette | mittel | nicht nötig (keine Skelett-Figuren) |
| Partikel (CPUParticles3D / GPUParticles3D) | Regen, Rauch, Funken | mittel–hoch | sparsam, Budget in 12 |
| Prozedural (Script) | Physik-artige Bewegung | CPU | Kamera-Trägheit, Planetendrehung |
9.2 Animationsliste
| Animation | Technik | Details | Extern nötig? |
|---|---|---|---|
| Planet dreht sich | Script | langsame Eigendrehung (1 Umdrehung / 4 min), Wischen addiert Drehimpuls mit Dämpfung 0,92/Frame | nein |
| Wolken ziehen | Shader | zwei Noise-Ebenen, UV-Versatz je Zeit, Geschwindigkeit nach Breitengrad (Passatwinde) | nein |
| Pflanzen wachsen | Shader | INSTANCE_CUSTOM.x = Wachstumsbeginn, Skalierung 0→1 mit Überschwingen (elastic) in 1,2 s | nein |
| Bäume im Wind | Shader | Vertex-Versatz × Höhe² × sin(Zeit + Instanzphase), Sturm verstärkt | nein |
| Tiere bewegen sich | Shader | Fisch: Seitwärts-Welle entlang der Längsachse; Vogel: Flügel-Maske (x-Abstand) × sin; Laufen: Hüpfen + leichtes Schaukeln; Weg: Kreisbahn um den Ankerpunkt mit Instanzradius/-phase | nein |
| Herden ziehen | Shader + Script | Ankerpunkt einer Herde wechselt bei Wanderung (alle 20 Zyklen) → Tween der Instanzpositionen über 3 s | nein |
| Gebäude entstehen | Shader | Aufbau von unten (Clip-Höhe 0→1) + Staub-Partikel 1 × | nein |
| Städte wachsen | Daten + Shader | neue Instanzen mit Aufbau-Effekt; Nachtlichter blenden über 2 Zyklen ein | nein |
| Meteoriteneinschlag | AnimationPlayer | Flug (Bezier, 1,2 s) → Blitz (Emission) → Kameraruck (Tween, abschaltbar) → Staubring (Partikel) → Krater (Terrain-Verformung über 1 Zyklus) | nein |
| Wetterwechsel | Shader + Tween | Wolkendichte/-farbe tweenen, Regen-Partikel an/aus, Blitz = DirectionalLight-Energie-Spitze 0,1 s | nein |
| Vulkanausbruch | AnimationPlayer + Shader | Lava-Emission hoch, Rauchsäule (Partikel, 1 Emitter), Ascheschatten (Wolken-Shader regional), Terrain hebt sich über 3 Zyklen | nein |
| Eiszeit | Shader | Eis-Maske wächst (Datentextur), Schnee-Glitzern auf Hoch | nein |
| Evolutionseffekt | Shader + Partikel | Spiral-Glanz um die Art, Karte fliegt ein (Tween), Farbe der neuen Art blendet über | nein |
| Epochenwechsel | AnimationPlayer | Kamera umkreist den Planeten 360°, Atmosphärenfarbe → neue Epoche, Titelkarte, Fanfare | nein |
| Raketenstart (Epoche 7) | AnimationPlayer | Countdown-Lichter, Rauchsäule, Rakete folgt Kurve, Kamera verfolgt bis Orbit, Planet wird „Leuchtstern“ | nein |
| UI-Übergänge | Tween | Bottom Sheets 0,25 s ease-out, Zähler zählen hoch, Knöpfe 0,96-Skalierung beim Drücken | nein |
| Rückkehr-Rückblick | Shader | Überblendung der Datentexturen „vorher → nachher“ über 3 s (Lerp im Planeten-Shader), Kamera dreht einmal | nein |
Ergebnis: Alle geplanten Animationen entstehen in Godot. Externes Rigging/Animation wäre nur für Nahaufnahmen charaktergetriebener Figuren nötig (z. B. ein animiertes Maskottchen in Menüs oder Legenden in Großansicht). Das ist nicht geplant. Falls doch: Tripo Auto-Rig (25 Credits) + Retarget (10 Credits je Animation) für einzelne Legenden, Abspielen über AnimationPlayer – [Vorschlag] frühestens Phase 3.
9.3 Shader-Animation: Instanzdaten
INSTANCE_CUSTOM (vec4, je Instanz):
x Wachstumsbeginn (Zeit in s, 0 = ausgewachsen)
y Farbton/Variante (0 … 1)
z Animationsphase (0 … 2π)
w Zustand: Bauplan-spezifisch (Fisch: Schwimmradius, Gebäude: Aufbaufortschritt)
Globale Uniforms (RenderingServer.global_shader_parameter_*): wind_strength, wind_dir, storm, time_scale (Zeitraffer beschleunigt Animationen um Faktor 1,5, nicht 3 – sonst wirkt es hektisch), night_mask_strength.
9.4 Leistungsregeln für Animationen
- Keine Animation pro Instanz in GDScript. Instanzen werden nur bei Daten-Änderung angefasst.
- Partikel-Emitter höchstens 6 gleichzeitig (Niedrig: 3). Regen nur in der Zoomstufe, in der er sichtbar ist.
- AnimationPlayer-Sequenzen sind kurz (≤ 6 s) und blockieren nie die Simulation.
time_scale0 bei pausierter App und im Energiesparmodus: Shader-Zeit friert ein, Rendering kann auf 20 fps fallen (12).- „Bewegung reduzieren“ (Barrierearmut) schaltet Kameraruck, Blitze und Rückblick-Drehung ab.