📌 개요
게임에서 오디오 리소스는 많은 메모리 사용량을 차지하는 에셋 중 하나입니다.
특히 3D 환경을 지원하는 기능을 2D에서 사용하도록 설정하여 메모리 혹은 성능 최적화에 실패하기도 합니다.
그래서 오늘은 Unity에서 오디오를 최적화하는 방법에 대해 살펴보겠습니다.
📌 Audio Import 세팅 최적화
Force To Mono
- 오디오를 단일 채널 사운드로 다운 믹싱합니다.
- 입체 음향이 사라지지만 비약적으로 용량을 줄일 수 있습니다.
- 단, 모노 음원이라면 아무런 영향이 없음
- 3D 게임이 아니라면 체크합니다.
- Normalize : 사운드 정규화 (일반적으로 체크)
- 단, 이미 사전에 볼륨 작업을 했다면 체크 해제
Load In Background
- 비동기 방식으로 백그라운드에서 로딩됩니다.
- 천천히 불러오기 때문에 로딩 속도를 향상시킵니다.
- 배경음이면 체크하고, 그 외에는 체크를 해제합니다.
Ambisonic
- 듣는 사람의 방향에 따라 회전하는 Sound Field을 지원합니다.
- XR 또는 360도 영상이 아니라면 체크를 해제합니다.
Preload Audio Data
- 씬이 로딩될 때 오디오를 미리 로딩할 것인지 결정합니다.
- Steaming으로 설정하면 비활성화됩니다.
Import Setting
- SFX
- 용량이 작은 경우 (200kb 이하): Load Type: Decompress on Load
- 용량이 큰 경우 (200kb 이상): Load Type: Compressed In Memory
- BGM
- Load Type: Streaming
Compression Format은 모두 Vorbis로 설정합니다.
Qualilty는 압축량으로, 되도록이면 100으로 설정해줍니다.
- 테스트 후 음질이 좋지 않다면, BGM은 40 ~ 70 사이로, SFX은 1 ~ 40 사이로 설정합니다.
💡 Load Type 특징
Decompress On Load: 오디오 파일을 로딩 후 바로 압축 해제합니다. 미리 압축을 해제한 상태라 성능적으로는 뛰어나지만, 압축 전보다 열 배 이상의 메모리를 사용하므로 큰 파일에는 사용하지 않습니다. 주로 용량이 작고 즉각적인 반응이 필요한 타격음, 총소리, 발걸음 소리 SFX에 사용합니다.
Decompressed In Memory: 오디오 파일을 압축 상태로 메모리에 올려둡니다. 재생 시 압축을 해제하기 때문에 CPU를 약간 더 사용하지만, 메모리 효율이 뛰어납니다. 주로 즉시 재생될 필요가 없는 BGM이나 대사에 사용합니다.
Streaming: 오디오 파일을 메모리에 로드하지 않고 재생 시 디스크에서 읽습니다. 디스크에서 증가식으로 읽어와 즉시 디코딩하기 때문에 메모리를 최소화할 수 있습니다. 거의 BGM에만 사용합니다.
💡 Compression Format 특징
PCM: 최저 압축률, 무손실 최고 품질, 최고 용량, 딜레이가 없는 매우 짧은 SFX에 사용합니다.
ADPCM: 중간 압축률, 중간 품질 및 용량, 짧은 SFX에 사용합니다.
Vorbis: 최고 압축률, 최저 품질 및 용량, 가장 일반적으로 사용되는 압축 방식입니다. 주로 BGM에 사용하지만, 모바일 게임에서는 SFX에도 많이 사용합니다. Vorbis를 체크하면 Quality을 설정할 수 있습니다. Quality는 큰 문제가 없다면 100으로 설정하는게 좋습니다.
📌 Audio Source 컴포넌트 최적화
Audio Source 컴포넌트를 추가하면 3D Sound Setting의 Doppler Level Default 값인 1.0으로 설정됩니다. 입체 음향을 사용하지 않는 대부분의 모바일 게임은 이 값을 0.0으로 설정하여 비활성화합니다.
추가적으로, Reverb Zome Mix도 0.0으로 설정해줍니다. 이 값은 3D 환경에서 사용되며, 주로 동굴 지형에 들어섰을 때 소리를 울리게 만드는 입체 음향 효과를 만들어줍니다.
📌 Audio 파일 최적화
원본 음원의 확장자를 WAV로 사용하는 것이 좋습니다.
어떤 포맷을 사용해도 Unity에서 재압축하기 때문에 원본 WAV를 사용하면 좋습니다.
Sample Rate을 낮추는 것이 좋습니다.
품질이 저하되는 대신 용량에 큰 이점을 얻을 수 있습니다.
SFX는 주로 11,025 Hz 또는 22,050 Hz을 사용합니다.
BGM 또는 Voice는 44,100 Hz을 사용합니다.
음질 테스트를 통해 유동적으로 선택하시면 됩니다.
'유니티(Unity) > 최적화 기법' 카테고리의 다른 글
[Unity 최적화] UI SetActive 호출 타이밍 (0) | 2024.12.18 |
---|---|
[Unity 최적화] UGUI 최적화 (0) | 2024.12.12 |
[Unity 최적화] UI 시스템 설계 (0) | 2024.12.11 |