버전

menu_open
Wwise Unreal Integration Documentation
WwiseResourceCooker 모듈

WwiseResourceCooker 모듈은 다음과 같은 기능을 제공합니다.

  • WwiseObjectInfo 구조체를 WwiseResourceLoader 모듈 에 대해 쿠킹된 구조체로 변환합니다.
  • 요청된 오브젝트 파일을 GeneratedSoundBank에서 패키징 프로세스에서 사용하는 Staging 폴더로 복사합니다.
참고

Wwise 오브젝트를 위해 쿠킹된 데이터 준비하기

특정 Wwise 오브젝트를 식별하는 WwiseObjectInfo 구조체에서 시작하여 WwiseResourceCooker는 해당 Wwise 오브젝트와 관련된 Project Database에서 모든 정보를 수집하고 해당 정보가 포함된 '쿠킹된' 데이터 구조체를 반환합니다.

SoundBank나 미디어 파일의 경우 이들이 빌딩 블록이고 개별 파일을 나타내기 때문에 간단한 작업입니다. 외부 음원도 비교적 단순하지만 사용자에 의해 정의되기 때문에 얼마나 복잡할 지는 알 수 없습니다. 그래서 기본적으로 쿠킹된 데이터 결과는 디버깅이 아닌 정보로 쿠키만 가지고 있습니다.

쿠킹된 일부 데이터는 Short ID만 포함하고 있습니다. 쿠키가 있는 외부 음원와 마찬가지로 Short ID는 Trigger, Game Parameter(RTPC), Acoustic Texture의 쿠킹된 데이터에 필요한 유일한 정보입니다. 마찬가지로 Switch와 State는 자신이 속한 그룹의 식별자와 자신을 나타내는 값만 필요합니다.

Auxiliary Bus나 Effect ShareSet과 같은 다른 오브젝트는 조금 더 복잡할 수 있습니다. 여러가지 필수적인 미디어, SoundBank, 외부 음원, Aux 버스, 여타 다른 Switch Container의 요소를 가질 수 있는 Even가 가장 복잡합니다.

기본 인스턴스화 vs. 플랫폼 인스턴스화

WwiseResourceCooker는 Editor와 쿠킹되지 않은 프로젝트에서 사용되는 기본 인스턴스화를 가집니다. 이 인스턴스화는 Play in Editor 모드에 사용되며 Wwise 에셋이 Editor에 로드될 때 요청에 따라 쿠킹된 데이터를 제공합니다. 이 데이터는 패키지된 게임의 Wwise 에셋에서 직렬화되는 쿠킹된 데이터와 비슷합니다. 유일한 차이점은 Editor 쿠킹된 데이터가 GeneratedSoundBanks 폴더에 있는 리소스 파일(.bnk나 .wem)을 직접 사용한다는 것입니다. 반대로 패키지로 쿠킹된 데이터는 게임과 함께 패키징된 리소스 파일을 사용합니다.

패키징할 때 일반적으로 외부 쿠킹 프로세스가 생성되며 특정 플랫폼에서의 쿠킹만을 담당합니다. 예를 들어 기본 인스턴스화가 Mac 플랫폼용인 Mac 컴퓨터에서 Android WwiseResourceCooker를 인스턴스화하면 Android 게임을 패키징할 수 있습니다.

플랫폼에 대한 Project Database를 로드하는 데 시간이 오래 걸릴 수 있기 때문에 각 쿠킹 프로세스에 필요한 플랫폼만 로드됩니다. 일반적으로 이때 Project Database에 하나의 플랫폼만 로드됩니다. 그러나 동일한 프로세스가 여러 플랫폼을 쿠킹하거나 쿠킹이 에디터 프로세스 내에서 직접 실행되는 경우 여러 플랫폼이 로드될 수 있습니다.

Wwise 리소스 쿠킹부터 Staging까지

내부적으로 캐시된 쿠킹된 데이터를 기반으로 필요한 모든 파일은 GeneratedSoundBanks에서 Staging 폴더로 복사됩니다. Media 및 SoundBank는 개별 파일을 나타냅니다. 쿠키는 파일을 나타내지 않기 때문에 외부 음원은 사용자 정의됩니다. 기타 오브젝트는 하나 이상의 파일을 나타냅니다. 예를 들어 엄밀히 말해서 Init Bank는 SoundBank로서 외부 미디어 파일도 필요할 수 있기 때문에 Init Bank를 쿠킹하면 해당 미디어 파일도 복사됩니다.

쿠킹 옵션

다음 쿠킹 옵션을 패키지 게임에서 사용할 수 있습니다.

ExportDebugNameRule

(Editor에서) 기본 인스턴스에 대해 쿠킹할 때 쿠킹된 각 에셋에는 전체 Wwise Object Path가 포함된 디버그 이름이 있어서 디버깅하는 동안 에셋을 쉽게 식별할 수 있습니다.

패키지 게임을 빌드할 때 ExportDebugNameRule은 각 에셋의 디버그 이름 입력란을 채울지 아니면 비워 둘지 결정합니다. 이 입력란을 비워 두면 파일 크기가 줄어들고 리버스 엔지니어링이 더 쉬워집니다. 하지만 에셋의 Short ID만 사용하여 쿠킹된 데이터에서 해당 Wwise 오브젝트를 식별할 수 있기 때문에 디버깅하기가 더 어렵습니다.

LoadOnReference

LoadOnReference 옵션은 AkAudioEvent 에셋에서 활성화할 수 있습니다. 이 옵션을 활성화하면 현재 로드된 Switch와 State 세트에 따라 필요한 SoundBank와 미디어만 로드됩니다. Switch나 State를 로드/언로드하면 관련 리소스가 동적으로 로드/언로드됩니다. 이 옵션을 비활성화하면 Switch Container가 포함된 Event가 로드될 때 해당 Switch Container가 사용하는 모든 SoundBank와 미디어가 로드됩니다.

이 옵션을 활성화하면 쿠킹 프로세스가 Event의 쿠킹된 데이터를 준비하여 해당 리소스의 동적 로드를 지원합니다. 비활성화할 경우 쿠킹된 데이터가 Event와 함께 모든 리소스를 로드합니다.

이 옵션은 에셋별로 활성화할 수 있습니다.

참고:이 옵션을 활성화하면 더 많이 복잡해지기 때문에 특히 프로젝트에서 프로그래밍을 통해 Switch와 State를 설정하는 경우 해당 기능에 대한 명확한 이해가 필요합니다. 대부분의 경우 이 옵션이 제공하는 최적화는 이러한 단점을 능가하기에 충분하지 않습니다.
참고

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

지원이 필요하신가요?

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

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

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

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

Wwise를 시작해 보세요