이 시리즈에서는 과거, 현재, 그리고 새로운 잔향 기술을 집중적으로 살펴보고 몰입적 공간적 관점에서 이 기술을 검토해봅니다. 이전 글에서 저희는 왜 가상 현실에서 몰입적인 잔향을 제작하는 것이 어려운지에 대한 이유를 살펴보고, 기존의 잔향 알고리즘 기술 몇 가지를 알아보고, 가상 음향 알고리즘을 통해 소리의 전달을 시뮬레이션할 수 있는 방법을 살펴보았습니다. 이 글에서는 이러한 몇 가지 방법을 함께 조합해서 효율적이면서도 현실적이고 훌륭한 공간적 잔향 효과를 만드는 방법을 알아봅시다. 이 글은 Audiokinetic에서 곧 제공할 공간 잔향 기술을 미리 알아보는 글이기도 합니다.
이전 글에서 저희는 새로운 잔향 알고리즘을 제작한 이유와 이 새로운 도구가 어떻게 제작되는지 이해하기 위한 일부 배경지식에 대해 설명해 드렸습니다. 기존의 잔향 알고리즘의 제약과 소리 전달 시뮬레이션의 다양한 결과를 이해하는 것은 이 새로운 효과를 작업하는 데에 도움이 될 수 있습니다. 바이노럴과 앰비소닉 공간 패닝이 출현하면서 새로운 사운드 디자인 가이드라인이 떠오르는 것처럼, 동적 공간 잔향을 작업하는 것에도 새로운 디자인 패러다임이 필요합니다.
가상 현실의 몰입적인 특성 때문에 새로운 공간 음향 기술에 대한 필요성이 생겨나고 있지만, 이러한 기술은 VR이 아닌 다른 플랫폼에서의 상호작용 사운드 디자인에서도 강력한 도구로 사용될 수 있습니다. 어떻게 하면 잔향을 공간화하고 이러한 효과가 미래의 사운드 믹스에 어떤 영향을 줄 수 있을까요? 이전 글에서 다룬 일부 기술의 실질적인 의미를 살펴보고, Audiokinetic에서 곧 제공할 동적 초기 반사음 기술 개발 도중 저희가 배우게 된 것들을 함께 알아봅시다.
하이브리드 잔향
공간적 잔향 생성기(reverberator)를 통해 저희는 직접적 사운드와 같은 패닝 알고리즘을 사용하여 잔향을 공간화하는 것을 목표로 합니다. 그렇게 하기 위해서는 잔향 생성기가 주요 반사의 방향과 거리에 대한 일부 정보를 제공해 주어야 합니다. 레이 기반 시뮬레이션이나 파형 기반 방법과 같은 일부 기술을 사용하면 좋은 공간적 인지력을 얻을 수 있지만, 이에 따른 문제나 한계가 있습니다. 예를 들어 레이 기반 방법은 초기 반사를 시뮬레이션하는 것에 훌륭하지만 후기 반사를 현실적으로 렌더링하지 못합니다. 반면에 파형 기반 방법은 고주파 전달을 계산해야 하기 때문에 비용이 더 많이 들죠. 흥미롭게도 잔향 생성기에서 반향 밀도가 증가하면서 출력이 훨씬 더 확산되기 때문에 공간적 정확도에 대한 중요성은 떨어집니다. 그렇기 때문에 잔향을 시간에 따른 연속적 단계로 간주해서 각 단계마다 알맞은 잔향 방법을 선택하는 것이 좋습니다. 그렇게 하기 위해서는 이 단계가 서로 잘 혼합될 수 있으며 완전한 하이브리드식 잔향 알고리즘을 형성할 수 있는지를 또한 확인해야 합니다.
저희가 처리할 수 있는 기술을 살펴보니 파형 기반 방법이 시뮬레이션 정확도 면에서 뛰어나더군요. 이 기술은 게임의 지오메트리에 따라 다양한 임펄스 반응 (IR)을 자동으로 생성하여 큰 규모의 가상 환경에 잔향 속성을 지정하는 데에 드는 작업량 일부를 최소화하는 데에 유용합니다. 하지만 아쉽게도 이 방법은 대부분 실제 사용 사례에서 계산 비용이 너무 지나칩니다. 실제로는 이 방법의 편리함보다 기존의 잔향이 가진 유연성과 지각적인 장점이 더 컸죠. 그렇기 때문에 앰비소닉 임펄스 반응과 같은 기존의 다채널 잔향은 후기 잔향에 사용하기에 훌륭한 옵션입니다. 대부분의 다채널 후기 잔향 생성기는 일반적으로 초기 반사의 상호작용성이 부족하다는 제약을 가지고 있습니다. 여기에 레이 기반 방법을 함께 사용하여 초기 반사음에게 정보를 전달하면 하이브리드 잔향 생성기를 형성할 수 있습니다. 이러한 목적으로 볼 때 레이 기반 시뮬레이션은 개별적 반사음에 수많은 제어를 제공해서 잠재적으로 강력한 사운드 디자인 도구가 될 수 있다는 장점이 있습니다.
새로운 몰입형 사운드 디자인 패러다임을 향하여
레이 기반 초기 반사음을 사용하면 이 반사음의 원래 위치를 시뮬레이션할 수 있습니다. 가상 지오메트리 안에서 리스너와 이미터의 위치를 모두 가지게 되면, 각 반사음에 개별적 딜레이 시간과 공간적 위치 지정을 통해 효과를 생성할 수 있습니다. 개별적인 위치 지정은 바이노럴 패너 안에서 HRTF를 올바르게 공간화할 수 있게 해줍니다. 반사음이 리스너에게 도달하기까지의 거리는 딜레이의 길이를 설정하여 소리가 느리게 이동하는 특성을 시뮬레이션합니다. 또한 각 반사음의 진폭도 거리에 따라 조절할 수 있습니다. 예를 들어 공간의 모서리 근처에 있는 음원에 가까워지면 아주 짧은 딜레이를 통해 들을 수 있어서 소리가 인지적으로 더 큰 것처럼 들리게 되죠. 효과의 주파수 내용을 조절하기 위해서 시스템에 오디오 필터를 추가하면 주파수에 따른 벽의 흡수를 시뮬레이션할 수 있습니다. 이러한 매개 변수를 통해 레이 기반 소리 전달 시뮬레이션에서의 정보를 사용하면 수많은 유동적 부분을 가진 시스템을 제작할 수 있습니다. 사실 공간적 잔향은 합리적인 계산 비용으로 공간적 큐를 제공해야 할 뿐만 아니라 적응적이어야 합니다. 잔향이 계속 효과를 가지면서도 시뮬레이션의 정확도보다 심미적인 특성이 우선시되어야 하죠.
다른 잔향과 마찬가지로 공간적 잔향 생성기의 효과는 다양한 설계 상황에 따라 조정될 수 있어야 합니다. 예를 들어 음성을 더욱 명확하게 들을 수 있도록 믹스에서 공간을 남겨주거나 음원에 가까워질수록 근접해지는 효과를 시뮬레이션하기 위해서는 효과가 아주 미묘해져야 하죠.
또는 너무 많은 사운드가 동시에 재생되어 각 사운드의 개별적 반사 경로를 계산하는 것이 계산 리소스에 유익하지 않기 때문에, 잔향 생성기로 가는 음원을 우선시하는 것이 더 나은 상황도 있습니다.
혹은 물리적인 정확도보다 주요 반사음을 더욱 과장하여 인지하도록 하는 것이 더 알맞은 상황이 있을 수도 있습니다. 예를 들어, 주요 캐릭터가 길고 좁은 복도를 걸어갈 때 밀접해 있는 두 벽을 더욱 인지할 수 있게 만들면 발자국 소리의 긴장감을 청각적으로 고조할 수 있죠. 지오메트리는 작은 공간이지만 더 큰 공간의 음향을 시뮬레이션했을 때 소리가 더 좋게 들릴 수도 있고요.
효과의 주파수 반응이 전반적인 믹스에 기여하도록 하기 위해서, 각 벽에 오디오 필터를 연결하면 서로 다른 재료의 흡수적인 특성을 재현할 수 있을 뿐만 아니라 전반적으로 원하던 믹스로 기여해 줍니다.
이러한 모든 예시를 통해 가상 지오메트리와 시뮬레이션 알고리즘으로 구동하는 대신 창의적 유연성을 유지하는 것이 이러한 부류의 공간적 효과에 얼마나 중요한지 볼 수 있죠.
동적 초기 반사음
이제 이러한 동적 레이 기반 초기 반사음을 더욱 자세히 살펴보고 이러한 반사음이 창의적으로 어떤 기회를 제공하는지 알아봅시다. 잔향 생성기의 IR를 다시 살펴보면 처음 몇 개의 반향만 변조하려고 한다는 것을 알 수 있습니다. 이러한 반사음은 시간에 따라 반사(고유한)로 인식될 만큼 밀도가 낮지만, 후기 반사음은 밀도가 더 높고 함께 혼합되어서 확산 잔향을 형성합니다. 저희가 변조하고자 하는 첫 번째 방면은 진폭입니다. 벽의 흡수와 거리 감쇠와 같은 다양한 설정을 통해 각 반사음은 조절할 수 있는 감쇠를 따르게 되죠. 진폭은 이 효과를 강조하고 특정 반사를 강조하는 데에 강력한 매개 변수가 될 수 있습니다. 또한 후기 반사음의 변조/원본 비율을 제어하는 보통의 거리 매개 변수로부터 이러한 반사음을 개별적으로 제어하는 데에도 사용할 수 있습니다. 예를 들어 리스너가 음원과 아주 가까운 근접 효과의 경우, 후기 반사음은 뮤트하면서 공간화된 초기 반사음을 특정 수준만 유지하여 현실감을 더할 수 있죠.
초기 반사음의 진폭 변조하기. [1]에서 변경된 이미지.
개별적인 초기 반사음 사이의 시간 딜레이도 변조되어야 합니다. 다양한 반사적 표면으로의 거리, 소리의 속도, 리스너의 위치, 방사하는 음원의 위치를 모두 함께 사용하여 다양한 딜레이 길이를 계산할 수 있습니다. 소리의 속도는 가상 공간의 인지적인 크기를 과장하거나 최소화하는 데에 사용할 수 있는 흥미로운 매개 변수입니다.
위치 지정이 매 프레임에서 다를 수 있기 때문에 딜레이의 길이도 동적이어야 합니다. 이것은 시변적인 딜레이 선(time-varying delay lines) 혹은 부분 지연(fractional delays)이라고도 합니다. 부분 지연의 길이를 증가/감소시킬 경우 차이점이 커지면서 가끔 도플러 (Dopploer) 효과가 들리게 될 수 있습니다. 그 이유는 더 많거나 적은 샘플을 읽고 새로운 딜레이 길이로 보간해야 하는 기본적으로 리샘플링과 같은 작업을 해야 하기 때문입니다.
초기 반사음의 시간 딜레이 변조하기. [1]에서 변경된 이미지.
마지막으로 각 반사음은 개별적으로 공간화되어야 합니다. 이렇게 할 수 있는 간단한 방법은 중간 공간 버스를 사용하는 것입니다. 예를 들어 반사음을 보다 높은 차순의 앰비소닉 버스로 출력하여 들어오는 방향을 보존할 수 있습니다. 그다음, 선택한 바이노럴 플러그인을 사용하여 이 높은 차순의 앰비소닉 버스를 헤드폰으로 믹스할 수 있습니다. 이 과정은 반사음에 HRTF 필터를 적용해야 하는 계산 비용을 최소화하는 동시에 예를 들어 리스너가 회전하는 등 시간에 따라 각 반사음을 일관적으로 유지하도록 해줍니다.
들어오는 각도에 따라 HRTF를 통과하기 전에 공간화된 중간 초기 반사 패턴.
이 모든 설정은 인터페이스로 중앙화되어 효과를 매개 변수화할 수 있습니다. 아래 예시에서는 반사 거리와 리스너와 이미터 간의 거리에 따라 감쇠와 확산을 결정하기 위해 다양한 거리 감쇠 곡선을 어떻게 사용하는지 볼 수 있습니다. 시간 척도를 변경하면 공간의 인지적 크기에 영향을 주는 딜레이를 조절할 수 있습니다. 각 벽을 켜거나 꺼서 특정 벽을 솔로화하고 설정을 알맞게 조절할 수 있습니다.
Wwise에서의 공간적 초기 반사 인터페이스 프로토타입
가상 지오메트리
가상 지오메트리는 초기 반사음의 작동 방식을 알리는 데에 중요한 부분입니다. 바이노럴 플러그인에서 인기 있는 방법 중 한 가지는 리스너 주위에 사각형 모양의 고정된 공간을 사용하는 것입니다. 실제로 바이노럴 효과를 직접 경로로 제한할 경우 사운드의 공간화가 잘 이루어지지 않기 때문에 이러한 효과는 공간화된 반사음을 어느 정도 가지고 있어야 합니다. 그러기 위해서 다양한 크기의 고정된 공간 프리셋을 사용하면 게임 내 지오메트리 정보에 의존성을 생성하지 않고 간단하게 문제를 해결할 수 있습니다. 이렇게 위치가 고정적으로 지정된 반사음은 동일한 HRTF 필터 세트를 통해 필터링됩니다.
리스너 주변의 고정된 공간. 각 반사음의 위치는 고정적입니다.
더 정교한 효과를 원할 경우 게임 내 레이 캐스팅을 사용해서 가장 가까운 반사적 표면의 위치를 찾을 수 있습니다. 이 작업은 보통 특정 지점에서 다양한 방향으로 레이를 전송하는 방식으로 실행됩니다. 레이는 간단히 말해 직선입니다. 레이 캐스팅은 게임에서 이 선과 교체하는 표면이나 오브젝트를 찾는 작업을 말하죠. 레이 캐스팅은 보통 게임 엔진에 의해 실행됩니다. 이 효과를 생성하려면 반사 알고리즘의 입력 역할을 할 모노 버스로 원하는 사운드를 믹싱해야 합니다. 그런 다음 믹싱된 사운드가 레이를 방해하는 가장 가까운 표면으로 반사되고, 이동한 거리에 따라 사운드가 지연되며 레이의 방향으로 출력의 위치가 지정됩니다. 예를 들어 이 방법은 주요 캐릭터에서 방사되는 사운드에 사용할 수 있습니다. 보통 주요 캐릭터가 사운드 디자인의 초점이 되는 경우가 많기 때문에, 이 방법을 사용하면 이러한 사운드만 향상시킬 수 있죠. 이 효과는 Blizzard(블리자드)의 오버워치(Overwatch)에서 사용되었습니다. 이 경우 네 개의 레이 정보 딜레이 선이 사용되었기 때문에 쿼드 딜레이라고 부릅니다 [2].
리스너 주변으로 고정된 각도의 레이를 전송하여 반사적 표면의 위치를 파악합니다.
더 복잡한 공간적 렌더링의 경우 사운드 엔진이 지오메트리 정보를 직접 접근하도록 허용할 수 있습니다. 이 경우 완전히 확산된 음장이 아니라 초기 반사음을 시뮬레이션하기 때문에, 지오메트리의 간소화된 버전을 나타내는 3차원의 상자를 사용하는 것으로 충분합니다. 간소화된 지오메트리에 접근할 수 있게 되면 초기 반사 알고리즘이 여러 음원의 주요 반사 경로의 각 위치를 결정할 수 있게 됩니다. 이 방법은 여러 음원에서 레이 트레이싱을 실행하는 것보다 더 효율적입니다.
개별화된 초기 반사음을 사용하면 각 음원의 위치에 따라 변조되는 풍부한 효과를 만들어낼 수 있습니다. 또한 각 음원을 구분하면 각 음원의 설정을 맞춤화할 수도 있습니다. 예를 들어 심미적인 고려 사항 또는 경우에 따라 계산 비용을 최소화하기 위해서 두 개의 반사음만 제작하는 것이 더 좋을 수 있습니다. 이러한 음원의 경우 가장 가까운 벽이 우선시되며 다른 음원은 다른 효과를 통해 모든 벽을 사용해야만 사용할 수 있습니다.
실험하는 동안 저희는 천장과 바닥에서 오는 반사음이 표준 서라운드 시스템에서 출력할 때 원하지 않는 효과를 만들어낼 수 있다는 것을 발견했습니다. 실제로 위아래에는 채널이 없기 때문에 리스너 주위에 수평적으로 재배치되어 잘못된 방향을 강조하게 되죠. 이렇게 될 경우 뮤트하는 것이 더 낫습니다. 그렇기 때문에 필요한 출력 채널 구성을 고려해 보아야 합니다.
매개 변수를 그룹지을 수 있는 일반적인 방법은 주요 캐릭터의 시점에서의 설정과 외부 사운드에 대한 또 다른 설정을 가지는 것입니다. 이렇게 하면 리스너로부터 사운드가 나올 수 있게 되어서 소리가 아주 가까워지면서 리스너에 가까워질 때 외부 사운드의 반사음을 뮤트하더라도 효과를 유지할 수 있죠.
서로 다른 음원에서의 개별적인 반사 경로. 한 음원에 보다 적은 반사음을 사용합니다.
개별적인 반사 경로를 가지려면 사운드 엔진과 게임 엔진 간의 통신이 더 좋아야 합니다. 사운드 엔진은 여러 유형의 음원에 대한 서로 다른 설정을 가지는 역할을 합니다. 그리고 서로 다른 벽 표면과 후기 반사음에 대한 매개 변수도 가집니다. 그런 다음 이 정보는 속성이 지오메트리에 연결될 수 있는 게임 엔진으로 전달됩니다. 예를 들어 게임 에디터에서 사운드 엔진에서 나오는 음향 표면의 목록은 서로 다른 벽을 태그하는 데에 사용됩니다. 그리고 게임은 지오메트리, 연결된 음향 속성, 위치 지정을 사운드 엔진으로 다시 전송합니다. 이 단계에서 사운드 엔진은 효과를 렌더링하는 데에 필요한 모든 정보를 가지고 있으며 초기 반사음은 후기 잔향에 조합될 수 있습니다.
사운드 엔진과 게임 엔진 간의 데이터 흐름.
사운드 예시
다음은 이 효과가 어떻게 인지되는지를 설명해 주는 두 개의 짧은 사운드 클립입니다. 첫 번째 사운드는 공간적 요소가 없는 일반 잔향이며, 두 번째 요소는 4개의 완전히 공간화된 초기 반사음을 가진 잔향입니다. 두 샘플 모두 Auro®-HeadPhones™ 바이노럴 플러그인을 사용합니다. 이 효과를 경험할 수 있는 더 많은 기회를 곧 제공해 드릴 테니 조금만 더 기다려주세요!
결론
동적 초기 반사음을 사용하면 기반 기술을 훨씬 넘어서 몰입도를 향상시킬 수 있는 다양한 공간적 효과를 만들어낼 수 있습니다. 실제로 주요 반사음을 신중하게 매개 변수화하면 광범위한 심미적 효과를 만들어낼 수 있죠. 이러한 기술을 다채널 잔향과 함께 사용하면 몰입적인 소리 풍경을 완전히 재구성하여, 새로운 공간 플랫폼에 잘 어울리는 새로운 사운드 디자인 패러다임이 생겨날 것입니다. Audiokinetic에서 곧 제공할 초기 반사음 기술에 대한 더 많은 정보는 게임 개발자 컨퍼런스(Game Developers Conference, GDC)와 추후 블로그 글을 통해 만나보실 수 있습니다.
각주
[1] V. Välimäki, J. D. Parker, L. Savioja, J. O. Smith, J. S. Abel, “Fifty years of artificial reverberation”, IEEE Transactions on Audio, Speech and Language Processing, vol. 20, no. 5, pp. 1421–1448, 2012년 7월. https://aaltodoc.aalto.fi/bitstream/handle/123456789/11068/publication6.pdf 에서 제공됨[2] https://blog.audiokinetic.com/overwatch-game-audio-using-wwise-part-2/
댓글