음향/Wwise

201-7. 전환 효과 2부

펭더 2022. 4. 22. 19:17

이 글은 AudiKineic의 교육자료를 참고해서 작성했다.


07. 전환 효과 2부.

전환 효과 1부에선 Music Switch Container 안에서 전환 효과가 작동하는 법을 배웠다. 

이것으로도 많은 일을 할 수 있지만, 좀 더 복잡한 전환 효과를 구현하는 방법도 있다. 


매끄러운 전환 결정. 

Cube는 캐릭터 주변의 적이 캐릭터를 인식한 여부에 따라 음악이 바뀌어야 한다. 

여기서 문제는 이 전환이 아주 갑작스럽고, 짧은 시간 동안 많이 반복될 수 있다는 것이다. 

따라서 전환에 걸리는 시간을 조절해줄 필요가 있다. 

이를 위해 Game Parameter가 가진 기능 중 하나인 Slew Rate를 사용해야 하며, 

Game Parameter를 Switch Group으로 변환해야한다. 

아주 복잡해 보이는 방식이지만 의외로 간단하다. 

전환효과의 구조.
Event > RTPC > Switch Group > Music Swtich Container

위와 같은 순서로 구조가 짜인다. 

즉, 게임엔진이 전송하는 Event는 RTPC의 값을 변환하고, RTPC는 Swtich Grop를 컨트롤하며 Switch Group에 따라 Music Swtich Container가 선택되는 것이다. 

신호의 흐름은 Event에서 Music Switch Container로 이어지지만, 

Wwise에서의 작업은 역순으로 하는것이 편하다. 


시간에 따라 다른 Music Segment로 전환하기.

Cube의 경우 Explore와 combat, 두 음악의 구조가 비슷하게 만들어져 있다. 

Combat음악은 Explore 음악보다 강렬하지만 코드, 진행, 형식이 서로 동일하며 악기 구성 또한 비슷하다. 

즉, 이 두 음악은 탐험과 전투 사이에 전환이 일어날때 두 음악을 크로스페이드 하면서 진행 구조와 코드 진행에서 동일한 위치를 유지할 수 있도록 설계되었다.

이렇게 하면 완전히 새로운 음악이 시작되는 것보다 자연스럽게 느껴진다. 

이러한 방법은 Transtion 규칙을 추가함으로써 구현할수있다. 

1. Music Switch Container의 Transitons 탭 클릭 - Add Transition버튼 클릭
2. A음악과 B음악 간 전환규칙 추가. ( 즉시 전환이 이루어지도록 하며 Fade Out을 설정하는 것이 더 자연스럽다)
3. Sync to 속성을 Same Time as Playing Segment로 변경.
    (이는 Music Segment가 재생되던 시점과 동일한 시점에서 부터 재생이 시작되도록 설정하는 것이다. )

위 과정은 전환효과 1부에서 배운 전환규칙과 다른 점이 없다. 

하지만 'Same time as Playing Segment' 옵션이 다른 점이다. 

이는 기존에 재생되던 'Music Segment가 재생된지 얼마큼의 시간이 흘렀는지'인식하여 후에 재생할 Music Segment도 같은 시점부터 재생하도록 하는 옵션이다. 

이렇게 함으로써 서로 다른 Music Segment를 전환할때 동일한 시점으로 전환되도록 설정할 수 있다. 

여기서 유의할 점은 Sync to Same Time 기능은 오브젝트가 재생을 시작한 후 경과한 시간만 고려한다는 것이다.

즉, 어떤 Music Segment가 재생되는지는 고려하지 않는다. 


재생 목록의 특정 아이템으로 전환시키기. 

위 방식으로 전환규칙을 설정하더라도 문제가 발생할수있다. 

Combat과 Explore음악 모두 Bridge, TransToBridge Music Segment를 가지고 있기 때문이다. 

이 때문에 Bridge Music Segment에 있을 때 음악이 전환 될 경우 Sync to Same Time 기능을 사용할 수 없게 된다. 

위에서 언급한것 처럼 Sync to Same Time 기능은 오브젝트가 재생을 시작한 후 경과한 시간만을 고려한다. 

따라서 Explore-Bridge Music Segment의 세 번째 마디에서 Combat-A Music Segment의 세 번째 마디로 즉시 전환되는 일이 발생할 수 있다. 

이 경우 두 음악의 코드 진행이 서로 달라서 부자연스러워진다. 

이를 해결하기 위해서는 추가 Transition 규칙을 만들어서 전환 효과가 일어날 때 특정 음악 섹션이 재생되고 있을 경우 미리 결정된 알맞은 음악을 재생하도록 해야한다. 

1. Combat-Bridge 에서 Explore로의 전환 규칙 추가. 
2. Exit Source at 속성과 Fade설정
3. Sync to 속성을 Same time as Playing Segment로 설정.
4. Jump to 속성을 Specific Playlist Item으로 변경. 
5. Jump to 속성의 우측 [...]버튼을 클릭 - 비슷한 구조를 가진 Music Segment를 선택.

위 과정에 특별히 추가된 점은 Jmp to 속성을 지정한 것이다. 

이를 지정함으로써 특정 Music Segment로 전환이 가능해진다. 


음악에 사용할 맞춤 Switch Group만들기. 

일반적으로 State를 사용해서 재생할 음악을 결정한다. 

하지만 특정 State의 하위 계층으로써 Swtich를 사용하는 방법도 있다. 

이렇게 하면 특정 State를 공유하는 상황에서도 Switch에 따라 음악이 바뀌도록 설정할 수 있다. 

1. 새로운 Switch Group 추가 - 알맞은 Switch 추가. 

위 과정처럼 일반적인 Switch Grup추가 방식과 동일한 방법으로 음악에 사용할 Switch Group을 생성할 수 있다. 


Swtich Group에 Music Segment 할당하기. 

1. Music Swtich Container 선택. 
2. Music Switch Container Association Editor에서 [>>] 버튼 클릭 - Swtich Group추가. 
3. Project Explorer에서 알맞은 음악을 Music Switch Container Association Editor의 Switch 칸으로 드래그.

위 과정을 통해 Switch Group에 따라 Music Segment가 할당되도록 설정할 수 있다. 


RTPC 값으로 Switch 제어하기. 

Event로 State를 설정하도록 한것처럼

Event가 Switch를 제어하도록 할 수 있다. 

Event가 직접적으로 Switch를 제어하도록 설정할 수도 있지만, 

Slew Rate 기능을 사용하려면 직접적으로 연결하면 안 된다. 

Slew Rate 기능은 RTPC의 기능이기 때문이다. 

1. 알맞은 Game Parameter생성. 
2. Range값을 설정. (이때, 이미 이 값을 참조하고 있는 오브젝트의 비율을 어떻게 변경할지 묻는 경고 메시지가 뜸.)
3. Default 값을 설정. 
4. Inerpolation Mode를 Slew Rate로 변경. 
5. Attack과 Release시간 설정. 
6. Switch Group을 선택 - Use Game Parameter 체크 상자 클릭 - [>>] 버튼 클릭 후 알맞은 Game Parameter선택. 
7. 값에 따라 Switch값이 바뀌도록 그래프 수정.

위 과정을 통해 RTPC값이 Switch를 제어하도록 설정하고, 

Slew Rate기능을 통해 Switch 간 전환시간을 설정할 수 있다. 


적의 인식 여부에 사용할 Event 만들기.

1. 새로운 Event 생성.
2. Add - Game Parameter - Set Game Parameter 선택. 
3. Target열 지정. 
4. Event Editor 우측 Game Parameter Value 속성 값 설정. 

위 과정을 통해 Event가 RTPC값을 설정하도록 할수있다. 

경우에 따라 RTPC에 적용된 Slew Rate기능을 무시하도록 설정해야 할 때가 있는데, 

이 경우

Event Editor 우측 Bypass Game Parameter Interpolation 체크 상자에 체크.

위 과정을 통해 RTPC에 적용된 Slew Rate기능을 무시하도록 설정할 수 있다. 


Object Pro Filer에서 RTPC 값 확인하기.

1. Layouts > Game Object Profiler
2. Game Sync Monitior 우측 상단 View Settings 아이콘 클릭. 
3. Inactive Game Syncs와 Voice Inspector Data를 선택. 
4. SoundCaster 열기.
5. RTPC영역에서 RTPC우클릭 - Profiler > Set as Object Filter 선택. 
6. Start Capture 버튼 클릭

위 과정을 통해 RTPC값의 변화를 시각적으로 확인할 수 있다. 


전환 세그먼트 사용하기.

https://www.audiokinetic.com/ko/courses/wwise201/?source=wwise201&id=using_transition_segments_configuring_transition_segment#read

위 링크 참조