버전
이 방법은 다음과 같은 상황에 적용할 수 있습니다.
게임이나 음향/모션 콘텐츠가 여러 섹션으로 나누어질 경우.
이 방법은 모든 소리와 모션이 게임에서 플레이어의 현재 위치에 의해서만 구동되는 싱글 플레이어 게임에 적합합니다. 콘텐츠를 여러 개의 SoundBank로 나누어 넣으면 첫 번째 방법보다 메모리를 더 효율적으로 관리할 수 있으며, 그래도 비교적 쉽게 오디오와 모션을 게임에 통합할 수 있다는 장점이 있습니다.
이 방법을 사용하려면 먼저 SoundBank를 어떻게 분할할지 결정해야 합니다. 예를 들어 다음과 같은 방식으로 SoundBank를 분할할 수 있습니다.
게임에서 언제든지 일어날 수 있는 모든 Event를 담은 하나의 일반 SoundBank. 이 SoundBank는 메모리에 항상 올라가 있어야 합니다.
레벨 또는 환경 당 하나의 SoundBank. 이 뱅크는 주요 캐릭터의 실제 위치에 따라 의존적인 사운드와 모션으로 구성되어야 합니다.
특정 게임의 요구 사항에 따라 필요한 추가적인 SounBank.
Wwise에서 여러 개의 완전한 SoundBank를 만드는 방법:
게임에 필요한 SoundBank를 모두 만든 후 'CommonEvents', “Level_1”, 'Level_2', 'Level_3'과 같이 각각 알맞은 이름을 지정합니다.
Wwise에서 Event를 Virtual Folder로 묶습니다. SoundBank 당 하나의 Virtual Folder를 만들어서 각 Virtual Folder를 해당 SoundBank로 드래그합니다. SoundBank에 Virtual Folder를 추가하면 프로젝트에 새로운 Event가 추가될 때마다 SoundBank 콘텐츠를 편집하지 않아도 됩니다. Virtual Folder의 콘텐츠가 변경되면 SoundBank가 자동으로 업데이트됩니다.
모든 Event를 각 SoundBank 안에 넣습니다. 이 단계는 원래의 폴더 외부에 있는 Event를 추가할 경우에만 필요합니다. 한 Event가 여러 개의 SoundBank에 들어가야 할 경우 필요한 모든 SoundBank로 추가하면 됩니다.
SoundBank를 생성한 다음 생성된 SoundBank 폴더를 게임 애플리케이션에 복사합니다.
게임에서 여러 개의 완전한 SoundBank를 통합하는 방법:
게임에서 적절한 시기에 알맞은 SoundBank를 불러옵니다. 예를 들어 게임 초반에 일반 SoundBank를 불러오고 플레이어의 실제 위치에 따라서 다른 적절한 SoundBank를 불러올 수 있습니다. 일부 게임에서는 레벨 사이에 전환 효과를 위해 동시에 여러 개의 '레벨'을 불러올 메모리가 충분히 있어야 한다는 점을 주의하세요.
다음 샘플 코드는 이러한 SoundBank를 게임에 불러올 수 있는 방법을 알려줍니다.
// 여기에서 사운드 엔진을 초기화하세요. ... // Init 뱅크와 Common SoundBank를 불러옵니다. AkBankID bankID; // 이 샘플에서는 사용되지 않습니다. AKRESULT eResult = AK::SoundEngine::LoadBank( L"Init.bnk", bankID ); if ( eResult == AK_Success ) { eResult = AK::SoundEngine::LoadBank( L"MyAllInONeBank.bnk", bankID ); } ... // 실제 수요에 따라 다음 내용을 코드의 여러 위치에 배치합니다. eResult = AK::SoundEngine::LoadBank( L"Level_1.bnk", bankID ); ... eResult = AK::SoundEngine::LoadBank( L"Level_2.bnk", bankID ); ... eResult = AK::SoundEngine::LoadBank( L"Level_3.bnk", bankID ); ... eResult = AK::SoundEngine::UnloadBank( L"Level_1.bnk" ); ... eResult = AK::SoundEngine::UnloadBank( L"Level_2.bnk" ); ... eResult = AK::SoundEngine::UnloadBank( L"Level_3.bnk" );
참고 | |
---|---|
LoadBank() 명령 대신 AkBankContent_All 명령을 통해 SoundBank를 준비할 수도 있습니다. SoundBank를 미리 준비할 경우 메모리에 미디어가 중복될 가능성을 배제할 수 있다는 장점이 있습니다. Wwise SDK 문서의 'Preparing Banks' 섹션을 참조하세요. |
다음 표에서는 '여러 개의 완전한 SoundBanks' 방법에 대한 장단점을 설명합니다.
장점 |
단점 |
---|---|
'일체형' SoundBank 방법보다 메모리 사용량이 적을 수 있습니다. 게임에 통합하기 아주 쉽습니다. |
주요 캐릭터의 위치 같이 단순한 사실보다 더 많은 요인에 따라 오디오나 모션 요구 사항을 충족시켜야 하는 온라인 게임이나 Event 중심의 게임에 적합하지 않습니다. SoundBank가 중복된 데이터를 담고 있을 수 있기 때문에 메모리에 미디어 파일이 중복되어 올라갈 수가 있습니다. 여러 가지 SoundBank가 비슷한 콘텐츠를 가질 수 있기 때문에 SoundBank의 전체 용량이 증가할 수 있습니다. |
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요