2 개의 강의

목차

Multi Position 모드 사용하기

Unity에서 불필요한 중복을 최소화하기 위해 사용되는 흔한 방법 중 하나는 바로 Prefab과 같은 모듈식 오브젝트를 사용하여 여러 유형의 정보를 하나로 저장하는 것입니다. Torch Prefab을 예로 들어볼까요. 이 Prefab은 Torch의 위치, 모습, 작동 방식에 대한 설명을 담고 있습니다. 이 Prefab에 AkAmbient 컴포넌트를 추가하면 Scene에서 횃불을 추가할 때마다 Torch 사운드가 반드시 들어가도록 할 수 있습니다. 그렇게 하려면 AkEvent나 AkAmbient 스크립트를 사용해야 하는데, 이 경우 Position Type이 MultiPosition 모드로 설정된 AkAmbient를 사용하는 것이 가장 좋습니다. 이 모드는 AkEvent나 AkAmbient의 Simple 모드와 마찬가지로 게임 오브젝트에서 Event를 재생하기 위해 사용되는데, MultiPosition 모드는 레벨에 추가된 AkAmbient 컴포넌트의 수와 상관 없이 Event 인스턴스가 한 개만 생기게 해줍니다.

다음 단계에서는 301_Torch Prefab에 AkAmbient 컴포넌트를 추가해봅시다. 먼저 Simple 모드로 설정된 AkAmbient를 만든 후 MultiPosition Mode로 변경해서 보이스 인스턴스를 서로 비교해봅시다.

  1. 여전히 AkAmbient Position Types Scene에 있는지 확인하세요.

    일단 Torch 사운드가 어떤지 알아보기 위해 던전에서 이 소리를 들어봅시다. 그 동안 Profiler에 연결해서 현재 게임에 있는 Torch의 개수(17)가 보이스 인스턴스와 같은지를 확인해보세요.

  2. Wwise 툴바에서 Remote…를 클릭하세요.

  3. Wwise Adventure Game (Editor)를 선택한 후 Connect를 클릭하세요.

  4. Unity에서 Play를 클릭하여 Play 모드를 시작하세요.

  5. ESC를 눌러서 게임 메뉴로 들어간 후 Dungeon으로 텔레포트하세요.

  6. 복도를 걸어가면서 횃불 소리를 들어보세요.

    Torch 사운드가 모두 Torch 게임 오브젝트에 바로 배치되어 횃불을 지나갈 때마다 볼륨이 증가하고 감소하는게 들리실 것입니다.

  7. ESC를 눌러 WAG 메뉴를 연 후 Play를 다시 클릭해서 Play 모드를 종료하세요.

  8. Wwise 메뉴의 Layouts에서 Voice Profiler를 선택하세요.

    Ambient_Torch Event만 확인할 수 있게 필터를 적용해봅시다.

  9. Performance Monitor에서 301_Torch in the Voice Inspector가 보일 때까지 시간 커서를 거꾸로 드래그하세요.

    Voice Inspector의 가장 왼쪽 패널을 살펴봅시다. 이 패널은 캡처 도중 활성화된 모든 게임 오브젝트와 연관된 보이스를 Voice Monitor에 열거합니다. Ambient_Torch Event를 사용하는 보이스의 개수가 10개 이상인 것이 보이실 것입니다. 이제 위치 지정 타입을 MultiPosition 모드로 설정한 후 변화를 비교해봅시다.

  10. Unity Hierarchy로 돌아가서 'Torch'를 검색하고 301_Torch_01 게임 오브젝트를 선택하세요.

    Hierarchy에서 파란색으로 표시되는 게임 오브젝트는 Prefab 에셋을 참조합니다. Prefab은 게임 오브젝트의 템플릿이라고 할 수 있습니다. Scene으로 Prefab을 드래그하면 Prefab과 동일한 게임 오브젝트가 생성되며 Prefab이 변경될 경우 해당 Prefab으로 만들어진 모든 게임 오브젝트에 변경 사항이 자동으로 적용됩니다. Prefab을 변경하려면 Project 뷰에서 해당 Prefab을 선택한 후 Inspector에서 변경하고자 하는 내용을 적용하세요. 하지만 Prefab으로 만든 게임 오브젝트에 변경 사항을 적용한 후 다시 Prefab으로 이 변경 사항을 내보낼 수도 있습니다. 301_Torch_01 게임 오브젝트에서 AkAmbient를 수정한 후 원본 Prefab에 적용해봅시다.

    [작은 정보]

    Prefab에 대한 더 많은 정보는 https://docs.unity3d.com/Manual/Prefabs.html을 참고해 주세요.

  11. Position Type 프로퍼티에서 Multi Position_Mode를 선택하세요.

    이제 변경 사항을 원본 Prefab으로 내보내야 합니다. 그렇게 하려면 게임 오브젝트에서 바뀐 컴포넌트를 'Apply'해야 합니다.

  12. Inspector에서 톱니바퀴 아이콘 > Modified Component를 클릭한 다음 Apply to Prefab '301_Torch'를 클릭하여 새로운 프로퍼티 변경 사항을 Prefab으로 다시 내보내겠습니다.

    이제 301_Torch_01 게임 오브젝트의 변경 사항을 301_Torch Prefab에 저장했기 때문에 나머지 모든 Torch 게임 오브젝트가 동일한 프로퍼티를 물려받게 되었습니다.

  13. Wwise에서 Reconnect를 클릭하세요.

  14. Unity에서 Play를 클릭하여 Play 모드를 시작하세요.

  15. 게임 메뉴에서 Dungeon으로 텔레포트하세요.

  16. 던전에서 복도 입구로 뛰어갔다 오면서 횃불 소리를 들어보세요.

    마치 여러 개의 AkEvent 보이스가 동시에 재생되는 것처럼 Torch 사운드가 여전히 해당 Torch 게임 오브젝트의 위치로 지정된 것이 들리실 것입니다.

  17. ESC를 눌러 WAG 메뉴를 연 후 Play를 다시 클릭해서 Play 모드를 종료하세요.

Wwise의 Voice Inspector로 다시 돌아가서 가장 왼쪽에 있는 패널을 보면, 오디오가 동등한 수준으로 출력됨에도 불구하고 수많은 Event 인스턴스가 1로 감소된 것이 보입니다. Voice Inspector의 가장 오른쪽 패널에는 각 횃불의 Distance Attenuation이 표시됩니다.

이제부터는 Dungeon에 횃불을 추가할 경우 Scene에 추가한 모든 Prefab에서 MultiPosition Mode를 사용하기 때문에 인스턴스가 1로 유지됩니다. 이렇게 MultiPosition 모드는 추가적인 오디오 성능을 사용하지 않고 위치나 이동과 상관없이 오브젝트에 사운드를 삽입할 수 있다는 점에서 레벨 디자이너와 함께 작업할 때 정말 이상적입니다.

[참고]

MultiPosition 모드는 한 인스턴스만 사용하기 때문에 각 사운드 위치가 동일한 보이스를 사용한다는 점을 기억하세요. 그렇기 때문에 Randomizer로 소리의 위치에 따른 다양함을 줄 수는 없습니다.