목차
-
강의
Event 게시와 마찬가지로 State도 컴포넌트나 스크립트를 사용하여 설정할 수 있습니다. 미리 제작된 컴포넌트는 State를 쉽고 빠르게 설정할 수 있게 해주지만 스크립트를 작성하면 제어력이 높아지기 때문에, 두 가지 방법 모두 게임 사운드 통합에 아주 중요합니다.
Wwise Unity Integration을 사용하면 미리 제작된 AkState 스크립트로 State 설정을 할 수 있습니다. AkState는 사용하기가 꽤 쉬울 뿐만 아니라 Trigger On 옵션을 사용하면 대부분의 일반적 상황에 맞는 State 변화를 매우 빠르게 설정할 수 있습니다. 다음 단계에서는 Player가 Village에 있는 MusicRegion_WwizardMagicHouse Trigger 안으로 들어갈 때 MagicZone State를 설정하는 방법을 익혀보겠습니다. 이 State가 변경되면 Master Audio Bus에 효과가 적용되어 Player가 Wwizard의 집 안으로 들어갔을 때 소리 풍경 전체에 Wwise Flanger가 적용되고 피치가 바뀝니다.
-
Unity 메뉴에서 Audiokinetic > Certification > 301 > Lesson 5로 가서 Setting States using the AkState Component를 선택하세요.
-
Hierarchy에서 Wwise > Music Zones을 펼치고 MusicRegion_WwizardMagicHouse를 선택하세요.
Wwizard House에 집의 내부 규모를 나타내는 초록색 선이 보이실 것입니다. 이 선은 MusicRegion_WwizardMagicHouse Trigger으로, 이 곳에 AkState를 연결할 것입니다.
초록색 선이 보이지 않으면 Inspector의 Mesh Collider 컴포넌트가 펼쳐졌는지 확인하세요.
-
Inspector에서 Add Component를 클릭하고 AkState를 검색하여 선택하세요.
먼저 State를 선택합시다.
-
AkState Component의 State Name 프로퍼티에서 States > MusicStates > MagicZone을 펼치고 MZ2_InsideHouse State를 선택하여 더블 클릭하세요.
Trigger On 옵션이 호출되면 AkState 컴포넌트가 지정된 State를 설정합니다. Trigger를 사용해서 Player가 Wwizard House 안으로 들어가는 것을 감지하게 할 것이기 때문에 AkTriggerEnter 조건이 필요합니다.
Trigger On 프로퍼티에서는 다양한 조건을 선택할 수 있기 때문에 단 하나의 조건만 선택하려면 먼저 Nothing을 선택한 후 새롭게 Trigger On 조건을 선택해야 합니다.
-
Trigger On 프로퍼티를 AkTriggerEnter만 남도록 설정하세요.
제 1강에서 AkTriggerEnter를 사용하여 Player가 Coin을 획득하는 것을 지정한 것과 같이, Trigger가 주시해야 하는 게임 오브젝트를 선언해야 합니다. 그러기 위해서는 AkTriggerEnter 스크립트를 MusicRegion_WwizardMagicHouse Trigger에 추가하고 Player를 여기에 할당해야 합니다.
-
Add Component를 클릭하고 AkTriggerEnter를 검색해서 선택하세요.
-
Hierarchy에서 Player 게임 오브젝트를 AkTriggerEnter의 Trigger Object 프로퍼티로 드래그하세요.
Trigger 안으로 들어가면 MagicZone State가 Inside로 설정되어 MagicZone 효과가 게임 전체 사운드에 적용됩니다. 이제 Trigger 안으로 들어갈 때 MagicZone State를 설정하도록 했지만 Trigger 밖으로 나갈 때도 State가 복구되어야 합니다. 먼저 또 다른 AkState를 추가합시다.
-
Inspector에서 Add Component를 클릭하고 AkState를 검색해서 추가하세요.
또 다른 Collider가 존재하는지 감지하기 위해서 AkTriggerExit 옵션을 사용하면 됩니다.
-
AkState Trigger On 프로퍼티를 AkTriggerExit만 남도록 설정하세요.
-
AkState의 State Name에서 MagicZone을 펼치고 MZ1_OutsideHouse State를 선택하여 더블 클릭하세요.
AkTriggerEnter가 Player를 감지하는 데에 AkTriggerEnter 스크립트만 필요한 것처럼 AkTriggerExit 스크립트도 해당 Trigger On 옵션을 사용하기 때문에 AkTriggerExit 스크립트를 추가해야 합니다.
-
Add Component를 선택하고 AkTriggerExit 컴포넌트를 검색해서 선택하세요.
-
Hierarchy에서 Player 게임 오브젝트를 AkTriggerExit의 Trigger Object 프로퍼티로 드래그하세요.
이제 게임을 실행해서 음악, 환경음, 상호작용 사운드가 어떻게 변화하는지 들어봅시다.
-
Play 모드를 시작하고 Wwizard House 안으로 들어가세요.
Wwizard House 안에서 모든 사운드가 바뀌는 것을 들어보세요. 칼을 여러 번 휘둘러보면서 모험가 캐릭터의 목소리 피치가 약간씩 변경되는 것을 들어보세요.
-
Wwizard House에서 밖으로 나가세요.
집 밖으로 나가면 소리풍경이 다시 복구되어서 Master Audio Bus에 Flanger 효과가 적용되지 않으며 공격 시 모험가 음성의 피치가 더 이상 변조되지 않습니다. 이렇게 하면 Player가 Wwizard House 안팎으로 드나들면서 소리풍경이 동적으로 변화합니다. Play를 다시 클릭하고 Play 모드를 종료하세요.
다 됐습니다! 이제 Player가 MusicRegion_WwizardMagicHouse 안팎으로 들나들 때마다 MusicZone State가 변경됩니다. 이렇게 AkState 컴포넌트는 State를 아주 빠르게 변경할 수 있게 해주며 AkTriggerEnter와 AkTriggerExit 스크립트를 함께 사용하면 반응시키고자 하는 게임 오브젝트를 정확하게 지정할 수 있습니다.
![]() | |
Unity에서는 AkSwitch 스크립트를 설정하는 과정과 동일한 방법으로 Switch를 설정할 수 있습니다. |