Звук шагов в AAA-играх
Привет, меня зовут Александр Хилько. Я основатель школы звука XSSR Academy, а также ведущий аудиодизайнер на проекте World of Tanks.
Сегодня я хочу поговорить о том, как создаются звуки перемещения персонажа в AAA-играх.
Для игр, в которых вы управляете персонажем с видом от первого и от третьего лица, очень важно слышать обратную связь перемещения персонажа. Вы слышите звуки движения на протяжении всей игровой сессии. Поэтому очень важно, чтобы они были правильно сделаны, не раздражали и давали правильную обратную с��язь.
Я большой поклонник серии The Last of Us. И во второй части мне очень понравились звуки шагов, дыхания, обмундирования и оружия. Я решил разобраться, как работают звуковые системы в The Last of Us 2 и попробовать повторить эти системы у себя на компьютере.
Система шагов
Для начала я записал геймплей, где ходил и бегал по закрытому помещению без посторонних звуков. Закинул фрагмент видео в секвенсор и увидел, что шаги состоят из звука, когда персонаж наступает на пятку и затем, когда ставит носок обуви. Это время составляет порядка 130 миллисекунд для движения шагом.
Конечно, для разных поверхностей меняются звуки характерные для этого материала. Например, когда наступаем в лужу, звучит ещё звук шлепка о воду. Когда персонаж бежит, то расстояние между звуками пятки и носка составляет около 70 миллисекунд.
Причём звук носка меняет свою громкость, а при беге в звуке пятки больше низких частот. При повороте персонажа слышны шаркающие звуки. Вся эта система звуков меняется не мгновенно, а плавно под действием приходящих из игры параметров.
Я создал на Unity демонстрационную сцену. В аудиодвижке Wwise подключил базовую систему шагов для ходьбы и бега.
Также разделил шаги на слой пятки и носка. Ещё добавил дополнительный слой, когда мы убираем ногу. Это добавляет большего реализма в звук. Нога немного шаркает. А на повороте персонажа добавил звуки скольжения ноги по поверхности.
Так как я непрограммист, то я очень ограничен во входных данных от игрового движка. Из Unity я управляю параметрами, которые делают систему шагов работающей естественно. В основном параметры InputMagnitude и InputVertical.
Магнитуда - это длина от нулевых координат до конечной точки вектора. В моём прототипе этот параметр равен нулю, когда персонаж стоит, а когда бежит. InputVertical - это скорость перемещения персонажа. Параметр равен 1, когда персонаж достигает максимальной скорости для шага, или для бега.
Система дыхания
Если вернуться к референсу The Last of Us 2, можно заметить, что к системе шагов подмешена система дыхания. Персонаж дышит непросто, а дыхание, как в реальной жизни, меняется в зависимости от физической нагрузки. Чем больше прилагает усилий, тем интенсивнее меняется дыхание.
Эту же систему я реализовал в Wwise. Сначала я записал своё дыхание для состояния покоя, имитировал ходьбу, а также бег.
Каждое из состояний я записал в нескольких интенсивностях, чтобы учесть, что я могу находиться в состоянии покоя, но моё дыхание не нормализовалось ещё после бега.
Так как я непрограммист, я решил сделать систему нагрузки на дыхательную систему реализовать внутренними параметрами Wwise. Когда мы начинаем бег, нагрузка растёт не мгновенно, а постепенно. Таким же образом как это происходит реальной жизни. А когда силы заканчиваются, дыхание должно стабилизироваться. Наши лёгкие начинают активно качать кислород и потом постепенно стабилизируются. Параметр стресса я полностью смоделировал в Wwise.
Вот так система дыхания звучит в изоляции от всех звуков.
Кстати, в звуке шагов я решил сделать так, чтобы когда персонаж наступает в лужу, обувь не мгновенно высыхала, а постепенно. Таким образом, когда мы выбегаем из лужи или воды, звук воды постепенно исчезает. Этот приём очень хорошо виден в одной из моих любимых игр - Inside.
Звуки одежды
И самая простая система - это звуки обмундирования. Тут всё несложно. Я на персонажа в локтях разместил коллайдеры, и когда они пересекают туловище, звучит трение ткани. Так же как и в жизни. Ну и чем интенсивнее мы двигаем руками, тем громче и резче звук одежды. То есть когда мы замедляемся и останавливаемся, звук становится тише и мягче.
Казалось бы, звуки шагов это всего лишь проигрывание сэмпла, когда нога касается земли, но когда хочешь добиться максимального качества звука, приходится думать и о физике процесса.
Звучание системы движения персонажа
Я планирую в декабре мастер-класс на тему создание системы движения персонажей, который буду проводить в своей школе. Мы с командой решили публиковать наши мастер-классы и стримы на площадке спонср.ру. Сейчас там уже более 10 стримов, мастер-классов и интервью. Здесь вы найдёте мастер-классы по реверс-инжинирингу и синтезу, по Unreal, по музыкальной форме саундтреков.
Загляните в наши планы до конца года, уверен, вы найдёте для себя интересный контент.
Спасибо за внимание!