Faisons du bruit dans Unity
Après avoir travaillé sur le visuel du jeu, attaquons-nous aux sons et à la musique dans notre projet. C’est très simple avec Unity mais ça n’en reste pas moins une part essentielle d’un jeu vidéo.
Vous apprendrez où vous procurez des bons petits sons et chouettes musiques pour du jeu vidéo et quoi en faire pour les retrouver dans le jeu.
La recherche de sons et de musiques
Damien a participé il y a quelques temps à une discussion sur le sujet sur Stack Exchange.
D’après nos connaissances, les options pour un développeur de jeux sons :
- Acheter des sons
- Collaborer avec un musicien/un sound designer
- Utiliser des sons gratuits provenant de banque de sons (comme FindSounds ou Freesound)
- Enregistrer ses propres sons
Ou le plaisir coupable de Damien :
- Créer des sons chiptunes (8-bit) en utilisant BFXR (basé sur SFXR mais en version web bien plus pratique)
Matthieu : J’ai eu l’occasion de créer des sons et des musiques pour le projet d’un ami. A lépoque, j’étais batteur mais pas du tout compositeur.
Avec l’aide de Freesound, un peu d’inventivité et plusieurs douzaines d’heures (sans connaître aucun outil, mais cela m’a permis d’apprendre à utiliser Audacity sur le tas), j’ai réussi à faire une bande son complète pour le jeu.
Je ne vous conseillerai de le faire pour la musique (trouvez plutôt un musicien qui accepte de le faire), mais avec un peu de temps et les bons outils, vous pouvez vraiment créer de chouettes effets sonores. C’est à votre portée, soyez créatifs.
Pour la musique, tout dépend de ce que vous recherchez :
- Jamendo recense un paquet d’artistes, mais faites attention aux licences souvent payants pour un usage commercial.
-
- Bosca Ceoil de Terry Cavanagh est un logiciel simple et efficace pour faire de la musique.
Damien : C’est par Jamendo que j’ai vu rencontré Spintronic. Comme j’adorais sa musique (et j’adore toujours), je l’ai contacté directement pour savoir si je pouvais utiliser sa musique dans le jeu The Great Paper Adventure. Il a adoré l’idée et a même nommé une chanson au nom du jeu ! Donc n’hésitez pas à contacter les artistes qui vous plaisent : les licences CC-BY-NC ne prévalent plus si l’artiste vous donne l’accord d’utiliser ses œuvres.
Ressources sonores pour le tutoriel
Créez ou trouver un son d’explosion et un son de tir pour le joueur et le poulpi. Si vous êtes fainéants, en voici des tout prêts fait pour le didacticiel :
- Télécharger le son du tir du joueur
- Télécharger le son du tir ennemi
- Télécharger le son de l’explosion
Nous utiliserons une musique de Spintronic également présente dans The Great Paper Adventure dans notre projet.
- Télécharger Spintronic - Firecrackers
Importer dans Unity
Copiez les 4 éléments dans le dossier “Sounds”.
Pour chaque fichier, veillez à désactiver la propriété “3D sound” dans l’Inspector. Après tout nous sommes dans un jeu 2D !
Et… c’est tout !
Lecture de la musique
Pour ajouter de la musique au niveau, faites un simple drag’n’drop de la musique dans votre onglet Hierarchy. Nous vous recommandons de :
- Renommer le nouvel objet en “Music”.
- Bien le placer en
(0, 0, 0)
.
Localiser la case à cocher “Mute”. Vous serez contents de la cocher si vous êtes des tests toute la journée ;).
Lecture d’effets sonores
Nous pourrions faire la même chose que la musique. Sauf que l’intérêt des effets sonores, c’est d’être déclenchés au bon moment.
Pour cela nous allons utiliser une solution très simple. Comme pour le script pratique “SpecialEffectsHelper”, nous allons faire un autre script bien pratique pour créer du son de n’importe où.
Ce nouveau script s’appelle “SoundEffectsHelper”:
using UnityEngine;
using System.Collections;
/// <summary>
/// Création d'effets sonores en toute simplicité
/// </summary>
public class SoundEffectsHelper : MonoBehaviour
{
/// <summary>
/// Singleton
/// </summary>
public static SoundEffectsHelper Instance;
public AudioClip explosionSound;
public AudioClip playerShotSound;
public AudioClip enemyShotSound;
void Awake()
{
if (Instance != null)
{
Debug.LogError("Multiple instances of SoundEffectsHelper!");
}
Instance = this;
}
public void MakeExplosionSound()
{
MakeSound(explosionSound);
}
public void MakePlayerShotSound()
{
MakeSound(playerShotSound);
}
public void MakeEnemyShotSound()
{
MakeSound(enemyShotSound);
}
/// <summary>
/// Lance la lecture d'un son
/// </summary>
/// <param name="originalClip"></param>
private void MakeSound(AudioClip originalClip)
{
AudioSource.PlayClipAtPoint(originalClip, transform.position);
}
}
Ajouter ce script à l’objet “Scripts” et remplissez les champs par les bons fichiers sonores :
Puis, ajoutez :
SoundEffectsHelper.Instance.MakeExplosionSound();
dans “HealthScript”, après l’effet de particuleSoundEffectsHelper.Instance.MakePlayerShotSound();
dans “PlayerScript”, juste aprèsweapon.Attack(false);
.SoundEffectsHelper.Instance.MakeEnemyShotSound();
dans “EnemyScript”, juste aprèsweapon.Attack(true);
.
Démarrez le jeu et écoutez. On a du son et de la musique !
Note : Cette technique est acceptable pour un petit projet mais si vous avez plusieurs centaines de sons, il vous faudra probablement réfléchir à un autre système.
Prochaine étape
Nous avons ajouté toute la partie sonore de notre jeu. Question feeling, cela une énorme différence.
Le jeu est une bonne base de shmup . En ajoutant de nouveaux ennemis et peut-être vos propres images, sons, idées… vous dépasserez la petite démo que l’on vous propose.
Nous sommes quand même loin d’un jeu complet, mais nous nous arrêterons là pour l’aspect gameplay.
Nous allons maintenant voir comment faire un petit menu pour charger et recharger le niveau.