Проба пера в game audio

Изучаю аудио движок Wwise, и в качестве тренировки решил озвучить сцену в Unity и поделиться некоторыми наблюдениями.

Практически все звуки здесь рандомизированы, настроены по аттенюации и привязаны к состоянию игрока и текущему времени. В целом, для example-сцены в low poly стилистике все мои старания в какой-то степени избыточны, но задача стояла потренироваться.

Реализовал следующие звуковые системы:

Система интерактивного окружения — трехмерные звуки птиц на деревьях, поющих в соответствии со временем суток. Также имеются звуки наковальни, звуки проезжающих повозок, колокол в часовне и тд. Громкость, фильтры, аттенюация — в самом вайзе.Все эти звуки представляют собой коллайдеры со скриптом на каждом из них, запускающим ивент вайза(проще говоря, звук) на старте сцены.

Оказалось, что разработчики вайза предусмотрели большую часть вариантов применения скриптов. Можно создать геймобъект и добавить компонент AkEvent c параметром trigger on start. И это будет простейший вариант тупо запустить какой-то звук.

Проба пера в game audio

А еще проще использовать всего лишь одну строчку кода для запуска ивента в нужном месте любого другого скрипта.

AkSoundEngine.PostEvent("eventName", gameObject);

Система шагов — смена поверхностей, несколько слоев звуков, приземления и бег. Тут все просто — по коллайдеру на каждую ступню с проигрыванием ивента при коллизии + рейкаст на проверку поверхностей. Удобно, что в вайз можно "отправить" значение out, избегая дополнительных строчек кода, где на каждый тег поверхности назначался бы соответствующий звук.

Система смены окружения — при входе в помещение звуки с улицы меняются, а точнее приглушаются. В помещении сделал триггер, на который повесил скрипт изменения "стейта". При входе включается indoor, при выходе -outdoor. Поигрался с громкостью и lowpass фильтром. Довольно удобно и несложно регулировать эти стейты.

Вот так выглядит окно с настройкой стейтов в вайзе.
Вот так выглядит окно с настройкой стейтов в вайзе.

Система времени суток - ночью игровой микс меняется. Перестает быть слышны наковальни, рынок, гавкающие собаки, колокола и тд. Вместо птичек слышны сверчки. Добавил в сцену простенький DayNight Controller, подцепился к его параметру current time, создал такой же параметр в вайзе и при помощи blend-контейнера (позволяет «смешивать» различные звуки и/или другие контейнеры в зависимости от любых парметров) отрегулировал плавные переходы из дневного окружения в ночное.

Система высоты камеры — чем выше камера от персонажа тем насыщеннее звук ветра. Тоже самое, только параметр camera high + blend-контейнер.

Проба пера в game audio

Окклюзия - особенно громкие звуки слышны через стены и закрытые двери. Тут не знаю как коротко описать, может быть отдельно напишу. С этим возился долго.

Дифракция - если открыта дверь в таверне, звук распространяется через эту открытую дверь. Создается специальный "портал" — это может быть дверь и/или окна, который должен соприкасаться с триггером на комнату.

Система стейтов — при попадании в нужную по «сюжету» зону звучат соответствующие звуки и меняется микс. Тут просто. Триггер на нужной зоне + скрипт на смену стейта в on trigger enter/exit.

Зоны реверберации - звуки внутри замка подвергаются соответствующей реверберации. Для этого создается aux шина в вайзе (аналог return-трека в DAW). На нее можно завести любой звук. В нужном месте триггер и скрипт. Персонаж зашел — шаги стали с ревербераций. Вышел — без.

Интерактивная музыка — изменение степени напряженности в зависимости от местоположения персонажа относительно опасного места. 4 стадии — exploration, tavern, suspense, combat. Сначала в эксплорейшне была музыка, но в последний момент решил убрать, оставив архитектуру переключений.

Система боя — при сражении с боссом изменяются приоритеты в миксе. Сделал через тоже через стейты. На первый план выходят звуки ударов, попаданий и реакций персонажа и босса. Технически, это тоже «стейт». Нужно заранее подкрутить микс под каждый стейт и настроить плавность их переключения.Каждый удар состоит из нескольких слоев: попадание по телу, движения одежды, усилие и вскрики при получении удара.

Как-то так :)

С удовольствием поработаю над звуком в какой-нибудь игре для опыта и портфолио.

1414
2 комментария

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

2
Ответить

С этим не смог разобраться. Почему-то конкретно подтормаживает даже после того как сделал билд и запустил его. И именно в этом проекте. 

Ответить