버전

menu_open
Wwise SDK 2023.1.8
SoundBank 통합 예제

다음 섹션에는 다양한 SoundBank 관리 전략의 통합 예제가 포함되어 있습니다. 이러한 전략은 Wwise 도움말의 SoundBanks 관리 전략에 설명되어 있습니다.

참고: PrepareEvent는 메모리 내 데이터를 사용하여 LoadBank와 호환되지 않습니다.


한 개의 일체형 SoundBank

이 전략을 사용하면 모든 이벤트 콘텐츠, 사운드 구조 데이터, 미디어 파일이 하나의 SoundBank에 저장됩니다. 이 전략에 대한 설명과 Wwise Authoring에서 구현하는 방법은 Wwise 도움말의 일체형 SoundBank를 참조하세요.

이 게임에는 SoundBank가 하나밖에 없으므로 게임을 초기화할 때 SoundBank를 불러오세요. 항상 그렇듯이 사운드 엔진을 먼저 초기화해야 합니다.

여러 개의 완전한 SoundBank

이 전략은 모든 사운드가 게임 내 플레이어의 위치에 따라 달라지는 싱글 플레이어 게임에 적합합니다. 이 전략에 대한 설명과 Wwise Authoring에서 구현하는 방법은 Wwise 도움말의 여러 개의 완전한 SoundBanks를 참조하세요.

게임에서는 정확한 시간에 올바른 뱅크를 불러와야 합니다. 예를 들어 게임 초반에 일반 뱅크를 불러오고 플레이어의 실제 위치에 따라서 다른 적절한 뱅크를 불러올 수 있습니다. 일부 게임에서는 레벨 간 전환 효과를 위해 동시에 두 개 이상의 '레벨'을 로드할 만큼 충분한 메모리가 있어야 한다는 점을 주의하세요.

LoadBank() 대신 AkBankContent_All 을 사용하여 SoundBank를 준비할 수도 있습니다. 이 방법은 메모리에서 미디어가 복제되는 것을 방지하는 장점이 있습니다. 뱅크 준비 를 참조하세요.

세부적인 미디어 관리

많은 에셋이 포함된 복잡한 게임의 경우 이 전략을 고려해보세요. 이 전략에 대한 설명과 Wwise Authoring에서 구현하는 방법은 Wwise 도움말의 세부적인 미디어 관리를 참조하세요.

게임을 시작할 때 일반적으로 사용하는 SoundBank를 로드하고 필요할 때마다 다른 SoundBank를 로드합니다. 예를 들어, 게임 초반에 Event SoundBank와 일반적인 발소리 SoundBank를 로드한 다음, 게임 내에서 플레이어의 위치에 따라 다른 SoundBank를 로드할 수 있습니다.

Action Event 준비하기

메모리 사용량을 낮추기 위해 높은 수준의 미디어 세분성이 필요하고 Event와 관련된 구조체 및 미디어를 관리하고 싶지 않은 경우 이 전략을 고려하세요. 이 전략에 대한 설명과 Wwise Authoring에서 구현하는 방법은 Wwise 도움말에서 Action Event 준비하기를 참조하세요.

게임을 시작할 때 Event의 SoundBank를 로드하고, 게임에서 필요할 때 Event를 준비합니다. 해당 구조체와 미디어는 자동으로 로드됩니다.

Event와 Game Sync 준비하기 (Switch와 State)

이 전략은 Action Event 준비하기 와 비슷하지만 Event가 준비될 때 로드되는 미디어를 더 많이 제어할 수 있습니다. 이 전략에 대한 설명과 Wwise Authoring에서 구현 구현하는 방법은 Wwise 도움말에서 Event와 Game Sync 준비하기 (Switch와 State)를 참조하세요.

AK::SoundEngine::PrepareEventAK::SoundEngine::PrepareGameSync 중 어느 것을 먼저 호출하는지는 중요하지 않습니다. State가 바뀔 때마다 Event와 게임 싱크를 서로 맞춰보고 이에 따라 미디어 풀이 업데이트됩니다.

참고
AKSOUNDENGINE_API AKRESULT PrepareEvent(PreparationType in_PreparationType, const char **in_ppszString, AkUInt32 in_uNumEvent)
Audiokinetic namespace
AKSOUNDENGINE_API AKRESULT PrepareGameSyncs(PreparationType in_PreparationType, AkGroupType in_eGameSyncType, const char *in_pszGroupName, const char **in_ppszGameSyncName, AkUInt32 in_uNumGameSyncs)
AKSOUNDENGINE_API AKRESULT Init(AkInitSettings *in_pSettings, AkPlatformInitSettings *in_pPlatformSettings)
AkUInt32 AkBankID
Run time bank ID
Definition: AkTypes.h:75
AKRESULT
Standard function call result.
Definition: AkTypes.h:131
AKSOUNDENGINE_API AKRESULT LoadBank(const char *in_pszString, AkBankID &out_bankID, AkBankType in_bankType=AkBankType_User)
@ Preparation_Unload
PrepareEvent() will unload required information to play the specified event.
#define NULL
Definition: AkTypes.h:46
@ AK_Success
The operation was successful.
Definition: AkTypes.h:133
AKSOUNDENGINE_API void GetDefaultInitSettings(AkInitSettings &out_settings)
@ Preparation_Load
PrepareEvent() will load required information to play the specified event.
AKSOUNDENGINE_API AKRESULT UnloadBank(const char *in_pszString, const void *in_pInMemoryBankPtr, AkBankType in_bankType=AkBankType_User)
AKSOUNDENGINE_API void GetDefaultPlatformInitSettings(AkPlatformInitSettings &out_platformSettings)

이 페이지가 도움이 되었나요?

지원이 필요하신가요?

질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!

지원 페이지를 방문해 주세요

작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.

프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.

Wwise를 시작해 보세요