컨볼루션 리버브

물리 공간에서의 오디오 샘플을 사용한 잔향 시뮬레이션 개요

Windows
MacOS
Linux

컨볼루션 리버브(Convolution Reverb) 는 사운드 디자이너가 모든 물리 환경(예를 들어 동굴, 교회, 사무실 또는 복도)의 임펄스 리스폰스(Impulse Response) 를 캡처해서 오디오를 마치 해당 환경에서 재생하는 것처럼 실시간 프로세싱할 수 있는 멋진 기술입니다. 임펄스 리스폰스는 실제 위치의 잔향을 캡처 하여 환경 오디오 프로세싱에 있어서 새로운 수준의 현실감과 몰입감을 보장합니다.

임펄스 리스폰스는 현실의 잔향을 캡처하는 것만이 아니라 알고리즘 기반 리버브 출력, 효과음 녹음, 음성 효과(들숨 또는 날숨), 접촉 마이크 등 다양한 경로로 얻을 수 있습니다. 임펄스 리스폰스는 필터링, 감쇠, 반전, 자르기, 편집 등 다양한 사운드로 편집 및 프로세싱할 수 있습니다. 컨볼루션 리버브 기능은 이렇게 실험의 새 지평을 열었습니다.

컨볼루션 리버브는 기존 알고리즘 기반 리버브 기술에 데이터 기반 작업 방식을 더해 딜레이 버퍼, 필터 및 다양한 DSP 토폴로지를 조합하여 잔향을 시뮬레이션합니다.

개념적 배경

컨볼루션 연산

컨볼루션 은 더하기, 빼기, 적분, 내적 또는 외적 등 다른 수학적 연산과 다를 바 없습니다. 내적과 외적이 벡터(또는 신호)를 곱하는 방법이라면, 컨볼루션은 제3의 벡터 변환법이라고 할 수 있습니다. 컨볼루션은 외적과 마찬가지로 두 개의 신호로 제3의 신호를 생성합니다.

복잡한 수학을 따지지 않고 컨볼루션 개념을 간단히 설명하자면, 시간이 변조된 입력 신호인 x(t) 의 가중치의 합 g(t) 로 출력 신호의 모든 샘플 y(t) 를 고려하는 것입니다. 컨볼루션은 일종의 블러 연산자라고 보면 됩니다.

오디오 컨볼루션

컨볼루션은 통계, 기계 학습, 그래픽 렌더링 등 수많은 분야에서 다양하게 활용되고 있습니다. 오디오 작업 시 컨볼루션을 활용하여 임펄스 리스폰스를 통해 오디오 신호를 프로세싱합니다. 컨볼루션 없이는 너무 복잡해서 현실 시스템을 모델링할 수 없습니다.

입력 오디오 신호가 f(t) 고, 가중치 g(t) 가 복잡한 시스템이 반영된 임펄스 리스폰스라면, 출력인 x(t) 는 해당 시스템을 거친 오디오 신호입니다.

연산 상의 고려사항

컨볼루션은 기본적으로 수학 연산 부하가 많습니다. 입력 신호 f(t) 의 모든 요소를 연산 신호인 g(t) 의 모든 요소와 곱한 후 더하여 출력 신호인 x(t) 의 모든 요소가 만들어집니다. 잔향 공간이 넓은 임펄스 리스폰스의 경우, 연산 부하는 더 큽니다. 컨볼루션 연산을 직접 하면 실시간 시나리오에 소모되는 리소스가 너무 많습니다.

다행히 대체 연산을 통해 컨볼루션 연산 속도를 상당히 올릴 수 있습니다. 두 신호를 시간 영역 에서 연산하면 주파수 영역 에서 신호를 곱하는 것과 같은 결과를 낳습니다. 신호의 주파수 영역은 고속 푸리에 변환(Fast Fourier Transform) 을 통해 얻을 수 있습니다. 고속 푸리에 변환은 이름에서 알 수 있듯이 빠릅니다. 입력 신호와 임펄스 리스폰스가 이 단계를 거치면 컨볼루션 리버브를 CPU에서 실시간 연산할 수 있습니다. 하지만 기존 알고리즘 리버브보다 부하가 큰 편이므로 주의해야 합니다.

CPU 및 하드웨어 성능 향상으로 컨볼루션 연산의 장벽이 점점 낮아짐에 따라, 게임 오디오에서 컨볼루션 리버브를 선택할 여지가 늘었습니다. 따라서 컨볼루션 리버브는 차세대 오디오 기술로 주목받았습니다.

컨볼루션 리버브 사용법

합성 및 DSP 이펙트 플러그인을 활성화합니다( 편집 > 플러그인 > 오디오 > 합성 및 DSP 이펙트 ). 이 플러그인에는 다양한 선택적 합성 및 DSP 기능이 있습니다.

Synthesis_DSP.png

이 플러그인을 활성화한 상태에서 콘텐츠 브라우저 내 임포트한 사운드 웨이브 중 원하는 것을 우클릭한 다음, 임펄스 리스폰스 생성 을 선택합니다.

이미지를 클릭해 펼칩니다.

선택한 사운드 웨이브로 임펄스 리스폰스가 생성됩니다. 이런 식으로 어떤 사운드 웨이브로도 컨볼루션 리버브 알고리즘용 임펄스 리스폰스를 만들 수 있습니다(어떤 사운드로도 컨볼루션 연산이 가능합니다). 이름에 _IR 이 포함된 새로운 애셋이 생성됩니다.

Asset_IR.png

사운드 웨이브를 임포트할 때와 같은 프로세스로 임펄스 리스폰스를 임포트합니다.

이 애셋에는 컨볼루션 리버브 이펙트에 사용되는 일부 데이터 및 각 임펄스 리스폰스마다 설정 가능한 노멀화값이 포함되어 있습니다. 개별 오디오 임펄스 리스폰스 애셋의 볼륨 노멀화값을 설정하려면 오디오 임펄스 리스폰스의 디테일 패널을 엽니다.

이미지를 클릭해 펼칩니다.

노멀화 볼륨 Db 는 이 임펄스 리스폰스를 사용하는 모든 컨볼루션 이펙트에 적용되는 데시벨 감쇠입니다. 이를 통해 다양한 임펄스 리스폰스 사이에서 손쉽게 동일한 음량을 확보할 수 있습니다.

컨볼루션 리버브 이펙트를 사용하려면 콘텐츠 브라우저에서 인스턴스를 생성해야 합니다.

이미지를 클릭해 펼칩니다.

  1. 컨볼루션 리버브 이펙트 설정을 위해 디테일 패널을 연 다음, 사용할 임펄스 리스폰스 애셋을 구성합니다.

이미지를 클릭해 펼칩니다.

포함된 파라미터는 다음과 같습니다.

  • 서라운드 후방 채널 블리드 Db: 서라운드 사운드 환경에서 컨볼루션 이펙트 출력으로부터 후방 채널로 데시벨을 얼마나 보낼지 설정합니다. 값이 -60.0 이하면 무음으로 간주됩니다.

  • 반전 후방 채널 블리드 페이즈: 서라운드 사운드 환경에서 후방 채널로 보낸 오디오의 페이즈를 반전할지 여부입니다.

  • 서라운드 후방 채널 플립: 후방 채널로 보내기 전에 해당 이펙트의 좌우 채널을 플립할지 여부입니다.

포함된 고급 파라미터는 다음과 같습니다.

  • 블록 크기: 런타임 퍼포먼스에 영향을 줄 수 있는 내부 프로세싱 블록 크기를 설정합니다.

  • 하드웨어 가속 활성화: 타깃 플랫폼에 존재 시 하드웨어 가속을 활성화합니다.

서브믹스 이펙트에서 사용하려면, 원하는 서브믹스의 서브믹스 이펙트 체인에 서브믹스 이펙트로 추가하면 됩니다.

이미지를 클릭해 펼칩니다.

이 서브믹스를 마스터 리버브 서브믹스로 설정하면 리버브 오디오를 자동으로 서브믹스에 보낼 수 있습니다. 서브믹스-보내기 이펙트로 오디오를 이 서브믹스에 수동으로 전송해도 됩니다.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback