Знакомство Unity с FMOD (по-быстрому, минут пять)

... всё зависит от возможностей команды, компании и проекта. Но давайте упростим и представим. Небольшая команда, подводя разработку проекта к стадии звукового сопровождения, чаще всего использует возможности среды без каких-либо дополнительных решений. В папке assets есть набор звуков и композиций. Часть звуков нужно проигрывать событийно, часть находятся на сцене в связанных настроенных компонентах и прочее.

Событийные звуки, через код, программиста просят проигрывать с учётом изменения pitch в небольших пределах. Особо никто не парится. Всех устраивает встроенные возможности настройки компонентов и Inspector-ом все довольны.

Теперь представим ситуацию посложнее. Компания/команда решает подтянуть звуковой дизайн игры с помощью FMOD. Программист начинает предполагать, как новые условия / требования повлияют на код. Придется переписывать кучу всего... Короче, страшное дело. Тем более видели этот интерфейс FMOD Studio? Управление космическим кораблем.

Знакомство Unity с FMOD (по-быстрому, минут пять)

Для меня было важно ответить быстро на два вопроса:

  • на сколько всё сложно будет программисту?
  • можно ли распределить работу sound designer-а так, чтобы он не имел исходный код проекта? (на тот случай, если будет фриланс)

Итак спойлер. На оба вопроса - ответ да. Т.е. на второй "да", а на первый "да, всё просто".

Идешь на сайт FMOD. Регистрируешься. Качаешь FMOD Studio и unity package.

Устанавливаешь FMOD Studio. Перегружаешь компьютер. Импортируешь unity package в Unity. После импорта, должно появится окно настроек FMOD.

Настраиваешь быстро FMOD Studio в Unity. Идешь простым путем, нам программистам, не нужно даже лезть в FMOD Studio. Задача разобраться, как это работает.

Кнопка "Linking" - вариант "Single Platform Build". Указываешь директорию, куда ты будешь копировать файлы от sound designer, который может быть фрилансером.

Знакомство Unity с FMOD (по-быстрому, минут пять)

Кнопка "Listener" - цель снести с камеры слушатель по умолчанию (компонент Audio Listener) и установить компонент FMOD Studio Listener. Конечно, это можно сделать вручную.

Знакомство Unity с FMOD (по-быстрому, минут пять)

Остальные кнопки - еще проще. Поэтому пропускаю.

Запускаешь FMOD Studio. Создаешь новый проект. Слева Панель из трёх разделов: Events, Banks, Assets. Тебе как программисту, пока нужно знать, что эти три сущности - есть три кита.

Знакомство Unity с FMOD (по-быстрому, минут пять)

Assets - исходный материал, тоже самое, что ты привык видеть в папке звуков проекта в Unity. Events - инструкции, которые ты будешь вызывать, вместо звуков. Можешь представить, что это скрипты от sound designer-а, в которых могут находится десятки вызовов разных звуков, настроек и прочее. Banks - это контейнеры, в которых будет находится сборка Events и Assets.

Создай директорию в Assets и скопируй туда звуковые файлы. Любым известным способом. Если файл помечен как unimported, значит импортируй его командой, через меню.

Из звукового файла сделай событие "Create Event". После чего, в разделе Events появится событие с тем же именем, что и название звукового файла. Переименуй его по красоте.

Знакомство Unity с FMOD (по-быстрому, минут пять)

Затем добавь это событие в контейнер (Bank). По умолчанию при создании проекта, будет один мастер контейнер в разделе Banks. Но ты можешь создать свою структуру и контейнеры...

Знакомство Unity с FMOD (по-быстрому, минут пять)

После того, как Event попал в Bank, можно "билдить!" После этого, ты получишь файлы контейнеров (банков).

Знакомство Unity с FMOD (по-быстрому, минут пять)

Представь себе, что эти файлы тебе передали :) Их нужно положить в директорию, которую ты указал в настройках Linking - FMOD Studio в Unity.

Как только там появятся банки, FMOD Studio в Unity их заметит.

И вот теперь ты готов вызвать Event, который находится в Bank. А задача Event, передать инструкции ядру FMOD Studio, чтобы машина FMOD начала проигрывать звуковые файлы из Bank > Assets. Конечно я упростил, но где-то так, грубо, оно и происходит.

Знакомство Unity с FMOD (по-быстрому, минут пять)

Чтобы вызвать событие, добавляешь компонент FMOD Studio Event Emitter на объект. Находишь нужный Event, указываешь способ запуска и/или остановки события. Запускай игру и слушай.

Для тех, кто не любит читать, можно посмотреть

Моя задача минимум в этой статье надеюсь выполнена. У меня заняло намного больше времени, чем 5 минут, чтобы вникнуть в это, хотя бы поверхностно.

FMOD Studio отличный инструмент для того, чтобы поднять уровень звука вашей игры! Очень легко интегрируется. И вполне не сложно этим управлять из кода. А некоторые вещи даже не нужно кодить! За это отвечать будет уже дизайнер звуков. Например, проигрывание случайных звуков одного вида. Случайный pitch...

Если тебе зашло, рекомендую полистать документацию

Кому будет интересно, то напишу еще одну статью про FMOD, но уже со стороны кода. Как было в проекте и какие варианты, ну и как пришлось поменять для работы с FMOD.

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

4949
28 комментариев

О, пасиб! Весьма вовремя, буду очень благодарен, если будет ещё статья со стороны скрипта.

4
Ответить

Эх, что ж, значит будет)

4
Ответить

А что там у fmod со стоимостью лицензии? Я курил их мануалы по лицензии для инди, но так и не понял, сколько там нулей в стоимости.

2
Ответить

Там на странице с лицензией есть сноска

Note: Free Indie License available for developers with less than $200k revenue per year, on a small (under $500k) development budget.

Т.е. Если ты разработчик с доходом меньше 200к в год и на разработку игры уходит меньше 500к то используй Free.

7
Ответить

Тем более видели этот интерфейс FMOD Studio? Управление космическим кораблем

Это вы еще интерфейс Wwise не видели)

3
Ответить