버전
Wwise에서 오디오를 저작할 때 CPU 사용량은 아주 중요한 문제입니다. 그리고 성능과 품질의 균형을 맞추는 것도 중요합니다. 여러 플랫폼용으로 저작하는 경우 각 플랫폼의 기술적 제한 사항과 필수 요구 사항을 알고 있어야 하며 함께 사용되는 소프트웨어에 필요한 CPU 리소스도 고려해야 합니다.
많은 Wwise 기능과 플러그인은 CPU 사용량에 영향을 미칩니다. 이 섹션에서는 CPU 사용량에 영향을 미치는 주요 요인에 대한 개요와 CPU 최적화를 위한 다양한 전략과 좋은 사례를 알아봅시다. 일반적으로 최적화 과정은 Profiler(프로파일링 참고)를 사용하여 CPU 성능을 모니터링하고 해결해야 할 요소를 확인한 다음 이 섹션의 안내를 시작점으로 하여 가능한 해결 방법을 탐색하는 것으로 구성됩니다.
모든 Wwise 프로젝트는 각각 다르고 사용 가능한 CPU 리소스가 플랫폼마다 다르며, 품질과 성능 요구 사항도 다양하기 때문에 모든 경우에 적용되는 특정 안내나 권장 사항은 없습니다. 대신 여러분이 실험해보고, Wwise에서 사운드를 들어보고, 최적의 설정이 무엇인지 결정해야 합니다. CPU 사용량에 영향을 미치는 주요 요인은 다음과 같습니다.
동시 보이스 수. 보이스의 수, 특히 물리적인 보이스는 CPU에 큰 영향을 미칩니다. 개수가 증가함에 따라 CPU 사용량도 함께 증가합니다.
Effect. Wwise 오디오 Effect는 CPU를 소모하며 그 리소스 양은 Effect의 종류, Effect가 사용되는 위치, 렌더링 여부에 따라 달라집니다.
오디오 코덱. 코덱을 사용한 오디오 파일 변환은 CPU를 사용하고 일부 코덱은 다른 코덱보다 더 많은 CPU 리소스를 필요로 합니다.
Spatial Audio. 3D 음향을 제어하는 다양한 옵션 및 설정은 CPU 사용량에 큰 영향을 미칠 수 있습니다.
이러한 각 주제는 다음 섹션에서 자세히 설명합니다.
Wwise에는 CPU 사용량에 영향을 미치는 변수가 아주 많기 때문에, 모든 경우에 적용되고 CPU 사용량을 최적화할 수 있는 쉬운 한 가지 방법은 없습니다. 대신 프로젝트와 관련된 모든 요소를 고려하고 허용 가능한 CPU 사용량 수준(플랫폼에 따라 다를 수 있음)을 결정한 다음 Wwise Profiler를 사용하여 어떤 속성과 설정이 CPU를 가장 많이 사용하는지를 파악하고 그에 맞춰서 조정해야 합니다. CPU와 품질 사이의 적절한 균형은 궁극적으로 판단의 문제라고 할 수 있습니다.
일반적인 방법으로 Profiler(프로파일링 참조)를 사용하여 Capture Session을 통해 성능을 모니터링하고 전체 CPU 사용량과 피크를 확인한 다음 Advanced Profiler 및 Performance Monitor에서 CPU 사용량에 영향을 미치는 요소를 확인하세요. 특히 다음 사항에 주의하세요.
Advanced Profiler의 CPU 탭은 세션 동안 CPU 사용량에 영향을 주는 모든 요소를 표시합니다. 어떤 플러그인, 오디오 코덱, Effect 등이 CPU 리소스를 사용하는지 확인할 수 있습니다.
In the Performance Monitor Settings dialog, select any relevant items that include CPU in the name. 다음 옵션은 그래프나 목록에서 유용할 수 있습니다.
CPU - Plug-in Total
CPU - Total
Spatial Audio - CPU
Spatial Audio - Path Validation CPU
Spatial Audio - Portal Path Validation CPU
Spatial Audio - Portal Raytracing CPU
Spatial Audio - Raytracing CPU
Advanced Profiler와 Performance Monitor의 옵션 조합은 Capture Session 동안 CPU 사용량에 대한 종합적인 분석을 제공합니다. CPU 사용량에 영향을 미치는 요인을 확인한 후 이 섹션의 다른 주제에서 설명된 내용을 참고해서 프로젝트 성능을 최적화해 보세요.
동시 물리적 보이스(즉, 실제로 재생되는 사운드)의 수는 CPU 사용량에 큰 영향을 미칩니다. 보이스가 사용하는 CPU 리소스의 양을 줄이기 위해서 다음 설정을 사용하여 동시에 재생되는 보이스의 수를 줄일 수 있습니다.
Playback limits는 동시에 재생할 수 있는 사운드의 최대 인스턴스 수를 결정합니다.
Priority는 재생 제한을 초과한 경우 어떤 사운드를 제거하거나 가상 보이스 작동 방식으로 보낼지를 결정합니다.
Virtual voices는 런타임 중에 발생하지만 정의된 볼륨 스레숄드 값 아래로 떨어지거나 정의된 재생 제한을 초과할 경우 실제로 재생되지 않는 사운드입니다. 권장하는 가상 보이스 방식은 'Kill if finite else virtual'입니다. “Advanced category: Actor-Mixer Hierarchy objects”를 참조하세요.
자세한 내용은 Managing priority을(를) 참조해 주세요.
Effect는 CPU 리소스를 사용합니다. 일반적으로 CPU 사용량은 동시에 재생되는 Effect 인스턴스의 수에 따라 증가하지만 몇 가지 추가해서 고려할 사항이 있습니다.
채널 수. CPU 사용량은 오디오 채널 수에 따라 증가하고 채널 수는 오디오 버스에 따라 달라집니다. 예를 들어, 모노 사운드(3 채널)에 있는 세 개의 Effect 인스턴스는 7.1 버스(8 채널)에 있는 하나의 Effect 인스턴스보다 CPU 리소스를 적게 사용합니다.
또한 Object Processor와 같은 특정 Effect는 각 버스 인스턴스마다 한 번만 인스턴스화됩니다. Effect, Audio Object, 버스에 대한 자세한 내용은 “Audio Object에 Effects 사용하기”를 참고해 주세요.
Effect 종류. Effect의 종류에 따라 사용하는 CPU의 양이 다릅니다. 리버브 Effect는 특수한 경우입니다. 대부분의 Effect는 사용되는 채널 수가 증가함에 따라 CPU 사용량이 선형적으로 증가하지만 Reverb Effect는 조금 더 완만한 증가율을 가지고 있습니다. 리버브 Effect 범주 안에서도 리버브의 종류에 따라 사용하는 CPU가 달라집니다. 예를 들어 Matrix Reverb는 옵션은 적지만 RoomVerb보다 적은 CPU를 사용합니다. Compressor나 Parametric EQ와 같은 Effect는 리버브보다 CPU를 적게 사용합니다.
Effect 렌더링. Effect CPU 사용량을 줄이는 한 가지 방법은 Effect를 렌더링하여 WEM 파일 자체의 일부로 만드는 것입니다. Effect가 렌더링되면 SoundBank에 패키징되기 전에 처리되므로 런타임 처리 능력을 소모하지 않습니다. “Integrity Report”를 사용하면 렌더링하기에 적합한 Effect를 확인할 수 있습니다. Optimizations 옵션을 선택하고 보고서를 실행하세요. 렌더링에 대한 자세한 내용은 “효과 렌더링하기”를 참고해 주세요.
Effect 바이패스 하기. 만약 Effect가 특정 상황에서만 적용되는 경우 이를 바이패스할 수도 있습니다. 예를 들어 게임에서 특정 플레이어 상태에서만 발생하는 디스토션 Effect가 있는 경우 RTPC를 사용하여 플레이어 상태를 추적하는 Game Parameter에 연결된 Bypass Effect를 적용할 수 있습니다.
Wwise는 오디오 코덱을 사용하여 오디오 파일을 압축하고 해제합니다. 일반적으로 프로젝트의 메모리 예산에 맞도록 오디오 파일을 압축하게 됩니다. 그러나 코덱은 CPU 리소스를 사용하며 일반적으로 최고 품질의 오디오를 생성하는 코덱이 CPU도 가장 많이 사용합니다. 어떠한 코덱을 사용할 지 결정할 때 CPU 사용량, 메모리 사용량, 저장 공간, 오디오 품질을 고려하여 균형을 맞춰야 합니다.
여러 플랫폼을 지원해야 하는 경우 Conversion Settings ShareSet를 통해 플랫폼마다 다른 코덱을 사용할 수도 있습니다. 자세한 내용은 “Creating audio Conversion Settings ShareSets”을(를) 참조해 주세요.
Wwise는 다음 코덱을 지원합니다:
PCM은 오디오 코덱이 아닌 압축되지 않은 파일 형식입니다. PCM은 고품질 사운드를 제공하고 최소한의 CPU 처리 능력을 사용하지만 더 많은 저장 공간이 필요합니다.
CPU 사용량을 최소화하려면 짧고 반복적인 사운드나 고품질 오디오가 필요한 사운드에 이 형식을 사용하세요.
Vorbis는 적당한 양의 CPU 리소스를 사용하여 양질의 오디오를 제공하기 때문에 매우 인기 있는 코덱입니다. Wwise에서 Vorbis는 상호작용 미디어 및 게임 플랫폼에 최적화되어 있습니다.
파일이 재생될 때마다 압축을 풀기 위해 약간의 CPU 리소스를 사용하기 때문에, 이를 최소화하려면 자주 반복되는 오디오 파일에는 이 형식을 사용하지 마세요. 하지만 Vorbis는 대부분 유형의 사운드에 적합합니다.
Opus는 Vorbis와 비슷한 품질의 오디오를 제공하지만 파일 압축률이 더 높습니다. 그러나 Vorbis보다 더 많은 CPU 리소스를 사용합니다. 대사나 환경음과 같이 길고 반복되지 않는 음원에 사용할 때 유용할 수 있습니다. Opus 파일 디코딩에 대한 자세한 내용은 Wwise SDK의 플랫폼별 섹션을 참고해 주세요.
ADPCM은 좋은 압축률을 제공하며 최소한의 CPU 리소스만 사용하지만 품질이 희생됩니다. 모바일 플랫폼에서 사용하면 CPU 사용량과 런타임 메모리를 최소화할 수 있습니다.
Wwise에서 '공간 음향(spatial audio)'이라는 용어는 감쇠, 회절, 반사 등과 같이 시뮬레이션된 3D 환경의 사운드와 관련된 다양한 설정 및 구성을 의미합니다. 공간 음향의 여러 방면이 CPU 처리 능력을 필요로 하기 때문에 다양한 옵션을 시험하고 품질과 성능 사이의 적절한 균형을 결정해야 합니다.
In Wwise Authoring, many of the options are available in the Property Editor. See “Positioning category: Actor-Mixer Hierarchy and music objects” and “Positioning category: Audio and Auxiliary Busses”).
공간 음향은 이미터 및 리스너의 위치 지정, 사운드 감쇠, 3D 오브젝트의 사운드 반사, 회절 등과 관련된 수많은 계산을 할 때 CPU 처리 능력을 사용합니다. 공간 음향 Effect와 관련된 설정을 다양한 방식으로 조합할 수 있기 때문에 CPU 최적화를 위한 하나의 간단한 지침은 없습니다. 하지만 만약 Profiler에서 공간 음향이 많은 CPU 리소스를 사용하는 것을 확인했다면 다음 방법들이 도움이 될 수 있습니다.
공간 지오메트리는 최대한 단순해야 합니다. 삼각형의 수와 회절 모서리 수를 최소화하세요.
사운드에 한정된 감쇠를 사용하세요. 최대 감쇠 반경이 증가할수록 그 경로를 계산하기 위해 더 많은 CPU 처리 능력이 필요합니다. 한정된 감쇠 곡선이 최대 거리에 도달하면 곡선이 프로젝트 설정에서 지정한 가청 스레숄드 아래로 떨어집니다.
소리가 너무 멀어서 들리지 않게 되는 경우 감쇠 반경을 벗어나 돌아오지 않을 때 사운드를 중지하여 재생을 방지하세요.
공간과 포털을 사용하여 씬의 각 섹션을 분리하세요.
공간 음향을 초기화할 때 몇 가지 Spatial Audio Initialization Settings를 사용하면 CPU 사용량을 제어할 수 있습니다.
CPU 로드 균형(CPU load balancing)을 사용하세요.
반사 및 회절을 계산하는 데 필요한 이동 스레숄드를 늘리면 정확도가 줄어드는 대신 CPU 사용량을 줄일 수 있습니다.
레이트레이싱 엔진에서 사용되는 기본 레이 수를 줄입니다.
최대 반사 차수를 줄입니다. 대부분의 경우 1차 및 2차로 충분합니다.
회절 차수를 줄입니다. 값을 4로 시작하세요. 2나 1도 충분할 수 있습니다.
CPU 최적화 제안을 포함한 공간 음향에 대한 자세한 내용은 다음 문서를 참고해 주세요.
Wwise Help에서 Defining positioning를 참고해 주세요.
SDK에서 Spatial Audio (공간 음향)를 참고해 주세요. 특히 성능 개선하기를 참고해 주세요.
Unreal 통합 문서에서 Unreal Spatial Audio 튜토리얼을 참고해 주세요.
Unity 통합 문서에서 Unity에서의 Spatial Audio를 참고해 주세요.
이 문서 외에도 CPU 최적화에 관한 정보가 포함된 여러 자료가 있습니다.
CPU 사용량 최적화는 사용자 인터페이스에서 사용할 수 없는 추가 옵션을 개발자에게 제공하는 SDK의 맥락에서 최적화에 대해 설명합니다.
블로그 글 Wwise CPU 최적화: 기본 가이드라인과 보이스 제어 방법- CPU에 최적화하기(제 1부)에서 최적화에 대해 설명합니다. 그러나 이 문서들의 특정 숫자는 최신 플랫폼에서 유효하지 않을 수 있습니다.
Wwise-251 자격증 과정에는 CPU(및 메모리) 최적화에 대한 많은 예시와 권장 사항이 포함되어 있습니다. Unity 기반 Wwise Adventure Game 샘플 프로그램을 예시로 사용합니다.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요