Audio Profiler
Audio Clip

앰비소닉 오디오

개요

이 페이지에서는 앰비소닉을 재생하는 방법과 앰비소닉 오디오 디코더를 지원하기 위해 오디오 플러그인 인터페이스에 적용된 변경 사항에 대해 설명합니다.

앰비소닉은 다중 채널 포맷으로 저장됩니다. 앰비소닉을 사용하면 각 채널이 특정 스피커에 매핑되지 않고 음장이 더 전체적인 방법으로 표현됩니다. 이렇게 하면 청취자의 방향(즉 XR에서 사용자의 머리 회전 방향)을 기준으로 음장을 회전할 수 있습니다. 스피커 설정과 일치하는 포맷으로 음장을 디코딩할 수도 있습니다. 앰비소닉은 일반적으로 360도 비디오와 함께 사용되고, 오디오 스카이박스로 사용하여 멀리 있는 주변음 효과를 낼 수도 있습니다.

앰비소닉 오디오 디코더 선택

이 프로젝트의 오디오 설정(메인 메뉴: Edit > Project Settings로 이동 후 Audio 카테고리 선택)으로 이동합니다. 프로젝트의 사용 가능한 디코더 목록에서 앰비소닉 디코더를 선택합니다. Unity 2017.1에는 제공되는 빌트인 디코더가 없으나, Google과 Oculus의 경우 오디오 SDK에 각 1개의 Unity용 빌트인 디코더가 있습니다.

오디오 설정의 앰비소닉 옵션
오디오 설정의 앰비소닉 옵션

앰비소닉 오디오 클립 임포트

다중 채널 WAV 파일을 일반 파일과 똑같은 방법으로 임포트할 수 있습니다. 오디오 클립의 인스펙터 창에서 앰비소닉(Ambisonic) 체크박스를 선택합니다. WAV 파일은 ACN 컴포넌트 순서와 SN3D 정규화를 사용하는 B-포맷 파일이어야 합니다.

오디오 클립 인스펙터의 Ambisonic 체크박스
오디오 클립 인스펙터의 Ambisonic 체크박스

오디오 소스를 통한 앰비소닉 오디오 클립 재생

다른 오디오 클립과 마찬가지로 앰비소닉 오디오 클립을 오디오 소스를 통해 재생할 수 있습니다. 앰비소닉 클립은 먼저 필요한 경우 압축을 풀고, 앰비소닉 디코드로 전달되어 프로젝트에 선택된 스피커 모드로 변환한 다음, 오디오 소스의 효과를 적용하는 순서로 재생됩니다.

오디오 소스 프로퍼티와 관련하여 참고할 내용이 몇 가지 있습니다.

  • 공간화를 사용 안 함으로 설정하십시오. 앰비소닉 오디오 클립이 재생될 때에는 클립이 자동으로 프로젝트에서 선택된 앰비소닉 오디오 디코더를 거칩니다. 디코더는 앰비소닉 포맷으로 된 클립을 프로젝트에서 선택된 스피커 포맷으로 변환합니다. 이 디코딩 과정 중에 오디오 소스와 오디오 리스너의 방향에 기반하여 공간화가 미리 처리됩니다.

  • 공간화된 오디오 소스와 마찬가지로 앰비소닉 오디오 클립에 대해서도 리버브 구역이 비활성화됩니다.

오디오 플러그인 인터페이스 변경 사항

플러그인 개발자는 먼저 Unity 매뉴얼에서 네이티브 오디오 클러그인 SDK와 오디오 스페셜라이저 SDK에 대해 읽고 오디오 플러그인 SDK를 다운로드하십시오.

https://docs.unity3d.com/Manual/AudioMixerNativeAudioPlugin.html

https://docs.unity3d.com/Manual/AudioSpatializerSDK.html

https://bitbucket.org/Unity-Technologies/nativeaudioplugins

앰비소닉 오디오 디코더의 AudioPluginInterface.h에 두 가지 변경 사항이 있습니다. 첫째, 새로운 효과 정의 플래그(UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder)가 추가되었습니다. 앰비소닉 디코더는 효과의 정의 비트 필드에 이 플래그를 설정해야 합니다. 이 플래그는 플러그인 스캔 단계가 진행되는 동안 이 효과가 앰비소닉 디코더임을 전달하여 앰비소닉 디코더의 Audio 설정 목록에 표시되게 합니다.

둘째, 앰비소닉 디코더에 전달되는 새로운 UnityAudioAmbisonicData 구조체가 추가되었습니다. 이 구조체는 스페이셜라이저에 전달되는 UnityAudioSpatializerData 구조체와 매우 유사하지만, ambisonicOutChannels 정수도 새로 추가되었습니다. 이 필드는 DefaultSpeakerMode의 채널 개수로 설정됩니다. 앰비소닉 디코더는 오디오 파이프라인에서 매우 앞쪽에 위치하고, 여기에서는 클립의 채널 개수에 맞춰서 실행되므로, ambisonicOutChannels는 실제로 사용되는 출력 채널의 개수를 플러그인에 알립니다.

1차 앰비소닉 오디오 클립(4채널)을 재생할 때 스피커 모드가 스테레오(2채널)라면 앰비소닉 디코더의 프로세스 콜백은 입력과 출력 채널 개수가 4로 전달됩니다. ambisonicOutChannels 필드는 2로 설정됩니다. 이 일반적인 시나리오에서 플러그인은 첫 2개 채널에는 공간화된 데이터를 출력하고 나머지 2개 채널에는 아무 것도 출력하지 않습니다.

Unity 2017.1의 앰비소닉 소스 프레임워크는 1차 및 2차 앰비소닉을 지원합니다. 플러그인 인터페이스에는 입체 스테레오, 4채널, 5.1채널, 7.1채널 출력을 지원하기 위한 정보가 포함되지만, 실제 지원 수준은 플러그인에 따라 결정됩니다.초기에는 앰비소닉 디코더 플러그인이 1차 앰비소닉 소스와 입체 스테레오 출력만 지원할 예정입니다.

현재 프레임워크에는 사용할 수 있는 여러 앰비소닉 포맷 중 특정 포맷에만 해당되는 사항이 없습니다. 클립의 포맷이 앰비소닉 디코더 플러그인이 예상한 포맷과 일치하면 모든 것이 아무런 문제없이 작동할 것입니다. 하지만 현재 계획에 따르면 Unity의 기본 앰비소닉 포맷은 ACN 컴포넌트 순서와 SN3D 정규화를 사용하는 B-포맷이 될 것입니다.


Audio Profiler
Audio Clip