Fisica del veicolo con skid


13

Come farei per creare la fisica del veicolo per un'auto che può perdere la trazione? Voglio che sembri che il guidatore abbia un piede piatto, quindi quando si preme il gas, le auto che guidano le ruote (posteriori) perdono trazione e rendono un po 'difficile il controllo. Vorrei anche essere in grado di fare ciambelle e "drift" dietro gli angoli.

Avrei anche bisogno di sapere quanto "slittamento" sta accadendo, quindi posso aggiungere una quantità proporzionale di segni di fumo e pneumatici.

Assumi un gioco di auto in stile 2d dall'alto verso il basso.

Grazie

Risposte:


10

Questa è una versione molto semplificata, ma andrebbe bene per la maggior parte dei giochi di tipo arcade. Sono necessarie le seguenti proprietà:

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

ogni fotogramma:

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

accelerare

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

sterzare a sinistra

angularVelocity -= turnSpeed;

sterzare a destra

angularVelocity += turnSpeed;

Per ottenere una buona deriva, impostare il trascinamento e il trascinamento angolare su un valore molto vicino a 1, ad es. 0.9


Quindi i controlli sarebbero potenza (acceleratore) e velocità angolare (sterzo)? O mi sto perdendo qualche trasformazione?
drxzcl,

no, questo è tutto - ho dimenticato di spiegare come guidare. Sono stati aggiornati con la nuova variabile turnSpeed.
Iain,

2

Oggi stavo leggendo un documento che simula alcune dinamiche del veicolo durante una collisione e uno spin-out:

Jing Zhou; Jianbo Lu; Huei Peng, "Dinamica dei veicoli in risposta alla manovra della tecnica di immobilizzazione di precisione", Atti della conferenza ASME sui sistemi dinamici e di controllo del 2008

Questo contiene un modello fisico che rappresenta il momento di ribaltamento e la perdita di trazione della gomma posteriore durante l'imbardata causata da una forza di collisione deliberata. Sembra interessante per i programmatori di giochi interessati alle dinamiche dei veicoli durante le collisioni.


Piuttosto uno studio, ma sfortunatamente non adatto al problema in questione. Il documento è un'analisi 3D, con il rotolo del veicolo e tutto il resto. La domanda riguarda il gioco 2D con vista dall'alto. Quindi fisica 2D, non 3D.
Bram,

1

Non consiglio generalmente la fisica di Bourg per programmatori di giochi , ma ne parla un po 'nel capitolo 10 (intorno a pagina 171) e potrebbe darvi un punto di partenza.

Sfortunatamente, il codice del veicolo in PhysX è ancora "campione" e non ben documentato, quindi non puoi facilmente capire come funziona. Credo di aver visto il codice derivato dal loro esempio mostrare il tipo di comportamento che stai cercando in 3D, ma è una simulazione di livello inferiore di quanto penso tu voglia.


1

Le prime cose che devi capire sono "slip ratio" e "cerchio di trazione". Il rapporto di slittamento è una buona approssimazione per il comportamento degli pneumatici, con una relazione non lineare tra la differenza di angolo e la forza laterale degli pneumatici. Fornisce inoltre informazioni di feedback sulla coppia del conducente (per il volante con feedback della forza).

La versione super semplice di entrambi i concetti è la seguente: maggiore è la differenza di angolo tra la direzione di rotolamento e la direzione di movimento, maggiore è la forza perpendicolare alla direzione di rotolamento (forza laterale). Raggiunge il picco a (tipicamente) forse da 5 ° a 8 ° e cade da lì se l'angolo del pneumatico viene aumentato.

Il cerchio di trazione è fondamentalmente un limitatore che ritaglia qualsiasi vettore di forza che va fuori da esso. Modella il modo in cui le forti accelerazioni / frenate riducono la capacità di sterzo e viceversa. La dimensione del cerchio di trazione (vettore della forza di trazione massima) si ridimensiona con la forza che preme il pneumatico sul terreno.

Dovresti modellare la forza laterale (sterzante) separatamente dalla coppia motrice / frenante (rotazionale) e dalla forza di trazione opposta da terra.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.