목차

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 시스템은 이 코드에 대해 모르기 때문에 똑같은 뱅크를 실수로 재로드하는지 혹은 대체하려고 하는지를 알지 못합니다.

생성시간 : Fri Mar 29 16:14:34 2019, 프로젝트명 : Wwise Unity Integration, 생성자 :   doxygen 1.6.3