버전
이 방법은 다음과 같은 상황에 적용할 수 있습니다.
메모리 사용량을 낮게 유지하기 위해서 아주 높은 수준의 세분성이 필요할 경우.
어떤 미디어 에셋이 어떤 SoundBank에 할당되어야 하는지 굳이 걱정하지 않고 싶을 경우.
준비된 Action Event란 무엇일까요? PrepareEvent()
함수를 호출할 경우 시스템은 Action Event를 분석해서 이 Event에 연관된 모든 구조와 미디어가 메모리에 로드됐는지 확인합니다. 모든 내용이 메모리에 올라가지 않았을 경우 시스템은 누락된 정보를 자동으로 디스크에서 스트리밍합니다. Event는 명시적으로 준비 해제하기 전까지 항상 준비된 상태로 유지됩니다.
참고 | |
---|---|
Action Event만 미리 준비할 수 있습니다. 'PrepareEvent()' 방법은 Dialogue Event에 사용할 수 없습니다. |
이 방법을 사용하려면 적어도 하나의 SoundBank가 필요합니다. 하지만 구조 부분은 Event와 동일한 SoundBank에 들어가거나 완전히 별도의 SoundBank에 들어갈 수 있습니다.
PrepareEvent 장치를 사용할 SoundBank를 제작할 경우, 필요한 모든 Event와 구조가 적어도 하나의 SoundBank에 있어야 하며 파일 시스템이 반드시 루스 미디어(loose media) 에셋에 접근할 수 있어야 합니다. 단, 구조를 여러 개의 SoundBank로 분할하는 것이 더 효율적인 메모리 관리일 수 있다는 점을 기억하세요.
Prior to preparing an Action Event, the Event itself must have been loaded into memory from one SoundBank (using LoadBank()). 그 이유는 바로 이 Event가 Event를 준비할 때 필요한 의존성에 대한 정보를 담고 있기 때문입니다.
참고 | |
---|---|
또한 AK::SoundEngine::PrepareBank 기능을 결합시켜 Event를 준비할 수도 있습니다. PrepareBank 장치를 사용하는 것의 가장 주된 장점은 바로 SoundBank를 'Event 뱅크'와 'Media 뱅크'로 나누지 않아도 된다는 점입니다. 이 방법을 사용하면 모든 콘텐츠가 동일한 SoundBank에 담기지만, AK::SoundEngine::PrepareBank가 호출되면 SoundBank의 메타데이터 콘텐츠만 메모리에 올라갑니다. 게임에서 미디어가 필요할 경우 PrepareEvent를 사용하여 미디어를 불러오면 됩니다. |
Event를 준비할 때 Wwise에서 SoundBank를 설정하는 방법:
'Events'라고 불리는 SoundBank를 만든 후 SoundBank Editor에 불러옵니다.
프로젝트에서 몇 가지 Action Event를 'Event' SoundBank에 추가하거나 Event Work Unit에 추가합니다.
Media 체크 상자를 비활성화하여 Events와 Structures 체크 상자만 활성화되도록 합니다. PrepareEvent()를 사용할 경우 미디어가 반드시 SoundBank 안에 있어야 하지만 직접 디스크에서 루스 파일(loose file)로 로딩되어야 합니다.
참고 | |
---|---|
이 예시에서는 모든 Event와 구조가 한 SoundBank에 담겨 있습니다. 소규모 프로젝트에서는 이렇게 해도 괜찮지만 대부분의 경우 콘텐츠를 여러 개의 SoundBank로 분할하는 것이 좋습니다. 또한 각 Event가 불러올 필요가 없는 다른 SoundBank를 참조하기 때문에 SDK 명령을 통해 명시적으로 불러오거나 준비하지 않아도 되는 'Structures' SoundBank를 만들 수도 있습니다. |
SoundBank를 생성한 다음 생성된 SoundBank 폴더를 게임 애플리케이션에 복사합니다.
참고 | |
---|---|
한 SoundBank에 담긴 구조 데이터는 런타임 때 분할할 수 없습니다. 그렇기 때문에 AK::SoundEngine::PrepareEvent()를 사용할 경우 별도의 SoundBank에서 구조 데이터가 필요하게 되면 해당 SoundBank의 모든 구조가 동시에 로딩됩니다. 이러한 이유로 프로젝트의 구조 콘텐츠를 여러 개의 SoundBank로 분할해서 메모리에 로드되는 불필요한 정보의 양을 최소화하는 것이 좋을 수 있습니다. |
For integration details, see Preparing Action Events in the Wwise SDK documentation.
AK::SoundEngine::PrepareEvent()
호출은 반드시 I/O 기능 호출로 간주되어야 한다는 점을 주의하세요. 이전 예시에서는 차단(blocking) 기능을 사용했습니다. AK::SoundEngine::PrepareEvent()
기능의 다른 중복 정의(overload)를 사용하여 차단하지 않는 호출을 만든 후 별도의 콜백을 통해 완료 알람을 다시 회복시킬 수 있습니다.
The following table lists the pros and cons of preparing Action Events.
장점 |
단점 |
---|---|
SoundBank 생성 과정이 간단합니다. 미디어의 세분성이 아주 높습니다. 전반적으로 메모리 사용량이 낮게 유지됩니다. 처리 자동화가 쉽습니다. |
미디어 에셋이 하나씩 로딩되면서 디스크 읽기와 빠른이동의 횟수가 잠재적으로 증가할 수 있습니다. 총 메모리 사용량에 대한 통제력이 줄어듭니다. Interactive Music을 사용하기가 더 복잡해집니다. |
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요