버전

menu_open

방법 2: 여러 개의 완전한 SoundBank

이 방법은 다음과 같은 상황에 적용할 수 있습니다.

  • 게임이나 음향/모션 콘텐츠가 여러 섹션으로 나누어질 경우.

이 방법은 모든 소리와 모션이 게임에서 플레이어의 현재 위치에 의해서만 구동되는 싱글 플레이어 게임에 적합합니다. 콘텐츠를 여러 개의 SoundBank로 나누어 넣으면 첫 번째 방법보다 메모리를 더 효율적으로 관리할 수 있으며, 그래도 비교적 쉽게 오디오와 모션을 게임에 통합할 수 있다는 장점이 있습니다.

이 방법을 사용하려면 먼저 SoundBank를 어떻게 분할할지 결정해야 합니다. 예를 들어 다음과 같은 방식으로 SoundBank를 분할할 수 있습니다.

  • 게임에서 언제든지 일어날 수 있는 모든 Event를 담은 하나의 일반 SoundBank. 이 SoundBank는 메모리에 항상 올라가 있어야 합니다.

  • 레벨 또는 환경 당 하나의 SoundBank. 이 뱅크는 주요 캐릭터의 실제 위치에 따라 의존적인 사운드와 모션으로 구성되어야 합니다.

  • 특정 게임의 요구 사항에 따라 필요한 추가적인 SounBank.

Wwise에서 여러 개의 완전한 SoundBank를 만드는 방법:

  1. 게임에 필요한 SoundBank를 모두 만든 후 'CommonEvents', “Level_1”, 'Level_2', 'Level_3'과 같이 각각 알맞은 이름을 지정합니다.

  2. Wwise에서 Event를 Virtual Folder로 묶습니다. SoundBank 당 하나의 Virtual Folder를 만들어서 각 Virtual Folder를 해당 SoundBank로 드래그합니다. SoundBank에 Virtual Folder를 추가하면 프로젝트에 새로운 Event가 추가될 때마다 SoundBank 콘텐츠를 편집하지 않아도 됩니다. Virtual Folder의 콘텐츠가 변경되면 SoundBank가 자동으로 업데이트됩니다.

  3. 모든 Event를 각 SoundBank 안에 넣습니다. 이 단계는 원래의 폴더 외부에 있는 Event를 추가할 경우에만 필요합니다. 한 Event가 여러 개의 SoundBank에 들어가야 할 경우 필요한 모든 SoundBank로 추가하면 됩니다.

  4. SoundBank를 생성한 다음 생성된 SoundBank 폴더를 게임 애플리케이션에 복사합니다.

게임에서 여러 개의 완전한 SoundBank를 통합하는 방법:

  1. 게임에서 적절한 시기에 알맞은 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를 시작해 보세요