Work in progress

The content of this page was not yet updated for Godot 4.2 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

Аудиопотоки

Введение

Как вы возможно уже читали в: 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. Отслеживание будет происходить автоматически.