Физика автомобиля в игровом мире

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

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

Фердинанд Порше, Основатель компании Porsche

Существует два основных подхода к реализации поведения автомобиля

1. Реализация на основе копирования и воссоздания реальной физики автомобиля.

Физика автомобиля в игровом мире

2. Реализация в аркадном стиле

Физика автомобиля в игровом мире

Начнем мы с первого типа:

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

Одним из недостатков реализации гоночной механики таким образом является то, что вам нужно узнать довольно много о том, как работают реальные автомобили, чтобы понять и устранить некоторые проблемы, с которыми вы неизбежно столкнетесь с вашим моделированием. Например, ваша первая попытка использования WheelColliders, вероятно, будет выглядеть примерно так:

Даже при движении на удивительно низких скоростях автомобили будут очень склонны к опрокидыванию, если вы не смоделируете Anti Roll Bar (в основном, если подвеска с одной стороны оси значительно сжата, то вам нужно искусственно сжать подвеску с другой стороны этой оси, чтобы предотвратить слишком большой наклон автомобиля и опрокидывание). Также можно попробовать опустить центр тяжести, уменьшить расстояние подвески, иметь более короткие и широкие автомобили и т.д.

Почти каждая гоночная игра улучшает управляемость автомобиля, ограничивая максимальный угол поворота передних колес в зависимости от того, как быстро автомобиль движется. Например, на низких скоростях вы можете позволить игрокам управлять своими колесами максимум на двадцать градусов, но затем на высоких скоростях вы можете ограничить их максимум пятью градусами. Огромные углы поворота на высоких скоростях заставят ваши колеса вести себя больше как тормоза, тем самым мгновенно вызывая проскальзывание шины и явно не отражая намерения игрока. Аналогичным образом, динамически меняется крутящий момент ускорения в зависимости от текущей скорости, так что вы ускоряетесь гораздо быстрее, когда ваша скорость ближе к минимальной , чем при приближении к максимальной скорости.

К сожалению, основанный на физике подход добавляет несколько уровней косвенности между настраиваемыми переменными и фактическим результатом, который они имеют на экране. Например, если рулевое управление просто кажется не правильным, то это может быть результатом любой комбинации переменных, таких как масса, крутящий момент двигателя, максимальная скорость, значения подвески, значения проскальзывания шины, расстояние между осью, размеры автомобиля и т. д. В результате проблемы с поиском и устранением неисправностей иногда могут быть разочаровывающими и утомительными. Иногда ваши переменные массы, тяги и сцепления могут стать заоблачными, поэтому полезно тестировать значения в различных масштабах и использовать реальные значения, когда вы можете их получить.

Управление сложностью игры с помощью физики

Физика автомобиля в игровом мире

С точки зрения геймдизайна, подход, основанный на физике в целом, приводит к большей сложности, как с точки зрения механики, так и с точки зрения навыков игрока. Многие гоночные игры (например, Mario Kart) просто не просят игроков думать о сцеплениях шин, балансе, импульсе и т. д., но многие из этих элементов обязательны в реализации, основанной на физике. Однако, даже если вы не делаете гоночный симулятор, вы все равно можете добавить эти элементы в своей игре. Они могут разнообразить количество испытаний, которые поддерживают вовлеченность игроков, не полагаясь на механику, не связанные с вождением.

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

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

Физика автомобиля в игровом мире

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

Например, физика в MotorStorm часто позволяет автомобилям легко терять сцепление при движении по небольшим неровностям на дороге. Вместо того, чтобы рассматривать это как нечто, что «просто происходит», Evolution Studios, казалось, вместо этого решило расширить его, разработав треки, которые явно привлекли внимание к этой механике, тем самым бросив вызов игрокам, чтобы освоить ее.

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

И теперь мы переходим к реализации авто в аркадном стиле

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

Цель состоит в том, чтобы сделать то, что применимо для гоночной игры, не обязательно делать то, как на самом деле работают автомобили. Вы можете начать с одного BoxCollider, который ускоряется, прилагая силы, когда он касается земли, а затем вы можете решить, что вам нужна либо механика дрифта, либо система сцепления шин, либо и то, и другое. Затем вы можете сосредоточиться на том, чтобы получить физику прыжков, а затем вы можете построить систему для стабилизации автомобиля при приземлении.

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

Отличное видео которое описывает процесс создания аркадной физики на движке Unreal Engine 4

Вывод

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

Независимо от подхода, который вы решите принять, определенно потребуется значительный объем работы и много итераций, чтобы прийти к отточенной реализации, которой постоянно приятно управлять.

Оригинал статьи

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

3939
47 комментариев

Мне хотелось бы получить от вас обратную связь

Вот этот абзац выглядит как машинный перевод. Если это действительно он, то не забывай перечитывать результат и доводить его до ума ручками:

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

7
Ответить

Похоже на описание товара из АлиЭкспресс: "холодный колеса, двигатель быстро вперёд"

6
Ответить

Готово, все подправил, не досмотрел именно этот абзац :)

1
Ответить

https://youtu.be/IcPS4urttts

Моя реализация машины на Unreal Engine 4 на основе сферических коллайдеров и физических ограничителей
Это не последний результат, сейчас решены некоторые проблемы с через чур высоким крутящим моментом и низким сцеплением колес
Так что результат кажется уже более предсказуемым и приятным в плане вождения

4
Ответить

Это уровень, друг, правда, очень хорошо. Есть мелкие недочёты, но круто.

1
Ответить

В описании канала есть ссылка на папку с билдами, если вдруг есть желание пощупать

Ответить

Самая лучшая физика машин в открытом мире, была в GTAIV. Она на самом деле была похожа на реальные автомобили.

3
Ответить