Dans cette partie du tutoriel, vous allez modifier le blueprint du joueur afin d'ajouter la possibilité de sprinter en maintenant l'appui sur une touche spécifique tout en se déplaçant. Vous découvrirez le système de commandes avancé de l'Unreal Engine, qui est le système recommandé pour recevoir des entrées de la part du joueur. Ce système vous permet de :
créer une action d'entrée qui définit l'entrée déclenchant le mouvement de sprint ;
connecter l'action d'entrée au blueprint du joueur en la convertissant en événement ;
augmenter la vitesse de déplacement du joueur lorsqu'il sprinte.
Dans la section précédente, vous avez créé la logique du personnage ennemi pour que ce dernier poursuive le joueur lorsqu'il se trouve dans son champ de vision. Définir une mécanique de sprint vous permet d'offrir au joueur la possibilité d'échapper à ces personnages ennemis.
Lors de la conception de jeux, il est important de créer des défis pour le joueur, par exemple en plaçant des ennemis sur son chemin, et de lui fournir un outil ou une stratégie lui permettant de surmonter ces défis.
Disponible dans la plupart des jeux, tous genres confondus, le sprint est une fonctionnalité qui permet au joueur de se déplacer plus rapidement. Cette mécanique modifie la manière dont les joueurs parcourent les espaces que vous avez conçus dans votre niveau.
Avant de commencer
Assurez-vous de bien comprendre les sujets abordés dans la section précédente du document Concevoir une aventure de type énigme :
Principes de base des blueprints, par exemple ajouter des nœuds, des fonctions et des événements.
Vous aurez besoin des ressources suivantes, issues des documents précédents de cette série de tutoriels :
BP_AdventureCharacter
Créer une ressource d'action d'entrée
Commencez par créer une ressource d'action d'entrée qui définit :
Le nom de l'action.
Le type de valeur de l'action.
Le type de déclencheur (appuyer sur une touche, maintenir l'appui sur une touche ou relâcher une touche).
L'action d'entrée est l'événement que le blueprint du personnage joueur attend avant d'exécuter un nouveau comportement.
Vous allez ensuite lier l'action d'entrée à une touche spécifique, c'est-à-dire effectuer un mappage, en utilisant une ressource de contexte de mappage d'entrée existante dans le projet.
Voici un diagramme qui montre la relation entre les différentes ressources utilisées dans le système de commandes avancé. Pour en savoir plus, consultez la page Système de commandes avancé.
| Action d'entrée | Contexte de mappage d'entrée | Blueprint |
|---|---|---|
Définit les règles d'intention et de détection. | Associe les touches et les boutons aux actions d'entrée. | Utilise les actions d'entrée pour implémenter le comportement. |
Pour créer une ressource d'action d'entrée pour un nouveau mouvement de sprint, procédez comme suit :
Dans le navigateur de contenu, accédez au dossier Entrée > Actions. Ce dossier contient les ressources d'action d'entrée liées aux mouvements Sauter, Regarder, Regarder avec la souris et Déplacer.
Faites un clic droit dans le navigateur de contenu, accédez à Entrée et créez une ressource d'action d'entrée.
Nommez cette ressource
IA_Sprint.La convention d'affectation de noms est notre façon de définir qu'il s'agit d'un fichier d'action d'entrée, mais qu'il n'est pas nécessaire de le nommer ainsi.
Double-cliquez sur
IA_Sprintpour l'ouvrir. Une action d'entrée est une ressource de données qui s'ouvre dans une nouvelle fenêtre avec un panneau Détails.
Types d'actions d'entrée
Observez le panneau Détails de la fenêtre de données IA_Sprint. Utilisez le panneau Détails pour modifier les propriétés de cette ressource, par exemple définir l'action que vous souhaitez écouter de la part du personnage joueur.
Commencez par accéder à la propriété Type de valeur. Cette propriété détermine le type de données dans l'action d'entrée. Lorsque vous créez des actions d'entrée, vous choisissez un type de valeur en fonction du type de déplacement que vous souhaitez capturer avec l'action.
Par défaut, le type de l'action d'entrée est Numérique (booléen), ce qui signifie que l'action a un état activé et désactivé (avec ou sans sprint). Conservez la valeur par défaut pour IA_Sprint.
Le paramètre Type de valeur peut également être défini sur :
Axis1D : l'action a une valeur pour le mouvement unidimensionnel (déplacement vers l'avant et l'arrière) ou un ajustement scalaire (modification de la vitesse de déplacement).
Axis2D : l'action a des valeurs X et Y pour les déplacements bidimensionnels, comme les commandes WSAD.
Axis3D : l'action est dotée de valeurs X, Y et Z pour les déplacements tridimensionnels, comme le vol ou la nage.
Configurer l'action d'entrée avec un déclencheur
Pour définir le type d'appui sur une touche qui déclenche l'action de sprint, procédez comme suit :
Dans la section Action, en regard de Déclencheurs, cliquez sur le bouton plus (+) pour ajouter un nouvel élément à la matrice Déclencheurs.
Cliquez sur le champ de menu déroulant Aucun sur le nouvel élément que vous venez d'ajouter. Une liste d'options s'affiche, notamment Combo, Maintenir, Bas, ainsi que des commandes tactiles telles que Appuyer. Pour sprinter, vous devez généralement appuyer sur une touche. Par conséquent, sélectionnez Bas dans la liste.
Cliquez sur le bouton Enregistrer dans le coin supérieur gauche de la fenêtre pour enregistrer vos modifications. Fermez
IA_Sprint.
L'action utilise Appuyer au lieu de Maintenir l'appui, car Appuyer déclenche l'action immédiatement lors de l'appui sur une touche, tandis que Maintenir l'appui déclenche l'action après un certain temps lors de l'appui prolongé sur une touche.
Maintenir l'appui peut être utile pour certaines actions telles que les attaques puissantes, où vous devez charger votre attaque avant de relâcher la touche. Pour en savoir plus sur chaque sélection, placez le pointeur de la souris dessus pour consulter les infobulles.
Développez un déclencheur pour afficher son seuil d'activation, c'est-à-dire le niveau d'appui sur une entrée ou de déplacement requis pour que l'action se déclenche. Une touche du clavier a une valeur d'activation de 0 lorsque vous n'appuyez pas dessus et de 1 lorsque vous appuyez dessus. Les commandes de manette peuvent également avoir des valeurs fractionnelles comprises entre 0 et 1 si vous appuyez partiellement dessus.
Votre ressource d'action d'entrée est maintenant configurée. Vous avez donné un nom à l'action, IA_Sprint et avez défini ce qui déclenche l'action (appuyer sur une touche ou sur un bouton). Vous allez maintenant utiliser un contexte de mappage d'entrée pour définir la touche qui déclenche l'action.
Attribuer un mappage de touches
Une ressource de contexte de mappage d'entrée collecte les ressources d'action d'entrée qui lui sont affectées, comme l'action IA_Sprint que vous venez de créer, afin de définir des touches d'entrée et de transmettre des valeurs à un blueprint de personnage tel que notre personnage joueur BP_AdventureCharacter.
Pour mapper une touche à l'action IA_Sprint, procédez comme suit :
Revenez au navigateur de contenu. Dans le dossier Entrée > Actions, remontez d'un niveau jusqu'au dossier Entrée. Ce dossier contient deux ressources de contexte de mappage d'entrée :
IMC_DefaultetIMC_MouseLook.IMC signifie "Input Mapping Context", soit mappage de contexte d'entrée.
Double-cliquez sur
IMC_Defaultpour l'ouvrir dans une nouvelle fenêtre de l'éditeur dotée d'un panneau Détails.IMC_Defaultest la ressource de contexte de mappage d'entrée que nous utilisons dans ce projet pour les aptitudes par défaut du joueur telles que le déplacement et le saut.Dans la section Mappages, développez la liste Mappages pour afficher les trois entrées : IA_Jump, IA_Move et IA_Look. Il s'agit des actions d'entrée que vous avez vues plus tôt dans le dossier Entrée > Actions.
En regard de Mappages, cliquez sur Ajouter (+) pour ajouter une entrée supplémentaire à la liste.
Pour la nouvelle entrée, utilisez le menu déroulant afin de sélectionner la ressource IA_Sprint créée précédemment.
Développez l'entrée IA_Sprint pour afficher la sélection de touche correspondant à cette action. Cliquez sur le bouton Clavier et appuyez sur la touche Verr Maj du clavier. Vous pouvez également utiliser le menu déroulant pour affecter une touche à cette action.
Enregistrez et fermez le contexte de mappage d'entrée.
Après avoir défini la touche d'action d'entrée IA_Sprint, vous disposez désormais d'une action d'entrée qui se déclenche lorsque le joueur maintient l'appui sur cette touche ; cette action est mappée sur la touche Verr Maj.
Certains mappages de touches (Maj, Ctrl, Alt, etc.) sont utilisés par l'Unreal Editor et peuvent donc ne pas fonctionner lorsque vous testez votre jeu en mode PIE. Si vous utilisez l'un de ces mappages, vous devez effectuer le test en mode autonome ou utiliser une touche différente dans la phase de développement, puis passer à la touche souhaitée avant d'empaqueter votre jeu. Les mappages pouvant être utilisés sans risque en mode PIE incluent les touches alphanumériques, les flèches, Verr Maj, Entrée, Retour arrière, Page précédente/suivante, et Accueil/Fin.
Modifier le blueprint du joueur pour le sprint
Une fois votre action d'entrée configurée, modifiez le blueprint du joueur pour qu'il puisse sprinter à l'aide de la touche que vous avez affectée.
Vous allez créer la fonctionnalité de sprint en augmentant la vitesse de déplacement du joueur lorsqu'il appuie sur le déclencheur de l'action IA_Sprint. Lorsque le joueur relâche la touche de sprint, le personnage retrouve sa vitesse de déplacement par défaut.
Commencez par attribuer au personnage une vitesse de déplacement par défaut, puis créez la mécanique de sprint.
Créer des variables de vitesse de déplacement
Vous allez créer des variables pour stocker la vitesse de déplacement et la vitesse de sprint par défaut du joueur. Le composant de déplacement du joueur définit sa vitesse de déplacement par défaut ; enregistrez-la dans une variable pour la mémoriser afin de redonner au joueur cette vitesse une fois l'action de sprint terminée.
Pour configurer des variables qui enregistrent les différentes vitesses de déplacement du joueur, procédez comme suit :
Accédez au navigateur de contenu, puis au dossier Contenu > AdventureGame > Concepteur > Blueprints > Personnages, et ouvrez votre blueprint
BP_AdventureCharacter.Dans le panneau My Blueprint, ajoutez une variable appelée DefaultMovementSpeed de type Float.
Ajoutez une variable supplémentaire nommée SprintMovementSpeed, également de type Float.
Cliquez sur le bouton Compiler dans le coin supérieur gauche de l'éditeur de blueprint.
Cliquez ensuite sur la variable SprintMovementSpeed. Dans le panneau Détails, définissez l'option Valeur par défaut > Vitesse de déplacement du sprint sur 1 000.
Configurer les mouvements par défaut du joueur
Au début du jeu, enregistrez la vitesse de déplacement initiale par défaut du joueur.
Pour enregistrer la vitesse de déplacement par défaut au démarrage du jeu, procédez comme suit :
Dans le graphique d'événements, faites un clic droit sur un emplacement vide, puis créez un nœud Event BeginPlay. Ce nœud s'exécute une fois au démarrage du jeu.
Vous utiliserez le nœud Event BeginPlay pour obtenir la vitesse de déplacement par défaut du joueur lorsque le jeu démarre. Faites glisser la broche d'exécution de ce nœud, puis créez un nœud Set Default Movement Speed.
Comme vous l'avez vu lors de la création de
BP_Enemy, le composant de déplacement du personnage contient les propriétés qui contrôlent sa vitesse. Dans le panneau Composants, faites glisser Character Movement (CharMoveComp) dans le graphique d'événements.Faites glisser la broche du nœud Character Movement et créez un nœud Get Max Walk Speed.
Reliez la broche Vitesse de marche max. au nœud Set Default Movement Speed.
Cette fonctionnalité définit la valeur de la variable DefaultMovementSpeed que vous avez créée sur la vitesse de marche par défaut du joueur, en utilisant l'option Vitesse de marche max. du composant Character Movement du joueur.
Si vous sélectionnez le composant Déplacement du personnage et observez le panneau Détails dans la section Déplacement du personnage : Marche, vous constatez que la valeur Vitesse de marche max. par défaut est de 600 cm/s.
Le composant Character Movement contient de nombreuses propriétés qui contrôlent les mouvements du personnage. Vous pouvez utiliser et modifier chacune de ces propriétés à l'exécution avec une logique de blueprint.
Définir le comportement de l'action de sprint
Maintenant que vous avez défini la vitesse de déplacement initiale du joueur, vous pouvez l'augmenter dès qu'il appuie sur la touche de sprint.
Lorsque vous ajoutez une action d'entrée à un graphique d'événements, l'Unreal Engine crée un nœud d'événement qui s'exécute lorsque le joueur appuie sur la touche mappée à cette action, définie dans le contexte de mappage d'entrée. Dans le cas présent, l'événement IA_Sprint s'exécute lorsque le joueur appuie sur la touche Verr Maj.
Pour utiliser votre action d'entrée IA_Sprint afin de créer la mécanique de sprint, procédez comme suit :
Faites un clic droit n'importe où dans le graphique d'événements, recherchez IA_Sprint, puis sélectionnez le nœud IA_Sprint dans la catégorie Entrée > Événements d'action améliorés.
Cliquez sur la flèche en bas du nœud pour afficher d'autres broches. Vous utiliserez les broches Déclenché et Terminé :
Déclenché signifie que le joueur appuie sur la touche d'action, ce qui doit entraîner le déplacement du personnage selon la vitesse de mouvement de sprint définie.
Terminé signifie que le joueur a relâché la touche et que le joueur doit retrouver sa vitesse de mouvement par défaut.
Dans le panneau Composants, faites glisser à nouveau le composant Mouvement de personnage (CharMoveComp) dans le graphique d'événements.
Faites glisser la broche Mouvement de personnage et créez un nœud Set Max Walk Speed.
À partir du nœud Set Max Walk Speed, faites glisser la broche Vitesse de marche max. et créez un nœud Get Sprint Movement Speed.
Reliez la broche Déclenché du nœud IA_Sprint au nœud Set Max Walk Speed.
La vitesse de déplacement du personnage joueur est ainsi définie sur la valeur Vitesse de sprint, que vous avez précédemment définie sur 1 000.
Enfin, vous devez redéfinir la vitesse de déplacement sur la valeur par défaut lorsque le joueur relâche la touche. Cette action est marquée comme étant terminée.
Pour rétablir la vitesse de déplacement par défaut du personnage une fois le sprint terminé, procédez comme suit :
À partir du nœud IA_Sprint, faites glisser la broche Terminé et créez un autre nœud Set Max Walk Speed.
Configurez le nœud Set Max Walk Speed :
Pour Vitesse de marche max., reliez une référence à DefaultMovementSpeed.
Pour Cible, reliez le nœud de référence du composant Character Movement.
Compilez et enregistrez votre blueprint.
Tester un Personnage
Dans l'Unreal Editor, cliquez sur le bouton Lecture pour lancer le jeu. Vous pouvez désormais sprinter lorsque vous vous déplacez en maintenant l'appui sur la touche de sprint mappée (Verr Maj).
Testez différentes valeurs de vitesse de marche maximale et de vitesse de sprint sur votre personnage joueur pour déterminer les paramètres qui fonctionnent le mieux pour votre jeu. Maintenant que le joueur peut sprinter, revenez sur vos personnages BP_Enemy et augmentez leur valeur de vitesse maximale pour ajuster le niveau de difficulté des rencontres dans la salle 3 et la pièce 3.
Vous pouvez également poursuivre l'ajout de nouvelles entrées et de nouveaux comportements si vous souhaitez mettre en pratique les connaissances acquises dans ce tutoriel et intégrer d'autres fonctionnalités à votre jeu.
Suivant
Maintenant que vous avez ajouté toutes les mécaniques et fonctionnalités de votre personnage joueur, vous pouvez terminer le niveau. Dans le dernier module de cette série, vous ajouterez la touche finale à votre niveau en utilisant tous les éléments que vous avez construits jusqu'à présent.