Zurück zur Startseite

Schwerkraft für Sphäre in Godot 4.5: Sprungmechanik

Der Artikel beschreibt das mathematische Schwerkraftmodell für das Gehen auf der inneren Oberfläche einer Sphäre in Godot 4.5. Lineare g(h)-Abhängigkeit, numerische Lösung mit Euler-Methode und Analyse der Sprungdynamik. Geeignet für unkonventionelle Welten wie Hohle Erde.

Gehen innerhalb einer Sphäre: Physik in Godot Engine
Advertisement 728x90

Gravitationsmechanik für das Laufen auf der Innenfläche einer Kugel in Godot 4.5

In der Godot Engine 4.5 erfordert die Implementierung eines First-Person-Controllers für das Laufen auf der Innenfläche einer Hohlkugel ein nicht-standardisiertes Gravitationsmodell. Die Richtung der Gravitation ist stets entlang der Oberflächennormale orientiert, das heißt zum Mittelpunkt der Kugel hin. Dies definiert den Gravitationsvektor als Funktion der Position \vec{g}(\vec{r}).

Ein vereinfachtes Modell nimmt eine konstante Beschleunigung g_0 auf der Oberfläche an (h=0), aber für realistische Sprünge bis zu 0.3R Höhe ist eine Abhängigkeit von der Höhe h = R - |\vec{r}| notwendig. Die Kugel ist symmetrisch, daher hängt g nur von h ab: \vec{g} = g(h) \frac{\vec{r}}{|\vec{r}|}.

Modellprinzipien:

Google AdInline article slot
  • Keine Gravitation im Zentrum: g(R) = 0.
  • Kontinuität und sanfte Änderungen in g(h).
  • Keine Extrema auf [0, R].

Die lineare Funktion g(h) = g_0 \frac{R - h}{R} vereinfacht sich zu \vec{g} = g_0 \frac{\vec{r}}{R}. Dies sorgt für intuitive Physik: langsames Schweben nahe dem Zentrum und standardmäßiges Fallen nahe der Oberfläche.

Sprungdynamik und numerische Integration

Die vertikale Bewegung wird durch die Gleichung \ddot{h} = -g_0 (1 - \frac{h}{R}) beschrieben. Um die Trajektorie mit den Anfangsbedingungen h(0)=0, \dot{h}(0)=v_0 zu berechnen, wird das Euler-Verfahren verwendet.

Vorteile des Euler-Verfahrens für die Spielphysik:

Google AdInline article slot
  • Kompakter Code mit einfacher Iteration.
  • Geringe Rechenlast pro Frame.
  • Akzeptable Fehlermarge bei 60 FPS und float32.

Die analytische Lösung ist komplexer, aber nützlich für die Analyse. Diagramme zeigen, dass für v_0 < 80% der Geschwindigkeit zum Zentrum die Dynamik der auf der Erde nahe kommt.

Analyse der Sprunggrenzen

Ein Sprung zum Zentrum mit einem Stopp erfordert eine Geschwindigkeit, die von R und g_0 abhängt. Für menschliche Fähigkeiten (v_0 ≤ 5 m/s, g_0=9.8 m/s²), ist der Kugelradius auf ~5 m begrenzt. Größere Kugeln erfordern eine Reduzierung von g_0 oder machen das Erreichen des Zentrums unmöglich.

Auswirkung der Parameter auf h(t):

Google AdInline article slot
  • Eine Erhöhung von R macht die Dynamik ähnlicher zur flachen Gravitation.
  • Hohe v_0 nahe dem Zentrum verursacht ungewöhnliches Schweben.
  • Für R ≥ 20 m fühlen sich Sprünge bei typischen Geschwindigkeiten standardmäßig an.

Grenzen der "speziellen" Dynamik: v_0 < 0.8 v_center oder R > 2R_ref.

Wichtige Erkenntnisse

  • Lineares Modell g(h): Einfache Implementierung \vec{g} = g_0 \frac{\vec{r}}{R}, sanfter Übergang von g_0 zu 0.
  • Euler-Verfahren: Geeignet für Echtzeit, minimale Last.
  • Realistische Grenzen: Ein Sprung zum Zentrum ist nur möglich für R < 10 m bei g_0=9.8 und v_0=5 m/s.
  • Spielgefühl: Ungewöhnliche Physik zeigt sich nur bei Annäherung an das Zentrum.
  • Godot 4.5: Ähnlich wie beim Möbiusstreifen-Controller, Fokus auf lokale Vertikale.

Implementierung des Controllers

Im Controller bestimmt die Gravitation die "Kopf-zu-Fuß"-Orientierung. Für den Flug während eines Sprungs wird nur die Gravitation berücksichtigt; Aerodynamik ist optional. Eine spezielle Behandlung des Kugelzentrums verhindert eine Division durch Null.

Für große R (Weltmaßstäbe) behält das Modell die Symmetrie bei, erfordert jedoch eine Optimierung der Integration bei niedrigen FPS. Tests auf float32 bestätigen die Stabilität.

— Editorial Team

Advertisement 728x90

Weiterlesen