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.

Flussi audio

Introduzione

Come forse sarà già stato letto in Bus audio, il suono è inviato a ciascun bus tramite un nodo AudioStreamPlayer. Esistono diversi tipi di AudioStreamPlayer. Ognuno di essi carica un AudioStream e lo riproduce.

AudioStream

Un flusso audio è un oggetto astratto che emette suoni. Il suono può provenire da molte sorgenti, ma viene più comunemente caricato dal file system. I file audio si possono caricare come AudioStream e inserire in un AudioStreamPlayer. È possibile trovare informazioni sui formati supportati e sulle loro differenze in Importare campioni audio.

Esistono altri tipi di AudioStream, come AudioStreamRandomizer. Quest'ultimo seleziona un flusso audio diverso da una lista di flussi ogni volta che viene riprodotto e applica variazioni casuali di tono e volume. Può essere utile per aggiungere varietà ai suoni riprodotti frequentemente.

AudioStreamPlayer

../../_images/audio_stream_player.webp

Questo è il riproduttore di flusso standard, non posizionale. Può riprodurre su qualsiasi bus. Nelle configurazioni audio 5.1, può inviare l'audio al mix stereo o agli altoparlanti frontali.

Il tipo di riproduzione è un'impostazione sperimentale che potrebbe cambiare nelle versioni future di Godot. È stata creata per consentire alle esportazioni Web di utilizzare campioni basati sull'API Web Audio invece di trasmettere tutti i suoni in flussi al browser, a differenza della maggior parte delle piattaforme. Ciò impedisce che l'audio sia distorto nelle esportazioni Web a thread singolo. Come predefinito, solo la piattaforma Web utilizzerà i campioni. Si sconsiglia di modificare questa impostazione, a meno che non ci sia un motivo esplicito per farlo. È possibile modificare il tipo di riproduzione predefinito per il Web e altre piattaforme nelle impostazioni del progetto in Audio > Generale (è necessario attivare le impostazioni avanzate per visualizzare l'impostazione).

AudioStreamPlayer2D

../../_images/audio_stream_2d.webp

Questa è una variante di AudioStreamPlayer, ma emette suoni in un ambiente posizionale 2D. Quando è vicino al lato sinistro dello schermo, il "panning" si sposterà a sinistra. Quando è vicino al lato destro, si sposterà a destra.

Nota

Gli Area2D si possono utilizzare per deviare l'audio da qualsiasi AudioStreamPlayer2D contenuto in essi verso bus specifici. Questo permette di creare bus con riverbero o attributi sonori diversi per gestire l'azione che si svolge in determinate aree del mondo di gioco.

../../_images/audio_stream_2d_area.webp

AudioStreamPlayer3D

../../_images/audio_stream_3d.webp

Questa è una variante di AudioStreamPlayer, ma emette il suono in un ambiente posizionale 3D. A seconda della posizione del giocatore rispetto allo schermo, può posizionare l'audio in stereo, 5.1 o 7.1, a seconda della configurazione audio scelta.

Similmente ad AudioStreamPlayer2D, un Area3D può deviare il suono verso un bus audio.

../../_images/audio_stream_3d_area.webp

A differenza della versione 2D, la versione 3D di AudioStreamPlayer ha alcune opzioni più avanzate:

Bus di riverbero

Avvertimento

Questa funzionalità non è supportata sulla piattaforma web se la modalità di riproduzione dell'AudioStreamPlayer è impostata su Sample, che è la modalità predefinita. Funzionerà solo se la modalità di riproduzione è impostata su Stream, a scapito di una maggiore latenza se i thread non sono abilitati.

Consultare Audio playback in the Exporting for the Web documentation per i dettagli.

Godot consente ai flussi audio 3D che entrano in uno specifico nodo Area3D di inviare l'audio dry e wet a bus separati. Questo è utile quando si hanno diverse configurazioni di riverbero per diversi tipi di stanze. Ciò si ottiene abilitando questo tipo di riverbero nella sezione Bus di riverbero delle proprietà dell'Area3D:

../../_images/audio_stream_reverb_bus.webp

Allo stesso tempo, viene creata una speciale disposizione di bus in cui ogni Area3D riceve le informazioni di riverbero da ogni Area3D. È necessario creare e configurare un effetto di riverbero in ogni bus di riverbero per completare la configurazione dell'effetto desiderato:

../../_images/audio_stream_reverb_bus2.webp

La sezione Bus di riverbero dell'Area3D ha anche un parametro chiamato Uniformità. Alcuni tipi di stanze riflettono i suoni più di altri (come un magazzino), quindi il riverbero è udibile quasi uniformemente in tutta la stanza, anche se la sorgente potrebbe essere lontana. Aggiustando questo parametro è possibile simulare questo effetto.

Doppler

Avvertimento

Questa funzionalità non è supportata sulla piattaforma web se la modalità di riproduzione dell'AudioStreamPlayer è impostata su Sample, che è la modalità predefinita. Funzionerà solo se la modalità di riproduzione è impostata su Stream, a scapito di una maggiore latenza se i thread non sono abilitati.

Consultare Audio playback in the Exporting for the Web documentation per i dettagli.

Quando la velocità relativa tra un emettitore e un ascoltatore cambia, ciò viene percepito come un aumento o una diminuzione del tono del suono emesso. Godot può tracciare le variazioni di velocità nei nodi AudioStreamPlayer3D e Camera. Entrambi i nodi hanno questa proprietà, che è necessario abilitare manualmente:

../../_images/audio_stream_doppler.webp

Abilitala impostandola in base a come verranno spostati gli oggetti: usare Idle per gli oggetti spostati attraverso _process, o Physics per gli oggetti spostati attraverso _physics_process. Il tracciamento avverrà automaticamente.