Найти тему
Тихий Уголок

Использование Programmer Instrument FMOD в Unity

Оглавление

перевод оригинальной статьи Алессандро Фама - FMOD Programmer Sounds in Unity

Замечания от редактора - оригинальная статья была написана с использованием FMOD 2.00.05. В данное время последняя версия FMOD 2.01.08. Все скрипты и данные поправлены в соответствии с работой в FMOD 2.01.ХХ

Programmer Instrument предназначен для воспроизведения звуков непосредственно из группы звуковых файлов при помощи обратных вызовов (callback). Это происходит с использованием аудиотаблиц. Аудио таблицы - это группа звуковых файлов, которые не связаны с событием, но находятся в отдельной папке как аудиоресурсы. Доступ к этим файлам можно получить с помощью строковых запросов key. Использование Programmer Instrument позволяет эффективно реализовать диалоговые системы, в которых саунддизайнер создает лишь одно событие в качестве шаблона события и воспроизводит все звуковые файлы в рамках этого единственного события.

Audio Table в FMOD с указанием как называется каждый строковый запрос для каждого аудиофайла
Audio Table в FMOD с указанием как называется каждый строковый запрос для каждого аудиофайла

Скачайте проект Unity & FMOD для этого руководства (я использовал Unity 2019.2.20f и FMOD Studio 2.01.07. Если вас интересует оригинальный проект Алессандро Фама с Unity 2019.1.2f1 и FMOD Studio 2.0.1, то ссылка на него тут). Если после открытия проекта у вас возникнут какие-либо ошибки, удалите файл FMODStudioCache.asset, поскольку он содержит старый путь к проекту FMOD Studio.

***

Подготовка к работе с Programmer Instrument FMOD в Unity

В FMOD Studio создаем новый ивент и добавляем Programmer Instrument в первую дорожку:

FMOD Studio Programmer Instrument
FMOD Studio Programmer Instrument

В Unity мы создаем подпапку "Dialogue" в Assets / StreamingAssets и сохраним там наши аудиофайлы:

подпапка Dialogue в папке StreamingAssets проекта Unity
подпапка Dialogue в папке StreamingAssets проекта Unity

Вернитесь в FMOD Studio, перейдите на вкладку Banks и щелкните правой кнопкой мыши на банк (в нашем случае Master Bank) и выберите New Audio Table -> New Audio Table:

Опция FMOD Studio “New Audio Table”
Опция FMOD Studio “New Audio Table”

В нижней части окна выбираем папку, в которой находятся наши аудиофайлы:

папка, где находятся источники FMOD Studio Audio Table
папка, где находятся источники FMOD Studio Audio Table

***

Код для Programmer Instrument FMOD в Unity

В оригинальной статье написано, что в оригинальном скрипте с сайта FMOD были ошибки и указано какие.

На данный момент все ошибки на сайте поправлены (по крайней мере для FMOD Studio версии 2.01.xx). Оригинальный скрипт с руководства FMOD можно посмотреть тут. А ниже пример скрипта, который использован в проекте.

Вставьте этот скрипт в любой GameObject в качестве компонента и в инспекторе выберите ивент, который мы создали на первом шаге. При необходимости измените строковые значения key (для звуков из таблицы) в методе Unity Update(), если ваши аудиофайлы названы как-то по другому. Теперь, нажимая клавиши 1-5 в Unity в режиме Play, вы услышите аудиофайлы, соответствующие этим кнопкам. Поздравляю!

#unity #unity3d #fmod #audioengine #gamedev #sounddesign #саунддизайн