Avant de commencer
Assurez-vous que vous avez terminé et atteint ces objectifs dans la section précédente, Configurer et compiler votre projet :
Vous avez créé un projet basé sur le modèle à la première personne avec une classe Mode de jeu personnalisée en C++.
Vérifier que votre projet utilise le système de système de commandes avancé.
Configurer un nouveau personnage
Vous avez configurer un nouveau projet C++ avec un mode de jeu personnalisé. Maintenant, vous allez ajouter une nouvelle classe de personnage, l'étendre dans les blueprints et la définir comme le pion de joueur par défaut dans votre mode de jeu.
Créer une classe de personnage en C++
Les ressources d'acteurs désignent tout objet pouvant être placé dans un niveau. Les pions sont des acteurs qui peuvent être contrôlés par les joueurs ou l'IA. Les personnages sont un type de pion spécial utilisé comme personnage joueur. Pour plus d'informations sur ces classes d'acteurs, consultez les informations sur les classes d'acteurs, de pions et de personnages dans la documentation du framework de jeu de l'UE.
Pour créer une nouvelle classe de personnage et ajouter du C++ à votre projet, procédez comme suit :
Dans le menu principal de l'éditeur, accédez à Tools > New C++ Class.
Dans la fenêtre Choose Parent Class trouvez et sélectionnez Character, puis cliquez sur Next.
Saisissez un nom pour la nouvelle classe (ce tutoriel utilise
AdventureCharacter), puis cliquez sur Create Class.Unreal Engine ouvre automatiquement les nouveaux fichiers de classe dans Visual Studio (VS). Retournez dans VS pour trouver les nouveaux fichiers.
Si VS ne vous invite pas automatiquement à actualiser votre projet, dans l'Unreal Editor, allez dans Tools > Refresh Visual Studio.
Étendre votre personnage C++ aux blueprints
Comme vous l'avez fait dans votre mode de jeu, dans le navigateur de contenu, faites un clic droit sur la classe Personnage et sélectionnez Create blueprint class based on <NomPersonnage> pour créer un blueprint pour ce personnage dans le dossier blueprints.
Modifier le personnage joueur par défaut
Pour utiliser votre nouveau personnage en jeu, définissez-le comme la classe de pion par défaut utilisée dans le mode de jeu de votre projet.
Pour définir votre personnage comme personnage joueur par défaut, suivez les étapes ci-dessous :
Si votre blueprint de mode de jeu n'est pas déjà ouvert, dans le navigateur de contenu, double-cliquez sur votre nouveau blueprint pour l'ouvrir dans l'éditeur de blueprint.
Dans le panneau Details du Blueprint, développez Classes. C'est ici que vous pouvez définir les classes par défaut à utiliser pour ce mode de jeu.
Remplacez Default Pawn Class par votre blueprint de personnage (
BP_AdventureCharacter).Cliquez sur Enregistrer dans le coin supérieur gauche de la fenêtre pour enregistrer le blueprint de mode de jeu, puis cliquez sur Compiler.
Découvrir les actions de commandes
Le personnage par défaut du modèle à la première personne utilise un ensemble d'actions de commandes préexistantes qui se combinent avec des blueprints pour permettre au personnage de bouger, de sauter et de regarder autour de lui.
Ouvrez et explorez ces actions de commandes pour apprendre comment elles génèrent les déplacements de ce personnage.
Dans l'arborescence des ressources du navigateur de contenu, accédez au dossier Contenu > Entrée > Actions. Vous verrez trois actions de commandes nommées IA_Jump, IA_Look et IA_Move, qui correspondent respectivement au saut, au regard et aux déplacements.
Double-cliquez sur IA_Jump pour l'ouvrir et afficher son panneau Details.
Les actions de commandes du personnage utilisent les propriétés suivantes pour définir le type d'action et ce qu'il fait :
Property | Description |
Value Type | Détermine le type de valeur que contient cette action de commande. Choisissez un type de valeur en fonction du type de déplacement que vous souhaitez capturer avec cette action de commande. Par exemple, Axis1D est une valeur float qui permet de capturer un déplacement unidimensionnel (déplacement vers l'avant et l'arrière) ou un ajustement scalaire (changement de vitesse de déplacement). Axis2D est un vecteur de deux floats qui capture les déplacements en deux dimensions, comme les contrôles WSAD. Axis3D est un vecteur de trois floats qui capturent des déplacements en trois dimensions, comme des contrôles de vol ou de nage. |
Déclencheurs | Créez des déclencheurs pour représenter les états possibles de l'action, de façon à pouvoir générer une logique avec ces déclencheurs dans les blueprints ou le code. Lorsque le bouton mappé à |
Modificateurs | Modifie la valeur de commande brute que l'UE reçoit avant de les envoyer à des déclencheurs de commande. |
Découvrir les contextes de mappage de commande
Les actions de commandes ne fonctionnent pas seules. Elles ont besoin d'un contexte de mappage de commande pour savoir quel bouton doit les déclencher et dans quel contexte. Il s'agit d'une collection de mappages qui décrivent les règles de déclenchement d'une action de commande. Vous pouvez créer et personnaliser plusieurs contextes de mappage de commande et les activer ou les désactiver dynamiquement selon les besoins de votre jeu.
Le personnage par défaut dispose déjà d'un contexte de mappage d'entrées qui se trouve dans le navigateur de contenu dans Contenu > Entrée. Double-cliquez sur IMC_Default pour l'ouvrir et visualiser son panneau Details.
IMC_Default contient trois mappages qui mappent chacune des trois actions de commandes sur des commandes utilisateur. Chaque mappage utilise les déclencheurs et les modificateurs de l'action de commande.
Mappage d'une action de saut
Développez le mappage IA_Jump. Vous verrez qu'il y a deux liaisons de contrôle : Space Bar et Gamepad Face Button Bottom. Si vous appuyez sur l'un de ces boutons en jeu, IA_Jump se déclenche.
Mappage de déplacement 2D avec les touches du clavier
Ensuite, développez IA_Move pour voir ses neuf liaisons correspondant aux touches WASD (QWERTY), touches fléchées et au stick analogique gauche de la manette.
Créer un déplacement bidimensionnel à partir de plusieurs points individuels requiert un peu plus de configuration que le simple saut booléen.
La pression de point est unidimensionnelle, elle renvoie une valeur de 0 si elle n'est pas pressée ou de 1 si elle est pressée. Cela fonctionne très bien pour les touches de flèche D ou droite, car elles doivent déplacer notre personnage dans une direction positive le long de l' axe X (en d'autres termes, vers la droite). Cependant, nous devons également permettre à notre personnage d'avancer, de reculer et de se déplacer vers la gauche. En d'autres termes, il nous faut les valeurs 0 à 1 et 0 à -1 sur les axe X et axe Y.
Par conséquent, pour obtenir des valeurs qui créent du déplacement dans toutes les directions, les actions de commandes utilisent des modificateurs pour transformer la valeur de commande vers un axe différent ou une valeur négative.
Par exemple, développez la liaison de contrôle A et ses modificateurs pour voir comment ils sont configurés. Vous voyez qu'il a le modificateur Negate. Cela signifie qu'en cas de pression sur la touche, la valeur de 1,0 est inversée en -1.0, ce qui déplace votre personnage vers le bas de l'axe X ou vers la gauche.
En développant le modificateur Negate, vous pouvez spécifier si vous voulez annuler les valeurs des axes X, Y et Z. Ils sont tous activés par défaut, mais vous pouvez restreindre l'inversion à des axes spécifiques selon vos besoins.
Maintenant, développez la liaison de contrôle S. Pour créer un déplacement vers l'arrière sur l'axe Y, cette liaison dispose de deux modificateurs : un nœud Swizzle Input Axis Values qui modifie la commande de l'axe X à l'axe Y, et un mode Negate.
Développez le modificateur Swizzle Input Axis Values. L'option Order indique comment les valeurs des axe doivent être réordonnées. Dans ce cas, l'action de commande utilise l'ordre YXZ, ce qui signifie que les axes X et Y sont inversés par rapport à l'ordre par défaut XYZ.
Mappage des déplacements 2D sur une manette
Le stick analogique de la manette de jeu utilise un axe 2D pour la commande au lieu d'une pression 1D. Ce mappage ne nécessite donc qu'une seule liaison de contrôle pour gérer les déplacements du stick analogique.
Si vous développez les modificateurs pour accéder à l'option Gamepad Left Thumbstick 2D-Axis, vous verrez les modificateurs Dead Zone and Scalar.
Dead Zone définit les seuils en dessous et au-dessus desquels une commande est ignorée. Utilisez ce modificateur pour filtrer les petites valeurs de commande proches du centre du stick analogique, souvent involontaires en raison d'un centrage imparfait du stick ou d'une légère pression du doigt.
Scalar définit le facteur de multiplication appliqué aux valeurs des axes X, Y et Z, ce qui permet de contrôler la vitesse de déplacement du personnage dans chaque direction.
Mappage des contrôles d'apparence sur la manette et la souris
Développez le mappage d'action IA_Look. Cette action d'entrée est liée au contrôle Manette : Stick analogique droite - Axe 2D.
Il suffit d'un modificateur de zone morte pour filtrer les erreurs.
Le personnage par défaut possède un contexte de mappage distinct pour les contrôles de caméra exécutés avec la souris. Revenez dans le navigateur de contenu et ouvrez IMC_MouseLook. Ce CME crée des liaisons pour l'action d'entrée IA_MouseLook, qui est identique à IA_Look.
En utilisant des actions d'entrée distinctes pour le stick analogique et la souris, vous pouvez attribuer des modificateurs différents à chaque entrée et les traiter comme des chemins d'entrée distincts. Cependant, dans ce tutoriel, vous allez tout combiner en un seul contexte de mappage d'entrée.
Développez le mappage d'action IA_MouseLook. Cette action d'entrée est liée au contrôle Souris XY - Axe 2D.
La liaison de contrôle de la souris utilise déjà un axe 2D ; par conséquent, le seul modificateur dont elle a besoin est un modificateur Rendre négatif de l'axe des Y pour que le personnage regarde vers le bas lorsque vous déplacez la souris vers le haut. C'est le comportement classique dans les jeux à la première personne, mais vous pouvez supprimer ce modificateur pour inverser les contrôles de la caméra.
Modifier un contexte de mappage d'entrée
Comme vous venez de démarrer un nouveau projet, combinez tous les mappages d'entrée dans un seul contexte de mappage d'entrée (CME).
Pour créer votre propre CME basé sur les contextes de mappage du joueur par défaut, procédez comme suit :
Dans le navigateur de contenu, dans le dossier Contenu > Entrée, faites un clic droit sur
IMC_Defaultet sélectionnez Dupliquer.Nommez le contexte de mappage
IMC_Adventure, puis double-cliquez dessus pour l'ouvrir.Développez le mappage IA_Look.
Cliquez sur le bouton plus en regard de IA_Look pour ajouter une nouvelle liaison de contrôle.
Cliquez sur Aucun pour ouvrir la liste des valeurs de point, développez Souris et sélectionnez Souris XY - Axe 2D.
Dans la liaison de contrôle de la souris, cliquez sur le bouton plus en regard de Modificateurs, puis remplacez Aucun par Rendre négatif.
Développez le modificateur Index [0] et désélectionnez X et Z. Ce modificateur ne doit rendre négatif que l'axe des Y.
Enregistrez et fermez le contexte de mappage.
Pour inverser vos contrôles de caméra, vous pouvez ajouter ou supprimer des modificateurs Rendre négatif aux liaisons de stick analogique ou de souris.
Suivant
Dans la section suivante, vous apprendrez comment le blueprint du personnage par défaut relie les commandes du joueur aux déplacements du personnage, et vous commencerez à recréer cela dans le code.
Configurer les déplacements du personnage
Apprenez à lier des commandes de joueur aux déplacements du personnage en C++.