Unity 6.3
0 онлайн 3 гостей 3 в системе
Вход

Разработка амбизонического аудиодекодера

Амбизонический декодер — это аудиокомпонент, который декодирует амбизонический аудиоформат в определенный выходной формат, такой как стерео или объемный звук. Этот формат зависит от конфигурации вашего динамика (меню: Изменить > Project Настройки > Аудио > Режим динамика по умолчанию), если только ваша платформа не переопределяет это.

Хотя Unity поддерживает амбизоническое аудио, по умолчанию он не предоставляет встроенных декодеров. Вместо этого вы должны либо выбрать сторонний декодер, либо использовать свой собственный плагин декодер.

Настройка плагина амбизонического аудиодекодера

Вы можете настроить амбизонический аудиодекодер так же, как вы настроили бы Audio Spatializer. Однако следующие параметры в файле AudioPluginInterface.h специфичны для плагинов амбизонического аудиодекодеров:

UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder

Во время фазы сканирования плагина флаг UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder сообщает Unity, что это эффект амбизонического декодера. Чтобы разрешить плагину работать как амбизоническому декодеру, установите флаг в битовом поле описания эффекта:

definition.flags |= UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder;

Unity перечисляет ваш плагин как опцию в окне Project Настройки (меню: Изменить > Project Настройки > Аудио > Плагин Ambisonic Decoder).

структура UnityAudioAmbisonicData

UnityAudioAmbisonicData структура похожа на UnityAudioSpatializerData структура, которую Unity передаёт спатиализаторам; она содержит ambisonicOutChannels Целое число.

Целое число ambisonicOutChannels

Декодер Ambisonic работает в начале аудиоконвейера в Unity, и переменная ambisonicOutChannels сообщает плагину, сколько выходных каналов должен использовать Unity. ambisonicOutChannels автоматически устанавливается на количество каналов DefaultSpeakerMode.

Например, если вы воспроизводите амбизонический аудиоклип первого порядка, который имеет 4 канала, и ваш режим динамика является стерео (который имеет только 2 канала):

  • Обратный вызов процесса амбизонического декодера проходит в 4 для подсчета входных и выходных каналов.

  • Поле ambisonicOutChannels автоматически устанавливается на 2.

  • Плагин выводит свои пространственные данные на первые 2 канала и нулевое значение на остальные 2 канала.

Шаги для разработки плагина амбизонического аудиодекодера

Следуйте этим шагам, чтобы разработать свой собственный амбизонический аудио декодер плагин для Unity:

  1. Создание пользовательского аудио плагина с помощью Аудио-плагин SDK.

  2. Установите флаг в битовом поле описания эффекта:

    definition.flags |= UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder;
    
  3. Когда вы закончите настройку плагина, скомпилируйте файл. Убедитесь, что он компилируем на вашей предпочтительной платформе.

  4. По желанию, преобразуйте файл в файл .dll.

  5. Переместите файл плагина в папку Asset проекта Unity.

Более подробную информацию о том, как работать с вашим амбисоническим аудио плагином в Unity, см. в Ambisonic Audio.

Форматы, поддерживаемые Unity ambisonics

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

Изначально плагины амбисонических декодеров поддерживают амбисонические источники первого порядка и бинауральный стереовыход. Амбисонические источники второго порядка не поддерживаются.

Если формат клипа соответствует ожидаемому формату плагина амбизонического декодера, то амбизоническое аудио должно работать без проблем. Предпочтительным амбизоническим форматом Unity является B-формат, с ACN порядком компонентов и SN3D нормализацией.

Дополнительная информация

Для получения информации о том, как разработать плагин, см. Аудио-плагин SDK и Аудиоспациализатор SDK. Вы также должны загрузить Аудио-плагин SDK.