menu
 

1 개의 강의

목차

스트리밍

메모리 부하를 줄이는 하나의 방법은 바로 광 디스크, 하드 드라이브, 플래시 메모리에서 오디오를 직접 스트리밍하는 것입니다. 스트리밍은 SoundBank에서 메모리를 많이 차지하는 큰 오디오 파일에 적합합니다. 하지만 트리거와 동시에 로드되어야 하기 때문에 레이턴시가 생길 수 있습니다. 그렇기 때문에 립싱크 대사와 같이 정확한 타이밍이 필요한 사운드에는 스트리밍이 적합하지 않습니다. 하지만 환경음이나 때로는 음악과 같이 타이밍이 그다지 중요하지 않은 사운드에는 잘 어울립니다.

스트리밍은 SoundBank를 로드하는 것과 아주 비슷합니다. SoundBank가 로드되면 CPU가 콘텐츠를 메모리에 스트리밍합니다. 오디오 파일을 스트리밍할 경우에도 마찬가지로 하드 드라이브나 디스크로부터 스트리밍용 파일을 가져오는 데에 CPU가 약간 사용됩니다. 그리고 지정된 설정에 따라 스트리밍된 데이터는 제거되거나 메모리에 남아있게 되죠.

스트리밍 설정은 Wwise 프로젝트의 오디오 구조에서 설정됩니다. 퀘스트 4에 나오는 대장장이의 대사 Sound Voice 오브젝트를 스트리밍하는 법을 살펴봅시다.

[참고]

Sound Voice 오브젝트는 보통 대사에 사용되는 오브젝트 타입이며 여러 언어를 관리할 수 있도록 설계되었습니다. Sound Voice 오브젝트를 Voice와 혼동하지 않도록 주의하세요.

  1. Wwise menu > Layouts에서 Designer를 선택하세요.

  2. Project Explorer의 Audio 탭에서 Actor-Mixer Hierarchy > Default Work Unit > World > NPCs > QuestGivers > Dialogue Blacksmith를 펼치고 Blacksmith_DialogueLine_Q4b_01을 선택하세요.

  3. Object Tab의 General Settings 탭에서 Stream이 선택되어 있는지 확인하세요.

Stream을 활성화하면 SoundBank를 생성할 때 해당 사운드가 게임에서 스트리밍될 수 있도록 SoundBank 옆의 WEM 파일에 저장됩니다.

[참고]

WEM (Wwise Encoded Media) 파일은 컴파일된 게임에 보관되는 Wwise 고유의 포맷입니다.

다음은 스트리밍용 파일에 사용할 수 있는 옵션입니다.

  • Non-Cachable: 스트리밍용 오디오가 재생될 때 캐시를 남기지 않습니다. 재생이 끝난 후에 메모리에 캐싱될 필요가 없는 긴 반복 재생 구간이나 다시 발생하지 않는 사운드에 적합합니다. WAG에서 이 옵션은 보통 한 번만 재생되는 모든 대사에 적용되어 있습니다.

  • Zero Latency: 오디오 파일의 시작 부분을 작은 버퍼로 만들어 스트리밍용 파일의 레이턴시를 제거합니다. WAG의 음악 시스템에선 두 가지 테마가 동시에 재생되기 때문에 트리거 타이밍이 아주 중요합니다.

  • Prefetch length (ms): 메모리에 저장하고자 하는 구간의 길이를 밀리세컨드로 나타낸 것을 말합니다. WAG의 경우 기본 설정인 100밀리세컨드로 설정해두었습니다.

WAG에서는 음악, 대사, 환경음이 스트리밍되어 대략 57MB의 런타임 메모리가 절약되었습니다. 이 중 약 37MB는 대사가 차지한다는 점으로 보아, 되도록이면 Non-cachable 옵션을 사용하여 메모리 캐시를 제거하는 것이 정말 중요하다는 것을 알 수 있습니다.


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