Увеличаване на вашите звукови възможности чрез FMOD

Звуковият двигател Unity предлага прилична производителност за повечето проекти, но не достига, когато търсите по-разширени аудио функции. С този проект ние се стремим да смесим силата на FMOD Studio с физическия двигател на Unity.

Недостатъците на аудио двигателя на Unity

Това е проект, който направих преди няколко години с мой колега. Идеята беше да се направи инструмент за синхронизиране на физиката на Unity с FMOD, което позволява на потребителите да се възползват напълно от аудио възможностите на последния.

Можете да намерите изходния код тук. Следва кратък урок, който написах по това време, за да обясня защо и как трябва да използвате този инструмент.

Силата на FMOD

В FMOD Studio основната единица е събитието, ако искате да възпроизведете звук, трябва да създадете събитие и да присвоите аудио файл(ове) към него. Това означава, че можете да промените цялото аудио на игра, като запазите същата структура на събитието.

Например, ако правите шутър, в даден момент вероятно бихте искали
пистолетът ви да възпроизведе звук от изстрел. Ако използвате Unity, ще трябва да добавите компонент Audio Source към пистолета си и след това да го накарате да възпроизвежда от вашия код, когато стреляте. Това е добре, лесно е за разбиране и доста ясно.

Но ако се опитате да го направите по-сложен, започвате да забелязвате някои слабости. Ако се опитате да издадете малко по-различни звуци за всеки куршум, за да избегнете повтаряемост, ще трябва да го кодирате. Но как звучи играта е проблем, за който трябва да се погрижи звуковият дизайнер, така че програмистът не трябва да отделя време за това.

Ако използвате FMOD Studio, звуковият дизайнер може просто да рандомизира параметър всеки път, когато се възпроизвежда събитие, и да приложи различни ефекти в зависимост от това. Толкова лесно.

Инструментът

Въпреки че интеграцията на FMOD Unity може да се управлява лесно, синхронизирането и правилното й настройване с физическия двигател може да изисква много повече работа, отколкото може да се мисли първоначално.

Можете да използвате функцията за задействане, която идва с FMOD Studio
Излъчвател на събития
, но това няма да ви отведе много далеч, тъй като все пак ще трябва да кодирате
избора на събитието в зависимост от това с какво се сблъсква GameObject.

Това е мястото, където този проект влиза в действие, идеята е да се разшири интеграцията на Unity FMOD за тези, които трябва да възпроизвеждат звуци при сблъсък.

Как работи

Нека да разгледаме как да настроите прост проект за Звук на сблъсък. Ще разгледам само основите, ако искате по-задълбочено ръководство, можете да го намерите тук.

Опитахме се да поддържаме проекта възможно най-ясен и ясен, но
ако никога преди не сте работили с FMOD, трябва да отидете да научите основите, преди да опитате да го използвате.

Работи по следния начин: от страна на FMOD има проект с всички събития, които ще се възпроизвеждат при сблъсък, той ще обработва всичко, свързано със звука, докато Unity ще се грижи за логиката. Трябва само да конфигурирате скриптаSoundCollider на GameObjects, които искате да се държат като такива.

Препоръчвам ви да изтеглите тази демонстрация, ще бъде много по-лесно за разбиране, отколкото просто да четете за него.

Настройка на FMOD

В проекта FMOD има родителска папка с име SoundMaterials в основата и всяко от нейните събития трябва да бъде присвоено на банка със същото
име.

Всяка подпапка подSoundMaterials представлява различен материал и
трябва да има поне едно събитие със същото име като папката. Това е
събитието по подразбиране, то ще се играе при сблъсък, ако не може да бъде намерено друго по-конкретно събитие
.

Конкретни взаимодействия на сблъсък могат да бъдат създадени чрез добавяне на едно събитие с името на един от материалите под папката на другия материал. напр. “дърво/метал”: металносъбитие под папката дърво, то ще се играе всеки път, когато дърво се сблъска с метал (или обратното).

Настройка на Unity

Настройката на Unity е много проста, просто импортирайте пакета, добавете FMOD Studio Listener към вашата камера и започнете да добавяте SoundCollider компоненти към всичко, което искате да възпроизвежда звуци при сблъсък. Само не забравяйте, че трябва да има валидно име на материал, както и Колайдер [3D/2D] и RigidBody [3D/2D] (освен ако колайдерът не е тригер ).

Характеристика

Това са някои от ключовите характеристики на Звук при сблъсък:
- Общи и специфични взаимодействия на звуков материал (различни събития в зависимост от това какво с какво се сблъсква).
- Вградени параметри, които се синхронизират автоматично по време на изпълнение: скорост, маса и размер.
- Персонализирани параметри, можете да зададете вашите персонализирани FMOD параметри от код за всеки SoundCollider.

Поставихме много проста демо в Unity, за да покажем как работи този проект и как трябва да се използва.

Благодаря ви, че прочетохте до самия край, надявам се този малък проект да ви е харесал. Ако не сте, моля, уведомете ни защо и как бихте го подобрили, би било от голяма полза!