PART 06 · 강의 3/3

플랫폼별 최적화

PC, 콘솔, 모바일 플랫폼별 오디오 스트리밍, 압축, Voice 관리 전략

01

플랫폼별 오디오 예산

각 플랫폼의 CPU, 메모리, Voice 예산 가이드라인

항목PC (고사양)콘솔 (PS5/XSX)모바일Switch
Max Channels 64~128 48~64 16~24 24~32
Audio CPU 예산 <10% <8% <5% <6%
오디오 메모리 200~500MB 150~300MB 30~80MB 50~100MB
권장 샘플레이트 48kHz 48kHz 24~48kHz 48kHz
HRTF 지원 전체 전체 제한적 제한적
플랫폼별 설정 오버라이드

UE5의 Platform Settings에서 플랫폼별로 Max Channels, 압축 품질, 샘플레이트 등을 개별 설정할 수 있습니다. 하나의 프로젝트에서 PC와 모바일을 동시에 타겟팅할 때 필수입니다.

02

압축과 포맷 최적화

플랫폼별 오디오 압축 포맷과 품질 설정

플랫폼압축 포맷특징품질 권장
PC / 콘솔 OGG Vorbis 범용 손실 압축, 좋은 품질/크기 비율 40~80
iOS ADPCM / AAC 하드웨어 디코딩 지원, 낮은 CPU 부하 40~60
Android OGG Vorbis 소프트웨어 디코딩, 범용 호환 30~60
Switch Opus / ADPCM 낮은 메모리 사용 30~60

사운드 유형별 압축 전략

사운드 유형압축 품질샘플레이트채널로딩
UI 효과음 60~80 48kHz Mono ForceInline
발자국/충격 40~60 48kHz Mono ForceInline
무기 발사 60~80 48kHz Mono RetainOnLoad
환경 앰비언스 30~50 24~48kHz Stereo LoadOnDemand
배경음악 40~60 48kHz Stereo LoadOnDemand
대사 40~60 24~48kHz Mono LoadOnDemand
모바일 압축 팁

모바일에서는 1) Mono를 최대한 활용 (스테레오의 절반 크기), 2) 배경음은 24kHz로 다운샘플링, 3) 짧은 효과음은 ADPCM으로 CPU 부하 최소화, 4) 긴 파일은 반드시 스트리밍으로 설정하세요.

03

Voice 관리와 폴리포니

제한된 Voice를 효율적으로 활용하는 전략

Voice 절약 기법

Sound Concurrency 활용

유형별 동시 재생 수를 제한. 자동 무기는 3~4개, 발자국은 2~3개로 제한

거리 컬링

Attenuation의 Falloff Distance 밖 사운드는 렌더링하지 않음. 가능한 짧은 Falloff 사용

가상화 활용

PlayWhenSilent로 먼 사운드를 가상화하고, 가까워지면 자동 재개

우선순위 정교화

대사 > 플레이어 무기 > NPC 무기 > 환경음 순으로 우선순위 설정

Config - 플랫폼별 Max Channels 설정
// DefaultEngine.ini [Audio] MaxChannels=64 // WindowsEngine.ini (PC 오버라이드) [Audio] MaxChannels=96 // AndroidEngine.ini (모바일 오버라이드) [Audio] MaxChannels=24 // SwitchEngine.ini [Audio] MaxChannels=32
04

스트리밍 최적화

오디오 스트리밍 설정과 I/O 병목 방지

스트리밍 최적화 체크리스트

항목권장 설정이유
Streaming Chunk Size 64~256 KB 작을수록 메모리 효율적, 클수록 I/O 횟수 감소
Streaming Cache Size 32~64 MB (PC) / 8~16 MB (모바일) 자주 사용되는 청크를 메모리에 캐싱
동시 스트리밍 요청 4~8 (SSD) / 2~4 (HDD) 디스크 I/O 병목 방지
Pre-loading PrimeOnLoad 활용 첫 청크를 미리 로드하여 재생 지연 방지
HDD vs SSD 주의

HDD 기반 플랫폼(구형 콘솔, PC)에서는 동시 스트리밍 사운드 수를 제한해야 합니다. 많은 사운드가 동시에 스트리밍 요청을 보내면 디스크 시크 타임으로 인해 오디오 글리치가 발생합니다. 중요한 사운드는 ForceInline/RetainOnLoad로 메모리에 상주시키세요.

최종 최적화 체크리스트

  • 사용하지 않는 Sound Wave 에셋이 로드되어 있지 않은지 확인
  • 5초 이상 파일은 스트리밍으로 설정되어 있는지 확인
  • 모든 SFX에 적절한 Sound Concurrency가 설정되어 있는지 확인
  • Attenuation의 Falloff Distance가 불필요하게 크지 않은지 확인
  • 모바일 빌드에서 Mono 변환이 가능한 사운드는 Mono로 설정
  • 플랫폼별 Max Channels 오버라이드가 적절한지 확인
  • MetaSounds의 복잡도(노드 수)가 모바일 예산 내인지 확인
SUMMARY

핵심 요약

  • 플랫폼별 오디오 예산(Voice, CPU, 메모리)을 사전에 정의하고 준수한다
  • 사운드 유형별로 적절한 압축 포맷과 품질을 설정한다
  • Sound Concurrency, 거리 컬링, 가상화, 우선순위로 Voice를 효율적으로 관리한다
  • 스트리밍 청크 크기와 캐시를 플랫폼 스토리지 특성에 맞게 조정한다
  • 최종 빌드 전 최적화 체크리스트를 통해 모든 항목을 검증한다
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: 플랫폼별 오디오 설정 분기

Platform별 .ini 파일(WindowsEngine.ini, AndroidEngine.ini 등)에서 MaxChannels, Sample Rate, Buffer Size를 플랫폼에 맞게 설정하세요. 모바일은 16채널/24kHz, PC는 64채널/48kHz로 차별화하세요.

실습 2: Sound Wave 스트리밍/압축 최적화

모바일 플랫폼용으로 Sound Wave의 Compression Quality를 40으로 설정하고, 긴 BGM은 Streaming을 활성화하세요. 압축 전후의 메모리 사용량과 청감 품질 차이를 비교하세요.

심화 과제: 크로스 플랫폼 오디오 예산 관리 시스템

플랫폼별 오디오 메모리 예산과 CPU 예산을 정의하고, 런타임에서 예산을 모니터링하여 자동으로 품질을 조절하는 시스템을 구현하세요. 메모리 부족 시 낮은 우선순위 사운드 언로드, CPU 과부하 시 동시 재생 수 감소 등을 자동화하세요.