언리얼 엔진 5의 오디오

이 문서에서는 언리얼 엔진 5 오디오의 현재와 앞으로의 비전에 대해 설명합니다.

Windows
MacOS
Linux

오디오 믹서(Audio Mixer) 는 언리얼 엔진에서 제공하는 완벽한 기능을 갖춘 멀티 플랫폼 오디오 렌더러입니다. 이 강력한 오디오 엔진은 포트나이트에서 첫선을 보였으며, 이후 언리얼 엔진 4.24에 추가되었습니다.

첫 출시 이후 레거시 기능을 지속적으로 발전시키는 한편, 차세대 오디오 렌더링 기능도 추가하면서 리얼타임 경험을 제작하는 오디오 디자이너들에게 최상의 컨트롤과 유연성을 제공합니다.

이 개요에서는 레거시 기능과 함께 언리얼 엔진 5에 추가된 차세대 기능을 살펴봅니다.

레거시 기능: 사운드 큐, 사운드 클래스, 사운드 믹스

언리얼 엔진 레거시 오디오 기능의 핵심은 바로 사운드 큐(Sound Cue), 사운드 클래스(Sound Class) 및 사운드 믹스(Sound Mix)입니다. 새로운 오디오 믹서에서도 이러한 기능이 지원되므로 새로운 오디오 엔진으로 프로젝트를 손쉽게 이전할 수 있습니다.

사운드 큐

사운드 큐는 언리얼 엔진의 레거시 오디오 오브젝트입니다. 사운드 큐는 오디오 디자이너가 사운드 소스를 재생하고 볼륨과 피치 같은 다양한 파라미터를 조작할 수 있게 해 주는 오디오 파라미터 그래프입니다.

사운드 큐로는 샘플링을 정밀하게 제어하거나 임의의 디지털 신호 처리 알고리즘을 생성할 수 없습니다. 또한 워크플로 대부분이 수동으로 이뤄지며 모든 사운드에 대해 사운드 큐를 별도로 생성해야 합니다.

마지막으로, 오디오의 정밀한 샘플링 타이밍과 스케줄링을 처리할 수 없다는 점 때문에 프로시저럴 사운드를 생성하는 작업이 매우 까다롭습니다.

사운드 클래스 및 사운드 믹스

사운드 클래스는 특정 사운드에 주어지는 정적 파라미터 세트를 말합니다.

사운드 클래스는 사운드를 카테고리별로 분류하여 각 파라미터 세트를 프로젝트에 일관되게 적용할 수 있도록 지원합니다. 오디오 디자이너의 경우 사운드 클래스의 정적인 속성으로 인해 대규모 프로젝트에서 필요로 하는 다양한 사용 사례에 따라 유사한 사운드 클래스를 여러 개 만들어야 하는 경우가 흔합니다. 또한 사운드 클래스의 파라미터 간 일관되지 않은 상속과 우선순위로 인해 사운드 클래스의 디버그도 복잡해질 수 있습니다.

사운드 믹스는 오디오 디자이너가 오디오 파라미터 세트를 런타임에서 동적으로 변조할 수 있도록 지원합니다. 따라서 게임플레이 이벤트와 기타 조건에 반응하는 동적 사운드를 간편하게 생성할 수 있습니다. 하지만 오디오 디자이너가 동일한 사운드 믹스의 인스턴스를 여러 개 생성하거나 이러한 인스턴스를 사운드 클래스와 조합하여 더 복잡하게 만들 수 있기 때문에 사운드 믹스 디버그가 힘들어질 수도 있습니다.

언리얼 엔진 5의 오디오: 차세대 사운드 렌더링

오디오 믹서용으로 개발된 대부분의 기능은 언리얼 엔진에서 제공하는 레거시 기능을 바탕으로 확장되어 위에서 언급된 다양한 문제점을 해결합니다. 그 외의 기능들은 완전히 새롭게 개발되어 여타 오디오 전문 제작 툴과 맞먹는 성능을 언리얼 엔진에 제공합니다.

메타사운드

언리얼 엔진 5에 도입된 메타사운드(MetaSounds) 는 새로운 하이 퍼포먼스 오디오 시스템으로, 오디오 디자이너가 사운드 소스의 DSP(Digital Signal Processing, 디지털 신호 처리) 그래프 생성 작업을 완벽하게 제어할 수 있도록 지원합니다. 메타사운드는 사운드 큐에서 제공하는 모든 기능을 갖추고 있을 뿐 아니라 오디오 디자이너가 몰입감 넘치는 오디오 경험을 제작할 수 있도록 지원하는 차세대 기능도 포함하고 있습니다.

메타사운드는 사운드 큐에서 발생하는 문제들을 해결하고 언리얼 엔진의 기본 오디오 오브젝트를 대체합니다. 사운드 큐와 달리 메타사운드는 근본적으로 DSP 렌더링 그래프입니다. 따라서 오디오 디자이너는 오디오 버퍼 레벨에서 정밀한 샘플링 타이밍과 컨트롤을 지원하는 임의적이고 복잡한 프로시저럴 오디오 시스템을 구축할 수 있습니다.

메타사운드는 오디오 디자이너가 런타임 오디오 렌더링 기능과 개선된 워크플로를 활용할 수 있도록 지원하며, 여기에는 메타사운드 내 메타사운드 컴포지션을 통한 메타사운드 제작, 템플릿화 지원, 동적/정적 에셋 인스턴싱 등이 포함됩니다.

또한 사운드 큐보다 상당히 향상된 퍼포먼스를 보여주며 완전히 확장 가능하여 서드파티 플러그인에서도 사용 가능한 API를 제공합니다.

오디오 변조

언리얼 엔진의 레거시 오디오 기능에서 사운드 클래스는 정적 글로벌 파라미터를 정의하고 해당 파라미터를 사운드에 그룹으로 적용하며, 사운드 믹스는 런타임에서 해당 파라미터를 동적으로 조정합니다. 하지만 이러한 파라미터는 하드코딩되고 정적인 속성을 가지므로 게임플레이 중에 용도가 제한됩니다.

오디오 변조(Audio Modulation) 는 이러한 레거시 사운드 클래스가 발전된 형태로, 파라미터 제어와 일반적인 '파라미터 버스' 변조라는 개념이 지니고 있던 제한을 없앤 것이라고 할 수 있습니다. 무엇이든 변조 소스로 삼을 수 있고, 무엇이든 변조 대상이 될 수 있습니다.

파라미터 버스에서 사용할 수 있는 변조 소스는 그 수에 제한이 없으며 블루프린트 클래스, 변조 믹스 및 게임플레이 코드도 변조 소스로 사용할 수 있습니다. 변조 대상은 변조가 되고 있는 파라미터를 가리키며, 파라미터 버스에서 다양한 방식을 통해 로컬로 매핑할 수 있습니다.

오디오 디자이너는 오디오 변조 파라미터 버스를 통해 자신만의 파라미터 그룹(사운드 클래스)을 정의하고 이를 원하는 방식(사운드 믹스)으로 제어할 수 있습니다.

쿼츠

쿼츠(Quartz) 는 오디오 이벤트의 정확한 타이밍 샘플을 블루프린트로 가져오는 기능입니다. 쿼츠는 오디오가 정확한 시간에 재생되도록 예약하는 복잡성을 처리하며, 커스텀 인터랙티브 및 프로시저럴 음악 시스템을 지원하도록 설계되었습니다. 또한 정확한 타이밍 이벤트를 블루프린트로 다시 보내서 게임플레이 로직과 비주얼이 오디오와 동기화되도록 지원합니다.

오디오 분석

오디오 분석(Audio Analysis) 은 리얼타임 오디오 분석과 리얼타임이 아닌 오디오 분석을 제공하는 기술입니다. 이 툴은 나이아가라 및 블루프린트 스크립팅과 함께 작동하며, 언리얼 엔진 5 에디터와의 통합을 통해 UX 생성 및 디버그 분석 툴뿐 아니라 런타임 오디오 분석을 제공해 게임플레이 및 그래픽을 지원합니다.