소개
오디오에서의 사운드 공간화 시뮬레이션은 '사운드 위치 추적(sound localization)'이라고도 하며, 다양한 종류의 오디오 기술을 함께 사용하여 구현할 수 있습니다. 이러한 기술은 자연의 소리 현상, 예를 들어 방향, 어테뉴에이션, 전파, 차폐 및 차단, 잔향 등을 모사합니다.
이러한 현상이 아래에 설명되어 있습니다.
현상 |
설명 |
---|---|
방향(Orientation) |
리스너와 사운드 소스 간의 상대적 방향입니다. |
어테뉴에이션(Attenuation) |
리스너와 사운드 소스 간의 거리입니다. |
전파(Propagation) |
사운드가 소스에서 리스너에게 전달되는 경로입니다. |
차폐 및 차단(Obstruction and Occlusion) |
사운드는 리스너 쪽으로 이동하는 동안 다른 오브젝트와 충돌할 수 있습니다. 이러한 오브젝트는 사운드의 장애물로 작용합니다. |
잔향(Reverb) |
사운드는 다양한 경로를 통해 리스너에게 도달할 수 있으며, 그 과정에서 메아리 이펙트를 만들어 냅니다. |
언리얼 오디오 엔진과 게임 스튜디오에서 사용하는 용어인 "공간화"는 보통 공간화 문제 전반의 한 측면, 즉 리스너를 기준으로 사운드의 방향을 지정하는 데 사용되는 기법 및 기술을 나타냅니다. 어테뉴에이션, 잔향, 차폐 등 기타 고려 사항도 보통 동일한 맥락에서 논의됩니다. 이 개요에서 사용하는 "공간화"라는 용어는 리스너를 기준으로 하는 사운드의 방향을 지정하는 방법만 나타냅니다.
공간화의 세 가지 주요 방법은 패닝(panning), 음장 공간화(soundfield spatialization) 및 바이노럴 오디오 공간화(binaural audio spatialization) 등이 있습니다.
패닝
패닝은 가장 오래되었지만 가장 간단한 공간화 시뮬레이션 방법입니다. 가장 기본적인 형태의 패닝은 서로 다른 오디오 채널(스피커) 간의 상대적 게인을 조정하여 구현할 수 있습니다. 게인이란 사운드의 어테뉴에이션(게인 < 1.0) 또는 증가(게인 > 1.0) 연산을 설명하는 데 사용되는 일반적인 용어입니다.
지정된 사운드의 왼쪽 채널 게인을 오른쪽 채널보다 높이면 사운드가 왼쪽에서 들려오는 듯한 느낌을 만들 수 있습니다. 이를 가리켜 스테레오 패닝이라고 부르며, 여기서 "스테레오"는 오디오 채널이 2개라는 의미입니다. 이 같은 배치가 공간화의 느낌을 만들어 내는 것이 얼핏 당연해 보일 수는 있지만, 여기서 중요한 점은 인간의 두뇌가 왼쪽의 사운드가 오른쪽의 사운드보다 크다면 실제 사운드가 왼쪽에서 나는 것이라고 훈련받아 왔기 때문에 이런 느낌을 받게 된다는 것입니다. 기술적으로 말하자면, 이 심리 음향적 경험은 두 귀 사이의 레벨 차이라고 일컬으며 여기서 "레벨"은 보통 음량을 가리키는 또 다른 표현입니다.
채널이 둘보다 많은 스피커 구성, 예들 들어 쿼드, 5.1 및 7.1 서라운드 사운드의 경우 스테레오 패닝과 동일한 패닝 기법을 사용하는 대신 여러 스피커 쌍에 적용됩니다. 스피커 두 개 이상을 사용하는 패닝을 가리켜 '페어와이즈 패닝(pairwise panning)'이라고 합니다.
채널이 두 개보다 많으면서 스피커가 리스닝 평면 위와 아래에 위치한 구성의 경우, 페어와이즈 패닝과 비슷한 패닝 기법을 사용합니다. 하지만 페어링된 스피커 둘 사이의 상대적 게인을 조정하는 대신에 스피커 트리플릿(speaker triplet), 즉 삼각측량 등을 통해 상대적 게인이 조정됩니다. 이 같은 패닝 타입은 벡터 기반 증폭 패닝 또는 VBAP라고 부릅니다.
패닝 값 결정하기: 리스너와 스피커 지오메트리
다양한 패닝 기법에 대해 살펴보기 전에 우선 게임 지오메트리를 바탕으로 패닝 값이 계산되는 방식을 이해하는 것이 좋습니다. 패닝 값 계산에 고려되는 지오메트리는 크게 두 가지가 있는데, 바로 리스너의 지오메트리와 실제 스피커 위치의 지오메트리입니다.
리스너 지오메트리
모든 공간화 기법은 리스너가 있다는 전제를 바탕으로 합니다. 리스너는 가상의 리스너가 유지되는 위치 및 오리엔테이션입니다. 고정될 수도 있고 3D 환경 내에서 수동으로 제어될 수도 있습니다.
보통 리스너는 플레이어 카메라, 즉 게임 뷰포트의 "눈"과 "귀"로 간주되는 곳에 어태치되어 있습니다. 대부분의 경우 이 같은 합리적인 가정이 되어 있지만 게임 타입이나 게임 플레이 요구 사항에 따라 특이한 구성이 될 수도 있습니다. 예를 들어 캐릭터에게 서로 다른 위치에서 나오는 소리를 들을 수 있는 능력이 있다는 조건이 붙을 수도 있습니다. 또 다른 예로 들 수 있는 3인칭 게임에서는 디자이너가 종종 리스너의 지오메트리를 나눠 놓기도 합니다. 리스너의 위치는 거리 어테뉴에이션을 위해 캐릭터에 설정하고 카메라는 패닝을 위해 사용되는 경우를 생각해 볼 수 있습니다.
스피커 지오메트리
스피커 지오메트리에는 게임을 경험하는 플레이어의 환경 속 실제 스피커 배치도 포함됩니다. 헤드폰의 경우 배치는 단순하고 고정되어 있으며, 바로 리스너의 좌우가 됩니다. 초록색 트라이앵글이 리스너의 위치와 오리엔테이션을 나타낸다고 가정할 때 헤드폰 스피커의 지오메트리는 다음과 같습니다.
하지만 서라운드 사운드 스피커의 경우에는 그 배치가 비교적 복잡하며 사용되는 스피커의 수와 스피커를 배치하는 기준에 따라 달라지게 됩니다. 다음은 5.1 서라운드 사운드 구성의 일반적인 스피커 배치로, 서브우퍼는 그림에 표시되어 있지 않습니다.
표준적인 스피커 레이아웃 및 채널 환경설정은 다양합니다. 일반적으로 게임은 스피커의 위치가 표준 환경설정을 바탕으로 배치되어 있다고 가정합니다. 노이즈 버스트, 사운드 톤 및 마이크 분석을 사용하여 스피커의 위치를 자동으로 결정하는 방법도 있지만 비디오 게임에서는 거의 사용되지 않습니다.
센터 채널
센터 채널은 패닝 계산에서 종종 무시되는데, 보통은 대화나 인터페이스 오디오처럼 공간화되지 않는 오디오를 위해 예약해 두기 때문입니다.
중요한 대화는 보통 또렷하게 들릴 수 있도록 센터 채널을 사용하는 시네마틱 믹싱에서 이루어집니다. 대화는 스펙트럼 대역이 좁고 파워 요구 사항이 낮기 때문에 대부분의 사운드 시스템에서는 센터 채널의 파워를 낮춥니다.
보통 게임에서는 이러한 이유 때문에 센터 채널을 통한 패닝을 비활성화하고, 대부분 대화나 인터페이스 오디오처럼 다른 중요한 오디오를 위해 센터 채널을 사용합니다.
모노 소스용 패닝 값 계산하기
리스너와 스피커 지오메트리가 지정된 경우 사운드의 월드 내 상대적 위치를 계산할 수 있습니다.
스피커 배치를 간소화하여 5.1 스피커 배열에서 센터 채널을 무시하면 스피커 배열을 게임 월드 내 가상 위치로 개념화할 수 있습니다. 이 위치는 월드 내 리스너 위치에 대해 상대적입니다.
그러면 패닝 계산을 다음과 같은 다이어그램으로 설명할 수 있는데, 여기서 X는 리스너의 위치를 오른쪽 스피커에 연결하는 선과 리스너의 위치를 월드 사운드에 연결하는 선이 이루는 각도를 나타냅니다.
리스너에 대해 상대적인 스피커 각도가 알려져 있는 경우 또는 표준에 따라 선택되어 있는 경우 이 파생된 각도 X를 사용하여 선형 패닝 알고리즘이나 균등 파워 패닝 알고리즘에 사용할 수 있는 패닝 파라미터를 계산할 수 있습니다(아래 오디오 패닝 수행 섹션 참고).
PanLeft = X / TotalArcLength
PanRight = 1.0 - PanLeft
예를 들어 각도 X가 15도로 결정되었고 왼쪽과 오른쪽 스피커 사이의 원호 길이가 60도인 경우(중앙에서 오른쪽까지 30, 중앙에서 왼쪽까지 30도) 패닝 파라미터는 왼쪽에 0.25, 오른쪽에 0.75로 결정됩니다.
사운드가 리스너 주변을 패닝하는 동안 이를 유지하기 위해, 알고리즘은 패닝 계산에 어떤 스피커 쌍을 사용해야 할지에 대한 결정에 의해서만 변경됩니다. 각 스피커의 방위각 배열은 왼쪽 및 오른쪽 패닝 파라미터를 결정하는 것과 동일한 방식으로 사용됩니다.
방위각이 아닌 스피커(하이트 스피커)의 경우, 알고리즘은 비슷하지만 패닝 파라미터가 두 개가 아닌 세 개가 필요합니다.
멀티 채널 소스에 대한 패닝 값 계산하기
패닝은 멀티 채널 소스에 대해서도 모노 소스 패닝과 비슷한 방식으로 계산됩니다. 차이점은 소스 파일에서 각 채널에 대해 고유 패닝 매트릭스(출력 채널에 적용할 게인의 양)이 계산된다는 것입니다.
스테레오 소스의 경우 각 왼쪽 및 오른쪽 채널이 모노 소스로 취급됩니다. 소스 위치 각각에 대해 사용할 지오메트리를 결정하는 데는 확산 파라미터(spread parameter)가 사용됩니다. 이 파라미터는 각 왼쪽 및 오른쪽 채널 사이의 실제 공간화 거리(또는 절반 거리)로 정의됩니다.
리스너를 기준으로 왼쪽과 오른쪽 채널을 결정해야 한다는 점에 유의해야 합니다. 일반적으로 스테레오 공간화의 경우 왼쪽과 오른쪽 채널은 리스너로부터 소스의 위치를 가리키는 벡터에 항상 직교하도록 방향이 결정됩니다.
보통 짝수 값(4, 6, 8 등)인 스테레오보다 높은 채널 소스의 경우 비슷한 알고리즘을 배치할 수 있습니다. 왼쪽과 오른쪽 채널에서의 거리 (또는 절반 거리)로 정의되는 확산 파라미터 대신, 소스의 위치를 중심으로 한 원의 반지름으로 정의됩니다. 이 경우 소스 채널 가상 포인트는 일반적으로 해당 원의 가장자리에 있는 포인트이며 균등하게 확산됩니다.
더 높은 채널 공간화의 경우 명확한 소스 오리엔테이션 선호도가 존재하지 않기 때문에(예를 들어 스테레오 소스의 경우 직교 오리엔테이션 유지를 선호할 수 있음) 채널 위치를 지정할 별도의 벡터를 제공해야 합니다. 보통 소스 채널 위치 지정에는 소스의 자체 오리엔테이션 벡터가 사용됩니다.
오디오 패닝 수행하기
오디오 패닝 수행에는 두 가지 주요 방법이 있는데, 바로 선형 패닝(linear panning)과 균등 파워 패닝(equal power panning)입니다.
선형 패닝
선형 패닝은 가장 간단한 패닝 기법으로, 페어링된 채널 간 사운드의 상대적 게인이 선형 보간되고 총 게인은 일정하게 유지됩니다.
채널을 두 개(왼쪽과 오른쪽) 사용할 때는 다음과 같은 게인 계산식이 사용됩니다.
GainLeft + GainRight = 1
GainLeft = X
GainRight = 1 - X
시각화된 선형 패닝은 다음과 같은 모습입니다.
선형 패닝은 계산이 직관적이지만 근본적인 단점이 있습니다. 바로 음량(볼륨)과 관련된 것입니다. 음량은 사운드 진폭의 지각 경험을 설명하는 데 사용되는 용어로, 오디오 신호의 실제 진폭이 아니라 오디오 신호의 파워에 의해 결정됩니다. 파워는 신호 진폭의 제곱과 같습니다. 사운드의 진폭 또는 게인을 X라고 하면 패닝 계산의 파워는 다음 공식에 따라 계산됩니다.
PowerLeft = GainLeft2 = X2
PowerRight = GainRight2 = (1 - X)2
그리고 총 파워는 계산된 파워를 왼쪽과 오른쪽 채널에 더하는 것으로 계산됩니다.
PowerTotal = GainLeft2 + GainRight2
PowerTotal = X2 + (1 - X)2
이 공식으로 게인 값을 사용하면 파워가 상수가 아니라는 것을 알 수 있습니다. 파워와 이에 따른 음량은 사운드가 중앙에 패닝될 때(X = 0.5) vs. 가장자리에 패닝될 때(X = 0.0 또는 X = 1.0) 감소하게 됩니다.
다음은 왼쪽과 오른쪽 채널 간 패닝에서 센터의 파워 또는 감지된 음량입니다.
PowerTotal = (0.5)2 + (1 - 0.5)2
PowerTotal = 0.25 + 0.25
PowerTotal = 0.5
한편 다음은 사운드가 오른쪽이나 왼쪽에 있을 때입니다.
PowerTotal = (1)2 + (1 - 1)2
PowerTotal = 1 + 0
PowerTotal = 1
패닝 도중 이와 같이 파워가 변경된 경우에는 사운드가 스피커 영역을 통해 비선형적으로 움직이게 되면서 게임의 전반적인 경험에 영향을 미치게 됩니다.
스테레오(헤드폰 또는 스피커)의 경우, 사운드는 가장자리에 "붙어" 있는 편입니다. 서라운드 사운드 패닝의 경우, 사운드는 스피커 위치에 겹치면서 커졌다가 스피커 사이에서 음량이 디핑됩니다. 이 경우 사운드가 리스너 주변을 회전하거나 이동하면서 고르지 않은 음량을 만들어 냅니다.
게인 감소는 거리 어테뉴에이션 시뮬레이션의 주요 수단이기 때문에, 오디오 엔진의 의도는 단순히 소리가 리스너 주변을 움직이게 하는 것이었더라도 이런 게인 감소 역시 리스너의 두뇌로 하여금 소리가 리스너 가까이 왔다가 멀어져 가는 것처럼 해석하도록 영향을 미칠 수 있습니다.
균등 파워 패닝
균등 파워 패닝 방식은 선형 패닝에 존재하는 음량 디핑을 상쇄하기 위해 해당 음량이 완벽하게 균일한 파워를 유지하도록 증폭하는 것입니다. 이 기법은 진폭을 일정하게 유지하는 것이 아니라 패닝 중에 파워 컨스트레인트를 걸어 일정한 음량을 유지합니다.
총 파워 공식으로 다시 돌아가 보면, X의 경우 총 파워가 모든 게인 값에 동등한 X(예: 1.0) 결과가 나옵니다.
PowerTotal = GainLeft2 + GainRight2 = 1.0
이 공식에는 가능한 해법이 몇 가지 있습니다. 오디오에서는 제곱근 해법(일명 제곱근 패닝 규칙)이나 사인/코사인 공식(일명 코사인 패닝 규칙) 등이 사용될 수 있습니다.
X가 0.0~1.0인 패닝 파라미터 수치의 경우(0.0은 완전한 왼쪽, 1.0은 완전한 오른쪽) 균등 파워를 유지하는 데 다음 게인 계산 공식이 사용될 수 있습니다.
제곱근 패닝 규칙의 경우 왼쪽과 오른쪽 채널 게인은 다음과 같이 계산됩니다.
GainLeft = √X
GainRight = √(1 - X)
총 파워가 항상 일정하게 유지되는 것을 볼 수 있는 경우는 다음과 같습니다.
PowerTotal = (√X)2 + (√(1-X))2
PowerTotal = X + (1-X)
PowerTotal = 1
코사인 패닝 규칙의 경우 왼쪽과 오른쪽 채널 게인은 다음과 같이 계산됩니다.
GainLeft = Sin2 (X)
GainRight = Cos2 (X)
그 결과가 일정한 파워를 유지하는 조건도 만족하는지 확인하려면 단위 원(반지름이 1인 원)을 정의하는 삼각법 항등식을 떠올려 보세요.
Sin2(θ) + Cos2(θ) = 1
이 패닝 규칙의 출력을 그래프로 나타내면 실제 게인 값은 선형이 아닌 것을 확인할 수 있습니다.
패닝 계산은 3차원, 즉 하이트 스피커 등도 포함하는 만큼 균등 파워 컨스트레인트는 다음 공식을 따라 계산됩니다.
PowerTotal = GainA2 + GainB2 + GainC2 = 1.0
대부분의 게임 오디오 엔진은 높이 채널로 패닝할 때 이 계산을 생략하고, 대신 Dolby Atmos와 DTS:X 등과 같이 오디오 엔진 외부에서 렌더링되는 오브젝트 기반 렌더링 방식을 사용합니다. 게임 엔진용 오디오 렌더링은 사용되는 채널 수가 많아질 수록 훨씬 더 복잡해지고 컴퓨터 리소스 사용량도 증가하게 됩니다.
벡터 플리핑 문제
패닝 알고리즘과 관련된 문제 중 하나는 사운드 소스가 리스너를 지나쳐서 움직일 때, 즉 리스너로부터 소스 위치를 가리키는 벡터가 즉시 방향을 바꿀 때 발생합니다.
이 벡터는 주로 스피커 배열에서 게인 값을 결정할 때 사용되기 때문에 사운드가 리스너의 한쪽에서 다른 쪽으로 이동하면서 순간적으로 게인이 갑작스럽게 변경됩니다. 위 다이어그램의 케이스 2와 3 사이, 파란색 소스가 리스너의 원점을 지나치면서 게인 값을 계산하는 데 사용되는 벡터는 앞쪽 방향에서 뒤쪽 방향으로 급변합니다. 이와 같은 "벡터 플립"은 오디오 신호의 불연속성, 즉 3D 패닝을 사용하는 대부분의 엔진에서 설명되지 않는 고전적인 오류를 유발하여 사운드가 튀게 만듭니다.
이러한 불연속성을 방지하는 방법으로는 주로 모든 스피커 또는 일정 비율의 스피커에 전방향 블렌드를 활용하여 벡터 플립으로 발생할 수 있는 모든 불연속성을 "매끄럽게" 만드는 방법이 있습니다. 일반적으로 사운드 소스가 전방향 패닝에 블렌딩되는 지점 아래에는 사용자 정의 반경이 있게 됩니다. 이를 통해 트랜지션 도중 사운드 위치 추적 기능을 제거할 수 있습니다.
스피커 환경설정의 가상 반경 내 사운드 소스를 패닝할 때는 케이스 1과 2, 케이스 3과 4 간의 사운드 소스를 스피커 채널의 게인 값을 통해 공간적으로 구분할 수 있는 방법이 없습니다. 이러한 "근거리" 패닝은 전통적인 문제였습니다.
음장 공간화
스피커 기반 공간화에 이상적으로 사용할 수 있는 공간화 기법을 또 하나 들자면 바로 음장의 구면 하모닉(spherical harmonic) 표현을 사용하는 것입니다. 이 방법은 보통 '음장(sound field)'이라는 용어를 사용하여 설명되지만, '앰비소닉(ambisonic)'으로도 널리 알려져 있습니다.
구면 하모닉은 음장의 진동을 웨이브에 기반하여 3차원, 즉 구면으로 표현하는 방법입니다. 이 방법은 고해상도 공간화 정보가 필요한 다양한 분야에서 사용됩니다.
구면 하모닉은 개념상 푸리에 정리와 공간적으로 동일하며, 모든 주기 함수는 다양한 주파수와 진폭을 갖춘 일련의 사인 곡선으로 표현될 수 있습니다. 이를 통해 구면 하모닉은 3차원 음장의 정확한 정의가 가능한 일련의 함수들로 파악될 수 있습니다.
구면 하모닉 또는 음장/앰비소닉 표현의 차수는 실질적으로 공간화 표현이 얼마나 적절하게 리졸브되는지를 설명합니다. 하모닉 차수가 높을 수록 구면 하모닉 확장의 항이 더 많이 포함되며, 공간화 표현 역시 더 적절하게 리졸브되어 선명해집니다. 하지만 차수가 점점 높아질 수록 계산 비용 및 표현에 필요한 메모리도 점점 높아지게 됩니다.
패닝이 아닌 음장을 사용하는 것의 장점은 스피커 위치 간 사운드 소스 위치 추적에서 확연히 더 나은 결과가 나온다는 것입니다. 패닝은 사용되는 스피커 수에 비례하여 퀄리티가 선형적으로 증가하는 방법이라면, 음장은 아주 적은 스피커로도 상당히 높은 퀄리티를 확보할 수 있습니다.
음장을 사용하는 데 있어 또 하나의 장점은 공간화 정보를 스피커 또는 채널 환경설정에 상관 없이 인코딩 및 보존할 수 있다는 것입니다. 회전 트랜스포메이션, 믹싱 등의 조건에서 채널에 무관한 방식으로 공간화 정보를 유지할 수 있습니다.
3D 사운드 소스는 음장 표현으로 인코딩 될 수 있고, 다른 음장 포맷과 함께 믹싱이 가능하며, 렌더링 파이프라인의 마지막 단계에서 정확한 출력 채널 포맷에 맞게 디코딩될 수 있습니다. 즉, 해당 오디오 콘텐츠는 음장 포맷으로 사전에 구울 수 있으며 특정 로컬 플레이어의 하드웨어 환경설정에 따라 최적의 청음 환경에 맞춰 로컬 디코딩이 가능하다는 것입니다. 이러한 기능을 제공할 수 없는 경우에는 멀티 채널 사운드 소스는 로컬 하드웨어 환경설정에 맞춰 다운믹싱해야 합니다(예: 7.1 콘텐츠를 스테레오로 다운믹싱). 이 같은 다운믹싱 프로세스에서는 필연적으로 중요한 공간화 정보가 손실됩니다. 반면 음장의 경우에는 단순히 현존하는 채널 환경설정에 맞춰 디코딩하기만 하면 됩니다.
여기에서 중요하게 짚어 둘 점은, 음장 자체는 공간화로 식별되는 방식으로 직접 들을 수가 없다는 것입니다. 일단 전통적인 스피커/채널 포맷으로의 디코딩 단계가 필요하며, 이 단계에서 음장은 본질적으로 패닝의 작동 방식과 비슷한 채널에 적용되는 채널 게인 세트로 리졸브됩니다. 흥미롭게도 음장은 보통 지정된 어떤 방향으로든 공간화되는 사운드처럼 들릴지라도 서라운드 사운드 채널 환경 정 주변으로 분산된 0 외의 게인 값 결과를 도출합니다.
마지막으로, 특정 마이크 환경설정을 사용하여 직접 음장 포맷을 인코딩하는 방식으로 오디오를 캡처하는 경우 현실 세계의 음장을 캡처하는 것도 가능합니다. 일반적으로 음장 마이크 배열은 하드웨어 및 마이크 비용으로 인해 낮은 차수의 음장을 녹음하지만, 더 높은 차수의 음장을 녹음할 수 있는 값비싼 마이크 배열도 분명 존재합니다. 이 기법은 복잡하고 공간적인 소스 머티리얼을 수집하는 기법으로서, 환경 오디오의 음장 녹음을 특히 강력하게 만들어 줍니다.
바이노럴 오디오 공간화
오디오가 헤드폰 전용으로 디자인되어 있다면 다양한 심리 음향 현상을 활용하여 공간화 퀄리티를 높일 수 있습니다. 오디오 기술에서는 보통 이런 타입의 공간화를 일명 바이노럴 공간화(헤드폰 공간화와는 정반대의 개념)라고 부릅니다. "바이노럴", 즉 두 귀라는 이름은 인간과 대부분의 동물의 귀가 두 개라는 점을 따서 붙여진 것입니다. 쌍안경(binocular)의 음향학적 버전이라고 생각하면 됩니다.
현실 세계에서 두 귀로 소리의 위치를 추적하는 데는 세 가지 주요 구성 요소가 있습니다. 두 귀 사이의 레벨 차, 두 귀 사이의 시간 딜레이, 스펙트럴 섀도잉 이 바로 그것입니다.
두 귀 사이의 레벨 차
두 귀 사이의 레벨 차(ILD)는 현실 세계의 두 귀가 공간적으로 이격되어 있다는 사실로부터 파생된 공간화 인식 컴포넌트로, 사운드의 볼륨(파워)가 거리 함수에 따라 하락합니다. 즉, 머리 왼쪽에서 나는 소리는 오른쪽 귀보다 왼쪽 귀에 살짝 더 크게 들린다는 것입니다.
ILD는 패닝 오디오가 작동하는 주요한 인지적 이유이며, 바이노럴 공간화에서 두드러지는 구성 요소입니다. ILD 이펙트에 주요한 영향을 끼치는 요인은 바로 사람의 머리 크기(보다 구체적으로는 두 귀 사이의 거리)입니다.
두 귀 사이의 시간 딜레이
두 귀 사이의 시간 딜레이(Interaural Time Delay, ITD)는 현실 세계의 두 귀가 공간적으로 이격되어 있다는 사실로부터 파생된 공간화 인식 컴포넌트로, 사운드가 공기를 통해 전달되는 데 시간이 걸린다는 것에 착안한 것입니다. 즉, 머리 왼쪽에서 나는 소리는 오른쪽 귀보다 왼쪽 귀에 살짝 더 빠르게 들린다는 것입니다.
이 이펙트는 매우 작지만 두뇌에서 감지가 가능하며, 사운드 위치 추적에서 중요한 구성 요소이기도 합니다. ILD와 마찬가지로, ILT 이펙트에 주요한 영향을 끼치는 요인은 바로 사람의 머리 크기입니다.
스펙트럴 섀도잉
소리는 매질이나 장애물과 접촉할 경우 회절을 일으키는 파동입니다. 이 같은 회절은 상당히 복잡할 수 있으며 소리에 미세한 변동과 차이를 만들어낼 수 있습니다. 이런 변동은 음량과 주파수 필터링에서 나타날 수 있습니다.
사운드의 스펙트럴 섀도잉이 리스너의 귀 각도 함수에 일관적이고 예측 가능하다면, 두뇌는 해당 정보를 해석하고 가치 있는 위치 정보를 얻을 수 있습니다. 이것은 귀의 모양이 이상하고 세류가 거의 없는 이유 중 하나이기도 합니다. 이러한 복잡한 모양은 사람마다 독특하게 나타나며, 이 같은 스펙트럼 섀도잉으로 인해 두뇌가 공간 정보를 명확하고 세세하게 파악하는 데 도움이 되도록 진화한 결과물입니다.
그 이펙트는 극도로 개성적이기 때문에 오디오 엔진에서 시뮬레이션하기가 굉장히 까다롭습니다.
머리 관련 전달 함수(HRTF)
머리 관련 전달 함수, 일명 HRTF는 바이노럴 공간화의 심리 음향적 요소를 모두 결합하는 데 사용됩니다.
HRTF는 데이터에서 파생된 필터로서, 리스너 지오메트리와 관련하여 충격량을 상대적 각도 함수로 녹음하여 구축된 것입니다.
여기에는 인간의 정확히 평균적인 머리 크기와 평균적인 귀 모양을 가진 더미 머리가 사용됩니다. 더미 머리의 귀에는 마이크가 삽입되며, 충격량(미세 노이즈 버스트)은 각도 함수로 녹음됩니다. 아래는 모델링된 귀를 가진 더미 머리의 샘플로, 모델링된 귀 속에 마이크가 삽입되어 있습니다.
파생된 필터는 충격량 반응(IR)이라고 합니다. 시스템이 시간 경과에 따른 변동이 없고(시간이 지나도 변하지 않음) 선형적인 경우(입력 - 출력 간의 비선형 매핑이 없음) IR은 내부 디테일을 전부 실제로 파악하지 않고도 시스템의 모든 복잡한 디테일을 나타낼 수 있는 필터가 됩니다.
인간의 귀 모양 및 주변부는 고유한 생김새를 가진 만큼 표준 더미의 일반 IR 세트도 많은 사람들에게 가장 정확한 경험을 제공하지는 못합니다. 이와 같은 상황을 만회하기 위해 수많은 종류의 IR 데이터 세트가 제작되었습니다.
HRTF 사용하기
시스템의 단일 오디오 샘플 수정 방식을 녹음하면 녹음된 데이터 세트를 사용하여 후속 샘플을 처리(일명 컨볼루션 프로세스)할 수 있으며, 이러한 샘플은 마치 원본 시스템으로 처리된 것과 같이 처리됩니다.
HRTF 데이터 세트는 IR을 머리에 상대적인 각도 함수로 저장합니다. 이것이 바로 게임 오디오 엔진이 리스너에 상대적인 사운드 각도를 사용하여 해당 각도에 가장 근접하게 일치하는 데이터 세트를 확인하는 이유입니다. 일부 HRTF 렌더링 기법은 가장 가까운 IR에 스냅하고, 다른 기법은 IR 세트 간의 보간을 수행하여 더 연속적인 IR을 구하기도 합니다.
그러면 선택된 IR 데이터 세트는 입력 오디오와 합성되고, 그 출력은 ILD, ITD 및 실제 귀와 머리 모양의 스펙트럴 특성을 고려하게 됩니다. 그 결과로 인해 보통은 어떠한 자체 구현 기법을 사용했을 때보다도 사운드의 위치를 보다 획기적으로 추적할 수 있게 됩니다.
HRTF 렌더링 및 전반적인 바이노럴 방법론의 단점은 바로 헤드폰과만 잘 맞는다는 점입니다. 필터와 시간 차는 스테레오 스피커로 들을 경우 완전히 악화되며, 실제 공간감 역시 전통적인 패닝을 사용했을 때보다 훨씬 나빠질 수 있습니다.
하이브리드 접근법
위에서 제시된 공간화 기법들의 다양한 요소들을 결합하는 공간화 기법도 있습니다.
흔히 사용하는 하이브리드 접근법은 다음과 같습니다.
개별 사운드 소스의 공간화 정보를 채널과 무관한 음장으로 인코딩합니다.
이러한 음장 소스를 믹스합니다.
해당 음장을 임의의 가상 스피커/채널 환경설정으로 디코딩합니다.
디코딩된 오디오를 실제 서라운드 사운드 하드웨어로 출력하는 대신에 가상 스피커 오디오를 바이노럴 렌더링 프로세스에 출력합니다. 이 방법은 게임에서 서라운드 사운드 출력을 취해 헤드폰에서 보다 3차원에 가까운 사운드로 만들어 내는 "3D 오디오" 헤드폰에서 널리 사용됩니다. 또한 HRTF 공간화의 이점을 누리는 데 필요한 CPU 비용을 전반적으로 낮출 수도 있기 때문에 일부 소프트웨어 기법에서도 이 방법을 사용합니다.
서드파티 플러그인
언리얼 엔진은 몇 가지 서드파티 공간화 플러그인을 제공합니다. 자세한 내용은 해당 서드파티 공식 문서를 참고하세요.
언리얼 엔진은 모노 및 스테레오 소스의 공간화만 지원하므로 플러그인은 멀티 채널 소스에서 원치 않는 결과를 가져올 수 있는 채널 관리를 처리합니다.