목차

Wwise Unity Integration Documentation
Wwise와 Unity에서 DLC 만들기

Wwise 파일 패키지 사용하기

Wwise에서 DLC를 지원하는 기본적인 방법은 파일 패키지를 사용하는 것입니다. 이 방법은 저작 설명서의 Wwise > 도움말 > 프로젝트 완료하기 > 파일 패키지 관리하기 > 다운로드용 콘텐츠 개요에서 설명되어 있습니다. 요약하여 설명하자면, 이 패키지는 BNK와 WEM의 대체 혹은 추가 파일을 담을 수 있으며 DLC를 활성화하거나 비활성화하도록 자유롭게 로드(load)하고 언로드(unload) 할 수 있습니다. 이 패키지 형식은 선택적이지만 현재 Wwise/Unity 플러그인에 내장되어 있습니다. 직접 패키지 형식을 작성하고자 할 경우 새로운 Low-Level IO를 작성하여 기본 형식을 대체해야 합니다.

Unity에서 패키지를 사용하려면 AkInitializer의 속성에서 정의한대로 뱅크가 있는 경로인 Base Path에 패키지를 배치하세요. 그런 다음 AkSoundEngine.LoadFilePackage() 를 호출하세요. Wwise는 항상 파일 패키지를 통해 파일을 역순서로 로드합니다 (가장 마지막으로 추가된 파일이 가장 먼저 검색됨).

이 방법은 게임을 출시한 후 디스크 상에서 Base Path에 작성할 수 있는 모든 플랫폼에서 작동합니다. 하지만 iOS나 Android의 경우 사용할 수 없습니다.

Android와 iOS의 경우 모든 데이터가 읽기 전용 시스템으로 묶여지기 때문에 패키지를 다른 폴더에 배치해야 합니다. 이 작업은 AkSoundEngine.LoadFilePackage()에 앞서 AkSoundEngine.AddBasePath()를 호출함으로써 완료됩니다. 여러 개의 경로를 추가할 수 있으며 가장 마지막으로 추가된 경로가 가장 먼저 검색됩니다. 제한 사항은 해당 운영 체제의 설명서를 참고하세요. 아래 코드는 파일을 저장할 경로를 선택하는 코드의 예시입니다.

#if UNITY_IPHONE
string fileNameBase = Application.dataPath.Substring(0, Application.dataPath.LastIndexOf('/'));
fileName = fileNameBase.Substring(0, fileNameBase.LastIndexOf('/')) + "/Documents/" + FILE_NAME;
#elif UNITY_ANDROID
fileName = Application.persistentDataPath + "/" + FILE_NAME ;
#else
fileName = Application.dataPath + "/" + FILE_NAME;
#endif

Android에서는 SD 카드나 유사한 저장 장치와 같이 작성 가능한 여러 가지 경로가 있습니다.

참고

Unity WWW 서비스에서 뱅크 스트리밍하기

Unity에서 WWW 클래스를 사용하여 DLC 오디오 파일을 가져오고 직접 로드할 수도 있습니다. 이 작업은 AkMemBankLoader.cs에서 설명한 것처럼 메모리 안에서의 뱅크 로딩을 통해 실행됩니다. 기존의 뱅크를 새로운 뱅크로 교체할 경우 먼저 기존 뱅크를 알맞게 언로드해야 합니다. Wwise IO 시스템은 이 코드에 대해 모르기 때문에 똑같은 뱅크를 실수로 재로드하는지 혹은 대체하려고 하는지를 알지 못합니다.