게임에서 런타임 시 원하는 사운드가 재생되도록 하려면 오디오 파일을 포함하는 사운드 뱅크 리소스를 게임의 메모리로 로드해야 합니다. 사운드 뱅크 사용이 끝나면 오디오 파일이 메모리에서 추가 공간을 차지하지 않도록 게임의 메모리에서 언로드해야 합니다.
사운드 뱅크 로드 및 언로드를 관리하는 방법은 3가지가 있으며 다음 섹션에 설명되어 있습니다.
Audio > Wwise > Banks > Wwise Load Bank 및 Audio > Wwise > Banks > Wwise Unload Bank 노드를 트리거하여 사운드 뱅크를 로드 및 언로드합니다.
Event > Level Loaded 이벤트 방사체 노드에 대해 해당 수준에 대한 흐름 그래프 내에서 각 게임 수준에 필요한 사운드 뱅크를 로드하는 것이 일반적인 사용 방법의 예입니다. 그런 다음 Event > Level Shutdown 이벤트에 대해 뱅크를 언로드할 수 있습니다.
stingray.Wwise.load_bank() 및 stingray.Wwise.unload_bank() 함수를 호출하여 사운드 뱅크를 로드 및 언로드합니다. 로드하려는 사운드 뱅크의 리소스 이름을 매개변수로 전달합니다.
예를 들어 게임에서 Appkit과 SimpleProject를 사용하는 경우 이 코드 조각은 자동으로 현재 수준과 동일한 리소스 이름이 있는 사운드 뱅크를 로드 및 언로드합니다.
function Project.on_level_load_pre_flow() stingray.Wwise.load_bank(SimpleProject.level_name) ... end function Project.on_level_shutdown_post_flow() stingray.Wwise.unload_bank(SimpleProject.level_name) ... end
Stingray 리소스 패키지 시스템을 사용하여 다른 유형의 리소스를 로드 및 언로드할 때 동시에 사운드 뱅크도 로드 및 언로드하도록 할 수 있습니다. 리소스 패키지 작동 방법에 대한 배경 정보는 런타임 시 컨텐츠 로드 및 언로드 아래 항목을 참조하십시오.
이 방법을 따르면 Lua 및 흐름에서 로드 및 언로드 명령을 발행할 필요가 없습니다.
리소스 패키지의 일부로 사운드 뱅크를 로드 및 언로드하려면 wwise_dep 키를 리소스 패키지 SJSON 파일에 추가합니다. 해당 값을 프로젝트 소스 폴더에 있는 .wwise_dep 리소스 파일의 목록으로 설정합니다. 프로젝트의 각 뱅크에 대해 자동으로 생성된 .wwise_dep 파일이 있어야 합니다.
예:
wwise_dep = [ "content/audio/Init" "content/audio/menu" "content/audio/menu.level_1" "content/audio/menu.level_2" ]
사운드 뱅크 로드에 대해 이 시스템을 선택했는지 여부와 관계없이, 게임이 항상 부팅 패키지에서 content/audio/Init .wwise_dep 리소스를 로드하도록 해야 합니다. 이 리소스에는 사용자의 뱅크 및 이벤트로 작업하기 위해 런타임 시 Wwise 플러그인에서 필요로 하는 메타데이터가 포함되어 있습니다.