Физика автомобиля с заносом

13

Как бы я занялся созданием физики автомобиля для автомобиля, который может потерять сцепление с дорогой? Мне кажется, что у водителя плоская нога, поэтому, когда вы нажимаете на газ, автомобили, ведущие (задние) колеса, теряют сцепление с дорогой и затрудняют управление. Я также хотел бы иметь возможность делать пончики и "дрейфовать" по углам.

Мне также нужно знать, сколько «заноса» происходит, поэтому я могу добавить пропорциональное количество дыма и следов шин.

Предположим, 2D игра в стиле сверху вниз.

Благодарность

Адам Харт
источник

Ответы:

10

Это очень упрощенная версия, но она подойдет для большинства игр аркадного типа. Вам нужны следующие свойства:

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

каждый кадр:

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

ускоряться

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

держаться левее

angularVelocity -= turnSpeed;

держаться правее

angularVelocity += turnSpeed;

Чтобы получить хороший дрейф, установите перетаскивание и angularDrag очень близко к 1, например, 0,9

Iain
источник
Значит, органы управления будут мощностью (дроссельной заслонкой) и угловой скоростью (рулевого управления)? Или я пропускаю некоторые преобразования?
drxzcl
нет вот и все - забыл объяснить, как рулить. Обновились с новой переменной turnSpeed.
Иан
2

Сегодня я читал газету, которая имитирует динамику некоторых транспортных средств во время столкновения и разворота:

Цзин Чжоу; Цзянбо Лу; Хуэй Пэн, «Динамика автомобиля в ответ на маневр техники точной иммобилизации», Материалы конференции 2008 года по динамическим системам и управлению ASME

Это содержит физическую модель, которая представляет момент переворачивания и потерю тяги задней шины во время рыскания, вызванную преднамеренной силой столкновения. Это кажется интересным программистам, интересующимся динамикой автомобиля во время столкновений

Хит Ханникут
источник
Довольно исследование, но, к сожалению, не подходит для рассматриваемой проблемы. Документ представляет собой 3D-анализ, с рулоном автомобиля и все. Вопрос относится к 2D игре с видом сверху. Таким образом, 2D физика, а не 3D.
Брэм
1

Я обычно не рекомендую Bourg's Physics for Game Programmers , но он немного об этом говорит в главе 10 (около стр. 171) и может дать вам отправную точку.

К сожалению, код транспортного средства в PhysX все еще является «образцом» и плохо документирован, поэтому вы не можете легко понять, как это работает. Я полагаю, что я видел код, полученный из их примера, отображающий то поведение, которое вы ищете в 3D, но это симуляция более низкого уровня, чем, я думаю, вы хотите.

Том Хадсон
источник
1

Первое, что вам нужно понять, это «коэффициент скольжения» и «тяговый круг». Коэффициент проскальзывания является хорошим приближением к поведению шины с нелинейной зависимостью между разницей в углах и боковым усилием шины. Он также предоставляет вам информацию обратной связи по крутящему моменту для водителя (для рулевого колеса с обратной связью)

Суперпростая версия обеих концепций заключается в следующем: чем больше разность углов между направлением прокатки и направлением движения, тем больше сила перпендикулярна направлению прокатки (поперечная сила). Он достигает пика (обычно), возможно, от 5 ° до 8 ° и падает оттуда при увеличении угла наклона шины.

Тяговый круг - это ограничитель, который отсекает любой вектор силы, выходящий за его пределы. Он моделирует то, как сильное ускорение / торможение снижает способность рулевого управления, и наоборот. Размер тягового круга (максимальный вектор силы тяги) зависит от силы, прижимающей шину к земле.

Вам нужно было бы моделировать поперечную (рулевую) силу отдельно от движущего / тормозящего (вращающего) крутящего момента и противодействующей силы тяги от земли.

doug65536
источник