이 튜토리얼은 Spatial Audio에서 Room(공간)과 Portal(포털)을 사용하는 법을 보여줍니다. 다음 섹션은 튜토리얼의 각 단계를 자세하게 보여줍니다.
A. Wwise 프로젝트
For this tutorial, we will need to add Reverb Effects and modify Diffraction curves to hear diffraction through a portal when loosing sight of an emitter.
- 공간 프리셋을 사용하여 두 개의 Auxiliary Bus를 추가하세요.
- Master Audio Bus를 우클릭하고 New Child > Presets으로 가서 Room Auxiliary Bus를 선택하세요
- Effects 탭 아래에서 각 공간에 대해 효과를 각각 선택하세요. 예: 작은 공간에는 Rooms/Room_Medium, 큰 공간에는 Cathedrals/Medium 사용.
공간에 대한 Auxiliary Bus Property Editor Effects 탭
- Spatial Audio 튜토리얼 준비 에 추가된 사운드를 변경하세요
- Positioning 탭에서 회절과 전달이 활성화되어 있는지 확인하세요.
Sound Property Editor의 Positioning 탭에서 Diffraction과 Transmission을 활성화하세요
- Navigate to Project > Project Settings > Environmental Curves
- Change the Diffraction curves to your liking. For example, this is what is used in the Wwise Unity Demo scene project:
Curve | Point 1 | Point 2 | Curve Type |
X | Y | X | Y |
Diffraction Volume | 0 | 0 | 100 | -3 | Linear |
Diffraction LPF | 0 | 0 | 100 | 60 | Linear |
Transmission Volume | 0 | 0 | 100 | -12 | Sine (Constant Power Fade In) |
Transmission LPF | 0 | 0 | 100 | 75 | Sine (Constant Power Fade Out) |
- Here's how the Diffraction Volume curve looks like:
Environmental Curves in the Project Settings
- 프로젝트를 저장하세요.
- Unity 프로젝트에서 Wwise Picker: Windows > Wwise Picker 안에 있는 뱅크를 새로 고침하세요
- SoundBank를 생성하세요
Wwise Picker
B. Room (공간)
씬에서 공간의 위치를 지정해야 합니다. 그렇게 하려면 AkRoom 컴포넌트를 사용해야 합니다.
- Wwise Unity Demo Scene의 튜토리얼 씬에서는 큐브 메쉬를 추가하여 건물 안에 있는 각 공간의 실내를 표시했습니다. 표면 리플렉터 튜토리얼 을 끝내고 이 튜토리얼을 진행할 경우 AkSurfaceReflector 컴포넌트가 있는 GameObject를 사용할 수 있습니다.
- GameObject > 3D Object > Cube를 통해 큐브를 추가하세요.
- Mesh Renderer 컴포넌트를 제거하세요.
- Box Collider 컴포넌트에서 Is Trigger를 선택하세요.
- AkRoom 컴포넌트를 추가하세요.
- Reverb Aux Bus에 사용할 해당 Auxiliary Bus를 선택하세요.
- 공간에 Rigidbody 컴포넌트를 추가하라는 경고 메시지가 뜹니다. AkRoom 컴포넌트와 AkRoomAwareObject 컴포넌트 사이에 상호작용이 활성화된 것이 보입니다. 다음 단계는 이러한 컴포넌트를 추가하도록 도와줍니다.
AkRoom 컴포넌트
- 공간을 사용하기 때문에 AkRoomAwareObject 컴포넌트를 추가하여 모든 리스너와 방사체에 'Room Aware'가 작동되도록 해야 합니다.
- AkRoomAwareObject 컴포넌트는 이미 Spatial Audio 리스너에 자동으로 추가되어 있습니다. 이 컴포넌트가 활성화되었는지 확인하세요.
AkRoomAwareObject 컴포넌트
- 위의 이미지에서 보이는 것처럼 두 경고 메시지가 뜹니다.
- 첫 번째 메시지는 Rigidbody 컴포넌트를 공간이나 현재 오브젝트에 배치해야 한다고 말합니다. Ridgidbody를 공간에 아직 추가하지 않았다면 Add Rigidbody를 클릭하세요.
- 두 번째 경고 메시지는 콜라이더에 관한 것입니다. 모든 AkRoomAwareObject는 AkRoom 컴포넌트와 상호작용하기 위해 콜라이더를 필요로 합니다.
C. Portal (포털)
리스너가 이미터와 다른 공간에 있을 경우 '공간의 벽'에 의해 소리가 막힙니다. 이 벽에 전달 손실값을 설정할 수 있습니다 (/ref pg_obs_occ 참고). 그렇지 않을 경우 포털을 추가해서 원하는 열린 공간에서 소리가 직접 전달되도록 해야 합니다. SpatialAudioTutorial 씬에는 포털을 배치할 수 있는 두 곳의 열린 공간이 있습니다. 한 곳은 실외 영역과 작은 Room 사이이며 다른 한 곳은 두 Room 사이입니다.
- 두 개의 AkRoomPortal 컴포넌트를 생성하세요 (GameObject > Wwise > Room Portal). 그리고 이 컴포넌트를 열린 부분의 주변에 배치하세요.
- Scene 창에서 Portal은 노란색 끈으로 둘러져 표현되며 크기와 배치되어야 할 방향을 표시합니다. 빨간선은 Portal의 앞뒤 사이의 구별을 보여줍니다. 앞면은 Portal의 z 축과 같은 방향입니다.
Scene 창에서 AkRoomPortal
- AkRoomPortal 컴포넌트에서
- Open On을 Start로 지정하고
- Close On을 Nothing으로 지정하세요.
- Back Room과 Front Room이 알맞은 AkRoom 컴포넌트를 표시하는지 확인하세요.
- 작은 공간과 실외 사이에 있는 포털의 AkRoomPortal 컴포넌트가 다음과 같이 표시되어야 합니다.
AkRoomPortal 컴포넌트
D. 셋업 검토하기
- 씬에 그려진 소리 전달 경로를 확인하려면 방사체에 AkSpatialAudioDebugDraw 컴포넌트를 추가하세요.
- Draw Diffraction Paths 옵션을 선택하세요.
AkSpatialAudioDebugDraw 컴포넌트
- 게임을 시작하고 Wwise에 연결하세요.
- 두 공간 중 하나에서 버튼을 눌러 리버브를 들어보세요.
- 보이스 그래프가 다음과 같이 보여야 합니다:
Voice Graph와 Room
- 공간 밖으로 나가서 다른 공간에 있는 재생 중인 방사체의 시야 안팎으로 움직이면서 사운드에 적용되는 회절을 들어보세요. 리스너와 포털 간의 각도에 따라 회절의 정도가 달라지는 것이 들릴 것입니다.
- Unity Scene 창에서 포털에서 오는 사운드를 나타내는 경로가 보입니다. 사운드에 적용되는 회절의 백분율은 회절 지점에 표시됩니다.
포털을 통한 회절 경로의 Top 뷰
- Authoring의 Game Object Profiler 레이아웃을 여세요 (단축키 F12)
- Game Object 3D Viewer Settings에서 Diffraction Paths가 활성화되었는지 확인하세요.
Portal 회절 경로에 대한 Game Object 3D Viewer Settings
- Game Object 3D Viewer에서 다음 내용을 확인할 수 있습니다:
- 공간과 포털의 시각화.
- 포털을 통과하여 이미터에서 리스너까지 가는 회절 경로. 회절율은 각 모서리에 표시됩니다. 가상 근원지의 흔적이 초록색으로 표시되어 실제로 사운드가 들려오는 곳을 보여줍니다.
- 전달 손실률과 함께 공간의 벽을 통과하는 전달 경로.
- 공간의 변조된 사운드를 표시하는 집 모양의 아이콘. 이 이미지에서는 포털으로부터 나오는 사운드를 나타내는 한 아이콘과 공간의 벽을 통과하는 사운드를 나타내는 한 아이콘이 있습니다.
- 각 이미터/리스너는 이름 아래 해당 공간을 표시해 줍니다. 리스너가 공간 안에 있지 않기 때문에 기본적으로 'Outdoors' 공간에 배치되었습니다.
- 해당 리스너를 공간으로 옮기고 Game Object 3D Viewer에서 리스너 게임 오브젝트 아래의 공간 이름이 변경되는 것을 보세요.
Game Object 3D Viewer에서 포털을 통한 회절 경로
| 참고: | 공간 밖에 리버브를 추가하려면 전체 영역에 걸쳐서 Room을 추가하세요. 이 Room의 우선 순위가 씬에 있는 다른 AkRoom 컴포넌트보다 낮은지 확인하세요. |
E. 포털과 리버브
Portal을 통해 방사되는 사운드도 리스너가 있는 Room에서의 리버브를 사용할 수 있습니다. 저희는 이것을 Room Coupling이라고 부릅니다.
- 공간의 Auxiliary Bus Property Editor를 열고 General Settings 탭에서 Use game-defined auxiliary sends가 선택되어 있는지 확인하세요. 이 옵션은 공간의 리버브를 씬의 다른 리버브로 전송합니다.
- 작은 공간 방사체를 재생하고 큰 공간으로 이동하면 작은 공간의 리버브가 큰 공간의 리버브로 전달되는 것을 볼 수 있습니다.
Voice Graph에 표시된 Room Coupling
F. 공간음
경우에 따라 에어컨 작동음과 같이 공간에 특정한 환경음이 있습니다. 이 소리를 재현하기 위해서 Spatial Audio Room 게임 오브젝트에서 이벤트를 전송할 수 있습니다. 리스너가 공간 안에 있을 경우 사운드가 리스너의 위치로 배치됩니다. 리스너가 다른 공간에 있을 경우 리스너의 위치와 연결되는 포털로부터 공간음을 듣게 됩니다.
- Wwise 프로젝트에서 다음을 실행하세요.
- 공간음에 사용할 새로운 Sound SFX를 만드세요.
- 공간음을 공간 잔향에 전송할 수 있도록 게임에서 정의한 보조 전송을 반드시 활성화하세요.
- Sound SFX를 우클릭한 후 New Event > Play를 선택해서 공간음이 있는 이벤트를 재생하세요.
- 프로젝트를 저장하세요.
- Unity에서 다음을 실행하세요.
- 해당 이벤트를 한 공간의 AkRoom 컴포넌트의 Room Tone Event 매개 변수에 추가하세요.
- Aux Send Level을 조정하여 소리의 일부를 공간의 잔향으로 보내세요.
- 이벤트가 트리거되는 방식을 선택할 수 있습니다.
활성화된 Room으로 Spatial Audio Volume의 AkEvent 섹션.
- SoundBank를 생성하세요.
- 씬을 시작하고 Wwise Authoring에 연결하세요.
- 공간음이 들리는지 확인하세요.
- Advanced Profiler 뷰에서 이벤트가 재생되는 것이 보입니다.
리스너가 공간음이 있는 공간에 있을 경우의 Advanced Profiler 뷰
- 3D Game Object Viewer에서 리스너가 움직임에 따라 공간 게임 오브젝트를 확인할 수 있습니다.
- 리스너가 공간 안에 있을 경우 해당 공간이 리스너의 위치에서 공간음을 방사합니다. 공간 게임 오브젝트가 리스너 게임 오브젝트를 따라 이동하는 것을 볼 수 있습니다.
- 리스너가 다른 공간에 있을 경우 공간 게임 오브젝트가 포털에 배치되며 공간 게임 오브젝트와 리스너 게임 오브젝트 사이의 경로가 표시됩니다.
Game Object 3D Viewer에서 공간 게임 오브젝트를 보세요
- 참고
-