БЛОГ

Как создается физика для автоспортивного симулятора Go>Race

В прошлых постах вы могли прочитать о графическом движке Go>Race, а также о том, как продвигается создание трасс и машин.

Но сейчас, наконец, настало время для того, что является сердцем любого автосимулятора — его физики. Ее создание и настройка сейчас как раз находятся в самой активной фазе.
Игровой движок Unigine, на котором создается Go>Race, содержит в себе базовую модель ньютоновской физики, которая включает в том числе расчеты взаимодействий между разными объектами — например, столкновения, силы инерции, обмен импульсами и так далее.

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

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

Для программистов физики Go>Race главное, чтобы поведение автомобиля в реальной жизни и симуляторе оставались как можно более близки. Ведь гоночные команды и пилоты — это главная целевая аудитория симулятора, и поэтому крайне важно, чтобы они могли сопоставлять настройки автомобилей в симуляторе и реальности, что позволяет экономить время и деньги на тестах.

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

Каждое колесо в Go>Race моделирует пять точек касания с дорогой, что позволяет имитировать изменения шины под нагрузкой, а также давать пилоту более точные ощущение от того, что происходит с машиной. Пилот сможет интуитивно чувствовать, где находится предел сцепления шины с дорогой, и насколько агрессивно можно атаковать, чтобы не сорваться в занос.
Одна из вещей, над которыми сейчас ведется активная работа — это аэродинамика. Для каждой машины определяются элементы, которые создают как подъемную, так и прижимную силу, а также лобовое сопротивление. Особое внимание в будущем планируется уделить моделированию завихрений, которые создают машины в движении и то, какой эффект это будет оказывать на другие автомобили, находящиеся в непосредственной близости на трассе.

Конечно, Go>Race (пока) не претендует на абсолютно точное и детальное моделирование всех мыслимых и немыслимых физических процессов происходящих внутри и снаружи автомобиля. В отдельных, не критичных, моментах не обойтись и без упрощений. В конце-концов, целевая платформа симуляторов — не суперкомпьютерные кластеры. Но что хочется отметить, так это внимание к деталям, стремление сделать физику как можно более «физичной» и правдоподобной.

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