유니티 오디오 세팅 / 사운드 재생 딜레이 현상 ( Unity audio play / sound delay / latency )

 

 에디터 상에서는 소리가 잘 나왔는데,

막상 모바일로 빌드해보면 소리가 약간 늦게 나온다거나 하는 현상이 있다.

 

 기본 설정에서는 빌드할 때는 오디오 파일을 압축해서 재생할때 플레이 하게 되는데 

이 때 걸리는 시간이 오디오 딜레이 현상의 원인.

 

 또한 프로젝트쪽에서 오디오 버퍼를 설정하는 것으로도 개선의 여지가 있다고 함.

 

1. 프로젝트 세팅에서 오디오 버퍼 세팅 조정

Edit - ProjectSettings - Audio 에서 
DSP Buffer Size를 Best Performance -> Best latency로 설정

 

 

2. 개별적인 오디오마다 임포트 세팅 설정

1) Force To Mono(모노 강제조정) :
채널을 하나만 사용한다. 최적화를 중시한다면 체크 / 사운드의 퀄리티를 원한다면 언체크

2) Load In Background(지연된 로딩) : 
배경음악이라면 체크 / 타이밍에 맞춰 재생하는 효과음이라면 언체크

3) Load Type
(1) Decompress On Load : 미리 메모리에 통채로 올려놓고 바로바로 읽어낼 수 있음. 효과음에 사용. 
레이턴시가 제일 적다. 하지만 메모리를 엄청먹으니 PCM하고만 같이 사용할 것을 추천함.
(2) Compressed In Memory : 압축 상태로 메모리에 올려놓고 읽을 때 압축 풀어서 재생함. 보이스 사운드 등에 사용
(3) Streaming : 필요할때 실시간으로 읽어냄. 레이턴시가 상관없는 보통 배경음악에서 사용

4) Compression Format
(1) PCM : 최고품질 / 용량 큼 / Load Type은 Decompress On Load로 하자
(2) ADPCM : 중간 품질 / 용량 중간
(3) Vobis : 최저품질 / 용량 작음

5) Quality(음질) : Vobis의 최종적인 음질을 결정함. ( 100%면 의미없고 보통 70%정도 )

 

결론

1) 배경음악 : Load In Background 체크
 - Load Type : Streaming
 - Compression Format : Vobis (퀄리티에 따라 다르지만 보통 70-80%)

2) 타이밍 중요한 효과음 :
 - Load Type : Decompress Decompress On Load
 - Compression Format : PCM

3) 보이스 혹은 타이밍 적당히 중요한 효과음 :  
 - Load Type : Compressed In Memory
 - Compression Format :  ADPCM

4) 딜레이가 있어도 상관없는 효과음 :  
 - Load Type : Compressed In Memory
 - Compression Format :  Vobis

 

 

# 21.03.03 추가

 - 유니티 서울 2020의 최적화 팁에서 가이드 라인을 마련해줌.

 

 - iOS : 단순효과음 - ADPCM / 배경음 - MP3

 - Android : Vorbis

 

 - 200kb미만 : Decompress On Load

 - 200kb이상 : Compressed In Memory

 - 1mb 이상 : Streaming

 - 압축해제를 위한 버퍼가 200kb가 할당되기때문에 200kb 미만은 그냥 압축을 풀어서 사용 하는 편이 메모리 사용량을 절약할 수 있다.

 

 

 

 

 

댓글

Designed by JB FACTORY