Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

오디오 스트림

소개

:ref:`doc_audio_buses`에서 이미 읽었듯이 사운드는 AudioStreamPlayer 노드를 통해 각 버스로 전송됩니다. AudioStreamPlayer에는 다양한 종류가 있습니다. 각각은 AudioStream을 로드하고 재생합니다.

오디오스트림

오디오 스트림은 소리를 방출하는 추상 개체입니다. 사운드는 여러 위치에서 나올 수 있지만 가장 일반적으로 파일 시스템에서 로드됩니다. 오디오 파일은 AudioStream으로 로드되고 AudioStreamPlayer 내부에 배치될 수 있습니다. :ref:`doc_importing_audio_samples`에서 지원되는 형식과 차이점에 대한 정보를 확인할 수 있습니다.

:ref:`AudioStreamRandomizer<class_AudioStreamRandomizer>`와 같은 다른 유형의 AudioStream이 있습니다. 이는 재생될 때마다 스트림 목록에서 다른 오디오 스트림을 선택하고 임의의 피치 및 볼륨 이동을 적용합니다. 이는 자주 재생되는 사운드에 변형을 추가하는 데 도움이 될 수 있습니다.

오디오스트림플레이어

../../_images/audio_stream_player.webp

이것은 위치가 없는 표준 스트림 플레이어입니다. 모든 버스에서 재생할 수 있습니다. 5.1 사운드 설정에서는 오디오를 스테레오 믹스 또는 전면 스피커로 보낼 수 있습니다.

재생 유형은 실험적인 설정이며 Godot의 향후 버전에서 변경될 수 있습니다. 이는 대부분의 플랫폼과 달리 웹 내보내기에서 모든 사운드를 브라우저로 스트리밍하는 대신 웹 오디오-API 기반 샘플을 사용하도록 존재합니다. 이렇게 하면 단일 스레드 웹 내보내기에서 오디오가 왜곡되는 것을 방지할 수 있습니다. 기본적으로 웹 플랫폼에서만 샘플을 사용합니다. 명시적인 이유가 없는 한 이 설정을 변경하지 않는 것이 좋습니다. 오디오 > 일반 아래의 프로젝트 설정에서 웹 및 기타 플랫폼에 대한 기본 재생 유형을 변경할 수 있습니다(설정을 보려면 고급 설정을 켜야 합니다).

AudioStreamPlayer2D

../../_images/audio_stream_2d.webp

이것은 AudioStreamPlayer의 변형이지만 2D 위치 환경에서 사운드를 방출합니다. 화면 왼쪽에 가까우면 패닝이 왼쪽으로 이동합니다. 오른쪽에 가까우면 오른쪽으로 갈 것입니다.

참고

Area2D는 포함된 AudioStreamPlayer2D의 사운드를 특정 버스로 전환하는 데 사용할 수 있습니다. 이를 통해 게임 세계의 특정 부분에서 발생하는 동작을 처리하기 위해 다양한 리버브 또는 사운드 품질을 갖춘 버스를 생성할 수 있습니다.

../../_images/audio_stream_2d_area.webp

오디오스트림플레이어3D

../../_images/audio_stream_3d.webp

이것은 AudioStreamPlayer의 변형이지만 3D 위치 환경에서 사운드를 방출합니다. 화면을 기준으로 한 플레이어 위치에 따라 선택한 오디오 설정에 따라 사운드를 스테레오, 5.1 또는 7.1로 배치할 수 있습니다.

AudioStreamPlayer2D와 마찬가지로 Area3D는 사운드를 오디오 버스로 전환할 수 있습니다.

../../_images/audio_stream_3d_area.webp

2D와 달리 AudioStreamPlayer의 3D 버전에는 몇 가지 고급 옵션이 더 있습니다.

리버브 버스

경고

AudioStreamPlayer의 재생 모드가 기본값인 **Sample**로 설정된 경우 웹 플랫폼에서는 이 기능이 지원되지 않습니다. 재생 모드가 **스트림**으로 설정된 경우에만 작동하지만 스레드가 활성화되지 않으면 대기 시간이 늘어납니다.

자세한 내용은 :ref:`웹용으로 내보내기 설명서의 오디오 재생 <doc_exporting_for_web_audio_playback>`를 참조하세요.

Godot는 특정 Area3D 노드에 들어가는 3D 오디오 스트림을 허용하여 건조하고 젖은 오디오를 별도의 버스로 보냅니다. 이는 다양한 유형의 방에 대해 여러 가지 리버브 구성이 있을 때 유용합니다. 이는 Area3D 속성의 Reverb Bus 섹션에서 이러한 유형의 반향을 활성화하여 수행됩니다.

../../_images/audio_stream_reverb_bus.webp

동시에 각 Area3D가 각 Area3D로부터 리버브 정보를 수신하는 특수 버스 레이아웃이 생성됩니다. 원하는 효과에 대한 설정을 완료하려면 각 리버브 버스에서 리버브 효과를 생성하고 구성해야 합니다.

../../_images/audio_stream_reverb_bus2.webp

Area3D의 Reverb Bus 섹션에는 **Uniformity**라는 매개변수도 있습니다. 일부 유형의 방은 다른 유형(예: 창고)보다 바운스 사운드가 더 많이 들기 때문에 음원이 멀리 떨어져 있어도 반향이 방 전체에 걸쳐 거의 균일하게 들릴 수 있습니다. 이 매개변수를 가지고 실험하면 해당 효과를 시뮬레이션할 수 있습니다.

도플러 효과

경고

AudioStreamPlayer의 재생 모드가 기본값인 **Sample**로 설정된 경우 웹 플랫폼에서는 이 기능이 지원되지 않습니다. 재생 모드가 **스트림**으로 설정된 경우에만 작동하지만 스레드가 활성화되지 않으면 대기 시간이 늘어납니다.

자세한 내용은 :ref:`웹용으로 내보내기 설명서의 오디오 재생 <doc_exporting_for_web_audio_playback>`를 참조하세요.

방사체와 청취자 사이의 상대 속도가 변경되면 이는 방출되는 사운드의 피치가 증가하거나 감소하는 것으로 인식됩니다. Godot는 AudioStreamPlayer3D와 카메라 노드의 속도 변화를 추적할 수 있습니다. 두 노드에는 모두 수동으로 활성화해야 하는 다음 속성이 있습니다.

../../_images/audio_stream_doppler.webp

개체 이동 방법에 따라 설정하여 활성화합니다. ``_process``를 사용하여 이동한 개체에는 **Idle**을 사용하고, ``_physics_process``를 사용하여 이동한 개체에는 **Physics**를 사용합니다. 추적은 자동으로 이루어집니다.