Pull to refresh

Знакомство Unity с FMOD за пять минут

Reading time3 min
Views9.1K

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

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

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

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

  • на сколько всё сложно будет программисту?

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Спасибо за внимание.

Tags:
Hubs:
Total votes 3: ↑3 and ↓0+3
Comments1

Articles