Свободное плавание: создание лодки в God of War

Трудности с высадкой и синхронизация персонажей.

Дизайнер боевой системы из Santa Monica Дин Ример (Dean Rymer) рассказал о том, как создавалась механика перемещения на лодке в God of War. Оказывается, в ходе работы авторы игры столкнулись с множеством проблем, основные из которых заключались в том, чтобы Кратос и Атрей естественно садились в судно и выходили из него. Мы выбрали из материала главное.

Свободное плавание: создание лодки в God of War

Создание лодки

Кори Барлог, руководитель разработки God of War, мечтал о том, чтобы в серии появились управляемые лодки ещё со второй части, однако, в прошлых играх их наличие никак нельзя было оправдать сюжетом. В God of War 2018 года возможность имплементации лодок наконец появилась благодаря введению хаба — Озера Девяти.

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

На ранних этапах разработки в Santa Monica решили, что Кратос будет управлять лодкой всего одним веслом, будто он сидит в каноэ. Авторы God of War посмотрели много видео о том, как управлять этой лодкой, чтобы понять, как именно им следует анимировать главного героя. Для захвата движений они построили картонное судно в натуральную величину.

Свободное плавание: создание лодки в God of War

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

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

Разработчики из Santa Monica перепробовали массу настроек, чтобы передать чувство управления лодкой. Долгое время на ранних этапах создания God of War от игрока требовалось нажимать кнопку «газа», чтобы судно двигалось вперёд.

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

Дин Ример, дизайнер боевой системы God of War

Повороты

Одним из самых сложных для реализации элементов управления были повороты. В отличие от предыдущих игр серии, в God of War 2018 года направление движения Кратоса зависит от того, куда «смотрит» камера. Такое управление удобно для сражений, но в лодке оно мешает осматривать окружение. Поэтому разработчики решили «повесить» всё управление судном на левый стик.

Тестеры жаловались на то, что повороты слишком медленные, однако когда в Santa Monica повысили их скорость, те же игроки стали сетовать, что лодка неуправляемая. Для того, чтобы справиться с этой проблемой, разработчики сделали лодку Кратоса «заднеприводной», хотя в реальной жизни ускорение лодке передаётся из её центральной части. Передав ускорение на корму, авторы God of War сделали повороты судна более предсказуемыми.

Свободное плавание: создание лодки в God of War

Причалы и пляжи

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

Разработчики потратили много времени на создание системы, которая выравнивала бы положение персонажа относительно игровых объектов вроде лодок, сундуков и дверей. Эта система использовала навигационное ядро God of War, которое направляет Кратоса к его точке назначения по самому короткому пути, а также оценивала скорость игрока.

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

Свободное плавание: создание лодки в God of War

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

Что же касается высадки, то тут разработчикам тоже пришлось столкнуться с некоторыми трудностями. Им хотелось, чтобы игрок выбирался из судна как можно быстрее, при этом важно было сохранить естественность действий Кратоса. Когда игрок нажимает кнопку «причалить», игра высчитывает угол и дистанцию до причала. После этого система выбирает из 10 вариантов анимаций. Затем используется внутренняя технология, которая называется motion warp, чтобы регулировать анимацию и направлять лодку к докам.

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

Свободное плавание: создание лодки в God of War

Истории Мимира

Когда Кратос и Атрей получают голову Мимира, та становится их верным спутником, рассказывая им об истории Мидгарда во время путешествий на лодке.

Система, которая отвечает за эти истории, отвечает за то, чтобы проигрывать конкретные звуковые файлы в зависимости от событий, произошедших по ходу игры. На самом деле, рассказы Мимира состоят из множества небольших файлов, соединённых вместе. Если игрок вылезает из лодки, то история прерывается, и проигрывается файл-outro, который всегда короче анимации выхода из судна. Таким образом, Мимир может продолжить свой рассказ в следующий раз, когда Кратос окажется в лодке.

Дополнительные детали

  • Для лодки было создано более 600 уникальных анимаций.

  • Написано свыше 750 строчек диалогов.

  • В Альфхейме у Кратоса уникальная лодка, весло и фонарь.

  • Анимации выхода и посадки в лодку меняются, после того, как игрок получает голову Мимира.

  • Лодка «знает» с какой стороны расположен вход на причал, поэтому автоматически подстраивает анимацию.

  • Подсветка геймпада PlayStation 4 меняется на голубую, когда игрок путешествует на лодке.

  • Когда Кратос берёт в руки весло, игровой движок воспринимает это как подбор оружия.

  • Однажды разработчики столкнулись с багом, из-за которого Кратос выходил из лодки, не оставив в ней весло.

7474
66 комментариев

Сколько гемороя в такой на первый взгляд простой вещи...

20
Ответить

Такая хрень всегда с консолями. Ибо жестко надо все оптимизировать. Нельзя просто скинуть все на железо или движок.

6
Ответить

Лучше бы больше времени боёвке уделили.
Теперь ясно почему боёвка в игре такая унылая, всё из-за лодки.

3
Ответить

Комментарий недоступен

8
Ответить

Эт шо, лодка для Нинтендо Лабо?

6
Ответить

Порт GoW на свитч конфёрмд!

1
Ответить

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

И судя по всему, у Мимира есть два списка историй: тот, который реагирует на события в игре, и тот, который идет в ход, когда истории из первого рассказаны. И мне не удалось добраться до конца второго — ему все время что-то было рассказать.

5
Ответить