연습 - 반향을 사용하여 공간 오디오에 거리 더하기

완료됨

이전 연습에서는 방향 감각을 제공하기 위해 소리에 공간화를 추가했습니다. 이 연습에서는 반향 효과를 추가하여 소리에 거리감을 줍니다.

믹서 그룹 및 반향 효과 추가

  1. 이전에는 믹서를 추가했습니다. 믹서에는 기본적으로 Master라는 하나의 그룹이 포함됩니다. 일부 소리에만 반향 효과를 적용하고자 하는 경우 해당 소리에 대한 두 번째 그룹을 추가해 보겠습니다. 그룹을 추가하려면 오디오 믹서에서 마스터 그룹을 마우스 오른쪽 단추로 클릭하고 자식 그룹 추가를 선택합니다. 그룹에 적절한 이름을 지정합니다. 예를 들어 방 효과:

    Screenshot of Add child group.

  2. 그룹에는 고유한 효과 집합이 있습니다. 새 그룹에 대한 반향 효과를 만들려면 방 효과 믹서 마우스 오른쪽 단추로 클릭하고 아래쪽에서 효과 추가를 선택한 다음 SFX 반향을 선택합니다.

    Screenshot of Add SFX Reverb.

    오디오 용어로 확인되지 않은 원래 오디오를 건식 경로라고 하며, 반향 필터를 사용하여 필터링한 후의 오디오를 습식 경로라고 합니다. 두 경로는 모두 오디오 출력으로 전송되고, 이러한 혼합의 상대적인 강도를 습식/건식 믹스라고 합니다. 습식/건식 믹스는 거리감에 크게 영향을 줍니다.

  3. SFX 반향에는 효과 내에서 습식/건식 믹스를 조정하는 컨트롤이 포함됩니다. Microsoft Spatializer 플러그인은 건식 경로를 처리하므로 SFX 반향은 건식 경로에만 사용합니다. SFX Reverb의 검사기 창에서 다음을 수행합니다.

    1. Dry Level 속성을 가장 낮은 설정(-10000mB)으로 설정합니다.
    2. Room 속성을 가장 높은 설정(0mB)으로 설정합니다.

    Screenshot of SFX Reverb properties.

    다른 설정은 시뮬레이트된 공간의 느낌을 제어합니다. 특히, 감소 시간은 인식된 공간 크기와 관련이 있습니다.

비디오 재생에서 반향 사용

  1. Visual Studio로 돌아가 SpatializeOnOff 스크립트에서 주석 처리된 4개의 줄의 주석 처리를 제거합니다. 이제 스크립트는 다음과 같이 표시됩니다.

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.Audio;
    
    [RequireComponent(typeof(AudioSource))]
    public class SpatializeOnOff : MonoBehaviour
    {
        public GameObject ButtonTextObject;
        public AudioMixerGroup RoomEffectGroup;
        public AudioMixerGroup MasterGroup;
    
        private AudioSource m_SourceObject;
        private bool m_IsSpatialized;
        private TMPro.TextMeshPro m_TextMeshPro;
    
        public void Start()
        {
            m_SourceObject = gameObject.GetComponent<AudioSource>();
            m_TextMeshPro = ButtonTextObject.GetComponent<TMPro.TextMeshPro>();
            SetSpatialized();
        }
    
        public void SwapSpatialization()
        {
            if (m_IsSpatialized)
            {
                SetStereo();
            }
            else
            {
                SetSpatialized();
            }
        }
    
        private void SetSpatialized()
        {
            m_IsSpatialized = true;
            m_SourceObject.spatialBlend = 1;
            m_TextMeshPro.SetText("Set Stereo");
            m_SourceObject.outputAudioMixerGroup = RoomEffectGroup;
        }
    
        private void SetStereo()
        {
            m_IsSpatialized = false;
            m_SourceObject.spatialBlend = 0;
            m_TextMeshPro.SetText("Set Spatialized");
            m_SourceObject.outputAudioMixerGroup = MasterGroup;
        }
    }
    
    
  2. 이러한 줄의 주석 처리를 제거하면 SpatializeOnOff 스크립트의 검사기 창에 두 개의 속성이 추가됩니다. 이들을 QuadSpatializeOnOff 구성 요소의 검사기 창에 할당합니다.

    1. 룸 효과 그룹 속성을 새 룸 효과 믹서 그룹으로 설정합니다.
    2. 마스터 그룹 속성을 마스터 믹서 그룹으로 설정합니다.

    Screenshot of the new SpatializeOnOff fields with the correct options selected.