Utiliser le son dans notre jeu est important pour l’expérience de jeu et utiliser du son dans Godot est plutôt simple.
Utiliser le menu Import (vous le trouverez surement à côté du menu scène). Cliquez sur la ressource dans le système de fichier pour afficher ses paramètres de réimportation dans le menu d’importation. Il est alors possible de modifier plusieurs paramètres du fichier le fichier .import de la ressources. Une fois vos modifications terminée, cliquez sur le bouton réimporter en bas de la fenêtre, le fichier .import va donc être recréer, laissant ainsi votre fichier ressource de base inchangé.
Lorsque vous souhaitez utiliser votre son dans votre projet, vous devez faire la différence entre les effets sonores et les flux de musique.
Dans le cas d’une musique, vous aurez besoin d’un Node AudioStreamPlayer.
Si vous voulez déclencher cet évènement avec le script, vous devez attacher ce script au Node :
extends StreamPlayer
func _ready():
self.play()
Si vous-voulez changer la source audio, vous devez tout d’abord la charger.
Song2 = load(« song2.ogg » )
Ensuite, il est possible de la charger en définissant la propriété Stream via la fonction embarquée du Node AudioStream set_stream().
set_stream(song2)
Pas besoin de préciser le Node qui va lancer la fonction, si on ne précise rien, c’est au self que cela va s’appliquer.
Dans le cas d’un effet sonore, vous aurez le choix entre plusieurs Nodes : AudioStreamPlayer (pour un son non localisé), AudioStreamPlayer2D (pour un son localisé dans une scène 2D (x, y)), AudioStreamPlayer3D (pour un son localisé dans une scène 3D (x, y, z)). Les deux dernières options se résument à l’ajout du stéréo. Pour ces sons, il est conseiller d’utiliser des formats WAV.
Vous aurez en suite besoin d’attacher un Script pour lancer une fonction
get_node("AudioStreamPlayer2D").play("hit")
On récupère donc le Node (ici, on part du script du parent, si la dépendance venait de plus loin, on aurait du préciser le chemin) et on lui lance la fonction play() en précisant le nom du son à jouer. Si vous le souhaitez, il est possible de modifier n’importe quelle propriété du Node, comme le son.
var sound = get_node("sound")
var id = sound.play("hit")
id.set_volume(id, 0.5)
Utiliser des sons n’est pas si simple que cela… Nous avons dit plus haut qu’il « est conseiller d’utiliser des formats WAV ». Car les autres types de fichier comme le mp3 ou le ogg sont en fait des compressions de fichiers audio, leurs poids est donc minime, mais on perd en complexité de fichier et en qualité. De plus, le logiciel Godot Engine doit décompresser ces fichiers à chaque lecture, ce qui diminue les performance… Pour une utilisation musicale, on ne risque pas de distinguer un délai, on peut donc se permettre d’utiliser des fichiers OGG ou MPC.
Modifier vos fichiers sources pour leur ajouter des effets n’est pas nécessaire avec Godot. Tout d’abord car cela augmente la taille du fichier et son temps de lecture, mais aussi et surtout car le Game Engine est doté d’un système de Bus. Il est donc possible d’enregistrer des preset de modification audio dans le menu audio en bas de l’éditeur. Pour cela, il suffit de créer un nouveau bus et de lui ajouter des effets, en cliquant sur cet effet, il est possible d’ne modifier les paramètres depuis l’inspecteur.
Pour l’appliquer à un effet audio, modifier la propriété bus dans l’inspecteur du Node et paramétrer le bus que vous avez créé.
Si vous souhaitez sauvegarder davantage de performance, il est encore possible d’optimiser la qualité des fichiers audio. La plupart du temps, les sons sont stéréo et ont un taux d’échantillonnage élevé comme 96 kHz. Mais en fait, l’utilisation de 44 kHz mono réduira considérablement les efforts de mémoire de taille. En règle générale, la différence ne sera pas audible par l’utilisateur. Ce serait donc un bon choix de sous-échantillonner les sons si possibles.
Il est essentiel de faire de compromis, le plus important restant la fluidité et le confort de jeu.
Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.
Vous devriez rafraîchir la page.