Назад к списку уроков

Звук в играх

Nau Engine
Простой22 Ноября 2024
Структура статьи:1 Импорт звуков2 Контейнер3 Добавление на сцену

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

 

Самое важное, что даже самый лучший шедевр от талантливого звукорежиссера или композитора не сможет полностью раскрыть свой потенциал, если его не удастся органично интегрировать в игровой процесс. Здесь требуется учитывать как наличие виртуального пространства, так и общую интерактивность происходящего. 

 

В NAU Engine мы включили в редактор как уже существующие в индустрии подходы, так и разработали свои инструменты для решения типовых задач, стабильно возникающих по ходу разработки. 

 

Для того, чтобы звук появился в игре, нужно:

  • импортировать файлы в проект согласно общим правилам

  • добавить звуки в “контейнер”, сгруппировав их, и настроить общую логику их проигрывания,

  • создать на сцене объект с компонентом “эмиттер”,  который будет воспроизводить содержимое контейнера,

  • создать на сцене объект с компонентом “слушатель”, который будет улавливать воспроизводимые звуки.

 

Ниже мы рассмотрим каждый из этапов, а также возможности, доступные разработчику, отвечающему за аудио-контент игры.

 

Импорт звуков

Путь аудио-контента в разработке начинается с его импорта. Nau Engine работает с форматами WAV и MP3. Для того, чтобы добавить нужные файлы в проект, нужно:

  • или нажать кнопку +Add (Добавить) в левом верхнем углу браузера проектов.

  • или перетащить ассеты из системного проводника в окно браузера в редакторе.

  • или через системный проводник перенести нужные файлы в папку проекта (в корневую директорию или подпапки)

 

Подробнее об импорте можно прочесть в статье документации. В итоге файл звука попадёт в папку проекта в виде сырого ассета. Теперь его можно использовать при настройке аудио-контейнера – абстрактного ассета, группирующего звуки и помогающего задавать для них базовую логику проигрывания.

Контейнер

Контейнер представляет собой ассет, в котором содержатся один или несколько аудиотреков, а также описывается логика их проигрывания.

 

Создать контейнер можно в любой папке вашего проекта. Для этого необходимо выбрать пункт "Аудио контейнер" в выпадающем меню, которое появляется:

  • при нажатии кнопки "+ Add" (Добавить);

  • при нажатии правой кнопкой мыши на свободное пространство в браузере проекта.

 

Выделив контейнер, вы откроете его настройки в инспекторе. В список можно добавить один или несколько импортированных файлов, при этом один и тот же звук можно добавить несколько раз. 

 

Затем вы можете настроить параметры воспроизведения общего содержимого контейнера, используя выпадающие меню. Доступны следующее типы воспросизведения контейнера:

  • Sequence (По порядку) - проигрывает все звуки по порядку 

  • Random (Случайно) - проигрывает один случайный звук

  • Shuffle (Перемешать) - проигрывает все звуки в случайном порядке

  • Mix (Соединить) – соединяет звуки в контейнере воедино

И отдельные файлы в списке, и контейнер целиком можно проигрывать, нажимая на кнопку воспроизведения audio_play (проигрывать автоматически).

 

Добавление на сцену

Чтобы добавить в игру звук, на сцене необходимо создать объекты со следующими компонентами: “эмиттер”, отвечающий за воспроизведение звука, и “слушатель”, который будет его воспринимать.

 

В некоторых случаях аудио не привязано к определенной точке пространства, например, фоновая музыка или ambient-звуки. В таких ситуациях расположение объектов с компонентами не имеет особого значения. Однако в большинстве случаев расположение звуков в пространстве играет важную роль. Например, если персонаж перемещается по лесу, в котором поют птицы и журчит река, то неправильное расположение эмиттеров, отвечающих за звуки чириканья и текущей воды, может нарушить ощущение полного погружения в игру.

 

Общее правило: для объекта, представляющих аватар игрока на сцене, назначайте компонент “слушатель”. А вот компонент “эмиттер” с соответствующим контейнером в настройках стоит добавлять на “звучащие” объекты.

 

В эмиттере можно:

  • добавить ссылку на контейнер, который будет проигрываться

  • указать, будет ли звук играться при запуске сцены, или его нужно активировать (например из скриптов),

  • указать, будет ли звук зациклен при проигрывании,

  • настроить будет ли звук привязан к пространству (3D) или нет (2D), а также в первом случае задать форму и размер этого пространства.

 

Вы также можете взаимодействовать с контейнерами напрямую через код, связывая их с логикой событий.

 

После того как сцена будет готова, вы можете проверить её общее звучание, запустив Play mode. Не бойтесь экспериментировать и наслаждайтесь творческим процессом!