2 개의 강의

목차

Attenuation Sphere

Ambient_Windmill Event가 AkAmbient 컴포넌트로서 Scene에 추가되었지만 고쳐야 할 것이 하나 있습니다. 바로 Windmill의 거리에 따른 감쇠(attenuation)입니다. 플레이어의 시작 위치에서는 Windmill 소리가 아예 들리지 않습니다. 그 이유는 리스너 게임 오브젝트(Main Camera)가 Ambient_Windmill Blend Container의 최대 감쇠 반경 밖에 있기 때문입니다.

[작은 정보]

Wwise Unity Integration의 리스너(AkAudioListener)에 대한 더 자세한 정보는 제 9강을 참고해주세요.

그렇다면 Ambient_Windmill의 Attenuation ShareSet에서 Max Distance를 늘려봅시다. 하지만 얼마만큼 늘려야 할까요? 어떻게 하면 플레이어가 시작 위치에서 사운드를 꼭 들을 수 있게 할 수 있을까요? 한 가지 방법은 Attenuation Sphere를 사용하는 것입니다.

AkAmbient 컴포넌트에서 Attenuation Sphere를 활성화하면 게임 오브젝트의 중심으로부터 Wwise에서 설정한 최대 감쇠 거리만큼을 반지름으로 하는 구체를 표시합니다. 이 구를 통해 Attenuation Editor에서 설정된 Max Distance를 눈으로 확인할 수 있기 때문에 게임 안에 있는 오브젝트와 비교하여 거리를 확인할 수 있습니다.

다음 단계에서 Wwise Adventure Game에서 Attenuation Sphere를 활성화하고 설정해봅시다.

  1. Unity 메뉴에서 Audiokinetic > Certification > 301 > Lesson 2로 이동하여 Attenuation Spheres를 선택하세요.

  2. Hierarchy에서 L2_2B - Village Environment Scene으로 이동하여 Wwise를 펼친 다음 Windmill 게임 오브젝트를 선택하세요.

  3. 연결된 AkAmbient 컴포넌트에서 Show Attenuation Sphere 프로퍼티를 Current_Event_Only로 설정하세요.

    Current_Event_Only 옵션을 선택하면 Scene 뷰에서 Attenuation을 나타내는 빨간색 구를 볼 수 있어야 하는데 보이지 않을 것입니다. 기본적으로 Attenuation ShareSet에 있는 Max Distance 값은 SoundBank에 메타데이터로 들어가지 않습니다. 그렇기 때문에 구를 생성하려면 SoundBank Settings로 다시 가야 합니다.

  4. Wwise에서 Project > Project Settings를 선택하세요.

  5. SoundBanks 탭을 선택하세요.

  6. SoundBanks 탭에서 Max Attenuation을 활성화하세요.

    이제 Wwise Unity Integration이 모든 Attenuation ShareSet에서의 모든 Max Distance를 가져와서 Attenuation Sphere의 크기를 결정하는 데에 사용합니다.

    [작은 정보]

    AkWwiseProjectInfo.GetData().GetEventMaxAttenuation() 함수를 호출하면 여러분의 사용자 정의 스크립트에서 Max Distance를 가져올 수 있습니다.

  7. Project Settings에서 OK를 클릭하세요.

    Wwise에서 SoundBank를 생성하는 법을 이미 알고 계시겠지만 Unity의 Wwise Picker에서도 SoundBank를 생성하실 수 있습니다.

  8. Unity에서 Wwise Picker로 가서 Generate SoundBanks를 클릭하세요.

    Generate SoundBanks를 클릭하면 모든 플랫폼과 언어의 모든 SoundBank가 재생됩니다. 이 과정은 처리하는 데에 시간이 조금 걸릴 수 있습니다. 이제 선택한 Windmill 게임 오브젝트에 구가 나타난 것을 보실 수 있습니다.

  9. Hand 도구('Q')를 사용해서 WindmillMain Camera를 보면서 Scene 뷰의 위치를 조정하세요.

    Main Camera가 위치한 플레이어의 시작 위치에 구가 닿지 않아서 Windmill이 아예 들리지 않는 것이 보이실 것입니다. Wwise로 가서 Attenuation을 조정해봅시다.

  10. Wwise에서 'Windmill'을 검색하고 Ambient_Windmill Blend Container를 선택하세요.

  11. Positioning 탭에서 Edit를 클릭하세요.

    Attenuation Editor의 Max distance 입력란에 보면 현재 Attenuation 거리는 35입니다. 이 값은 Unity에서 구의 크기와 같습니다.

    이 값을 무엇으로 설정해야 할까요? 한 가지 방법은 Unity와 Wwise 사이를 왔다갔다하면서 값을 늘려서 결과를 확인해 보는 것입니다. 더 정확한 방법은 Sphere Collider의 반지름을 일시적으로 사용하는 것입니다.

  12. Unity Inspector에서 Sphere Collider로 이동한 후 Radius35로 설정하세요.

    이제 Scene 뷰에서 Attenuation Sphere의 끝에 초록색 선이 보이실 것입니다. 게임 오브젝트의 크기를 변경하지 않을 경우 (크기 증가/감소) Sphere Collider의 Radius는 Attenuation의 Max distance 프로퍼티값을 그대로 받습니다. Sphere Collider Radius를 증가시키면 Player에 도달하기 위해 필요한 Attenuation 거리를 볼 수 있습니다.

  13. Radius 프로퍼티를 클릭하여 초록색 Sphere Trigger가 Player에게 도달할 때까지 오른쪽으로 드래그하세요.

    알맞은 값을 찾았다면 이 값을 Attenuation ShareSet의 Max distance 입력란에 사용할 수 있습니다.

  14. Wwise의 Attenuation Editor로 가서 Max distance를 새로운 Sphere Collider Radius의 값(반올림)으로 설정하세요.

    측정을 위해 Sphere Collider를 일시적으로 사용했으니 이제 값을 다시 1로 되돌립시다.

  15. Unity Inspector에서 Sphere Collider를 찾아서 Radius 프로퍼티값을 1로 설정하세요.

    마지막으로 SoundBank에서 최근에 변경된 내용을 가져와야 합니다.

  16. Wwise Picker에서 Generate SoundBanks를 클릭하세요.

    Unity의 Wwise Picker에서 SoundBank를 생성하면 Wwise Project의 최신 내용을 반영하여 Unity 프로젝트를 업데이트합니다.

Attenuation Sphere의 크기가 증가해서 이제 Player의 시작 위치에 닿는 것이 보이실 것입니다.

이런 식으로 Unity에서 감쇠가 얼마나 멀리 도달할지 정확하게 평가할 수 있습니다.