Unity audio source

Exploration Unity – Audio Source Gestion

Aujourd’hui, nous plongeons dans le monde de Unity et explorons le composant essentiel Audio Source ainsi que ses compagnons pour une gestion audio efficace.
Par défaut dans Unity, des composants sont disponibles pour répondre à nos besoins en matière d’ajout de musique ou de son.

Veuillez noter que ce tutoriel s’adresse principalement aux débutants et couvre certains aspects de manière superficielle.

 Voici les fonctionnalités que nous allons parcourir :

Table des matières

Création de vos AudioClips

Dans Unity, lorsque vous importez un fichier audio, il subit une transformation en un AudioClip.
Unity prend en charge divers formats tels que aif, wav, mp3 et ogg.

Dans le domaine audio, il prend en charge des clips audio mono, stéréo et multicanaux jusqu’à huit canaux.

Unity audio clip

Plus tard, nous explorerons les configurations diverses d’un clip audio.

Unity – Ajout de la Source Audio

Pour jouer des clips audio dans une scène Unity, vous aurez besoin de deux éléments essentiels.
Le premier est d’ajouter une Source Audio.

La AudioSource est un composant qui permet la lecture d’un ou de plusieurs clips audio dans votre scène.
Pour jouer plusieurs clips audio avec une seule source, nous devrons utiliser du code.

Pour ajouter une Source Audio, vous pouvez :

  • Faire un clic droit dans la hiérarchie de la scène, aller à « Audio » -> « Source Audio« 
  • Alternativement, sélectionner un gameObject et ajouter le composant « Source Audio« .

Unity add audio source

Audio Listener

Le deuxième composant essentiel pour la lecture du son est d’avoir un « Audio Listener« .

Par défaut, il est automatiquement ajouté à votre caméra lors de la création de la scène.
Avoir le listener sur la caméra est une pratique courante, comme nous l’explorerons dans la section « Blend Spatial : Jouer Audio avec Distance » où la position devient cruciale.

Unity audioListener

Alternativement, vous pouvez ajouter manuellement un Audio Listener en sélectionnant votre gameObject, en cliquant sur Ajouter Composant, et en choisissant « Audio Listener« .

Jouer Audio avec AudioSource

Vous pouvez lire l’audio soit directement via l’Inspecteur, soit en utilisant du code.
Par défaut, le « AudioClip » passé en paramètre sera automatiquement lu, car la propriété « playOnAwake » est définie sur true lors de l’ajout du composant.

Unity audioSource Inspector

Pour une lecture continue, comme dans le cas de la musique, vous pouvez également cocher la propriété « loop » pour faire en sorte que votre audio tourne en boucle.

Nous pouvons contrôler la lecture de notre audio en utilisant les méthodes « Play, » « Pause, » et « Stop » de notre AudioSource :

using UnityEngine;

namespace App.Audio
{
    public class AudioManager : MonoBehaviour
    {
        public AudioSource audioSource;

        public void Start()
        {
            // Play
            audioSource.Play();

            // Pause
            audioSource.Pause();

            // Stop
            audioSource.Stop();
        }
    }

La lecture simultanée de plusieurs AudioClips est possible en utilisant la méthode « PlayOneShot« , en spécifiant le AudioClip comme paramètre :

using UnityEngine;

namespace App.Audio
{
    public class AudioManager : MonoBehaviour
    {
        public AudioSource audioSource;
        public AudioClip clip;

        public void Start()
        {
            audioSource.PlayOneShot(clip);
        }
    }

Blend Spatial : Jouer Audio avec Distance

Dans l’Audio Source Unity, la propriété « spatialBlend » vous permet de jouer un clip en 2D, 3D, ou en utilisant une valeur entre les deux.

Lorsque la source audio est réglée sur 2D (la valeur par défaut), le son sera joué indépendamment de la position entre l’Audio Listener et la source audio.
Cependant, un volume suffisant est toujours requis.

En revanche, lorsque la source audio est réglée sur 3D, la valeur utilisera les paramètres 3D, diminuant le son en fonction des paramètres et de la distance entre le listener et la source.

Vous pouvez modifier la distance en utilisant « Custom Rolloff » ou « Linear Rolloff » comme volume rolloff et en ajustant les champs « Min Distance » et « Max Distance« .

Unity spatial blend configuration

Enfin, pour éviter de créer de nombreuses sources audio pour vos sons ou de modifier la position de votre source audio, vous pouvez jouer un son à une position spécifique en utilisant la méthode « PlayClipAtPoint » :

using UnityEngine;

namespace App.Audio
{
    public class AudioManager : MonoBehaviour
    {
        public AudioSource audioSource;
        public AudioClip clip;

        public void Start()
        {
            audioSource.PlayOneShot(clip, Vector3.one);
        }
    }

AudioClip : Configuration de l’Importation

Revisitons le processus d’importation audio pour les AudioClips, où vous avez la possibilité d’ajuster divers paramètres.

Tout d’abord, vous pouvez restreindre l’audio à n’utiliser qu’un seul canal avec « Force To Mono ».

Une autre option, « Load in Background », vous permet d’éviter de saturer le thread principal en chargeant l’audio de manière asynchrone dans un autre thread.
Cela s’avère très pratique pour réduire les temps de chargement de la scène.

De plus, avec le paramètre « LoadType », vous pouvez modifier la méthode de chargement en fonction de vos besoins :

Unity loadType

Decompress On Load

Une fois votre audio chargé, il est automatiquement décompressé.
Cela est particulièrement utile lorsqu’un son doit être répété, car l’audio non compressé est stocké en mémoire, évitant un surcharge pendant le gameplay.

En raison d’une utilisation potentielle significative de la mémoire par rapport à d’autres méthodes, il n’est pas recommandé de l’utiliser pour des fichiers volumineux.

Compressed In Memory

Le système compresse l’audio en mémoire et le décompresse lors de la lecture.
Cette méthode entraîne une petite surcharge, mais elle est idéale pour les clips intensifs en mémoire qui ne peuvent pas utiliser « Decompress On Load. »
La décompression se fait dans un thread séparé.

Streaming

Il lit et décode l’audio directement depuis le disque en temps réel.
Pour chaque clip, même s’il n’est pas chargé, les clips en streaming supportent une surcharge d’environ 200 Ko.
La décompression se fait également dans un thread séparé.

Cette méthode est très efficace pour réduire davantage l’utilisation de la mémoire.

Pour des informations plus détaillées, veuillez vous référer à la documentation.

Audio – Modifier Vos Configurations

Pour ajuster la configuration audio globale dans Unity, accédez à « Modifier » -> « Paramètres du Projet » -> « Audio. »

Toutes les modifications apportées ici seront appliquées globalement à votre projet, ce qui est parfait pour ajuster des paramètres tels que le volume global de votre jeu.

Unity audio project Setting

Consultez la documentation pour une description complète des champs.

Mixer Votre Audio

Pour ajouter des filtres à vos sons, vous avez deux options :

La première consiste à utiliser des composants qui peuvent être ajoutés au gameObject contenant votre AudioSource.

Ces composants comprennent :

  • Audio Chorus Filter
  • Audio Distortion Filter
  • Audio Echo Filter
  • Audio High Pass Filter
  • Audio Low Pass Filter
  • Audio Reverb Filter

Unity audio filters

Sinon, la deuxième option consiste à créer un Mixer Audio, que je trouve plus pratique si vous souhaitez réutiliser les mêmes effets sur plusieurs AudioSources.

Pour créer un Mixer Audio, faites un clic droit dans la hiérarchie de votre projet, allez à « Créer » -> « Mixer Audio. »

Unity create audio mixer

Ensuite, double-cliquez sur votre Mixer Audio pour ouvrir l’onglet correspondant, vous donnant accès à une interface de type mixeur.

En cliquant sur le bouton « Ajouter« , vous pouvez incorporer divers effets.

Unity audio mixer tab

Enfin, pour les appliquer à votre AudioSource, vous devez ajouter votre mixeur dans le champ de sortie.

Unity audio source output

Je ne m’étendrai pas davantage sur les détails car le Mixeur mérite son propre article.

Points Clés

  • Pour utiliser votre AudioSource, assurez-vous que votre scène inclut un Auditeur Audio.
  • Pour un audio sensible à la distance, manipulez le paramètre « spatialBlend » et vos paramètres 3D.
  • Configurez précisément les paramètres d’importation audio pour obtenir des performances optimales.
  • Il existe deux options pour ajouter des effets à votre AudioSource : des composants audio ou le Mixeur Audio.

Cela conclut notre tutoriel sur la source audio Unity.

Merci d’avoir lu cet article. Bon codage !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *