게임 오디오에서는 항상 오디오 파일을 압축해야 했습니다. 우리가 꿈꾸는 그대로의 오디오 환경을 모두 압축되지 않은 오디오 샘플로 두기에는 여전히 디스크 공간이나 메모리가 부족하다는 것이 현실이죠. 이 안내글은 여러분의 게임에 가장 적합한 오디오 인코더를 선택하도록 도와주기 위해 작성되었습니다.
모든 코덱에는 강점과 약점이 있습니다. 어떤 상황에 어떤 코덱을 써야 하는지 항상 명확하게 알 수가 없죠. 첫 번째로 이해해야 할 것은 모든 플랫폼에 적합한 단 하나의 선택지는 없다는 것입니다. 한 플랫폼에 있는 모든 종류의 사운드에 꼭 맞는 단 하나의 옵션을 찾는 것부터 불가능하죠. 그렇기 때문에 '만병통치약'을 찾겠다는 생각에서 벗어나야 합ㄴ디ㅏ.
Wwise 코덱 지원의 자세한 정보는 필요없고 그저 어떤 것을 선택해야 할지 알고 싶다면 마지막 섹션에 있는 빠른 선택 안내로 건너뛰세요.
압축과 성능
Wwise는 PCM, ADPCM, Vorbis, Opus라는 4개의 소프트웨어 코덱을 지원합니다. 이러한 코덱을 사용하면 플랫폼 간 일관성이 유지된다는 주요 장점이 있습니다. 모든 플랫폼에서 정확히 동일한 품질과 상대적 성능 및 작동 방식을 얻을 수 있죠. 하드웨어 코덱과는 달리 음원에 대한 Wwise의 전체 기능 세트를 지원합니다.
뿐만 아니라 생성된 각 게임 콘솔 또한 하드웨어 오디오 프로세서와 함께 제공됩니다. 각각의 플랫폼 간에 동일하지 않은 서로 다른 기능을 가지고 있고 있죠 (제한 사항을 보려면 계속해서 읽어주세요). Wwise는 압축된 음원의 하드웨어 디코딩을 지원하며, 플랫폼에서 지원할 경우 더 많은 하드웨어 처리도 지원합니다.
'품질'이라는 용어에 대한 참고 사항
첫째, 오디오 품질에 관한 불행한 사실은 바로 주관적이라는 것입니다. 어떤 오디오가 좋고 나쁜지를 알려줄 수 있는 단일한 공식이나 숫자가 존재하지 않죠. 하지만 이에 대해 완전하지는 않지만 일종의 대안책이 있습니다. 코덱의 매개 변수를 설정할 때 가장 중요한 것은 품질/비트레이트(Quality/Bitrate)입니다. 또한 이 설정을 선택할 때 이것이 정확히 무엇을 의미하는지 염두에 두어야 하죠.
품질(Quality) 설정은 가변 비트레이트 코덱에서 사용되며 보통 단위가 없습니다. 주파수 스펙트럼의 다양한 섹션에 더 많거나 적은 비트(예: 이미지 해상도)를 할당하는 수많은 내부 규칙 및 매개 변수를 대신하는 것일 뿐이죠. 시간이 지남에 따라 사운드의 주파수 스펙트럼이 변한다는 것은 사운드의 일부 섹션이 매우 잘 압축되는 반면 다른 섹션은 그렇지 않다는 것을 의미합니다. 무음에 가까운 1초는 많이 압축될 수 있는 반면 1초의 헤비 메탈 음악은 그렇지 않을 수 있다는 것을 쉽게 예상할 수 있죠.
비트레이트(Bitrate)는 고정 비트레이트 코덱에서 사용되며, 이름 그대로 1초에 해당하는 오디오를 재구성하기 위해 초당 읽어야 하는 비트의 양을 말합니다. 사운드를 재구성할 수 있는 정보가 더 많을수록 사운드가 원본에 더 가까워지죠. 시간이 지남에 따라 다양한 양의 오디오 정보가 포함된 사운드를 어떻게 같은 양의 비트로 압축할 수 있냐는 의문을 가지실 수 있을 거예요. 간단합니다! 시간이 지남에 따라 스펙트럼의 해상도를 변경하기 때문에 항상 같은 양의 비트를 사용하죠. 그렇기 때문에 코덱은 무음에 가까운 1초는 해당 섹션에 대한 추가 정보가 있기 때문에 필요한 비트 양보다 더 많이 인코딩합니다. 반대로 1초의 헤비 메탈 음악은 재구성해야 할 정보가 많지만 제한된 양의 비트로 나타내야 하기 때문에 해상도가 보다 낮아집니다. 그래서 비트레이트가 제한된 코덱은 실제 파일 크기와 관련하여 낭비가 될 수 있죠. 이 코덱은 이 글에 다루기엔 너무 넓은 범위인 다른 기술이 사용되며, 이 예시는 단순화된 예시일 뿐입니다.
그렇기 때문에 '가변률/고정률(variable rate/constant rate)' 속성은 '고정 품질/가변 품질'이라고도 볼 수 있습니다. 일반적으로 최신 코덱은 다양한 사운드 종류에서 낮은 품질 설정에서도 거슬리는 오디오 결함을 방지하는 매우 진보된 음향 심리 모델을 가집니다. 여기서 '거슬리는' 결함은 오디오 애호가가 아닌 사람도 '저음질 오디오'(예의바르게 말하면)라고 할 정도로 명백히 거슬리는 결함을 말합니다. 당연히 저희는 무슨 일이 있더라도 이러한 결함을 피하고 싶죠.
또한 '재구성 손실 정확도' 범주에 속하는 압축 결함음은 아주 광범위합니다. 다시 말해 압축된 사운드는 원본 사운드와는 약간 다르며 이 차이를 귀로 들을 수 있지만 A/B 비교를 해야만 알 수 있죠. 이를 모르고 듣는 사람은 어떤 것이 원본인지 알지 못할 수도 있습니다. 이러한 압축 결함은 플레이어가 게임에 몰입하는 데 방해가 되지 않기 때문에 전반적인 오디오 경험 시점에서 볼 때 훨씬 덜 중요합니다.
원본 사운드로의 정확도는 일부 사운드에서 더 중요하죠. 특히 음악적 훈련이 된 사람들에게는 필터링이나 주파수 왜곡이 명백하게 들리는 음악이 그러합니다. 하지만 반대로 폭발음이나 발걸음의 경우 거슬리는 효과가 들리지 않는 재구성된 오디오의 정확도가 낮더라도 아무도 눈치 채지 못할 것입니다. 또한 대부분의 경우 사운드는 단독으로 재생되거나 최대 볼륨으로 재생되지 않는다는 점도 기억해야 합니다. 최종적으로 공간이나 CPU가 더 필요할 경우 낮은 정확도는 전체 믹스에서 쉽게 가려질 수 있습니다. 사운드 종류별로 품질/비트레이트 설정을 선택하면 쉽게 시작할 수 있으며 필요에 따라 미세 조정할 수 있습니다. 고정 비트레이트 코덱을 사용할 경우 사운드의 더욱 무거운 부분을 처리할 수 있도록 여유 공간(보다 넢은 비트레이트)을 제공해야 합니다.
압축률
압축률은 단순히 원본 파일 크기에 대한 최종 파일 크기의 비율을 말합니다. 오디오 코덱의 경우 파일의 오디오 샘플 부분만 계산에 포함하기 때문에 WEM 컨테이너나 마커는 포함되지 않습니다. 또한 이전의 모든 다운샘플링도 제외됩니다. 다음 표는 각 코덱의 압축 효율성을 비교합니다. 가변 품질 코덱의 경우 오디오 콘텐츠와 설정이 분명히 결과에 큰 역할을 하죠.
코덱 |
압축률 |
가변률/고정률(VBR/CBR)? |
PCM |
1:1 |
고정 |
ADPCM |
4:1 |
고정 |
Vorbis |
2:1 - ~40:1* |
가변 혹은 고정 |
Opus |
2:1 - ~60:1** |
고정 |
XMA |
6:1 - 15:1 |
고정 |
ATRAC9 |
8:1 - 13:1 |
고정 |
(*) 선택한 품질과 오디오 콘텐츠에 따라 상한선을 달성하기는 거의 불가능합니다.
(**) Vorbis와 동일하지만 음성 콘텐츠(좁은 대역)와 일부 화음적인 콘텐츠(음악)에서 훨씬 더 나은 비율을 얻을 수 있습니다.
CPU 성능
다음 표는 처리량 측면에서 소프트웨어 코덱의 성능을 보여줍니다. 다시 말해 한 코어에서 실시간에 디코딩될 수 있는 스트림의 최대 수치를 말하죠. 이 수치는 리샘플링, 보이스 관리 오버헤드, 중단, 메모리 버스 병목 현상 등을 제외한 디코더 자체만 포함합니다. 즉, 디코더는 가능한 최상의 조건으로 격리되어 있습니다. 이는 최대 성능에 대한 아이디어를 제공하기 위한 것이며 실제 게임 환경에서는 상한선을 달성하기가 거의 불가능합니다. 처리량은 하드웨어 코덱에서 지원되는 최대 스트림(아래)과 비교할 수 있습니다. Vorbis와 Opus의 경우 3개의 숫자는 최저, 기본, 최고 품질 설정을 나타내어 전체 성능 범위를 제공해줍니다.
최대 스트림 수치
Platform |
ADPCM |
Vorbis (낮은-중간-높은 품질) |
WEM Opus (낮은-중간-높은 품질) |
Mac1 |
10700 |
7500 - 5900 - 3100 |
1600 - 1200 - 700 |
모바일2 |
8600 |
5200 - 4300 - 2100 |
1100 - 800 - 500 |
PC3 |
9500 |
5700 - 4600 - 2300 |
1300 - 1000 - 500 |
PS4 |
3200 |
1200 - 1000 - 500 |
300 - 200 - 100 |
PS5 |
7600 |
5900 - 4700 - 2500 (소프트웨어) 80 (하드웨어) |
80 (하드웨어) |
Switch |
2000 |
600 - 500 - 300 |
200 - 150 - 100 (소프트웨어) 20 (하드웨어)4 |
XboxOne |
10000 |
1000 - 3400 - 1200 |
300 - 200 - 100 |
XboxSeriesX |
9200 |
6900 - 5400 - 2800 |
300 (하드웨어) |
1. Mac M1
2. ARM64 Cortex A9
3. Core i7 (circa 2018)
4. 소프트웨어 Opus (WEM) 사용. 하드웨어 디코더는 약간 다른 코덱인 OpusNX를 사용합니다. 다음 섹션을 참고하세요.
하드웨어 제한
코덱의 하드웨어 구현과 관련된 몇 가지 특정한 Wwise 기능이 있습니다. 하드웨어에서 지원하지 않는 경우 Wwise는 동일한 작업을 소프트웨어에서 모방하려고 하지만, 이 경우 비용이 많이 들거나 전혀 불가능할 경우 오류가 보고됩니다. 다음은 플랫폼에 따라 지원되거나 지원되지 않을 수 있는 기능 목록입니다.
- 샘플 단위 정밀 반복 재생: 네이티브 코덱 블록의 지속 시간과 상관 없이 동일한 스트림의 모든 샘플에서 반복 재생을 시작 및 중지하는 기능입니다. Wwise에서 이 기능은 Loop 체크 상자와 동일합니다.
- 샘플 단위 정밀 전환 효과: 네이티브 코덱 블록의 지속 시간과 상관 없이 어떤 샘플에서든 사운드를 중지하고 어떤 위치에서든 다른 스트림으로 이동할 수 있는 기능입니다. Wwise에서 이 기능은 Random/Sequence 컨테이너의 « Sample accurate transition » 모드에서 유용하게 사용됩니다.
- 가변 리샘플링: 사운드의 전체 지속 시간동안 샘플 레이트나 피치를 동적으로 변경할 수 있는 기능입니다.
하드웨어 기능 지원은 이 표에 요약되어 있습니다. 지원되지 않을 경우 추가 비용과 함께 소프트웨어를 통해 기능을 사용할 수 있습니다.
코덱 |
플랫폼 |
하드웨어? |
샘플 단위 정밀 반복 재생 |
샘플 단위 정밀 전환 효과 |
가변 피치 |
최대 수치 |
PCM |
모두 |
지원 불가 |
지원됨 |
지원됨 |
지원됨 |
|
ADPCM |
모두 |
지원 불가 |
지원됨 |
지원됨 |
지원됨 |
|
Vorbis |
모두 1 |
지원 불가 |
지원됨 |
지원됨 |
지원됨 |
|
|
PS5 |
지원됨 |
지원됨 |
지원 불가 |
지원됨 |
80 |
Opus |
모두 1 |
지원 불가 |
지원됨 |
지원됨 |
지원됨 |
|
|
PS5 |
지원됨 |
지원됨 |
지원 불가 |
지원됨 |
80 |
|
XBX |
지원됨 |
지원됨 |
지원됨 |
지원됨 |
300 |
|
Switch |
지원됨 |
지원됨 |
지원 불가 |
지원 불가 |
12 - 243 |
XMA |
XB1 |
지원됨 |
지원됨 2 |
지원 불가 |
지원 불가 |
128 |
|
XBX |
지원됨 |
지원됨 2 |
지원 불가 |
지원 불가 |
128 |
ATRAC |
PS4 |
지원됨 |
지원됨 |
지원 불가 |
지원 불가 |
60 - 5003 |
|
PS5 |
지원됨 |
지원됨 |
지원 불가 |
지원 불가 |
120 - 10003 |
1. 아래 명시된 플랫폼 제외하고 모두
2. XMA 반복 재생은 128 샘플 경계에서만 가능합니다
3. 최대는 활성화된 모든 사운드의 채널 개수, 비트 레이트, 세분성에 따라 다릅니다. 합리적인 최대값은 중간 범위입니다.
하드웨어 레이턴시
하드웨어 가속은 보통 DSP 코프로세서(보조 프로세서)를 통해 수행됩니다. 그렇기 때문에 다른 CPU와 마찬가지로 데이터를 처리해야 하며 즉각적이지는 않습니다. 하드웨어 가속이 실제로 제공하는 이점은 메인 CPU와의 병렬성입니다. 안타깝게도 DSP 자체는 콘솔과 함께 제공되는 최고급 CPU 보다 훨씬 느립니다.
이 병렬성은 동일 프레임 처리 혹은 딜레이 처리라는 두 가지 방법으로 사용할 수 있습니다. 이는 bLowLatencyHwCodec 플래그로 제어됩니다. 첫 번째 모드(true로 설정되었을 경우) 따로 설명이 필요하지 않습니다. 하드웨어 음원과 소프트웨어 음원 사이에 레이턴시가 없죠. 압축된 데이터는 디코더로 전송되며 Wwise는 다른 소프트웨어 음원을 처리하거나, 처리할 것이 없을 경우 하드웨어가 결과가 준비되었다는 신호를 보낼 때까지 CPU를 수율(yield)합니다. 그런 다음 이 데이터는 동일한 오디오 프레임에 다른 소프트웨어 음원과 함께 동기적으로 처리 및 믹싱됩니다. 그래서 레이턴시가 더해지지 않죠. 그래서 처리 시간에 수율 시간(CPU가 다른 작업을 수행할 수 있는 시간)이 포함됨으로 Wwise Profiler가 보고하는 처리 시간이 더 높습니다. 하지만 모든 것이 동기화됩니다.
bLowLatencyHwCodec 이 false로 설정되었을 경우인 두 번째 모드는 한 프레임에서 압축 해제기로 데이터를 전송하지만 다음 프레임에서 결과를 가져옵니다. 이는 DSP 처리 시간을 완전히 숨길 수 있다는 큰 장점이 있죠. 하지만 모든 사운드가 한 프레임만큼 딜레이되기 때문에 동기화되어야 하는 소프트웨어와 하드웨어 사운드의 믹스가 있거나 게임의 레이턴시 요구 사항이 아주 엄격할 경우(예: 리듬 게임) 문제가 생길 수 있습니다. 이 모드는 전반적인 시스템 성능 방면에서 선호됩니다.
결론적으로 하드웨어 디코딩은 CPU가 다른 작업을 할 수 있게 해주는 좋은 방법이지만, 그렇다고 해서 CPU보다 원본 오디오를 더 많이 처리할 수 있다는 것은 아닙니다. 하지만 하드웨어와 소프트웨어 음원을 모두 혼합하면 병렬성을 극대화할 수 있습니다.
하드웨어 디코딩은 무료인가요?
간단히 말하자면 그렇지 않습니다. 최신 세대 콘솔에서도 그렇지 않아요. 하드웨어 디코딩 비용은 원시 CPU 주기와 다른 형태로 나타납니다. 하드웨어 디코더의 물리적 구현은 드라이버 구현, OS 통합 및 사용 가능한 API와 마찬가지로 플랫폼마다 상당히 다릅니다. 이 모든 것은 이러한 코덱의 비용을 비교하기가 어렵게 만들죠. 하지만 몇 가지 일반적인 비용이 있습니다.
대부분의 경우 디코더에 명령을 내리는 API가 커널 경계를 넘어 비용이 발생하는 경우가 많습니다. 일부 플랫폼에서는 명령이 큐에 발송되며, 이 큐는 일부 스레드 동기화에 의해 보호되며 잠시 동안 정시될 수 있습니다. 일부 경우 압축된 입력 스트림을 담은 메모리가 하드웨어 디코더가 볼 수 있는 메모리로 전송되어야 하며, 이는 메인 메모리와 별개일 수 있습니다. 오디오 출력에도 같은 작업이 수행되어야 할 수 있습니다. 또한 출력 형식이 사운드 엔진의 형식과 일치하지 않아서 변환 단계가 필요한 경우도 일반적입니다. 일부 하드웨어는 일괄적으로 작동하며 결과를 얻으려면 모든 일괄 작업을 수행해야 하지만, 다른 하드웨어는 준비가 되는대로 결과를 반환합니다.
일반적으로 이 모든 비용 때문에 하드웨어 코덱은 아주 작은 사운드(어림 잡아 100ms 미만)에는 적합하지 않습니다. 그렇기 때문에 짧은 사운드의 주파수 사용과 지속 기간 및 사용되는 플랫폼에 따라 순수 소프트웨어 디코딩보다 비용이 더 들 수 있습니다. 주의해야 하는 사운드의 예시로 아주 건조한 (짧은) 발걸음, 임팩트 혹은 Trigger Rate 방식을 통해 생성되는 반복적인 총기음 등이 있습니다. 또한 샘플 단위 정밀 전환 효과를 통해 Random이나 Sequence Container를 사용하여 세분화된 합성을 수행하는 것도 하드웨어 코덱에 위험합니다.
각 코덱에 대한 추가 참고 사항
PCM
PCM은 단순히 비압축 미디어를 말하기 때문에 유일한 장점은 속도입니다. 주요 단점은 비압축으로 인한 디스크 및 메모리 공간입니다. 성능이 떨어지는 플랫폼에서 많이 사용되는 사운드에 대해 유일하게 사용을 권장합니다. 요즘에는 다른 옵션보다 이 옵션을 선호하는 플랫폼이 없습니다.
ADPCM
ADPCM은 게임 업계에서 기존 콘솔의 최초로 저렴한 코덱(CPU 방면에서) 중 하나로 잘 알려져 있습니다. 4:1의 고정 압축 비율을 가지며 디코딩 속도가 아주 빠르죠. 주된 단점은 품질이 불확실하다는 점입니다. 분명한 트랜션트가 있거나 아주 고주파수 사운드의 경우 결함이 들리게 됩니다. 그럼에도 불구하고 이러한 경우는 일반적이지 않으며 여전히 ADPCM이 자주 사용됩니다.
Vorbis
이 코덱은 일반적인 심리 음향 코덱입니다. 즉, 인간의 귀와 뇌의 특수성을 사용하여 결함을 최소화하면서 오디오를 압축할 수 있게 도와주죠. 이 코덱은 우수한 파일 압축 및 음질로 인해 처음 게임에 서용되었습니다. 압축 비율은 아주 가변적이며 오디오 신호에 따라 달라집니다. 2:1(최고 음질, 넓은 대역의 신호)에서 40:1(최저 음질, 좁은 대역의 신호)까지 가능하죠. Wwise가 사용하는 코덱 구현은 계속해서 최적화되었으며 평균 CPU 비용은 현재 ADPCM 코덱의 1.5~3배 정도입니다.
Vorbis는 가변 비트레이트 코덱이며 파일의 콘텐츠에 따라 압축 비율이 달라집니다. 일반적으로 사운드에 소음이 많을수록 압축률이 낮아지죠. 또한 CPU 사용은 Quality(품질) 요소와 직접적으로 연관되어서, 품질이 높을수록 디코딩에 더 많은 CPU가 사용됩니다.
이 형식은 탐색 작업을 수행하기 위해 탐색 테이블이 필요하며, 'From elapsed time(경과한 시간으로부터)'와 Virtual Voice(가상 보이스) 옵션 및 Interactive Music(상호작용 음악) 기능 세트를 지원합니다. 이 테이블은 선택 사항이며, 이 기능을 사용하지 않을 경우 비용을 방지할 수 있지만 일반적으로 활성화되어야 합니다. 대부분의 경우 큰 세분성을 사용하여 이 테이블의 비용을 줄일 수 있습니다.
또한 이 형식에는 약간의 메타데이터 오버헤드도 있습니다. 그렇기 때문에 아주 작은 파일은 이 영향을 받게 됩니다. 경험상 50ms보다 작은 사운드의 경우 필요한 것보다 클 수 있습니다.
Opus
Opus는 품질 대비 파일 크기 측면에서 최고입니다. Vorbis의 후속 코덱이며 압축률이 크게 향상되었죠. 주관적인 청취 시험에 따르면 인지적 품질은 Vorbis보다 약간 높습니다 (https://opus-codec.org/comparison/ 참고). 그렇기 때문에 음질을 유지하면서 Vorbis보다 더 나은 비율을 얻을 수 있습니다. 하지만 CPU 비용이 보다 높으며, 보통 ADPCM보다 5~10배 정도 느립니다x.
Opus는 작은 파일에 가장 적합한 형식이 아닙니다. 알고리즘을 제대로 설정하려면 몇 밀리초의 데이터가 필요하기 때문에 약 80ms의 오디오가 파일에 추가됩니다. 그렇기 때문에 그 정도 길이의 작은 오디오 입자에 Opus를 사용하는 것은 낭비입니다. 어림잡아 사운드가 200ms보다 작을 경우 Vorbis나 ADPCM을 사용하는 것이 좋습니다.
XMA
이 코덱은 Xbox 플랫폼에서만 사용 가능합니다. Xbox360 이후로 게임의 주력 코덱이 되었죠. 주요 장점은 하드웨어에 의해 디코딩된다는 것입니다. 하지만 하드웨어가 특별히 빠른 것은 아니기 때문에 128 스트림(채널)으로 제한됩니다. 또한 일부 오데오 콘텐츠는 이 알고리즘을 통해 잘 압축되지 않기 때문에 결함이 들릴 수 있습니다. 다행히 그런 일이 흔하지는 않습니다! 마지막으로 이 형식 자체는 반복 재생 지점을 128 샘플의 배수로 제한하기 때문에 CPU로 돌아가지 않고는 샘플 단위 정밀 반복 재생 연결이 불가능합니다.
ATRAC9
이 코덱은 PlayStation 플랫폼에서만 사용 가능합니다. 항상 하드웨어에서 디코딩되죠. 일부 사운드는 특정 인코딩 설정에 따라 결함이 들릴 수 있지만, 설정을 변경하여 문제를 해결할 수 있습니다. 다행히 결함이 흔히 일어나지는 않습니다.
적합한 코덱 찾기 안내
작업에 적합한 코덱을 찾는 것은 간단한 문제가 아닙니다. 무엇에 집중하고자 하는지에 따라 다르죠. 품질인가요? 속도인가요? 파일 크기인가요? 다른 사운드와의 동기화인가요? 또한 작업 중인 플랫폼에 따라 사용 가능한 선택 사항이 결정되기 때문에 플랫폼에 따라서도 다르죠.
최고 품질 vs 파일 크기 (가장 작은 파일 크기로 동일한 품질): Opus. 다음으로는 Vorbis
최고 품질 vs 속도: PCM(당연히)을 제외하고는 Vorbis가 소프트웨어 디코딩에서 최고 품질면에서 가장 빠릅니다. 하드웨어에서 Opus를 사용할 수 있다면 Opus가 가장 좋습니다.
원시 속도에 가장 적합: PCM. 다음으로 ADPCM. 물론 하드웨어 코덱이 가장 좋습니다 (지원될 경우, 레이 턴시가 높은 모드에서 사용될 경우(.
기본 코덱으로는 중간 품질 수준에서 Vorbis나 Opus를 권장합니다 (하드웨어에서 제공되는 경우).
전체 사운드 디자인 섹션에 특정 코덱 설정을 적용하기 전에 먼저 선택한 코덱과 설정으로 샘플 사운드를 실행해보고 결함이 있는지 주의 깊게 들어보는 것이 좋습니다.
보통 하드웨어와 소프트웨어 코덱을 조합하는 것이 최고 처리량을 달성하는 데 좋습니다. 즉, 최단 시간에 처리되는 샘플 수를 최대화하는 것이죠.ㅁ CPU가 소프트웨어 파일을 디코딩하는 동안 하드웨어가 해당 작업을 병렬로 수행할 수 있습니다. 소프트웨어 음원이 없을 경우 하드웨어 디코더 속도로 인한 제한을 받게 되기 때문에 항상 빠르지 않습니다.
보이스 오버
현대 게임에는 보통 수많은 VO 파일이 있습니다. 그렇기 때문에 이 파일의 크기를 최소화하는 것이 목표이죠. 이 경우 심지어 소프트웨어에서 디코딩하더라도 Opus보다 더 나은 코덱은 없습니다. Opus에는 인간 음성 압축 전용 하위 코덱이 있습니다. 보통 동시에 1~2개의 VO만 활성화되기 때문에 디코딩 비용은 여전히 제한적입니다. 물론 하드웨어로 Opus를 지원하는 3개의 플랫폼에서는 문제가 되지 않죠.
총소리, 임팩트, 그 외 짧은 세분적 사운드
이러한 종류의 사운드는 보통 게임에서 자주 재생되며 종종 파일 부분 집합으로 변형음을 만들기 위해 연결됩니다. 파일이 짧기 때문에 압축을 잘 해주고 모든 플랫폼에서 빠르게 디코딩할 수 있는ㅍVorbis가 가장 적합합니다. PS5와 XboxSeriesX에서는 Opus도 고려할 수 있지만 파일 크기를 최적화할 경우 이 코덱은 낭비가 되겠죠. 저가형 모바일에서는 추가 CPU 주기가 필요한 경우 ADPCM을 고려해볼 수 있습니다.
일반 SFX
그 외에 보다 긴 SFX에서는 사용 가능한 경우 하드웨어 코덱을 선호해야 합니다. 플랫폼에서 지원하지 않을 경우 Vorbis가 가장 낫고, CPU 부담이 너무 클 경우 ADPCM이 그 다음으로 낫습니다.
환경음
환경음은 보통 반복 재생음으로 구성되며 다양한 길이의 세부적 사운드가 더해집니다. 디자인에 따라 여러 사운드가 플레이될 수 있죠. 하드웨어 코덱을 지원하는 모든 플랫폼에서는 이를 사용해야 합니다. 그 외에는 Vorbis가 적합할 것입니다.
음악
음악을 염두에 두고 설계한 Opus가 탁월한 선택입니다. 소프트웨어에서 디코딩될 때 음악이 아주 복잡하거나 동시에 여러 레이어가 재생될 경우 Opus가 CPU에 부담을 줄 수 있습니다. 모든 트랙이 하드웨어로 디코딩될 것이라면 하드웨어 코덱도 알맞습니다. 믹싱 소프트웨어와 하드웨어로 디코딩된 음악 트랙은 동기화 방면에서 까다로울 수 있습니다 (위의 하드웨어 레이턴시 섹션을 보세요). Vorbis가 그 다음으로 낫습니다.
마지막 조언 사항
코덱에 관해 가장 간단한 조언을 해드리자면, 너무 걱정하지 마세요! 적어도 프로젝트 초반에는요. 모든 음원에 대해 중간 품질을 사용하여 일반적인 코덱을 선택하여 시작할 수 있습니다. 혹은 넓은 범위의 사운드 종류에 대해 3~4개의 Conversion Shareset를 정의할 수도 있죠. 그런 다음 프로젝트가 잘 진행되면 디자인의 성능에 대한 아이디어를 얻고 프로파일링을 시작하며 코덱을 변경하세요. Wwise에서는 어떤 계층 구조 수준에서든 Conversion Settings를 오버라이드할 수 있는 방법이 있기 때문에 사운드 디자인의 특정 섹션에 특별한 코덱을 사용하는 것이 쉽습니다.
사운드가 좋게 들리고 예산에 맞다면 코덱에 대해 너무 걱정하지 마세요. 그렇지 않다고 해도 계속 작업할 수 있도록 조정할 수 있는 수많은 옵션이 있다는걸 기억하세요!
댓글