Технота: Fly by (продолжение)
Мое небольшое исследование, которое я начал в этом посте, продолжается.
Напомню, что его целью было определить, что же для звука пролетающих пуль рядом с персонажем будет звучать лучше: запеченный звук или обсчет в реальном времени доплер-эффекта, который параметром отдается в Wwise и в нем же настраивается.
В этот раз я написал код на блупринте, описывающий принцип работы доплер-эффекта в реальном времени, из него отдал параметр в Wwise, использовал огибающие для настройки питча и громкости и дополнительно накинул LFO по питчу, чтобы увеличивать колебания при пролете снаряда. Сам звук прикреплен к снаряду, на нем выставлена и настроена аттенюация и воспроизводится в лупе.
Что получил в итоге:
1) Работающий доплер-эффект, который можно с помощью огибающих настраивать на любом звуке, а значит можно гораздо живее обрабатывать движущиеся объекты в сцене.
2) Необходимость настраивать огибающие параметров в Wwise, чтобы добиться сопоставимого с запеченным звуком результата, индивидуально для каждого типа звука.
3) Дополнительная головная боль про то, как отработать кейсы, когда оружие стреляет не физическим объектом (она же пуля, работающая по баллистике), а лучом, который моментально достигает цели. И я не про лучевое оружие — довольно часто и стрелковое оружие делают через Line Trace By Channel, который используется для трассировки линии в игровом пространстве, чтобы обнаружить объекты, с которыми линия пересекается.
4) Также возникала неприятная проблема: когда уничтожается снаряд, вместе с ним прерывается звук. И если для снарядов, которые пролетели рядом и уничтожились о поверхность, более-менее все ок (они отыгрывают эффект как положено, плюс звук удара о поверхности хорошо замаскирует недочеты), то с моментами, когда снаряд ударяет прямо в персонажа, совсем беда — он не доигрывает параметры и звучит рвано. Тут надо думать в сторону того, как сохранять аудиокомпонент еще какое-то время после уничтожения снаряда, чтобы он доигрывал звук. Видимо, фикс этой проблемы будет следующим этапом исследования.
5) Сумма методов с триггером запеченных звуков от сферы и доплер-эффекта, обсчитывающегося в реальном времени, звучит интересно. Важно синхронизировать пиковый звук момента пролета снаряда с пиком семпла запеченного звука.
6) Важно помнить, что все, что считается в реальном времени, дороже по ресурсам.
Вывод:
Сфера, которая вызывает запеченный контент, предсказуемо работает как с проджектайлами, так и с Line Trace By Channel, вызывает предсказуемо качественный контент относительно точки попадания в сферу.
Доплер-эффект, обсчитываемый в реальном времени, способен довольно интересно заполнить звуковую картину пролетающими звуками, дать ощущение позиции снаряда в сцене и, как итог, интересный результат от гибридного применения методов.
На мой вкус, в данном прототипе гибридный метод прям совсем жирный — мне нравится. Но он затратный как сточки зрения производства так и сточки зрения производительности. Важно понимать, какими ресурсами мы обладаем, решая задачи конкретного проекта, так как подходы зависят не только от жанра и наших возможностей, но и от его архитектуры и потребностей.
Думаю, что доплер-эффект, обсчитываемый в реальном времени, гораздо лучше раскроет себя в гоночном симуляторе, где искажения звука в зависимости от относительных скоростей крайне важны. Но абсолютно точно использование его на подвижных объектах окружающей среды даст сильный буст к звуковой картине.
#Технота #UnrealEngine
Post #39
225