Unity Manual – 오디오 소스 (Audio Source)

오디오 소스 (Audio Source)

https://docs.unity3d.com/kr/2023.2/Manual/class-AudioSource.html


오디오 소스(Audio Source) 는 씬에서 오디오 클립을 재생합니다.

이 클립은 오디오 리스너 또는 오디오 믹서를 통해 재생 가능합니다.

오디오 소스는 모든 종류의 오디오 클립을 재생할 수 있으며, 2D나 3D로, 또는 혼합(스페이셜 블렌드)하여 재생하도록 설정할 수 있습니다.

오디오는 여러 스피커에 분배되거나(스테레오–7.1)(_ 스프레드), 3D와 2D 사이에서 자연스럽게 모핑됩니다( 스페이셜 블렌드_).

감쇠 커브를 통해 거리에 따라 제어할 수 있습니다.

또한 리스너가 하나 이상의 리버브 존에 있을 경우 소스에 잔향이 적용됩니다.

더 풍부한 음향감을 위해 각 오디오 소스에 개별 필터를 적용할 수 있습니다.

자세한 내용은 오디오 효과를 참조하십시오.

프로퍼티

프로퍼티설명
Audio Clip재생될 사운드 클립에 대한 레퍼런스입니다.
Output기본적으로 클립은 씬의 오디오 리스너에 직접 출력됩니다.
이 프로퍼티를 사용하면 클립을 오디오 믹서에 출력합니다.
Mute옵션을 활성화하면 사운드가 음소거된 상태로 재생이 됩니다.
Spatialize오디오 소스에 대한 커스텀 공간화를 활성화하거나 비활성화합니다.
이 프로퍼티는 오디오 스페이셜라이저 SDK를 설치하고 프로젝트의 전역 audio 설정에서 선택한 경우에만 사용할 수 있습니다.
Spatialize Post Effect오디오 소스에 연결된 다른 효과 앞뒤에 커스텀 공간화를 적용할지 결정합니다.
이 프로퍼티를 활성화하면 오디오 소스에 연결된 다른 효과 뒤에 커스텀 공간화를 적용합니다.
이 프로퍼티는 오디오 소스에 대해 Spatialize 프로퍼티를 활성화한 경우에만 사용할 수 있습니다.
Bypass Effects오디오 소스에 적용된 필터 효과를 즉시 “바이패스(우회)”합니다.
모든 효과를 쉽게 켜고 끌 수 있는 옵션입니다.
Bypass Listener Effects모든 리스너 효과를 즉시 켜거나 끄는 옵션입니다.
Bypass Reverb Zones모든 리버브 존을 즉시 켜거나 끄는 옵션입니다.
Play On Awake옵션을 활성화하면 씬이 실행되는 시점에 사운드 재생이 시작됩니다.
이 옵션을 비활성화하면 스크립팅에서 Play() 명령을 사용하여 사운드 재생을 시작해야 합니다.
Loop옵션을 활성화하면 재생이 끝날 때 Audio Clip 루프가 생성됩니다.
Priority씬 안에 공존하는 모든 오디오 소스 중 현재 오디오 소스의 우선 순위를 결정합니다
(우선 순위: 0 = 최우선 순위, 256 = 최하 순위, 디폴트값 = 128).
순위가 잘못 바뀌는 경우를 막기 위해 음악 트랙은 0으로 설정해야 합니다.
VolumeAudio Listener__로부터 1월드 유닛(1미터) 거리에서 소리가 얼마나 크게 들리는지를 정의합니다. | |Pitch__Audio Clip 의 재생 속도가 빨라지거나 느려졌을 때의 피치 변화량을 나타냅니다.
노멀한 재생 속도일 경우 값은 1입니다.
Stereo Pan2D 사운드의 스테레오 필드 포지션을 설정합니다.
Spatial Blend3D 엔진이 오디오 소스에 미치는 효과의 정도를 설정합니다.
Reverb Zone Mix리버브 존으로 보내지는 출력 신호의 양을 설정합니다.
이 양은 0–1 범위에서는 선형적이며, 1–1.1 범위에서는 10dB 증폭이 가능하여 근거리 필드나 원거리 사운드 효과를 내는 데 유용합니다.
3D Sound Settings설정은 공간 블렌드 파라미터에 비례해 적용됩니다.
Doppler Level현재 오디오 소스에 적용될 도플러 이펙트의 정도를 결정합니다
(0으로 설정하면 아무 효과도 적용되지 않음).
*도플러 효과
– 움직이는 물체에서 나오는 파동은 파동원과 관찰자의 상대 속도에 비례하여 주파수가 변하며, 다가오면 높아지고(고음) 멀어지면 낮아진다(저음).
Spread스피커 공백에서 3D 스테레오 사운드 또는 멀티채널 사운드로의 스프레드 각도를 설정합니다.
Min Distance사운드는 최소거리 내에서 가능한 한 최대 음량을 유지하고, 최소거리를 벗어나면 감쇠됩니다.
3d 세계에서 사운드를 ‘크게’ 만들기 위해서는 해당 사운드의 최소거리를 증가시키고, 사운드를 ‘작게’ 하려면 최소거리를 감소시키면 됩니다.
Max Distance사운드 감쇠가 더 이상 일어나지 않는 거리를 의미합니다.
이 포인트를 넘어서면 사운드는 리스너로부터 최대거리 유닛 위치의 영역으로 유지되며 더 이상 감쇠되지 않습니다.
Rolloff Mode사운드가 페이드되는 속도를 나타냅니다.
값이 클수록 리스너 위치가 더 가까워져야 사운드가 들립니다
(그래프에 의해 결정됩니다).
– Logarithmic Rolloff오디오 소스에 가까우면 사운드가 크지만 오브젝트로부터 멀어지면 상당히 빠른 속도로 사운드가 작아집니다.
– Linear Rolloff오디오 소스로부터 멀어질수록 사운드가 점점 작아지게 됩니다.
– Custom Rolloff오디오 소스로부터의 사운드는 롤오프 그래프에 설정한 대로 작동합니다.

롤오프 타입(Types of Rolloff)


롤오프 모드에는 로그, 리니어, 커스텀 롤오프 등 세 가지 모드가 있습니다. 커스텀 롤오프는 아래 설명처럼 볼륨 거리 커브를 수정하여 변경할 수 있습니다.

로그 또는 리니어로 설정된 상태에서 볼륨 거리 함수를 수정하려 하면, 롤오프 타입이 커스텀 롤오프로 자동 변경됩니다.

코드로 접근

https://forum.unity.com/threads/audio-realistic-sound-rolloff-tool.543362/


using UnityEngine;

public class AudioSourceCustomRolloff : MonoBehaviour
{
    [SerializeField]
    AudioSource _AudioSource;

    private void Awake()
    {
        var animCurve = new AnimationCurve(
            new Keyframe(_AudioSource.minDistance, 1f),
            new Keyframe(_AudioSource.minDistance + (_AudioSource.maxDistance - _AudioSource.minDistance) / 4f, .35f), 
            new Keyframe(_AudioSource.maxDistance, 0f));
        _AudioSource.rolloffMode = AudioRolloffMode.Custom;
        animCurve.SmoothTangents(1, .025f);
        _AudioSource.SetCustomCurve(AudioSourceCurveType.CustomRolloff, animCurve);
        _AudioSource.dopplerLevel = 0f;
        _AudioSource.reverbZoneMix = 0.9f;
        _AudioSource.spread = 60f;
    }
}

거리 함수(Distance Functions)


오디오 프로퍼티 중에는 오디오 소스와 오디오 리스너 사이의 거리 함수로 수정할 수 있는 것이 있습니다.

Volume: 거리에 대한 진폭(0.0 – 1.0)을 나타냅니다.

Spatial Blend: 2D(오리지널 채널 매핑)에서 3D(거리와 방향에 따라 감쇠되거나 모노로 다운믹스된 모든 채널).

Spread: 거리에 대한 각도(0.0–360.0°)를 의미합니다.

Low-Pass(AudioSource에 로우패스 필터가 추가되는 경우에만): 거리에 대한 컷오프 주파수(22000.0–10.0)를 나타냅니다.

Reverb Zone: 리버브 존으로 보내지는 시그널의 양을 나타냅니다.
볼륨 프로퍼티 및 거리/방향 감쇠가 시그널에 우선 적용되며, 따라서 직접 시그널과 리버브 된 시그널 모두에 영향을 미칩니다. 시그널과 리버브 된 시그널 모두에 영향을 미칩니다.

볼륨, 공간 블렌드, 스프레드, 저대역 오디오 필터, 리버브 존 믹스에 대한 거리 함수.
오디오 리스너까지의 현재 거리가 그래프에 빨간색 세로 선으로 표시되어 있습니다.

거리 함수를 수정하려면 커브를 직접 수정하면 됩니다.

자세한 내용은 가이드 커브 편집하기를 보십시오.

오디오 소스 생성(Creating Audio Sources)


오디오 소스는 할당된 Audio Clip 이 없으면 아무 것도 하지 않습니다.

클립은 재생될 실제 사운드 파일입니다.

소스는 해당 클립을 재생/정지하거나, 기타​오디오 프로퍼티를 수정하는 컨트롤러 역할을 합니다.

새로운 오디오 소스를 생성하는 방법:

  1. Unity 프로젝트에 오디오 파일을 임포트합니다. 이 파일이 오디오 클립이 됩니다.
  2. 오디오 소스 게임 오브젝트를 생성합니다(메뉴:__GameObject__ > Audio > Audio Source).
  3. 새로운 게임 오브젝트를 선택하고 Component > Audio > Audio Source 를 선택합니다.
  4. 인스펙터에서 Audio Source 컴포넌트의 Audio Clip 프로퍼티를 찾고 클립을 할당합니다.
    이때 프로젝트 창에서 클립을 드래그하거나, 인스펙터 프로퍼티의 오른쪽에 있는 작은 원 아이콘을 클릭한 다음 목록에서 클립을 선택하는 방법을 이용할 수 있습니다.

Note: 에셋 폴더에 있는 하나의 Audio Clip 에 대해서만 Audio Source 를 생성하고 싶은 경우, 해당 오디오 클립을 씬 뷰에 드래그하면 자동으로 Audio Source 컴포넌트가 있는 게임 오브젝트가 생성됩니다.
기존 오디오 소스가 없었다면 오디오 클립을 기존 게임 오브젝트에 드래그했을 때 클립이 새로운 Audio Source 에 연결됩니다.
해당 오브젝트에 이미 Audio Source 가 있을 경우 새로 드래그 된 클립이 소스가 이미 사용하고 있던 클립을 대체합니다.

API 리소스

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤