목차
만약 Cube가 Health_Status Switch Group을 직접 Wwise에 알려주었다면 기타 구현 작업은 벌써 완료되었을 것입니다. 하지만 Cube가 체력 정보를 게임 파라미터(RTPC)로 전송하기 때문에 이 매개 변수를 여러분이 설정한 Health Status Switch Group에 매핑해야 합니다. Game Parameter를 Switch Group으로 연결하는 기능은 Switch Group 자체에서 제공됩니다.
-
Project Explorer에서 Game Syncs 탭을 클릭하고 Health_Status Switch Group을 선택하세요.
-
Use Game Parameter 체크 상자를 활성화하세요.
현재 어떤 Game Parameter가 Health_Status Switch Group으로 연결될지 정하지 않았기 때문에 그래프가 비어있습니다.
-
[>>] 선택 메뉴에서 Game Parameters > PlayerHealth를 선택하세요.
RTPC 곡선과 비슷한 그래프가 표시됩니다.
이전에 만든 네 개의 Switch 값이 Y축에 표시되고 0~100 범위의 체력 Game Parameter가 X축에 표시됩니다.
이제 PlayerHealth Game Parameter의 변화가 네 개의 Switch와 연관 관계를 가지도록 매핑해봅시다.
-
곡선에서 값이 20인 지점을 더블 클릭하세요.
기준점이 생깁니다.
-
기준점을 좌측 상단에 있는 Nearly_Defeated 줄로 드래그하세요.
이제 체력이 0-20이라는 것은 플레이어가 거의 패배에 가까움을 의미합니다.
-
값이 50인 지점에 새로운 기준점을 만들고 20에 있던 기준점을 Badly_Injured 줄로 드래그하세요.
-
값이 80인 지점에 새로운 기준점을 만들고 50에 있던 기준점을 Flesh_Wound 줄로 드래그하세요.
-
80에 있던 기준점을 Healthy 줄로 드래그하세요.
이제 PlayerHealth의 변화가 Health_Status State Group에 주는 영향을 그래프가 알맞게 반영합니다. PlayerHealth Game Parameter의 변화를 시뮬레이션하여 여러분이 구현한 것을 시험해봅시다.
-
여러분이 설정해놓은 Soundcaster Music Testing Session에서 음악을 재생하세요. PlayerHealth RTPC를 변경하면서 작업 결과를 들어보세요.
이제 게임 자체에서 작업 결과를 확인해봅시다. 게임에서 첫 번째 텔레포터를 통과하면 작업 결과를 모두 확인할 수 있습니다. 슈퍼 보석을 획득해서 아르페지오가 들리는지 확인해 보세요. 하지만 서둘러서 이 아이템으로 몬스터를 죽이지는 마세요. 먼저 몬스터가 여러분을 공격할 수 있게 해보세요. 그러면 체력이 낮아지면서 기타가 들릴 것입니다!
-
Capture Session을 시작한 후 Souncaster에서 시뮬레이션을 계속하면서 Profiler 레이아웃으로 전환하세요.
Stinger 뿐만 아니라 이 강의에서 구현했던 모든 작업이 보입니다.
이제 게임에서 이것저것 시험해볼까요? Explore와 Boss 음악에 작업해둔 것이 있지만 이 프로젝트는 현재 Combat 음악을 재생하도록 설정되어 있습니다. 하지만 걱정마세요. 다음 강의에서는 Wwise가 여러분이 작업해온 다양한 음악을 전환하는 법을 배우게 됩니다.
-
SoundBank Layout으로 전환해서 SoundBank를 생성한 후 게임을 플레이해보세요.
Game Sync는 Actor-Mixer Hierarchy의 오브젝트뿐만 아니라 Interactive Music Hierarchy의 오브젝트와도 연결할 수도 있습니다. RTPC를 통해 Music Track의 볼륨을 제어하는 것과 같은 간단한 적용법이 굉장한 효과를 줄 수 있습니다. 더 자세한 정보는 Wwise-101 과정의 제 3강 을 복습하세요.
이제 드디어 진정한 상호작용 음악이 무엇인지 이제 막 보이는 단계에 접어들었군요. 게임 플레이에 따라 음악이 바뀌는 것을 이해하는 것도 중요하지만 음악적으로 멋지게 이 개념을 구현하기 위해서는 음악 통합(integration)에 대한 깊은 지식이 반드시 필요합니다. 다음 강의에서는 Wwise에서 이 개념을 구현할 수 있는 기능들을 살펴보겠습니다.