6 개의 강의

목차

Aux Environment 만들기

Trigger에 AkEnvironment 스크립트를 추가하는 방법을 배우긴 했지만 Aux Environment를 처음부터 직접 만들려면 몇 가지 작업을 더 실행해야 합니다. Is Trigger가 설정된 Collider뿐만 아니라 Rigidbody 컴포넌트와 AkGameObj 스크립트가 필요하죠.

Unity가 게임 오브젝트의 위치를 관리할 때 AkGameObj 는 이 위치와, 연관된 Game Sync 및 Environment 값을 Wwise에 보고합니다.

AkEvent나 AkAmbient 컴포넌트를 추가할 경우, 혹은 Play 모드에서 사운드를 게시할 경우 AkGameObj 컴포넌트가 자동으로 추가됩니다. 하지만 보조 버스 할당과 같은 환경 정보를 Wwise에 전송하려면 AkGameObj가 환경을 인식하도록 설정해야 합니다.

Rigidbody는 오브젝트에 물리적인 운동을 적용하는 컴포넌트입니다.

여기서 물리적인 운동이란 중력이나 특정 방향으로의 속도 같은 개념을 포함하며, 모든 운동은 Unity의 물리 엔진에서 종합적으로 계산되기 때문에 Unity는 이 오브젝트가 서로 교차하거나 (Trigger) 충돌하는지 (Collider) 인식할 수 있습니다. Rigibody는 같은 게임 오브젝트에 붙은 Collider 컴포넌트를 사용해서 교차나 충돌을 계산합니다. Rigidbody는 두 게임 오브젝트 중 하나에만 연결하면 됩니다.

[참고]

Scene에 추가되는 Rigidbody의 수를 최소화하려면 Rigidbody를 AkEnvironment 게임 오브젝트에 추가하는 것이 좋습니다.

다음 단계에서는 Woodlands에 새로운 Trigger를 만들고 AkEnvironment 스크립트와 함께 나머지 Rigidbody와 AkGameObj를 추가해봅시다.

  1. Unity에서 Audiokinetic > Certification > 301 > Lesson 6으로 가서 Creating an Aux Environment를 선택하세요.

  2. Unity 메뉴에서 GameObject > 3D Object로 간 후 Cube를 선택하세요.

    Cube 모양이 Hierarchy에서 인스턴스화(instantiate)됩니다.

  3. Cube 게임 오브젝트를 우클릭하고 Rename을 선택한 후 Woodlands로 바꾸겠습니다.

  4. Hierarchy에서 Woodlands 게임 오브젝트를 AUX Environments 게임 오브젝트로 드래그하세요.

    먼저 Trigger의 모양을 Woodlands에 맞춰봅시다. Woodlands 지역은 'Road to Woodlands'와 'Road to Pine Forest'로 구성되어 있습니다. 그 두 부분은 자체적인 음향을 가지는 것이 좋기 때문에 Woodlands의 중앙에 Trigger를 만들어서 Waterfall과 Evil Spit Plant 등을 감싸기만 하면 됩니다.

  5. Move 도구, Rotate 도구, Scale 도구를 사용해서 Woodlands Trigger가 Woodlands 지역의 가장 중심에 들어 맞도록 조정하세요.

    이제 다양한 스크립트를 추가하고 필요 없는 것을 선택 해제해서 게임 오브젝트를 구성해봅시다. 먼저 게임플레이 도중 플레이어가 이 Trigger를 볼 필요가 없기 때문에 Mesh Renderer를 비활성화해서 보이지 않게 만들어봅시다.

  6. Inspector에서 Mesh Renderer 컴포넌트를 비활성화하세요.

    Box Collider가 현재 Trigger로 설정되지 않았기 때문에 다른 Collider가 이 안으로 들어갈 수 없습니다.

  7. Box Collider에서 Is Trigger를 활성화하세요.

    그런 다음 AkEnvironment 스크립트를 게임 오브젝트에 추가하세요.

  8. Add Component를 클릭하고 AkEnvironment를 검색해서 선택하세요.

    간편하게도 AkEnvironment가 Rigidbody가 없음을 경고해주며 추가할 수 있는 버튼을 제공해줍니다.

    Wwise Adventure Game에서 최적의 설정은 AkEnvironment에 Rigidbody를 배치하는 것입니다. 그렇게 하면 씬에 필요한 Rigidbody의 수가 최소화되어 물리 계산과 CPU 사용량을 절약할 수 있습니다.

  9. AkEnvironment에서 Add Rigidbody를 클릭하세요.

    이제 Add Rigidbody 버튼과 메시지가 사라지며 Rigidbody가 아래에 추가되었습니다.

    이전 섹션에서 보조 버스를 할당했을 때와 같은 방법으로 AkEnvironment 컴포넌트에 보조 버스를 지정해야 합니다.

  10. Aux Name 프로퍼티에서 Woodlands 보조 버스를 선택하고 OK를 클릭하세요.

    마지막으로 Player 게임 오브젝트를 제외한 Event를 게시하는 데에 사용되는 모든 게임 오브젝트에 AkGameObj 컴포넌트가 이미 주어져 있습니다. 따라서 Player에 AkGameObj를 추가해서 플레이어가 게시하는 모든 사운드가 Aux Environment에 등록되도록 해야 합니다.

  11. Hierarchy에서 Player 게임 오브젝트를 선택하세요.

  12. Inspector에서 Add Component를 클릭한 후 AkGameObj를 검색해서 선택하세요.

    이제 AkGameObj 컴포넌트가 Player 게임 오브젝트에 있으며 Environment Aware 옵션이 활성화된 것이 보입니다.

    다 됐습니다! 이제 완전하게 작동하는 Aux Environment를 가진 Trigger가 완성되었습니다. Profiler를 사용해서 구현 사항을 검토해봅시다.

  13. Wwise에서 Layouts으로 간 후 Profiler를 선택하세요.

  14. Advanced Profiler의 Voices Graph Filter에서 Master-Mixer Hierarchy > Default Work Unit > Master Audio Bus > World > AUX > Region_Woodlands를 펼치고 Woodlands 보조 버스를 선택한 후 OK를 클릭하세요.

  15. 게임에 Remote Connect한 후 씬을 Play하고 Woodlands로 뛰어가보세요.

    Wwise에서 Advanced Profiler를 살펴봅시다. Ambient_Waterfall과 Ambient_Region_Woodlands Event가 Woodlands 보조 버스를 사용하며, Player_WeaponSwing나 EvilSpitPlant_ShootBullet Event와 같이 트리거 안에서 인스턴스화된 모든 사운드도 마찬가지로 보조 버스를 사용하는 것이 보입니다. 이제 Play 모드를 종료하세요.