перевод оригинальной статьи Алессандро Фама - FMOD Programmer Sounds in Unity
Замечания от редактора - оригинальная статья была написана с использованием FMOD 2.00.05. В данное время последняя версия FMOD 2.01.08. Все скрипты и данные поправлены в соответствии с работой в FMOD 2.01.ХХ
Programmer Instrument предназначен для воспроизведения звуков непосредственно из группы звуковых файлов при помощи обратных вызовов (callback). Это происходит с использованием аудиотаблиц. Аудио таблицы - это группа звуковых файлов, которые не связаны с событием, но находятся в отдельной папке как аудиоресурсы. Доступ к этим файлам можно получить с помощью строковых запросов key. Использование Programmer Instrument позволяет эффективно реализовать диалоговые системы, в которых саунддизайнер создает лишь одно событие в качестве шаблона события и воспроизводит все звуковые файлы в рамках этого единственного события.
Скачайте проект 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 в первую дорожку:
В Unity мы создаем подпапку "Dialogue" в Assets / StreamingAssets и сохраним там наши аудиофайлы:
Вернитесь в FMOD Studio, перейдите на вкладку Banks и щелкните правой кнопкой мыши на банк (в нашем случае Master Bank) и выберите New Audio Table -> New 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 #саунддизайн