앰비소닉은 청취자를 완전히 둘러쌀 수 있는 사운드를 표현하는 오디오 타입입니다. 오디오 스카이박스를 사용하여 멀리 있는 주변음 효과도 낼 수 있으며 특히 360도 비디오와 애플리케이션에 유용합니다.
앰비소닉은 다중 채널 포맷으로 저장됩니다. 앰비소닉을 사용하면 각 채널을 특정 스피커에 매핑하지 않고 사운드필드가 더 전체적인 방법으로 표현됩니다. 이렇게 하면 청취자의 방향(즉 VR에서 사용자의 머리 회전 방향)을 기준으로 사운드필드를 회전할 수 있습니다. 스피커 설정과 일치하는 포맷으로 사운드필드를 디코딩할 수도 있습니다.
오디오 설정(메뉴: Edit > Project Settings > Audio)을 열면 프로젝트에서 앰비소닉 오디오 디코더를 선택할 수 있습니다. 프로젝트의 사용 가능한 디코더 리스트에서 Ambisonic Decoder Plugin 을 선택합니다. Unity에는 제공되는 빌트인 디코더가 없으나, 일부 VR 하드웨어 제조사의 경우 오디오 SDK에 Unity용 빌트인 디코더가 있습니다. 타겟 플랫폼 제조사 문서를 확인하여 프로젝트에 적합한지 알 수 있습니다.
앰비소닉 오디오 클립을 임포트하려면 ACN 컴포넌트 순서와 SN3D 정규화를 사용하는 다중 채널 B-포맷 WAV 파일을 임포트합니다. 오디오 클립용 인스펙터 창에서 Ambisonic을 활성화합니다.
오디오 소스를 통한 앰비소닉 오디오 클립 재생 방법은 다음과 같습니다.
Unity로 앰비소닉 오디오 클립을 재생하면 앰비소닉 클립은 먼저 필요한 경우 압축을 풀고, 디코딩하여 프로젝트에 선택된 스피커 모드로 변환합니다. 그런 다음 오디오 소스의 효과를 적용하여 재생합니다.
참고: 앰비소닉 오디오 클립에 대해서 리버브 존이 비활성화됩니다.
플러그인을 작성하는 방법은 네이티브 오디오 플러그인 SDK와 오디오 스페이셜라이저 SDK에 있는 Unity 사용자 매뉴얼 페이지를 참조하십시오. 또한 오디오 플러그인 SDK를 다운로드해야 합니다.
앰비소닉 오디오 디코더에 대해 AudioPluginInterface.h
에 두 가지 변경 사항이 있습니다.
UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder
.UnityAudioAmbisonicData
.이 플래그는 플러그인 스캔 단계가 진행되는 동안 이 효과가 앰비소닉 디코더임을 전달합니다. Unity를 통해 디코더를 오디오용 프로젝트 설정에서 앰비소닉 디코더 옵션으로 표시합니다.
definition.flags |= UnityAudioEffectDefinitionFlags_IsAmbisonicDecoder;
UnityAudioAmbisonicData
구조체는 Unity가 스페이셜라이저로 전달하는 UnityAudioSpatializerData
구조체와 유사하지만 ambisonicOutChannels
정수가 추가됩니다. UnityAudioSpatializerData
구조체에 대한 자세한 내용은 스페이셜라이저 효과 메타데이터에 대한 오디오 스페이셜라이저 SDK 문서를 참조하십시오.
UnityAudioAmbisonicData
구조체에 대해 ambisonicOutChannels
는 DefaultSpeakerMode
의 채널 카운트로 설정해야 합니다. 앰비소닉 디코더는 Unity에 있는 오디오 파이프라인에서 초기에 실행되고, ambisonicOutChannels
는 사용해야 하는 출력 채널의 개수를 플러그인에 알립니다.
4채널인 1차 앰비소닉 오디오 클립을 재생할 때 스피커 모드가 스테레오(2채널)라면 앰비소닉 디코더의 프로세스 콜백은 입력과 출력 채널 개수가 4로 전달됩니다. ambisonicOutChannels
필드는 2로 설정됩니다. 플러그인은 첫 2개 채널에는 공간화된 데이터를 출력하고 나머지 2개 채널에는 아무 것도 출력하지 않습니다.
Unity 앰비소닉 소스 프레임워크는 1차 앰비소닉을 지원합니다. 플러그인 인터페이스에는 입체 스테레오, 4채널 출력을 지원하기 위한 정보가 포함되지만, 실제 지원되는 출력은 플러그인에 따라 결정됩니다. 초기에는 앰비소닉 디코더 플러그인이 1차 앰비소닉 소스와 입체 스테레오 출력만 지원할 예정이며 2차 앰비소닉은 지원하지 않습니다.
프레임워크에는 사용할 수 있는 여러 앰비소닉 포맷 중 특정 포맷에만 해당되는 사항이 없습니다. 클립의 포맷이 앰비소닉 디코더 플러그인이 예상한 포맷과 일치하면 앰비소닉 오디오가 문제 없이 작동할 것입니다. Unity의 기본 앰비소닉 포맷은 ACN 컴포넌트 순서와 SN3D 정규화를 사용하는 B-포맷입니다.