menu
버전
2021.1.14.8108
2024.1.4.8780
2023.1.12.8706
2022.1.18.8567
2021.1.14.8108
2019.2.15.7667
2019.1.11.7296
2018.1.11.6987
2017.2.10.6745
2017.1.9.6501
2016.2.6.6153
2015.1.9.5624
2024.1.4.8780
2023.1.12.8706
2022.1.18.8567
2021.1.14.8108
2019.2.15.7667
2019.1.11.7296
2018.1.11.6987
2017.2.10.6745
2017.1.9.6501
2016.2.6.6153
2015.1.9.5624
Wwise Unity Integration Documentation
|
Unity Addressables는 플레이어와는 별도로 에셋을 패키징하기 위해서 AssetBundles를 중심으로 구축된 시스템입니다. 이 시스템은 외부 서버에 외부 에셋이 저장되는 DLC 맥락에서 특히 유용합니다.
이제 막 Addressables를 사용하기 시작한 분들의 경우 공식 설명서와
교육 자료를 통해 이에 대해 익힐 것을 권장합니다.
여기에서 Wwise Unity Addressables 패키지를 설정을 시작해보세요:
다음 섹션에서는 Wwise Addressables 패키지가 어떻게 작동하는지 설명합니다:
warning | 주의: 이 패키지는 실험적으로 간주해 주세요. Addressables 지원은 Unity 통합의 새로운 기능이며 변경될 수 있습니다. |
warning | 주의: Unity 2018은 지원되지 않습니다. Unity 2018에서 외부 패키지를 사용할 경우 문제가 발생할 수 있기 때문에 2019년보다 오래된 Unity 버전에서 이 패키지가 올바르게 작동할 것 이라고 보장할 수 없습니다. |
Addressables 시스템은 고려해야 할 다음 특징을 가지고 있습니다:
Wwise Addressable Samples 페이지는 Wwise Addressable Asset을 관리하는 데 도움이 되는 코드 샘플에 대한 추가 정보를 제공합니다.
생성 시 .bnk와 .wem 파일이 WwiseBankImporter와 WwiseStreamingAssetImporter 클래스에 의해 처리됩니다. 이 스크립트는 파일의 이진 파일을 담은 에셋을 생성합니다. 그런 다음 저희 커스텀 에셋인 포스트프로세서 WwiseBankPostProcess가 새로운 에셋을 해당 플랫폼의 Addressables 그룹으로 추가합니다. 각 플랫폼의 Init SoundBank는 자체적인 Addressables 그룹에 추가됩니다. Init Bank가 별도의 장소에 추가되는 이유는 출시 후에 프로젝트가 변경될 경우 (예: 새로운 오디오 버스 추가) 이 뱅크가 다시 반드시 업데이트되어야 하기 때문입니다. Init SoundBank를 자체적인 어드레서블 AssetBundle 안에 패키징하면, 호스팅 서비스로부터 이 에셋의 새로운 버전을 페치하는 데에 걸리는 시간을 최소화할 수 있습니다. 에셋이 추가되는 addressable group과 에셋에 적용되는 레이블을 사용자 지정하려면 Wwise Addressable Samples 페이지를 참조하세요.
또한 에셋 포스트프로세서는 프로젝트의 각 SoundBank에 대해 WwiseAddressableSoundBank를 생성합니다. 이 에셋은 플랫폼의 이름을 해당 SoundBank와 스트리밍 미디어 에셋으로 매핑하는 사전(dictionary)을 담고 있습니다.
warning | 주의: WwiseAddressableSoundBank에서 참조되는 SoundBank와 스트리밍 미디어는 소프트 참조입니다. 이 SoundBank와 스트리밍 미디어는 Addressables를 사용하여 로드되며 반드시 Addressables 그룹 안으로 패키징되어야 합니다. |
warning | 주의: 실수로 WwiseAddressableSoundBank를 삭제할 경우, 연관된 SoundBank를 삭제하고 재생성해야 새로운 WwiseAddressableSoundBank를 만들고 올바르게 참조를 구성할 수 있습니다. |
Init SoundBank용 WwiseAddressableSoundBank가 생성되면 씬에 있는 WwiseGlobal 게임 오브젝트에 InitBankHolder 컴포넌트가 추가됩니다. 이 컴포넌트는 AddressableBankManager가 쉽게 찾을 수 있도록 WwiseAddressableSoundBank를 저장하는 역할을 합니다.
Wwise Addressables를 사용할 경우 사운드뱅크를 메모리로 로드/언로드하는 작업이 AkAddressableBankManager에 의해 처리됩니다. 이 클래스는 로딩되고 있고 로드된 AddressableSoundBank로의 참조를 저장하여 Init SoundBank가 항상 먼저 로드될 수 있게 해줍니다. 해당 SoundBank가 다 로드되기 전에 AkEvent가 트리거될 경우, 이 클래스는 트리거된 호출의 매개 변수를 저장하고 SoundBank가 로드된 후에 이벤트를 다시 트리거합니다.
SoundBank가 로드되면 현재 플랫폼에 해당하는 SoundBank 에셋이 Addressables를 사용하여 로드됩니다. SoundBank가 로드되면 사운드뱅크 데이터가 고정되며 AkSoundEngine.LoadBankMemoryCopy()를 사용하여 메모리의 복사본이 사운드 엔진으로 로드됩니다.
에디터에서 재생 모드에 있을 경우 어드레서블즈 대신 AssetDatabase를 사용하여 SounBanks가 동기적으로 로드됩니다. 비동기적 로딩은 빌드된 게임에서만 시험할 수 있습니다.
WwiseBankReference 클래스는 Ak.Wwise.Bank 컴포넌트에 대한 저희의 커스텀 인스펙터에서 사용됩니다. WwiseBankReference는 WwiseAddressableSoundBank로의 하드 참조를 담습니다. 이 참조는 AkAssetUtilities.AddressableBankUpdated 델리게이트를 통해 WwiseAddressableSoundBank Asset이 생성되었을 때에 업데이트됩니다. WwiseBankReference가 WwiseAddressableSoundBank 다음에 생성되면 SoundBanks 폴더에서 Bank 이름과 일치하는 WwiseAddressableSoundBank 에셋을 검색합니다. 일련화된 WwiseBankReference는 Assets\Wwise\ScriptableObjects\SoundBank
안에 저장됩니다.
info | 참고: | 게임 오브젝트에 의해 직접 참조되는 에셋은 게임 오브젝트와 함께 패키징됩니다. AkBank Component는 WwiseBankReference로의 하드 참조를 담고 있으며, WwiseBankReference는 해당 WwiseAddressableSoundBank로의 하드 참조를 담고 있습니다. AkBank 컴포넌트가 있는 GameObject를 Addressables 그룹 안에 넣을 경우 WwiseBankReference와 WwiseAddressableSoundBank가 이와 함께 패키징됩니다 (명시적으로 이를 그룹에 추가할 필요 없이). |
또한 스트리밍 미디어 (.wem 파일)도 WwiseBankImporter 스크립트에 의해 처리됩니다. WwiseAddressableSoundBank는 해당 뱅크와 연관된 플랫폼 전용 스트리밍 미디어 에셋으로의 참조 목록을 담고 있습니다. 뱅크가 로드되면 Addressables를 통해 미디어 에셋이 로드되며 Application.persistentDataPath 폴더로 복사됩니다. 동일한 이름을 가진 파일이 이미 폴더에 있을 경우 해쉬가 비교됩니다. 파일이 다를 경우 AssetBundle에서의 파일로 덮어쓰게 됩니다.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요