Fahrzeugphysik mit Skid


13

Wie würde ich Fahrzeugphysik für ein Auto entwickeln, das an Traktion verlieren kann? Ich möchte, dass es so aussieht, als hätte der Fahrer einen platten Fuß. Wenn Sie also Gas geben, verlieren die Autos, die (Hinter-) Räder antreiben, die Traktion und sind etwas schwer zu kontrollieren. Ich möchte auch in der Lage sein, Donuts zu machen und um Ecken zu "treiben".

Ich müsste auch wissen, wie viel "Schleudern" passiert, damit ich eine proportionale Menge Rauch und Reifenspuren hinzufügen kann.

Nehmen wir ein 2d-Auto-Spiel von oben nach unten an.

Vielen Dank

Antworten:


10

Dies ist eine sehr vereinfachte Version, aber für die meisten Arcade-Spiele in Ordnung. Sie benötigen folgende Eigenschaften:

positionX, positionY - where the car is
velocityX, velocityY - speed on each axis
drag - how fast the car slows down
angle - the rotation of the car, in radians
angularVelocity - speed the car is spinning, in radians
angularDrag - how fast the car stops spinning
power - how fast car can accelerate
turnSpeed - how fast to turn

jedes Bild:

positionX += velocityX
positionY += velocityY
velocityX *= drag
velocityY *= drag
angle += angularVelocity
angularVelocity *= angularDrag

beschleunigen

velocityX += sin(angle) * power;
velocityY += cos(angle) * power;

nach links lenken

angularVelocity -= turnSpeed;

nach rechts lenken

angularVelocity += turnSpeed;

Um eine gute Drift zu erzielen, setzen Sie drag und angularDrag auf sehr nahe an 1, z. B. 0,9


Die Steuerelemente wären also Leistung (Gas) und Winkelgeschwindigkeit (Lenkung)? Oder vermisse ich eine Transformation?
drxzcl

nein das war's - ich habe vergessen zu erklären, wie man lenkt. Habe mit neuer turnSpeed ​​Variable aktualisiert.
Iain

2

Ich habe heute eine Zeitung gelesen, die eine gewisse Fahrzeugdynamik während einer Kollision und eines Ausrutschens simuliert:

Jing Zhou; Jianbo Lu; Huei Peng, "Fahrzeugdynamik als Reaktion auf das Manöver der Präzisions-Immobilisierungstechnik", Tagungsbericht 2008 der ASME Dynamic Systems and Control Conference

Dieses enthält ein physikalisches Modell, das das Überrollmoment und den Verlust der Traktion des Hinterreifens während des Gierens darstellt, die durch eine absichtliche Kollisionskraft verursacht werden. Es scheint für Spielprogrammierer interessant zu sein, die sich für Fahrdynamik bei Kollisionen interessieren.


Eine ziemliche Studie, aber leider nicht für das vorliegende Problem geeignet. Das Papier ist eine 3D-Analyse mit Fahrzeugrolle und allem. Die Frage bezieht sich auf ein 2D-Spiel mit Draufsicht. Also 2D-Physik, nicht 3D.
Bram

1

Im Allgemeinen empfehle ich Bourgs Physik für Spieleprogrammierer nicht , aber er spricht ein wenig darüber in Kapitel 10 (um Seite 171) und gibt Ihnen möglicherweise einen Ausgangspunkt.

Leider ist der Fahrzeugcode in PhysX immer noch ein Beispiel und nicht gut dokumentiert, sodass Sie nicht leicht herausfinden können, wie das funktioniert. Ich glaube, ich habe gesehen, dass Code, der von ihrem Beispiel abgeleitet wurde, die Art von Verhalten zeigt, nach der Sie in 3D suchen, aber es ist eine Simulation auf einer niedrigeren Ebene als ich denke, dass Sie es wollen.


1

Das erste, was Sie verstehen müssen, sind das "Schlupfverhältnis" und der "Traktionskreis". Das Schlupfverhältnis ist eine gute Näherung für das Reifenverhalten mit einer nichtlinearen Beziehung zwischen der Winkeldifferenz und der Seitenkraft des Reifens. Sie erhalten auch Informationen zum Fahrerdrehmoment (für das Force-Feedback-Lenkrad).

Die supereinfache Version beider Konzepte lautet wie folgt: Je größer der Winkelunterschied zwischen Walzrichtung und Bewegungsrichtung ist, desto größer ist die Kraft senkrecht zur Walzrichtung (Querkraft). Sie erreicht ihren Höhepunkt (normalerweise) bei 5 ° bis 8 ° und fällt von dort ab, wenn der Reifenwinkel vergrößert wird.

Der Traktionskreis ist im Grunde genommen ein Begrenzer, der jeden Kraftvektor abschneidet, der außerhalb des Kreises liegt. Es modelliert die Art und Weise, wie starkes Beschleunigen / Bremsen die Lenkfähigkeit verringert und umgekehrt. Die Größe des Traktionskreises (maximaler Traktionskraftvektor) skaliert mit der Kraft, die den Reifen auf den Boden drückt.

Sie müssen die Querkraft (Lenkkraft) separat vom Antriebs- / Bremsmoment (Drehkraft) und der entgegengesetzten Zugkraft vom Boden modellieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.