Ein einfacher Flugsimulator

10

Wie bestimmen Sie in einem 3D-Flugsimulator mit einem Realismus von Crimson Skies (wie in Arcade-Level statt realistisch) die Bewegung eines Flugzeugs bei jeder Spieluhr?

(Crimson Skies ist ein Arcade-ähnlicher Flugsimulator: http://youtu.be/OWmYt0LZDnU?t=3m )

Ich gehe davon aus, dass das Spiel in festen Schritten voranschreitet und jeder Schritt jedes sich bewegende Objekt in einer geraden Linie mit konstanter Geschwindigkeit von seiner aktuellen Position zur nächsten bewegt.

Welche grundlegenden Parameter würden Sie benötigen, um die Masse, Geschwindigkeit, Drossel usw. zu bestimmen. Wie würden Sie sie auch kombinieren?

Wille
quelle
Interessante Frage, aber ist sie nicht zu weit gefasst? Ich meine, es fragt nach den Details der Flugzeugsimulationsdynamik. Gibt es neben der numerischen Integration von Drehmomenten und Beschleunigungen etwas Besonderes, auf das eine Antwort eingehen sollte? Ich persönlich würde es vorziehen, Drehmomente und Beschleunigungen zu vermeiden, um die Flugbahn zu ändern, da sie schwieriger zu bearbeiten sind und eine Erfahrung bieten, die ein Gelegenheitsspieler nicht mag (Spielmechaniken mit Trägheitseffekten sind schwer zu optimieren).
Teodron
Sie sollten definieren, was "Realismus auf Crimson Skies-Ebene" eigentlich bedeutet, da es Leute (wie mich) gibt, die dieses Spiel nicht gespielt haben und jetzt von der Beantwortung ausgeschlossen sind.
Philipp
3
Ist das nicht im Wesentlichen "Wie implementiert man Physik?"?
MichaelHouse
1
Nach meiner Antwort hier ist dies der gleiche Rat, den ich für diese Frage geben würde: Iterative empirische Tests. Fügen Sie Ihrer GUI einige Testschieberegler hinzu, die die verschiedenen Parameter steuern, die Sie testen möchten.
MichaelHouse
3
"Physik" + "Simulator" + "Einfach" Wählen Sie zwei aus. Der Grund, warum Sie keine einfachen Beispiele für Flugsimulatoren finden können, ist, dass der Cartoon-Flug betrogen wird und sich in einen einfachen Charakter-Controller verwandelt, während selbst minimale Simulationen tief in die Physik eintauchen und bekanntermaßen schwer stabil zu halten sind.
Patrick Hughes

Antworten:

22

Um zu verstehen, wie man einen aerodynamischen Flug simuliert, muss man zuerst verstehen, welche Kräfte die Bewegung eines Flugzeugs beeinflussen. Die tatsächliche Flugbahn eines Flugzeugs ist die Summe aller dieser physikalischen Effekte:

Newtons erstes und zweites Bewegungsgesetz

  1. Ein Objekt bewegt sich mit konstanter Geschwindigkeit, es sei denn, es wird von einer Kraft beaufschlagt.
  2. Die Beschleunigung eines Körpers ist direkt proportional und in derselben Richtung wie die auf den Körper wirkende Nettokraft und umgekehrt proportional zu seiner Masse. Somit ist F = ma, wobei F die auf das Objekt wirkende Nettokraft ist, m die Masse des Objekts und a die Beschleunigung des Objekts ist.

Motorschub

Der Schub des Triebwerks ist eine Kraft, die ein Flugzeug vorwärts beschleunigt und normalerweise vom Spieler gesteuert werden kann. Die Beschleunigung ist die Leistung des Triebwerks geteilt durch die Masse des Flugzeugs.

Schwere

Die Schwerkraft beschleunigt ein Flugzeug ständig mit einer Geschwindigkeit von 9,81 m / s² nach unten. Theoretisch wird die Schwerkraft geringer, wenn Sie höher steigen. In der Höhe, in der normale Flugzeuge operieren, kann dies jedoch ignoriert werden.

Aerodynamischer Widerstand

Je schneller sich ein Flugzeug bewegt, desto langsamer wird es durch atmosphärische Reibung. Dies wird durch eine Kraft dargestellt, die in einer Richtung gegen die aktuelle Richtung beschleunigt, in die sich das Fahrzeug bewegt. Die Kraft nimmt quadratisch mit der Geschwindigkeit zu (doppelte Geschwindigkeit = vierfache Widerstandskraft). Aber je höher das Flugzeug fliegt, desto dünner ist die Atmosphäre und desto geringer ist die Widerstandskraft. Bei der Höchstgeschwindigkeit eines Flugzeugs heben sich die durch Triebwerksschub und Luftwiderstand erzeugten Kräfte gegenseitig auf.

Es mag kontraintuitiv klingen, aber eine stärkere Drag-Konstante macht Ihr Spiel tatsächlich einfacher (Arcade-ähnlicher), da Drag die Kraft ist, die das Flugzeug daran hindert, in die Richtung zu fliegen, die der Spieler nicht möchte fliege nicht mehr (wie beim Fliegen einer Kurve). Also mehr Luftwiderstand = langsamere und wendigere Flugzeuge. Sie können dies weiter verbessern, indem Sie den Luftwiderstand erhöhen, wenn zwischen der Kursrichtung und der Bewegungsrichtung des Flugzeugs ein Unterschied besteht (dies ist nicht einmal unrealistisch - das aerodynamische Profil eines Flugzeugs ist für den geringsten Luftwiderstand im Flugzeug optimiert fliegt gerade ).

Aerodynamischer Auftrieb

Dies ist die Kraft, die tatsächlich ein Flugzeug zum Fliegen bringt. Es wird von den Flügeln erzeugt. Je größer die Flügeloberfläche ist, desto mehr Auftrieb wird erzeugt und das Flugzeug wird nach oben beschleunigt (relativ zu den Flügeln, nicht zum Boden. Wenn das Flugzeug seitwärts rollt, beschleunigt der Auftrieb es auch seitwärts). Genau wie der Luftwiderstand ist der Auftrieb relativ zu Geschwindigkeit und atmosphärischer Dichte.

Steuerflächen

Ein Flugzeug steuert seine Richtung mit verschiedenen Steuerflächen für Nick, Gieren und Rollen. Eine Bedienoberfläche funktioniert nur, wenn sich das Flugzeug bewegt. Sein Wirkungsgrad ist proportional zur aktuellen Geschwindigkeit und atmosphärischen Dichte. Beachten Sie, dass Steuerflächen nur die Richtung ändern, in die die Ebene zeigt, nicht die Richtung, in die sie sich bewegt. Dies beeinflusst die Schub- und Hubrichtung und damit allmählich die Bewegungsrichtung.

Philipp
quelle
1
Klein: Die Leistung (Energierate) steigt mit dem Geschwindigkeitswürfel. Die Widerstandskraft ist proportional zum Quadrat der Geschwindigkeit, und die Leistung ist das Produkt aus Widerstand und Geschwindigkeit. Aber Sie diskutieren nichts anderes in Bezug auf die Energieraten, also wollten Sie sich wahrscheinlich sowieso auf die Widerstandskraft beziehen.
Seth Battin
"Sein Wirkungsgrad ist proportional zur aktuellen Geschwindigkeit und atmosphärischen Dichte." Etwas ungenau bekommt ein Flugzeug mehr Luftwiderstand, wenn es die Richtung ändert, weil es den Luftstrom in eine andere Richtung zwingt. Sie müssen dies also mit der Trägheit ausgleichen, worüber ich mich kürzlich gewundert habe: Wie berechnen Sie die resultierende Kraft? Wenn das Flugzeug die Richtung ändert, können Sie die Strömungsmechanik vereinfachen, um dies zu beantworten, aber ich kenne die gute Antwort nicht. Sie müssen auch die Größe der Flügel berücksichtigen.
Jokoon
1
@jokoon Sie haben Recht damit, aber bitte denken Sie daran, dass es sich bei der Frage um einen einfachen, Arcade-ähnlichen Flugsimulator handelt. Maximaler Realismus ist weder erforderlich noch erwünscht. Für maximalen Realismus würde ich das Drehmoment von Luftwiderstand, Auftrieb und Ruder in einer genauen Simulation der Aerodynamik um das 3D-Modell des Flugzeugs vereinen, aber für die meisten Spiele, die nicht versuchen, realistisch mit Microsoft Flight zu konkurrieren, wäre das übertrieben .
Philipp
Ich bin einmal zu einer Flugshow gegangen. Wenn Sie sehen, wie ein Kampfjet eine Kurve macht, beobachten und spüren Sie, wie das Gewicht des Flugzeugs die Luft darunter drückt, als würde es treiben, aber gleichzeitig fliegen. Ich frage mich immer noch, ob der Aufzug, über den Sie gesprochen haben, immer noch ohne die Details erscheinen würde, über die ich gesprochen habe. Ich denke ja, habe ich recht? Es würde nur den Auftriebsvektor ändern und das Flugzeug irgendwie driften lassen.
Jokoon
1
@OndrejPetrzilka Weißt du, wie sich Flugzeuge beim Wenden drehen? Dadurch zeigt der Auftriebsvektor in die Mitte der Kurve.
user253751