Le caratteristiche sonore di Unreal Engine 5 sono in grado di supportare progetti con vari requisiti audio. L'importazione di audio si può effettuare andando in una cartella dei contenuti, facendo clic sul pulsante Importa o andando nella cartella tramite il navigatore SO. Il motore crea quindi un .uasset con il tuo suono. Unreal Engine supporta .wav, .ogg, .flac, .aif, .opus, .mp3 file. I file possono avere una profondità di bit di 16 o 24 e qualsiasi frequenza di campionamento. Internamente, Unreal Engine memorizza i file audio importati in un .wav non compresso a 16 bit formato.
Per ulteriori informazioni sul motore sonoro in Unreal, consulta la seguente documentazione:
I segnali sonori sono oggetti utilizzati per riprodurre suoni nel runtime. I segnali sonori selezionano da una serie di file audio che rappresentano lo stesso concetto. Per esempio, puoi avere un segnale sonoro per “Vento” e nel runtime il segnale sonoro sceglierebbe da più file audio di suoni di vento da riprodurre. Un esempio di questo in Parrot è il segnale sonoro della spruzzata d'acqua: Contenuto/Suono/SFX/WaterSplash/CUE_WaterSplashSound
Le classi di suoni sono tipi di asset utilizzati dal motore audio per raggruppare più suoni e poi modificare i parametri di tutte le relative onde sonore allo stesso tempo. Parrot dispone di MainSoundClass, che mescola Musica e SFX.
I mixaggi della classe di suoni possono applicare soglie di volume e sono automaticamente applicati ogniqualvolta sia riprodotto un suono qualsiasi di una classe di suoni.
Implementazione specifica di Parrot
In Parrot, la maggior parte dei suoni utilizzati sono segnali sonori che contengono un suono. Il volume e il pitch sono impostati per segnale sonoro col volume generale controllato da una classe sonora predefinita e i mix audio per le impostazioni. Per trasformare tutto ciò in musica, Parrot dispone di un Sottosistema audio personalizzato.
Esempio di raccolta
Gli oggetti raccoglibili sono un esempio di segnali sonori semplici che sono riprodotti una volta e poi distrutti. Gli oggetti raccoglibili usano gli effetti sonori tipici delle monete da opengameart.org. Gli asset di origine importati sono localizzati sotto Contenuto/Asset/OpenGameArt/8bitCoinSounds. I segnali sonori creati per ciascuno di questi file sono sotto Contenuto/Suono/SFX/Oggetti raccoglibili. Chiama Riproduci suono 2D con il segnale sonoro desiderato in BP_PickupBase quando l'evento di raccolta è iniziato.
Tutti gli oggetti raccoglibili supportano VFX, SFX e devono essere distrutti al contatto. Questo si può effettuare nella classe BP_PickupBase.
Puoi utilizzare Riproduci suono 2D qui perché il suono non deve essere spazialmente rilevante nel mondo. Se il suono dovesse essere spazialmente rilevante, potresti usare invece Riproduci suono alla posizione.
Loop musicali
La musica funziona in modo molto simile ai segnali sonori standard. Importare i file audio e configurare i segnali sonori è la stessa cosa degli effetti sonori. Tuttavia ci sono alcuni passaggi in più:
Sullo stesso asset sonoro importato, assicurati che la modalità di virtualizzazione sia impostata su Riproduci se silenzioso. Questo è importante per la musica poiché permette al giocatore di rispettare le impostazioni di volume. Senza questa impostazione, quando il volume è disattivato, il suono viene distrutto e non è più riprodotto quando ripristini il volume.
Nel segnale sonoro stesso, fai clic sul nodo della traccia e assicurati che sia impostato Ripetizione.
Impostazioni suono
Tutte le impostazioni in Parrot sono correlate con vari volumi di suono.
Sotto Contenuto/Suono/Impostazioni è presente un asset della classe sonora chiamato MainSoundClass. Sotto Classi figlie puoi indicare la tua classe sonora rispetto a ogni altra relativa classe. Le classi figlie predefinite includono SFX e Musica.
Nella stessa cartella, è presente un asset chiamato DefaultSoundMix. Puoi impostare Effetti della classe sonora nelle impostazioni di MainSoundClass. Verifica che l'impostazione Applica a figli sia abilitata.
In ciascun segnale sonoro, fai in modo che la classe sia impostata sulla categoria appropriata. Per gli oggetti raccoglibili, utilizza la classe SFX.
Per modificare le impostazioni del mix nel runtime, puoi usare il nodo Imposta override del mix della classe sonora con il nodo Invia modificatore del mix sonoro. Applica qualsiasi modifica che hai apportato.
Questo è un esempio di blueprint, ma in Parrot questo si effettua solitamente in C++ nel Sottosistema audio.
Sottosistema audio Parrot
La sezione spiega cosa fa l'implementazione del Sottosistema audio. Per scoprire perché Parrot dispone di un sottosistema per l'Audio, vedi Sottosistemi in Parrot.
Il Sottosistema audio Parrot è una classe C++ chiamata UParrotAudioSubsystem. Condivide la durata di vita dell'istanza di gioco, perché le impostazioni del volume possono essere modificate in qualunque momento nel menu principale o nel menu pausa. Quando si verifica un playthrough, il sottosistema audio ascolta anche le modifiche dello stato di gioco. Quindi puoi modificare la traccia musicale quando inizia un livello, quando un livello è completato o quando il giocatore esce dai confini.
WBP_SettingScreen mostra il Sottosistema audio in azione. I valori dei cursori da UMG (Progettista UI di Unreal Motion Graphics) sono trasmessi al sottosistema in C++. Il mixer sonoro del runtime si aggiorna ogni volta che i valori cambiano. Il tempo di Dissolvenza in entrata è zero cosicché le modifiche del volume sono applicate immediatamente.
Le impostazioni vengono salvate con il nodo Salva impostazioni audio.
Per vedere i dettagli di come funziona la serializzazione per il salvataggio di queste impostazioni, vedi Serializzazione in Parrot.
La musica in Parrot viene creata quasi interamente in C++. A causa della struttura di Parrot, dove ciascuna mappa è un livello, è presente una classe AParrotWorldSettings. Puoi utilizzarla per impostare qualsiasi dato specifico del mondo, come la musica del livello. Il Sottosistema audio interroga le impostazioni del mondo ed estrae la traccia che gli occorre. Per reagire alle modifiche dello stato dopo l'inizio del gioco, effettua un'associazione a Stato del gioco Parrot su WorldBeginPlay.