ATTENTION : ceci est la documentation d'une version antérieure de SFML ; la documentation de la dernière version officielle est accessible via le menu principal
Tutoriel - Audio - Jouer avec la spacialisation des sons
Introduction
Jouer des sons et des musiques est sympa, mais pour que ceux-ci soient parfaitement intégrés à votre environnement 2D ou 3D, il peut être encore plus sympa d'ajouter un peu de spacialisation. Jettons un oeil à quelques fonctions SFML simples pour cela.
L'écouteur
Peu importe le nombre de sons et de musiques que vous placez dans votre scène, ils seront tous entendus par un "acteur" unique : l'écouteur (listener). Ce que l'écouteur entendra, est ce qui sortira de vos hauts-parleurs.
SFML définit une interface pour modifier et récupérer les propriétés de l'écouteur : sf::Listener.
Comme l'écouteur est unique dans la scène, cette classe ne contient que des fonctions statiques et n'a pas besoin d'être
instanciée.
Pour commencer, vous pouvez modifier la position de l'écouteur dans la scène :
sf::Listener::SetPosition(10.f, 0.f, 5.f);
Si vous manipulez un monde 2D vous pouvez simplement utiliser la même valeur Y partout, habituellement 0.
Par défaut, l'écouteur est placé à l'origine du monde (point (0, 0, 0)).
Ensuite, vous pouvez modifier le point vers lequel l'écouteur regarde, afin de définir son orientation :
sf::Listener::SetTarget(15.f, 0.f, 5.f);
Ici, notre écouteur regarde le long de l'axe +X. Cela signifie que, par exemple, un son provenant de (15, 0, 3)
sera entendu par l'écouteur de droite.
Par défaut, l'écouteur regarde le long de l'axe -Z (vecteur (0, 0, -1)).
Enfin, l'écouteur peut ajuster le volume global de la scène, ce qui serait équivalent à modifier le volume de toutes les sources sonores :
sf::Listener::SetGlobalVolume(50.f);
La valeur du volume est une valeur dans l'intervalle [0, 100] ; ainsi, une valeur de 50 réduira le volume de moitié.
Notez que tous les paramètres de l'écouteur peuvent être récupérés via les fonctions GetXxx correspondantes.
Sons et musiques dans votre scène
Il n'y a pas beaucoup à dire concernant les sons et les musiques. Vous pouvez changer leur position dans votre environnement 2D ou 3D :
sf::Sound 3DSound; 3DSound.SetPosition(3.f, 2.f, 6.f);
Conclusion
Comme vous pouvez le voir, ajouter un degré de réalisme à vos environnements 2D ou 3D est facile
grace à la spacialisation audio.
Si vous pensez maintenant être prêt avec le module audio, vous pouvez à présent passer aux
tutoriels réseau.
- audio-spatialization.cpp (2.08 Ko)
