Меня зовут Дмитрий Мигаль, я саунд дизайнер и композитор, а это мой личный блог, в котором я пишу о звуке, играх, рассказываю о своих проектах и делюсь интересными событиями из своей жизни.
Сотрудничество: @D_migal
Post #26
234
Технота: FlyBy
Недавно я задался вопросом, как решить задачу, связанную с воспроизведением звуков пролетающих снарядов рядом с персонажем. В результате я собрал прототип для тестирования гипотезы и хочу поделиться своими наработками.
Взяв за основу прототип от третьего лица и реализуя первые идеи, я убедился, что решение задачи может принципиально отличаться в зависимости от положения камеры. Это связано с тем, что в режиме от первого лица камера представляет собой голову персонажа с ушами, а в режиме от третьего лица камера — это наблюдатель за персонажем, который постоянно меняет свое положение. Это приводит к смещению дистанций и координат, что может искажать воспроизведение звука.
Данная система необходима для того, чтобы давать игроку информацию о том, откуда по нему ведут огонь и из какого оружия. Кроме того, с художественной точки зрения, это довольно эффектный звук.
Чтобы уменьшить количество расчетов со стороны игрового движка и сделать систему более управляемой, я решил воспроизводить звуки в 2D. Для этого я создал запеченный контент (пофантазировал на тему пролетающих дисков), который обладает свойствами эффекта Доплера с ярко выраженным позиционированием направления: слева направо, справа налево и т.д.
Далее я собрал архитектуру в Wwise.
В рамках теста я попробовал реализовать четыре направления пролета снаряда:
- Back_L_Front_R
- Back_R_Front_L
- Front_L_Back_R
- Front_R_Back_L
Я реализовал два подхода к переключению контента: через бленд-контейнер и через свитч. Свитч показался более оптимальным, так как в отличие от бленд-контейнера, он вызывает в момент пересечения снаряда и сферы только один голос, а не всю пачку (оставляя актуальный с нормальной громкостью а остальные уводя в минус бесконечность), как это делает бленд-контейнер. Это позволяет сэкономить ресурсы.
Для управления свитч-группой необходим RTPC, который будет управляться со стороны Unreal Engine, передавая параметры под каким углом произошел пролет снаряда.
Далее необходимо создать систему в Unreal Engine. На уровне блупринта персонажа я создал сферу, которая может регистрировать пересечение снаряда с гранями сферы с помощью ивента Get Component Overlap. Мысленно разделив сферу на четыре части, я определил следующие зоны:
- Back_L_Front_R (-180° – -90°)
- Back_R_Front_L (180° – 90°)
- Front_L_Back_R (-90° – 0° )
- Front_R_Back_L ( 90° – 0° )
Затем, используя информацию о результате пересечения из Sweep Result, я извлек данные о нормали и применил функцию Get Azimuth and Elevation. Извлекая информацию из азимута, я получил значения пересечения снаряда со сферой в градусах и передал их в RTPC.
Вариантов реализации системы пролета снарядов может быть несколько. Например, можно воспроизводить звук непосредственно в точке пересечения снаряда и сферы, используя 3D-звук (что более актуально для FPS). Также можно привязать звук к летящему объекту и рассчитывать эффект Доплера. Возможен и комбинированный подход, сочетающий несколько методов. Я продолжу развивать этот проект и поделюсь результатами!
#Технота #UnrealEngine
Недавно я задался вопросом, как решить задачу, связанную с воспроизведением звуков пролетающих снарядов рядом с персонажем. В результате я собрал прототип для тестирования гипотезы и хочу поделиться своими наработками.
Взяв за основу прототип от третьего лица и реализуя первые идеи, я убедился, что решение задачи может принципиально отличаться в зависимости от положения камеры. Это связано с тем, что в режиме от первого лица камера представляет собой голову персонажа с ушами, а в режиме от третьего лица камера — это наблюдатель за персонажем, который постоянно меняет свое положение. Это приводит к смещению дистанций и координат, что может искажать воспроизведение звука.
Данная система необходима для того, чтобы давать игроку информацию о том, откуда по нему ведут огонь и из какого оружия. Кроме того, с художественной точки зрения, это довольно эффектный звук.
Чтобы уменьшить количество расчетов со стороны игрового движка и сделать систему более управляемой, я решил воспроизводить звуки в 2D. Для этого я создал запеченный контент (пофантазировал на тему пролетающих дисков), который обладает свойствами эффекта Доплера с ярко выраженным позиционированием направления: слева направо, справа налево и т.д.
Далее я собрал архитектуру в Wwise.
В рамках теста я попробовал реализовать четыре направления пролета снаряда:
- Back_L_Front_R
- Back_R_Front_L
- Front_L_Back_R
- Front_R_Back_L
Я реализовал два подхода к переключению контента: через бленд-контейнер и через свитч. Свитч показался более оптимальным, так как в отличие от бленд-контейнера, он вызывает в момент пересечения снаряда и сферы только один голос, а не всю пачку (оставляя актуальный с нормальной громкостью а остальные уводя в минус бесконечность), как это делает бленд-контейнер. Это позволяет сэкономить ресурсы.
Для управления свитч-группой необходим RTPC, который будет управляться со стороны Unreal Engine, передавая параметры под каким углом произошел пролет снаряда.
Далее необходимо создать систему в Unreal Engine. На уровне блупринта персонажа я создал сферу, которая может регистрировать пересечение снаряда с гранями сферы с помощью ивента Get Component Overlap. Мысленно разделив сферу на четыре части, я определил следующие зоны:
- Back_L_Front_R (-180° – -90°)
- Back_R_Front_L (180° – 90°)
- Front_L_Back_R (-90° – 0° )
- Front_R_Back_L ( 90° – 0° )
Затем, используя информацию о результате пересечения из Sweep Result, я извлек данные о нормали и применил функцию Get Azimuth and Elevation. Извлекая информацию из азимута, я получил значения пересечения снаряда со сферой в градусах и передал их в RTPC.
Вариантов реализации системы пролета снарядов может быть несколько. Например, можно воспроизводить звук непосредственно в точке пересечения снаряда и сферы, используя 3D-звук (что более актуально для FPS). Также можно привязать звук к летящему объекту и рассчитывать эффект Доплера. Возможен и комбинированный подход, сочетающий несколько методов. Я продолжу развивать этот проект и поделюсь результатами!
#Технота #UnrealEngine
- 🔥 9
- 👍 4
- 💯 1
- 🍾 1



