Scène Player et actions d'entrée

Dans les deux prochaines leçons, nous allons concevoir la scène du joueur, enregistrer des actions d'entrée personnalisées, et coder le mouvement du joueur. À la fin, vous aurez un personnage jouable qui se déplace dans huit directions.

Créez une nouvelle scène en allant dans le menu Scène en haut à gauche et en cliquant sur Nouvelle scène. Créez un nœud KinematicBody comme racine et nommez-le Player.

image0

Les corps cinématiques sont complémentaires à la zone et aux corps rigides utilisés dans le tutoriel du jeu 2D. Comme les corps rigides, ils peuvent se déplacer et entrer en collision avec l'environnement, mais au lieu d'être contrôlés par le moteur physique, vous dictez leur mouvement. Vous verrez comment utiliser les fonctionnalités uniques du nœud quand nous coderons les mécaniques de saut et d'écrasement.

Voir aussi

Pour en savoir plus sur les différents types de nœuds de physique, consultez la Introduction à la physique.

Pour l'instant, nous allons créer un rig basique pour le modèle 3D de notre personnage. Ça nous permettra de faire pivoter le modèle plus tard depuis le code pendant qu'il joue une animation.

Ajoutez un nœud Spatial comme enfant de Player et nommez-le Pivot. Ensuite, dans le dock "Système de fichiers", développez le dossier art/ en double-cliquant dessus et faîtes glisser player.glb sur le nœud Pivot.

image1

Cela devrait instancier le modèle comme enfant de Pivot. Vous pouvez le renommer en Character.

image2

Note

Les fichiers .glb contiennent des données de scènes 3D basées sur la spécification open-source GLTF 2.0. C'est une alternative moderne et puissante à un format propriétaire comme FBX, que Godot prend également en charge. Pour produire ces fichiers, nous avons conçu le modèle dans Blender 3D et l'avons exporté en GLTF.

Comme avec tous les types de nœuds physiques, nous avons besoin d'une forme de collision pour que notre personnage puisse collisionner avec l'environnement. Sélectionnez le nœud Player à nouveau et ajoutez-lui un CollisionShape. Dans l'Inspecteur, assignez une SphereShape à la propriété Shape. L'armature de la sphère apparaît en dessous du personnage.

image3

Il s'agira de la forme utilisée par le moteur physique pour collisionner avec l'environnement, nous voulons donc qu'elle s'adapte mieux au modèle 3D. Réduisez-la un peu en faisant glisser le point orange dans la fenêtre. Ma sphère a un rayon d'environ 0.8 mètre.

Ensuite, déplacez la forme vers le haut pour que le bas s'aligne approximativement avec le plan de la grille.

image4

Vous pouvez modifier la visibilité du modèle en cliquant sur l'icône d'œil à côté des nœuds Character ou Pivot.

image5

Enregistrez la scène sous le nom de Player.tscn.

Les nœuds étant prêts, nous pouvons presque commencer à coder. Mais d'abord, nous devons définir quelques actions d'entrée.

Création d'actions d'entrée

Pour déplacer le personnage, nous écouterons l'entrée du joueur, comme l'appui sur les touches fléchées. Dans Godot, plutôt que d'écrire toutes les liaisons dans le code, il y a un système puissant qui nous permet d'attribuer une étiquette à un ensemble de touches et de boutons. Cela simplifie nos scripts et les rend plus lisibles.

Ce système est l'Input Map ("Contrôles" en français). Pour accéder à son éditeur, allez dans le menu Projet et sélectionnez Paramètres du projet....

image6

En haut, il y a plusieurs onglets. Cliquez sur Contrôles. Cette fenêtre vous permet d'ajouter de nouvelles actions en haut ; ce sont vos étiquettes. Dans la partie inférieure, vous pouvez lier des clés à ces actions.

image7

Les projets Godot viennent avec des actions prédéfinies conçues pour la conception d'interfaces utilisateur, que nous pourrions utiliser ici. Mais nous allons définir nos propres actions pour prendre en charge les manettes.

Nous allons nommer nos actions move_left, move_right, move_forward, move_back, et jump.

Pour ajouter une action, écrivez son nom dans la barre en haut et appuyez sur Entrée.

image8

Créez les cinq actions. Votre fenêtre devrait toutes les répertorier en bas.

image9

Pour lier une touche ou un bouton à une action, cliquez sur le bouton "+" à sa droite. Faîtes-le pour move_left et dans le menu déroulant, cliquez sur Touche.

image10

Cette option vous permet d'ajouter une entrée clavier. Une fenêtre contextuelle apparaît et attend que vous appuyiez sur une touche. Appuyez sur la flèche de gauche et cliquez sur OK.

image11

Faites de même pour la touche A.

image12

Ajoutons maintenant le support du joystick gauche d'une manette. Cliquez encore sur le bouton "+", mais cette fois, sélectionnez *Axe de joystick".

image13

La fenêtre contextuelle vous affiche deux menus déroulants. À gauche, vous pouvez sélectionner une manette selon son index. Périphérique 0 correspond à la première manette branchée, Périphérique 1 à la deuxième, et ainsi de suite. À droite, vous pouvez sélectionner le joystick et la direction que vous souhaitez lier à l'action. Laissez les valeurs par défaut et appuyez sur le bouton Ajouter.

image14

Faîtes de même pour les autres actions. Par exemple, liez la flèche de droite, D, et l'axe droit du joystick gauche à move_right. Après avoir lié toutes les touches, votre interface devrait ressembler à ceci.

image15

Il nous reste l'action jump à mettre en place. Associez la touche Espace et le bouton A de la manette. Pour lier un bouton de manette, sélectionnez l'option Bouton de joystick dans le menu.

image16

Laissez les valeurs par défaut et cliquez sur le bouton Ajouter.

image17

Votre action d'entrée de saut devrait ressembler à ceci.

image18

Voilà toutes les actions dont nous avons besoin pour ce jeu. Vous pouvez utiliser ce menu pour étiqueter tout groupe de touches et de boutons dans vos projets.

Dans la partie suivante, nous allons coder et tester le mouvement du joueur.