Саунд-дизайнер игры об эффектах и настройке озвучивания.
На конференции DevGAMM 2017 саунд-продюсер Ice-Pick Lodge Василий Кашников рассказал о контекстно-звуковой сцене — методе работе со звуком, который применяется при создании ремейка игры «МОР. Утопия».
DTF публикует расшифровку выступления.
Наш проект — это симулятор выживания в заражённом городе, где вы играете роль одного из врачей. Всего их трое — у каждого свои подходы. Нужно много ходить, читать, иногда вскрывать тела, доставать органы, в общем — заниматься разнообразными вещами, которые запрещали делать в детстве. По городу бродят санитары-огнемётчики, больные и здоровые мужчины и женщины, — все эти люди хотят вашего внимания.
Город затерян в степях. Через него протекает река Горхон, так что он называется Город-на-Горхоне. В нём развиты кожевенная промышленность, разведение быков, сбор целебных трав и их употребление во всех возможных вариантах. Один из персонажей эти травы «перегоняет» буквально у вас на глазах.
Мы достаточно нетривиальные ребята, которые изо всех сил стараются казаться нормальными. Иногда даже получается. Но есть возможность немного поэспериментировать со звуком, чем я с радостью и воспользовался.
Звуковая сцена
Звук — это не только контент. Это ещё и его имплементация, настройка, отладка, художественная часть — звук и звуковая сцена не должны быть просто «вещью в себе». Нельзя набрать ассетов, напихать их в игру и стать саунддизайнером.
Художественная часть заключается ещё и в том, чтобы не выпячивать свою роль саунддизайнера, а стараться выполнять её незаметно. Если звук не вызывает «свербения» в затылке, его не замечаешь — значит, всё хорошо, игрок погружается. Нужно видеть, для чего делается конкретный звук.
Также звуком нужно расставлять акценты, чтобы можно было отследить какие-то игровые моменты, увидеть их получше и, может быть, понять: куда идти, что делать, что конкретно произошло (ты потерял здоровье, нашёл монетку или заразился и умер). Всё это можно акцентировать не только музыкой, но и окружением. Идёшь, вдруг завыли собаки, и понимаешь: «Чёрт побери, я себя что-то не очень хорошо чувствую».
Звуком также можно рассказывать истории. Конкретно у нас в «Мраморном гнезде» была реализована такая штука. Часть домов закрыты, в них прячутся люди. Если подойти к дверям или окнам — можно услышать, что там что-то происходит. Я сделал так, что непонятно, что именно — какую-то мебель двигают, голоса звучат, но ведь можно устроить из этого интересную аудиосцену — игрок мог бы подойти, подслушать мини-историю.
Контекстно-зависимая сцена
Звук корректируется в соответствии с тем, что происходит в игре — события, ивенты, как меняется мир и персонаж. Всем знаком подход, при котором с переменой локации или при переходе в боевой режим изменяется музыка или звуки. Это классическое «жёсткое» переключение, в принципе, уже контекстно-зависимое.
Сейчас разработчики начинают работать и с адаптивным звуком, который куда лучше подстраивается под то, что происходит в игре. Это генеративная и процедурная музыка.
Генеративная музыка — один трек разрезан либо по слоям (на одном барабаны, на другом — гитары, и так далее), либо по небольшим коротким отрезкам. В зависимости от происходящего включаются, проигрываются, сменяют друг друга и отзываются на действия игрока отдельные элементы.
Процедурная музыка — вещь посерьёзнее. В звуковом движке генерируется звук из встроенных синтезаторов, либо вообще стоит генератор музыки, настроенный на определённые гармонии. Так можно получить уникальную музыку не то что для каждой локации, но для каждой игровой сессии. Пока это не очень широко используется, потому что процедурная музыка, как правило, ещё слушается странновато.
Наше решение совмещает все три подхода. Мы решили сделать хитроумную сцену, в которой звук будет зависеть от состояния персонажа — его характеристик.
В марте мы выпустили преальфу «У мраморного гнезда», чтобы посмотреть на реакцию публики, показать, как будет выглядеть наша игра. Там была достаточно простая для понимания схема — фоновая музыка, звучащая постоянно в регионе всего города.
Город разделён на три условных части — верхний, нижний и средний. В преальфе можно было гулять по верхней части, разделённой на кварталы. На фоне звучит всегда одна и та же тема, если только квартал не заражён, а поверх — тема, характерная для каждого из кварталов. То есть постоянно играет эмбиент, к небольшим «квартальчикам» а привязаны полуритмические вещи.
Они накладываются друг на друга, могут включаться в любой момент, накладываясь на эмбиент. Изначально мы планировали сделать немного иначе, но наткнулись на этот подход из-за случайной ошибки. Внезапно получилось так хорошо, что мы решили сделать её фичей.
Эффекты, интерьер, экстерьер
Когда игрок заходит в дом — меняется звуковой фильтр. Накладывается low-pass, улицу слышно не так отчётливо, как и погодные эффекты, например — дождь.
Зависимость звука от самочувствия построена на поканальной разбивке. Мы специально каталогизировали, разбили на кучу каналов весь звук, который есть в игре. Каждый канал подвергается своей обработке, в зависимости от того, какие у игрока в конкретный момент характеристики.
Вот сколько каналов:
На каждый канал назначена своя категория звуков, к каждой из категории звуков — такая таблица:
Уже сделаны ассеты эффектов, которые будут меняться в зависимости от изменения параметров. Например, если персонаж получил повреждения — падает громкость музыки, потому что важно не получить новые повреждения и услышать, где подлечиться. Игрок может даже не смотреть на характеристики, а слушать.
Раз — музыка стала тише. Наверное, что-то в организме не то. А если персонаж заражается — мы накладываем дикие эффекты вроде хоруса и реверберации. Причём последняя будет работать только на голоса, которые слышит персонаж, случайные фразы. Всё это в идеале должно вызывать чувство дискомфорта. Подлечился — всё восстанавливается обратно, слышишь мир в неискажённом виде.
Ещё мы сделали ритм привязанным к движениям персонажа. То есть теперь у нас в регионе играет эмбиентная, минималистичная тема, и есть ритмичные паттерны, которые включаются, когда ты идёшь. Есть ивент — игрок пошёл, проходит примерно пять секунд, потом включается этот темп-ритм. Для чего это сделано. Чтобы игрока можно было мотивировать, что ходить — это не так страшно. У нас же игра про заборы, кто не знает, и про то, как их долго и сложно обходить, любуясь красотами. Пока идёшь — слушаешь музыку, как в плеере.
Про сложности
Мы делаем игру не столько в Unity, сколько в редакторе, который написали поверх. И события в игре управляются из него. Поэтому получалось, что конкретно в Unity можно было заниматься только точечной настройкой, что было тяжело. Сейчас — спасибо программистам — всё сделали удобнее.
На первых порах сильно раздражало усложнение процесса имплементации, но сейчас всё стало значительнее дружелюбнее.
Про звуки реки
Есть река, и хочется, чтобы её было слышно на подходе. «Вешать» звук на меш было не очень хорошо, или вообще невозможно. Поэтому программист сделал нам такую штуку.
3D-звук реки, позиция которого меняется на ближайшую к игроку точку на контуре водоёма. Либо, если игрок внутри контура — прямо над/под ним на уровне воды. Есть два нюанса:
- Ближайшая к игроку точка может резко изменить своё направление. Чтобы это частично сгладить, к движению источника добавлена инерция.
- С инерцией есть риск, что источник будет пролетать прямо над ухом игрока. Чтобы этого не произошло, источнику запрещено подлетать к игроку ближе текущего расстояния до контура.
В завершение — небольшая демонстрация. Первый момент показывает, как работает звуковая сцена в помещении — персонаж заходит, заражается, а когда выходит — слышно, как меняется звуковое окружение. Это ещё не имплементированная механика, но референс, как она должно работать.
Источник: DTF