Аудиопотоки

Введение

Как вы возможно уже читали в: ref: doc_audio_buses, звук посылается на каждую шину через узел AudioStreamPlayer. Существуют разные виды AudioStreamPlayer, каждый из которых может загружать аудиоданные и воспроизводить их.

AudiоStream (аудиопоток)

Звуковой поток - это абстрактный объект, который отдаёт звук. Звук может приходить из многих мест, но чаще всего он загружается из файловой системы. Аудио файлы могут быть загружены как AudioStreams и помещены в AudioStreamPlayer. Информацию о поддерживаемых форматах и их отличиях можно найти в Importing audio samples (импорт звуковых образцов).

Существуют и другие типы AudioStreams, например AudioStreamRandomPitch. Этот тип дедает произвольную настройку высоты звука при каждом его воспроизведении. Это может быть полезно для добавления вариаций к звукам, которые воспроизводятся часто.

AudioStreamPlayеr

../../_images/audio_stream_player.png

Это стандартный непозиционный потоковый проигрыватель. Он может воспроизводить звук на любую шину. В настройках звука 5.1 он может отправлять звук на стереомикс или на передние динамики.

AudioStreamPlayеr2D

../../_images/audio_stream_2d.png

Это AudioStreamPlayer который проигрывает звук в 2D пространстве. Когда источник звука ближе к левому краю экрана, панорамирование смещается влево. Когда ближе к правой части, смещается вправо.

Примечание

Area2D может использоваться для перенаправления звука с любых AudioStreamPlayer2D, которые расположены на определенных шинах. Это позволяет создавать шины с разными звуковыми эффектами для звукового сопровождения действий происходящих в определенных частях вашего игрового мира.

../../_images/audio_stream_2d_area.png

AudioStreamPlayеr3D

../../_images/audio_stream_3d.png

Это вариант AudioStreamPlayer, но проигрывает звук в 3D пространстве. В зависимости от расположения игрока относительно экрана он может позиционировать звук в стерео, 5.1 или 7.1 в зависимости от выбранной настройки звука.

Подобно AudioStreamPlayer2D, Area может перенаправлять звук на аудиошину.

../../_images/audio_stream_3d_area.png

В отличие от 2D, 3D-версия AudioStreamPlayer имеет несколько дополнительных параметров:

Шины ревербирации

Godot для аудиопотоков, которые поступают в Area node, позволяет отправлять обработанный и необработанный звук на отдельные шины. Это полезно, когда у вас есть несколько настроек реверберации для разных типов комнат. Это делается путем включения этого типа реверберации в разделе ** Reverb Bus ** свойств Area:

../../_images/audio_stream_reverb_bus.png

В то же время создается специальная конфигурация шин, где каждая шина имеет свой эффект реверберации, который необходимо создать и настроить, чтобы завершить настройку желаемого эффекта:

../../_images/audio_stream_reverb_bus2.png

Секция ** Reverb Bus ** в Area также имеет параметр с именем ** Uniformity **. Некоторые типы комнат отражаются звуки сильнее, чем в другие (например, склад), поэтому реверберацию можно услышать почти равномерно по всей комнате, даже если источник может быть далеко. Игра с этим параметром может имитировать этот эффект.

Допплер

Когда относительная скорость между излучателем и слушателем изменяется, это воспринимается как увеличение или уменьшение высоты излучаемого звука. Godot может отслеживать изменения скорости в узлах AudioStreamPlayer3D и Camera. Оба узла имеют это свойство, которое необходимо включить вручную:

../../_images/audio_stream_doppler.png

Включите его в зависимости от того, как будут перемещаться объекты: используйте ** Idle ** для объектов, перемещаемых с помощью _process, или ** Physics ** для объектов, перемещаемых с помощью _physics_process. Отслеживание будет происходить автоматически.