Work in progress
The content of this page was not yet updated for Godot
4.4
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.
Аудиопотоки
Введение
Как вы, возможно, уже читали в Audio buses (Аудиошины), звук передаётся на каждую шину через узел AudioStreamPlayer. Существуют разные виды AudioStreamPlayer. Каждый из них загружает AudioStream и воспроизводит его.
AudiоStream (аудиопоток)
Звуковой поток - это абстрактный объект, который отдаёт звук. Звук может приходить из многих мест, но чаще всего он загружается из файловой системы. Аудио файлы могут быть загружены как AudioStreams и помещены в AudioStreamPlayer. Информацию о поддерживаемых форматах и их отличиях можно найти в Importing audio samples (импорт звуковых образцов).
Существуют и другие типы аудиопотоков, например, AudioStreamRandomizer. Этот тип выбирает каждый раз при воспроизведении другой аудиопоток из списка и применяет случайную регулировку высоты тона и громкости. Это может быть полезно для добавления разнообразия в часто воспроизводимые звуки.
AudioStreamPlayеr
Это стандартный непозиционный потоковый проигрыватель. Он может воспроизводить звук на любую шину. В настройках звука 5.1 он может отправлять звук на стереомикс или на передние динамики.
Playback Type (Тип воспроизведения) — экспериментальная настройка, которая может измениться в будущих версиях Godot. Она существует для того, чтобы при веб-экспорте использовались сэмплы на основе Web Audio-API вместо потоковой передачи всех звуков в браузер, в отличие от большинства платформ. Это предотвращает искажение звука при однопоточном веб-экспорте. По умолчанию сэмплы используются только веб-платформой. Изменять этот параметр не рекомендуется, если у вас нет на то веских причин. Вы можете изменить тип воспроизведения по умолчанию для веб-платформы и других платформ в настройках проекта в разделе Audio > General (для просмотра этого параметра необходимо включить advanced settings (расширенные настройки)).
AudioStreamPlayеr2D
Это AudioStreamPlayer который проигрывает звук в 2D пространстве. Когда источник звука ближе к левому краю экрана, панорамирование смещается влево. Когда ближе к правой части, смещается вправо.
Примечание
Area2D может использоваться для перенаправления звука с любых AudioStreamPlayer2D, которые расположены на определенных шинах. Это позволяет создавать шины с разными звуковыми эффектами для звукового сопровождения действий происходящих в определенных частях вашего игрового мира.
AudioStreamPlayеr3D
Это вариант AudioStreamPlayer, но проигрывает звук в 3D пространстве. В зависимости от расположения игрока относительно экрана он может позиционировать звук в стерео, 5.1 или 7.1 в зависимости от выбранной настройки звука.
Подобно AudioStreamPlayer2D, Area3D может направлять звук на аудиошину.
В отличие от 2D, 3D-версия AudioStreamPlayer имеет несколько дополнительных параметров:
Шины ревербирации
Предупреждение
Эта функция не поддерживается на веб-платформе, если режим воспроизведения AudioStreamPlayer установлен на Sample (по умолчанию). Она будет работать только в режиме воспроизведения на Stream, но при этом увеличится задержка, если потоки не включены.
Подробности см. в разделе «Воспроизведение звука» в документации по экспорту для веб-страниц.
Godot позволяет 3D-аудиопотокам, поступающим в определённый узел Area3D, направлять сухой и обработанный звук на отдельные шины. Это полезно, если у вас несколько конфигураций реверберации для разных типов помещений. Для этого нужно включить этот тип реверберации в разделе Reverb Bus в свойствах Area3D:
В то же время создаётся специальная схема шин, где каждая зона Area3D получает информацию о реверберации от каждой зоны Area3D. Для завершения настройки желаемого эффекта необходимо создать и настроить эффект реверберации в каждой шине реверберации:
В разделе Reverb Bus в Area3D также есть параметр Uniformity. Некоторые типы помещений отражают звук сильнее других (например, склад), поэтому реверберация может быть слышна практически равномерно по всей комнате, даже если источник находится далеко. Экспериментируя с этим параметром, можно имитировать этот эффект.
Допплер
Предупреждение
Эта функция не поддерживается на веб-платформе, если режим воспроизведения AudioStreamPlayer установлен на Sample (по умолчанию). Она будет работать только в режиме воспроизведения на Stream, но при этом увеличится задержка, если потоки не включены.
Подробности см. в разделе «Воспроизведение звука» в документации по экспорту для веб-страниц.
Когда относительная скорость между излучателем и слушателем изменяется, это воспринимается как увеличение или уменьшение высоты излучаемого звука. Godot может отслеживать изменения скорости в узлах AudioStreamPlayer3D и Camera. Оба узла имеют это свойство, которое необходимо включить вручную:
Включите его в зависимости от того, как будут перемещаться объекты: используйте ** Idle ** для объектов, перемещаемых с помощью _process, или ** Physics ** для объектов, перемещаемых с помощью _physics_process. Отслеживание будет происходить автоматически.