На стыке реализма и веселья: как работает модель передвижения автомобиля в Uncharted 4 Статьи редакции
А также трудности, с которыми разработчики столкнулись при программировании физики внедорожника.
В Uncharted 4 впервые в серии появилась возможность управлять внедорожником. В Naughty Dog хотели правильно вписать новую механику в игру — чтобы передвижение на транспорте работало реалистично, но не настолько, чтобы игрок терял удовольствие от геймплея при возникновении трудностей.
Программист Naughty Dog Эдуард Перейра на конференции GDC 2017 рассказал, как студия справлялась с этой задачей. Мы выбрали главное из выступления.
Когда разработчики принялись за дизайн механики передвижения на автомобиле, они закрепили для себя основные принципы, которых хотели придерживаться:
- езда приносит удовольствие как можно большей части игроков;
- присутствует элемент реализма, чтобы игрок чувствовал себя «приземлённым»;
- механика вождения работает правильно вне зависимости от условий — будь то твёрдая поверхность или грязь.
В Naughty Dog определили, какие задачи им нужно было решить, чтобы воссоздать правильную симуляцию. Во-первых, шасси машины должно правильно распознавать коллизию с другими объектами и соответствующе реагировать на них. Во-вторых, разработчиком нужно было понять, как воссоздать поведение мотора. В-третьих, мотор должен правильно работать в связке с шасси, чтобы для колёс рассчитывалось нужное сцепление.
Сначала разработчики прописали поведение подвески — её схематичное представление изображено ниже. Жёлтый круг — это точка соприкосновения, с которой считывается информация о поверхности. Прямая же показывает то, насколько сильно могут сжиматься пружины подвески для вертикального перемещения колеса.
Однако из-за такого подхода машина не могла считывать поверхность правильно и достаточно быстро — порой колёса попросту застревали в препятствиях.
Поэтому разработчики немного пересмотрели эту систему. Теперь на изменения реагировало всё колесо целиком, по окружности. Сразу несколько точек на колесе считывали поверхность, что позволило добиться нужного поведения подвески и правильной коллизии. Чтобы колесо не дрожало, когда под ним находится сразу несколько нестабильных объектов (например, досок), число точек соприкосновения ограничили до трёх.
Но при этом возникла проблема — когда машина наезжала на препятствия, она теряла почти всю свою скорость. Это было связано с тем, что не все точки соприкосновения колеса были перпендикулярны подвеске.
Чтобы избежать этого, разработчики «обманули» физический движок, сделав так, что все препятствия колёса считывали как перпендикулярные себе. В этом случае Naughty Dog пришлось уйти от реализма, чтобы сохранить удовольствие от вождения.
В чём-то передвижение автомобиля пришлось ограничивать. Чтобы машина не могла заезжать на стены (прежде чем начать падать, она продолжала цепляться колёсами), дизайнеры ограничили угол её передвижения.
То же самое пришлось сделать и с силами, которые продолжали действовать на автомобиль в воздухе. Чтобы машина не переворачивалась при падении со склона, разработчикам пришлось добавить дополнительный вектор силы, который не давал транспорту упасть на крышу.
Далее стояла задача правильно отобразить поведение мотора и крутящего момента. Чтобы управление оставалось относительно реалистичным и в то же время отзывчивым, в Naughty Dog воссоздали принцип дифференциала — механизма, который передаёт мощность вращения на колёса. Каждое колесо движется самостоятельно — например, если левое замедлится или остановится, то правое продолжит крутиться с независимой от левого мощностью.
Последний вопрос касался поверхностей, по которым внедорожник проезжает в игре. В зависимости от заданной силы трения определялось, насколько сильное будет сцепление колёс и насколько часто они будут пробуксовывать.
Самое высокое сцепление (за исключением дорог) было у участков травы. Чуть ниже — на поверхностях с грязью. В лужах и воде сцепление практически отсутствовало. Вычислялась как сила трения поверхности, по которой едет машина, так и сила трения самих колёс.
Силу трения в свою очередь разделили на переднюю и боковую силы. Первая вычисляется делением крутящего момента на радиус колеса. Во боковой силе частное боковой и передней скорости умножается на перпендикулярную силу от поверхности.
Из этого следует, что общая сила трения вычисляется корнем из суммы квадратов боковой и передней сил.
Однако, чтобы машина могла входить в управляемый занос, Naughty Dog вновь пришлось поступить в ущерб реализму. Когда игрок жмёт на тормоз, у задних колёс резко снижается сила трения — что позволяет легко «дрифтить» на участках с хорошим сопротивлением (например, на асфальте).
Разработчики воссоздали довольно реалистичную модель поведения автомобиля. Однако от многих элементов симуляции пришлось отказаться, чтобы игрок продолжал получать удовольствие от вождения. Всё же Uncharted 4 — это приключенческий экшен, а не симулятор внедорожника.
Лучший автотранспорт, что я когда-либо встречал в шутерах. Теперь понятно почему - такая глубокая проработка механики движения. Движется даже интереснее, чем в большинстве аркадных гонок.
Предлагаю покрутить в игре руль и посмотреть как он синхронизирован с колесами.
При малейшем отклонении стика на геймпаде, колеса принимают крайнее левое/правое положение, при этом водитель продолжает крутить руль, делая еще несколько оборотов. Пока водитель докручивает руль, колеса больше не шевелятся, так как они уже в крайнем положении.
Возникает впечатление, будто руль разболтан и вращается независимо от колес.
"Самое высокое сцепление (за исключением дорог) было у участков травы. Чуть ниже — на поверхностях с грязью." - Я смотрю кто-то никогда не ездил по мокрой траве, сцепления у колёс там чуть более чем никакое.
Прочитайте ещё раз плез)
Я не про реализм, а логику. Никто не просит рассчитывать температуру шин и их давление, просто немного логики.
Какая логика в Uncharted? Он под градом пуль бегает и ему норм приземляться с спиной на камни
Чому-то owlie не может тебе ответить нормально, придётся мне :D
А логика примерно такая же, как и в том, чтобы сделать трение у дороги больше, чем трение на лужах. Вот почему они почти убрали его в лужах, но оставили на дороге? Правильно - логика, основанная на опыте из реального мира. И именно по этой же логике с травой сцепление должно быть меньше, чем на дороге, но больше, чем на лужах.
Тем не менее они в него никогда не попадают (знаете наверное про механику "удачи" в игре), а трюки вполне выполнимы каскадёрами.
Зависит от уровня сложности)
а трюки вполне выполнимы каскадёрами.Со страховками и прочей защитой. Ах да. Ещё и дни подготовки к этому. И Каскадёры часто погибают.
А где там была речь про мокрую траву?
Даже по обычной летом ездить ну такое себе, там явно сцепление не на уровне дорожного полотна.
Как довольно утрированный случай - мы пытались въехать на склон на "Соболе" летом, по обычной траве, не сухой, но и не мокрой (дождей никаких не было), просто обычная трава. Так вот забуксовали неслабо, пришлось толкать - колёса крутятся, и по траве скользят пздц просто. Там не хуже льда)
Комментарий удален модератором
Поезди на реальной машине по траве (любой) и грязи. Потом поговорим
Комментарий удален модератором
Вау, вот это сравнение:
1. В Spintires транспорт куда тяжелее, скорости меньше.
2. Spintires далеко не симулятор и разницу между поверхностями почти не передаёт.
А теперь всё же попробуйте на реальной машине. Или хотя бы посмотрите как гоночные болиды вылетают на газон и как себя ведут.
глубина и агрессивность протектора шины в расчет берется?) В анче вроде не болид и не гражданская резина
Комментарий удален модератором
Комментарий удален модератором
Что за токсичная чушка?
Комментарий удален модератором
Комментарий удален модератором
Комментарий удален модератором
Я так IRL на мокрой траве перевернулся. Боком как потащило, затем переднее колесо в яму - результат предсказуем.
Да даже не по мокрой. Просто обычная летняя сочная трава.
Это "кто-то" - типичный игрок в Uncharted. Задача разработчиков аркадной механики - соответствовать ожиданиям своей целевой аудитории, а не просвещать её о том, как на самом деле будет работать физика в эти моменты.
Комментарий удален модератором
Комментарий недоступен
Давно приметил что на примере серии uncharted основаны почти все статьи описания механик и нарратива.
Что странно, учитывая что и механики и нарратив там откровенно слабые. Вот технический статей, вроде этой, можно хоть миллион настрочить.
а есть хоть один аргумент в пользу слабости? куча наград от авторитетных организации, понимающих в геймдеве и повествовании ну и дикая популярность и признание игроков с вами не соглашаются
А разве там не лучшие механики и нарратив в индустрии?
Хорошая же игра)
НАРРРРАТИВААА
Интересный материал, спасибо. В принципе, с хардкорной физикой было бы даже интереснее)
Всё-таки большое количество gif в постах - это зло.
А статья интересная :)
Это видео, а не gif
Действительно:) Но всё равно - зло, браузер начинает подтормаживать от того, что срабатывает автовоспроизведение.
А сколько лет твоему процессору и видеокарте в компе? Уже довольно давно декодирование видео есть в аппаратном режиме, и оно не должно влиять на производительность компа сильно
У меня старая ЭВМ :)
В так случае у тебя и яндекс дзен будет тормозить.
Яндекс.Дзен кстати нормально работает.
Ну так и чего ты ноешь?
Когда загружали может было и видео, но после опубликования они автоматически конвертируются в формат gif
Вообще-то наоборот.
Здесь одни mp4.
У меня все видео в статье в формате mp4, а у тебя по-другому?
Комментарий удален модератором
Мне кажется в Uncharted одна из лучших механик управления авто среди игр, где это вообще-то не основа геймплея.
Жаль только регулировка скорости автомобиля вышла очень паршивой, из-за чего ощущение было управления крутой, но игрушечной машинкой
В Mafia 2 очень реалистичное движение автомобилей. Там можно переключаться между режимом симулятор и аркада. Так как машины там до изобретения ремня безопасности почти любое скоростное столкновение ведет к смерти.
больше скорость меньше ям
https://giant.gfycat.com/GlumLeafyDingo.mp4
Naughty Dog красавчики.
Комментарий удален модератором
Это что, в GTA они загораются, если перевернуться
!
Комментарий удален модератором
При том, что это не симулятор и они делали игру более интересной в ущерб реализму в определенных случаях. Стрельба по машине к механике передвижения не особо и относится.
Комментарий удален модератором
Комментарий недоступен
Комментарий удален модератором
калчартеде
Ну ты ведь понимаешь, да?
Какая-то дичь. В стиле, мы сделали практически реалистичную физику в игре, но... решили отключить её к **ям, а то не весело и вернуться в начало двухтысячных. И зачем эта реалистичность? Даешь очередную тупую аркаду, к которым все так привыкли. Вот правильно написали, что сделали бы выбор в настройках.
Миссия неплохая была
Эх, именно по этому я бы никогда не смог вкатится в геймдев: Очень нужно знание алгебр, геометр , физик :(