Tutorials

Аудиоэффекты

Нажмите на разные кнопки, чтобы попробовать разные звуковые эффекты.

Для этого учебника требуется поддержка Web Audio API.

Использование Web Audio API

PlayCanvas позволяет вам полностью использовать возможности Web Audio API для добавления мощных эффектов к вашим звукам. В этом учебнике демонстрируется, как добавить различные эффекты к аудиообразцу.

Настройка

Вы можете самостоятельно ознакомиться с этой сценой здесь. Корневой объект Entity в этой сцене имеет компонент Sound с одним слотом, который воспроизводит простой зацикленный аудиообразец речи. Если вы не знакомы с тем, как работают компоненты Sound, обязательно ознакомьтесь с этим базовым учебником.

Корневой объект Entity также имеет компонент Script с двумя скриптами. Один скрипт отвечает за пользовательский интерфейс, а другой - скрипт, на котором мы сосредоточимся: application.js.

Этот скрипт управляет звуковыми эффектами приложения.

Использование AudioNodes

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

В этом примере мы используем узел Convolver. В нашем приложении-скрипте мы создаем этот узел следующим образом:

this.convolver = this.app.systems.sound.context.createConvolver();

Затем мы используем множество аудиообразцов в качестве импульсных откликов для свертки, как объяснено здесь. Каждый аудиообразец является аудио ассет, и в зависимости от того, какую кнопку вы нажимаете, мы используем этот ассет и назначаем его внутренний буфер для буфера свертки следующим образом:

var asset = this[assetName];
this.convolver.buffer = asset.resource.buffer;

Issue Tracker

Если вы нашли ошибку или у вас есть предложение по улучшению, пожалуйста, создайте новый тикет в нашем Issue Tracker.

Руководства

Assets

Затем мы подключаем конвольвер к нашему слоту звука следующим образом:

this.entity.sound.slot('speech').setExternalNodes(this.convolver);

Если вы нажмете на кнопку с надписью "None", мы очистим все эффекты, что в основном означает вызовclearExternalNodes на слоте:

this.entity.sound.slot('speech').clearExternalNodes();

Если у вас есть большой граф Audio Nodes, и вы хотите подключить его к слоту, вам необходимо указать первый и последний узел графа вsetExternalNodes

Issue Tracker

Если вы нашли ошибку или у вас есть предложение по улучшению, пожалуйста, создайте новый тикет в нашем Issue Tracker.

Tutorial Thumbnail

Tutorial Thumbnail

Entity

Assets

Material Inspector

Вы можете узнать больше о Sound Component API здесь.

This site is translated by the community. If you want to get involved visit this page