목차
최적화는 보통 게임 제작 후반부에 이뤄지는 경우가 많습니다. 게임의 프레임 레이트가 떨어질 경우 전반적인 경험에 큰 타격을 주기 때문에 최적화는 정말 중요한 요소라고 할 수 있습니다. 플레이 중에 게임 시스템이 처리해야 하는 작업은 수도 없이 많습니다. Vorbis로 인코딩된 미디어를 압축 해제하는 것도 처리해야 하는 작업 중 하나죠. Vorbis로 인코딩된 미디어의 압축을 푸는 데에 필요한 처리량을 줄이려면 AkBank 컴포넌트에서 제공하는 Decode compressed data (압축된 데이터 디코딩하기) 기능을 사용하실 수 있습니다.
이 기능은 SoundBank를 로딩할 때 Vorbis로 인코딩된 모든 미디어를 디코딩하기 때문에, 게임이 동일한 Event를 다시 게시하더라도 리소스를 더 사용할 필요가 없습니다. 이 옵션을 사용하면 사용하지 않을 때보다 메모리에서 SoundBank의 크기가 커져서 처음부터 PCM 인코딩을 사용하는 것과 동일한 크기가 됩니다. 그렇다면 왜 처음부터 PCM을 사용하지 않는 걸까요? 예를 들어 다운로드용 게임에서는 배포를 쉽게 하기 위해서 SoundBank의 크기를 작게 유지한 다음 게임이 로드된 후 SoundBank가 디코딩되도록 하는 것이 좋겠죠. SoundBank의 디코딩된 크기는 변환 후 SoundBank Manager에서 확인하실 수 있습니다.
Dungeon SoundBank는 압축 해제 후 데이터 크기가 가장 많이 변하는 Region SoundBank이기 때문에 이 SoundBank의 압축을 풀어서 크기를 비교해봅시다. 다음 단계에서는 먼저 압축을 풀기 전의 데이터 크기를 모니터링한 다음 Decode compressed data 옵션을 활성화해서 변경된 데이터 크기를 모니터링해봅시다.
-
Unity 메뉴에서 Audiokinetic > Certification > 301 > Lesson 3으로 가서 Decompressing SoundBanks를 선택하세요.
SoundBank가 압축된 데이터를 디코딩하도록 설정하기 전에 먼저 현재 메모리 사용량을 프로파일링해봅시다.
-
Wwise에서 Remote를 클릭하세요.
-
Remote Connections 창에서 Wwise Adventure Game (Editor) 를 선택한 후 Connect를 클릭하세요.
-
Unity에서 Play를 클릭하세요.
게임이 초기화되면 Play 모드를 다시 종료하세요.
-
ESC를 눌러 WAG 메뉴를 연 후 Play를 다시 클릭해서 Play 모드를 종료하세요.
-
Wwise 메뉴에서 Layouts를 클릭하고 Profiler를 선택하세요.
-
Advanced Profiler에서 SoundBanks 탭을 선택하세요.
-
Performance Monitor에서 시간 커서를 몇 초 정도 뒤로 드래그하세요.
Dungeon SoundBank는 약 2.4MB의 메모리를 사용하고 있습니다.
이제 로드가 된 후 SoundBank를 디코딩해봅시다. Dungeon SoundBank는 L3_2 - Dungeon Audio Environment Scene에 있는 Wwise 게임 오브젝트에서 찾으실 수 있습니다.
-
Unity의 Hierarchy에서 L3_2 - Dungeon Audio Environment Scene으로 간 후 Wwise 게임 오브젝트를 선택하세요.
-
Inspector의 AkBank 컴포넌트에서 Decode compressed data를 선택하세요.
이제 Decode compressed data 옵션이 활성화됩니다. 그 아래 'Save decoded bank' 매개 변수(parameter)가 보이는데, 이 매개 변수는 비활성화한 채로 유지해야 합니다. SoundBank를 디코딩하면 디코딩된 데이터가 메모리로 이동됩니다.
Decode compressed data 옵션은 SoundBank에서 Vorbis나 Opus로 설정된 음원만 디코딩할 수 있습니다. SoundBank에서 Vorbis로 인코딩된 미디어가 없을 경우 아무 효과가 없습니다. 자세한 내용은 인스펙터에서 AkBank 사용하기을 참고하세요.
-
Play를 클릭하세요.
-
Wwise에 계속 연결된 상태인지 확인하세요. 그렇지 않다면 Reconnect를 클릭하세요.
Advanced Profiler의 Memory 탭으로 가서 Name 열에 Dungeon SoundBank가 더 이상 있지 않은 것을 확인해보세요.
이는 압축 해제를 하기 때문입니다. SoundBank는 더 많은 메모리를 사용하지만 게임 플레이 중에 Vorbis 및 Opus 인코딩 미디어를 디코딩하기 위해서 CPU 리소스를 사용하지 않습니디. 그래서 게임이 보다 매끄럽게 돌아갈 것입니다.