오디오 게임플레이 볼륨
오디오 게임플레이 볼륨(Audio Gameplay Volumes) 은 영역 기반 사운드 프로세싱에 대한 차세대 접근법입니다. 사운드 디자이너는 이를 통해 리스너의 위치를 기준으로 사운드에 이펙트를 적용할 물리적 영역을 정의할 수 있습니다.
예를 들어 리스너가 특수한 실내에 있는 동안 리버브를 추가하여 공간 내에서 바운싱되는 사운드 웨이브를 시뮬레이션하거나, 실외에서 사운드에 로우 패스 필터를 적용하여 벽의 방음 이펙트를 시뮬레이션할 수 있습니다.
기존 오디오 볼륨 시스템에서는 각 오디오 볼륨의 기능이 런타임에서 고정되어 있고, 엔진 코드를 수정하지 않는 한 해당 기능을 확장할 수 없기 때문에 오디오 디자이너가 어려움을 겪게 됩니다. 더군다나 가능한 세팅이 각 오디오 볼륨에서 모두 제공되기는 하지만 사용 가능한 옵션의 서브셋만 필요한 경우에는 이러한 세팅이 번거로울 수도 있습니다. 이 시스템을 사용할 때는 각 오디오 볼륨의 레벨 에 별도의 액터 가 필요하기 때문에 워크플로에 어려움이 발생할 수 있습니다. 이렇게 되면 시스템을 통합하기가 더욱 어려워집니다.
이 새로운 접근법은 레거시 시스템을 대체할 목적으로 디자인되었으며, 플러그인 및 컴포넌트 기반 아키텍처를 사용하여 기존 접근법의 다양한 문제를 해결하는 동시에 개발자에게 더 많은 유연성을 제공합니다.
뛰어난 확장성
프로젝트 요구 사항에 따라 오디오 게임플레이 볼륨 플러그인을 활성화하거나 비활성화할 수 있습니다. 또한 제공된 C++ API 또는 블루프린트 인터랙션 인터페이스(Blueprint Interaction Interface) 를 사용하여 새 이펙트, 위치 기반 플레이어 인터랙션 등으로 기능을 확장할 수도 있습니다.
컴포넌트 기반 아키텍처
오디오 게임플레이 볼륨은 모듈형 컴포넌트 접근법을 사용하여 디자인되었으므로 각 컴포넌트에는 개별적으로 또는 다른 항목들과 조합하여 볼륨에 추가할 수 있는 환경설정 가능한 행동이 포함되어 있습니다. 따라서 리스너가 볼륨에 진입하거나 볼륨에서 나가는 시점에 맞춰 커스텀 기능을 생성할 수 있습니다.
이러한 컴포넌트는 레거시 오디오 볼륨 시스템과 동일한 기능을 제공하지만 각 기능 세트가 자체 컴포넌트이므로 보다 세부적으로 제어할 수 있게 됩니다.
행동 컴포넌트의 타입은 다음과 같습니다.
어테뉴에이션(Attenuation): 오디오의 현재 볼륨(소리 크기)을 타깃 볼륨(소리 크기)으로 보간합니다. 리스너가 외부에 있거나 이외의 방식으로 주변에 있는 동안 볼륨 내 사운드에 적용할 이펙트를 환경설정할 수 있습니다.
필터(Filter): 오디오에 로우 패스 필터를 적용합니다. 리스너가 외부에 있거나 이외의 방식으로 주변에 있는 동안 볼륨 내 사운드에 적용할 이펙트를 환경설정할 수 있습니다.
리버브(Reverb): 오디오에 리버브 이펙트를 추가합니다. 리스너가 볼륨에 진입하면 리스너가 볼륨 내부 또는 외부에 있는지에 관계없이 이 이펙트가 모든 사운드에 적용됩니다.
서브믹스 오버라이드(Submix Override): 사운드 서브믹스(Sound Submix) 에 서브믹스 이펙트 체인(Submix Effect Chain) 을 추가합니다. 리스너가 볼륨에 진입하면 리스너가 볼륨 내부 또는 외부에 있는지에 관계없이 이 이펙트가 모든 사운드에 적용됩니다.
서브믹스 센드(Submix Send): 오디오를 사운드 서브믹스 에 전송합니다. 이 이펙트는 볼륨 내 사운드에 적용되며, 리스너가 외부 또는 내부 중 한 곳에 있는 동안 적용되도록 환경설정할 수 있습니다.
각 컴포넌트는 우선순위 값과 함께 제공됩니다. 이 값은 리스너가 동일한 타입의 유효한 컴포넌트를 갖춘 다수의 볼륨 내에 있는 경우 어떤 컴포넌트가 사용될지 결정합니다.
향상된 통합
오디오 게임플레이 볼륨은 블루프린트와 긴밀하게 통합되어 오디오 디자이너에게 시스템을 구현하는 데 필요한 유연성을 제공합니다. 볼륨은 레벨에 독립형 액터로 직접 배치하거나 액터 블루프린트에 컴포넌트로 추가할 수 있습니다.
블루프린트 액터 내에 커스텀 콜리전 체크를 구현하여 리스너가 볼륨에 진입하거나 볼륨에서 나가는 시점을 시뮬레이션할 수 있습니다. 이러한 방식을 사용하면 레벨 내에서 위치 또는 트랜스포메이션을 수동으로 조정할 필요가 없어집니다.
개선된 워크플로
대부분의 프로젝트에서 오디오를 구현하는 작업은 프로덕션 주기 후반부에 이뤄집니다. 따라서 다른 게임플레이 기능과 함께 원활하게 작동하는 강력한 오디오 시스템을 구현하기가 어렵습니다. 오디오 게임플레이 볼륨 시스템은 볼륨 컴포넌트를 레벨 내 어떤 액터에도 어태치할 수 있는 기능을 제공하여 이러한 어려움을 해결해 줍니다.
유저 인터페이스 또한 간소화되어 오디오 디자이너가 더 직관적으로 파악할 수 있습니다.
향상된 퍼포먼스
볼륨 프로세싱 및 콜리전 테스트가 게임 스레드에서 오디오 스레드로 옮겨졌습니다. 그 결과, 퍼포먼스가 크게 향상되었을 뿐 아니라 사용자가 스레드 세이프에 대한 우려 없이 시스템을 확장할 수 있게 되었습니다.
프록시 기능
오디오 게임플레이 볼륨 시스템은 레거시 기능을 대체 및 강화하는 것 외에 새로운 프록시 기능도 제공합니다. 프록시를 사용하면 기존 오디오 게임플레이 볼륨 오브젝트 없이도 시스템 기능을 활용할 수 있습니다.
프록시의 타입은 다음과 같이 두 가지입니다.
프리미티브(Primitive): 자체적인 진입 및 종료 이벤트를 통해 스태틱 메시를 볼륨으로 사용할 수 있게 해 줍니다.
조건(Condition): 물리적 볼륨을 사용하지 않고 특정 조건이 충족된 경우 기능을 사용할 수 있게 해 줍니다.