menu
 

2 개의 강의

목차

Attenuation Sphere

Ambient_Windmill Event가 AkAmbient 컴포넌트로서 Scene에 추가되었지만 고쳐야 할 것이 하나 있습니다. 바로 Windmill의 거리에 따른 감쇠(attenuation)입니다. 플레이어의 시작 위치에서는 Windmill 소리가 아예 들리지 않습니다. 그 이유는 리스너 프로브 게임 오브젝트(즉, Player)가 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 게임 오브젝트를 선택하세요.

    새로운 Wwise 프로젝트를 만들 때 Attenuation ShareSet의 Max Distance 값은 SoundBank의 메타데이터에 포함되지 않습니다. 반면 WAG에서는 메타데이터에 포함됩니다. 진행하기 전에 이를 확인해봅시다.

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

  4. SoundBanks 탭을 선택하세요.

  5. SoundBanks 탭에서 Max Attenuation이 활성화되어 있는지 확인하세요.

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

    [작은 정보]

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

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

  7. 'Windmill'을 검색하고 Ambient_Windmill Blend Container를 선택하세요.

  8. Positioning 탭의 Attenuation 섹션에서 Edit을 클릭하세요.

    이 값을 무엇으로 설정해야 할까요? 한 가지 방법은 Unity와 Wwise 사이를 왔다갔다하면서 값을 늘려서 결과를 확인해 보는 것입니다. 보다 정확한 접근 방식은 값을 임시로 설정하고 Unity에서 Sphere Collider의 크기를 원하는 Attenuation 영역 크기만큼 조정하는 것 입니다. 그리고 Wwise로 돌아가서 Sphere Collider의 반경과 일치하도록 Max Distance 값을 업데이트하는 방법입니다.

  9. Attenuation Editor의 Max Distance 값을 35로 설정하세요.

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

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

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

    이제 Scene 뷰에서 Attenuation Sphere의 끝에 초록색 선이 보이실 것입니다. 게임 오브젝트의 크기를 변경하지 않을 경우 (크기 증가/감소) Sphere Collider의 Radius는 Attenuation의 Max distance 프로퍼티값을 그대로 받습니다.

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

    Current_Event_Only를 선택하면 Distance Attenuation의 Max Distance 값을 나타내는 빨간색의 구체가 씬에 표시됩니다.

    Main Camera가 위치한 플레이어의 시작 위치에 구가 닿지 않아서 Windmill이 아예 들리지 않는 것이 보일 것입니다.

    Sphere Collider Radius를 증가시키면 Player에 도달하기 위해 필요한 Attenuation 거리를 볼 수 있습니다.

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

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

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

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

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

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

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

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

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

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


이 페이지가 도움이 되었나요?