La sonorisation d’une scène et de ses acteurs permet d’ajouter une touche de réalisme à votre jeu.
En effet, un aigle qui vous attaque en silence n’aura pas le même effet que s’il vous fonçait dessus en hurlant. Dans la même lignée, votre concurrent lors d’une voiture de course peut « annoncer » sa présence par le bruit de son moteur mais surtout, en gérant sa distance d’approche ; plus il est proche, plus on l’entend. Et inversement, plus il s’éloigne, moins on l’entend. Et ce, même s’il n’est pas visible à l’écran.
Cette gestion sonore n’est pas une prouesse technique. Il suffit juste d’y penser et de se donner la peine d’ajouter trois lignes de code à votre application.
Afin d’illustrer ce tutoriel, je vous propose cet exemple ( CF : ci-dessous ) qui sera décortiqué plus bas.
L’idée générale
On utilise un son que l’on pourra facilement mettre en boucle. A savoir, soit un son coupé parfaitement, où la fin de ce dernier correspond parfaitement à son début, soit un son avec un fondu en entrée et en sortie.
[/li]
On laisse tourner ce son en permanence sur un canal dédié.
On agit sur le volume du canal en lui attribuant des valeurs allant de 0 (silence) à 100 (son le plus fort).
Pour y parvenir, on détermine un champ auditif. Au-delà de cette distance, le son ne sera pas audible. On converti dès lors la distance en niveau de volume à l’aide d’un simple calcul.
Volume = 100 – (Distance / (Champ Auditif / 100))
Détails du codeIl s’agit de la gestion de votre jeu.
Fixe le « Champ Auditif » en pixel.
Fait tourner (boucler) le son en permanence.
Initialise la "Distance Minimale". Par défaut elle est égale au « Champ Auditif » puis, effectuer une boucle sur toutes les occurrences que l’on souhaite sonoriser.
on teste si l’on trouve une distance plus faible que la précédente. Si oui, on modifie la variable « Distance Minimale » avec cette nouvelle valeur.
Ainsi, à la sortie de cette boucle, la variable « Distance Minimale » contiendra la distance la plus courte entre le personnage et l’ensemble des autres actifs.
On applique notre calcul au volume du canal.
Simple non ? Oui mais efficace. :)
On peut évidemment pousser la méthode en gérant la stéréo, l’appliquer à plusieurs types de son, utiliser des « qualifieurs » …
Pour info, si vous êtes démunie, afin de manipuler vos échantillons sonores, je vous propose d’utiliser le logiciel gratuit Audacity.
De même, si vous cherchez des échantillons sonores :
http://www.universal-soundbank.com/bruitages.htm