본문 바로가기

유니티 최적화

[유니티 최적화] 앱 다운로드 크기 최적화 #5 ( Audio 사이즈 줄이기 )

  • 사운드 리소스 최적화

중요도 : 상

난이도 : 하

 

사운드 리소스는 데이터의 크기가 비교적 큼.

배경음악과 이펙트 사운드로 나눌 수 있는데 배경음악은 30초 이내의 반복되는 사운드로 사용하는 것을 권장.

 

각 Audio Clip을 선택해서 개별적으로 세팅 할 수 있다.

Audio Clip 인스펙터 창

옵션을 변경하고 Apply를 누르면 설정이 변경되어 Import 된다. Import Size와 Original Size의 비율이 Ratio로 표시 된다.

 

Force To Mono 는 스테레오로 제작된 사운드를 Mono로 재생하는 옵션,

스테레오는 출력 스피커가 여러개일 경우 스피커 별로 차이를 두어 출력하는 방식이다.

Normalize옵션은 스테레오 사운드가 mono로 변환 될 때 자연스럽게 정규화 시켜주는 옵션.

모바일의 경우 의미 없는 경우가 많기 때문에 Force To Mono로 설정 권장.

 

Compression Format

PCM

압축하지 않은 데이터, 사이즈가 크지만 고품질, 아주 짧은 소리가 정확히 들려야 하는 경우에 사용 권장. 그외에는 비추

 

ADPCM

여러가지 소리가 섞여 나올 경우에 사용, 사이즈는 PCM 의 1/3 수준 CPU 사용량이 낮기 때문에 앱 안정성에 도움.

보통 이펙트 사운드에 사용.

 

Vorbis/MP3

손실 압축, 압축정도를 슬라이드로 조절 할 수 있음. 배경음악에 적용하는게 좋음.

Vorbis가 가장 압축률이 좋다.

 


압축된 사운드를 사용할 경우 씬 전환이나 이펙트 사운드 재생시 원하는 시점에 소리가 재생 되지 않을 수 있다.

때문에 고려해야 하는 옵션

 

Load in Background

씬이 로드 될 때 빽그라운드 쓰레드를 생성해서 음악을 로드 하는 옵션. 

키는 경우 씬 로딩 속도가 빨라지지만 배경음악 같은 경우에는 씬 로드와 배경음악 시작 시점이 차이 날 수 있다.

 

Preload Auio Data

씬이 로드 되기 전에 미리 Audio Data를 로드하는 옵션

 

Load Type

사운드를 메모리에서 압축한 상태로 유지 할 건지 압축이 풀린 상태로 유지 할 건지에 대한 옵션이다.

사운드 크기가 클때 앱에서 메모리 사용량을 줄여서 안정성을 높이고 싶다면

Compressed in Memory을 선택, 이 경우에 실시간으로 압축을 해제 하면서 사운드를 플레이 하기때문에 CPU 사용량이 늘어 날 수 있다.

스트리밍 옵션은 최소한의 메모리를 사용하지만 기기별로 동시에 스트리밍 할 수 있는 사운드에 제한이 있을 수 있다.

Decompress in load 옵션은 길이가 긴 배경음악에 사용 할 경우 메모리에 큰 부담을 준다. 


사운드 종류별 추천 옵션

 

배경음악 : Vorbis/MP3, 70%, Force To Mono, Load in Background, 스트리밍 or Compressed in Memory

 

이펙트 : ADPCM or Vorbis/MP3, Force To Mono, Preload Audio Data, Decompress in load

 

환경 : Vorbis/MP3, 70%, Force To Mono, Load in Background, Compressed in Memory

 

음성 : Vorbis/MP3, 70%, Force To Mono, Load in Background, Compressed in Memory