Dans cette section, vous allez ajouter des bruits de pas au personnage joueur pour renforcer le réalisme lorsqu'il se déplace dans le niveau. Vous allez utiliser des signaux sonores pour créer différents sons en fonction du type de surface sur laquelle le joueur marche.
Vous allez créer des matériaux physiques pour représenter les types de surfaces. Par exemple, marcher sur du métal et marcher sur de la pierre doivent produire des sons différents. Vous allez également créer une ressource de données personnalisée qui contient les informations sur la surface et le son. L'utilisation d'une ressource de données facilite l'ajout ultérieur de nouveaux types de surfaces et de sons, sans qu'il soit nécessaire de modifier le code du blueprint.
Enfin, vous allez créer une fonction dans la bibliothèque de fonctions de blueprint déjà présente dans le jeu, à savoir BPL_FPGame. Cette fonction appelle à son tour une fonction dans la ressource de données qui renvoie l'effet sonore correct en fonction du type de surface détecté.
Avant de commencer
Assurez-vous de bien comprendre les sujets abordés dans les sections précédentes des tutoriels Passe artistique pour une aventure de type énigme et L'Unreal Engine pour les nouveaux utilisateurs :
Créer des ressources de signal sonore et d'atténuation sonore
Principes de base des blueprints, y compris la création de variables et de fonctions, ainsi que la création et la connexion de nœuds
Vous allez utiliser les ressources suivantes dans l'exemple de projet et le pack de contenu :
Onde sonore S_Metal-1
Onde sonore S_Metal-2
Onde sonore S_Metal-3
Onde sonore S_Stone-1
Onde sonore S_Stone-2
Onde sonore S_Stone-3
Onde sonore S_DefaultStep-1
Onde sonore S_DefaultStep-2
Onde sonore S_DefaultStep-3
Bibliothèque de fonctions de blueprint BPL_FPGame
Blueprint BP_AdventureCharacter
Blueprint d'animation ABP_Unarmed
Créer des signaux sonores avec des bruits de pas
Commencez par créer deux signaux sonores, un pour les pas sur le métal et l'autre pour les pas sur la pierre.
Pour créer un signal sonore, procédez comme suit :
Accédez au navigateur de contenu, puis au dossier AdventureGame > Artiste > Audio.
Faites un clic droit dans le dossier Audio, sélectionnez Nouveau dossier et nommez-le Pas.
Faites un clic droit dans le dossier Pas, puis accédez à Audio > Signal sonore. Nommez-le SC_Footsteps_Metal et ouvrez-le. Cette ressource contient déjà un nœud de sortie, qui joue le son en fonction des nœuds qui y sont connectés.
Faites un clic droit n'importe où dans le graphique et ajoutez un nœud Wave Player.
Sélectionnez le nœud Wave Player et utilisez le panneau sur le côté gauche pour remplacer l'onde sonore par S_Metal-1.
Ajoutez deux autres nœuds Wave Player et répétez les étapes pour sélectionner les fichiers d'onde sonore S_Metal-2 et S_Metal-3 que vous avez importés dans le tutoriel Configurer votre projet et importer du contenu.
Faites un clic droit dans le graphique et ajoutez un nœud Random. Cliquez une fois sur Ajouter une entrée dans le nœud Random pour ajouter une troisième entrée.
Reliez chaque nœud Wave Player à une broche du nœud Random.
Reliez le nœud Random au nœud Output.
Enregistrez le signal sonore.
Ensuite, créez deux ressources de signal sonore : une qui randomise les bruits de pas sur la pierre et l'autre les bruits de pas par défaut :
Créez une ressource de signal sonore appelée SC_Footsteps_Stone.
Pour les nœuds Wave Player, utilisez les ressources audio S_Stone-1 , S_Stone-2 et Ressources audio S_Stone-3 que vous avez importées dans le tutoriel Configurer votre projet et importer du contenu.
créez une ressource de signal sonore appelée SC_Footsteps_Default.
Pour les nœuds Wave Player, utilisez les ressources audio S_Default-1, S_Default-2et S_Default-3 .
Créer des matériaux physiques
Maintenant que vous avez créé vos signaux sonores, vous allez créer deux matériaux physiques pour représenter chaque type de surface. Vous associerez ensuite les bruits de pas à ces matériaux physiques.
Un matériau physique sert à définir la réponse d'un objet physique lorsqu'il interagit dynamiquement avec le monde. Il est également possible d'utiliser ces matériaux pour identifier différents types de surfaces pendant le jeu.
Par exemple, dans ce tutoriel, vous allez créer des matériaux physiques nommés PM_Metal et PM_Stone pour représenter les surfaces métalliques et les surfaces en pierre. Vous vérifierez ensuite sur quelle surface le joueur se déplace et déclencherez un signal sonore en fonction de cette information.
Pour créer un matériau physique, procédez comme suit :
Accédez au navigateur de contenu, puis au dossier AdventureGame > Artiste > Matériaux.
Faites un clic droit dans le dossier Matériaux, accédez à Physique, puis sélectionnez Matériau physique.
Dans la fenêtre Choisir la classe de matériau physique, sélectionnez Matériau physique, puis cliquez sur Sélectionner.
Nommez cette ressource PM_Metal.
Créez un autre matériau physique nommé PM_Stone.
Un matériau physique est une ressource de données qui permet de modifier divers paramètres de surface, notamment la friction. Pour ces matériaux physiques, vous n'avez pas à modifier les propriétés dans les ressources proprement dites. Au lieu de cela, vous devez attribuer ces ressources à différents matériaux pour modifier leur type de surface.
Attribuer les bruits de pas à une classe de blueprint de ressource de données
Vous allez à présent créer une nouvelle classe de ressource de données de blueprint pour y enregistrer les bruits de pas et créer une fonction qui renvoie le bruit de pas correct en fonction du matériau physique affecté au matériau d'un objet.
Pour configurer une ressource de données de blueprint afin de contrôler vos bruits de pas, procédez comme suit :
Dans le navigateur de contenu, accédez au dossier AdventureGame > Artiste > Audio > Pas.
Faites un clic droit et créez une classe de blueprint.
Dans la fenêtre Choisir la classe parente, développez le menu déroulant Toutes les classes, puis recherchez et sélectionnez PrimaryDataAsset.
Nommez cette ressource BP_DA_FootSteps et ouvrez-la.
Dans le panneau My Blueprint, ajoutez une nouvelle variable :
Nommez-la FootStepSounds.
Sélectionnez-la puis, dans le panneau Détails :
Définissez le paramètre Type de variable sur Matériau physique (référence d'objet).
Définissez le paramètre Conteneur sur Mappage.
Définissez le paramètre Type de valeur de mappage sur Signal sonore (référence d'objet).
Le type de variable par défaut est booléen. Dans la mesure où vous ne pouvez pas mapper les booléens, le conteneur Mappage n'est pas disponible si vous ne modifiez pas au préalable le type de variable.
Ajoutez une autre variable :
Nommez-la DefaultFootSteps.
Définissez son type sur Signal sonore.
Étant donné qu'il n'existe qu'un seul signal sonore pour le bruit de pas par défaut et qu'il ne sera déclenché que si aucun matériau physique n'est attribué au matériau de l'objet, il est possible de modifier son type de conteneur en une variable unique.
Une variable de mappage est une liste de paires de données qui associe un type de ressource à un autre. La variable FootStepSounds associe chaque matériau physique à son signal sonore correspondant.
Pour configurer FootStepSounds en vue d'associer les matériaux aux sons, procédez comme suit :
Compilez le blueprint pour pouvoir modifier les valeurs par défaut de vos variables.
Sélectionnez la variable FootStepSounds. Dans le panneau Détails, sous Valeur par défaut, ajoutez un nouvel élément.
Dans le champ Matériau physique, sélectionnez la ressource PM_Stone.
Dans le champ Signal sonore, sélectionnez la ressource SC_Footsteps_Default.
Répétez les étapes ci-dessus pour ajouter un élément en lui affectant PM_Metal et SC_Footsteps_Metal.
Sélectionnez la variable FootStepSounds. Dans le panneau Détails, sous Valeur par défaut, ajoutez SC_Footsteps_Default.
Pour créer la logique de blueprint, procédez comme suit :
Dans le panneau My Blueprint, ajoutez une nouvelle fonction nommée fnGetFootStepSounds. Elle s'ouvre dans un nouvel onglet avec son propre graphique.
Sélectionnez la fonction puis, à l'aide du panneau Détails, effectuez les opérations suivantes :
Ajoutez une nouvelle entrée nommée PhysicalMaterial dont le type est défini sur Matériau physique.
Ajoutez une nouvelle sortie appelée SoundCue dont le type est défini sur Signal sonore.
Dans le graphique, déconnectez le lien entre le nœud d'entrée de fonction (fnGetFootStepSounds) et le nœud Return.
Faites glisser la variable FootStepSounds dans le graphique de fonctions et sélectionnez Get.
Faites glisser la broche du nœud Foot Step Sounds, puis ajoutez un nœud Find.
Depuis le nœud Find, reliez la deuxième broche d'entrée à la broche Physical Material du nœud fnGetFootStepSounds. Il s'agit du paramètre de l'entrée que vous avez précédemment ajoutée.
Sur le nœud fnGetFootStepSounds, faites glisser sa broche Exec et ajoutez un nœud Branch. Reliez la broche Condition à la broche de sortie inférieure (rouge) du nœud Find.
Reliez la broche True du nœud Branch au nœud Return.
Depuis le nœud Return, faites glisser la broche Sound Cue et reliez-la à la broche de sortie supérieure (bleue) du nœud Find.
Faites glisser la broche False du nœud Branch, puis ajoutez un autre nœud Return.
Sur le nouveau nœud Return, faites glisser la broche Sound Cue et ajoutez un nœud Get Default Foot Steps.
Compilez et enregistrez le blueprint.
Cette fonction vérifie si un matériau physique (entrée de fonction) se trouve dans le mappage FootStepSounds. Si le matériau physique est détecté, il renvoie le signal sonore associé à ce matériau physique en tant que variable de sortie de la fonction.
Si aucun matériau physique n'est détecté, le signal sonore DefaultFootSteps est renvoyé.
Définir les bruits de pas par défaut
Vous allez maintenant créer une ressource de données pour gérer les valeurs utilisées par votre blueprint. Cette ressource fait office de couche de configuration, vous permettant d'ajouter, de supprimer ou d'actualiser les matériaux physiques et les signaux sonores sans modifier ni recompiler le blueprint. Procédez comme suit :
Dans le navigateur de contenu, accédez au dossier AdventureGame > Artiste > Audio > Pas.
Faites un clic droit et accédez à Divers > Ressource de données. (Sélectionnez le type de ressource de données avec une icône circulaire.)
Sélectionnez la classe de données BP_DA_FootSteps comme instance de ressource de données.
Nommez cette ressource DA_FootSteps et ouvrez-la.
Pour Pas par défaut, sélectionnez SC_Footsteps_Default.
Développez Bruits de pas et assurez-vous que la liste comporte les deux éléments de mappage FootStepSounds.
Enregistrez la ressource de données.
Créer une fonction pour jouer les bruits de pas
Créez une fonction dans la bibliothèque de fonctions pour jouer le bruit de pas. Toute classe de blueprint de votre projet peut utiliser les fonctions d'une bibliothèque de fonctions de blueprint.
Pour créer et configurer une nouvelle fonction, procédez comme suit :
Dans le navigateur de contenu, accédez à AdventureGame > Concepteur > Blueprints > Core et ouvrez la bibliothèque de fonctions de blueprint BPL_FPGame.
Dans le panneau My Blueprint, ajoutez une nouvelle fonction et nommez-la fnBPLPlayFootStepSound.
Sélectionnez la nouvelle fonction puis, dans le panneau Détails, ajoutez une nouvelle entrée appelée PlayerReference de type Pion.
Pour configurer un tracé de ligne entre le joueur et le sol, procédez comme suit :
Faites glisser la broche Exec du nœud fnBPLPlayFootStepSound et ajoutez un nœud Line Trace By Channel.
Faites glisser la broche Start du nœud Line Trace By Channel, puis ajoutez un nœud Get Actor Location.
Dans la liste des actions du nœud, n'oubliez pas de désactiver le paramètre Sensible au contexte si vous avez du mal à trouver un nœud.
Faites glisser la broche Target du nœud Get Actor Location et ajoutez un nœud Get Player Reference.
Faites glisser la broche de sortie du nœud Get Player Reference et ajoutez un nœud Make Array.
Reliez la broche de sortie de matrice du nœud Make Array à la broche Actors to Ignore du nœud Line Trace By Channel.
Faites glisser la broche Return Value du nœud Get Actor Location, puis ajoutez un nœud Subtract.
Reliez la broche de sortie du nœud Subtract à la broche End du nœud Line Trace By Channel.
Dans le nœud Subtract, définissez la valeur Z sur 500.
Une ligne est ainsi tracée, partant de la position du joueur et descendant de 500 unités, en ignorant le personnage joueur. Dans la section suivante, vous allez attribuer le bruit de pas correct en fonction du type de surface, tel qu'indiqué dans le tracé de ligne.
Procédez comme suit pour utiliser la ressource de données que vous avez créée précédemment et attribuer le bruit de pas correct :
Faites glisser la broche Out Hit du nœud Line Trace By Channel et sélectionnez Break Hit Results.
Créez une variable locale, nommez-la FootStepsAsset et affectez-lui le type BP_DA_FootSteps (référence d'objet). Définissez sa valeur par défaut sur DA_FootSteps.
Faites glisser la variable FootStepsAsset dans le graphique d'événements et sélectionnez Get FootStepAsset.
Faites glisser l'élément depuis le nœud FootStepsAsset, puis recherchez et sélectionnez fnGetFootStepSounds.
Reliez la broche Exec du nœud LineTraceByChannel au nœud FnGetFootStepSounds. Développez le nœud Break Hit Results et reliez la broche Phys Mat à la broche Physical Material du nœud FnGetFootStepSounds.
Faites glisser le nœud FnGetFootStepSounds, puis recherchez et sélectionnez Play Sound At Location.
Reliez la broche Sound du nœud PlaySoundAtLocation à la broche Sound Cue du nœud FnGetFootStepSounds.
Faites glisser la broche Location du nœud PlaySoundAtLocation, puis recherchez et sélectionnez Get Actor Location. Faites glisser sa broche Target et ajoutez un nœud Get Player Reference.
Enregistrez et compilez la fonction.
La fonction de ressource de données fnGetFootStepSounds est ainsi utilisée pour transmettre un matériau physique et obtenir un signal sonore en vue de le jouer.
Mettre à jour le blueprint d'animation avec les bruits de pas
L'étape suivante consiste à modifier le blueprint d'animation de votre personnage joueur pour appeler la fonction FnBPLPlayFootStepSound lorsque chaque pied du personnage touche le sol.
La plupart des personnages de Manny, comme celui utilisé dans ce projet, font appel à des animations qui incluent des notifications par défaut. Les notifications d'animation (ou simplement notifications) permettent de créer des événements répétables synchronisés avec les séquences d'animation. Ces événements peuvent être, entre autres, des sons (par exemple, des bruits de pas pour les animations de marche ou de course) et des particules qui apparaissent.
Bien qu'il soit possible d'ajouter des notifications à une séquence d'animation, la plupart des animations de mouvement fournies avec les modèles de l'Unreal Engine disposent de notifications d'animation par défaut qui correspondent au moment où les pieds du personnage prennent appui sur le sol (FootPlant).
Procédez comme suit pour voir les notifications d'animation par défaut :
Dans le navigateur de contenu, ouvrez le blueprint d'animation utilisé par votre personnage joueur. Pour BP_AdventureCharacter dans l'exemple de projet, accédez à Contenu > Personnages > Mannequins > Animations > Désarmé et ouvrez ABP_Unarmed.
Dans le coin supérieur droit, cliquez sur le bouton Animation (icône d'un humain vert en train de courir). L'une des animations du blueprint s'ouvre dans un nouvel onglet de l'Unreal Editor.
Pour changer l'animation en cours, cliquez sur les trois points en regard du bouton Animation, puis sélectionnez une animation de marche ou de course. Par exemple, MF_Unarmed_Jog_Fwd.
Astuce : vous pouvez également ouvrir l'animation de course directement depuis le navigateur de contenu.
La chronologie comporte les notifications indiquant le moment où le pied prend appui sur le sol :
Vous pouvez ajouter de nouvelles notifications et modifier celles existantes pour créer votre propre système dans lequel vous souhaitez exécuter une chaîne d'événements. Dans le cadre de ce tutoriel, vous utiliserez les notifications par défaut fournies avec les animations du personnage. Il s'agit de AN_FootPlant_Right et de AN_FootPlant_Left.
Pour ajouter les notifications de l'animation au blueprint et jouer les bruits des pas, procédez comme suit :
Revenez à ABP_Unarmed.
Faites un clic droit dans le graphique d'événements et ajoutez un nœud AnimNotify_AN_FootPlant_Left.
Faites glisser la broche du nœud Notify, puis recherchez et sélectionnez FnBPLPlayFootStepSound.
Ajoutez un nœud AnimNotify_AN_FootPlant_Right et reliez-le à la broche Exec du nœud FnBPLPlayFootStepSound.
Faites glisser la broche Player Reference du nœud FnBPLPlayFootStepSound, puis ajoutez un nœud Get Player Pawn.
Compilez et enregistrez le blueprint d'animation.
Le bruit de pas est joué chaque fois que la notification indiquant le moment où le pied prend appui sur le sol se déclenche dans le blueprint d'animation.
Si votre personnage utilise des blueprints d'animation supplémentaires, vous devez également ajouter le code à ces blueprints d'animation.
Mettre à jour le blueprint du personnage joueur afin qu'il puisse jouer les bruits de pas
Vous allez ensuite modifier le blueprint du joueur et ajouter une logique pour jouer le son lorsque le joueur atterrit sur le sol, notamment après une chute ou un saut. Étant donné que vous avez créé la fonction FnBPLPlayFootStepSound dans la bibliothèque de fonctions de blueprint, vous pouvez réutiliser cette fonction dans le blueprint du personnage joueur.
Pour modifier le blueprint du joueur, procédez comme suit :
Ouvrez le navigateur de contenu et accédez au dossier AdventureGame > Concepteur > Blueprints > Personnages.
Ouvrez le blueprint BP_AdventureCharacter et accédez à l'onglet Graphique d'événements.
Faites un clic droit sur une zone vide du graphique et ajoutez un nœud Event On Landed.
Faites glisser la broche Exec du nœud EventOnLanded, puis recherchez et sélectionnez FnBPLPlayFootStepSound.
Faites glisser la broche Player Reference du nœud FnBPLPla FootStepSound, puis ajoutez un nœud Self.
Compilez et enregistrez le blueprint.
Attribuer un matériau physique aux sols
Vous devez ensuite attribuer un matériau physique à plusieurs surfaces. Procédez comme suit :
Sélectionnez une surface dans le niveau, par exemple un objet Sol.
Dans le panneau Détails, sous la section Collision, définissez l'option Remplacement du matériau physique sur l'un des matériaux physiques que vous avez créés précédemment.
Répétez ces étapes pour ajouter les deux types de matériaux physiques sur certains sols de votre niveau.
Vous pouvez également ajouter un matériau physique à une instance de matériau en procédant comme suit :
Ouvrez l'instance de matériau, puis accédez au panneau Détails.
Faites défiler la page jusqu'à la section Général, cliquez sur le menu déroulant Matériau physique et sélectionnez le matériau physique souhaité.
Enregistrez votre instance de matériau.
Tester vos bruits de pas
Jouez au jeu et marchez sur les surfaces avec des matériaux physiques, puis sautez pour entendre les bruits de pas appropriés.
Si un matériau physique a été attribué à la surface, vous entendez le bruit de pas correspondant. Si aucun matériau physique n'est détecté, vous entendez le bruit de pas par défaut.
Pour continuer
Dans le prochain module, vous apprendrez à créer un effet visuel de feu et à l'appliquer à vos pièges à feu à l'aide du système d'effets visuels Niagara.