Créer un jeu 2.5D dans Unreal Engine 5 | Hyper Dev | Skillshare

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Créer un jeu 2.5D dans Unreal Engine 5

teacher avatar Hyper Dev

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Vidéo de présentation

      5:40

    • 2.

      001 - Obtenez Unreal Engine et commencez le projet

      2:43

    • 3.

      002 Configuration du niveau de développeur

      5:12

    • 4.

      003 Installation de Paper Zd et charge de niveau développeur au démarrage

      4:32

    • 5.

      004 Ajouter un joueur à l'univers

      8:23

    • 6.

      005 Importer de l'art dans Unreal Engine pour le personnage joueur

      4:43

    • 7.

      006 Comment configurer une simple animation au ralenti et gérer les sprites et les flipbooks

      9:57

    • 8.

      007 Comment planifier votre jeu

      5:08

    • 9.

      008 Explication approfondie de comment ajouter des entrées de contrôleur

      18:03

    • 10.

      009 Mouvement de gauche et de droite avec le clavier et le contrôleur

      8:15

    • 11.

      010 Ajouter la contrainte, corriger la dérive et définir la position du joueur

      2:36

    • 12.

      011 Configuration de Paperzd pour la gestion des animations

      10:38

    • 13.

      012 Jouer l'animation au ralenti sur Paperzd

      5:29

    • 14.

      013 Jouer à l'animation de course via Paperzd

      6:35

    • 15.

      014 Direction de Sprite Changine basé sur la direction du mouvement

      4:51

    • 16.

      015 Ajout de fichiers audio en cours de fonctionnement es

      9:18

    • 17.

      016 Ajouter un son de course spatial lorsque le pied Sprite atterrit

      10:38

    • 18.

      017 Utiliser des commentaires pour organiser les nœuds du plan

      0:18

    • 19.

      018 Configuration de contrôle et code pour ajouter un saut

      5:11

    • 20.

      019 Ajouter une animation de type Quick Start

      4:36

    • 21.

      Logique de transition 020 saut

      7:02

    • 22.

      21 Le son de démarrage rapide

      5:48

    • 23.

      22 Son de l'atterrissage

      4:51

    • 24.

      23 Ajout de plateformes pour la création de plateformes

      4:38

    • 25.

      24 Comment personnaliser le mouvement et le saut du joueur

      6:55

    • 26.

      25 Ajout d'actifs de plateforme 3D à partir de Quixel

      4:50

    • 27.

      26 Comment ajouter des ressources de la boutique de moteurs irréels pour vos environnements (non

      1:29

    • 28.

      27 Ajout d'actifs - Partie 2

      4:24

    • 29.

      28 Regardez-moi faire une conception de base et une réflexion sur les niveaux de base

      21:51

    • 30.

      29 Partagez les retours et la qualité de l'enseignement et de l'apprentissage a

      1:19

    • 31.

      30 Cours : vérification des connaissances des progrès

      4:17

    • 32.

      31 Réinitialiser le niveau de développeur sur Clear

      3:28

    • 33.

      32 Créer un système de santé simple Partie 0

      2:28

    • 34.

      32 Créer un système de santé simple Partie 1

      3:04

    • 35.

      33 La création d'un système de santé simple Partie 2

      10:09

    • 36.

      34 Créer un système de santé simple Partie 3 Ajout d'un objet endommagé

      13:18

    • 37.

      35 Vérifier si le joueur est vivant ou mort après avoir pris des dégâts damage

      3:57

    • 38.

      36 Créer une interface utilisateur sur écran de mort

      15:59

    • 39.

      37 Ajout de l'écran de la mort Death

      5:12

    • 40.

      38 Ajouter des fonctionnalités à l'écran de mort

      5:59

    • 41.

      39 Ajout d'entrées d'attaque de joueur

      3:56

    • 42.

      40 Créer un mannequin de combat Partie 1

      20:26

    • 43.

      41 Créer une attaque de joueur Partie 1

      14:45

    • 44.

      42 Créer une attaque de joueur Partie 2 - Modifications du code

      11:00

    • 45.

      Animation d'une attaque à l'épée 43 joueurs - Partie 1

      7:22

    • 46.

      Animation d'une attaque à l'épée 44 joueurs partie 2

      5:29

    • 47.

      45 Animation de l'attaque au sabre aérien

      5:44

    • 48.

      46 Utilisation de notifications d'animation personnalisées pour la boîte de succès Sword

      8:35

    • 49.

      047 Autres animations d'attaque

      13:36

    • 50.

      47 Ajout de plus d'animations d'attaque pour le système de combinaison

      15:49

    • 51.

      48 Démarrer avec la mise en mémoire tampon des entrées

      9:44

    • 52.

      49 Configuration de la combinaison de base avec le verrouillage de l'entrée physique

      12:37

    • 53.

      50 Un bref aperçu avant davantage d'intégration du système de combo

      3:28

    • 54.

      51 Ajout d'un lien d'attaque à la première attaque à l'épée

      15:14

    • 55.

      52 Ajouter un lien d'attaque à la deuxième attaque à l'épée

      8:59

    • 56.

      53 Finalisation des liens de combo et réinitialisations pour la combo ancrée

      19:55

    • 57.

      54 Vérifier si le joueur est aérien pour les routes d'attaque à l'épée

      8:36

    • 58.

      55 Configuration des schémas d'animation pour Air Combo

      8:20

    • 59.

      56 Configuration de la logique Air Combo

      9:39

    • 60.

      57 Peaufiner la logique de combinaison d'air

      18:25

    • 61.

      58 Repérer le joueur à portée

      8:50

    • 62.

      59 Faire en sorte que l'IA se rapproche du joueur

      7:04

    • 63.

      60 Ajustement du mouvement de l'IA vers le joueur

      11:59

    • 64.

      61 Ajuster la composante de détection et quelques notions de théorie sur le calendrier

      6:04

    • 65.

      62 Ajouter un sprite visible à l'ennemi en mêlée

      6:48

    • 66.

      63 Ajout d'animations de marche dans PaperZD

      9:14

    • 67.

      64 Ajouter un sprite d'attaque d'un ennemi en corps près

      4:50

    • 68.

      65 Aperçu de l’IA de Melee Enemy et commentaires du code

      7:59

    • 69.

      66 Ajouter une boîte de succès pour l'attaque d'un ennemi en corps près

      11:32

    • 70.

      67 Liaison de l'animation d'attaque avec Code pour l'ennemi rapproché

      13:59

    • 71.

      68 Ajout d'une fonction de réinitialisation de l'état d'attaque

      10:01

    • 72.

      69 Empêcher un joueur de passer à l'IA

      1:53

    • 73.

      70 Nerfing the Melee Enemy AI

      3:34

    • 74.

      Animation de 71 mort pour l'IA et quelques notions de théorie logique ting

      6:04

    • 75.

      72 Rendre la barre de santé de l'IA visible et quelques ajustements avant l'étape suivante

      3:59

    • 76.

      73 Melee Enemy Hitstun et Death en un

      11:29

    • 77.

      74 Préparer l'ennemi enchaîné

      2:59

    • 78.

      75 animations simples de la vidéo inactive pour l'ennemi distant

      6:22

    • 79.

      76 A engendré un projectile qui va au joueur au lancement

      13:27

    • 80.

      77 Configuration du plan d'animation pour un ennemi rangé

      12:23

    • 81.

      78 Animation des liens avec Projectile Spawn

      7:12

    • 82.

      79 Réglage de la direction de Sprite en fonction de l'emplacement du joueur

      4:42

    • 83.

      80 Ajouter du sprite à la boule magique

      3:09

    • 84.

      Direction changine de 81 lors de la balle magique

      9:03

    • 85.

      82 Configuration de la combo hit/death

      6:37

    • 86.

      Ennemi de 83 rangés entre en choc dès qu'il prend des dégâts

      10:05

    • 87.

      84 Réglage du délai d'attaque après un coup de choc

      11:41

    • 88.

      85 Comment empêcher vos ennemis de se coincer l'un sur l'autre

      1:47

    • 89.

      86 Créer un champ d'attaque pour l'ennemi rangé

      3:46

    • 90.

      87 Un aperçu du niveau

      4:57

    • 91.

      88 Faire réagir le sprite du joueur à la lumière

      3:17

    • 92.

      89 touches générales pour le niveau

      10:07

    • 93.

      90 : Entraînement final avec un ennemi en chef.

      4:28

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

55

apprenants

--

À propos de ce cours

Conçu pour les novices absolus qui se lancent dans le développement de jeux vidéo Unreal Engine. Apprendre à créer un jeu de plateforme en 2.5D dans Unreal Engine. .

Les plateformes sont l'une des meilleures façons de se lancer dans la conception de jeux. Apprendre à rendre une plateforme opérationnelle et entièrement jouable. Vous passerez d'un projet vierge à toutes les étapes que doit suivre un bon développeur de jeux pour créer un jeu entièrement jouable.

Le rythme est juste réglé pour que vous ne vous trompiez jamais ou que vous n'abordiez pas un sujet sans les connaître suffisantes.

Pendant le cours, vous ne allez pas seulement faire un copie-coller de ce que je réalise (un texte en anglais). En revanche, je vais vous apprendre à penser comme un concepteur de jeux afin que vous puissiez créer les jeux de votre choix.

J'espère qu'après ce cours, vous vous lancez et vous finirez l'idée du jeu que vous aviez en tête. En tant que joueur passionné, j'ai hâte de découvrir le parcours que vous allez créer.

Si vous venez de UNITY ENGINE, ce cours est fait pour vous. Il enseigne tout ce dont vous avez besoin de savoir pour vous mettre à niveau à l'aide de plans pour créer les jeux que vous voulez créer. Conçu par une entreprise dirigée par des développeurs de jeux.

Bonne chance.

Rencontrez votre enseignant·e

Teacher Profile Image

Hyper Dev

Enseignant·e

Join me for some learning on how to make production ready games. Tutorials that give you the full scope of what you need to do to get a game totally ready for release.

They are made for people going from being a hobbyist to a professional game developer who wants to earn a living by selling games.

Voir le profil complet

Level: Beginner

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Vidéo de présentation: J'adore les jeux en 0,5 D. Il y a quelque chose dans le fait d'avoir le style artistique à deux D tout étant capable d'interagir dans un testament en trois D. Voici donc un bref aperçu du coût de développement d'un jeu en 2,5 D. Nous abordons une grande partie de ce que vous allez apprendre afin que vous puissiez passer, vous savez, d' vision du développement de jeux vidéo à petite échelle à une plus grande échelle dans son ensemble. Donc, la première chose que vous allez apprendre fondamentalement est mon processus simple en quatre étapes pour concevoir et créer des éléments pour votre jeu. En gros, il est conçu, créé l'art, puis ajouté l'audio. Ce sera au cœur de tout ce qui s'additionne et de la façon de créer et d'implémenter un personnage en deux D avec du mouvement puis un peu de combat. Donc, avec ce personnage, il est capable d'effectuer un combo à trois coups, y compris des combos aériens. Et lorsque vous aurez créé le personnage, vous apprendrez à configurer les commandes pour PC afin de pouvoir contrôler le afin de pouvoir contrôler personnage à l'aide de la souris et du clavier. Et en plus de cela, vous allez également apprendre à créer ces commandes de personnage à créer ces commandes de personnage l'aide d'une manette. Vous aurez donc ces deux options. Et toutes ces fonctionnalités seront basées sur le moteur Unreal Engine et en utilisant le système de plans, de sorte que vous n'avez besoin que d'une compréhension de base de la logique pour pouvoir créer le personnage Maintenant, l'avantage des plans, c'est que vous allez pouvoir rapidement apporter des modifications à votre code Et en cas de problème, vous pouvez facilement voir le code vivant en temps réel. Maintenant, chaque fois que je réalise une animation d'attaque, je peux voir quelle ligne de nourriture est appelée. Voici un exemple simple d'attaque à trois coups. Je peux donc savoir quand l' attaque rapide est lancée seule, ou lorsque le joueur a appuyé sur les trois attaques et qu'il combat, lieu de lancer le combo complet, et vous l'apprendrez également dans le didacticiel. Maintenant, avant de parler de certaines des autres fonctionnalités du didacticiel, une chose que j'aime dans l'apprentissage, c'est la clarté. Je n'étais pas content de la plupart des autres tutoriels que j'ai moi-même achetés lorsque j' apprenais le développement de jeux vidéo. Mais ne vous inquiétez pas cette fois, il y aura beaucoup de clarté pour celui-ci. Donc, une chose que vous allez beaucoup voir , c'est beaucoup zoomer Cela signifie donc que la plupart du temps, je vais zoomer exactement sur l'endroit où se trouve ma souris, et je vais vous montrer les détails de ce que je fais afin que vous puissiez avoir une idée assez claire et cool de tout ce que je suis en train de changer. Chaque variable, chaque fois que je tourne un cadran, il y a un zoom avant pour vous donner la clarté dont vous avez besoin pour savoir exactement ce que je fais. J'aime également que mes explications soient très claires et contenues. Mais maintenant, passons à autre chose, je vais également en apprendre davantage sur les ennemis et l'IA ennemie. Oh, regardez, il y a un ennemi à distance. L'une des choses que vous allez apprendre est comment attraper ennemis et les créer qui infligeront des dégâts au joueur, y compris un ennemi à distance qui attaque de loin et un ennemi beaucoup plus rapproché qui inflige dégâts au joueur en s' approchant et en attaquant Mais il ne s'agit pas seulement d'être attaqué par des ennemis. Vous allez également apprendre à donner une longueur d' avance aux ennemis pour qu'ils puissent mourir lorsqu'ils subissent des dégâts. Notre joueur a donc la capacité de riposter, ce qui est cool. Donc les ennemis sont le charbon et tout le reste, non ? Mais une autre chose que vous allez devoir faire est le level design. Je vais donc vous apprendre, étape par étape, comment concevoir les niveaux correctement et créer des niveaux adaptés aux concevoir les niveaux correctement et joueurs, ainsi que les bases de la manière d' intégrer des actifs dans Unreal Engine, de les utiliser et d' apporter différentes modifications à l' éclairage et à l'environnement OK. Et lorsque vous aurez fini d'apprendre tout cela, vous vous retrouverez dans un projet final dans lequel vous allez créer un personnage de boss que vous utiliserez pour vos propres jeux. Et une fois que vous aurez créé ce personnage, vous aurez parfaitement appris tout ce que vous devez savoir sur le développement de jeux en 2,5 D. Cela couvre donc à peu près tout ce que vous allez apprendre dans le didacticiel. Je vous souhaite bonne chance et assurez-vous de prendre votre temps, tout apprendre étape par étape, et bon, le jeu de vos rêves ne se réalisera pas tout seul. Je te souhaite bonne chance et tu me retrouveras dans la prochaine vidéo. Allons de l'avant. 2. 001 Obtenir Unreal Engine et démarrer le projet: D'accord, donc pour commencer, nous devons nous assurer de mettre de côté les éléments de base. Vous aurez besoin de NRL Engine 5.4. Procurez-vous simplement le lanceur Epic Games. Assurez-vous de télécharger UnrelEngine. Tu peux aller à la bibliothèque. Et depuis la bibliothèque, vous savez, en gros, vous avez la possibilité de choisir différentes versions du moteur, vous savez, d'obtenir les dernières. OK ? Tu n'as besoin de rien d'autre. Prends juste le dernier. La dernière date d'enregistrement est la version 5.4. J'ai organisé les plans pour assurer qu'ils fonctionneront au minimum avec n'importe quelle version d'Unreal d' ici 2025. Ils modifient très rarement le code du plan, puisqu'il s'agit simplement de C plus plus collecté Une fois cela fait, lancez le moteur, et une fois que vous l'aurez lancé, vous pourrez cliquer ici sur Jeux. Il va donc vous demander, vous savez, de configurer votre projet de jeu. Maintenant, configurez-le en tant que projet vide. Nous ne voulons pas commencer avec des fichiers modèles. Partons d'une page blanche. Ensuite, sur le côté droit, assurez-vous que la plate-forme cible est un ordinateur de bureau, puis configurez-la pour Blueprint Si vous cliquez sur CIPlusPlus, nous devrons beaucoup écrire en C plus, mais il est beaucoup plus rapide de commencer à partir de là avec le code Blueprint Il est beaucoup plus facile de commencer. En ce qui concerne les préréglages de qualité, ils ne sont pas très pertinents Tu peux les laisser tels quels. Vous pouvez omettre le contenu de démarrage, et vous pouvez laisser de côté le retraçage pour le moment Nous n'aurons pas vraiment besoin de traçage pour ce projet, est très gourmand en ressources graphiques. Avec toute cette configuration, il vous suffit de vous rendre ici et de sélectionner le nom de votre projet. Je vais simplement appeler cela des vidéos mises à jour pour la plateforme 2.5 d car toutes ces vidéos sont mises à jour à partir des vidéos originales du cours, puis vous pouvez choisir le nom du projet. Je vais l'appeler 2,5 d Oh, je ne peux pas mettre de barres d'espace. Non, je vais appeler ça un voyage de héros. Oui, c'est ce que j'appellerai le projet. Avec cette configuration, nous pouvons maintenant entrer dans Unreal Engine. 3. 002 Configurer le niveau de développeur: Et une fois qu'Unreal Engine aura démarré, c'est ce qui vous attend. Donc, la première chose à faire est de fermer cette fenêtre de navigateur de contenu et de voir comment Unreal Engine organise les choses Vous remarquerez donc en haut à droite que c'est notre projet. Ensuite, nous avons un grand écran au milieu qui est notre fenêtre d'édition. C'est notre point de vue, notre vision du monde que nous allons créer Si on clique dedans. Donc en ce moment, j'ai cliqué dedans. Vous pouvez regarder autour de vous à l'aide votre souris après avoir maintenu le bouton droit de la souris enfoncé. Vous pouvez donc y voir ma souris. Je tiens le bouton droit de la souris enfoncé et je peux regarder autour de moi. Ensuite, en utilisant WAS D, je vais pouvoir me déplacer de l'intérieur du monde. Maintenant que nous avons le bouton de la souris, nous pouvons utiliser W A pour nous déplacer vers la gauche, pour nous déplacer vers l'arrière, et D pour nous déplacer vers la droite. Donc, avec ces deux-là, nous pouvons essentiellement faire le tour du monde en avion. OK. Mais le monde est vaste, et nous n'avons pas besoin d' un vaste monde ouvert. Et en fonction de votre PC, celui-ci peut même être stressé. Supprimons donc ce monde ouvert afin d'avoir quelque chose d'un peu plus simple à utiliser lorsque nous nous lancerons dans ce projet. Maintenant, pour ce faire, il ne nous reste plus qu' à créer un nouveau niveau. Maintenant, pour créer le nouveau niveau, ce que vous allez faire, c'est de passer du coin supérieur gauche au coin supérieur gauche, cliquer sur Fichier et après avoir cliqué sur le fichier, nous allons simplement créer un nouveau niveau. Maintenant, cela va nous ouvrir quelques options. Nous pouvons créer un niveau sauvage ouvert. Nous pouvons créer un niveau de base. Cliquez sur Basic. Il suffit de définir un niveau de base. Ah, parfait. Maintenant que nous avons ce niveau de base, je vais revenir en arrière. Remarquez qu'il ne s' agit que d'un seul objet rectangulaire ici. C'est une skybox. Nous pouvons regarder autour de nous. Il y a un beau soleil et des nuages sont prêts à être utilisés et à partir desquels nous pouvons commencer notre jeu. C'est le bon point de départ dont nous avons besoin. Mais maintenant que nous avons créé notre niveau, nous allons devoir l' enregistrer dans notre contenu. Alors, qu'est-ce que je veux dire par contenu ? Si vous entrez et que vous appuyez sur Ctrl et sur la barre d'espace en même temps, un navigateur de contenu s'ouvrira. OK ? Maintenant, dans ce navigateur de contenu en bas à gauche, remarquez qu'il nous montre du contenu. Alors cliquez dessus. Ce sont tous les fichiers que vous utiliserez dans votre jeu. Ensuite, nous voulons créer un nouveau dossier. Et appelons cela les niveaux de dossier. OK ? Nous avons donc maintenant notre dossier de niveaux ici. Maintenant, nous voulons simplement enregistrer notre niveau actuel, ce niveau de plan dans ce dossier. Notez que chaque fois que vous cliquez, vous devez appuyer à nouveau sur Ctrl et sur la barre d'espace pour l'ouvrir. Maintenant, pour enregistrer ce niveau, nous allons revenir à l'endroit où nous pouvons sélectionner Fichier, et remarquer qu'il est possible d'enregistrer le niveau actuel sous. Sauvegardons donc le niveau actuel sous. OK, ça ouvre la fenêtre. Nous allons entrer dans les niveaux, et appelons-le simplement. J' aime utiliser des chiffres lorsque je nomme des niveaux. Maintenant, le niveau que nous sommes en train de créer sera le niveau développeur. Je vais donc l'appeler zéro, zéro, zéro, un espace. Oh, oui, un tableau de bord et un niveau de développeur parce que c'est le niveau nous allons utiliser pour créer tout ce qui sera intégré au jeu. Maintenant, notre niveau de développeur est prêt, mais il nous reste une dernière chose à faire. Nous devons le configurer de telle sorte que lorsque nous démarrerons Unreal Engine, nous arrivions exactement à ce niveau, et nous devons également configurer papier Z D que nous allons utiliser car cela nous aidera à gérer plus facilement les sprites à deux D. C'est ce que nous allons faire dans la prochaine leçon. 4. 003 Installer Paper Zd et charger le niveau développeur au démarrage: Maintenant que nous avons configuré notre niveau initial, nous allons ajouter un Fermez donc le vrai moteur et revenez au lanceur Epic Games Allez sur le marché et une fois que vous êtes sur le marché, nous effectuerons simplement une recherche. Les termes de recherche que j' utilise sont Z et D. N'est-ce pas ? Et vous devriez obtenir immédiatement le papier Z, en fait, qui devrait être le papier Z D, papier, le Z et le D. Ce sont donc les termes de recherche que j'utilise. Vous pouvez voir que le papier Z D est apparu, et il apparaîtra. Et il dit : « Hé, papier Z D », et il vous suffit de cliquer sur Installer dans le moteur, et il vous demandera également quel moteur vous souhaitez installer. Bien entendu, installez-le sur dernier moteur que vous avez sélectionné. C'est un téléchargement relativement petit, seulement 71 mégaoctets, puis c'est fait Et maintenant, après un certain temps, le téléchargement devrait être terminé. Il est entièrement installé sur Engine. Ce n'est peut-être pas le cas ici, mais nous pouvons aller dans la bibliothèque, et nous pouvons vérifier, voyons voir, les plugins installés. Il vous montre Quicksabidge et Paper Z D. C'est parfait. Fermez-le simplement, puis nous pourrons lancer Unreal Engine Maintenant, une fois que vous êtes de retour dans Unrel Engine, il vous indique qu' un nouveau plug-in est Je vais donc simplement passer à la gestion des plugins. Je vais taper Z D ici. UnRel va donc chercher, et nous y voilà. Nous avons le plugin Paper Z D. Et il va dire : « Hé, redémarrez simplement pour que l'éditeur apporte les modifications, puis redémarrez UnrelEngine Parfait. Maintenant, le moteur a redémarré et ce plugin fonctionne maintenant Mais remarquez qu'une fois que nous sommes revenus dans Unreal Engine, il nous montre maintenant ce niveau ouvert, qui n'est pas ce que nous voulons Nous voulons que notre niveau de développeur actuel soit la première chose que nous voyons lorsque nous démarrons Unreal Engine Pour résoudre ce problème, allez dans le fichier, allez dans Modifier, puis dans les paramètres du projet. Alors ce que vous voulez rechercher, faisons-le rapidement geler. Je vais lui donner une seconde. OK, il est dégelé. Donc, ce que vous voulez rechercher, c'est que je vais taper le terme de départ. OK. C'est donc le terme que j'ai utilisé pour rechercher. Mais en gros, il va vous montrer les options de la carte de démarrage de l' éditeur, et pour le moment, il est configuré sur OpenWorld Vous pouvez donc simplement cliquer dessus, et là, nous avons notre niveau de développeur Je vais donc le définir au niveau développeur. OK. Maintenant que j'en ai fini avec ça, je vais le fermer et je vais redémarrer Unreal Engine une fois C'est bon. Maintenant, je l'ai rechargé dans Unreal Engine, et nous y voilà, nous en sommes au niveau développeur Alors maintenant, il est correctement configuré. Vous avez les plugins. Vous avez votre carte, je presse. Je vais appuyer sur Ctrl et sur la barre d'espace, et je remarque que vous avez notre joli contenu avec un niveau vide, pas entièrement vide, mais c'est un bon point de départ, et nous sommes maintenant prêts à commencer à ajouter quelques éléments de gameplay. Nous allons commencer par ajouter un élément de gameplay, qui sera le personnage du joueur. Ensuite, nous passerons en revue un peu la philosophie de planification et de développement de jeux. Bien que cette vidéo soit très courte, elle ne sera pas trop longue . Ensuite, nous reviendrons à ce niveau de développeur et commencerons à créer les composants de notre jeu de plateforme en 2,5 D. C'est ce que nous allons faire dans la vidéo suivante. Allons-y. 5. 004 Ajouter un personnage joueur au monde: C'est bon. Maintenant que nous sommes dans Unreal Engine, nous avons notre configuration de base Nous allons ajouter le tout premier objet. Et juste pour nous assurer que c'est quelque chose de vraiment important, nous allons commencer par ajouter un personnage de joueur. Donc, pour ajouter un personnage de joueur, nous allons rester très simples, d'accord ? Tout ce que vous avez à faire est d'appuyer sur Ctrl et sur la barre d'espace pour faire apparaître ce menu, d'accord ? Maintenant, une fois que ce menu est ouvert, nous voulons sous-contenu. Nous voulons venir ici et nous allons créer un nouveau dossier. Juste pour garder les choses organisées, nous avons créé un nouveau dossier. Maintenant, pour garder les choses organisées, je vais appuyer sur F deux après avoir sélectionné et je vais appeler cela des personnages. OK. Nous avons donc un dossier pour les niveaux, un autre pour les personnages. Je vais double-cliquer sur le dossier des personnages et créer un autre dossier. Maintenant, ce dossier, nous allons l'appeler player. C'est essentiellement cela parce que c'est le voyage du héros et que nous allons avoir un personnage de joueur que nous utiliserons dans le monde. Je vais double-cliquer à l'intérieur du lecteur, puis je vais cliquer avec le bouton droit de la souris et je veux rechercher une classe de plan Cela va nous donner quelques options. Maintenant, parmi les options, vous remarquerez qu'il y a un personnage, pan, un acteur. Il vous suffit de sélectionner un personnage. OK. Maintenant, avec cela, il a créé pour nous un petit dossier, un plan Je vais le sélectionner à nouveau F deux, puis je vais l'appeler héros. Hein ? Maintenant, nous savons que ce héros sera notre personnage de joueur. Ensuite, nous allons mettre ce héros au monde. Je vais juste cliquer dessus et le faire glisser dans le monde. Et boum, ça y est. Cet objet simple qui est en fait totalement invisible est notre héros actuel. Maintenant que nous utilisons un plan, toute modification apportée à un plan change Maintenant, permettez-moi de cliquer à nouveau sur le héros. À l'heure actuelle, il ne s'agit que d'une capsule basique invisible. Ajoutons-y un objet. Je double-clique sur Hero. Notez qu'il charge une fenêtre totalement différente. Personnellement, je préfère qu'il ne soit pas sur une autre fenêtre. Je clique dessus, je le fais glisser vers l'extérieur et je le fais glisser ici. Maintenant, je peux passer du niveau développeur au plan du héros, d'accord ? Maintenant, dans le plan du héros, il y a certaines choses que nous pouvons examiner Sur la droite, il y a quelques détails. Nous avons les détails ici, et il contient également quelques éléments différents que nous allons utiliser. Cela change fondamentalement les choses sur le personnage. Et puis, sur le côté gauche, nous avons des composants. Les composants concernent tous les différentes parties du personnage. Désormais, le composant de base du personnage est livré avec une capsule. Cet objet est une capsule ici, d'accord ? C'est un collisionneur. Nous y reviendrons plus tard. Et puis il a un composant de flèche qui indique essentiellement la direction. OK. Et après le composant flèche, il y a un maillage de caractères de base, puis il y a un composant de mouvement des personnages. La composante de mouvement du personnage est quelque chose que nous utiliserons pour ajuster le mouvement du personnage de gauche à droite et pour sauter. Mais pour le moment, nous allons ajouter un autre composant car actuellement le joueur est totalement invisible et nous ne voulons pas qu'il le soit complètement. Si je clique ailleurs et que j'arrive ici, remarque que le joueur n' est qu'un maillage, et si je clique sur Jouer sur le jeu, il n'y a rien. Je me déplace dans le monde entier avec WAS D et je fais un clic droit sur ma souris et il n'y a rien. Laisse-moi appuyer sur une touche pour sortir par cette fenêtre. C'est totalement invisible. Commençons par ajouter un composant simple afin de voir où se trouve le joueur. Je vais ajouter un simple cube. Maintenant que j'ai ajouté un simple cube, je ne vais rien toucher à part le cube. Je vais sélectionner le cube. OK. Et puis sur le côté droit, sous les détails, remarquez qu'il y a l'échelle, qui est l'axe X , l'axe Y et l'axe Z. L'axe Y, plutôt, l'axe X est la largeur, l'axe Y est la profondeur, puis l'axe Z, comme vous l'avez peut-être deviné, est la hauteur Je vais réduire sa taille sur l'axe X jusqu'à ce qu'il soit à peu près à l'intérieur du collisionneur Je vais réduire sa taille sur l'axe y. Maintenant, j'utilise Worst D chaque fois que j' écris, cliquez sur Worst D pour que je puisse le voir. C'est généralement à peu près. Je ne pense pas avoir besoin de faire autre chose ici. Je vais maintenant cliquer sur compiler. Et puis revenons au niveau du développeur. Au moins maintenant, quand je regarde autour de moi, je peux voir le personnage du joueur. C'est donc notre personnage de joueur en ce moment. Nous pouvons le voir. La prochaine chose que nous allons faire est de nous assurer qu'une fois que nous avons cliqué sur le bouton « jouer », au lieu d'être sur la caméra de développement flottante, nous sommes attachés au personnage du joueur Et c'est très simple de le faire. Il vous suffit de cliquer sur le personnage du joueur ici. Ensuite, accédez à votre panneau de détails. Ensuite, dans le panneau de détails, nous voulons regarder sous recherche. En fait, laissez-moi vous montrer exactement pourquoi c'est le cas sans chercher. Vous voulez faire défiler l'écran vers le bas, et ce que vous voulez rechercher, c'est l'option « posséder » ou « posséder automatiquement ». Maintenant, en regardant vers le bas, voyons pourquoi c'est la possession automatique. Vous allez faire défiler la page. Maintenant, cherchons-le. Possession automatique. Ici, vous remarquerez que ce sont les termes de recherche en possession automatique, qui nous offrent plusieurs options différentes Il indique que l' IA est autopossédée dans le WIL. Disons simplement handicapé. Je ne devrais jamais être possédé par l'IA. C'est un pion. Au lieu de cela, nous allons simplement dire autoposess player. Joueur zéro, c'est suffisant. OK ? Maintenant, si nous entrons maintenant et que nous appuyons sur Play. Remarquez, je clique, je me déplace. Laisse-moi essayer de montrer à nouveau ce que j'appuie sur le clavier. J'en suis au pire jour et rien ne se passe car nous avons pris le contrôle du personnage du joueur, mais nous n'avons pas encore implémenté les contrôles pour le personnage du joueur. Mais c'est un début assez simple. Au moins, nous avons maintenant un objet de personnage de joueur. Dans la vidéo suivante, nous allons y ajouter une caméra , puis nous y ajouterons des œuvres d'art. 6. 005 Importation d'art dans Unreal Engine pour le personnage joueur: C'est bon. Nous avons maintenant notre personnage de base qui est juste en face de nous. Il est possédé dès le début du jeu. Ainsi, lorsque nous cliquons sur Play, nous sommes connectés à cela. Nous sommes prêts à en prendre le contrôle. Maintenant, nous allons simplement ajouter une caméra au personnage du joueur. Nous avons une jolie vue en deux D du personnage. Nous allons donc revenir au plan et ajouter un autre composant Maintenant, ce composant sera simplement doté d'un bras à ressort, n'est-ce pas ? Montrez-moi le bras à ressort. Maintenant, le composant du bras à ressort, vous pouvez remarquer qu'il est juste là, n'est-ce pas ? Maintenant, en cliquant sur le composant du bras à ressort, c'est essentiellement comme un bras hépatique, peu comme un bras de caméra cinématographique Nous allons maintenant ajouter un autre composant et nous allons simplement chercher une caméra. Nous y voilà. Nous y voilà donc. Nous avons la caméra, nous avons le bras à ressort. Alors compilons ça. Et puis quand nous revenons dans le jeu, remarquez qu'une fois que vous avez sélectionné le composant joueur, maintenant en bas à droite, il y a une petite caméra qui vous montre. Ce que voit la caméra, non ? La caméra que vous avez connectée au lecteur. Permettez-moi de revenir un peu en arrière. Vous pouvez voir que c'est là que se trouve la caméra. Et tel qu'il est actuellement configuré, il est configuré de telle sorte que le mouvement, la caméra regarde le personnage depuis le côté gauche, ce qui signifie que pour que le joueur se déplace de gauche à droite, il se déplace de gauche à droite sur l'axe Y. C'est cet axe vert, et la profondeur serait gérée par l'axe X. OK. Maintenant, à partir de là, il suffit d'appuyer sur Play. Vala, nous sommes maintenant connectés directement au personnage du joueur, et c'est plutôt la caméra qui est attachée au personnage du joueur C'est cool. Maintenant, avant passer à un processus de planification plus approfondi, ajoutons également quelques illustrations au personnage du joueur. C'est bon. Maintenant, pour ajouter des illustrations au personnage du joueur, un dossier vous a été fourni. Compressez-le, entrez, récupérez tous les sprites et copiez-les, puis allez dans le dossier « hey, a hero's journey », a hero's journey », puis allez dans le dossier « hey, a hero's journey », qui devrait être le dossier d' après le nom que vous lui avez donné Entrez dans le contenu, entrez dans les personnages. Nous l'avons organisé de cette façon. Passez au lecteur et à l'art, puis vous allez coller toutes les illustrations ici. Et une fois que c'est fait, passez à Unreal Engine. Maintenant, dans Unreal Engine, vous remarquerez qu'après avoir collé cette illustration, une petite fenêtre contextuelle indique que 124 modifications ont été détectées dans une petite fenêtre contextuelle indique les fichiers de contenu source Vous souhaitez les importer ? Et c'est très simple, il suffit de dire « importer ». Unreal Engine va donc importer tous les fichiers que nous avons importés Maintenant que nous avons ces fichiers ici, nous allons simplement passer à l'illustration. Je remarque nous avons tous ces sprites différents que nous allons utiliser pour notre personnage de joueur Ce sont de très bons sprites, des sprites de base que nous allons utiliser Maintenant, pour avancer ici, la première chose à faire est que vous voulez contrôler A, vous avez sélectionné tous les sprites, puis vous allez cliquer avec le bouton droit et après avoir cliqué avec le bouton droit, vous allez accéder à Sprite Actions, et vous voulez simplement appliquer les paramètres de texture du papier en deux D. Sympa. Alors maintenant, vous remarquerez que vos sprites ont les bons paramètres d' arrière-plan et de transparence Cela signifie que les sprites sont désormais utilisables. Maintenant que vous avez importé les sprites et appliqué certains paramètres des sprites, nous allons maintenant appliquer un sprite de base à notre 7. 006 Comment configurer une animation simple en inactivité et gérer les sprites et les flipbooks: C'est bon. Maintenant que nos sprites sont intégrés à Unreal Engine, il est temps de les utiliser réellement Pour ce faire, revenons au plan du héros À partir de là, nous allons ajouter un autre composant et nous allons simplement rechercher un composant sprite, et nous avons un composant sprite moulé sur du papier et sprite en papier Maintenant, nous allons simplement cliquer sur le composant sprite en papier, et c'est tout ce que nous avons à faire Maintenant que nous avons sélectionné le sprite, plusieurs options s'offrent à nous En ce qui concerne les détails du sprite, notez que nous avons la possibilité de sélectionner parmi un tas de sprites que nous avons créés Commençons par créer un Sprite. Si j'appuie sur Ctrl et sur la barre d'espace, c'est pratiquement universel si vous voulez vous retirer. Barre de contrôle et d'espace, cela fera apparaître notre sélection de fichiers. Et puis je viens ici. Disons que je suis simplement venue ici pour le Air Tak, que je suis sortie, que je suis allée Sprite Actions et que j'ai cliqué sur Create Maintenant, ce seul PNG deviendra un sprite. Si je clique, je reviens à la source des sprites ici. Je peux faire défiler l'écran vers le bas et cela affichera l'attaque aérienne d' aventure. Au départ, nous avions créé un cube, mais maintenant il recouvre nos sprites Je vais donc simplement appuyer sur Supprimer car nous n'avons plus besoin de ce cube. Je vais donc cliquer à nouveau sur le sprite en papier. Ah, il y a un problème de positionnement. heure actuelle, sélectionnez Je sélectionnais le ressort lorsque j'ai sélectionné le sprite Alors laisse-moi le traîner et le remettre sur le collisionneur à capsules En fait, permettez-moi de le supprimer très rapidement. Je ne vais pas régler ce problème en post. Je vais laisser cette erreur là. J'y retournerai, il suffit d' ajouter un sprite en papier. OK, je vais donc ajouter un sprite en papier. Ça y est. Il est maintenant dans la bonne position. Et puis parce que sa position doit être au centre, je change le sprite source pour l'attaque aérienne, et le voilà Notre attaque aérienne est maintenant arrivée. Et si je passe au niveau développeur, remarque que notre attaque aérienne est là, mais que nous devons changer la direction de la caméra, car si nous appuyons sur Play en ce moment, nous ne voyons rien parce que le sprite est regardé sous un angle Nous reviendrons donc ici. Nous allons sélectionner le bras à ressort. Une fois le bras à ressort sélectionné, nous allons revenir ici et modifier la rotation. Nous voulons maintenant le faire pivoter de 90 degrés. Non, c'est sur l'axe X. Nous voulons qu'il soit à 90 degrés, voyons l'axe Y. Non, c'est le tien. Nous voulons qu'il fasse 90 degrés. Parfait. Nous voulons qu'il soit négatif de 90 degrés sur l'axe Z. C'est moins 90. Vous pouvez voir ce que j'ai sélectionné ici. Donc cette fois-ci, lorsque nous revenons ici et que nous appuyons sur Play, vous remarquerez que vous voyez le sprite juste là. C'est une bonne chose. Maintenant, il y a deux ou trois choses que nous allons faire. Premièrement, nous allons ajuster la mise à l'échelle pour que le sprite soit en bas et qu'il soit de la bonne taille Je sélectionne donc le sprite en papier. J'ajuste sa position pour elle soit plus basse que son point de départ initial. Ensuite, je vais augmenter son échelle. Je vais cliquer sur ce journal pour qu'il ait une échelle uniforme verrouillée, puis je vais augmenter son échelle. Alors je vais l'évoquer un peu. Parfait, et cliquez dessus. Et maintenant, lorsque nous cliquons sur Jouer, nous voyons cette attaque à l'épée comme notre sprite Ce n'est pas ce que nous allons réellement utiliser, mais il est simplement bon de savoir comment les systèmes fonctionnent ensemble. Maintenant, avec tout cela, nous allons revenir au héros et nous allons réapparaître tous nos sprites Maintenant, nous allons taper ce que nous voulons rechercher, c'est le sprite inactif Nous allons donc cliquer de Idle zéro à Idle 3. OK, de l'IDO zéro à l'IDO trois, puis nous cliquerons à nouveau et cette fois, nous allons créer Sprite Actions nous allons créer Sprite Nous avons donc maintenant ces sprites. Ce sont les vrais sprites. Notez que les noms auront un sprite à côté d'eux. Ce ne sont pas des images, ce sont des sprites. Ensuite, je vais simplement cliquer de zéro à trois, puis je vais cliquer à nouveau avec le bouton droit de la souris. Mais cette fois, au lieu de créer un sprite, nous allons créer un flipbook Un flipbook est un ensemble de sprites regroupés. Maintenant, remarquez, si vous regardez le flipbook, laissez-moi cliquer un peu. Permettez-moi de l'ouvrir à nouveau. Vous devriez pouvoir le voir clairement de votre côté. Lorsque je le survole, l'animation du sprite s'affiche C'est fantastique. Maintenant, au lieu d'avoir un sprite, nous voulons un flipbook d' animation inactif Maintenant, pour implémenter cela dans un vrai moteur, nous allons simplement revenir au sprite source OK. Et vous remarquerez tout de suite qu'il ne nous montre pas de sprites Au contraire, il ne nous montre pas le flipbook. Il ne fait que nous montrer les sprites, et c'est ce que nous allons changer Alors maintenant, nous allons revenir. Nous allons supprimer les sprites en papier car nous avons compris comment les insérer dans le jeu OK, nous allons simplement le supprimer. Et cette fois, ce que nous voulons, c'est un flipbook en papier , puis nous l'ajoutons Voici donc notre flipbook. Maintenant, je vais sélectionner le flipbook , puis il va rechercher le flipbook source Je vais l'ouvrir, et je vais cliquer sur Adventurrer Idol Flip Book Voyons maintenant à quoi cela ressemble dans le jeu. Maintenant, lorsque vous appuyez sur Play, vous pouvez voir que notre petit aventurier se déplace de haut en bas en fonction du flipbook Nous allons suivre le même processus de base. Nous allons entrer, nous voulons déplacer le flipbook, notez. Voyons voir, environ 70 unités négatives semble être le bon montant. Ensuite, nous allons bloquer la balance et l' augmenter à environ quatre fois, je pense, c'est suffisant, puis la réduire tout de suite. Vous voulez qu'il s'agisse simplement de toucher le bas de notre car c'est vraiment ce qui compte. , c' est cette collision ici, plus important, c' est cette collision ici, cette capsule. Permettez-moi d'augmenter ce chiffre à cinq Perfect. Donc, à cinq unités et à environ 20 unités sur l'axe X, cela semble fonctionner parfaitement Maintenant, lorsque nous appuyons sur Play Notice, notre personnage est là. Mais l'animation de l'identifiant est assez rapide, non ? Je vais donc simplement chercher un identifiant d' aventurier, le flipbook. Et puis ce que je vais faire, c'est une fois que vous aurez double-cliqué sur le flipbook à partir d'ici, maintenant l'identifiant de l'aventurier est là sur le côté droit et les détails, nous pouvons réduire la fréquence d'images. Je vais simplement cliquer dessus et je vais baisser la fréquence d'images pour me permettre de la ramener à neuf. OK, c'est une bien meilleure idée d'animation. Je pense que c'est beaucoup plus réaliste. Sur ce, je vais appuyer sur Ctrl S pour enregistrer. Maintenant, je pense que c'est une bonne animation de flipbook. Nous avons maintenant notre monde et notre caractère fondamental. Ensuite, nous allons voir comment commencer à ajouter du code parce que vous avez maintenant un caractère simple. C'est prêt. Nous avons appris à utiliser les sprites, mettre dans le jeu, les associer au personnage d'un joueur Mais si je montre ce qu'il y a sur mon clavier, le moment, nous ne sommes toujours pas en mesure de nous déplacer et d'interagir. Nous allons donc apprendre à faire tout cela après une petite session sur la façon de planifier et d'exécuter le game design. Passons à cela ensuite. 8. 007 Comment planifier votre jeu: C'est bon. Nous devons donc maintenant passer revue un concept de base qui vous sera très utile à l'avenir. Cela fonctionne dans tous les domaines de la vie, mais dans le développement de jeux, c'est particulièrement utile, d'accord ? Permettez-moi donc de commencer par dire que la planification est maîtrisée OK. La planification est bonne. C'est aussi simple que cela. Et par planification, je veux juste dire que vous allez apprendre à écrire des choses et à les suivre. Cela signifie que lorsque vous décidez du fonctionnement du jeu, des personnages ou de n'importe quel système, il vous suffit de le noter et d'essayer de lui donner vie. Permettez-moi maintenant de vous expliquer un peu plus en détail comment je vais vous montrer comment procéder pour vous assurer du succès car la plupart des causes de l' échec des projets de jeux indépendants, projets de jeux, des projets de jeux, des échecs généraux en général, sont le manque de planification et de suivi appropriés et clairs D'accord ? Maintenant, permettez-moi de vous expliquer cela un peu plus en détail. C'est bon. Donc, pour le développement de jeux, il faut utiliser un système simple que j'aime appeler D a A. D'accord ? C'est comme ça que je l'appelle. Je l'appelle D, a A. C'est essentiellement le système que nous allons utiliser pour le développement de ce jeu, et cela devrait vous sembler logique. Maintenant, Design. Le design signifiera, disons, que nous décidions que le personnage de notre joueur doit être capable d'attaquer avec une épée et de sauter partout. C'est fondamentalement cela, et plus tard nous lui donnerons un arc et des flèches pour un engagement à longue distance. C'est le design de base, le level design. Tu dessines juste des trucs. Une fois que vous aurez terminé cette étape de base, nous passerons au code. Dans cet exemple, le terme « code » signifie plans », «   apprendre à utiliser les plans Nous savons donc où nous voulons qu'il saute. Quels plans devons-nous organiser pour qu'il puisse sauter, d'accord ? Nous savons donc : Hé, je dois organiser ce nœud de plan, ce nœud de plan, celui-ci, puis le saut sera disponible, d' Une fois que nous en avons fini avec le bit de codage, nous passons à l'art. L'art, c'est avant tout les sprites, l'animation des sprites. Plus tard, si vous réalisez un projet de conception en trois dimensions, il inclura de la modélisation et de l'animation, mais il sera condensé en œuvres d'art. Enfin, le dernier point, mais non le moindre, est l'audio. L'audio consiste à obtenir le son adapté au jeu. Maintenant, avec cet exemple simple que je veux que vous gardiez à l'esprit, commençons par travailler sur le personnage du joueur, concevant un peu manière à comprendre ce que nous voulons qu'il fasse, puis nous passerons au code. Après le code, nous allons passer à l' art, puis à l'audio. OK. Faisons-le immédiatement. Maintenant, restons vraiment très simples. D'accord ? Alors laisse-moi le recopier. Nous sommes donc en train de concevoir un personnage de joueur, n'est-ce pas ? Alors, que voulons-nous qu'il fasse, n'est-ce pas ? Donc, pour commencer, nous voulons qu'il se déplace à gauche et à droite. OK. Ensuite, nous voulons qu'il attaque avec une épée. Après cela, nous avions également besoin d' une barre de santé de base, n'est-ce pas ? Il doit être capable de subir des dégâts. Appelons cela barre de santé et dégâts. Et puis, juste après l'attaque avec l' épée et la barre de santé, nous voulions également avoir un arc et des flèches. Pour tirer à distance. C'est la fin de la phase de planification. C'est un plan très simple. Il s'agit d'un plan de base, et nous allons passer en revue chacun des 11 plans. Oh, attends, bouge à gauche et à droite, et saute. OK, parfait. Il peut également sauter. Dans cet esprit, passons immédiatement à la vidéo suivante où nous allons apprendre un peu plus sur le mouvement, configuration des commandes, et commençons les choses à partir de là. 9. Explication détaillée de la façon d'ajouter des entrées de contrôleur: C'est bon. Commençons rapidement par la première chose à faire est de se déplacer gauche et à droite, puis de sauter. Commençons. Revenons-en à Unreal Engine. OK. Maintenant que nous sommes de retour dans Unreal Engine avec notre personnage, nous voulons pouvoir nous déplacer à gauche et à droite, et nous allons commencer par les commandes Maintenant, juste pour vous montrer visuellement, j'ai mon clavier Vous serez donc en mesure de savoir quand j'appuierai sur AWS et D. Nous allons principalement nous concentrer sur A et D pour commencer. Et puis en plus de cela, lorsque vous voudrez travailler sur Controller, je vous montrerai également comment faire en sorte que le mouvement soit basé sur le positionnement de votre manette et vos boutons. Maintenant, pour commencer, ce que nous voulons faire, c'est appuyer à nouveau sur Ctrl et sur la barre d' espace, et en dehors des caractères, revenons au dossier du contenu général, et juste ici, nous allons créer un nouveau dossier et l'appeler Controls. Si nous l'appelons commandes, c' est parce qu' il contiendra tout ce que nous utilisons pour déterminer les boutons sur lesquels le joueur peut appuyer. OK ? Alors allons-y. Donc, à l'intérieur des commandes, commençons par une commande simple, qui se déplace à gauche et à droite. Vous allez donc cliquer avec le bouton gauche de la souris. Et après avoir cliqué avec le bouton gauche de la souris, vous voulez accéder aux entrées. C'est là, et ce que vous voulez, c' est que vous voulez une action de saisie. Nous allons commencer par un seul. Et nous allons l' appeler Move Right. Donc, cette action de saisie ou ce bouton va faire avancer le joueur dans la bonne direction. Ensuite, nous allons revenir aux intrants. Mais cette fois, ce que nous recherchons, c'est un contexte de mappage d'entrée. Nous allons cliquer dessus. Et nous allons simplement l'appeler carte des joueurs. Nous avons donc Move wight, qui est une action de saisie unique, et nous avons une carte des joueurs La carte du joueur est essentiellement, comme vous pouvez le voir sur les icônes, un ensemble d'actions de saisie sur lesquelles vous pouvez appuyer. Maintenant, pour nous assurer que Move Wright fonctionne correctement, nous allons d'abord double-cliquer sur Move Right, et cela va ouvrir cette fenêtre. Vous pouvez donc commencer par une simple description de l'action, et nous pouvons simplement la décrire comme les mouvements du joueur. C'est vrai. Tu peux le garder comme ça. Et puis devrait-il se déclencher lorsqu'il est en pause ? Non, il ne doit pas se déclencher en cas de pause. Ensuite, réservez tous les mappages. Vous pouvez essentiellement faire en sorte que cela ne puisse pas être annulé, ou maintenant nous allons le laisser Et puis tapez la valeur, c'est important. Maintenant, nous pouvons changer le type de valeur. À l'heure actuelle, nous utilisons un booléen numérique. Vous pouvez le voir juste là. Les booléens sont essentiellement des uns et des zéros. Donc, si nous le définissons sur un booléen, il est activé ou désactivé Nous pouvons également le définir comme Axis un D ou Aces deux D. Mais en gros, le définir sur Aces un D garantira une valeur de 0 à 1 Par souci de simplicité et à titre de démonstration, nous allons commencer par faire en sorte qu'il ne s'agisse que d'une couche de livres numériques Maintenant que c'est fait, nous allons simplement le fermer. Puis, une nouvelle fois, la barre d' espace de contrôle, nous allons ouvrir la carte du joueur. Remarquez maintenant sur le côté gauche qu'il y a quelques mappages. Nous allons simplement en ajouter un en cliquant sur le signe plus, et lorsque nous faisons défiler la page vers le bas, remarquons qu'il nous indique le mouvement vers la droite. Cliquez sur ce mouvement à droite, puis à partir d'ici, nous pouvons simplement cliquer sur cette petite flèche pour faire défiler la page vers le bas. Cela nous montre maintenant qu'aucune action n'y est attachée. Cependant, ce que nous pouvons faire, c'est simplement cliquer dessus et nous devrions être D. J'ai donc cliqué sur D sur le clavier OK ? C'est ce que vous pouvez faire, car moteur Unreal est essentiellement capable d' écouter votre clavier Donc, si je clique à nouveau dessus et que je clique sur la barre d'espace, cela changera l' entrée en barre d'espace Si je clique à nouveau dessus et que j'appuie sur W W, c'est essentiellement le concept. Nous pouvons le laisser à D pour le moment. Ensuite, nous cliquerons simplement sur la classe, ce qui ajoutera une autre liaison. Cette fois, je veux cliquer sur le clavier. Je vais simplement ouvrir ma manette, appuyer sur sélectionner cette valeur, et appuyer sur le et bouton droit de la manette de jeu de ma manette J'ai insisté là-dessus et cela l'a conservé ici même, ce qui va être une bonne chose. C'est tout ce que nous devons faire à partir d'ici, d'accord ? avons donc maintenant configuré de manière à ce qu' il y ait une action de saisie « déplacer vers la droite ». Et dans les détails de la carte du joueur, si vous appuyez sur D, le mouvement sera exécuté à droite. Si vous appuyez sur le bouton droit de votre clavier, mais plutôt, désolé, de votre manette, le personnage du joueur se déplacera vers la droite ou exécutera l' action « déplacer vers la droite ». Une fois tout cela fait, nous pouvons maintenant accéder au plan du joueur et y ajouter ces commandes Alors, allez voir le plan du héros. Et maintenant, nous avons commencé apporter des modifications au plan du joueur lui-même Maintenant, la première chose que nous allons faire est de nous assurer d'une barre d'espace de contrôle. Nous voulons nous assurer que la carte du joueur est le contexte d'entrée utilisé dans Unreal Engine Nous allons maintenant le faire sur un nœud connu sous le nom de nœud de début de jeu. C'est ce nœud. Commencer à jouer signifie que c'est le code qui est déclenché lorsque Unreal Engine démarre ou lorsque cet objet apparaît dans le monde Alors faisons-le. Maintenant, la première chose que nous allons faire est d'un simple clic droit, nous voulons obtenir le contrôleur. C'est ce que nous voulons. Remarquez Paw, procurez-vous la manette, c'est bien. Ensuite, à partir de la valeur de retour, ce que nous voulons, c'est lancer une manette à deux joueurs. Cela signifie essentiellement que nous demandons à Unreal Engine d' accéder à toutes les commandes de ce joueur, puis le casting consiste à le connecter afin que chaque fonction passe par cet objet lancé C'est une façon généralisée de voir les choses. Ensuite, nous connecterons le début la partie à la manette du joueur. Une fois cela fait, notre manette est maintenant chargée, nous y sommes intégrés afin que nous puissions accéder aux fonctions à partir de celle-ci Maintenant, en tant que manette du joueur, vous voulez la faire glisser et taper « amélioré ». Et voilà, passez à la deuxième option, qui est d'améliorer le sous-système de joueur local C'est ce qui va nous permettre de sélectionner les différentes entrées que nous allons utiliser. Une fois cela fait, nous allons le faire glisser une dernière fois, et nous voulons ajouter un contexte de mappage. Vous pouvez simplement taper Ajouter une carte après avoir cliqué avec le bouton droit de la souris pour ajouter le contexte de mappage. Nous allons donc connecter ce nœud ici. Ensuite, descendez et nous voilà sur la carte des joueurs. N'oubliez pas que le contexte de saisie de la carte du joueur est celui que nous sélectionnons. Maintenant que nous l'avons sélectionnée, voyons rapidement comment ce code s'exécute. Event Begin Play signifie qu'il va commencer le jeu en procédant ainsi. En gros, il s'agit de suivre le plan du personnage du joueur Mais comme le personnage du joueur est dans le monde au début du jeu, il commencera par le faire. Cela va de soi lorsque l'événement commence à jouer. Ensuite, il s'agit de récupérer la manette, d'accord, puis de la transformer en manette de joueur. Nous avons donc accès à ces fonctions. Nous obtenons le sous-système du lecteur local pour les entrées, d'accord. Ensuite, nous disons : « Hey, utilise la carte du joueur comme contexte de mappage ». Maintenant que tout cela est fait et configuré, nous sommes maintenant en mesure d'utiliser l'entrée que nous avons configurée. Maintenant, permettez-moi de faire glisser tous ces autres nœuds vers le bas afin que nous puissions en avoir une vision claire. La prochaine chose que nous allons faire simplicité et pour nous assurer que cela fonctionne, nous allons cliquer avec le bouton droit de la souris et rechercher cette entrée. Maintenant, cette entrée que nous l'avons appelée se déplace vers la droite. Donc, tapez, déplacez et remarquez que cet événement d'action est déjà configuré ici. Comme il s'agit d'un booléen, c'est comme : « Hé, lorsqu'il est déclenché par une action de saisie améliorée, déplacez-vous vers Faisons-le simplement glisser et nous voulons commencer par imprimer. Imprime cette chaîne. Et dans le texte, nous allons dire : « Hé, joueur se déplace vers la droite ». Et c'est tout. Voilà, très bien. Maintenant, avec cela, nous allons pouvoir tester et voir si cela lit nos entrées. Donc, ce que vous voulez faire à ce stade, c'est cliquer sur Compiler, puis passer au niveau développeur. Maintenant, lorsque vous appuyez sur Play, sur le côté gauche, à chaque fois que vous appuyez, commençons par le clavier. Je vais donc appuyer sur D sur le clavier. C'est une bonne chose. Nous savons donc que cela fonctionne correctement. Permettez-moi de zoomer pour que le texte soit clair. Dès que j'appuie sur D sur le clavier et que je suis dans Aldon, je dois appuyer sur Play Appuyons sur Play. Nous y voilà. Maintenant que le jeu est lancé, lorsque j'appuie sur D sur le clavier, il imprime ces actions en imprimant ce texte à l'écran. C'est dire : « Hé, le jeu va bien ». C'est une bonne chose. Mais maintenant, testons cela avec le contrôleur. J'ai ajouté la manette. J'ai appuyé sur play o juste ici, j' ai appuyé sur play. Revenez ici et voyons si le texte apparaît. Donc, lorsque j'appuie directement sur la manette, oui, cela indique que le joueur est en mouvement. Lorsque j'appuie sur D sur le clavier, il est en cours d'enregistrement. C'est donc la base fondamentale pour permettre à vos entrées d' être lues plutôt que dans Unreal Engine Maintenant que c'est fait, ajoutons le mouvement. Mais juste avant d' ajouter le mouvement, je voulais également vous le montrer . L'un des avantages des plans. Alors maintenant, remarquez, je vais appuyer sur Play. Nous sommes maintenant dans ce monde. Je clique sur le héros, et vous pouvez voir ce que font les plans Je le fais glisser vers l'extérieur juste pour qu' il soit un peu plus à droite de l'écran C'est un moyen utile de débugger et voir comment les plans fonctionnent réellement Maintenant, en arrière-plan, j'ai cliqué sur le jeu Maintenant, je suis dans le jeu. Laissez-moi sortir du jeu. Maintenant, en tant qu'objet de débogage, je vais sélectionner Hero Maintenant que c'est sélectionné, je vais appuyer sur Play. Maintenant, nous jouons en jeu. Remarquez qu'au moment où j' appuie sur le bouton droit de mon clavier, cela indique que l'on appuie sur le bouton droit pour se déplacer vers la droite. Permettez-moi de vous montrer ma manette et certaines de mes pires journées pour que ce soit beaucoup plus clair. Je clique à nouveau sur Play. Remarquez donc que lorsque j'appuie sur ma manette, vous pouvez voir visuellement les plans montrant ce qui fonctionne Vous pouvez donc voir que cela a été lancé et qu'il fonctionne. Lorsque j'appuie sur D, il s'éteint et fonctionne. Quand j'appuie sur un autre bouton, rien ne se passe. Quand j'appuie sur autre chose sur le clavier, rien ne se passe. Ainsi, vous pouvez facilement définir votre plan sur un deuxième écran, peut-être l'autre côté de votre écran, lorsque vous souhaitez effectuer une double vérification de base, il est bon de voir votre code visualisé Ajoutons maintenant le mouvement au personnage de notre joueur. Pour ajouter l' entrée de mouvement, vous allez essentiellement utiliser le nœud d'entrée de mouvement ARD. Juste ici, après la chaîne d'impression, faites-la simplement glisser vers l'extérieur, puis vous utiliserez le mouvement ARD et à partir de là, faites défiler la page vers le bas, et vous remarquerez qu'il y a une entrée de mouvement. Cliquez sur Ajouter rapidement cela. Ensuite, en ce qui concerne la direction sauvage, nous devons choisir direction dans laquelle nous nous dirigeons. Maintenant, nous savons pertinemment que pour le personnage de notre joueur, si nous regardons ces directions, le Y contrôle la profondeur, le X contrôle le mouvement gauche et droit, et Z le mouvement vertical. Puisque nous savons que pour nous déplacer vers la droite, cela signifie que nous voulons nous déplacer positivement dans la direction X. Nous déciderons simplement que pour la direction sauvage, nous allons simplement dire un dans le sens X. Maintenant, cliquez sur compiler, puis revenez au niveau développeur et jouez. Et maintenant, chaque fois que j'appuie sur D sur le clavier et que ça va dans la bonne direction, c'est bien. Je suis en train d'appuyer dessus sur ma manette de jeu, et il fait la même chose. Maintenant, laissez-moi le visualiser pour vous. Vous devriez voir exactement la même chose sur votre écran si vous avez suivi correctement. En cas de problème, revenez toujours en arrière et référez-vous. Donc, sur ma manette, j'appuie sur la droite. Le personnage se déplace à droite. Sur mon clavier, j'appuie sur D. Le personnage déplace D et Whoop D hors du monde OK, j'ai appuyé sur Escape pour sortir de là. Mais oui, c'est bon. Nous avons donc effectué une saisie de mouvement de base. Dans la vidéo suivante, nettoyons-le pour le déplacer vers la gauche et la droite et ajoutons quelques touches supplémentaires au mouvement pour l'améliorer. Allons 10. 009 Mouvement de gauche et de droite avec le clavier et le contrôleur: C'est bon. Maintenant que personnage du joueur est capable de se déplacer vers la droite et que vous comprenez le fonctionnement des entrées, nous allons ajouter un mouvement gauche-droite au personnage et laissez-moi vous expliquer comment le faire correctement. Au départ, nous avons commencé par ajouter une entrée « Move Right , puis en l' ajoutant simplement à la carte des joueurs. Nous allons maintenant apporter un changement avant d'aller de l'avant. Renommons-le rapidement de déplacement vers la droite simplement appelons-le mouvement Parce que nous voulons avoir une seule action de saisie qui déplacera le personnage du joueur à la fois vers gauche et vers la droite. Je l'ai donc simplement appelé mouvement. OK. Ce sera notre point de départ. Une fois que vous aurez fini de changer ce nom, nous allons maintenant l'ouvrir, et il suffit de double-cliquer dessus. Et remarquez qu'à l'heure actuelle, il est simplement configuré en tant que Blayer numérique, n'est-ce pas ? Maintenant, changeons cela en un vecteur de l'axe trois D. C'est essentiellement ce que nous voulons L'axe 3 D nous permet de lui attribuer une valeur sur les axes X, Y et Z pour déterminer son mouvement. fois cela fait, la prochaine chose que nous allons faire est d'accéder à la carte des joueurs. Actuellement, la carte du joueur s'affiche sous forme de mouvement. D, laisse-moi ouvrir et m' assurer que mes clés sont visibles. Il est actuellement réglé sur le pavé D à droite, c' est-à-dire pour le déplacer dans la bonne direction, et également sur D sur le clavier. Mais ce que nous voulons, c'est pouvoir utiliser les sticks analogiques pour commencer. Nous voulons pouvoir utiliser la gauche et la droite sur les boutons, puis nous voulons également pouvoir utiliser A et D. Maintenant, pour que cela fonctionne avec le vecteur trois D actuel sous lequel nous l'avons configuré, nous allons devoir apporter une modification mineure. Nous allons donc commencer par laisser D ici. Ensuite, nous allons en fait ajouter un certain nombre d'autres boutons. Laisse-moi faire glisser ça. Je peux facilement le faire glisser vers le haut pour ne masquer aucun de ces boutons. Je vais simplement le sélectionner très bien et le faire glisser vers le haut. J'ai cliqué dessus Je vais l'appeler A parce que nous aurons besoin de A et nous aurons besoin de D. Ensuite, il y a le pavé directionnel à droite, puis je vais appuyer sur la gauche en fait. Permettez-moi d'abord d'appuyer sur la gauche, puis d'écrire sur le pavé D , puis il y aura une autre entrée, qui sera l'axe X du joystick L'axe X du joystick est essentiellement dû au fait que j'ai cliqué sur NRLenginet Listen, j'ai appuyé un peu sur mon axe X vers j'ai appuyé un peu sur mon axe X Si je clique dessus et que j'appuie dessus, il écoutera l'axe Y. Mais nous n'en avons pas besoin. Nous avons besoin de l'axe X, je l'ai donc configuré correctement. Maintenant qu'il est configuré exactement dans sa forme actuelle, permettez-moi de vous montrer rapidement ce que vous retireriez des mouvements de votre personnage. Maintenant, en revenant au plan du personnage, vous remarquerez qu' il y a eu un changement Maintenant, notre plan montre la valeur de l'action ici. Supprimons rapidement cette chaîne d'impression. Ce n'est pas nécessaire et connectez le déclencheur directement à l'entrée de mouvement. OK. Maintenant que cela est connecté directement, nous allons également connecter la valeur de l'action. Notez la valeur de l'action. Il montre X zéro, Y zéro et z zéro. Nous pouvons le relier directement à Wild Direction, juste là. Maintenant, avec cette seule modification de base, nous allons rapidement enregistrer et compiler. Ensuite, laissez-moi le faire glisser pour que nous puissions le voir de manière visible En l'ouvrant, j'appuie sur Play pour simuler. OK. Alors maintenant, remarquez que lorsque j'utilise les sticks analogiques, d'accord ? J'utilise actuellement les sticks analogiques de la manette. Laissez-moi le configurer à nouveau. Le stick analogique de la manette est désormais capable de déplacer le personnage du joueur d'une valeur négative sur X et d'une valeur positive sur X, et vous pouvez voir que le plan réagit Cependant, si j'appuie sur la gauche sur le pavé D, il avance. Si j'appuie à droite sur le clavier D, il se déplace vers la droite. Si j'appuie sur D sur le pavé D, plutôt que si j'appuie sur D sur le clavier, il se déplace vers la droite. Si j'appuie sur la touche A du clavier, il se déplace toujours vers la droite. Maintenant, c'est quelque chose que nous allons corriger tout de suite. Permettez-moi donc de double-cliquer rapidement sur le héros pour que le jeu me ramène ici, contrôle et sur la barre d'espace pour l'ouvrir, et je double-clique à nouveau sur la carte du joueur Nous apportons maintenant un changement assez simple. Sous A, A signifie sous le pire D, ce qui devrait essentiellement vous déplacer vers la gauche. Nous allons trouver des modificateurs, puis sous modificateurs, vous allez ajouter un scaler Tu peux le taper. Donc scalaire ouvrez-le , puis nous voulons le mettre à moins un Ensuite, nous avons terminé de configurer A , puis la manette de jeu gauche fera la même chose Allez ici, ajoutez un modificateur scalaire pour modifier l'échelle qu'il utilise afin que négatif sur l'axe X se déplace vers la gauche Configurez-le comme négatif. Et avec ça, c'est terminé. Nous appuierons rapidement sur la touche Ctrl S pour servir. Et maintenant, notre mouvement devrait fonctionner correctement. Je vais m' assurer que mon clavier est affiché et que ma manette appuie sur Play à gauche, plutôt qu'à droite sur la manette J'espère que vous pouvez entendre ce cliquetis. gauche fait la bonne chose, puis sur le clavier, A fait la bonne chose. D fait le bon choix, c'est bien. Alors je suppose que mon bâton a un peu de dérive, mais ça va. Ce n'est qu'un petit coup de bâton. Vous verrez cela à gauche, à droite, et c'est terminé. Maintenant que nous en avons fini avec le mouvement gauche-droite, revenons rapidement à la façon dont nous planifions les choses. Alors très rapidement, n'oubliez pas, concevez du code art. Nous en avons maintenant terminé avec le design de base. Nous savons ce que nous voulons. Nous voulons un mouvement de base entre la gauche et la droite. C'est simple Nous en avons terminé avec le code de base. À l'heure actuelle, le mouvement fonctionne et fonctionne correctement. Ajoutons maintenant des illustrations dans la vidéo suivante afin que l'animation fonctionne correctement. Faisons-le à l'avenir. Et une fois que nous en aurons terminé, nous ajouterons l' audio. Allons-y. 11. 010 Ajouter une contrainte, corriger la dérive du bâton et définir la position du joueur: OK, alors faisons quelques corrections mineures avant d'aller de l'avant. Maintenant que nous commençons à utiliser le mouvement, sélectionnez le personnage du joueur. Après avoir sélectionné le personnage du joueur juste dans les détails, transformons-le et veillons à ce que l'axe Z le laisse, tout en veillant à ce qu'il soit à zéro, zéro sur les X et Y, tout en veillant à ce qu'il soit à zéro, zéro sur les X et Y, afin de savoir que c'est endroit sauvage lorsque le jeu commence zéro, zéro, c'est en fait le centre du monde entier. Ensuite, nous allons rapidement corriger la dérive du joystick de la manette. À l'heure actuelle, lorsque vous jouez pour la première fois , lorsque vous vous déplacez, il y a toujours un petit coup de bâton. Maintenant, corriger la dérive du stick est simple : il suffit aller sur la carte du joueur, d'aller ici, accéder aux modificateurs et aux modificateurs, d'ajouter le modificateur et d' ajouter le modificateur connu sous le nom de zone morte Une fois que vous avez trouvé la zone morte, je l'ai déjà fait ici, laissez les valeurs telles quelles. Ainsi, il n'y aura plus de stack drift, comme nous le voyons dans la vidéo précédente. Maintenant que cela est fait, il va y avoir une dernière chose que nous devons renforcer avant d'aller de l'avant. Vous allez accéder au plan du joueur. Vous allez sélectionner le composant de la capsule. Et la première chose que nous allons rechercher , c'est que nous voulons ajouter une contrainte et ce que nous voulons faire, c'est l'appliquer aux plans Z et X. Ce que nous voulons faire, c'est connaître sa position sur le Y. Et cela signifie que le personnage du joueur ne peut plus se déplacer le long de l'axe Y. Cela va être très important. Permettez-moi de cliquer sur le héros lui-même et de fixer sa position le long de l'axe Y. Cela signifie que ce sera correctement deux D. Il ne peut plus se déplacer vers le haut ou vers le bas le long de l'axe y, uniquement le long du X, assurons-nous simplement de ne rien avoir foiré C'est parfait et c'est bien. Maintenant, dans la vidéo suivante, ajoutons rapidement le mouvement gauche-droite pour le personnage du joueur en ce qui concerne les animations. Allons 12. 011 Configuration de Paperzd pour la gestion de l'animation: C'est bon. Ensuite, nous allons ajouter une animation en cours d'exécution. Maintenant, pour ajouter cette animation en cours, la première chose que nous allons faire est retourner dans le dossier principal. Nous allons revenir aux personnages, le joueur, puis sous le joueur, retournera dans le dossier artistique. Maintenant, dans le cadre de l'art, nous allons faire une recherche rapide. L'un des avantages des sprites bien organisés c'est que nous sommes capables de les taper Notez maintenant que nous avons notre animation de course, plutôt que nos sprites de course, qui vont de 0 à 5, il suffit de les sélectionner tous Ensuite, faites des actions Sprite et créez Sprite. Terminé. Maintenant, je tape à nouveau Run in, en le gardant organisé, et je vais sélectionner 0-5 puis cliquer avec le bouton droit de la souris et créer un flipbook Nous avons donc maintenant ce flipbook d'Adventure Run. Double-cliquez dessus et voyons. Maintenant, les cinq animations se déplacent simultanément, c'est bien Maintenant, je vais rapidement prendre la décision de réduire ses images par seconde de 15 à 5 OK, maintenant ça regarde. Il n'y est pas encore. Environ sept heures. Environ dix. OK, je pense que dix images par seconde, c'est une animation raisonnable. Maintenant que nous avons cette animation de course de base, comment allons-nous l' appliquer au personnage de notre joueur ? Parce qu'à l'heure actuelle, le personnage du joueur est toujours là. Et ce que nous voulons, c'est que lorsque le personnage du joueur se déplace, nous voulons passer à ce sprite OK ? Pour ce faire, nous allons passer à autre chose, et c'est là que l'utilisation du papier Z D pour créer ces parcours d'animation nous simplifie la vie. Nous allons donc revenir dans le lecteur tout de suite, laissez-moi terminer, supprimer ce texte. À l'heure actuelle, c'est notre côté principal du joueur. Nous avons ici de l'art, et c'est un bon dossier à avoir. Nous allons créer un autre dossier, et nous allons appeler cela une animation. Maintenant que le dossier d'animation est créé, nous pouvons accéder au dossier d'animation et nous allons commencer à créer des éléments Z D en papier. Passez donc directement au papier Z D, et la première chose que vous allez ajouter est ce que l'on appelle une sauce d'animation. Tu devrais le voir là-bas. Maintenant, ce que nous allons faire, c'est l'appeler Hero Animation Sauce. Je vais donc appeler ça un héros. Sauce Paper Z de Animation. Nous allons juste en rester là. Maintenant, lorsque nous double-cliquons rapidement sur cette sauce d'animation, nous remarquons que nous avons un grand espace, mais que nous n'avons aucune nouvelle animation ici. Donc, ce que nous allons faire, c'est passer le coin supérieur gauche et ajouter une nouvelle séquence d'animation. OK. Et nous allons simplement l'appeler ainsi. Je vais le renommer. Je vais dire que c'est inactif. Maintenant que notre idole est prête, j'ai cliqué dessus sur le côté droit, elle montre une séquence d'animation Je vais faire défiler la page vers le bas et je remarquerai que vous avez immédiatement accès Id et Adventurer Cliquez sur Idle, et cela affichera l'animation inactive. La prochaine chose que nous allons faire est d'ajouter une nouvelle séquence d'animation et de l'appeler Exécuter, suivre le même processus, sélectionner l'animation Exécuter. Maintenant, nous avons plutôt animation inactive et nous avons l'animation exécutée. Assurez-vous qu'il n'est pas défini comme une séquence multidirectionnelle. Nous traiterons de la directionnalité de cette question ultérieurement. Double-cliquez sur Exécuter. C'est la course. Vous pouvez voir où se trouve sa position. On dirait que c'est un peu en avance par rapport au centre. Nous sommes inactifs. Le mode Idle est réglé à 100 % au centre. Exécutez et ralentissez. Tout semble aller pour le mieux. Ils sont correctement alignés. C'est une bonne chose. Nous avons donc maintenant la barre d'espace de contrôle. Nous avons notre sauce d'animation ZD en papier. Notez qu'il a créé un autre dossier avec des animations ou des séquences. Nous n'avons pas besoin d'y toucher. Et notre animation, en gros, notre sauce d'animation Hero Paper Z D contient une animation inactive et une animation courante. C'est parfait. C'est ici que tout commence. Maintenant que nous avons la source d'animation, il s'agit essentiellement d'une collection de toutes les animations que Paper Z D va utiliser. Maintenant que c'est fait, nous allons maintenant créer un plan d'animation, barre d'espace de contrôle une fois Maintenant, cette fois, passez au papier Z D, et ce que vous voulez, c'est le papier Z D, nommé BP. Remarquez donc qu'une fois que vous avez cliqué dessus, une nouvelle fenêtre s'ouvre , qui vous demande, alors, quelle sera la sauce d'animation parent et sélectionnez simplement la sauce d'animation Hero Paper Z di Animation. C'est donc dans ce conteneur que toutes les animations seront extraites. Maintenant qu'il est là, je vais simplement le renommer. Je vais le renommer Hero Paper Zi Anime BP. Maintenant, je vais rapidement double-cliquer sur ce plan d'animation Et nous voici maintenant dans un graphe d' animation qui sera responsable et contrôlera d' animation qui sera responsable et toutes nos animations. Il y a l'étoile sous forme de graphique d'événements, puis il y a un graphique d'animation ici. Et nous allons voir comment utiliser ces deux outils efficacement. Maintenant, ici, le graphe d'animation est l'endroit où nous allons configurer toutes nos différentes animations. Mais avant cela, effectuons une configuration de base dans le graphe des événements. Ainsi, dans le graphe d'événements, il y a un nœud appelé event on int ou on initiate, et c'est le premier nœud avec lequel nous devons interagir. Nous devons donc lui dire quoi faire au moment de l'initiation. Donc, ce que nous voulons vraiment faire, c' est qu'il démarre immédiatement, qu'il configure le lecteur en tant que variable et qu'il s'assure que le graphe d'animation y est connecté Maintenant, pour que cela fonctionne, la première chose à faire est que nous allons avoir besoin de l'acteur qui possède cet objet, d'accord ? Nous allons donc trouver le propre acteur, c'est la première chose que nous allons faire. Donc, quel que soit l'objet auquel nous l'attachons, qui sera notre héros , c'est ce que nous allons faire ensuite. Ce sera l'acteur propriétaire. La prochaine chose que nous allons faire est casting vers le joueur. OK, en fait, non, nous ne voulons pas passer au joueur. Nous voulons le plan. Nous appelons le plan héros, nous voulons donc adopter le plan de héros qui sera notre personnage de héros Une fois que nous aurons fini de choisir le personnage du héros, nous allons simplement le promouvoir en tant que variable, appelons-le, appelons-le héros. Nous allons simplement passer au statut de variable. Nous y voilà, et ça dit set et Hero. Maintenant, avec cette configuration, vous remarquerez qu' il y a maintenant une variable appelée hero sur le côté gauche . C'est bien et c'est tout ce dont nous avons besoin d'ici. Nous allons maintenant passer au graphique d'animation. Maintenant, ce graphique d'animation fonctionne de manière assez simple. Voici l'animation de sortie, et nous devons connecter un nœud au résultat. Pour le moment, cela n'a peut-être pas le plus de sens, mais ne vous inquiétez pas. Au fur et à mesure que vous le maîtriserez, fur et à mesure que vous l'utiliserez, cela prendra tout son sens Et au cas où quelque chose vous embrouillerait, envoyez-moi un message et je vous contacterai. Mais je vais tout expliquer étape par étape pour que cela ait du sens. Continuons dans la leçon suivante. Maintenant, avant de passer à autre chose, juste pour dissimuler, assurez-vous que votre événement figure sur le graphique de votre événement, nous choisissons l'acteur propriétaire, héros et le définissons comme héros en tant que variable. Assurez-vous que vous disposez de votre source d'animation contenant l'animation inactive et l'animation exécutée, l'animation inactive et l'animation exécutée. Une fois ces deux éléments configurés et organisés, c'est tout ce dont vous aurez besoin pour aller de l'avant. 13. 012 Jouer à l'animation en mode inactif avec Paperzd: C'est bon. Maintenant que nous avons configuration de base de notre plan d'animation, nous allons revenir au plan du héros Maintenant que nous avons configuré notre flipbook, compilez-le rapidement. Nous allons ajouter un nouveau composant et nous allons taper Z D. Ce que nous voulons, c'est un nouveau composant d'animation papier Z D. Avec ce composant, nous allons regarder vers la droite, et il y aura plusieurs options. Nous allons laisser le nom de la variable, un Zed di papier et remarquer qu'il demande une classe d'instance d'animation, et nous y voilà. C'est le plan de Hero Paper Zi Animation que nous avons créé dans la dernière vidéo Et maintenant, il demande également un composant de rendu, d'accord ? Donc, celui que nous allons sélectionner, nous voulons sélectionner le flipbook papier Parce que le flip book va être le composant sur lequel nous allons être celui-ci ici, c'est celui sur lequel nous allons rendre l'ensemble des images. Maintenant, juste pour nous assurer que tout fonctionne comme prévu, la première chose que nous allons faire est de venir ici et d'aller à la source du flipbook Actuellement, il est défini comme Adventure Idol. Nous allons juste venir ici et nous allons clarifier pour que le flip book ne soit plus rendu par quoi que ce soit. Nous allons utiliser le papier Z D pour gérer toutes nos animations. Donc, si nous revenons directement au niveau, remarquez maintenant que rien n'est montré. OK ? y a absolument rien et on se déplace de gauche à droite, et il n'y a rien, c'est bon. Maintenant, avec toute cette configuration, nous sommes prêts à commencer à ajouter les différentes animations. Nous allons donc revenir au plan d' animation papier Z D, puis au graphe d'animation, et c'est là que nous commençons à travailler sur les animations Nous allons donc appuyer sur le bouton droit de la souris et taper State. Et nous allons ajouter une nouvelle machine à états. La machine d'État, nous allons simplement l'appeler, lui donner le nom de héros. Tu peux le nommer comme tu veux. Ce ne sont que les noms que j'utilise puisqu'il s'agit du voyage d'un héros. Je vais me connecter du héros à l'animation de sortie. Maintenant que nous avons notre machine d'état initiale, et ce qu'est une machine d'état réside essentiellement dans son nom. C'est la logique qui détermine l'état dans lequel se trouve le joueur. Allons donc double-cliquer sur la machine à états pour entrer. Et vous remarquerez qu' au début, tout ce qu'il a est en panne. C'est bon. Nous allons simplement le faire glisser. Et nous allons ajouter une autre statistique d'animation. Appelons ce premier état d'animation inactif, car en gros, une fois que vous l'aurez chargée dans le jeu, la première chose que vous verrez sera, vous savez, le personnage qui reste inactif. Maintenant que l'animation inactive est définie, je double-clique à l'intérieur de celle-ci, puis je clique avec le bouton droit de la souris et je vais demander qu'elle passe en mode inactif. OK. Il essaiera donc de jouer cette animation inactive. C'est le résultat. Compilons-le rapidement, puis revenons au graphique d'animation. Donc, la façon la plus simple d'y penser est la machine à états produit des animations de sortie. À l'intérieur de l' état des héros en ce moment, dès le début, c'est-à-dire depuis sa sortie, tout ce que l'on voit, c'est l'idole. Et à l'intérieur d'Idol, tout ce que ça fait, c'est comme : « Hé, joue juste l'animation inactive ». Ce sera le résultat. Cela signifie qu'à l'heure actuelle, une fois que nous sommes revenus dans le niveau et que nous avons cliqué sur Play, nous ne devrions voir que l'animation inactive. Et donc, une fois que vous avez appuyé sur Play, Boom, nous avons l'animation inactive. Maintenant, n'oubliez pas que, compte tenu de la façon dont l'animation inactive est attachée, n'est connectée à notre flipbook papier aucune animation n'est connectée à notre flipbook papier. Il n'en est vraiment rien. C'est l'animation papier Z D, dédiée au héros Paper Zed Blueprint, qui contrôle tout cela Pour l'instant, revenons au plan d'animation. C'est ce qui contrôle notre animation. Maintenant que cela fonctionne correctement et devrait fonctionner correctement, assurons-nous ensuite que si le joueur se déplace à une vitesse dans le sens horizontal, il joue l'animation en cours. 14. 013 Jouer à l'animation de course avec Paperzd: D'accord. Maintenant que nous l'avons configuré pour que Pepa z gère notre animation inactive, notre prochaine tâche consiste à simplement jouer l'animation en cours Pour ce faire, revenons au plan d'animation Donc, pour être clair, depuis le graphique d'animation, double-cliquez sur le héros. Maintenant, nous sommes dehors. Maintenant, il est assez simple de créer un autre état d'animation. Nous allons simplement le faire traîner. Nous allons créer un nouvel état d'animation. Et cet état, nous allons l'appeler «  run ». C'est tout ce que nous allons faire. ce que nous appellerons « run ». Maintenant, remarquez qu'il y a quelque chose ici qui dit : «   Hey, idle to run ». Parce que maintenant, dans le graphe d'animation, nous allons passer d'une animation à une autre Alors, que faudrait-il pour passer du mode inactif à exécution ? Nous allons ajouter ce code, puis passer à la couche externe d'exécution et le faire glisser avec le clic droit et un clic gauche, désolé, pour revenir au mode inactif. Ici, tout va donc passer de l' état de fonctionnement à l'inactivité. Ici, tout va passer du mode inactif au mode de fonctionnement. Voyons ce que cela va signifier au niveau du code. Passons donc rapidement à l'animation Idle. Tout ce que cela fait, c'est qu'il joue l'animation inactive et c'est le résultat. Bien. Maintenant, revenez au héros, passez à l'animation de course. Il n'y a actuellement aucune course. Donc, la prochaine chose que nous allons faire est d'un simple clic droit, nous allons jouer à Run. C'est ce que j'ai tapé pour qu'Unreal Engine le trouve. Et comme cela se trouve dans notre source d'animation que nous avons configurée, vous pouvez simplement lier la séquence à l'animation de sortie. Maintenant c'est fait. Maintenant, si vous deviez compiler ici, d'accord, compilez rapidement. Même si vous revenez en arrière et que vous vous déplacez, l'animation de course ne sera pas diffusée. Ainsi, l'intérieur du plan sera simplement inactif pour s'exécuter Et il recherche une valeur positive pour indiquer qu'il doit entrer dans cette transition, un booléen positif Maintenant, je vais juste partager avec vous la logique pour rester simple, d'accord ? La première chose que nous allons faire est récupérer notre variable héros et de la faire glisser vers l'extérieur. Nous allons donc devenir des héros, d'accord ? Nous allons l'obtenir. Ensuite, nous allons le traîner à nouveau, et nous voulons obtenir sa vélocité. Faisons en sorte de faire défiler la page vers le bas. Vous voulez obtenir simplement de la vélocité. D'accord ? Maintenant que nous avons obtenu sa vitesse, nous voulons le diviser en une goupille structurelle. Maintenant, gardez à l'esprit que le déplacement vers la gauche et la droite se fait uniquement sur X. Nous voulons donc faire glisser la valeur X, et ce que nous voulons rechercher n'est pas égal. En d'autres termes, s'il n' est pas égal à zéro, il peut passer à la transition suivante. Maintenant, pour expliquer à nouveau la logique, nous demandons au personnage du joueur vérifier sa vélocité. Dès que sa vitesse n' est pas exactement nulle, je peux entrer dans cette transition. Et en quoi consiste cette transition ? Il s'agit de l'animation de course que nous avons configurée ici pour exécuter l'animation de course. Maintenant que tout est configuré comme ça, compilons-le et testons rapidement. Le joueur est donc immobile. Maintenant, lorsque vous vous déplacez, cela entre dans l'animation de course. Mais vous remarquerez que même si nous sommes en pleine animation, nous n'allons pas nous en sortir. Nous devons donc revenir au plan directeur. Nous avons ajouté le code passant de l'état inactif à l'état d'exécution. Venons ici et copions le tout. J'appuie sur Ctrl C pour copier tout cela. Alors sortons-en de ça, partons à la course au ralenti. Il indique littéralement que le moteur tourne au ralenti. Nous en avons fini avec idle to run. Travaillons sur run to idle. Et pour faire simple, je vais simplement coller tout ce qui précède, à l'exception d'un petit changement. Au lieu de dire : « Hé, si la vitesse n'est pas nulle, ce que nous voulons vérifier, c'est que nous voulons être égales, d'accord ? Donc, si la vélocité est exactement égale à zéro, elle disparaîtra de l'animation d'exécution. Revenons à l'animation inactive. que c'est configuré de cette façon, Une fois que c'est configuré de cette façon, revenons à la logique. Cela commence par passer directement à l'animation inactive et par la lecture de l'animation inactive. Si la vélocité sur X est supérieure à zéro, l'animation de course sera exécutée. Si la vélocité atteint zéro, elle revient en arrière et joue l'animation inactive. Une fois cela fait dans du papier, ce plan d'animation, revenons en arrière et vérifions-le pour de vrai dans le jeu Laisse-moi sortir ma manette pour ça. Test de vérité. J'ai cliqué sur Play. Parfait Lorsque je bouge, l'animation de course est diffusée. Quand je m'arrête, l'animation s'arrête. C'est excellent. Les animations sont correctement alignées. C'est une bonne nouvelle. Sautons rapidement du pont. OK. C'est parfait. C'est une bonne chose. Ensuite, permettez-moi de double-cliquer rapidement sur le joueur pour que je sois redirigé ici. Maintenant, bien que l'animation fonctionne correctement, vous remarquez que le personnage du joueur n' est pas orienté dans la bonne direction. Maintenant, ce sera un simple changement. Faisons-le dans la vidéo suivante. 15. Direction du sprite changine 014 en fonction de la direction du mouvement: C'est bon. Dans l' état actuel du jeu, si vous vous déplacez vers la gauche, avec le contrôle si vous vous déplacez vers la gauche, le joueur joue toujours l' animation vers la droite. Si vous vous déplacez vers la droite, le joueur a généralement raison. Réglons ça. Pour résoudre ce problème, il suffit de lire le plan du héros et vous y allez ici Maintenant, l'endroit où nous voulons placer le code qui va corriger cela se trouve plus près du côté droit. La première chose que nous allons faire est gagner en vélocité. Faites défiler rapidement, pas le volume, nous voulons de la vélocité. Nous allons obtenir la vélocité. Nous y voilà. Maintenant que nous avons obtenu la vélocité, nous pouvons la placer juste là. Nous voulons diviser l'épingle de la structure pour obtenir la valeur. Maintenant, puisque nous nous déplaçons dans le X, ce que nous voulons, c'est la vitesse du X. Nous allons simplement obtenir la valeur et nous voulons faire une simple vérification. Et ce que nous voulons, c'est faire une double vérification. Est-il supérieur à zéro ou est-il négatif ? Commencez simplement par une vérification de base pour savoir s'il est supérieur à zéro. Ensuite, nous allons faire glisser ce nœud et le configurer sur une simple branche. Maintenant, une branche est essentiellement un nœud utilisé pour vérifier les booléens Si le résultat est positif, en d'autres termes, si la vitesse X est supérieure à zéro, alors ce sera vrai. S'il est inférieur à zéro, ce sera faux. Maintenant que nous en avons fini avec ça, ce que nous voulons, c'est retourner ici. Nous allons prendre le flip book en papier puisque c'est ce qui va contenir nos animations, nous allons le faire glisser et le déposer juste là. Une fois que nous avons terminé, nous pouvons le faire glisser vers l'extérieur, puis nous voulons définir la rotation. Et nous voulons définir une rotation sauvage. Maintenant que nous l'avons configuré pour définir la rotation sauvage, nous allons le copier-coller, le déposer ici et connecter le flip book ici également, car nous allons définir la rotation sauvage deux fois. Nous dirons donc : « Hé, si c'est vrai, cela suivra la première rotation sauvage ». Si c'est faux, cela suivra la deuxième rotation sauvage. Maintenant, souvenez-vous que lorsque vous retournez quelque chose, vous le retournez le long de l'axe Z. Permettez-moi de vous le démontrer rapidement. Permettez-moi donc de configurer rapidement ce classeur en papier pour qu'il montre le sprite qui court Donc, ce que nous voulons faire, c'est faire pivoter le long de l'axe Z. OK. Ainsi, par exemple, il s'agit de zéro degré ou suffisamment proche de zéro. Il fait 180 degrés. Donc, ce que nous voulons, c'est que lorsque la vitesse X est positive, elle reste à zéro degré. Lorsque la vitesse X est négative, en d'autres termes, elle se déplace vers la gauche, d'accord ? Nous voulons qu'il fasse 180 degrés. Permettez-moi de le remettre à zéro. Et remettez les choses en ordre afin que rien n' interrompe les journaux par jour. Retournez dans le graphique des événements. Maintenant, nous allons dire : Hé, si la vitesse X est supérieure à zéro, la rotation définie sera nulle. Si sa vitesse X est inférieure à zéro, ce qui signifie qu'elle est négative, nous voulons régler sa rotation sauvage à moins 180 degrés. Maintenant, c'est un changement très simple. J'espère l'avoir bien expliqué. Nous allons revenir au niveau développeur, appuyer sur Play, et maintenant nous remarquons que lorsque je me déplace vers la gauche, le sprite suit et il ne revient pas à zéro tout de suite. Lorsque je me déplace vers la droite, le sprite suit cette rotation et s'arrête. C'est fantastique. C'est exactement ce que nous voulions. Nous allons maintenant passer à l'ajout de sons et de sons de pas à notre personnage de joueur. 16. 015 Ajouter des fichiers audio en cours: Nous avons actuellement notre personnage. Il peut se déplacer à gauche et à droite, et nous l'avons prêt. Revenons maintenant aux principes de base que nous utilisons. Maintenant, nous en avons terminé avec le design. Nous en avons terminé avec le code de cet élément en particulier. Nous en avons maintenant fini avec l'art pour cette chose en particulier. Nous devons maintenant passer à l' audio de l'animation de course. Faisons-le maintenant, en ajoutant un peu d'audio à la course. C'est donc ici que nous abordons quelques recommandations de base. Premièrement, je vous recommande vivement , en tant que développeur indépendant, apprendre à ajouter votre propre son Nous allons donc ajouter un son de course. Il existe de nombreuses façons d' obtenir des sons de pas. Certains d'entre eux se lancent et achètent des actifs, mais en tant que développeur indépendant, je pense qu'il sera très important de pouvoir créer son propre son Alors voyons à quoi cela ressemblerait, d'accord ? Maintenant, j'ai ouvert une application gratuite appelée Audacity Passons maintenant à Audacity. Audacity vous permet donc d'éditer et de modifier différents clips audio, d'accord ? Maintenant, remarquez que le clip audio que j'ai introduit s'appelle «   Je marche dehors s'agit essentiellement de quelques bruits de pas, que j'ai enregistrés en sortant, en posant mon téléphone à peu près à l'endroit où je marchais, et j'ai l' impression que j'avançais, mais en réalité, j' étais au même endroit Maintenant, il suffit d'écouter le son. D'accord. Nous avons tous ces différents extraits audio de moi en train de faire un pas. Maintenant, je n'aborderai pas tout ce que l'on peut faire avec Audacity car, comme je l'ai dit, il existe de nombreuses manières d' obtenir des sons Mais une chose qui est vraiment utile, c'est de rejouer ça. OK, je veux le décomposer fondamentalement pour pouvoir simplement le capturer. Laissez-moi essayer et je veux juste capturer un seul pas. Alors laisse-moi le glisser ici et jouer. Laisse-moi essayer de remettre ma souris à l'écran, je devrais me simplifier l' explication de ce que je fais. Je fais simplement glisser le pointeur sur une zone, puis j'appuie sur Play. Il ne jouera que ce segment sonore. OK, donc c'est un pas. Sympa. Mais ce que je veux, c'est capter le son dès le premier moment où le pied émet du son. OK, donc c'est ici pour ici. C'est ce que je veux. C'est le vrai bruit des pas. Je vais donc simplement le copier. Permettez-moi de faire un zoom arrière. Je vais cliquer sur Tracks, ajouter un nouveau titre. Laissez-moi le considérer comme une piste mono. Ensuite, en bas, je vais cliquer sur retour ici pour revenir à la tête de lecture , et je vais coller Oh, oui, je l'ai enregistré en stéréo. Donc, lorsque j'ajoute une piste, je dois ajouter une piste en stéréo. OK, maintenant, cliquez avec le bouton gauche de la souris et collez. Alors laisse-moi venir ici, couper le son, venir ici, et puis c'est moi qui marche Je vais le ramener. Laisse-moi jouer ce son. C'est un vrai pas unique Sympa. Maintenant que j'ai isolé un seul pas, je vais passer au fichier et je vais exporter le son Maintenant, il dit : « Hé, est-ce que je veux le mettre sur audio.com ? C'est cool. Non, je souhaite l'exporter vers mon ordinateur. Maintenant que j'ai fini de l'exporter, je vais travailler dur pour exporter environ cinq sons de pas différents Personnellement, je trouve qu'environ cinq bruits de pas est le chiffre idéal, et je ne vais pas vous expliquer tout le processus car ce serait un peu ennuyeux Je vais inclure ces sons dans le projet, mais je voulais juste les mettre ici. Passons maintenant à l'étape suivante. Une fois que les sons de pas sont exportés. Et lors de l' exportation, exportez-les sous forme de fichiers WAV. C'est toujours mieux avec Unreal Engine. Et maintenant, grâce à la magie du voyage dans le temps, j'ai organisé ces cinq sons de pas Maintenant, je suis parti et j'ai créé un dossier appelé Audio. Tu trouveras ça. Il sera téléchargeable pour vous. J'ai créé un autre dossier dans la section audio, et je vais l'appeler Footsteps, d'accord. Donc, dans le dossier des pas, je vais coller Let's see control V. Nous y voilà. Je vais coller les étapes 1, 2, 3, 4 et 5 D'accord. Maintenant que nous l'avons , une fois que vous l'avez obtenu, il vous suffit de les copier et de les coller dans un dossier pour notre projet dans Unreal Engine Donc, en trouvant notre dossier de projet, allez-y, allez dans le contenu. Maintenant, remarquez qu'il y a des niveaux, des commandes, des personnages. C'est cool. Comme tout ce son est pour un seul personnage, j'aime aborder les personnages, il y a le joueur, l' animation, l'art. Je vais simplement créer un nouveau dossier et je vais l'appeler audio. Je préfère avoir le son dans un dossier distinct pour chaque personnage, ce qui me permet de trouver plus facilement des informations. Je sais que certains développeurs aiment avoir un seul gros dossier pour tous les fichiers audio, mais je n'aime pas le fait qu' il soit trop désorganisé Je vais donc passer à l'audio. Je vais créer un autre dossier et je vais appeler ce dossier footsteps. D'accord. Ensuite, c'est dans le dossier des pas que je vais coller. Je colle avec Control via Windows, mais vous pouvez coller cela est le cas si vous êtes sur MAC, cela peut être un peu différent Maintenant que nous l'avons placé dans le dossier de contenu de notre jeu, passons à Unreal Engine et voyons comment les implémenter OK, alors maintenant nous sommes de retour dans le vrai moteur. Et remarquez que juste ici, cela commence par dire : « Hé, trois éditeurs d'actifs ont été ouverts avant sa dernière fermeture. Rouvrons-les ici, puis cinq modifications du contenu source ont été détectées En d'autres termes, il a identifié cinq nouveaux fichiers ici. Il s'agit donc de demander si vous souhaitez les importer ? Oui, je souhaite les importer. Faisons donc rapidement les importer et c'est fait. Nous allons donc passer au niveau développeur, appuyer sur la barre d'espace de contrôle pour l'augmenter. Et maintenant, vous remarquerez que sous lecteur, bien sûr, il a correctement identifié le dossier audio pour les traces de pas, et c'est parti. Nous avons les étapes 1, 2, 3, 4 et 5. Écoutons rapidement chaque extrait audio. D'accord. Bien. Bien. Bien. OK, nous avons donc cinq sons audio audio distincts disponibles pour nous. La raison pour laquelle je recommande d'en avoir au moins cinq, car vous pouvez en utiliser un. Mais si tu n'en joues qu'un, ça ne sonnera pas bien. La prochaine étape sera donc simplement d'ajouter ces sons à notre personnage, car le personnage n'émet actuellement aucun son lorsqu'il fonctionne. Corrigeons cela dans la vidéo suivante lorsque nous ajouterons ces sons. 17. 016 Ajouter un son spatial lorsque le pied du sprite atterrit: Il ne nous reste qu'à ajouter un composant audio pour commencer. Le composant audio est appelé file d'attente audio. Une file d'attente audio n'est qu'un moyen intelligent de rassembler plusieurs sons. Maintenant, ce signal sonore, appelons-le simplement player. Quelles étapes. Ce sera donc le nom de la file d'attente audio. Maintenant, si vous double-cliquez sur cette file d'attente audio, cela ouvre la file d'attente audio dans le moteur annuel, et c'est notre résultat. Si vous appuyez sur Play, vous ne devriez rien entendre maintenant car aucun son n' a été connecté à la sortie. Maintenant, ce que nous allons faire, je vais simplement les rassembler tous. J'utilise Shift et Click, et je vais tous les faire glisser en même temps. Maintenant, faisons rapidement un petit test pour voir si cela fonctionne correctement. Nous allons ajouter la première étape de saisie, d'accord ? Et une fois que nous en aurons fini, jouons le signal sonore. OK, donc celui-ci fonctionne correctement. Laisse-moi le casser. Essayons le troisième. OK, ça fonctionne correctement. Essayons le cinquième. Si cela fonctionne, c'est qu'ils fonctionnent tous correctement. Parfait. Maintenant que tout fonctionne correctement, il suffit de les randomiser. Maintenant, pour les randomiser, il suffit de cliquer avec le bouton droit de la souris et de faire une recherche aléatoire Ce qui devrait vous amener à graver un nœud sonore appelé random Donc, avec ce nœud aléatoire, je vais pousser la sortie vers le haut, amener ce nœud aléatoire ici et me laisser ajouter quelques entrées. Ils doivent être cinq. C'est une bonne chose. Je connecte donc tous nos différents sons de pas au nœud aléatoire afin qu'il puisse les répartir aléatoirement pour une variété de Connectez-le à la sortie. Maintenant, écoutons à quoi cela ressemblerait. Parfait. Notre file d' attente audio est maintenant correctement configurée. Maintenant que la file d'attente audio est correctement configurée, nous allons contrôler S pour enregistrer, nous allons la fermer et nous devons maintenant passer à notre personnage principal. Allez voir notre personnage. La première chose que je vais faire est de laisser l'aventurier sans rien faire pour qu'à chaque fois que nous viendrons dans le monde, nous puissions au moins y faire pour qu'à chaque fois que nous viendrons dans le monde, voir le personnage Nous allons maintenant ajouter un nouvel élément à notre personnage. Maintenant que c'est fait, passons rapidement au flipbook papier, et nous voulons faire glisser notre signal sonore vers le J'utilise la barre de contrôle et d'espace pour augmenter ce paramètre. Je maintiens ce signal sonore enfoncé et je le dépose sur le dessus du classeur en papier. Maintenant c'est là, joue ici les pas. Il est prêt à être utilisé. Maintenant, en ce qui concerne la position, elle commence par être au milieu du personnage. Je veux le faire tomber un peu près du sol, mais pas en dessous, pour qu'il ne s'accroche pas. Ensuite, après l'avoir sélectionnée, descendez sur le signal sonore et assurez-vous qu'elle est désactivée ici, activez automatiquement Nous ne voulons pas qu'il s'active automatiquement. Maintenant que cette configuration de signal sonore est telle quelle, nous voulons également modifier l'atténuation. Ici, il y a une atténuation de remplacement. Il suffit de cliquer dessus. Cela transforme le son en un son spécial, sorte que le son disparaîtra. L'un des meilleurs moyens d'obtenir son de qualité est, en matière de spécialisation, de passer son linéaire à un son naturel C'est à peu près ça. Ensuite, nous reviendrons et modifierons les détails ultérieurement. En parlant de son, une moto très bruyante est passée devant mon bureau. C'est cool. Quoi qu'il en soit, une fois tout cela fait et configuré, vous avez les traces du joueur, configuration des signaux sonores ici. Maintenant, nous devons simplement faire en sorte que lorsque le joueur bouge, il joue ce son. Maintenant, pour ce faire, nous avons configuré tous les sons dans le lecteur. Nous devons simplement indiquer au plan quand les jouer. Nous allons donc passer à nouveau au joueur. Nous allons passer à l'animation. Vous pouvez cliquer sur Source d'animation, ou vous pouvez simplement accéder à ce dossier contenant des séquences d'animation et double-cliquer sur Exécuter. Vous remarquerez maintenant que notre animation de course est en train de jouer. Permettez-moi donc de faire une pause. Il y a ici une piste appelée one, que nous allons utiliser. Je vais donc prendre la tête de jeu, à droite, et je vais simplement la faire glisser vers le haut jusqu'à ce que je voie le pied toucher le sol. Boom, juste là. Ici, environ 1 seconde, d'accord ? Cette première image d'animation lorsque le pied touche le sol, je vais ensuite ajouter une animation Notify. Je vais d'abord cliquer avec le bouton droit de la souris. Assurez-vous que je vous avertisse, puis je viendrai ici. Ensuite, je vais cliquer à nouveau avec le bouton droit de la souris, puis je vais dire « Hé, nouvelle notification ». OK. Il existe maintenant plusieurs notificateurs , mais nous allons simplement utiliser une nouvelle notification Il s'agit essentiellement d' informer le vrai moteur. Nous voulons faire quelque chose sur ce cadre, puis je vais l' appeler footstep sound En fait, permettez-moi d'être un peu plus long. Bruit de pas du joueur. À ce stade, nous avons créé un notificateur pour émettre le son des pas Avançons dans le jeu, puis encore une fois. Je vais donc cliquer sur le son du pas, puis sur Ctrl C pour le copier Viens ici, Control V. Il le mettra juste là. Nous avons donc deux points sur lesquels nous voulons jouer le son. Nous y voilà. Boom, joue le son. C'est tout ce dont nous avons besoin pour cette animation. Cela devrait donc fonctionner correctement maintenant. Avec la configuration de ces notificateurs de sons de pas de joueur, il suffit ensuite de passer au papier à la source d'animation, n'est-ce pas ? Plutôt que la source, nous passons au plan. Maintenant, à l'intérieur du plan, remarquez qu'il y a maintenant de nouveaux notificateurs, cliquez sur celui qui porte le nom correct, du pas du joueur. Et par ici, nous sommes prêts. Donc, la première chose que nous allons faire, c'est trouver notre personnage de héros, le traîner ici. Devenez un héros. C'est une bonne chose. Ensuite, retrouvons le héros. C'est ce qu'on appelle les traces du joueur. OK. Alors allons-y, et nous voulons connaître les traces des joueurs. Oh, désolée. Obtenez les traces des joueurs. Voilà les traces des joueurs. Il s'agit du composant audio, puis faites-le glisser vers l'extérieur, et nous voulons l'activer. Voilà, activate Activate rend essentiellement actif. Une fois cela fait, nous voulons maintenant jouer le son. Je vais suivre les traces des joueurs et je vais taper play, et le voici. Jouez, pour qu'il joue ce son. Laissez-moi le connecter ici. Associez les deux. Juste après son activation, il émet ce son, heure de départ zéro. C'est une bonne chose. Faisons un bref aperçu de ce que nous avons ici. Nous devons donc, après avoir reçu Notify en tant que héros, les traces du joueur, c'est ce que nous avons comme composant audio, l' activer et jouer. Cela dit, nous devrions maintenant entendre les pas des joueurs. Maintenant, allons-y. Parfait. Nos pas sont maintenant liés à notre animation de sprites en deux D. Maintenant, ce qui est cool, c'est que nous l' avons spécialement atténué Si je vais dans le héros, dans la caméra et que j' augmente sa position pour le déplacer vers l'arrière, disons environ 500 unités, soit moins 500 unités 500 unités négatives. Vous remarquerez que le son est nettement moins fort. C'est pourquoi nous avons recours à la spécialisation car si vous vous contentez de jouer le son, aurez l'impression qu'il se trouve partout dans le monde. Mais lorsque vous utilisez l'atténuation, sons seront basés sur la localisation, et nous avons également veillé à positionner la file d'attente audio dans un endroit naturel C'est une bonne chose. Passons maintenant à l'animation du saut. Nous allons commencer par configurer le code dans la vidéo suivante. 18. 017 Utilisation des commentaires pour organiser les nœuds du plan: Très bien, maintenant le personnage de notre joueur peut se déplacer à gauche et à droite, et nous pouvons les entendre. La prochaine chose que nous allons faire est d'ajouter une fonction de saut rapide à nos plans 19. 018 Configuration du contrôle et code pour ajouter un saut: Très bien, ajoutons donc l'entrée de saut. Nous avons donc notre mouvement là-bas. Nous allons simplement entrer dans les entrées, puis nous allons ajouter une action de saisie. Nous appellerons cela un saut d'action en entrée. Ce Jomo ? Où est le P. D'accord, ça s'appelle sauter. Maintenant, double-cliquons rapidement sur l'action de saisie du saut. Donc, description de l'action, je pense que nous allons la décrire comme une entrée de saut. Je pense que c'est assez simple. Est-ce qu'il se déclenche en cas de pause ? Non Quelle est sa valeur booléenne numérique Pour une action de saut, je pense que le booléen convient parfaitement Maintenant, avec toute cette configuration, nous allons fermer tout cela. Maintenant que nous avons configuré le saut ici, revenons à la carte des joueurs, la carte d'entrée. Il a des entrées complètes pour le mouvement. C'est cool. Nous allons ajouter un autre Whoa. Nous partirions, ajouterions une autre cartographie. Ce mappage sera donc une action d'entrée. Venons-en ici, et celui que nous voulons sélectionner est le saut puisque c'est l'actif que nous venons de créer. C'est cool. Nous allons passer au saut, et maintenant nous devons décider de ce que nous voulons que ce soit le saut ? Je vais le régler sur le clavier pour qu'il soit W W, c'est bien. Ajoutons-en une autre. W est un noyau. Il ne cesse de les étendre. Quoi qu'il en soit, permettez-moi également d' en faire une barre d'espace. Je pense que cela fonctionne parfaitement bien. Mais laissez-moi connecter rapidement ma manette. Alors maintenant, le contrôleur est connecté. OK. Oui, NRL Engine a reconnu que j'ai connecté ma manette Nous allons donc en ajouter un autre. Et je suppose que le joueur appuie sur A, mais que c'est A sur Xbox ou X sur X, vous savez, non, c'est A sur Xbox, X sur PlayStation. Cela devrait donc fonctionner correctement. Maintenant, notre action de saut est configurée. Cela fonctionne lorsque nous appuyons sur W. Cela fonctionne lorsque nous appuyons sur la barre d'espace, et cela fonctionne lorsque j'appuie sur le bouton X de la manette ou sur A, si vous êtes sur Xbox. Quoi qu'il en soit, avec tout ce que vous avez configuré, revenons au plan du joueur Et nous allons ajouter du code pour gérer le saut. Alors, zoomons. Je veux chercher un saut, puis je vais redescendre et il devrait s'agir d'événements d'action améliorés. Nous y voilà. Permettez-moi de zoomer un peu plus. Action de saisie améliorée, blocage. La valeur de l'action est une valeur booléenne, elle est donc activée ou désactivée Donc, une fois que c'est fait, il suffit de faire glisser déclencheur et de dire : « Hé, saute ». Essentiellement, nous avons un saut effectué uniquement sur ces deux nœuds. Donc, pour le tester, contrôlez S pour enregistrer, puis je vais venir ici et compiler. Passons maintenant au niveau. Allez jouer dans le niveau. Et ensuite, testons-le sur spaceb. C'est cool. Space B fonctionne, mais ce n'est pas ce que je voulais. Permettez-moi de désactiver cet enregistrement, étant donné que non, non, non, je n'en ai pas besoin. Appuyez sur Appuyez sur la barre d'espace ? OK, on fait un saut. Bouger vers la gauche, aller vers la droite, cool. saut avec la barre d'espace fonctionne, saut avec W fonctionne Et puis attendez, le contrôleur Exon ne fonctionne pas. C'est un problème. Revenons en arrière et vérifions-le rapidement. Cela peut être entièrement un problème M. Oh, pas ici. Je dois vérifier les informations saisies dans la carte des joueurs. Oh, contrôlez S pour enregistrer et vérifier à nouveau, cliquez dessus. Manette de jeu, face, bas, bas. OK, cool. J'imagine que j'ai dû faire quelque chose de mal. Manette de jeu, parfaite. OK. Cela devrait fonctionner correctement maintenant. Encore une fois, test rapide. W fonctionne, Spaceb fonctionne. X sur la manette ou plutôt le bouton orienté vers le bas fonctionne. OK, cool. Maintenant que le saut fonctionne en termes de code, la prochaine chose à faire, n'oubliez pas le DCAA, le design code art animation Ensuite, allons-y et ajoutons un peu d'art. 20. 019 Ajout d'une animation de démarrage: Maintenant, ce qui est beau, c'est que vous avez déjà de jolis sprites pour le saut Nous allons simplement revenir en arrière sur les personnages, sur l'illustration du joueur, et tout cela, c'est de l'art. Nous allons rapidement taper jump. OK, nous avons donc deux animations de saut différentes, d'accord ? Nous allons donc simplement sélectionner ces trois, d'accord, ces sauts d'aventure zéro, zéro pour sauter 003. Elles fonctionneront. Ensuite, une fois tout cela organisé, nous allons simplement cliquer avec le bouton droit sur Sprite Actions, puis, vous savez, créer des sprites Maintenant que nous avons créé ces sprites, nous allons taper à nouveau jump, il suffit de vérifier et de voir Voilà, nous l'avons. Nous avons ces trois sprites. Il suffit de cliquer sur chacun d'entre eux, puis de venir ici et de créer un flipbook Nous allons créer un flipbook il est écrit « Adventure jump » pour le moment Nous pouvons l'appeler Jump Start. La raison pour laquelle nous l'appelons Jump Start, vous pouvez le voir là-bas. C'est l'animation, car l'animation du démarrage du saut peut être différente de l'animation lorsqu'il descend et nous y reviendrons ensuite, mais c'est suffisant pour commencer, nous allons simplement la sélectionner et c'est génial Maintenant que nous avons cette configuration d'animation de base, revenons à nouveau aux personnages. Passons maintenant au texte, à l'animation du joueur, et nous allons passer à la source de l'animation, le papier D. Il y a déjà notre idole. C'est notre point de départ, et nous allons simplement en ajouter de nouveaux. Et double-cliquez dessus. Permettez-moi de le renommer. Nous allons l'appeler jump, dash start. D'accord, parce que ce ne sera que pour le début du saut. Après avoir cliqué dessus, venez ici, puis là, nous démarrons . Et c'est l'animation. Nous avons donc notre point de départ. Nous avons notre animation de course, notre animation d'inactivité, puis notre animation de saut. Ouais. Donc, la prochaine chose que nous allons faire, c'est tester cela. Nous allons éventuellement revenir et ajuster les cadres pour qu'ils correspondent mieux au personnage, mais c'est suffisant pour commencer. Ensuite, nous allons revenir au héros. Nous y voilà, nous avons ce saut de base. Maintenant, une fois que c' est déclenché, nous voulons jouer à cette animation de Hey, le personnage saute. Quand le personnage est en l'air, nous voulons savoir s'il saute. Maintenant que nous l'avons, nous avons ici et nos animations. Ouvrons également le plan d'animation. Nous l'avions reçu lors de la réception de Notify. On peut fermer ça. Nous sommes de retour ici. Nous sommes de retour ici. Nous avons notre période d'inactivité, nous avons une course, puis nous allons créer un nouveau set d'animation, que nous appellerons « jump start ». OK. Parce qu'il n'y a que le début , puis il y a le moment où le personnage tombe par terre. Nous allons maintenant passer de l'état inactif au point de départ. Nous allons également passer de la course à pied au point de départ, d'accord ? Et nous allons partir de, voyons voir, dès le départ, mm mm. Voyons voir. Non, pourquoi déménager ? Allez, bouge. Je veux déménager. Tu vas bien Donc ça y est. Voici donc notre carte pour le moment. 21. Logique des transitions d'animation saut 020: Nous avons maintenant ce bon ensemble de nœuds prêt. Nous allons double-cliquer à l'intérieur du jump start pour pouvoir réellement joindre l'animation de sortie , puis nous allons simplement appuyer sur play jump start. Donc, ces premières images après le saut du personnage. Maintenant que je l'ai enregistré, nous allons revenir au graphique. Donc, chaque fois que nous ajoutons le code, il passe de inactif à hey, il commence à sauter. Maintenant, pour savoir quand le personnage doit passer de l' inactivité au saut, c'est d'entrer à l'intérieur. Nous allons faire ressortir le héros, comme toujours. Maintenant que nous y avons accès, nous allons venir ici et nous allons gagner en rapidité. Et nous voulons avoir accès à sa vélocité. C'est le moyen le plus simple de savoir quand un personnage saute. Ensuite, nous dirons un plus grand tant que c'est supérieur à zéro, il devrait pouvoir entrer cela. Alors compilons. Donc, en gros, si sa vitesse verticale est supérieure à zéro, nous devrions voir cette animation de blocage. Maintenant, montrons rapidement ceci. Donc, en ce moment, les personnages d'Ido ont appuyé sur la barre d'espace. Remarquez qu'il joue l'animation du saut, mais elle ne sort pas de l'animation du saut. Donc, pour nous assurer que cela ressorte de l'animation du saut, nous revenons au plan Nous allons cliquer et faire glisser le curseur pour revenir au mode veille. Et puis dans Idle, en fait, je préfère simplement le copier pour ne pas avoir à tout retaper. Mais à l'intérieur, je vais ajouter le même code en partant de « hey as the hero », la vélocité. Mais cette fois, au lieu de dire : « Hé, es-tu plus grand que ça », je vais simplement dire : « Hé, es-tu égal à ? » Donc, s'il est égal à zéro, il peut redevenir inactif. Compilons cela rapidement, revenons au niveau. À IDO, nous sautons, nous revenons à l'identification. Nous pouvons marcher. Nous revenons au ralenti, nous pouvons nous promener, sauter, nous déplacer. OK. C'est cool. En fait, ce n'est pas mal, pas mal du tout. Maintenant, il existe de nombreuses façons de gérer ce saut. Une façon de gérer ce saut est simplement de voir où se trouve le saut que nous faisons au moment du saut. Continuez à taper Jumo pour une raison ou une autre. Nous allons donc passer au point de départ. Nous allons passer à ce flip book. Une façon de le gérer est de simplement venir ici et de le régler environ trois images par seconde pour commencer. OK, c'est bon. Sinon, je peux simplement supprimer la première image clé configurer pour qu'elle ne joue que les deux dernières images. Permettez-moi donc de supprimer également le second. Alors maintenant, il ne joue que ce genre d' animation flottante Permettez-moi de l'augmenter à six images par seconde. Il semble donc que c'est ce qu'il fait, alors nous pouvons simplement le fermer. Alors maintenant, je pense que c'est une animation de saut beaucoup plus réaliste et raisonnable. Mais remarquez que si nous nous déplaçons de gauche à droite et que nous sautons, cette animation n' est pas transférée uniquement lorsque nous sommes chez IDO que nous sommes en mesure de le faire Pour résoudre ce problème, nous revenons au plan et nous utiliserons le même type de logique, revenant au graphe d'animation à l' intérieur de cette machine à états Maintenant, nous pouvons passer de Run et nous allons essentiellement obtenir le même code, en entrant ici, en copiant tout ça. Pour passer de la course au démarrage, tant que la vélocité Z est supérieure à zéro, elle sera intégrée à cette animation Ensuite, nous copierons le même code. Alors maintenant, oh, non, non, c'est passer du départ au point de départ à la course à pied. Collez ceci. Ainsi, chaque fois que la vitesse Z est exactement égale à zéro, elle revient à cette animation. Maintenant, voyons à quoi cela ressemble. Nous y voilà. Remarquez que j'ai sauté et qu'il joue cette animation de saut. Il fait donc un peu froid dans l'air. Et c'est essentiellement la manière simplifiée et fondamentale configurer votre animation de saut. Nous avons maintenant notre animation de saut. Nous avons le code du saut. Le code du saut se trouve essentiellement ici. Et si vous souhaitez modifier l'une des caractéristiques du saut, il vous suffit d'accéder à la composante de mouvement du personnage, puis sur le côté droit, sous les détails, vous trouverez de nombreuses variables avec lesquelles jouer. Permettez-moi de taper rapidement jump pour que nous puissions en voir certains. Et vous pouvez simplement voir beaucoup de choses que cela vous montrera. Je vais vous montrer la vitesse de saut. Vous pouvez augmenter cela, arrêter la décélération, et il y en a quelques autres Maintenant, nous pourrons y revenir plus tard lorsque nous commencerons à parler de la création de niveaux et leur conception, car en général, vous basez vos niveaux sur la façon dont vous voulez que votre personnage se déplace. Nous allons donc entrer dans le vif du sujet. Mais pour l'instant, vous avez une idée de base. La prochaine chose que nous allons faire, n'oubliez pas que le DCAA est maintenant d'ajouter du son, car nous voulons qu' un son soit diffusé juste après que le personnage saute. Entrons dans le vif du sujet. 22. 21 Son de démarrage rapide: OK. Maintenant, allons-y et ajoutons simplement un son de saut. Maintenant, dans vos fichiers de cours, j'ai ajouté quelques sons de saut de base. Permettez-moi donc de passer rapidement à l'audio et de créer un dossier distinct appelé jump. Et à l'intérieur, il y a deux sauts. Le premier est le point de départ. OK, c'est un peu trop silencieux, mais il y a un son de démarrage, puis un son d' atterrissage lorsque vous atterrissez au sol. OK, ce sont donc les deux sons que nous allons utiliser. Mais commençons par un simple son de démarrage. Donc, pour le moment, permettez-moi de revenir en arrière. Si vous entrez, vous pouvez entendre ce son lorsque vous vous déplacez à gauche ou à droite. Mais il n'y a pas de bon son de mitrailleuse lorsque le joueur saute. Nous allons donc corriger cela. Revenons donc à notre lecteur, puis nous allons ajouter ce son de saut. Allons-y. Cette fois, nous n' utiliserons donc pas le plan d'animation pour ajouter son, car il s'agit d'un son que vous ne souhaitez avoir qu'une seule fois Maintenant, il existe un moyen d'ajouter le son. Nous allons simplement commencer par la barre d'espace de contrôle. Nous avons le son «   jump start » de ce lecteur. Nous allons le sélectionner, puis ici, nous allons créer une file d'attente. Maintenant que la file d'attente est créée, je vais donner un nom au joueur. Appelons ça Jump Start. C'est le début du saut. Maintenant, je vais le trouver et je vais le faire glisser sous le flipbook en papier Je le veux sous le classeur en papier. C'est juste en dessous. Je vais le sélectionner. Permettez-moi de revenir à la fenêtre d'affichage. Il s'agit d'un emplacement raisonnable pour le son. Je pense que c'est un bon endroit. Je vais le laisser là-bas et, bien sûr, venir ici. Assurez-vous. Voyons comment annuler l' atténuation est cliquée. Nous allons le laisser là et le régler sur un son naturel. Ensuite, nous voulons nous assurer qu'il ne fonctionne pas au démarrage. Nous allons donc faire défiler la page vers le bas. Nous recherchons l'activation automatique et désactivons l'activation automatique. Maintenant que c'est fait, disons à ce saut commencer à jouer lorsque le joueur saute. Maintenant, il y a deux façons de le faire. En fait, il existe de nombreuses méthodes, mais je voulais juste vous montrer comment pense Unreal Engine Si on le fait glisser ici, qu'on le sort et qu'on dit « Hey, play ». Nous lui avons essentiellement dit de jouer. Nous lui avons dit de jouer. Si nous le connectons sous déclenchement, vous avez dit que lorsqu'il est déclenché, faites l'animation du saut, puis écoutez ce son. Si nous le connectons ici, compilez, entrez. Maintenant, écoute. OK. Maintenant tu peux vraiment l' entendre. Je vais avoir besoin d'augmenter son volume et il fonctionne correctement. Entrez. Mais il joue quand je relâche le bouton. Laisse-moi mettre mes boutons à l'écran pour que tu puisses voir. Si tu déménages. Remarquez qu'il émet le son lorsque je relâche le bouton. Ce n'est pas ce que nous voulons. Brisons ce lien. Nous voulons qu'il soit là dès le départ. Maintenant que nous l'avons configuré pour qu'il fonctionne au démarrage, entrez. Ça joue immédiatement, ça démarre. Maintenant, pour améliorer encore le son, passons au composant de démarrage, d'accord ? Celui-ci est là. Ensuite, ce que nous voulons faire, c'est augmenter le volume. Je vais donc augmenter le volume à environ deux. Alors écoutons-le. J'espère que ce sera beaucoup plus audible, car il y a certaines choses que vous voulez vraiment que le joueur entende, comme le saut. OK. Oui, à deux fois le volume, le saut sonne bien. Maintenant que vous en avez fini avec ça, passons à autre chose. Nous avons ajouté un son de saut. Maintenant, n'oubliez pas qu'il s'agit du DCAA, design, du code, de l'art et de l'audio Nous avons créé le code pour le saut. Nous avons fait l'art, et nous en avons maintenant terminé avec le son. Passons à autre chose. Et dans la vidéo suivante, ajoutons simplement du son lorsque le joueur atterrit. 23. 22 Son d'atterrissage avec saut: Très bien, bienvenue. Nous allons donc maintenant émettre un simple son d'atterrissage. OK, donc pour ce faire, la première chose que nous allons faire est de passer au plan d' Iroharacter Donc, comme nous l'avons déjà organisé, il vous suffit de revenir et de cliquer dessus, n'est-ce pas ? Et pour tous les autres, vous appuyez simplement sur la barre d'espace de contrôle. Nous avons bien organisé nos plans, revenez dans le lecteur Le plan du héros, et nous passerons à l'endroit où nous configurerons notre gestion des sauts Maintenant, par souci de simplicité, je vais simplement copier cette zone de commentaires de base, la mettre ici, puis je vais dire « Hey, jump landing sound », pour m'assurer que tout le code ici sert à gérer le son d'atterrissage. Maintenant que c'est fait, la prochaine étape consiste simplement à revenir à l'endroit où nous avons indiqué les traces du joueur, puis je vais choisir de le dupliquer , car nous avons déjà certains paramètres de base, tels gestion audio, que je souhaite conserver inchangés. Maintenant que c'est fait, nous allons simplement appeler cela l'atterrissage par saut. Maintenant que cet objet d'atterrissage par saut est configuré dans notre lecteur, laissez-moi le compiler. Je vais le sortir et le déposer ici. C'est là que nous entrons en profondeur dans le code de base. J'ai zoomé. Il existe un nœud d'atterrissage. Nous voulons faire traîner les choses en longueur. Après l'avoir fait glisser, je vais appuyer sur Play Nous allons donc sortir le nœud de jeu. Nous avons donc notre saut d'atterrissage et notre nœud de jeu, ce qui est une bonne chose. Maintenant, nous avons simplement besoin d'un moyen simple pour Unreal Engine nous indique que le joueur a sauté Donc, le moyen le plus simple de le faire est simplement cliquer avec le bouton droit de la souris et de taper et, et je remarque qu'il existe déjà un événement appelé On event On Landed. Je vais le traîner. Je vais le connecter pour jouer. Et nous en avons fini, fondamentalement, en quelque sorte, mais nous ne l'avons pas encore complètement fait. Nous allons retourner à l'atterrissage de saut. Maintenant que j'ai cliqué dessus, vous pouvez voir qu'à l'heure actuelle, il est toujours prêt à effacer les traces Je vais plutôt descendre. Désolée, je sélectionne le son. À l'intérieur des actifs se trouve déjà l'atout pour le son du joueur qui saute et atterrit. Maintenant, cliquez dessus. Mais maintenant, il est configuré de telle sorte qu'il diffuse le son d'atterrissage du joueur Maintenant que c'est fait, je viens ici. Une fois que tout est configuré, je compile, j'entre dans le niveau, j'appuie sur Play. Oui, tu devrais entendre ça. Sympa. Maintenant, bien sûr, juste pour un test rapide, rompez le lien. Allons-y vite. Avons-nous compilé ? Assurez-vous qu'il est compilé ? Aucun bruit d'atterrissage. Revenez ici , puis connectez l'événement sur Landed à cette pièce, compilez. Maintenant, il y a un bruit d'atterrissage. Oui, j'espère que c'est audible. Si vous ne l'entendez pas clairement dans la vidéo, c'est peut-être parce que j'ai réduit le son du bureau à un niveau trop faible. Je m'excuse, mais cela devrait être très facile à entendre dans le jeu. Ensuite, je vais mettre en ligne de nouvelles leçons sur la conception de plateformes pour votre jeu en deux D. Maintenant, une chose que beaucoup d'entre vous ont peut-être remarquée ou non si vous suivez ce cours plus tard, c'est que j'ai disparu pendant environ un mois. En fait, j'étais à l'hôpital, mais maintenant je suis de retour. Tous les autres, ne vous inquiétez pas pour ça. Profitez simplement du reste des vidéos. Allons-y 24. 23 Ajouter des plateformes pour les plateformes: C'est bon. Maintenant que certains mouvements de base fonctionnent, nous allons simplement ajouter des plateformes avec lesquelles nous voulons que le joueur interagisse. Pour ce faire, nous allons essentiellement venir ici pour ajouter rapidement un objet, sélectionner des formes, et j' aimerais ajouter un simple cube, et voici notre cube simple. Mais là où il se trouve actuellement, si je déplace le joueur, n' interagira pas avec le cube. Je vais donc vouloir ce cube. Je vais le sélectionner. Et puis, pour ce qui est de sa position, je vais m'assurer que c'est bien l'objet qui pose problème ? Non. OK. J'ai sélectionné l'objet. Mettez-le à zéro sur l'axe y. En fait, un peu plus que zéro parce que nous voulons que ce soit non, zéro est parfait. Donc zéro, puis sur l'axe X, je vais le mettre à zéro. Maintenant, cela le déplace directement dans le joueur. Mettons-le donc un peu plus à droite, puis un peu plus loin sur le sol. Donc, sur Z, je vais le régler à 50. D'accord, c'est donc une plateforme simple et agréable. Maintenant, lorsque le joueur saute, en gros, lorsque j'appuie sur le bouton haut, remarque que le joueur est maintenant en haut de la plateforme Reviens ici, boum. Mais nous avons un petit problème. Notez que les pieds du joueur sont juste au-dessus de la plate-forme. Ainsi, lorsque le joueur est là, il est au-dessus de la plateforme, ce qui n'est pas vraiment ce que nous voulons. Cela se produit parce que le collisionneur de capsules interagit avec le monde. Nous voulons donc que les pieds du joueur touchent réellement la plateforme, et nous devons empêcher le collisionneur de capsules qui entoure le joueur d' interagir avec le monde Donc, lorsque nous nous approcherons un peu plus, vous remarquerez que vous voyez cet espace, cet espace juste en dessous. Je veux me débarrasser de cet espace. Pour ce faire, nous allons simplement changer la position du flip book en papier de manière à ce que les pieds soient au sol. Passons donc au personnage juste ici. Cool, c'est là que se trouve notre flipbook. Ensuite, je sélectionne le flip book, et je vais juste ajuster légèrement sa position Z. Nous y voilà. je l'ai juste déposé un peu sur la position z. Jetons maintenant un coup d'œil à cela dans le jeu. Maintenant, on dirait que les pieds du personnage touchent le sol, la surface, ce qui est vraiment très bien. OK. Il y a donc ce petit objet qui est maintenant dans le mur, et nous pouvons sauter dessus, et nous pouvons commencer à envisager d'ajouter d'autres plateformes. Ici, nous sommes debout dessus, sautons dessus, nous en descendons. OK. C'est un début. Ajoutons maintenant un peu plus à la plateforme. Puisque nous avons cette plate-forme ici, nous allons simplement la sélectionner. Faisons un copier-coller rapide, et voyons comment le configurer. Nous savons que cette plateforme sert à quoi ? C'est environ 50 sur l'axe X. Portons donc ce chiffre à environ 100 sur l'axe X. Et déplacez-le un peu plus vers la gauche pour voir si le joueur peut faire ce saut ? Oui, il est possible de faire ce saut, mais ce n'est pas possible de le faire. Le saut du joueur en ce moment est vraiment très court, et un saut court signifie que nous ne pouvons pas vraiment faire autant de jeux de plateforme sympas. Dans la vidéo suivante, nous allons voir comment ajuster la hauteur de saut du joueur et quelques autres éléments pour rendre le saut un peu plus agréable pour une plateforme. 25. 24 Comment personnaliser le mouvement et le saut du joueur: Ainsi, lorsque nous examinons notre meilleur atout, il y a ce que l'on appelle la composante de mouvement du personnage. C'est elle qui détermine toutes les propriétés du mouvement du personnage. Maintenant, rapidement, si nous examinons la question, il y aura deux ou trois choses. Nous avons la gravité. Donc, pour le moment, la gravité est réglée sur un. Maintenant, si nous entrons dans le jeu et que le personnage saute, c'est à cette vitesse qu'il revient au sol Mais si nous revenons en arrière et que nous changeons la gravité de 1 à la gravité de 1 à la gravité 5, nous pouvons donc voir une grande différence. Quand nous y retournerons, compilons rapidement. Lorsque nous revenons en arrière, le personnage revient très rapidement sur le sol. Maintenant, si nous optons pour quelque chose d'un peu plus doux, comme la gravité, je change simplement deux fois la gravité. Maintenant, nous revenons et la gravité est maintenant réglée à deux. La gravité détermine la rapidité le personnage de votre joueur retombe au sol. Maintenant que nous avons augmenté la gravité, nous devons augmenter le saut. Nous voulons que le saut soit beaucoup plus élevé. Maintenant, à l'intérieur de ces paramètres, remarquez qu'il y a beaucoup d'accélération, facteur de rupture qui ralentit, masse estimée, de mouvement par défaut, ne vous inquiétez pas pour la natation. Nous n'en avons pas besoin ici. Ensuite, nous parlons de marche. Maintenant, qu'est-ce qu'une étape ? Une marche est la plus haute hauteur, votre personnage peut franchir quelque chose. Vous avez de la friction au sol et de la vitesse de marche. Vous pouvez toujours les ajuster à votre guise. Ce que nous voulons vraiment faire, c'est changer les règles. Actuellement, la vitesse Z du saut est de 20 centimètres/seconde Comme nous avons doublé la gravité, pour obtenir la même hauteur de saut, nous devons doubler la vitesse du saut z. Faisons huit à 40 centimètres, désolé, huit à 40 centimètres par seconde, soit 8,4 mètres/seconde, ce qui est normal Maintenant, faisons un zoom arrière rapide, compilons, revenons en arrière et voyons la différence que cela fait dans notre saut. Remarquez donc qu'il saute haut puis qu'il descend rapidement au sol. Et maintenant, nous avons ce que j'aimerais appeler un mouvement raisonnable pour un jeu de plateforme Nous devons cependant apporter quelques modifications. Maintenant, remarquez, laissez-moi mettre mes entrées à l'écran pour que vous puissiez voir sur quoi je presse. Notez qu'en ce moment, lorsque nous nous déplaçons à gauche et à droite sur le sol, nous nous déplaçons à une certaine vitesse. Cependant, quand je saute, je perds en gros, j'ai sauté, j'appuie, c'est vrai, je ne peux pas. J'ai sauté, j'appuie sur la gauche, presque aucun mouvement, ce qui n'est pas vraiment fluide pour les joueurs de plateforme Remarquez que si je bouge, je peux faire ce saut. Cependant, si je ne bouge pas et que je saute, je ne peux pas faire ce saut. Cela est contrôlé par ce qu'on appelle le contrôle aérien. Maintenant, lorsque nous retrouverons notre héros, nous voulons rechercher le contrôle aérien. À l'heure actuelle, le contrôle aérien est réglé sur 0,05. Réglons ça sur. Mettons-le à un. Et maintenant, lorsque nous y retournons et que nous changeons la sensation d'incarner un personnage, lorsque je saute, je remarque que j'ai sauté et j' ai toujours ce mouvement. Donc, quand je suis ici, je peux appuyer sur Sauter et continuer à me déplacer vers la droite tout en continuant à le faire. Maintenant, juste ces quelques changements de base, je pense que nous avons créé une plate-forme suffisamment raisonnable en termes de plateformes de base que nous pouvons avoir. Cependant, comme nous utilisons la philosophie DCAA, nous disposons maintenant de quelques plateformes de base que nous pouvons mettre en place C'est ainsi que vous concevez les plateformes. Ce sont juste des choses que le joueur doit gérer et vous pouvez les configurer comme bon vous semble dans votre jeu. Nous devons maintenant déterminer comment ajouter de l'art aux plateformes pour qu'elles soient belles. Et nous allons apporter un petit changement à l'apparence de l'appareil photo, puis nous allons intervenir et ajuster certaines œuvres d' art sur les plateformes. Maintenant, pour ce qui est du changement de caméra, je vais simplement revenir au plan du héros Je vais sélectionner la caméra, et l'une des modifications que j'apprécie lorsque je travaille sur des jeux de plateforme est d' augmenter légèrement la hauteur Z de la Permettez-moi d'ajouter peut-être seulement 50 unités, ce qui change . Cela signifie que maintenant, lorsque nous regardons la façon dont le joueur est vu ici, la caméra est légèrement au-dessus du personnage du joueur. Remarquez donc qu'il n'est pas plat par rapport au sol. Nous l'avons légèrement augmenté afin examiner plus facilement les différentes plateformes, ce qui est essentiel. Maintenant , nous pouvons également ajuster légèrement la rotation. Maintenant, la rotation que nous allons sélectionner est probablement, laissez-moi vérifier. Est-ce X ? Non, ce n'est pas une rotation en X. Ce devrait être la rotation sur ce point, oui. Nous allons le faire pivoter de moins dix vers le bas. C'est ça. Sur l'axe Y jusqu'à la rotation. Ce qui signifie que la caméra est légèrement pointée vers le bas. Comme vous pouvez le voir, lorsque j' ajuste la rotation en Y, je peux la pointer vers le bas, je la fais passer à moins dix. C'est un petit détail, mais cela aide simplement le joueur à mieux voir le niveau parce qu'il regarde légèrement vers le bas Maintenant, après avoir apporté cette modification, nous pouvons réellement augmenter la caméra, laissez-moi la porter à environ 80 unités. Cela devrait donc nous donner une bonne vision du monde lorsque nous regardons vers le bas. C'est une bonne chose. Et vous pouvez y apporter toutes sortes de modifications pour qu'il corresponde parfaitement à ce que vous voulez. Maintenant, je pense que je veux rapprocher un peu l'appareil photo. De moins 500 à peut-être moins 450 pour qu'il reste beau. Et permettez-moi de l'élever dans le ciel à environ 100 unités sur l'axe Z. Sur l'axe Z, il est en hausse d'environ 100 unités. C'est juste pour vous apprendre, n'hésitez pas à les ajuster à quelque chose avec lequel vous êtes à l'aise. Mais pour moi, c'est bon pour le jeu de plateforme. Nous avons l'occasion de voir une grande partie du contexte. Nous pouvons voir le sol des plateformes lorsque nous y sommes. C' est assez cool. Bien, dans la vidéo suivante, ajoutons simplement un peu d' art au monde car nous avons sélectionné un mouvement de base pour les personnages. Nous avons des mouvements et des sauts raisonnables, et nous avons vu comment installer certaines plateformes dans le monde. C'est ce que nous allons faire dans la vidéo suivante. 26. 25 Ajouter des actifs de plateforme 3D à partir de Quixel: C'est bon. Lorsqu'il s'agit d'ajouter des actifs, la première chose que nous allons faire est un peu d'organisation. Assurez-vous donc de créer un dossier dans votre dossier de contenu, et appelez-le environnement. J'ai également ajouté un dossier intitulé Village parce que vous voulez vraiment organiser les actifs de votre environnement , puis créer un plan et l' appeler Platform Village Et le type de plan que vous devez créer est un plan Actor simple Fortement recommandé. Maintenant, lorsque vous double-cliquez dans ce plan. Oh, ouvrez l' éditeur de plan complet, d'accord ? Notez qu'il s'agit d'un simple objet vide de base. Et si j'entre dans le jeu, que je le fais glisser et que je le place devant le joueur, il n'y a rien. Ajoutons maintenant quelques actifs environnementaux. Donc, si vous êtes un modélisateur 3D et que vous en avez les compétences, vous pouvez simplement concevoir vos propres modèles et les importer. Vous pouvez également les ajouter depuis NRL Engine Marketplace. Personnellement, juste pour aujourd'hui, je vais vous montrer comment utiliser QuislBridge Maintenant, dans Quisle, vous allez vous connecter à l'aide de votre compte de développeur UnrelEngine Ensuite, permettez-moi de taper bridge puisque nous sommes à Quisle Bridge et de taper search for bridges Et voyons ce que cela va apporter. Tout cela est essentiel. Laissez-moi sélectionner le pont de pierre japonais, et je le ramène en piètre qualité. Si je le propose en faible qualité, c' est parce qu'il s'agit d'un jeu en 2,5 D et que je ne le charge pas avec beaucoup d' actifs inutiles en termes de complexité Cela met beaucoup de pression sur le GPU VA. C'est une question d'optimisation, mais vous pouvez faire ce que vous voulez. Une fois téléchargé, vous pouvez l'ajouter rapidement au projet. Une fois que vous aurez terminé, en l'ajoutant au projet, nous y retournerons simplement. Notez qu'il y a maintenant un nouveau dossier « anciens méga-scans ». Accédez à ce dossier, Japanese Stone Bridge, puis double-cliquez sur le Japanese Stone Bridge. Maintenant que nous avons cet actif ici, si nous le glissons et le déposons simplement dans notre village de plateformes, il n'y aura aucune collision. Donc, ce que vous voulez faire, c'est dans les détails, rechercher une collision. Ce qui nous donne accès à tous les paramètres de collision. Assurez-vous de sélectionner le maillage de collision simple comme maillage de base, d'accord. Assurez-vous de le sélectionner afin que son maillage soit utilisé pour ces collisions. Cela ne devrait être sur personne. Il doit être sur son propre maillage. Ensuite, définissez sa complexité de collision pour utiliser la collision complexe aussi simple que possible. En gros, cela garantit que la collision ne fonctionne que sur la partie où se trouve réellement un objet en trois D. C'est un changement très cool et simple. Le joueur peut passer par ici, mais tout le reste fonctionne en cas de collision. Maintenant, avec ce setter, revenons à la plateforme Maintenant, à l'intérieur de la plateforme, j'appuie sur la barre de contrôle et d'espace, et je suis juste un dragon qui le fait tomber là-dedans. Et avec ce glisser-déposer, passons au jeu, et le tour est joué. Et quand je clique sur Play, le joueur peut marcher dessus, ce qui est vraiment cool. Ce qui est vraiment cool. Et nous pouvons simplement l'obtenir copier-coller, puis le faire glisser ici. Maintenant, nous avons un petit pont en cours de construction, ce qui est vraiment cool. OK, ce qui est vraiment très cool et très, très simple à avoir. Et si nous voulons maintenant commencer à créer des plateformes, nous pouvons simplement le copier-coller, faire glisser ici et le soulever vers le haut. Voyons si le joueur peut faire le saut. Je viens ici. Boum, et le joueur peut faire le saut. C'est le moyen le plus simple d'importer des actifs, vous assurant qu'ils présentent la bonne collision pour votre jeu de plateforme 2.5 Un dernier conseil est d'essayer. Il y a quelques autres choses que nous pourrions faire avec le jeu de plateforme, comme renforcer la sécurité des sauts, mais je ne recommande pas de le faire Je pense qu'il vaut mieux tester vos sauts. C'est moins difficile pour vous en termes de correction de bogues et autres problèmes, et il est préférable de concevoir des niveaux propres afin que chaque saut soit possible. Cela étant dit, ajoutons un peu d'environnement au monde afin de lui donner un peu plus de vie. Ajoutez donc un environnement de trois jours. 27. 26 Comment ajouter des ressources à partir d'unreal engine store pour vos environnements: C'est bon. Nous sommes donc maintenant dans la boutique Epic Games, et maintenant nous y sommes allés, et nous avons choisi un environnement. Trouvez n'importe quel environnement qui vous plaît. Dans ma bibliothèque, je trouve que j'ai plusieurs environnements. Si vous voulez rester simple, vous pouvez vous procurer des échantillons gratuits de n'importe quel moteur Unreal Donc, comme en ce moment sur le marché, si vous y allez et que cela change de semaine en semaine en fonction de la date à laquelle vous recevez ce didacticiel, il y a des cavins gratuits Il y a quelques autres atouts comme une rue de Paris stylisée Vous pouvez les utiliser gratuitement pour des projets d'apprentissage, alors n'hésitez pas à les utiliser. Mais pour aujourd'hui, l' environnement que je voulais vraiment ajouter était cet environnement stylisé, et l'ajouter à un projet est vraiment simple Il vous suffit de cliquer sur Ajouter au projet. Vous sélectionnez votre projet, et il l'ajoutera au projet. Maintenant, dans la vidéo suivante, je vais vous montrer comment accéder à tous les environnements de votre projet, et nous allons passer à d' autres petits détails techniques. Maintenant, allons-y. Je suis ici en attente d'un téléchargement. Je ne vais pas faire une longue vidéo car nous attendons tous. Il suffit de passer à la vidéo suivante. 28. 27 Ajouter des ressources - Partie 2: C'est bon. J'ai donc ajouté le temple Infinity Blade au projet. Alors allons-y et voyons ce que nous obtiendrons. Vous remarquerez maintenant qu'il y a quelque chose dans Environment Park Two, qui propose des plans, des effets, des cartes et du matériel Il y a tout, non ? Mais commençons par les mesures, non ? Telles sont donc les mesures. Ce sont tous les trois objets en D que nous pouvons utiliser. Et si nous regardons le monde actuel, il y a donc deux ou trois choses. Voilà la zone active. Et dans le jeu en 2,5 D, cette ligne est la zone active où se trouve le joueur. Et puis il y a tout ça ici. C'est le contexte. Et nous voulons donner un peu de vie à l'arrière-plan. Faisons donc cela étape par étape. Pour commencer, ajoutons un peu de vie au sol. Nous allons donc simplement sélectionner le terrain. Et en termes de matériaux, nous allons changer de matériau. Je vais chercher un matériau qui soit plus naturel. Alors laisse-moi fouiller le terrain. Il y a le sol, le matériau des barrages, le terrain pour animaux de compagnie. Laissez-moi faire un barrage pour commencer. Voyons à quoi cela ressemble. C'est bon. Alors maintenant, tout à coup, le sol sous le joueur semble beaucoup plus granulaire, beaucoup plus réel Ensuite, la prochaine chose que nous allons faire, c'est d'ajouter un peu d'arrière-plan. Alors laisse-moi voir. Donc, à l'intérieur, il y a un énorme pilier ici. Permettez-moi d'ajouter cela. Ainsi, il suffit d'ajouter le sol et le pilier pour créer progressivement un environnement beaucoup plus animé. Permettez-moi d'ajouter quelques atouts supplémentaires. Je vais ajouter une petite maison ici. Remarquez que c'est une très grande maison. Je ne veux pas qu'elle soit ici sous forme de grande maison, je vais la sélectionner. Non Intéressant Pourquoi est-ce le cas ? OK. C'était clairement une interaction. Je vais le déplacer un peu plus en arrière avec vous Nous avons donc ce grand temple en arrière-plan, et c'est ainsi que vous ajoutez des actifs. Désormais, en fonction de ce que vous voulez et de l'apparence que vous souhaitez donner à votre environnement, vous pouvez ajouter différents éléments au monde. Maintenant, autre chose, vous remarquerez qu'en ce moment, nous pouvons voir les confins du monde. Ce que nous pouvons faire pour ne plus voir les bords, c'est que vous pouvez sélectionner rapidement l' objet au sol, à savoir le sol. Passez à l'échelle et nous allons simplement la redimensionner à environ 50 sur tous les côtés. Alors maintenant, tout d'un coup, il est complètement redimensionné, de sorte que nous ne pouvons pas voir ses bords On dirait que le terrain s'étire au loin. Si 50 c'est un peu trop, c'est bon. On en fait 25, ça aura toujours le même effet. Vous pouvez également le configurer de manière à ce qu'il y ait plusieurs dalles de sol qui s'étalent dans des directions différentes. Ne consommez simplement pas trop de ressources. Maintenant, gardez à l'esprit qu'en tant que développeurs, nous voyons tout cela, mais un joueur ne le verra qu'ici. OK ? Nous allons maintenant ajuster le sprite pour qu'il s'adapte un peu mieux au monde tel qu'il est Nous voulons qu'il soit doté d'un matériau qui lui permette de projeter des ombres. Comme il y a tellement de texture partout, le fait que le joueur projette des ombres sera meilleur pour le look. Nous y reviendrons dans la vidéo suivante. Et en fait, avant la prochaine vidéo, je veux que vous sachiez que je vais faire quelques ajouts généraux d'actifs. Il ne s'agira pas d'actifs sur la ligne principale où se trouve réellement le jeu, juste de quelques actifs environnementaux. Tu peux le faire aussi. C'est juste de la façade pour l'arrière-plan de la vidéo suivante. 29. 28 Regardez-moi réaliser un design de niveau de base et comment je pense des niveaux de base: OK, donc cette vidéo est juste un peu trop rapide , faute de meilleur mot Je n'appellerai même pas cela du level design, il s'agit simplement de placer certaines choses dans le niveau et de les ajuster. Est-ce que c'est du level design, je suppose que c'est du level design. Mais il suffit d'utiliser ces actifs et d'essayer de les positionner de manière logique ou en allant du début à la fin du niveau. C'est cool. Et puis je veux juste que ça fasse un trou. Oh, attends. Quoi ? OK. J'utilise donc beaucoup le clavier. Permettez-moi même de vous montrer le clavier, en fait, parce que j'utilise beaucoup de choses à copier-coller. Euh, hein. OK, c'est cool. Mais ensuite, je veux, il y a cette jolie arche. Non, je suis en train de le supprimer. Je n'en ai pas besoin. Essentiellement, je veux simplement avoir un ensemble de quelques actifs différents dont logique de disposer pour il est logique de disposer pour créer une sorte d'environnement. OK, c'est juste une assiette. Maintenant, si la sève est bonne, nous avons une certaine continuité. Ensuite, nous ajouterons quelques falaises. Je vais les faire pivoter car sans rotation, n'a aucun sens. Parfait. Ensuite, déposez-le dans le sol, déplacez-le légèrement vers la gauche, puis ramenez-le plus en arrière. Nous l'avons donc. Je vais voir ce que le joueur va voir. Le joueur verra comme un rocher, et oh, en fait, laissez-moi changer la position du soleil. Je me souviens bien, ajuste-le. Juste un peu la position du soleil. Oh, pour ajuster la position du soleil, j'appuie sur Ctrl Il suffit de contrôler et L. Je veux dire, je ne peux pas faire complètement noir. La couleur ira bien pour le moment. Ce ne sera peut-être pas très bien. Pour une raison ou une autre, mon sprite est super lumineux. Donc, tout ce que je vais faire, c'est redevenir le héros. Je vais sélectionner ce papier, ce classeur , masqué, éclairé Laisse-moi voir. L'éclairage est généralement ce qu'il est. Oh, mon Dieu, non. Laisse-moi voir. C'est bien trop brillant. Voyons voir. Couleur vive. Permettez-moi de réduire sa valeur de luminosité à partir d'ici. J'espère que cela contribuera à réduire sa luminosité. Allons voir jouer. Non, j'ai un peu aidé, mais c'est juste génial. Je pense que ce que je dois faire, c'est accéder aux paramètres du projet. Ensuite, je vais rechercher ce que l'on appelle l'exposition automatique. Oui, vous voyez que cette voiture expose celle qui nous embête. Je vais cliquer sur Désactiver l'exposition automatique. Et avec ça, voyons à quoi ressemble le monde. Oui, c'est beaucoup plus raisonnable avec Auto Exposure O. Mais maintenant, laissez-moi régler Control L. Permettez-moi de régler à nouveau la position du soleil. Oui, c'est beaucoup plus raisonnable. Et maintenant, voyons quel matériau. Il utilise un masque éclairé par un sprite. Nous voulons du matériel inspiré par des sprites. OK, ça ne me montre pas le matériel ici, mais pour régler ça, je vais y retourner. Et puis je vais demander, laissez-moi voir les paramètres. L'un des paramètres doit être l'un des paramètres ici doit être Afficher le contenu du moteur. OK, alors maintenant il affiche le contenu du moteur. Maintenant qu'il montre le contenu du moteur, je devrais voir plus de matériel. Donc je vais dire Sprite. Tu dois te moquer de moi. Non, j'ai besoin d'un Sprite allumé. Oh, sprite. Bien que je doive m' assurer d'utiliser le bon nom, masque Unlight Sprite Material Et je l'ai masqué. Tu dois te moquer de moi. Oh, mon Dieu. Où est le matériau des sprites illuminés par le masque Tu dois te moquer de moi. J'étais en train de taper ce texte. OK, donc ça ne me montre pas ça ici. Laisse-moi y retourner. Je reviens ici dans les paramètres. Laisse-moi voir. Afficher la localisation, afficher le contenu pour les développeurs, Afficher le contenu pour les développeurs. Cela ne devrait rien changer. En fait, laissez-moi voir le contenu du moteur. Nan. Non, je n'ai pas besoin de tout ça. Cela va en fait être difficile à trouver. Où se trouve ce matériel ? Revenez au Hero Paper, Flipbook, recherchez Shadow Cast Shadow Le flipbook est faux, je l'ai réglé sur vrai Alors voyons voir, est-ce qu'il projette déjà correctement les ombres ? Cela projette une sorte d' ombre, mais laissez-moi régler le problème du soleil. Le soleil est là maintenant ? Oui Maintenant, il projette une ombre un peu correctement. C'est très bien Cela sera suffisant. Encore une fois, juste le soleil, mec, laisse-moi dézoomer un peu pendant que je l'ajuste. Hein ? Où ai-je déplacé le soleil ? Ça y est. Là-bas. Je veux qu'il vienne ici. Vous savez, cela fonctionne, c'est essentiellement faire en sorte que le soleil se déplace dans la direction négative. Je n'ai donc pas l'habitude de bouger comme ça. C'est pourquoi j'ai un peu de mal. Mais oui, nous voilà avec une ombre sur notre dépit et un bon éclairage. Je pense que c'est beaucoup mieux. Cependant, examinons l'espacement logique du monde. Donc, nous allons le configurer tel quel, nous allons faire en sorte que le personnage du joueur commence ici. Donc, puisque cela commence ici, permettez-moi de masquer le contenu du moteur. Ça fait tout claquer. Je vais sélectionner les mesures. Ensuite, je veux que le joueur commence. Le joueur commence donc ici, ce qui signifie que je peux l'ajuster et le rendre négatif de 90 degrés. C'est donc de là que le joueur va commencer, d'accord ? Et puis je veux qu'il y ait ça derrière ça. Il est donc clair : Oh, mec, c'est une sorte d'actif terriblement bien placé Laissez-moi le récupérer, le copier-coller , le ramener ici. Je veux qu'il soit clair pour le joueur qu'il n'est pas possible de revenir en arrière à partir d'ici. OK. Mais c'est une coupure. Je n'aime pas cette coupure Par découpage, je veux dire que ces deux actifs sont liés d'une manière qui ne semble pas naturelle Je vais donc le ramener. En fait, je pense que je pourrais juste le faire, et cela résoudra le problème de découpage Cela semble un peu plus naturel. Laisse-moi peut-être avancer un peu. OK. Parfait. Nous l'avons donc fait. Cela semble raisonnable. Et puis, quand je clique sur jouer, permettez-moi de déplacer rapidement l'actif du joueur à partir d'ici. Maintenant, sélectionnons cet actif du joueur et déplacons-le en arrière. Je veux que ce soit ici. C'est une bonne chose. J'ai cliqué sur Play. OK. Pas mal Cependant, je n' aime pas cette collision. Je n'aime pas sa collision. Permettez-moi maintenant de faire une vérification rapide. Est-ce qu'il ajuste le positionnement sur le X ou le Zaxs ? Cela semble-t-il ajuster la position du joueur sur l'un des axes ? Je n'aime pas ça parce que cela signifie que cela va commencer à interrompre la position du joueur Je vais donc le sélectionner à nouveau. Je vais modifier sa position. Déplacez la solution ici pour qu'elle soit nulle, zéro sur l'axe y. Cela peut vraiment rester dans la même position. Cela ne changera rien. Oh, non, ça laisse un trou. Je ne veux pas qu' il y ait ce trou. Faisons également avancer les choses un peu. C'est donc ici que le joueur commence. Mais pour des raisons de protection, nous allons ajouter quelques limites. Maintenant, qu'est-ce que je veux dire par lié ? Ce que nous allons faire, c'est ajouter ce que nous voulons appeler un bloc ? Oui, il s'agit d'un volume bloquant. Et nous allons le placer juste ici. Est-ce au bon endroit ? Non Faisons avancer les choses ici. En gros, c'est un mur invisible, donc le joueur ne peut pas le traverser. Maintenant, quand je clique sur Play, le joueur ne peut plus traverser. Le joueur ne peut pas traverser, ce que je trouve vraiment cool. C'est bon. Maintenant que c'est fait, je vais également ajouter autre chose. Je pense que je vais ajouter « laissez-moi voir ». Je vais venir ici pour les effets visuels, le post-traitement. Brouillard d'une hauteur exponentielle. Maintenant, avec ce brouillard, voyons voir. Je voudrais ajouter un brouillard d' une hauteur exponentielle. Densité du brouillard, permettez-moi d'augmenter ce point, c'est bien pour les garçons. Ah. Ce brouillard n' interagit pas bien avec le monde, je vais donc le supprimer. Je vais venir ici pour voir notre brouillard de référence à une hauteur exponentielle Oh, il faut qu'il soit très haut pour commencer à interagir. Je vais donc augmenter ce point un peu. J'essaie de me remettre dans le monde. C'était mon acteur principal. Héros, double-clique sur lui pour que je puisse me relever. OK, je vais donc sélectionner le brouillard à hauteur exponentielle, puis je vais le soulever. OK, donc oui, ça ajoute un peu plus de brouillard. Donc, à environ 3 000, c'est parfait. Je pense que c'est juste la bonne quantité de brouillard. Nous devons maintenant combler ces lacunes car il y a un trou dans le niveau que je n'aime pas. Je vais peut-être capturer ça. Je vais le copier et le coller, faire glisser ici, le ramener, puis je vais le faire pivoter un peu pour qu' il ne ressemble pas à la même formation rocheuse. Cliquez dessus, ramenez-le également. Voyons à quoi ça ressemble du début à la fin. On dirait qu'il y a une formation rocheuse là-bas. Encore une formation rocheuse. Et passons à autre chose. Écoutez, il y a une sorte de tour de guet ici, mais je ne peux pas dire de quoi il s'agit. Nous sommes juste cela pour que ce soit plus près du sol et pour voir cela. Ensuite, il y a ces deux plateformes. Mais je veux qu'il y ait encore plus de choses ici. Copiez et collez ce chiffon ici. Non, ça ne sera pas assez beau. Mais permettez-moi de le faire pivoter un peu, voir s'il convient. OK, ça correspond un peu à une sorte de poisson. C'est un peu triste. Amène-le ici. D'accord ? Ça y va en quelque sorte. Quelqu'un remarquera-t-il cet écart ? Je pense que les gens le remarqueront. OK, alors je vais sélectionner ceci. Je vais double-cliquer dessus, soulever un peu, déplacer légèrement vers l'arrière pour que cette formation rocheuse soit là Je veux juste qu'on le fasse pivoter ensuite. L'axe X, non. Fais-le tourner un peu sur le Y. Juste un peu. Je ne veux pas que le joueur voie quelque chose de bizarre, mais il faut combler toutes ces lacunes. À quoi ressemblera-t-il vu du sol ? Oui, il y a un clip, donc je vais le déplacer vers l'arrière OK, donc maintenant il n'y a plus de coupure. Cela ressemble à une véritable formation rocheuse. Mais maintenant, je vais les sélectionner tous les deux en utilisant Shift, pour les rapprocher un peu plus ici. Et avec ces deux là, je vais les ajouter. Je veux un autre maillage. J'ai besoin d'un autre filet. J'ai besoin d'un autre filet, donne-moi quelque chose de cool. Je me demande : qu'est-ce que je veux, un escalier, peut-être une autre porte. Non Ce que je veux, c'est une montagne. Puisque je veux d'abord voir s'il y a une montagne dans ces atouts. Nan. Donc, pour avoir une formation montagneuse, je vais simplement double-cliquer dessus, pousser vers l'arrière, puis je vais l'agrandir Puis déplacez-le vers l'arrière, un peu vers l'arrière. Alors laissez-moi le copier-coller. Ensuite, je vais le traîner ici. Ensuite, je vais l' insérer une fois de plus pour qu'il corresponde là-haut. Enfin et surtout, je vais le récupérer, puis je vais le copier-coller. Mais le collage, je vais le déplacer le long l'axe X d'environ quoi ? Déplacez-le. Permettez-moi de faire un petit zoom arrière. Laisse-moi juste le traîner ici. Laissons le monde continuer à partir d'ici. Faites-le sortir. Boum. Alors je vais chercher ça. Copiez-le et collez-le , faites-le glisser ici. Je vais le faire tourner sur le Y, le rapprocher, le copier-coller à nouveau, faire glisser ici, le faire tourner à nouveau sur le Y. pousser ici puis le pousser ici Maintenant, d'accord, je pense qu' en termes de conception de niveaux super basique ou plutôt de conception d'environnement, cela devrait fonctionner. Je vais donc venir ici. Lorsque je clique sur Play, le joueur commence à partir d'ici. Ils ne peuvent vraiment pas voir grand-chose d'autre. Cela semble plutôt normal. Rien de très triste pour l'instant. Tu déménages. Voici quelques formations rocheuses. Si nous devons y ajouter des plateformes pour lui donner un peu de vie. Mais ensuite, continuez : Oh, ce sont les petites plateformes que nous utilisons pour tester le saut. C'est cool. OK, au revoir. Continuez à bouger. Oh, regarde ça. Il y a comme ces deux statues de pierre ici. Je me demande ce qui va se passer ensuite. Oh. Oh, ce n'est pas sur le terrain, mais c'est facile à réparer. Et puis bouge, bouge, bouge. Oh, région de Bosht. OK, attends. Attends, tiens le coup. Prends ça. Assurez-vous qu'il est dans la bonne position, enfoncez-le un peu dans le sol. Laissez-moi sélectionner le joueur. Où est le joueur ? Le joueur, permettez-moi de le déplacer à 3 000, c'est-à-dire juste ici. Je l'ai fait avancer. Faisons donc ce test, rap, ra, ra, ra, boum. Et puis c'est dans cette zone que le combat contre les boss sera rude. Et puis il devra y avoir un volume bloquant. Pour que le joueur n'ait jamais l'idée de franchir ce cap. Donc, pour ce faire, laissez-moi voir ce que je voudrais ajouter . Permettez-moi simplement de dire non, non, non, en fait. Oui, non, je vais m'en servir. Non, je ne veux pas m'en servir. Je voudrais utiliser autre chose, quelque chose de simple, qui bloquera simplement cette zone. Oh, ça a l'air bien. Ça a l'air bien. Je vais donc le connecter ici. Et boum, le joueur ne peut plus passer par ici tant qu'il n'a pas vaincu le boss final. Maintenant, nous allons également l'étendre un peu. Maintenant que c'est redimensionné, permettez-moi de le reculer un peu Mets-le en avant et perfectionne-le. C'est ça. Je pense que c'est la base de référence. D'accord, c'est une mise en page de niveaux généralisée assez bonne. Maintenant, laissez-moi sélectionner le joueur. Faites-le revenir en arrière. Par ici. Je joue. C'est donc ici que le joueur commence et recule. OK, un instant, quelqu'un est à ma porte. Je reviens d'avoir répondu à mon chien. D'ailleurs, ce sont des activités de développement de jeux vraiment normales. Hum, la vie ne s'arrête pas parce que tu fais de la plongée sous-marine. OK, donc quand je regarde ça maintenant, ce n'est pas la meilleure chose qui soit. Mais si vous le faites, vous pouvez toujours, avec plus de temps et d'amour, ajouter encore plus de choses au monde. C'est cool. Hmm. Quoi qu'il en soit, passons à autre chose. Et dans la vidéo suivante, nous allons approfondir un peu plateformes et voir comment procéder, ainsi que, vous savez, gérer un système de décès et de santé. Cela a été un peu différent. Il ne s'agit pas vraiment d'un didacticiel vidéo. J'espère que tu as appris quelque chose. Je voulais vous montrer comment ajouter et organiser des actifs pour créer un niveau. Mais je suis sûre que tu peux faire quelque chose de plus beau que celui-ci. Et quand tu le feras, envoie-moi la photo, d'accord ? Je suis vraiment intéressée. Bon personnel, allons-y. 30. 29 Partager les commentaires sur la qualité de l'enseignement et de l'apprentissage: Maintenant que vous avez passé un certain temps à suivre le cours et à apprendre, je souhaite avoir votre avis sur la façon dont l'enseignement est reçu et sur le déroulement de votre apprentissage. Je sais ce que signifie passer du bas de la classe au sommet. Et quelles sont les stratégies utilisées. Donc, si vous rencontrez des difficultés pour apprendre, contactez-moi. Je réponds à tous les messages dans les 24 heures. Et puis, en ce qui concerne mon style d'enseignement, veuillez me faire part de vos commentaires si quelque chose n'est clair ou n'est pas bien expliqué et démontré. Il est vraiment de ma responsabilité de m'assurer que toutes les connaissances sont bien présentées et que vous avez tout ce dont vous avez besoin. Qui mettent en pratique tout ce qui est enseigné dans ce tutoriel. En outre, nous poursuivons avec d'autres leçons sur la façon de créer des systèmes de combat et de l' IA pour la plateforme 2.5 d. Passons à autre chose et apprenons. 31. 30 Vérification des progrès du cours: Maintenant, dans cette vidéo, je veux que vous fassiez une vérification rapide de vos connaissances, et vous n'avez qu'à poser deux questions. Premièrement, tu peux le faire ? Deuxièmement, si vous n'avez pas la capacité de le faire, revenez en arrière, réapprenez et entraînez-vous à le faire une ou deux fois, puis vous pourrez aller de l'avant. C'est la clé la plus importante et la plus essentielle pour vraiment apprendre des choses. Passons ensuite en revue chacune des choses que vous avez apprises jusqu'à présent. Nous avons donc commencé par apprendre comment obtenir Unreal Engine et créer un projet dans Unreal Ensuite, nous sommes passés à la façon de créer un niveau de développement de base qui soit simple pour que nous puissions commencer à le compléter avec ce dont nous avons besoin. Une fois que nous avons fini de définir ce niveau de développeur, nous sommes passés à l' installation de Paper Z D, plugin officieusement compatible, que nous allons utiliser pour gérer nos différents actifs de sprites et animations dans que nous allons utiliser pour gérer nos différents actifs de sprites et animations Ensuite, nous sommes passés à l'ajout d' un personnage de base au monde, qui sera utilisé pour interagir avec notre monde de jeu. Il s'agissait de la configuration initiale sans ajouter la possibilité au personnage du joueur de se déplacer dans le monde. Ensuite, nous sommes passés à la façon d'importer des sprites dans Unreal Ensuite, nous sommes passés à la configuration animations inactives pour le personnage du jeu. Une fois que cela a été fait et que nous avons interagi avec Unreal Engine, nous sommes passés à quelques conseils généraux sur la façon planifier vos conceptions de jeu en tant que développeur de jeux, qui visent essentiellement à vous apprendre à réduire le temps vous perdrez et à vous concentrer sur ce que vous avez prévu pour votre Ensuite, nous avons étudié le fonctionnement des entrées du contrôleur dans Unreal Engine et comment les utiliser. Maintenant que cela a été compris, nous avons examiné comment ajouter du mouvement, latéraux gauche et droit au personnage du joueur Et juste après, nous sommes passés à l'ajout d' une animation pour courir lorsque le joueur effectue les actions de mouvement. Et puis il y a plusieurs vidéos sur la façon d' ajouter le bon son pour sauter, atterrir et se déplacer dans le monde en courant. Ensuite, nous avons étudié comment ajouter trois actifs D au monde, donner un peu de vie et comment éviter leur collision afin qu' ils soient interactifs Et la dernière vidéo traitait de conception générale des niveaux et quelques recommandations sur la façon d'organiser vos actifs dans vos niveaux. Tout cela étant terminé, c'est la fin des bases générales du cours. Et maintenant que nous avons établi cette base. Passons à autre chose et approfondissons notre compréhension de l'IA du jeu, ainsi que des systèmes de combat. Si vous avez et avez une bonne compréhension de tout ce qui a été abordé jusqu'à présent, n' hésitez pas à passer à autre chose. Si rien n'est encore fait, n' hésitez pas à revenir en arrière et à apprendre avant de continuer. Cela étant dit, avançons et continuons apprendre le développement de jeux vidéo. Allons-y. 32. 31 Réinitialiser le niveau de développeur pour qu'il soit clair: Maintenant, pour préparer rapidement ce que nous allons faire ensuite, nous allons maintenant mettre côté et séparer le niveau principal, qui est un niveau, qui est un niveau, nous aurons créé à la fin de tous ces didacticiels, et notre niveau de développeur. Vous remarquerez maintenant que nous avons une tonne d'actifs placés ici, mais apportons quelques ajustements. Contrôlez donc la barre d'espace dès maintenant sous les niveaux. Nous avons un niveau de développeur, c'est celui-ci. Je vais simplement le sélectionner, et je vais le dupliquer. OK, il y a l' option de duplication juste là. Et après avoir cliqué sur Dupliquer, je vais l'appeler 001 Dash Level 1. OK. C'est donc son nom. 001 Dash niveau 1. Ensuite, je sélectionnerai le niveau de développeur. Effectuez un zoom arrière. Et ce que je veux, c'est supprimer une grande partie de ces actifs. Donc, au niveau du développeur, je vais simplement le supprimer, je ne le veux pas. Je vais supprimer ce volume. Je veux que le niveau développeur soit aussi restreint que possible car je veux que le niveau développeur comporte qu'une poignée d'actifs C'est là que nous allons tester notre MAI, il n'est pas nécessaire qu'il contienne beaucoup de choses. C'est toujours bien d'avoir du personnel juste pour apprendre à placer les actifs. C'était le but de cette vidéo. Mais maintenant, nous l'avons, puis je vais sélectionner le personnage du joueur, et je vais ajuster sa position sur l'axe X à partir de moins 8 000, sélectionner notre héros à zéro. Alors maintenant, il est de retour ici. Ensuite, j'ai sélectionné le terrain. Et je vais remarquer ce que je suis en train de cliquer ici. Je vais juste l'inverser légèrement. Je vais donc réinitialiser cette propriété. J'ai cliqué sur Réinitialiser la propriété, et ça devrait être ça Maintenant que je l'ai réinitialisé ici, je l'ai réinitialisé à son contenu par défaut en cliquant sur cette réinitialisation ici, en cliquant dessus. Faisons un zoom arrière. Je vais sélectionner cette plateforme supplémentaire et la supprimer. Et maintenant, nous sommes de retour ici avec notre personnage de base. OK. Maintenant que tout est prêt, passons à autre chose et passons à certains systèmes de combat. Cependant, vous remarquerez également que si nous double-cliquons sur le premier niveau, c'est samedi, nous l'avons toujours. Ainsi, lorsque nous voulons examiner tous ces actifs en jeu, nous pouvons venir ici. Cependant, je voudrais revenir au niveau direct du développeur, où nous développerons nos systèmes. C'est ça. Et je recommanderai toujours d'avoir un niveau de développeur pour développer les systèmes, puis vous pourrez les ajouter aux niveaux eux-mêmes. Cela fait, allons-y. Dans la prochaine vidéo, nous allons créer un système de santé simple. 33. 32 Création d'un système de santé simple Partie 0: Il s'agit d'une vidéo mise à jour qui explique comment créer un widget. Maintenant, tout d'abord, assurez-vous de garder les choses organisées. Vous avez un dossier appelé interface. Maintenant, le widget est déjà créé. Elle s'appelle barre de santé, mais elle vous montre comment la créer. Pour le créer, il vous suffit de cliquer avec le bouton droit de la souris, puis de vous rendre dans l'interface utilisateur et de sélectionner Widget Blueprint Ensuite, il dira : « Hé, créez un widget utilisateur ». Oui, et maintenant notre plan est créé, et vous pouvez l'appeler barre de santé. Ici, je vais juste l' appeler Health Br two. Maintenant que notre Widget Health two est créé, il suffit de double-cliquer dessus. Cela nous amène maintenant à l' interface du widget où nous pouvons décider de ce qui s'affiche sur l'interface utilisateur lorsque nous appelons le widget. Cela aura beaucoup de sens dans la prochaine vidéo. Il suffit de suivre. La première chose est que nous voulons cliquer sur Zoom pour ajuster. C'est cette petite icône là-bas. Cliquez sur Zoom pour ajuster, c'est bien. Et nous voulons ajouter le premier élément d'interface utilisateur pour le widget. Vous passez à la recherche et vous voulez rechercher Canvas. Maintenant, le panneau Canvas va essentiellement nous permettre de glisser-déposer sur notre écran. Vous pouvez voir que l' écran entier se trouve ici. Maintenant que l'écran est ouvert, nous allons simplement ajouter du texte, revenir ici et rechercher du texte Je vais sélectionner le texte et je vais le faire glisser ici. Maintenant que j'ai fait glisser ce texte ici, je vais passer aux propriétés du bloc de texte et je vais le renommer en barre HeL. Ensuite, j'ai appuyé sur Control S pour servir, et maintenant dans le jeu, vous avez un widget avec la barre de santé de texte qui est utilisable. Passons maintenant à la création du système de santé. 34. 32 Création d'un système de santé simple Partie 1: Dans cette vidéo, nous allons créer un système de santé très simple, et la raison pour laquelle la santé est importante, laquelle la santé est c'est parce que c'est ce qui rend les jeux amusants, sachant que vous pouvez échouer et que votre personnage clair peut mourir. À l'heure actuelle, notre personnage de base peut simplement se déplacer et se coincer. Ajoutons-leur rapidement un peu de santé de base. Si nous fermons rapidement toutes les autres fenêtres et ouvrons le lecteur, n'est-ce pas ? Nous allons sélectionner le plan du joueur, d' accord, maintenant appelé Hero Pourquoi ce bruit de saut penche-t-il ? Ça devrait être un bruit d'atterrissage, d'accord ? Maintenant qu'on en a fini avec ça. Tout ce que nous allons faire, c'est ajouter un nombre ou plutôt une variable qui contiendra la santé du joueur. Pour l'instant, nous allons passer aux variables, qui se trouvent ici. Nous allons cliquer sur AD. Nous allons sélectionner au lieu de Bolean, définissons-le comme un entier OK ? Si nous voulons le définir sous la forme d'un entier, c'est parce que nous voulons simplement que la santé soit 100, puis ici, au lieu de l'appeler NUVA, appelons-la santé du joueur OK. Maintenant que nous l'avons maintenant pour ajouter le widget à l'écran, nous allons simplement commencer par le deuxième niveau de la séquence là-bas. Nous allons le faire glisser et taper Create Widget, ce qui mènera au nœud Create Widget. Et puis il demande un cours. Nous allons simplement taper Health Bar qui est la classe que nous avons créée. Et une fois que nous aurons terminé, nous le ferons simplement glisser, puis nous taperons simplement ajouter au port d'affichage, qui l'affichera. Nous allons donc l'ajouter à la fenêtre d'affichage, puis renvoyer la valeur, nous la ferons glisser vers la cible elle-même. Et avec ça, d'accord, nous compilons, nous avons cliqué sur Compiler, puis nous sommes passés au niveau développeur, et quand nous avons cliqué sur Play, maintenant, remarquez dans le coin supérieur gauche il y a un texte qui dit barre de santé, et maintenant nous avons ce widget. Passons d'un texte une véritable barre de santé, numériquement parlant, puis nous trouverons comment ajouter des dégâts afin de voir cette barre de santé claire descendre 35. 33 Création d'un système de santé simple Partie 2: Maintenant, une barre de santé, oui, nous revenons au widget de barre de santé que nous avons. Une barre de santé est fondamentalement une barre de progression. Un moyen simple d'y accéder est de simplement taper la progression. Nous y voilà. Nous avons notre barre de progression. Je vais obtenir cette barre de progression, et je vais la déposer dans le panneau Canvas. OK. Maintenant, laissez-moi le déplacer ici. Nous avons maintenant cette barre de progression. Laisse-moi le déplacer ici. Permettez-moi de l'étendre un peu, vous savez, d'augmenter sa largeur. Cette barre de progression sera donc celle qui contiendra notre santé. La seule chose que nous allons changer pour commencer, c'est qu'après avoir cliqué dessus, nous allons simplement le changer en rouge. Changez sa couleur pour qu'elle soit rouge. C'est tout ce dont nous avons besoin pour le moment. Ensuite, nous allons y apporter quelques modifications mineures. Le plus gros étant dans la zone supérieure, notez qu'il existe une option pour le rendre variable. Nous allons le rendre variable. Ensuite, nous allons l' appeler barre de santé du joueur. C'est ainsi que nous allons l'appeler. Maintenant que la barre de santé de notre joueur est correctement nommée ici, nous avons le texte disant barre de santé. Nous avons la barre de santé du joueur et notre canevas est prêt. Nous pouvons maintenant l' ajuster pour que le joueur soit le seul à contrôler la distance de cette barre de progression. Dans l'état actuel des choses, si nous passons au niveau développeur et que nous appuyons sur Play, remarquons que la barre de santé n'indique aucune progression, qui n'est pas vraiment ce que nous voulons. Nous voulons que cette barre de progression corresponde un à un à la barre de santé. Pour ce faire, nous devons donc lier ces deux éléments. Nous allons donc revenir au héros. Et ce que nous voulons vraiment, c'est que ce widget de barre de santé soit connecté au composant entier de santé du joueur. Donc, à nouveau, dans le plan des personnages du joueur, nous allons examiner le point où tout continue d'être ajouté à la fenêtre d'affichage, qui se trouve ici Donc, juste après avoir créé le widget Health Bar, nous l'ajoutons à la fenêtre d'affichage Cette fois, nous allons ajouter quelques étapes entre les deux. Donc, la première chose que nous allons faire est d'étendre l'espace ici, car il va se passer encore beaucoup de choses. Et à partir du widget Create Health bar, dont nous allons sortir. Et à partir du widget de barre de santé, gardez à l'esprit que ce widget de barre de santé contiendra toutes ces informations. Il a accès à ce texte, et il a accès à la barre de santé du joueur que nous avons maintenant transformée en variable afin que nous puissions y accéder. À partir de là, nous allons d'abord créer une nouvelle variable. Créez un widget Health B, si vous cliquez avec le bouton droit de la souris, il y aura une option appelée promouvoir en variable, sélectionnez-la. Maintenant, la promotion en variable crée une nouvelle variable. Ce sera un élément distinct qui stockera les données du widget. J'espère que cela a du sens. Si ce n'est pas le cas, ne vous inquiétez pas, vous vous y habituerez dans Unreal Engine Et nous allons appeler ce widget de santé des joueurs. C'est ainsi que cette variable va s'appeler. Maintenant que nous avons ce widget de santé des joueurs ici et qu'il s'agit d'une variable, rompons rapidement ce lien et le rompons également. Nous avons maintenant notre widget de santé des joueurs juste ici. Maintenant, la prochaine chose que nous allons faire est sortir du widget de santé du joueur. Et ce que nous voulons, c'est rechercher la barre de santé du joueur. Nous allons donc simplement, vous le voyez, obtenir la barre de santé du joueur. Nous avons donc maintenant la barre de santé du joueur. Et pour plus de clarté, la barre de santé du joueur est cette barre ici, et c'est la même barre de santé du joueur que nous avons transformée en variable afin que nous puissions y accéder. Maintenant que nous avons créé cette barre de santé du joueur, nous allons la faire glisser et définir le pourcentage. Maintenant, voici ce que nous voulons faire, noter le pourcentage défini. Nous allons donc simplement définir un pourcentage et si nous regardons, il s'agit également de rechercher un pourcentage pour définir la barre de santé. Maintenant, ce pourcentage fixé ici, d'accord ? C' est ce que nous utiliserons juste là pour modifier le niveau de santé de cette barre de santé. Maintenant, afin de le faire efficacement, publions ceci ici. Permettez-moi de le faire glisser ici pour des raisons d'organisation. Donc, après avoir créé ce widget, faisons-le glisser ici. J'espère que vous pouvez le voir clairement. Donc, après avoir créé ce widget, nous allons le définir en pourcentage, puis nous finirons d' ajouter à la fenêtre d'affichage, puis nous allons simplement connecter cette barre de santé . Désolé, nous obtiendrons cette valeur de retour, et ce sera celle que nous ajouterons à la fenêtre d'affichage Maintenant, j'espère que tout cela a du sens. Je vais y aller le plus lentement possible car nous gérons de nombreuses choses. La prochaine chose que nous allons faire est de passer à la santé du joueur. Actuellement, la santé du joueur est définie comme un entier et elle est fixée à 100. Nous allons simplement effectuer un ajustement au lieu d'un entier binaire. Comme nous devons l' utiliser sous forme de pourcentage, nous allons le définir sous forme de flottant car nous le transformons en pourcentage. Ensuite, nous allons obtenir la santé du joueur, nous allons la faire traîner et nous voulons obtenir la santé du joueur, puis la faire glisser à nouveau. Et nous voulons rechercher la fonction appelée diviser. Et tu devrais voir ça. Nous voulons donc utiliser Divide. Et nous voulons diviser par 100, car c'est ainsi que l' on obtient un pourcentage. Et comme 100 points de vie est le maximum d'un joueur, je vais le ramener au pourcentage et c'est essentiellement tout ce que nous devons faire. Maintenant, allons-y étape par étape. Donc, dès le début de la séquence de jeu, la première chose à faire est de créer un widget, une barre de santé. Ensuite, nous allons simplement configurer en tant que variable appelée widget de santé du joueur. Nous allons cibler la barre de santé qu'elle contient et nous voulons définir son pourcentage. Nous allons maintenant obtenir la santé du joueur. C'est la variable au sein du joueur. Nous allons le diviser par 100 pour obtenir le pourcentage. Il sera affiché dans le pourcentage que nous avions l'habitude de définir comme barre de santé du joueur, puis nous l'ajouterons à la fenêtre d'affichage J'espère que je l'ai vraiment fait étape par étape. Je ne veux pas que tu manques quoi que ce soit. Nous allons maintenant le compiler, et lorsque nous appuierons sur Play, remarquons que la barre de santé est maintenant pleine. Nous avons une barre de santé complète, et si nous revenons dans le héros, sélectionnons l'enfer du joueur et que nous l'ajustons pour que la valeur par défaut soit 90, nous compilons. Maintenant, remarquez qu'il est rempli à 90 %, il est rempli à 90 %. Si nous y allons et que nous fixons la valeur par défaut à dix, elle est maintenant remplie à 10 %. Nous avons donc maintenant une barre de santé fonctionnelle où la variable de santé du joueur détermine le niveau de remplissage de cette barre de santé. Maintenant, nous allons y retourner. Permettez-moi de définir cela sur une base de référence de 100. Nous commençons donc par une barre de santé complète. OK, nous commençons par cette barre de santé complète. Et maintenant, nous allons créer des obstacles simples où lorsque le joueur rencontre cet obstacle, cela change le montant de l'aide dont il dispose. C'est ce que nous allons faire dans la vidéo suivante. 36. 34 Création d'un système de santé simple Partie 3 Ajout d'un objet endommagé: Maintenant que nous avons une barre de santé de base sur le personnage de notre joueur, nous allons l'ajouter d'une manière simple pour infliger des dégâts au personnage. Donc, après avoir appuyé sur la barre d'espace de contrôle , j'ai créé un nouveau dossier, que j'ai appelé objet endommagé, afin que nous puissions avoir un seul endroit où placer cet objet endommagé. Maintenant, dans ce dossier, je vais simplement écrire click et je veux créer une classe de plan Et pour ce qui est de ce que c'est, je vais juste l'appeler acteur de Blueprint, puis je vais simplement l' appeler Damage Object Parce que ce sera très simple à avoir. Double-cliquez donc sur l'objet endommagé. Je vais maintenant ajouter un cube à l'objet endommagé. Maintenant, il y a un cube autour de lui, ce qui est une bonne chose. , je passe au niveau développeur, puis je veux juste placer ce cube quelque part dans le monde. Je l'ai donc placé quelque part dans le monde, juste devant le joueur, en assurant, bien sûr, qu'il se trouve dans le bon axe, à la bonne position. Maintenant, quand j'essaie de m'en approcher , rien ne se passe. Cependant, je vais entrer dans le vif du sujet. Maintenant, je vais l'entourer d'une boîte à chapeaux. Nous allons donc simplement cliquer sur Ajouter. Et puis ce que nous voulons, ajouter un box collider, en fait Nous allons ajouter un box collider. Le box collider est donc là en ce moment. Je vais simplement l'étendre. Donc, remarquez simplement que je peux le faire trop gros, ce n'est pas une bonne chose. Juste à l'extérieur de la boîte, d'accord ? Juste à l'extérieur. C'est parfait. Ensuite, pour ce qui est de la collision, je vais taper collision. Maintenant, je veux que ce ne soit pas une dynamique de chevauchement. Je veux le configurer de manière à ce qu'il ne chevauche que le pion C'est une très bonne option à sélectionner, que le collisionneur ne détecte que le pion Une fois cela fait, nous allons simplement compiler puis entrer dans le graphe des événements. Maintenant, à l'intérieur de l' objet lui-même, nous avons ce collisionneur de boîtes Je vais simplement l' obtenir, puis cliquer avec le bouton droit de la souris, puis ajouter un événement, puis sur le composant, commencer à se chevaucher. C' est celui que nous voulons. Donc ça va le faire, ça va soulever cette question. Lorsque les composants commencent à se chevaucher, n'est-ce pas ? Cette boîte. Donc, une fois que nous l'avons ici sur le composant, commencez le chevauchement, nous voulons maintenant savoir quel composant se chevauche et que devons-nous faire ? Commençons donc par quelque chose simple. Faisons traîner ça plus loin. Ensuite, nous dirons de détruire Actorself. C'est tout ce que ça va faire. Une fois que nous commencerons à se chevaucher, il va se détruire rapidement pour le tester. En fait, avant de continuer, apportons un changement. Nous avons déjà mis en place Begin Overlap, Destroy Actor Self. Mais faisons un autre ajustement, nous allons sélectionner à nouveau le box collider et nous allons passer de la superposition sur le pn Passons à cela. Nous recouvrons toutes les dynamiques. Pour que ce soit un peu plus fiable. Alors maintenant, lorsque vous appuyez sur Play, il disparaît, il se détruit tout seul. Donc, le hit play se détruit tout seul. Maintenant, revenons à l'objet endommagé. Si nous rompons ce lien, quand nous entrons, regardez-le. Maintenant, il y reste. Mais nous savons pertinemment que la boîte à chapeaux qui l'entoure fonctionne. C'est une bonne façon de témoigner que Box fonctionne. Il se détruit tout seul. Maintenant, avec cette configuration, faisons en sorte que lorsqu' elle chevauche le héros, elle inflige des dégâts au héros OK. Dans cet esprit, revenons à l'objet endommagé, et nous voulons ajouter d'autres nœuds. Plus de nœuds. Voici comment nous allons le gérer. Désormais, le moteur Unreal intégré possède quelques fonctions simples qui sont utiles pour savoir quand des dégâts ont été infligés Il existe maintenant de nombreuses façons d'infliger des dégâts. Nous allons utiliser le plus simple. Maintenant, c'est simplement avec un nœud appelé appliquer des dégâts. Maintenant, remarquez que lorsque nous introduisons des dégâts, il y a quelques autres connexions. Cela a endommagé l'acteur, les dégâts de base, instigateur de l' événement Casa, rien de tout cela n' vraiment d'importance pour nous en ce moment La seule chose que nous voulons ajuster, ce sont les dégâts de base, qui sont des chiffres Nous allons donc les appeler dix. C'est un char. Il ne nous reste plus qu' à choisir l'acteur endommagé, qui sera le héros, et c'est terminé. Nous allons donc simplement entrer, puis l'autre acteur le traînera et nous passerons au héros. Oh, désolée, il me manque. Deviens un héros. Et nous y voilà parce qu' il comprend qu' il existe un personnage appelé le héros. Et voilà. Nous avons donc préparé le casting pour le héros. Et en tant que héros, ce n' est pas important. Nous allons d'abord le connecter. L'acteur endommagé sera donc le héros, et les dégâts de base seront de dix. Et une fois que nous en aurons fini avec ça, nous détruirons l'acteur. Sur cette base, nous allons rapidement compiler. Maintenant, remarquez que lorsque nous revenons dans le jeu, si nous le touchons, il disparaît tout simplement, mais aucun dommage n'est clairement indiqué dans la barre de santé. C'est parce que la barre de santé est le héros. La barre de santé n'a été mise à jour qu'au début de l'événement. Notez que dès le début de l' événement, la première chose que nous faisons est de configurer la barre de santé et de définir son pourcentage. Nous devons donc simplement ajouter une autre fonction, qui permettra de maintenir la barre de santé à jour. Il existe de nombreuses façons de le faire. C'est le dernier processeur gourmand qui est bon à utiliser. Alors permettez-moi de le copier et de le coller. En ajoutant un commentaire, vous pouvez bien sûr le faire en appuyant simplement sur C. OK. Mais j'aime bien parfois, comme il possède déjà les paramètres de style que je souhaite, cela s' appellera simplement mettre à jour la barre de santé en cas de dégâts. C'est ainsi que cela s'appelle. Ensuite, à l'intérieur d'ici, nous allons simplement ajouter une fonction. On fait appel à elle en cas de dommage. Alors nous voulons des dégâts. Oui, c'est ce que nous voulons. Nous voulons que cet événement se produise quel que soit le dommage. Faites-le glisser ici. Maintenant, une fois que l'événement est prêt à infliger des dégâts, il suffit de le faire glisser, puis nous voulons commencer à ajuster la valeur de santé du joueur. Le mal a donc été fait immédiatement. La première chose que nous voulons faire, c' est de réduire la santé des joueurs. Améliorons la santé des joueurs. Nous commençons par obtenir la santé du joueur, puis nous allons la faire traîner et nous allons la soustraire. Soustraire. Maintenant que cette soustraction fonctionne, nous allons lier les dégâts à ce que nous voulons qu'elle soustrait Nous soustrayons donc les dégâts infligés santé du joueur . C'est très important. Une fois que nous avons soustrait les dégâts infligés à la santé du joueur, nous voulons extraire cette valeur et la diviser. Par quoi la divisons-nous Nous le divisons par 100. D'accord, parce que nous voulons qu'il soit défini en pourcentage. Maintenant que nous l'avons, nous avons maintenant le pourcentage de santé dont dispose actuellement le joueur. Laisse-moi apporter ça ici. Apporte-ça ici. Ensuite, ce que nous allons faire, c'est obtenir le widget de santé des joueurs et l'intégrer. voulons obtenir le widget de santé du joueur, puis nous voulons le faire glisser vers l'extérieur et rechercher la barre de santé du joueur. Nous voulons obtenir la barre de santé depuis le widget. OK, nous obtenons la barre de santé du joueur depuis l'écran, puis nous voulons simplement définir son pourcentage. OK. Nous voulons donc définir le pourcentage, et nous allons le faire glisser en fonction des dégâts qui viennent d'être subis. Et ça va être ça. Avec cela, nous pouvons simplement en gardant cela à l'esprit, nous pouvons maintenant simplement relier l' événement à n'importe quel dommage. Nous voulons mettre à jour ce pourcentage. Laisse-moi y revenir encore une fois. Sur l'objet endommagé, nous voulons le lancer au héros, c' est-à-dire au personnage du joueur. OK, je veux incarner le héros, c'est l'autre acteur. C'est l'acteur endommagé. Et après cela, il va se détruire tout seul. C'est ce que va faire notre objet endommagé. Et puis, du côté du personnage du joueur, bien sûr, le meilleur niveau de dégâts a été fixé à dix du côté du héros, quel que soit le dommage, ce qui signifie que chaque fois que des dégâts sont subis, nous les obtenons, nous les soustrayons de la santé du joueur Nous divisons ce chiffre par 100. Ensuite, nous arrivons ici , puis le widget de santé des joueurs, nous voulons mettre à jour le pourcentage. Et en fait, il manque encore une chose. Parce que pendant que nous divisons les points de vie des joueurs, nous ne les avons pas encore correctement mis à jour. Alors allons-y un peu plus loin. Entre les deux, nous allons simplement définir la santé du joueur Donc, cette valeur, faites-la glisser vers le haut sera désormais la valeur de santé du nouveau joueur. Ensuite, la valeur de santé du joueur sera celle connectée au pourcentage défini pour la barre de santé. J'espère que cela a du sens. S'il vous plaît, si cela n'a pas vraiment de sens, révisez-le. J'ai essayé d'être aussi précis que possible. Donc, avec ça, testons-le dans le jeu. Alors maintenant, quand je passe en revue l'objet endommagé, nous y voilà. Ma barre de santé a été réduite. Maintenant, disons que je comprends que ces objets ont été copiés. Ils sont maintenant deux, copiez-collez. Ils sont maintenant trois, copiez-collez, laissez-moi zoomer un peu et faire glisser ceci ici, quatre, copier-coller , cinq, puis 67, huit, neuf, dix. OK, j'ai donc fabriqué dix objets endommagés. Le premier a réduit la santé du joueur de 10 %. Deuxièmement, 20, 30, 40, 50, 60, 70, 80, 90 et 100 %. Nous avons maintenant trouvé comment infliger les dégâts au joueur et nous assurer que l' achat de points de vie est correctement mis à jour. Maintenant, dans la vidéo suivante, nous allons ajouter un simple écran de mort, puis nous allons approfondir un peu plus l'IA par la suite. Dans la vidéo suivante, nous allons créer un écran de mort de telle sorte que lorsque le joueur perd moins d'un certain pourcentage de santé, il meurt, et c'est ce que nous voulons. Allons-y. 37. 35 Vérifier si le joueur est vivant ou mort lorsqu'il prend des dommages: OK, maintenant que notre personnage a sa barre de santé qui peut être épuisée par des objets Ajoutons maintenant un état de mort simple. Nous allons donc vérifier. Et une fois que la santé du joueur passe en dessous de zéro, nous disons que le joueur est décédé. Pour ce faire, revenons au plan du héros. Mettons-les rapidement ici, alignons-les et organisons-les pour qu'ils soient beaux. Juste un peu de propreté. Tu sais, ça va beaucoup avec ça ici, ça ici, et ça ici. Maintenant, n'oubliez pas qu'il s'agit de mettre à jour la barre de santé dégâts, puis nous y arriverons. Ensuite, je vais simplement copier cette boîte de dialogue. Bien sûr, comme toujours, vous pouvez créer une autre zone de commentaire en appuyant simplement sur C, mais j'aime un certain style avec texte noir parce que c'est plus lisible pour moi. Et puis cela va être vérifié si la couche est vivante. C'est tout ce que ça va faire. Donc, juste une fois cela fait, ce que je veux faire, laisse-moi faire glisser ici pour lui laisser un peu d'espace. Ensuite, je vais faire glisser cette séquence de types parce que je veux que ce soit un nœud de séquence de base. Ensuite, je vais le traîner ici. Et puis ce que je veux faire, c'est chercher une succursale BRA NCH, n'est-ce pas Maintenant, cette branche sera essentiellement de vérifier si le joueur est toujours en vie, et comment allons-nous nous y prendre ? C'est très simple. Nous allons augmenter la santé du joueur et nous voulons la récupérer. Ensuite, ce que nous voulons faire, c'est rechercher ce qui est inférieur ou égal, inférieur à égal. Nous verrons que s'il est inférieur ou égal à zéro, ce sera notre condition. Cela signifie que si la santé du joueur est nulle, c'est vrai. Si la santé du joueur est inférieure à zéro, cela est également vrai. Maintenant, disons simplement : Hé, si c'est faux, commençons par quelque chose de simple, comme une chaîne d'impression, et nous dirons que nous allons taper majuscules en direct, d'accord ? Ensuite, contrôlons-le et collons-le ici. S'il est vrai qu'il est inférieur à zéro, nous pouvons simplement taper dead. Nous le faisons simplement pour simplifier la vérification si cette vérification de base des branches fonctionne correctement. Avec cela, compilons, revenons au niveau du développeur vivant, vivant, vivant, c'est vrai. Il n'arrête pas de dire «   vivant », puis « mort ». Vous pouvez voir dans le coin supérieur gauche de votre écran qu'il y a le texte qui dit mort. Nous avons maintenant un bon moyen de détecter que le joueur est vivant ou mort lorsqu'il a fini de subir des dégâts. Maintenant que c'est fait, passons à autre chose et ajoutons un simple écran de décès. 38. 36 Création d'une interface utilisateur de l'écran de mort: Maintenant, pour ajouter un écran de mort, la première chose que nous allons faire est de créer un nouvel objet d'interface utilisateur. Ce sera très similaire à la façon dont nous avons créé la barre de santé, qui se trouve ici, et c'est ce que nous allons faire. J'ai donc appuyé sur la barre de contrôle et sur la barre d'espace. Maintenant, je regarde dedans, et je suis ici dans le dossier de contenu. Je vais créer Laisse-moi vérifier l'intérieur du personnage dans le joueur sous Interface. C'est en fait un très bon endroit pour le mettre. Et sous interface, nous avons notre barre de santé. Je vais créer un nouveau widget. Ne me permettez pas de chercher ici. Interface utilisateur, plan du widget. Il s'agit d'un widget utilisateur, que nous appellerons ensuite écran de mort. OK. Donc un écran de mort. Maintenant, double-cliquons sur l'écran de mort. Mettons-le dans la fenêtre principale pour ne pas avoir à nous déplacer. Et puis, comme avant, la première chose que vous allez mettre, insérer un panneau Canvas puis de cliquer sur Zoom pour l'ajuster, d'accord ? Cette matraque Hera Zoom to Fit. Celui-ci, Zoom to fit. Il zoome donc et s'adapte à l'écran. Maintenant, par souci de simplicité, nous allons ajouter un fond d'image. OK. Et pour ce qui est des ancres, ancrons-nous dans le coin supérieur gauche Nous lui donnerons les positions zéro et zéro. De ce côté, nous allons faire en sorte que ce soit zéro ou zéro. Taille, je vais le faire en fait, non, laisse-moi l'aligner sur tout. Et puis j'utilise celui-ci, celui-ci ici. Cela va être bon pour le faire remplir tout l'écran. Appuyez dessus. Ensuite, en ce qui concerne le décalage, je vais décaler zéro et décaler zéro. C'est bon. Maintenant, pour la couleur et l'opacité, je vais double-cliquer Je veux que sa couleur soit noire. Et puis c'est l'opacité. L'opacité est cette valeur inférieure, RGBA, A correspond à Alpha ou à l' Je voudrais le ramener à quelque chose comme 0,4. Ça va faire office d'un joli fond sombre. C'est une bonne chose. Maintenant, avec cette image là-bas, compilez simplement. La prochaine chose que nous allons faire est d'ajouter du texte. Récupérons ce texte, faisons-le glisser ici, et à l'intérieur du texte, nous indiquerons que le joueur est mort. Maintenant, bien sûr, vous pouvez vraiment mettre le texte que vous voulez. C'est juste pour montrer comment vous le faites. Maintenant, avec ce texte ici, je vais sélectionner l' ancre au milieu. Je vais changer sa position à zéro, zéro, puis sa taille sur X, voyons voir, laissez-moi changer sa taille ici à 300 et sa taille Y également à 300. Non, laisse-moi augmenter ce 100 et ensuite l' aligner ici C'est un texte de base. Maintenant, pour augmenter la taille du texte, revenons à l' endroit où se trouvent les propriétés. Tapons la taille. Je vais afficher la taille de police du texte. Permettez-moi de le porter à quelque chose comme 80. Oui, 80 c'est bien. Oh, désolée, j'ai cliqué sur le mauvais endroit. Permettez-moi de cliquer à nouveau dessus. OK. Excellente. Maintenant, je dois m'en assurer. Oh, non, ça se cumule. Tout ce qui est ci-dessus est ci-dessous, pas de problème. Maintenant, contrôlez S pour enregistrer. Compilons rapidement. Nous avons maintenant un écran de décès très basique. Mais cela ne suffit pas. Ajoutons quelque chose d'un peu plus. Nous allons revenir à l'art à l'intérieur de l'aventurier. Laisse-moi voir. Avons-nous des sprites de la mort ? Non, nous ne le savons pas. Je vais ajouter laissez-moi simplement ajouter l'animation de la diapositive murale, plutôt que la diapositive murale ici. Et j'appuie sur Laisse-moi voir. Non, je dois escalader ce toboggan mural. Maintenant que j'ai sélectionné le toboggan mural, faites une apparition. C'est l'apparence. J'ai maintenant sélectionné sa taille. À l'heure actuelle, il est fixé à 140. Permettez-moi de le fixer à environ le double de ce montant, soit 280. OK. Toujours pas assez grand. Je pense que laissez-moi faire maintenant 400 et 160 pixels. OK. Oui, cela fonctionne assez bien. Posez-le ici. Voici donc notre écran de bureau. À l'heure actuelle. Ajoutons encore une chose, qui est un simple bouton. Oh, ce n'est pas dans la hiérarchie. Je dois chercher ici, rechercher un bouton. Ensuite, nous allons glisser-déposer ce bouton ici. Augmentez légèrement sa taille. Maintenant, je vais le récupérer et ajouter un autre bouton, juste pour le copier ici. C'est une bonne chose. Nous avons donc une image simple indiquant que le joueur est mort, et nous avons deux boutons. Cool. Maintenant que nous avons nos deux boutons, ajoutons du texte. J'ajouterai le texte au premier bouton, puis je le ferai glisser à nouveau vers le second bouton. Remarquez comment il s'est positionné automatiquement au milieu. Et pour le premier bloc de texte, je vais sélectionner son texte ici. Je dirais que le texte indiquera redémarrer. Et puis le dernier bloc de texte s' appellera exit. C'est sur le texte. Maintenant, en ce qui concerne les boutons, je vais changer ce bouton pour que le nom du bouton lui-même s'appelle exit. Et puis au redémarrage, le nom du bouton lui-même, je vais le changer pour redémarrer, redémarrer, d'accord ? Maintenant que cela a changé, ce qui concerne la commande, notez que le texte n' est pas important. Le vrai nom qui compte, c'est le nom inscrit sur le bouton. Maintenant que c'est fait, organisons-les de manière à ce qu'ils restent alignés les uns avec les autres Nous allons donc rechercher ce qu'on appelle une boîte verticale. OK. Nous allons maintenant obtenir cette boîte verticale et la faire glisser dans la scène. Et pour ce qui est des points d'ancrage, nous voulons l'ancrer à la quatrième médaille Debout, un moment. C'est bon. J'ai réglé l'appel et tous les défis qu'il a soulevés. J'adore être utile. Et lorsque vous développez des jeux, vous devez organiser votre vie. Revenons maintenant au didacticiel. Maintenant que j'ai mis cette case verticale, remarquez qu'il n'y a rien dedans pour l'instant, d'accord ? Oh, mon Dieu. Effectuez un zoom arrière. J'ai été distrait. Maintenant que j'ai cette case verticale, j'ai sélectionné la case verticale. Ouvrons-le. Je pense que c'est une bonne taille. Nous voulons placer de nombreux éléments à l'intérieur de la boîte verticale. Nous voulons qu'ils y participent afin qu'il puisse les organiser. C'est le but d'une boîte verticale en général. Il organise les éléments en lui-même. Maintenant, mettons les éléments à l'intérieur de la boîte verticale. zoomant sur la zone hiérarchique, nous allons simplement la resserrer. Tout ce que nous allons faire, c'est obtenir ces deux boutons, les déposer dans la case verticale puis nous aurons cette image du joueur mort et cette image, qui devrait être le petit graphique du joueur, et les déposer également dans la case verticale. Et maintenant, quand on fait un zoom arrière, oh, regardez cette organisation. Ils ont modifié leur commande. Ils ont changé de taille. Nous devons donc maintenant ajuster la taille et l'ordre pour que cela ait du sens. Pour commencer, nous allons faire glisser le texte. Donc, pour faire glisser le texte, je veux que les joueurs soient morts, c'est la deuxième chose à faire. Je vais donc sélectionner le texte des joueurs morts à l'intérieur de la case verticale. Je vais le mettre ici, et maintenant regardez, il est en haut. Ensuite, je reviendrai sur cette image. Je vais le faire glisser au-dessus du texte, et je vais l'arrêter. Oh, non, ça va trop loin. Mets-le au-dessus du texte, nous y voilà. Et maintenant, l'image vient en premier, l'image en premier, et le texte, puis les boutons. C'est exactement ce dont nous avons besoin. Maintenant qu'ils sont organisés de cette façon, commençons par fixer la taille de l'image. J'ai donc sélectionné l'image, et sur le côté droit, remarque qu'elle est réglée sur l' alignement vertical et l'alignement horizontal. Nous allons donc définir son alignement vertical à ce qu'il soit centré horizontalement. Et juste en cliquant au centre horizontalement, j'ai arrêté d'être écrasée, d'accord. Et maintenant qu'il n'est pas étiré, il est encore petit, mais il n'est pas étiré. Maintenant, je vais sélectionner à nouveau l' image, et nous voulons modifier légèrement sa taille, car nous ne voulons pas que ce soit aussi petit qu'ici Modifions-le donc maintenant et agrandissons-le. Donc, l'image sélectionnée, nous voulons maintenant qu'elle soit beaucoup plus grande. Il suffit de sélectionner l'image. Et puis dans le panneau des propriétés, remarquez qu'il y a le pinceau. Passez dans le pinceau, puis il y a la taille de l'image. Il suffit donc de le changer de 32 par 32 à quelque chose comme 200 par 200. Cela devrait nous donner une image de taille beaucoup plus raisonnable. J'aime beaucoup ça. Faisons-le encore plus grand. Faisons en 300, 300. C'est une bonne chose. Faisons-le encore plus grand. Faisons 400 par 400, 300 semble le faire apparaître clairement. Il s'agit d'une bonne taille d'image. Maintenant, cliquez sur le texte de Play is dead. Assurons-nous que l'alignement horizontal ici est au milieu. Et cela nous rend heureux. Ensuite, nous allons maintenant sélectionner le bouton. La première chose que nous allons faire est de changer la couleur de ces boutons. Je pense que nous allons changer la couleur pour quelque chose comme, d'accord ? Non, c'est le bouton. La couleur du texte, reste le contrôle Z pour changer cela. Changez la couleur de fond en quelque chose d'un peu plus. C'est bon. Les boutons peuvent être entièrement noirs. Je pense que je suis d'accord avec ça. Mais avec du texte blanc, ce qui est toujours bon pour la lisibilité Je crois fermement aux arrière-plans noirs, aux textes blancs. Et maintenant, ajoutons un peu d'espacement entre le joueur et la fin de la partie. Sélectionnez le texte mort lu. Sur le côté gauche, il y a une option appelée rembourrage. OK. C'est ça. Et nous voulons ajouter un peu de rembourrage en bas. Ajoutons environ 200 pixels, ce qui donne cet espace, c'est trop, 50 pixels. Parfait. Donc, seulement 50 pixels de rembourrage inférieur font l'affaire. Et maintenant, nous avons nos boutons. Je vais donc sélectionner deux fois les boutons en maintenant la touche Shift enfoncée. Lorsque je clique sur les boutons, nous pouvons modifier les valeurs des deux boutons en même temps. Je viens donc ici en apparence. Laisse-moi voir. Je voudrais ajouter un peu de rembourrage Je pense qu'aux deux en haut, je vais ajouter 20 pixels pour leur donner un peu d'espacement vers la droite, 50 pour leur donner peu d'espacement et 50 vers la gauche Oh, pas jusqu'au fond. Au bas, il devrait rester 20. Donc, à gauche et à droite, nous aurons 50 pixels. Peut-être que nous allons en ajouter d'autres. Donc 100 à gauche, 100 à droite. Ensuite, compilez V. Voici notre écran de mort tel qu'il est actuellement, et je peux juste ajuster légèrement le cadre vertical, et vous verrez comment le fait d'ajuster le cadre vertical va changer la position de tout Nous avons donc une interface utilisateur raisonnable. Maintenant, je vais m'assurer que la boîte verticale est ancrée en haut au centre. La position X me permet de le mettre rapidement à zéro. OK ? C'est ce qui va le mettre là. n'est pas ce que je veux. Alignons-le à nouveau correctement en haut au centre. Et je veux que la position verticale de la boîte soit beaucoup plus élevée. Oh, j'ai fermé ça. Revenons ici. Je veux que ce soit beaucoup plus que quelque part entre les deux. Donc, il est en taille X, laissez-moi le faire en taille X 700. Est de taille Y 800. Cela va donc me permettre de le positionner avec précision. Puisque je sais que sa taille X est 700, 700/2 est 350, je peux donc simplement entrer et le mettre en position X sur moins 350 OK ? Maintenant, nous avons un menu de base, qui fonctionne en cas de mort. Compilez rapidement , mais il ne fonctionnera pas encore, mais une fois ce joueur mort, nous voudrons voir cet écran de mort. Passons à l'ajout de cet écran de mort au jeu. 39. 37 Ajouter l'écran mortel sur la mort: Maintenant que nous avons créé l'interface utilisateur, alors que l'écran est ici. Maintenant, nous devons simplement nous assurer qu'une fois que la barre de santé passe à zéro, l'interface utilisateur s'affiche à l'écran. Revenons donc au personnage du héros. Maintenant, nous savons comment vérifier qu'il est mort ou vivant, et c'est ce que nous allons utiliser. Supprimons maintenant la partie vivante. Nous savons déjà que cela fonctionne correctement, et nous allons supprimer cette chaîne. Nous n'avons pas besoin de ces écrans d'impression car nous savons qu'ils fonctionnent correctement. Maintenant, la prochaine chose que nous allons faire est d'ajouter simplement le widget à l'écran. Maintenant, de la même manière que nous l'avons fait pour la barre de santé, nous allons simplement le faire ressortir. Et la première chose que nous allons faire est de mettre le jeu en pause. Nous allons donc définir la pause du jeu et définir la valeur de la publication pour qu'elle soit vraie. OK. C'est ça. Nous avons défini la valeur de la publication sur true. fois cela fait, la prochaine chose que nous allons faire, nous allons le faire glisser, c'est créer un widget. Quel widget, c'est simple, ce sera le widget de l'écran de mort. Tapons donc l'écran de mort, et cela créera l'écran de mort ici. Maintenant, pour ce qui est de posséder un joueur, nous allons procéder exactement de la même manière que nous avons ajouté le baro de santé ici Nous allons donc venir ici et nous allons chercher le joueur local grâce à ID. Alors vas-y. Et nous voulons que ce soit le joueur zéro. Nous avons donc créé ce widget d'écran de mort. OK. Ensuite, nous allons simplement l'ajouter type de fenêtre d'affichage et à la fenêtre d'affichage Et voilà. Et connectons-le ici. C'est la valeur de retour. étant fait, permettez-moi d' étendre un peu ce point. Ensuite, nous allons configurer la trajectoire de la souris pour qu'elle soit visible. Alors, traînons ça en longueur. Et nous voulons taper set show mouse, en fait, set mouse cosa. Non, non, non, non. En fait, ce que nous allons faire c'est obtenir le joueur local depuis ID, puis à partir de là, nous le ferons glisser pour le joueur local. Nous allons régler la souris. Voyons Cursor. Oui, nous y voilà. Non, ce n'est pas celui que nous voulons. Nous ne réglerons pas le curseur de la souris. Oui, nous sommes ici paramétrés Afficher le curseur de la souris. C' est celui que nous voulons. Nous l'avons obtenu grâce à l'identifiant Get Local player from ID. Et nous voulons que le curseur de la souris soit visible. OK ? Ensuite, nous voulons changer le mode de saisie afin de ne plus entrer de données dans le monde du jeu Nous allons simplement régler le mode de saisie. D'accord, et nous allons le configurer uniquement sur l'interface utilisateur. Et quelle manette de joueur sera cette même manette de joueur. Et puis dans le widget pour se concentrer, nous voulons savoir où se trouve le widget d'écran de bureau. Vous voulez vous concentrer sur le widget de l'écran de mort. Et avec ça, d'accord, testons-le dans le jeu. Donc, niveau développeur, ça joue en direct, vivant. En fait, accélérons les choses. Je vais sélectionner l'objet endommagé, et je vais augmenter les dégâts de 10 à 25 me suffit donc de passer au-dessus de quatre de ces objets pour en déclencher un, deux, trois, quatre Regarde ça. Le joueur est mort, et maintenant il nous montre l'écran. C'est cool. Donc, un, deux, trois, quatre. Boum. Le joueur est mort. Maintenant, l'écran de décès s' affiche correctement. Maintenant que c'est là, revenons à l'écran de mort et ajoutons quelques nœuds pour nous assurer que ces boutons font ce qu'ils disent. Nous allons faire en sorte que ce bouton redémarre le niveau, et nous allons faire en sorte que ce bouton quitte le jeu. Allons-y. 40. 38 Ajouter une fonctionnalité à l'écran mort: C'est bon. Maintenant que nous avons un écran de mort, donnons-lui des options de menu réellement utilisables et utiles. Tout d'abord, passons directement à l'écran de décès. OK. Et maintenant, nous allons commencer par faire en sorte que les boutons de redémarrage et de sortie fonctionnent réellement. Pour commencer, nous allons venir ici et vous voyez que c'est une variable, sélectionnez-la pour en faire une variable. Et pour la sortie, faites-en également une variable. En faire une variable est ce qui va nous permettre d' y accéder et de l'utiliser pour différentes fonctions. Ensuite, descendez et remarquez qu'il y a des événements ici. Créez rapidement un événement sur lequel vous n'avez pas cliqué. C'est pour la sortie. OK, alors le voici OnClickedeIt. Revenons ensuite à la page de conception, puis cliquez sur le bouton Redémarrer, puis notez ici, créez un autre événement sur lequel vous n'avez pas cliqué Nous avons donc OnClick restart et OnClick Exit. Et maintenant, nous voulons ajouter des fonctions à ce bouton, à ces boutons. Maintenant, les fonctions. Mmm, hum. Excusez-moi. Les fonctions sont assez simples. Commençons par le plus basique qui sort du jeu. Maintenant, pour quitter le jeu, ajoutons d'abord un commentaire, glisser vers l'intérieur ou vers l'extérieur. Et puis, comme d'habitude, changeons. J'adore le texte blanc sur fond noir. Augmentez la taille du texte à environ 50, mais il est grand et faites-le glisser vers l'extérieur. Je dirais de quitter le jeu. C'est tout. Donc, en cliquant sur Quitter , il suffit de le faire glisser vers l'extérieur, puis de taper Quitter le jeu. C'est tout. OK. Alors arrête. Il suffit de démissionner. C'est tout. Sortez, quittez le jeu. OK. OK, très bien. Peut-être que la taille du texte est un peu grande. Faisons en sorte qu'il soit 24. OK, c'est beaucoup mieux. Ensuite, je vais le copier-coller. Faites-le glisser. OK, c' est bien trop grand. Revenez ici. OK. Puis cliquez sur Redémarrer. Je vais donc vous dire de redémarrer le niveau. OK. Maintenant, au redémarrage, nous allons devenir un peu plus complexes. La première chose que nous allons faire c'est de le traîner ici. Ensuite, ce que nous voulons, c'est obtenir le nom du niveau actuel, d'accord ? Cela va obtenir le nom du niveau actuel. C'est la première chose que nous allons faire. Maintenant que nous en avons fini avec cela, la prochaine chose que nous allons faire est de vouloir ouvrir le niveau par son nom. OK. Et nous allons lier le nom du niveau actuel au niveau ouvert par nom. Je suis sûr que ce que cela va faire va de soi. Il obtient le nom du niveau et indique « ouvrir le niveau », et ce sera le niveau actuel dans lequel nous nous trouvons. C'est donc très bien. Et c'est fiable. Il existe de nombreuses façons de le faire, mais c'est la méthode la plus fiable. Cela fonctionnera toujours. Obtenez le nom du niveau actuel, ouvrez le niveau par son nom. Avec juste cela, cela fonctionnera. Mais ce que nous voulons faire, c'est nous assurer que le mode de saisie est correctement défini. Nous allons donc appeler, en fait, non, nous allons d'abord appeler, obtenir le joueur local par identifiant. Voyons voir, obtenir un lecteur local à partir d'un identifiant, parfait. Et nous voulons que les joueurs soient nuls, puis nous allons le faire glisser vers l'extérieur et définir les entrées. Voyons voir, régler le mode de saisie. Et nous voulons régler le mode de saisie uniquement sur jeu. Ensuite, nous allons le traîner ici. Et nous y voilà. Alors allons-y. Quitter le jeu, c'est simple. Au clic, quittez le jeu. C'est simple. Cependant, pour redémarrer le niveau en cliquant sur Redémarrer, nous commençons par le nom du niveau actuel G, ouvrons le niveau par son nom, puis nous obtenons la manette du joueur à partir de l'ID, et nous réglons le mode de saisie sur jeu uniquement Passons maintenant au niveau des développeurs. Je suis mort, je peux cliquer sur Exit et je m'en vais. Cependant, je pourrais aussi, une fois mort, cliquer sur Redémarrer, et le niveau redémarre Redémarrer. Parfait. Nous avons donc maintenant un système de mort par le travail. Le joueur peut mourir, puis il peut quitter le jeu ou le redémarrer Cela fonctionne fondamentalement bien et fonctionne toujours Nous sommes en mesure de déménager, tout le reste fonctionne. C'est une ligne de base suffisante et fantastique. Passons maintenant à la création du joueur, maintenant qu'il peut subir des dégâts, donnons-lui la possibilité d'infliger des dégâts en lui donnant une attaque et en créant un mannequin d'entraînement, que nous pouvons toucher et réduire sa santé à zéro Faisons-le dans la prochaine série de leçons. 41. 39 Ajouter les entrées d'attaque du joueur: C'est bon. Dans cette vidéo, nous allons vous expliquer comment ajouter rapidement une entrée d'attaque à l'épée. Nous voulons simplement configurer l'entrée. Maintenant, actuellement, dans le jeu, lorsque iPressPlay, si iPressCKRather, cliquez avec le bouton gauche de la souris sur la manette, remarquez qu'en haut à gauche, le texte indiquant « attaque » s'affiche . Lorsque je me déplace, j'appuie sur E, le texte indiquant l'attaque s'affiche, puis sur ma manette, lorsque je me déplace vers la gauche ou la droite, je peux immédiatement appuyer sur le bouton X de la Xbox et le texte d'attaque s'affiche. Voici comment vous allez le configurer. Maintenant, retournez à Controls, qui se trouve dans ce dossier. Il s'agit du même dossier que celui que vous utilisez pour configurer votre saut, vos mouvements et votre carte de joueur dans Unreal Engine Vous allez créer une nouvelle action de saisie et l'appeler attaque Mele , attaque MELEE Maintenant, lorsque vous y entrez, vous pouvez le laisser tel quel et il peut rester un booléen numérique Vous n'avez pas besoin d' y apporter de modifications. Configurez simplement l'action, appelez-la Melata. Une fois que vous avez terminé, vous devez accéder à la carte du joueur, qui est le contexte de mappage d'entrée. Lorsque vous accédez à la carte du joueur, au contexte de mappage d'entrée, vous voulez vous assurer de venir ici et d'ajouter une nouvelle cartographie. Une fois que vous aurez fini d'ajouter cette nouvelle cartographie, vous l'ajouterez en tant que Mon attaque, que vous sélectionnerez dans une liste déroulante. Trouvez l'action de saisie Mattach. OK. Une fois cela fait, ajoutez de nouvelles entrées, ajoutez le bouton gauche de la souris pour déclencher la méta-attaque, ajoutez E sur votre clavier pour déclencher la méta-attaque. Et puis si vous avez une manette, si vous n'en avez pas, c'est bon, vous pouvez ignorer cela. Mais si vous avez une manette, vous devez également appuyer sur ce bouton, ou comme déclencheur pour le metack Une fois que vous avez terminé cette étape, qui est très, très similaire à la façon dont vous avez configuré le mouvement, d'accord. Une fois cette étape terminée, vous devez maintenant trouver le plan de votre joueur Maintenant, le plan du joueur doit se trouver sous Personnages, joueur, et là se trouve notre classe Plan de héros Maintenant, dans le plan du héros, cette partie est très facile à comprendre Bien entendu, créez une zone de commentaire qui contiendra les données et dites : «   Hé, c'est ici que se trouvent ces nœuds pour l'organisation ». Ensuite, vous allez cliquer avec le bouton droit de la souris et rechercher mon attaque, ce qui fera apparaître l'entrée « attaque moi ». Une fois cette entrée entrée, demandez-lui simplement d'imprimer la chaîne et appelez cette attaque de chaîne. Et avec ça, c'est terminé. Nous avons maintenant le code de base pour notre configuration d'attaque Me. L'attaque des repas est donc prête. Nous sommes donc maintenant prêts à commencer à ajouter et à implémenter, en ajoutant la boîte de dialogue, puis l'animation. Mais revenons-en à cela dans la prochaine vidéo. 42. 40 Création d'un mannequin de combat Partie 1: Maintenant que nous avons une idée de base de ce que sera notre attaque , nous allons avoir besoin de quelque chose contre lequel nous pouvons nous entraîner. Pour ce faire, nous avons besoin d'un mannequin d'attaque de base , que nous allons utiliser Pour ce faire, nous allons simplement retourner dans le dossier de notre personnage. Et cette fois, nous allons créer un nouveau dossier, et nous allons l' appeler dossier. Nous allons appeler cette attaque de dossiers factice, d'accord ? Parce que nous allons ajouter et créer un dammi d' attaque de base ici Nous allons donc créer une classe de plan, et nous voulons que ce soit voir Nous voulons que ce soit une base. Voyons voir, voyons voir. Voyons voir. Que voulons-nous ? Faisons en sorte que ce soit un personnage, d'accord. Mais ce ne sera qu'un mannequin d'attaque. OK ? Ce sera notre mannequin d'attaque Et double-cliquons rapidement sur le mannequin d'attaque. Et qu'est-ce que nous voulons vraiment avec le mannequin d'attaque, n'est-ce pas ? Allons-nous y ajouter un cube de base, c' est tout ce dont nous avons besoin pour y ajouter. En ce qui concerne le matériau, je veux dire, nous pouvons choisir pratiquement n'importe quel matériau. Ça n'a pas d'importance. OK. Cela n'a pas vraiment d'importance. Mais c'est ce que nous allons utiliser, d'accord ? Alors compilons-le rapidement. Et avec cette attaque, Dummy, faisons-la glisser dans le monde entier. Assurez-vous qu'il est égal à zéro sur l'axe Y en termes de position, car je veux qu'il soit légèrement à droite du joueur. C'est cool. Ensuite , nous voulons y ajouter, vous savez, quelque chose d' assez basique. Nous voulons y ajouter un inconvénient pour la santé. Donc, à l'intérieur de l'attaque, bon sang, nous voulons avoir une barre de santé à l'intérieur Maintenant, pour ajouter la barre de santé ici, la première chose que nous allons faire est d'accéder au graphique des événements, puis nous allons entrer dans les variables, et nous voulons créer une nouvelle variable. Et ce type de variable sera un float. Et nous allons appeler cette variable. Nous allons l'appeler Dam Health. OK, ça va être une variable. Et nous voulons configurer le Let's call Let's make the dummy Health 100, d'accord ? La satanée santé va être de 100. Cela va rester simple. Maintenant que la santé du dammi est de 100, nous allons pouvoir ajouter la barre de santé au barre de santé au dammi lui-même afin qu' il ait une barre de santé au-dessus de sa tête Maintenant, lorsque nous avons créé la barre de santé pour la dernière fois, en accédant à l'interface du joueur, nous avons créé cette simple barre de santé pour le joueur de cette façon, d'accord ? Nous allons donc faire exactement la même chose, mais cette fois pour notre dammi Nous allons donc nous contenter de rester organisés, nous allons nous lancer dans la lutte contre les attaques. Nous allons créer un nouveau dossier, et nous allons appeler cette interface de dossiers , pour le garder organisé. Donc, à l'intérieur de cela, nous allons écrire click et nous voulons créer un élément d'interface utilisateur. Et l'élément que nous voulons créer est un plan de widget. Vous devriez pouvoir le voir de votre côté, Widget Blueprint, d'accord ? Et oui, nous voulons créer un widget utilisateur. C'est très bien Et nous allons l'appeler Dammi Health Bar. OK. C'est ainsi que nous l'appelons. Nous l'appelons Dammi Health Bar. Alors, double-cliquez sur la barre de santé factice. Tout d'abord, nous voulons ajouter un panneau de toile, comme toujours. Et puis, après avoir ajouté le panneau du canevas, nous voulons avoir une barre de progression. Ragatin. Nous voulons l'ancrer nous voulons vraiment l'ancrer au centre. Vous pouvez donc choisir n'importe quel centre, mais j'aime le placer juste au milieu. Et puis pour la position et le décalage, je veux que ce soit un décalage zéro ou un décalage zéro parce que ça va être un peu important, tu sais ? Ensuite, je veux augmenter sa taille Y à quelque chose comme 300. OK, alors fais juste une bonne grosse barre santé à la viande. Position des hanches zéro, zéro. Non, en fait, fixons-le à une position négative 150. Donc, en gros, ce que j'ai fait, c' est le déplacer vers le milieu de l'ancre , le décaler de gauche à zéro, le décaler de droite à zéro. Et la position Y est négative 150 car sa taille Y est de 300, ce qui l'amène à cette taille. Ensuite, remplissez la couleur, je pense que ce sera jaune. OK. C'est cool. Maintenant que la couleur de remplissage est définie sur le jaune, réfléchissons à sa progression. Son pourcentage sera Je pense que son pourcentage sera nul pour commencer. OK ? C'est cool. C' est donc maintenant notre barre de santé. Maintenant, remarquez qu'en ce moment, cela s' appelle barre de progression. Changeons cela. Et en fait, nous ne pouvons même pas le laisser progresser, disons simplement que c'est de l'aide factice Barre de progression Maintenant que notre barre DamihAlthPgress est définie, nous devons nous assurer de la configurer en tant que Et une fois tout cela fait, nous en avons pratiquement terminé ici. Maintenant, revenons à l'attaque, bon sang, d'accord ? Nous voulons maintenant que notre dammi d'attaque soit chargé dans le monde. OK, ce mannequin d'attaque, nous voulons qu'il ait une barre de santé au-dessus de sa tête OK. Pour ce faire, nous allons entrer dans le mannequin d'attaque et nous devons ajouter du code au début de la partie. Maintenant, créez une grande boîte de commentaires, accord, pour que cela dise : « Hé, cela ajoute une barre de santé au mannequin et nous partirons de l'événement pour commencer à jouer, d'accord ? Je vais donc le faire glisser, et nous voulons créer un widget, d'accord ? Donc, ce que nous voulons, c' est créer un widget. Nous allons maintenant le sélectionner. Et la classe de widget que nous voulons est DamiHealth Br. Vous pouvez voir la barre DamiHealth là-bas parce qu' Areal sait bien suivre ce que vous avez créé Maintenant que nous l'avons, nous avons le joueur propriétaire, va essentiellement créer ce faux widget de barre de santé Testons-le rapidement et voyons à quoi cela ressemble. OK. Maintenant, si nous compilons ici, il ne devrait y avoir rien à l'écran. Donc, ce que nous devons faire ensuite, c'est ajouter à l'écran. Nous voulons donc ajouter à la fenêtre d'affichage. OK. Commencez donc par l' ajouter simplement à la fenêtre d'affichage Assurez-vous au moins qu' il apparaisse correctement. Doublons C. Et voilà. Donc, pour le moment, cela fonctionne correctement, mais il est ajouté à la fenêtre d'affichage Ajustons ça. OK. Maintenant que nous avons confirmé notre barre de santé peut apparaître correctement, supprimons l'ajout à la fenêtre d'affichage, puis nous allons venir ici et l'ajouter au personnage lui-même Nous voulons donc ajouter un widget et ajouter ce widget. Maintenant, rapidement, passons à la fenêtre d'affichage, d'accord ? Vous allez donc voir qu' il y a maintenant ce widget blanc en haut. Il y a cet objet ici, c'est vrai, qui sera notre widget. Maintenant, ce que nous voulons faire, c'est maintenant que nous l'avons, déplacer un peu vers la gauche, attendre. C'est ce que nous voulons. C'est le cube. C'est le widget que je veux sélectionner. Maintenant que le widget est sélectionné, nous voulons sélectionner de quel type de widget il s'agit. Donc, en sélectionnant le widget, si vous venez ici, vous remarquerez qu'il est possible de sélectionner la classe du widget et, bien sûr, de rechercher la barre de santé Dami, et voilà Il y a donc ajouté la barre de santé dammi. Voyons maintenant à quoi cela ressemble dans le jeu. OK. Donc, en gros, vous ne pouvez pas vraiment le voir d'ici. OK, mais tu peux voir où c'est. Revenons donc à l'endiguement de l'attaque. Donc, pour le moment, cela montre que la barre de santé n'est pas visible d'ici, mais elle l'est d'ici. Faisons donc quelques mouvements de base. Nous allons donc sélectionner sa rotation. Voyons voir. Et nous voulons le faire pivoter sur l'axe Z de 90 degrés. OK ? Donc c'est par ici. Axe Z, 90 degrés. C'est cool. Et puis une fois que c'est fait, réduisons-le légèrement. À environ 0,5. Maintenant c'est fait, puis nous voulons l' augmenter en rotation. Je veux donc qu'il soit légèrement plus élevé. Voilà, compilez ça. Et maintenant, en attendant, vous pouvez voir que ce widget est là. OK ? Oui, le joueur a été déplacé à cause de la zone de frappe, mais nous en parlerons un peu plus tard. OK. Donc, en gros, ça y est. Maintenant que nous l'avons, vous pouvez voir cette barre là-bas. Diminons légèrement sa hauteur. Je veux que ce soit une barre de santé, pas un gigantesque carré de santé. OK. Nous allons donc entrer, débloquer la mise à l'échelle et réduire sa mise à l'échelle sur l'axe Z pour qu'elle soit un peu plus raisonnable. Vous pouvez le réduire sur l'axe Z. Donc voilà. Nous avons maintenant cette barre de santé de base, mais elle n'est pas encore connectée pour afficher les données de santé. Donc, ce que nous voulons faire, revenons au graphique des événements. Maintenant que c'est là, viens ici. Alors glissez-vous dedans. Maintenant, en cas d'événement, commencez à jouer, retirez-le. Tiens bon. Nous voulons mettre à jour cette barre de santé avec les données correctes. Nous allons donc récupérer le widget, le faire glisser ici sous forme d'objet. OK. Et puis, à partir du widget, nous voulons obtenir le faux Non Nous voulons réellement faire ressortir le composant widget. Alors, mettons-le ici. Promouvez-le au rang de variable. Il est actuellement défini sur la variable widget zéro. Je ne veux pas que ce soit la variable widget zéro. Je vais donc appeler cette variable. Au lieu du Widget zéro, je l' appellerai rapidement barre de santé. Donc c'est comme ça que nous allons l'appeler, d'accord ? Elle s'appellera la barre de santé. Maintenant qu'elle est configurée ici en tant que variable, nous voulons la faire glisser vers l'extérieur, et nous voulons dire : « Hey, get dammi No, no, no, get Un moment, il faut vérifier les noms. OK, maintenant attends. Débarrassons-nous de tout ce code initial, car j'utilisais une longue méthode détournée, et pourtant il existe une méthode simple et rapide pour faire. Redescendons. Vous voyez ce widget de barre de santé. Nous n'en avons pas besoin chez. Nous n'en avons vraiment pas du tout besoin. Permettez-moi de supprimer ce qui n'est pas nécessaire. Nous allons revenir au widget de base. Tout ce que nous avons, c'est la configuration fictive de la barre de santé sous forme de widget, et dans le monde actuel, c'est à cela que cela ressemble Nous reviendrons au mannequin d'attaque, et une fois que l'événement aura commencé, au lieu d'avoir à faire tout le travail nécessaire pour l'appeler, nous allons rester simples Maintenant, cette fois, il ne nous reste plus qu' à récupérer le widget et à le faire glisser ici. Et maintenant, nous avons notre composant widget. Le composant widget est maintenant disponible. J'ai déjà la foutue barre de santé prête à être utilisée. Maintenant, laissez-moi dessiner le sud. La prochaine chose que nous allons faire est de lancer pour voir, nous voulons lancer dans la barre d'aide. Non, non, non, je veux jouer. Que voulez-vous en choisir deux ? Quel composant ? Quel composant ? OK, avant de lancer , en fait, nous devons revenir. Nous avons donc notre widget. Nous ne faisons pas de casting directement. La première chose que nous voulons faire est d'obtenir un widget. Donc, si vous faites défiler l'écran vers le bas, si vous tapez G, vous devez obtenir le widget, qui signifie Widget Ce n'est pas le widget C'est le composant du widget. Ensuite, nous voulons intégrer le widget dans le composant. Une fois que nous l'avons fait, nous pouvons le faire glisser vers l'extérieur et dire « cast two », et nous voulons le lancer dans la barre Damihlth Nous y voilà donc. Et connectons-le rapidement. Maintenant, il passe dans la barre de santé de Dammi. Mettons-le dans la rubrique « Organisation ». Gardez-le bien rangé et organisé. Nous avons donc obtenu notre composant widget. Nous avons intégré le widget dedans, puis nous passons à la barre de santé de Dammi Maintenant, en tant que foutue barre de santé, faisons-la glisser et disons : « Hé, voyons voir Je veux avoir la foutue barre de progression de Health juste là Va le faire ici. Ensuite, la prochaine chose que nous voulons faire est de définir son pourcentage. OK. Définissons donc rapidement son pourcentage sur cette barre de progression. Définissons donc rapidement le pourcentage. Mettez-le ici et connectez ces deux liens ici. Maintenant, avant d' apporter des modifications appropriées au pourcentage, je vais le fixer à 100 pour ce qui est de la définition du pourcentage. Compilons-le rapidement et boum, notre barre de santé au-dessus de ce mannequin de combat est complètement jaunie. C'est cool. Nous allons retourner dans le barrage d'attaque et, cette fois, voir ce que nous allons faire. C'est à ce moment-là que le jeu démarre, si vous voulez obtenir la foutue santé, traînez-la ici, et nous voulons dire : « Hé, récupérez cette foutue santé ». Et une fois que nous aurons obtenu cette satanée santé, nous voulons la prolonger et la diviser, et nous voulons la diviser par 100 D'accord, à 100 ans. Faites-le ensuite glisser ici sous forme de pourcentage, et ce sera essentiellement y. Compilons. Donc, lorsque vous appuyez sur Play, le tour est joué. Ça y est. Cependant, il ne subit pas encore de dégâts. Il ne possède aucune de ces capacités. Nous avons juste un mannequin de base avec une barre de santé. La prochaine chose que nous allons faire est de nous assurer qu'en cas de dommage, cette barre de santé soit correctement mise à jour. Donc, copions ceci. OK ? Faites-le glisser vers l'extérieur. Et voici A, ajoutez une barre de santé au mannequin Non, modifiez votre santé en fonction des dégâts. OK ? Nous allons donc le faire ressortir, et nous allons faire pratiquement exactement la même chose que qui est de notre personnage de base, d'accord ? Nous mettons à jour la barre de santé en cas de dommage. Donc, d'une manière très similaire, nous venons ici. Nous dirons : « Hé, n'importe quel dommage ». C'est l'événement. L'événement porte donc sur tous les dégâts. OK. Nous allons donc subir ces dégâts. Et la première chose que nous allons faire, c'est obtenir cette satanée santé. Déposez-le ici. Je veux retrouver cette satanée santé. Ensuite, la prochaine chose que nous voulons faire, c' est de réintégrer cette satanée santé Et cette fois, nous sommes en train de définir la satanée santé. Nous allons donc obtenir la santé fictive, puis nous allons la soustraire, soustraire et nous soustrairons les dégâts qu' elle a subis pour devenir Nous allons donc l'installer là-bas. Et puis, une fois que nous en aurons fini avec cela, nous allons venir ici et nous voulons également modifier ce pourcentage. Nous allons donc récupérer tout ce code ici, copier et le coller ici. Donc, juste après cela, nous allons passer à cette barre de santé ici et suivre exactement le même processus. OK ? Nous allons donc créer la barre de santé Dammi , puis nous allons mettre à jour sa barre de progression avec la nouvelle barre de santé Dammi C'est tout ce qu'il faut faire. Maintenant que ce code est prêt à être configuré, revenons en arrière et infligeons des dégâts au joueur afin qu'il puisse réellement toucher cet ennemi et lui infliger des dégâts. 43. 41 Créer une attaque pour un joueur Partie 1: C'est bon. Maintenant que nous avons un mannequin d'attaque de base, d'accord, nous allons revenir au personnage du héros et à la viande, et nous voulons vraiment ajouter quelque chose à la viande Et je vais partager avec vous un moyen très efficace d'intégrer des attaques à la fiables et raisonnables dans votre jeu, qui fonctionnera à chaque fois que vous l'appellerez et qui sera fiable. Cependant, revenons rapidement à nos personnages Je vais ouvrir le dossier Attack Dammi et m'assurer que le héros et l' Attack Dammi sont ouverts car nous allons devoir faire allers-retours entre eux, assurer que le code fonctionne correctement car les deux vont interagir Maintenant, venons-y. Juste un bref aperçu. Lors du chargement, nous ajoutons la barre de santé au Damik que nous avons configuré à ce pourcentage Et puis, après chaque dommage, nous obtenons la satanée santé, puis nous changeons le nombre indiqué dans la barre de santé Ce code doit être compréhensible pour vous et vous devez tout avoir prêt à l'emploi. Maintenant, avec tout cela, ce dont nous avons besoin, c'est de quelque chose qui puisse causer des dégâts, et allons-y. Une très bonne façon d'ajouter cela , j'ai appuyé sur la barre d'espace. Je vais en revenir aux personnages. Je vais retourner dans le lecteur, et je vais créer un nouveau dossier. Et à l'intérieur de ce nouveau dossier, je vais plutôt appeler le nouveau dossier Damage it box, non ? Ou parfois j'aime parler d'objets endommagés, n' est-ce pas ? Alors, endommagez les objets. C'est une façon de l'appeler, mais permettez-moi de renommer nom que j'ai déjà utilisé Je ne veux pas que cela soit source de confusion. Permettez-moi donc de le remplacer par Damage at Box. Et la raison en est que je veux être capable d' avoir des attaques différentes, des boîtes de frappe endommagées différentes, et vous voulez que cela soit distinct du personnage principal. Allons-y et laisse-moi t'expliquer cela clairement. Donc, à l'intérieur, nous allons créer une classe de plan, et ce que nous voulons, c'est un acteur de plan simple Appelons donc cela simplement SWOD dash. En fait, disons que c'est l'attaque SWOD Underscore One. OK ? Il s'agit donc d'une attaque SWOD sous le score 1 Double-cliquez dessus pour l'afficher. Permettez-moi de l'additionner ici. Et dans la première attaque SWOD, nous voulons simplement ajouter une collision. OK ? Quel genre de collision ? Nous voulons ajouter une collision de boîtes de base pour cela. Et puis, pour plus de clarté, ajoutons également cela, car vous pouvez voir que ajoutons également nous avons ajouté cette collision de boîtes. Ajoutons également un simple cube. Oh, désolée. Ajoutons un cube. Je ne sais pas pourquoi nous sommes là. Nous avons donc ajouté un cube, non ? Maintenant, nous pourrions décider d' ignorer le curseur de la boîte et d'utiliser le cube seul. Mais je vais rapidement dissocier sa mise à l'échelle. Je veux donc le redimensionner sur l'axe Y pour qu' il soit Laisse-moi le laisser sur un sur l'axe Y. Oh, pas dix, dix c'est trop grand. Je le veux sur un. Mais ensuite, je veux qu'il soit un peu plus court sur l'axe vertical. Je l'ai donc réduit à la verticale à environ 0,2. Voici donc notre simple attaque SOD. Maintenant, ici, ça ne fait rien. Ce n'est qu'une simple attaque SWOD. C'est juste, tu sais, assis là. Donc, ce que nous voulons, c'est créer la scène. Gardez à l'esprit que cela ne fait rien, mais nous appellerons simplement l'attaque SOD une attaque Nous allons donc revenir au héros attaqué au corps à corps. Et ce que nous voulons, c'est au lieu de simplement imprimer un texte appelé attaque, nous voulons qu'il soit également inclus dans le texte de l'attaque à l'épée. Nous allons revenir au héros et juste après le texte qui dit « attaque  » nous allons ajouter les nœuds qui vont le générer Maintenant, l'apparition est assez simple. Nous allons le faire glisser et taper span Okay. Et c'est un acteur issu de la classe que nous allons sélectionner. Maintenant, ce que nous allons apporter, est chercher Sword Attack One. Parfait. Maintenant, nous devons décider de l'endroit où il va apparaître et de son mode de gestion des collisions, d'accord ? Mais c'est bon. Nous n'avons pas besoin d'y toucher pour le moment. Nous allons sélectionner la transformation d'apparition, puis nous la diviserons simplement parce que nous voulons qu'elle apparaisse à un certain endroit En ce moment, il apparaît à zéro, zéro, zéro. Donc, si nous revenons, nous faisons un zoom arrière si nous compilons. En gros, ça l' engendre plutôt, désolée, laisse-moi jouer aux stands Donc à tout moment, remarquez, cela ne fait que générer cela. C'est tout ce qu'il fait. Ça fait apparaître un objet juste là Donc ça le fait apparaître là-bas. Nous voulons qu'il apparaisse dans la zone centrale du personnage, d'accord ? Nous allons donc revenir au héros et nous voulons changer l'endroit où il va apparaître Donc, là où nous voulons qu'il apparaisse, c'est autour de l'endroit où se trouve le flip book en papier Alors laisse-moi glisser le flipbook en papier. Ensuite, je veux simplement obtenir la position du mot, obtenir la position du monde parce que je veux arriver là où il se trouve. C'est une bonne chose. Et juste après avoir obtenu son emplacement, nous le connectons à la travée. En fait, permettez-moi de rompre ce lien. Non, non, non. Veuillez recombiner la broche de structure Oui, d'accord ? Voyons simplement pourquoi je me sépare ? Je veux recombiner. Je ne veux pas me séparer. OK, alors attachons-le rapidement juste là, non ? Nous avons donc obtenu le flipbook en papier dans lequel nous l'avons traîné, nous avons trouvé l'emplacement sauvage, puis il nous avons trouvé l'emplacement sauvage, sera connecté à la transformation du Et c'est ce que vous obtenez maintenant. Appuyons donc sur Play. Boom, remarque où il est apparu. OK ? Maintenant, revenons en arrière. Le seul problème que nous avons, c'est que lorsque nous l'avons intégré, cela entre en collision avec l'acteur, ce qui n' est pas ce que nous voulons Nous allons donc sélectionner cette attaque à l'épée ici. Ce cube est là, et nous allons rechercher une collision. Et pour le moment, sa collision est configurée pour bloquer toute dynamique, ce que nous ne voulons pas. Disons que c'est superposer tout ce qui est dynamique. Le chevauchement signifie qu' il se chevauchera. Il sera capable d'entrer en collision avec des objets et de les franchir, mais pas de les bloquer. Essayons donc de le faire tourner. Et remarquez que cela se chevauche. Et chaque fois que je clique sur Attaque, ça apparaît dans l'une d'entre elles, d'accord ? Et si je maintenais simplement le bouton d'attaque enfoncé, cela les fait apparaître à l'infini. Mais c'est stupide, mais nous y reviendrons plus tard. OK ? Au moins maintenant, nous savons avec certitude que nous pouvons cliquer sur le bouton d'attaque, et cela l'affichera C'est génial. Maintenant que nous avons compris cela, nous devons simplement ajouter un positionnement un peu plus intelligent Donc, pour commencer, cette attaque à l'épée, revenons au héros Donc, à l'heure actuelle, il s'agit de trouver l'emplacement sauvage , puis de le faire apparaître exactement dans l'emplacement sauvage Mais peut-être que ce n'est pas ce que nous voulons, non ? Donc, ce que nous allons faire, c'est rompre rapidement ce lien, d'accord ? Donc, séparons ça. Et ensuite, maintenons le cap, laissons tomber. Maintenant, nous savons avec certitude que c'est le X, ce plan, le plan horizontal est le X. Donc, pour ce qui est de cela, c'est bon. Il peut apparaître au même endroit sur le Z. Il peut apparaître au même endroit sur l' Mais sur le X, nous allons simplement l'obtenir puis ajouter 120 unités, ce qui va le faire avancer un peu sur l'axe X. Viens ici, connecte-le. Excellente. Et avec ça, compilons. Maintenant, cette fois, chaque fois que nous entrons et que nous appuyons sur le bouton d'attaque, il apparaît juste un peu avant le personnage Oui, je sais que cela ne fonctionne pas sur le côté gauche, mais ne vous inquiétez pas, nous nous en occuperons plus tard. Nous voulons d'abord nous assurer qu'il fait des dégâts. C'est donc à peu près là que la boîte de frappe va apparaître. C'est cool. Maintenant que le personnage apparaît dans quelque chose de simple dans le monde, apportons quelques ajustements Nous avons donc l'attaque Dammi ici. Nous voulons qu'il inflige des dégâts au mannequin d'attaque. Donc, quand j'entre et que je le fais filer, cela devrait endommager le mannequin d'attaque Maintenant, pour que cela fonctionne, tout ce que nous avons à faire est de le lier. Nous voulons le relier au mannequin d'attaque. Donc, à l'intérieur de son graphe d' événements, non ? Nous allons chercher ce cube nous allons venir ici. Je souhaite ajouter un événement sur le début, le chevauchement des composants, le cube. OK. C'est donc celui-ci que nous voulons. OK. Le composant commence à se chevaucher. Maintenant, en ce qui concerne l'autre acteur, c'est l'autre acteur qui va être le mannequin de l'attaque Nous voulons donc lancer pour attaquer Dammi. OK ? Donc c'est ici, OK, lancez-vous pour attaquer Dammi Ensuite, configurez-le de telle sorte que l'autre acteur soit configuré pour être le mannequin d'attaque OK. Et puis, souvenez-vous, chaque fois que cela coïncide avec le barrage d'attaque, nous voulons infliger des OK. Voilà, le nœud de dégâts appliqués. Et le montant des dégâts que vous voulez infliger est de dix, d'accord. Et juste après avoir infligé dix dégâts, nous voulons détruire l'acteur et détruire quel acteur lui-même. Il se détruit donc tout seul, ce qui est cool. OK ? Donc, ce que nous voulons, c'est qu'il apparaisse chaque fois qu'il se superpose sous forme de cube avec le barrage d'attaque, il infligera dix dégâts puis se détruira lui-même Maintenant, avec ce simple coddin d'interaction, allons-y OK. Il attaque donc, mais ce n'est pas correctement le cas. Cela ne semble pas faire de dégâts, mais vérifions-le, n'est-ce pas ? Passons donc au mannequin d'attaque. Et rapidement, en cas de dommage, laissez-moi vite. C'est juste un dépannage, d'accord. En ce qui concerne les dégâts, permettez-moi de les classer dans une séquence. OK, donc la séquence signifie essentiellement qu'elle fera une chose puis une autre. Ensuite, je vais appliquer une chaîne d'impression, puis je vais dire que c'est endommagé pour voir si des dommages sont causés. Donc je suis là. OK, il ne subit donc pas de dégâts actuellement, ce qui signifie que le casting ne fonctionne pas correctement. Revenons en arrière et revisitons le casting. Ah, c'est pourquoi. Comme l'acteur endommagé n' a pas été sélectionné, laissez-moi le sélectionner comme acteur endommagé. J'ai sauvegardé, j'y retourne, reviens et je le teste à nouveau. Bien. Remarquez qu' il subit des dégâts. Excellente. Maintenant, vous allez le faire fonctionner de telle sorte que lorsque je clique pour attaquer, le mannequin subit des dégâts C'est encore rudimentaire. Il y a beaucoup plus de code pour que cela fonctionne efficacement, mais c'est une bonne chose. Nous avons désormais la possibilité d'apparaître dans une simple boîte à chaleur, ce qui fait des dégâts Allons de l'avant et nettoyons le tout. Ensuite, nous allons juste nettoyer un peu le code pour le rendre plus efficace. 44. 42 Changements de code pour l'attaque d'un joueur Partie 2: C'est bon. Maintenant que nous avons, vous savez, la version la plus basique d' une attaque à l'épée par un joueur, revenons en arrière et revoyons le DCAA de cette Donc, du point de vue de la conception, le joueur balance son épée pour infliger des dégâts. Cool. Codez, infligez des dégâts aux objets ennemis, nous l'avons compris maintenant Et puis l'animation de Soder Tack et le son de Soda Tack Et nous aborderons ces deux derniers points dans les prochaines vidéos. Mais pour l'instant, nettoyons une grande partie du code qui consiste à infliger des dégâts aux objets ennemis. Maintenant, cela fonctionne actuellement chaque fois que vous appuyez sur un bouton d'attaque. Remarquez qu'il fait beaucoup de dégâts à plusieurs reprises. Alors, réglons-les un par un. Nous allons nous assurer qu' il n'inflige qu'une seule instance de dégâts. OK. Ensuite, nous devons nous assurer que lorsqu'il fait face à gauche, il apparaisse sur le côté gauche Lorsqu'il fait face à droite, il apparaît sur le côté droit. C'est déjà ce qu'il fait. Mais oui, c'est la première chose que nous allons résoudre. Donc, pour l'instant, si nous revenons au héros, il s'agit de trouver l'emplacement sauvage actuel. Ensuite, il ajoute 120 unités à la position, et c'est pourquoi il apparaît. OK. Mais nous allons apporter un changement rapide. Maintenant que nous savons que cela fonctionne, nous pouvons supprimer tout ce code, et nous continuons à apparaître dans le code Sword Tack Mais maintenant, sa position ne sera pas déterminée uniquement par le flipbook papier Passons maintenant à la fenêtre d'affichage, non ? Nous avons deux ou trois choses. Il y a le classeur en papier. C'est là que nous configurons le son des pas du joueur, d' où provient le son de démarrage, et celui d'atterrissage, d' où il vient. Comme tout ce que fait le joueur est attaché au flipbook en papier, c'est l'endroit idéal pour ajouter tous ces autres objets Nous allons donc rapidement ajouter une simple collision. En fait, non. Nous allons ajouter un simple laissez-moi voir, ajouter un simple dont nous avons besoin de quelque chose de visible. Ajoutons à cela une simple collision de cases. OK. Et cette case, nous allons baisser son échelle. Je veux que ce soit vraiment bas, d'accord ? Et puis sa position, nous allons la faire glisser juste devant. Je suis sûr que vous pouvez voir ce qui se passe ici. Et nous allons renommer cette zone et nous voulons la renommer en SWOT attack, location, underscore one OK. C'est donc le premier point d'attaque SWOD, et nous l'avons configuré ici Maintenant, juste pour vous montrer pourquoi c'est important, laissez-moi ajouter un simple cube, d'accord ? Ajoutez un simple cube, et j'ai ajouté le cube simple à l' attaque à l'épée, n'est-ce pas ? Où se trouve ce cube ? Je veux qu'il soit visible. C'est où ? Je ne le vois pas. C'est si petit que ça ? S'il est petit, il va falloir l'agrandir. Oh, claquez. OK, c'était peut-être trop grand. Réduisons cela plus petit. Oui Maintenant, permettez-moi de vous montrer rapidement , oh, pourquoi y a-t-il une pause ? Il refuse de compiler. OK. Pourquoi ne compile-t-il pas Parce que cette transformation de spawn n' a rien à relier. Permettez-moi de rompre ce lien. Maintenant, il compile correctement, d'accord. Notez donc que quoi qu'il arrive à chaque fois que le joueur change de direction, cette boîte à chapeaux se trouve au même endroit. Vous pouvez le remarquer, n'est-ce pas ? J'espère que tu le vois clairement. C'est une bonne chose. Maintenant que nous avons cet emplacement, n'est-ce pas ? Cet emplacement du cube, permettez-moi de le supprimer. Sélectionnons rapidement le cube pour le supprimer. Nous savons maintenant que nous pouvons en connaître l' emplacement à tout moment . Revenons donc à l'attaque. Non, désolée, revenons au graphique des événements des héros. Nous allons le relier à nouveau, ce qui déclenchera l'attaque SOD Mais cette fois, nous allons trouver le premier emplacement de l'attaque SWOD, et le faire glisser ici OK, fais-le glisser ici. Ensuite, nous allons trouver un endroit sauvage. OK, trouvez son emplacement sauvage, et c'est ce que nous allons utiliser comme lieu de connexion entre les Span Transform. Alors laisse-moi empiler ça. J'aime les empiler verticalement chaque fois que j'en ai l'occasion, afin que tous les nœuds puissent se trouver dans une seule zone et que je puisse regarder de bas en haut pour voir ce qui se passe. Alors compilons ça. Et maintenant, tout d'un coup, il apparaît devant, apparaît sur la droite, apparaît sur la gauche, sponsorise la droite, et passe à gauche Sympa. Nous devons maintenant résoudre le problème suivant. Pour commencer, ces attaques SOD durent trop longtemps, d' accord, et elles sont bien trop nombreuses. Nous devons donc le corriger de telle sorte que lorsque nous apparaissons dans ce SwodTack, il disparaisse après un certain temps, d'accord ? Revenons donc à l'attaque SWOD elle-même. Et nous allons le changer. Donc, pour commencer, il est écrit : «   Hé, aucun événement ne commence à se chevaucher S'il chevauche le mannequin d'attaque, il inflige des dégâts, puis il se détruit lui-même Mais ce que nous voulons aussi, c'est un acteur . Désolée, je n'en ai pas besoin. Ce que nous voulons, c'est que l'événement commence à se dérouler. C'est ce que nous voulons. Nous voulons que l'événement commence à se dérouler. Nous voulons qu'il y ait un petit délai. OK. Et ce délai sera réglé à 0,01, puis l'acteur sera détruit. C'est une façon de procéder. Donc, si nous entrons, maintenant, remarquez que chaque fois que je participe à l'attaque SOD, elle est disponible pendant environ 0,1 seconde, désolée, elle est visible pendant environ 0,1 Puis elle disparaît. C'est une façon de procéder. Une autre façon de le faire est qu' au lieu d'utiliser Event Begin Play pour le détruire, nous pouvons utiliser Event Tech et T est appelé chaque image. Alors laissez-moi interrompre l' événement et commencez à jouer. Je n'ai donc pas besoin de tarder si j'utilise le t. Donc, le technicien événementiel va venir ici, le connecter là-bas. Et en gros, chaque fois qu'une image est terminée, l'acteur est détruit. Le soda tack n' existera donc que pour une seule image. Maintenant, remarquez. En gros, il est désormais invisible. Donc, si je viens ici et que je clique, remarque que cela fait des dégâts parce qu'il est créé, mais qu'il disparaît juste après une image, d'accord ? C'est ainsi que votre personnage peut désormais infliger des dégâts avec une zone de frappe invisible en une seule image. C'est cool. Cependant, bien que cela soit une bonne chose, nous avons toujours le défi de lancer plusieurs attaques à chaque fois que j'appuie sur le bouton d'attaque . Ça se reproduit en trop grand nombre. Nous devons donc ajuster cela. Revenons-en donc au héros une fois de plus. La maleta d' action de saisie améliorée, nous allons apporter une modification Cette fois, nous allons utiliser ce que nous appelons le déclencheur Do Once, d'accord ? Fais-le une fois. Donc, cette fois, en faisant glisser le pointeur depuis le déclencheur, nous dirons : « Hé, faites-le une fois, afin qu'il ne le fasse qu'une seule fois, puis il ne puisse plus le refaire Et puis terminé ou plutôt annulé, il se réinitialise. Alors revenons en arrière. Je vais donc cliquer. Oh, désolée, je suis toujours en train de zoomer. Et non, non, ça ne fonctionne toujours pas correctement. Ce n'est pas annulé. Brisez ce lien. Je veux qu'il soit terminé, il se réinitialise, compile, revient. Donc maintenant, si j'appuie une fois, il lance une attaque. Donc, quand j'appuie une fois, il lance une attaque. D'accord ? Remarquez, je clique une fois, ça fait une attaque ou dix dégâts. Cependant, si je clique et que je maintiens, rien ne sort tant que je n'appuie pas à nouveau dessus, d'accord ? Je dois appuyer à nouveau dessus pour qu'il fonctionne. nous permet de faire en sorte que cela fonctionne de manière efficace et claire. Faisons donc d'abord un autre test. OK. Alors, est-ce que ça fait des dégâts sur la gauche ? Oui, ça fait des dégâts sur la gauche. Cela fait des dégâts sur la droite. Parfait Parfait Parfait Maintenant, nous avons le code de notre soda tack complètement enregistré. Il y a encore d'autres changements, mais si vous avez tout compris à ce sujet pour le moment et comment fonctionne son apparition, nous pouvons maintenant passer à l'animation afin d'avoir une animation Soder Tack qui soit belle dans nous pouvons maintenant passer à l'animation afin d'avoir une animation Soder Tack qui soit belle 46. Animation d'une attaque par l'épée de 44 joueurs - Partie 2: Très bien, en tant que héros, en nous éloignant du héros, nous voulons trouver Sword Attack One, qui est là et qui veut faire une double vérification, n'est-ce pas ? Est-ce égal D'accord, est-ce égal à un parce que c'est un booléen Et si c'est le cas, peut faire la transition. Compilons ça. Nous sommes intéressés par le jeu. Ainsi, lorsque j'appuie sur le bouton d'attaque, il est désormais bloqué dans cette animation d'attaque. C'est une bonne chose. Revenons donc au plan Vous voulez atteindre le haut niveau du héros pour passer d' une attaque SOD à une idole Copions simplement tout cela. D'accord, parce que je pense qu' à tout moment, vous pouvez copier et économiser du temps et de l'énergie, pour revenir au mode veille. En gros, il le fera sauf s'il est désactivé, puis il devrait redevenir inactif. Donc inactif, attends. Attaque. OK, alors maintenant attends. Non, il n'est pas encore là. D'accord, mais l'attaque est toujours en cours, nous devons donc trouver un moyen de assurer que l'animation de l' attaque revienne. Nous allons donc revenir au héros. Soda Tack est réglé sur un. Laisse-moi comprendre, mets-le devant. Donc, juste après son apparition dans le SOD, soda tack est mis C'est une façon simplifiée de procéder. Alors maintenant, oui, ça ne marche pas. Cela fonctionne trop vite. Cela passe de l'activation à l'arrêt trop rapidement, je pourrais donc introduire un délai rapide. Et nous allons régler le délai. En fait, pour que ce délai soit effectif, nous voudrions revenir en arrière regarder les illustrations pour le joueur. Et ce que nous voulons, c'est le soda. Le soda tack est composé de 15 images. Vous pouvez le voir ici. Il s'agit de 15 images, mais il s'agit de cinq images d'animation. Laisse-moi laisser tomber ça 15-5. Donc c'est ce qu'il fait. Voyons voir. Boum. Hmm. Intéressant Il s'agit donc de 15 images sur cinq images d'animation. Nous allons nous en tenir à cinq pour le moment, par souci de simplicité. Retournez. Donc cinq. Cela va donc prendre 1 seconde de retard. Alors revenons ici, attaquons, et c'est fait. Donc ça attaque, puis c'est fait. Si c' est fait, c'est parce qu'en tant que héros, après un délai d'une seconde, il définit l'attaque à l'épée à un, lieu de zéro à l' attaque SWOD Nous allons revenir et changer cela. Au moins, nous savons que la logique de base est logique. Donc, dès maintenant, il peut partir du mode veille et ensuite il peut commencer à bouger. Ainsi, vous pouvez attaquer et vous déplacer, attaquer et bouger, attaquer tout en continuant à bouger. L' animation de l'attaque se déroule donc. Alors c'est fait. Mais si vous vous déplacez, vous ne pouvez pas passer à l'animation d'attaque. Réparons rapidement à ce problème. Maintenant, nous allons revenir en arrière, revenir au plan d'animation à un niveau élevé Nous ferons de même pour la course. Oh, permettez-moi de revenir en arrière et de copier le code parce que je le veux, vous savez, pour sauver des vies et du temps. Reviens. Donc, en passant de la course à la boisson gazeuse, gros, vous passerez de la course à la course à la boisson gazeuse. Si un héros est un héros, la tactique de Soder qui fonctionne, d'accord ? Ensuite, vous pouvez passer du soda à la course à pied. Tant que le soda tack est réglé à zéro. Donc, en d'autres termes, vous allez de l' avant, ce qui est une bonne chose. Alors maintenant, essayons à nouveau. Alors je cours. Je prends du soda, je peux recommencer à courir. Je cours, je prends du soda, je peux recommencer à courir. D'accord. C'est une bonne chose. Attaque le sol, froid, attaque le gazon, froid, attaque le sol. Cela fonctionne parfaitement bien. Alors voyons voir. Oh, d'accord, il y a des dégâts. Il y a des dégâts. Il y a des dégâts. Il y a des dégâts. Il y a des dégâts. Ce sont des dégâts. Il y a des dégâts. Donc oui, ça fait des dégâts maintenant. D'accord ? Cela fonctionne. Cela fonctionne en grande partie comme prévu. Bien sûr, il y a encore quelques problèmes. Par exemple, il inflige des dégâts sur la première image, qui n'est pas ce que nous voulions, nous voulions infliger des dégâts sur la troisième image. C'est là que c'est dangereux, non ? Parce qu'il tombe, puis il frappe, il descend, puis il frappe, puis c'est fait, descend, il frappe, il a fini. Nous aborderons ces ajustements un peu plus tard, mais à présent, la ligne de base fonctionne correctement. C'est une bonne chose. 47. Animation d'une attaque par épée aérienne de 45: OK, donc maintenant, en ce qui concerne le sol , chaque fois que vous vous déplacez, vous pouvez lancer cette attaque. Lorsque vous êtes immobile, vous pouvez lancer cette attaque de base simple. Mais qu'en est-il lorsque vous avez sauté ? Eh bien, maintenant, nous devons en ajouter un peu parce que vous obtenez toujours la même case de frappe lorsque vous sautez, n'est-ce pas ? Par exemple, tu as toujours la même case de frappe quand tu sautes. Mais comment pouvons-nous nous assurer que vous pouvez réellement faire des dégâts ? Je veux dire, les dégâts que nous avons déjà infligés ont réglé le problème. Mais comment obtenir une belle animation aérienne pour l'attaque ? Eh bien, allons-y et ajoutons l' animation d'attaque par saut. Nous allons donc revenir à l'aventurier et vous devez rechercher rapidement une attaque dans le domaine de l'art OK. Et maintenant, remarquez qu'il y a une simple animation d'attaque aérienne, et elle comporte trois images d' animation. Il passe à 0-03 Trouvez-les. OK, ils sont ici. J'espère que vous pouvez le voir clairement, mais vous devriez pouvoir le voir clairement basant sur les instructions en l'air. Ensuite, vous allez les transformer en sprites. En d'autres termes, créez un sprite. Ensuite, avec les trois mêmes que vous avez créés sous forme de sprite, créez un flipbook et appelez-le simplement Air Sword Attack, soulignez-en un. OK. C'est donc le nom que je recommande d'utiliser Air Sword Attack, soulignez-en un. Il s'agit donc d'un double clic. Voici donc l'attaque à l'épée aérienne. C'est vraiment ça. OK. Notez maintenant qu'il s'agit de quatre images d'animation. Permettez-moi donc de changer l' animation en quatre. OK. Cela sera ajusté plus tard, mais c'est juste pour plus de clarté visuelle, d'accord ? Maintenant, nous allons revenir à la source de l'animation, puis nous allons ajouter une nouvelle séquence d'animation. Et, bien sûr, nous appellerons cela attaque aérienne SOD en dessous du score 1, et voilà OK. Maintenant, bien sûr, nous allons donner les données d'animation de l'attaque Air SOD 1, et il y a l'attaque Air SOD C'est celui que nous allons utiliser. Maintenant, revenons au plan d' animation Je vais retourner au sommet. Et nous allons simplement sélectionner l'animation du saut. Ça va être la bonne, non ? Restons proches de l'animation du saut. Désolée. Comment puis-je le déplacer ? Oui, déplaçons-le un peu. Oh, ça pourrait tout gâcher. Ne faisons pas ça. Quoi qu'il en soit, prenez-le. Créons donc une statistique d'animation, que nous allons appeler Air Sword, attaque à la case départ. OK, pour l'organisation et la clarté. Et puis à l'intérieur, nous allons taper play air SWOD attack. Boom, ça y est. Et connectez-le. Maintenant qu'il est connecté, compilons rapidement. Revenons en arrière, et nous allons le lier dès le départ, et nous allons également le relier au démarrage. OK, relions-le. Et ce que nous voulons, c'est venir ici, ce sera exactement la même chose. OK. Donc, en passant de Jump Start à AirsData, chaque fois que l'on lance une attaque SOD, nous pouvons entrer dans Ensuite, lorsque l' attaque SOD ne fonctionne pas, nous pouvons quitter cette transition OK ? Compilons donc rapidement car c'est juste en sautant, uniquement en sautant. Revenez donc au niveau développeur. Donc, si je suis au sol, il lance cette attaque SOD par saut Il joue au Air Solar Tuck. Regarde ça. N'est-ce pas cool ? Joue au Air Solar Tuck. C'est le Air Slash. Air Slash Maintenant, nous l'avons configuré de telle sorte qu' il y ait une barre oblique en l'air Et au sol, il y a une entaille. Ça a l'air plutôt bien. Maintenant que nous avons cette machine à souder de base prête à fonctionner dans le jeu Nous allons maintenant procéder à des ajustements beaucoup plus complexes soudure à air et au point de soudure au sol et voir comment créer un système combiné afin d'avoir plusieurs punaises à soda différentes et aussi comment relier les attaques, d' accord, comment les lier pour qu' soda différentes et aussi comment relier les attaques, d' accord, comment les lier pour elles aient juste l'air cool Nous allons donc passer dans les deux prochaines vidéos à la façon de créer un combo à trois succès. Qui se combine en lui-même, qui est un système fiable utilisant un système de combinaison à cadran. OK, nous y reviendrons dans la prochaine série de leçons. Allons-y 48. 46 Utilisation des notifications d'animation personnalisée pour la boîte à effet de frappe de l'épée: OK. Nous allons donc apporter un changement très important. Maintenant, dans notre implémentation, vous remarquerez qu'au moment où je clique, le mal est fait. La raison en est que la zone de frappe pour les dégâts est créée instantanément une fois que nous avons cliqué. Je suis sûr que vous pouvez me voir appuyer sur le bouton d'attaque et les dégâts sont infligés instantanément. Modifions-le pour que les dégâts ne infligés qu'à un certain moment de l'animation, et cela fait partie des quelques étapes que nous allons pour rendre le combat beaucoup plus propre et meilleur. heure actuelle, pour que l' attaque au corps à corps fonctionne, se passe qu' il y a une entrée améliorée, attaque masculine, c'est notre véritable attaque Et puis il effectue une attaque SOD. OK. Et puis il apparaît dans la zone de frappe unique de l'attaque SOD Et puis après un léger délai, il indique qu'environ 1 seconde, cela déclenche l'attaque SOD. C'est bon. Maintenant, ce que nous voulons, c'est changer ce qui se produit lors de cette attaque SOD. Au lieu qu'il apparaisse ici, nous allons rapidement résoudre ce problème Brisons ce lien et rompons ce lien. Permettez-moi d'élargir rapidement la zone de commentaires. Donc, tout cela, qui apparaît réellement lors de attaque, sera déplacé vers le bas et nous ne laisserons que le code, qui décidera, d' accord, si l'attaque SOD se produira ou ne durera pas une seconde. Nous allons laisser ça là. Maintenant, à part ça , voici ce apparaît réellement dans les dégâts infligés à la boîte. Maintenant, avant de compiler, ce que nous voulons, c'est que les dégâts soient causés au moment où cette barre oblique apparaît. Vous voyez cette belle touche, c'est à ce moment-là que les dégâts doivent réellement toucher l'ennemi Maintenant, pour ce faire, nous allons venir ici. Et ce que nous devons faire, c'est créer fonction ou un événement spécial, qui apparaisse réellement lors de cette attaque à l'épée Nous allons donc simplement cliquer avec le bouton gauche de la souris, puis nous voulons ajouter un événement. Ensuite, nous voulons ajouter un événement personnalisé, d'accord ? Tu vois ça ? Ajoutez un événement personnalisé, puis nous appellerons cet événement span. Appelons ça spun, SWOT, hit box. C'est comme ça que nous allons l'appeler. Nous appellerons la case de frappe SWOD créée par l'événement, et nous la ferons glisser pour qu'elle apparaisse dans cette boîte Maintenant, une chose que nous pouvons voir, c'est que maintenant que cette boîte à chaleur a été retirée, lorsque nous entrerons dans le niveau, nous attaquerons, mais aucun dommage n'est fait. Maintenant, ce que nous voulons faire, c'est fixer le point d'origine de la boîte à chaleur lorsque le gazon se trouve juste après avoir été balayé Maintenant, pour ce faire, nous allons simplement entrer dans votre personnage, qui est le joueur. Et nous voulons passer à l'animation et ouvrir la sauce Zi en papier et le plan en papier de Zedi Animation Maintenant, en ce qui concerne la sauce d'animation, passez à l'animation SOD Attack Une fois que vous aurez vu l'animation SOD Attack, nous passerons ici à cette piste de notification OK. Et maintenant, laisse-moi jouer l'animation. OK. C'est donc par ici que je veux apparaître dans ce SOD Je vais donc cliquer avec le bouton droit de la souris et ajouter Notify. Mais quel type de notification, je veux utiliser un nouveau type de notification et nous l' appellerons SOT Hit box. Arrête. Tout de suite, permettez-moi de faire un petit zoom arrière. Immédiatement, le personnage principal se balance. C'est à ce moment que la boîte SWoD at apparaît. Maintenant que cette notification appelée Sword hit box a été créée ici, revenons au plan d'animation Maintenant, vous remarquerez que dans le Blueprint d'animation, il y a maintenant une nouvelle fonction appelée SwodHitBX Double-cliquez sur la case Sword Hit. OK. En fait, voyons voir, ça s' appelle Sword hit box. Après avoir double-cliqué dessus, nous sommes ici à l'intérieur de cette notification. Et ce que nous voulons faire, c'est faire glisser le héros, faire glisser cette variable vers l'intérieur. Ensuite, ce que nous voulons, c'est signaler cet événement. Nous voulons donc annoncer l'événement. Voyons voir. L'événement s'appelle spawn SOD Hit box. C'est ça. Cette fonction ici s' appelle spawn SOD Hit box, et c'est tout Et Valla vient simplement, en s' assurant qu'il y a une fonction spéciale dans le plan de notre personnage principal allant à la source de l'animation, créant une nouvelle notification, accédant à notre plan d' animation, trouvant cette notification, en appelant le héros et en lui demandant d'activer la fonction Sword hit box, vérifions-le et assurons-nous qu'elle fonctionne correctement Pourquoi ? Oui, remarquez, cela fait des dégâts sur le toboggan. Cela fonctionne donc correctement, et il fait apparaître la boîte à chaleur de l'épée correctement et au bon moment, c'est une bonne chose Maintenant, nous avons séparé l'apparition de notre boîte à chaleur endommagée, nous l'avons placée et connectée à l'animation La prochaine chose que nous allons faire est de revenir à la sauce. Sauvegardons cela rapidement. C'est une sauvegarde. Sélectionnons rapidement l'air soda tack et l'air soda tack Faisons également la même chose à cette heure-ci. Nous allons ajouter la notification et où se trouve cette notification ? C'est ce qu'on appelle SOD Hit box. Nous ajouterons la notification ici. Il est donc maintenant présent lors l'attaque aérienne et de l'attaque au sol. Les deux sont capables de le faire, ils infligent des dégâts en sautant. Je peux faire un truc normal et il attaquera, il tranchera bien et il fera des dégâts Maintenant, nous avons une attaque aérienne qui inflige des dégâts, et nous avons l' attaque ici OK ? Attaque aérodynamique, et nous avons aussi l'attaque L'attaque aérodynamique fonctionne. L'attaque au sol fonctionne et fonctionne de manière fiable. OK. C'est vraiment cool et c'est une bonne chose. Nous l'avons enregistré. Ensuite, nous allons parler un tampon d'entrée et expliquer comment configurer des combos Nous voulons donc faire en sorte que le joueur de voitures dispose d'une combinaison sympa à trois coups. la première barre oblique, une nouvelle barre oblique secondaire et une troisième barre oblique pour vous montrer comment configurer un bon Nous y reviendrons dans le prochain 49. 047 Autres animations d'attaque: Maintenant, avant de passer à la séquence de combinaisons, la première chose que nous allons faire est passer à l'animation. Maintenant, nous allons plutôt revenir au joueur. Revenons-en à l'art. Et ce que nous voulons faire, c'est configurer quelques animations combinées supplémentaires, d'accord ? Parce que maintenant nous avons commencé par la première attaque de gazon. Nous voulons maintenant avoir quelques autres animations d' attaque vendues. Vous remarquerez qu'il s'agit de la deuxième animation d' attaque d'aventurier Je vais donc faire exactement la même chose pour la deuxième attaque. Il comporte cinq cadres. Je vais utiliser les actions des sprites, créer des sprites. OK. Alors maintenant, l'attaque à deux de l' épée, au lieu de l' attaque deux de l'aventurier, contient désormais Mais je dois trouver ces sprites. Ici, nous sommes une attaque d'aventurier à deux reprises à partir de zéro, un, deux, trois, quatre, cinq Ensuite, je vais créer des flipbooks avec ceux-ci, puis je vais les appeler Sword Td attaque sous le score de deux points. OK. Vous remarquerez maintenant que l'attaque SOD, cette barre oblique, ou la deuxième, est C'est la verticale, c'est le bas. Maintenant, pour des raisons d'uniformité, nous allons revenir et uniformiser cela dans un instant. Ensuite, je vais chercher des aventuriers pour en attaquer trois. Cherchons donc ces animations. OK, il y a donc l'attaque 3. Je vais lancer des actions Sprite, créer des sprites. Je veux les avoir tous sous forme de sprites. Maintenant, à trois points, je vais sélectionner un flipbook parmi 025 et créer un flipbook, que nous appellerons attaque SWOD avec un score attaque SWOD Alors laissez-moi zoomer. Vous verrez donc que nous avons l'attaque à l'épée une, l' attaque à l' épée deux et l'attaque SWOD trois Ah, c'est vrai. Maintenant, nous allons ralentir les animations. C'est la première attaque SOD. C'est réduit à une, trois, quatre, cinq images. Donc, ce que nous allons faire et garder à l'esprit, nous suivons ce cours uniquement à des fins d'apprentissage. l'instant, je vais faire passer les animations de 15 images à cinq images. Et puis Sword Attack Three. Je vais également le faire baisser de 15 à 5 images par seconde. Ralentissez pour plus de clarté visuelle. Bien entendu, lors du développement final de votre jeu, vous pouvez ajuster ces horaires Je veux juste que cela soit là et qu'il soit facilement visible pour vous. Ensuite, nous allons passer à la source de l'animation. Nous avons donc déjà SOD Attack one ici. Laissez-moi m'assurer que les noms sont visibles, comme vous pouvez le voir, la première attaque SOD est prête Nous allons en ajouter une autre, et bien sûr, ce sera une attaque SOD sous la case deux, et nous en ajouterons une autre, et ce sera une attaque SOD sous la case trois Nous avons donc nos trois attaques SOD ici. Permettez-moi de double-cliquer sur deux, et je vais rechercher l'attaque SOD numéro 2 Vous devriez pouvoir le voir là, et le voici. Jouons. OK. C'est donc la deuxième attaque SOD, puis la troisième attaque SOD En ce qui concerne les données d'animation, je vais rechercher SOD Attack Three OK. nos trois animations d'attaque à l'épée. C'est cool. Maintenant, c'est suffisant pour que ces animations incluent également de nouvelles attaques aériennes SOD Je vais donc revenir à la barre d'espace de contrôle, une fois de plus, sur la scène principale Je veux trouver la prochaine attaque Air SWOD. Il y a donc une deuxième attaque aérienne SOD. Tu devrais pouvoir le trouver. Il y a quatre images d'animation, d'accord ? Donc, en fait, laissez-moi taper de l'air pour simplifier la recherche des attaques aériennes. C'est donc le premier. OK, attaque aérienne une. OK. Et puis il y a la deuxième attaque aérienne. C'est celui-là. Vous pouvez donc utiliser la deuxième attaque aérienne comme attaque suivante, mais plutôt comme la prochaine série de sprites, permettez-moi de faire un petit zoom arrière pour simplifier les choses Ou Air Attack Two, nous allons le transformer en un tas de sprites ou créer des sprites Les deux sprites Air Attack sont donc prêts. Je vais cliquer dessus et créer un flipbook, et je vais simplement l'appeler attaque aérienne avec un score inférieur à deux. OK. Donc, attaque aérienne, laissez-moi plutôt la renommer Permettez-moi de le renommer en Air SOD attack underscore two. OK ? Laisse-moi entrer. À l'heure actuelle, il est réglé sur 15 images. C'en est trop. Il en est 12. Il s'agit de trois images d'animation. Nous allons donc le laisser sous forme de trois images d'animation, c'est assez simple. Ensuite, nous trouverons les prochaines données ARSO, qui sont les troisièmes Vous pouvez y aller et le rechercher. Voyons voir. Un, deux, trois, boum. Celui-ci ne comporte que deux images d'animation. Ça a l'air, nous devrons donc entrer et en ajouter quelques uns différents. Voyons voir Air Soda suivre la troisième voie. OK, donc selon la façon dont ils ont été organisés, cela semble un peu différent. Mais fondamentalement, vous pouvez simplement partir de zéro. Voyons voir. C'est un peu complexe selon la façon dont vos sprites sont organisés Mais permettez-moi de les sélectionner toutes. Ensuite, voyons les actions du Sprite : nous allons créer un sprite Ensuite, avec ceux sélectionnés, je vais tous les sélectionner, puis je vais créer un flipbook OK, comment s'appellent les flipbooks ? Parfois, les flipbooks apparaissent différemment. Laisse-moi contrôler Z. Oh, mec, j'ai changé les images par seconde Tiens bon. Permettez-moi donc de revenir à quatre. Laisse ça. Alors voyons voir, j'ai créé plusieurs flipbooks, ce qui n'est pas ce que nous voulons Permettez-moi de supprimer ces trois flipbooks sur les attaques aériennes. Oui, supprimons-les rapidement. Laissez-moi revenir ici. Et ce que je veux, me laisser taper de l'air. Je veux rechercher les attaques ARSOD, les associer toutes, puis créer des Il devrait créer un seul flipbook. Cela ne devrait pas créer plusieurs flipbooks. OK. Pour une raison quelconque, il crée plusieurs flipbooks, ce qui n'est pas vraiment ce que je veux C'est un sprite. C'est un sprite. OK, il va falloir le faire à l'ancienne. Nous avons donc cette attaque aérienne d'aventuriers ici, non ? Disons que c'est renommé attaque aérienne sous le score trois. Ce devrait donc être une attaque Air SOD. Permettez-moi de changer le nom de Air SOD Attack Three. Maintenant, je l'ai sélectionné. Et ce que je veux faire, c'est me laisser d'abord le mettre en pause après la pause de lecture. OK, maintenant que je l'ai arrêté de jouer, je vais dans l'aire de jeu, puis en fait, je vais juste ajouter une image clé. Permettez-moi de le configurer de telle sorte qu'il s'agisse de quatre images d'animation. La plupart des attaques aériennes prennent la forme de quatre images d'animation. Ensuite, je vais sélectionner la deuxième image clé. Viens par ici. Et puis cliquez avec le bouton gauche, d'accord ? C'est celui-là. Cliquez avec le bouton gauche sur le suivant, puis je veux choisir un nouveau sprite J'espère que c'est clairement visible. Et puis laissez-moi chercher une attaque aérienne à trois extrémités, d'accord ? Alors laisse-moi voir à quoi ça ressemble. OK. Les deux se ressemblent donc beaucoup. Donc ce que je vais faire, non, ce que je vais vraiment faire, c'est me laisser annuler ça. Ce que je vais configurer, c'est qu'au lieu d'avoir trois attaques aériennes douteuses, laissez-moi la supprimer. Nous allons le configurer de telle sorte que l'Air soda Tack 1 et l'Air Soda Tack 2 s'enroulent l'un dans l'autre Airsdatak 1 est donc configuré pour voir, un, deux, trois, quatre, OK Soda Tack Two ressemble à ça. Laisse-moi ajuster ça. Donc, ce que je vais faire, c'est acheter Air Soda Tak One, et je vais le dupliquer, et il s'est déjà renommé AirsDatak Three. C'est un appel. Ensuite, je vais récupérer AirSDA Tak 2 et le supprimer. Ensuite, je vais prendre AirSDA tak un, puis je vais le dupliquer et remarquer qu'il s' appelle AirsDatak Mais ce que je vais faire, c'est le faire , je vais plutôt le mettre en pause, et ce que je vais faire, c'est inverser l'ordre des images. Je vais donc prendre la troisième image, puis je vais la faire glisser jusqu'au début. Permettez-moi de revenir, de m'assurer que tout se passe correctement. Je veux faire glisser la dernière image jusqu'à la fin. Jouons, assurons-nous que je l'organise correctement. Arrête. Donc, le cadre quatre plutôt que le cadre deux sera le premier cadre. Nous devons donc le déplacer. Il est étonnamment difficile de le déplacer. Il va falloir que je choisisse le sprite. Voyons donc ici. L'attaque 2 voudra que ce soit deux. Je veux donc que ça commence à partir d'ici. Et puis la seconde est correcte. Parfait. Et puis le troisième, un nouveau sprite, nous voulons que ce soit quand son bras sera prêt à taper de l'air Je suis en train de regarder. Je regarde chaque sprite. Ils sont vraiment minuscules sur votre écran, mais vous devriez pouvoir. Très bien, je vais donc apporter un montage d' article parce que certaines parties de cette vidéo n'étaient pas très claires. Nous travaillons maintenant à créer un combo de trois coups au sol et dans les airs, un combo de trois coups. J'appuie simplement trois fois sur le bouton d'attaque là-bas. Dans la dernière vidéo, il vous suffisait de configurer l'animation d' attaque SOD, d'ajouter la hitbox et l' animation Air SODA Tack et d' ajouter la ajouter ne vous reste plus qu'à ajouter à l' intérieur de la sauce d'animation Paper Zd, la deuxième touche SODA en l'air et ajouter également le notificateur SOD hitbox La troisième animation d' attaque aérienne SOD et ajoutez-y également la boîte de frappe SOD Et puis sur le terrain, vous avez actuellement la première attaque SOD configurée et l'événement d' apparition de huit boîtes SOD, en gros Ensuite, vous devez ajouter la deuxième attaque et la troisième. Et une fois que vous les avez ajoutés la source d'animation Paper Zd, vous pouvez passer à la configuration de la mémoire tampon d'entrée et du système de combinaison 50. 47 Ajouter davantage d'animations d'attaque pour le système de combo: Maintenant, avant de passer à la séquence de combinaisons, la première chose que nous allons faire est passer à l'animation. Maintenant, nous allons plutôt revenir au joueur. Revenons-en à l'art. Et ce que nous voulons faire, c'est configurer quelques animations combinées supplémentaires, d'accord ? Parce que maintenant nous avons commencé par la première attaque de gazon. Nous voulons maintenant avoir quelques animations d' attaque SD supplémentaires. Vous remarquerez qu'il s'agit de la deuxième animation d' attaque d'aventurier Je vais donc faire exactement la même chose avec Attack Two. Il comporte cinq cadres. Je vais utiliser les actions des sprites, créer des sprites. OK. Alors maintenant, l'attaque à deux de l' épée, au lieu de l' attaque deux de l'aventurier, contient désormais Mais je dois trouver ces sprites. Ici, nous sommes une attaque d'aventurier à deux reprises à partir de zéro, un, deux, trois, quatre, cinq Ensuite, je vais créer un flip book avec ceux-ci, et ensuite je vais les appeler Sword Attack. Attaque stockée inférieure à deux points. OK. Vous remarquerez maintenant que l'attaque à l'épée, cette barre oblique, l'attaque deux du Sporad, est la barre oblique inférieure C'est la verticale, il y a le bas. Maintenant, pour des raisons d'uniformité, nous allons revenir et uniformiser cela dans un instant. Ensuite, je vais chercher des aventuriers pour en attaquer trois. Cherchons donc ces animations. OK, il y a donc l'attaque 3. Je vais faire des actions avec des sprites, créer des sprites. Je veux les avoir tous sous forme de sprites. Maintenant, à trois points, je vais sélectionner 0-5 et créer un flipbook que nous appellerons attaque SWOD sous je vais sélectionner 0-5 et créer le attaque SWOD Alors laissez-moi zoomer. Vous verrez donc que nous avons une attaque SOD une, une attaque SOD deux et une attaque SOD trois Oh, c'est vrai. Maintenant, nous allons ralentir les animations. C'est la première attaque SOD. C'est réduit à une, deux, trois, quatre, cinq images. Donc, ce que nous allons faire et garder à l'esprit, nous suivons ce cours uniquement à des fins d'apprentissage. l'instant, je vais faire passer les animations de 15 images à cinq images. Et puis Sword Attack Three. Je vais également le faire baisser de 15 à 5 images par seconde. Il suffit de le ralentir pour plus de clarté visuelle. Bien entendu, lorsque vous terminerez le développement de votre jeu, vous pouvez ajuster ces horaires Je veux juste que cela soit clair et facilement visible pour vous. Ensuite, nous allons passer à la source de l'animation. Nous avons donc déjà Sword Attack One ici. Laissez-moi m'assurer que les noms sont visibles, comme vous pouvez le voir, Sword Attack One est prêt. Nous allons en ajouter une autre, et bien sûr, ce sera SOD Tack sous la case deux, et nous en ajouterons une autre, et ce sera SOD Attack sous Nous avons donc nos trois attaques SOD ici. Permettez-moi de double-cliquer sur deux, et je vais rechercher l'attaque SOD numéro 2 Vous devriez pouvoir le voir là, et le voici. Allons à l'assiette. OK. C'est donc la deuxième attaque SOD, puis la troisième attaque SOD En ce qui concerne les données d'animation, je vais rechercher SOD Attack Three D'accord, voici nos trois animations d'attaque à l'épée. C'est cool. Maintenant, c'est suffisant pour que ces animations incluent également de nouvelles attaques aériennes SOD Je reviens donc à la scène principale, la barre d' espace de contrôle Je veux trouver la prochaine attaque Air SWOD. Il y a donc une deuxième attaque aérienne SOD. Tu devrais pouvoir le trouver. Il y a quatre images d'animation, d'accord ? Donc, en fait, permettez-moi de taper de l'air afin de simplifier la recherche des attaques aériennes. C'est donc le premier. OK, attaque aérienne une. OK. Et puis il y a la deuxième attaque aérienne. C'est celui-là. Vous pouvez donc utiliser l'attaque aérienne 2 comme attaque suivante, plutôt que comme prochaine série de sprites Permettez-moi de faire un petit zoom arrière pour simplifier les choses. Donc Air Attack Two, nous allons le transformer en un tas de sprites ou créer des sprites Les deux sprites Air Attack sont donc prêts. Je vais cliquer dessus pour créer un flipbook. Je vais simplement l'appeler attaque aérienne avec un score inférieur à deux. OK ? Donc, attaque aérienne, laissez-moi plutôt la renommer Permettez-moi de le renommer en Air SOD attack underscore two. OK ? Laisse-moi entrer. À l'heure actuelle, il est réglé sur 15 images. C'en est trop. Il en est 12. Il s'agit de trois images d'animation. Nous allons donc le laisser sous forme de trois images d'animation. C'est assez simple. Ensuite, nous trouverons les prochaines données Air SO, qui sont les troisièmes. Vous pouvez y aller et le rechercher. Voyons voir. Un, deux, trois, boum. Celui-ci ne comporte que deux images d'animation. Ça a l'air, nous devrons donc entrer et en ajouter quelques uns différents. Voyons Air Soda Tack Three. OK, donc selon la façon dont ils ont été organisés, cela semble un peu différent. Mais fondamentalement, vous pouvez simplement partir de zéro. Voyons voir. C'est un peu complexe selon la façon dont vos sprites sont organisés Mais permettez-moi de les sélectionner toutes. Ensuite, voyons les actions du Sprite : nous allons créer un sprite Ensuite, avec ceux sélectionnés, je vais tous les sélectionner, puis je vais créer un flipbook OK, comment s'appelle le flip book ? Parfois, le flipbook apparaît différemment. Laisse-moi contrôler Z. Oh, mec, j'ai changé les images par seconde Tiens bon. Alors laisse-moi ramener ça à quatre, laisse-moi ça. Alors voyons voir, j'ai créé plusieurs flipbooks, ce qui n' est pas ce que nous voulons Permettez-moi de supprimer ces trois flipbooks sur les attaques aériennes. Oui, supprimons-les rapidement. Laissez-moi revenir ici. Et ce que je veux, me laisser taper de l'air. Je veux rechercher les attaques ARSOD, les associer toutes, puis créer un Cela devrait créer un seul flipbook. Cela ne devrait pas créer plusieurs flipbooks. OK. Pour une raison ou une autre, cela crée plusieurs flipbooks, ce qui n'est pas vraiment ce que je veux. C'est un sprite, c'est un sprite. OK, il va falloir le faire à l'ancienne. Nous avons donc cette attaque aérienne d'aventuriers ici, non ? Appelons ça, renommons-le attaque aérienne sous le score trois. Ce devrait donc être une attaque ARSOD. Permettez-moi de changer le nom de Air SOD Attack Three. Maintenant, je l'ai sélectionné. Et ce que je veux faire, c'est d' abord me laisser le mettre en pause après la pause de Maintenant que je l' ai arrêté de jouer, je vais dans l'aire de jeu, puis, en fait, je vais simplement ajouter une image clé. Permettez-moi de le configurer de telle sorte qu'il s'agisse de quatre images d'animation. La plupart des attaques aériennes prennent la forme de quatre images d'animation. Ensuite, je vais sélectionner la deuxième image clé. Viens par ici. Et puis cliquez avec le bouton gauche de la souris, d'accord ? C'est celui-là. Cliquez avec le bouton gauche sur le suivant, puis je veux choisir un nouveau sprite J'espère que c'est clairement visible. Et puis laissez-moi chercher une attaque aérienne à trois extrémités, d'accord ? Alors laisse-moi voir à quoi ça ressemble. OK. Les deux se ressemblent donc beaucoup. Donc ce que je vais faire, non, ce que je vais vraiment faire, c'est me laisser annuler ça. Ce que je vais configurer, c'est qu'au lieu d'avoir trois attaques aériennes douteuses, laissez-moi la supprimer. Nous allons le configurer de telle sorte que l'attaque Air Soda 1 et AirsDatak deux se rejoignent Donc AirsDatak un est réglé sur, voyons voir, un, deux, trois, quatre, Soda Tack Two ressemble à ça. Laisse-moi ajuster ça. Donc, ce que je vais faire, c'est acheter Air Soda Tak One, et je vais le dupliquer, et il s'est déjà renommé AirSDA Tak C'est Coll. Ensuite, je vais récupérer AirSDA Tak 2 et le supprimer Ensuite, je vais prendre AirData Tak 1, puis je vais le dupliquer et remarquer qu'il s'appelle AirDatak Mais ce que je vais faire, c'est le faire , je vais plutôt le mettre en pause, et ce que je vais faire, c'est inverser l'ordre des images. Je vais donc prendre la troisième image, puis je vais la faire glisser jusqu'au début. Permettez-moi de revenir, de m'assurer que tout se passe correctement. Je veux faire glisser la dernière image jusqu'à la fin. Jouons, assurons-nous que je l'organise correctement. Arrête. Donc, le cadre quatre plutôt que le cadre deux sera le premier cadre. Nous devons donc le déplacer. Il est étonnamment difficile de le déplacer. Il va falloir que je choisisse les sprites. Voyons voir ici, l'attaque deux voudra que ce soit deux. Je veux donc que ça commence à partir d'ici. Et puis la seconde est correcte. Parfait. Et puis le troisième, Fake News Sprite, nous voulons que ce soit quand il aura le bras levé Tapez donc air. Je suis en train de regarder. Je regarde chaque sprite. Ils sont vraiment minuscules sur votre écran, mais vous devriez pouvoir les voir un peu plus visiblement Je veux donc que cela commence de ce côté et s'arrête là. OK, c'est bon. C'est donc l' attaque aérienne numéro deux. Ça a l'air un peu nul. Attends. Ce dernier point. Cette dernière animation, je pense que je vais la supprimer. Permettez-moi de le supprimer. C'est donc maintenant une animation en une, deux ou trois images. OK, c'est donc une animation en trois images. OK, ça y va. OK ? C'est logique. Alors maintenant, la première attaque AirSod ressemble à ceci. Il réduit les démarrages, redescend, puis deux démarrages plutôt que On dirait qu'il se dirige dans la direction opposée. Bien sûr, lorsque vous créez vos propres sprites personnalisés, vous pouvez ajuster cela, mais cela sera suffisamment raisonnable pour notre système de combinaison initial Nous avons donc maintenant plusieurs attaques SOD. Ajoutons ces attaques aériennes SOD. Nouvelle séquence d'animation, Air SOD, Attack, underscore 2, et une autre Air SOD, Attack, Attack, Donc deux. Vendons. Non, non, non, non, non. Deux. Ma souris est énorme, mec. OK, donc deux sera une attaque Air SWOD deux, et trois sera une attaque Air SWOD Nous y voilà. Et puis, bien sûr, nous devons ajouter les notifications. la même manière que nous avons ajouté les notifications relatives aux attaques SWOD, nous devrons les ajouter ici. Donc Air SWD Attack Two Oh, ce n'est pas là. Y avait-il une deuxième plaque à souder ? OK, oui, ça marche, sauvegardons ça. Donc, sur le deuxième cadre, ajoutez Notify a Sauce Notify, boîte à chaleur SoEd OK, voyons voir. Soda Tack One. Pot à souder 3. Ajouter une notification, une notification de sauce, boîte à chaleur Sod, on fait venir ici Bien. Maintenant, le point de soudure 1 a la notification, le point soudure 2. Tiens bon. Laisse-moi voir d'où ça vient ? C'est ici. Je vais donc ajouter go ici. OK. Ajoutez Notify SOD. Appuyez sur la case, puis SODA en touche trois. Voyons voir, à quel moment devons-nous ajouter trois points à Soda ? Cela vous dérangerait de jouer, s'il vous plaît, s'il plaît. Tu sais jouer ? Pourquoi ne joue-t-il tout simplement pas ? Oh, d'accord. Laisse-moi appuyer sur le bouton Play. OK. Maintenant, je vais me balader ici. C'est à ce moment que vous souhaitez ajouter cette notification, alors appuyez sur la case, puis enregistrez après l'avoir enregistrée. Ils sont maintenant tous prêts à être utilisés dans un système combiné approprié. Maintenant que nous avons configuré toutes les animations et les notifications, passons à autre chose. 51. 48 Démarrer avec la mise en mémoire tampon d'entrée: C'est bon. Avant d'aller de l'avant, je voudrais donc vous présenter un concept très simple. Nous allons créer un tampon d'entrée qui stocke les entrées, puis il sera finalement réinitialisé après un certain temps Il s'agit d'une compréhension très générale. Passons maintenant au code. Je veux que cela ait un sens total pour toi. Allons-y. Donc, la toute première partie de la mémoire tampon d'entrée nécessite que nous revenions à la mélata, d'accord ? Vous voyez, la façon dont cela fonctionne actuellement, c' est qu'il écoute l' entrée améliorée, n' est-ce pas, de l'attaque au corps à Ensuite, il ne le fera qu'une seule fois et définira l'attaque SOD à un, puis il y aura un délai C'est ainsi qu'il procède en ce moment. Mais nous allons changer cela. Donc, au lieu d'appuyer sur ce bouton pour effectuer une seule opération puis de le réinitialiser, nous allons le faire glisser vers l'extérieur OK. Maintenant, pour l'instant, c'est prêt à en faire une attaque par gazon, mais nous allons séparer tout ça Je vais rompre ce lien. Et ce que nous voulons c'est maintenant que nous l'avons ici, nous voulons ajouter quelque chose qui va enregistrer nombre de fois que les joueurs ont appuyé sur le bouton. OK ? Maintenant, pour des raisons de simplicité, nous allons utiliser un entier de base. Maintenant, n'oubliez pas que nous avons accès à trois animations d' attaque différentes, ce qui signifie que nous voulons effectuer une vérification de base. Alors pourquoi cela ne fonctionne-t-il pas clairement ? Tiens bon. Parfois, Unreal Engine fait des choses étranges. Mais arrête ça. Maintenant, il devrait afficher le OK, maintenant il est capable d'afficher correctement les animations. Nous avons donc accès à trois animations d'attaque différentes, d'accord ? Nous avons l'animation 2, qui est découpée en tranches. Nous en avons deux qui sont tranchés vers le bas, et le troisième est une barre oblique médiane OK ? C'est notre combinaison à trois têtes. Donc, pour créer une mémoire tampon, nous voulons nous assurer que nous sommes en mesure sauvegarder si le joueur a appuyé sur le bouton une, deux ou trois fois. Ensuite, jouez à une, deux ou trois de ces animations d' attaque. C'est l'invité de base. Maintenant que nous avons séparé cela, passons à autre chose et réfléchissons à la manière de créer un excellent tampon d'entrée. Essentiellement, ce que nous voulons, c'est un nœud qui capture le nombre d'attaques à l'épée que le joueur a lancées. S'ils ont appuyé une fois, il exécutera une seule action. S'ils ont appuyé deux fois, il exécutera une action différente. S'ils ont appuyé trois fois, cela en exécute une autre, et pour des raisons de simplicité, nous en resterons là. OK. C'est dans cet esprit que nous allons de l'avant. Nous avons donc tout cet espace ici, et commençons par créer une variable. Cette variable sera un entier et nous l'appellerons numéro d' attaque SWOT OK. Et par souci de simplicité, nous allons en faire un entier, d'accord ? Ce qui signifie que c'est zéro contre un. Ce sont de grands nombres, des nombres holistiques sans 0,1 ou deux, c'est un entier. Maintenant, en tant que nombre entier, faisons-le glisser. Faisons-le traîner. Nous voulons donc, euh, commencer par définir le numéro de l'attaque SOD. OK ? Ouvrons donc ceci ici. Supposons que le joueur n' ait appuyé qu'une seule fois sur le bouton Meletack. Que voulons-nous faire ? Nous voulons réellement définir le numéro de Soda Attack. Je vais avoir besoin de créer de l'espace. Je vais donc les traîner et les pousser à s'endetter. Le joueur a donc appuyé une fois sur le bouton. Ce que nous voulons faire, c'est obtenir le numéro SodTac et augmenter sa valeur Vous pouvez donc reculer le numéro SDtack OK. Ensuite, nous voulons en ajouter un. Tu veux l'incrémenter, d'accord ? Configurez-le simplement sur un. Et puis boum, nous l'avons configuré. Donc ça donne le numéro SOD et ça y ajoute un, d'accord ? Parce que, fondamentalement, nous voulons augmenter le nombre de sodas. Supposons que le joueur ait appuyé une fois sur ce bouton. Je vais maintenant dire : OK, la valeur de Soda Tack est désormais de un Maintenant, pour vous montrer que cela fonctionne, nous allons devoir rédiger un texte destiné aux développeurs. Disons donc d'une chaîne d'impression. Et la chaîne d'impression ne sera qu'une. OK ? Il va juste être réglé sur un. Mais que se passe-t-il si le joueur appuie à nouveau sur ce bouton ? OK ? En d'autres termes, que se passe-t-il lorsque le joueur appuie une deuxième fois sur ce bouton  ? Qu'est-ce que tu veux qu'il se passe ? C'est assez simple. Nous voulons en fait ajouter un autre incrément à cette variable appelée numéro d'attaque au sabre Mais maintenant, nous devons faire une simple vérification, d'accord ? Nous allons faire une simple vérification. Et ce que sera fondamentalement cette vérification , ce sera un changement. Activons donc le nombre entier. OK, allume-le. C'est ce que vous voulez rechercher. Et puis si vous descendez, il se mettra en évidence comme un interrupteur. Maintenant, à quoi sert un interrupteur ? Cela change le chemin du flux de code en fonction de la valeur que vous entrez, d'accord ? Mettons donc le numéro d'attaque SD ici et il est maintenant prêt à s'activer. Et nous aurons deux valeurs différentes. Bon sang, c' est de plus en plus long. Élargissons la zone de commentaires et poussons les choses un peu plus loin. Maintenant, revenons ici. La première chaîne qu'il est censé imprimer est donc une. Prenons-en trois. La première chaîne sera donc une. La deuxième chaîne sera composée de deux. Et la troisième chaîne sera Oh, attends, attends, attends, clique dessus correctement. La troisième chaîne sera trois. Donc, fondamentalement, nous le voulons. Commençons rapidement à ajouter des épingles. Donc, en gros, s'il est égal à zéro, cela ne fait rien. S'il en est un, il en imprime un. S'il est deux, il en imprime deux, et s'il est trois, il en imprime trois. Maintenant, c'est un changement très simple. Passons maintenant rapidement au niveau du développeur. Donc, quand j'appuie sur un dans le coin supérieur gauche, je devrais en voir un. OK. J'appuie à nouveau, deux s'affichent. J'espère qu'il vous en montre deux. OK. Et lorsque vous appuyez à nouveau, trois s'affichent. Mais lorsque vous appuyez à nouveau après cela, rien ne s'affiche. C'est fantastique. Maintenant, nous allons revenir à l'épée plutôt qu'au héros. Nous savons pertinemment que nous sommes maintenant en mesure de le mettre en place. Ainsi, lorsque le joueur appuie une fois sur le bouton, il en a un. Lorsque le joueur appuie sur le bouton deux, il passe à deux, et lorsqu'il appuie sur le bouton trois, il passe à trois. C'est une bonne chose. Cela signifie que nous avons un moyen de déterminer si le joueur a appuyé sur le bouton une fois, s'il a appuyé deux fois sur le bouton, et s'il a appuyé trois fois sur le bouton, c'est plutôt cool. Maintenant que nous en avons fini avec cela, faisons-le glisser et apportons-le ici. Nous allons ajouter un peu plus à cela. Il s'agit de la ligne de base de la mémoire tampon d'entrée. Dans la vidéo suivante, nous allons ajouter du code supplémentaire pour le faire fonctionner correctement. 52. 49 Configuration de la combinaison de base avec le verrouillage des entrées dures: OK. Maintenant que nous avons cette configuration et que nous sommes prêts à l'emploi, passons à l' ajout des animations. Donc, pour commencer, nous avons déjà un Sword Attack prêt à fonctionner. Nous allons donc le configurer d'une manière très similaire à Sword Attack One, et nous allons le modifier pour que l' activation de int se produise en premier. Laissez-moi vous montrer à quoi cela ressemble. Nous avons donc déjà toutes ces chaînes qui vous indiquent un, deux et trois, n'est-ce pas ? Nous allons maintenant créer de nouvelles variables. Le premier s' appellera Sword Attack under score two. Ce sera pour notre deuxième attaque SOD. Et la prochaine sera une attaque SOD à moins de trois points Ils vont juste être utiles et laissez-moi les mettre sous le numéro d'attaque. Je vais donc faire glisser le numéro d'attaque vers le haut. Boom, réorganisons ça gentiment. Hé, santé du joueur, remontez. OK. C'est ça. Nous avons donc notre numéro d'attaque, puis des booléens pour indiquer si la première attaque, la deuxième ou la troisième sont celles qui sont actuellement actives Donc, après une compilation rapide, venez ici et nous allons essentiellement faire une configuration très similaire. Nous allons donc d'abord ne pas avoir envie de définir. Configurez donc Swedatak 22 ici. Copiez-le ici. Ici, c'est désactivé, et nous ajouterons le même délai d'une seconde. OK. Conservons le délai d'une seconde. Maintenant que nous l'avons ici, ajoutons dans Swedatag trois . Maintenant, ne comprends pas. Je n'arrête pas de savoir quand je devrais régler, pas savoir. Configurons-le pour configurer. Nous ajouterons le même délai, exactement le même délai d'une seconde. Ici, ce sera oui, pendant que vous êtes ici, copiez-collez ceci ici. Ici, il dira non, vous n'êtes plus exécuter Sedatak 3 Nous allons donc rapidement enregistrer cela. Ensuite, nous allons rompre ce lien qui permet de configurer le numéro d'attaque SWD Permettez-moi de rompre ce lien. Cassez tout cela, nous allons le faire glisser vers l'extérieur et changer sa position. Pause, pause. Bien, bien, bien. Apportez-le ici. Et ce que nous allons faire, c'est qu' au tout début, nous allons faire glisser le numéro de suivi SODA comme première chose à vérifier, et à la valeur par défaut, garder à l'esprit que cela et à la valeur par défaut, vient de le déclencher À la valeur par défaut, ce sera zéro. Donc, comme il commence à zéro, il se connectera ensuite et le numéro y sera ajouté. OK. Maintenant que nous avons cette fonction de base, ajoutons allons-y. Donc, juste après avoir appuyé dessus pour la première fois, il va dire : « Hé, il va appuyer sur cette première attaque, et il va lancer une attaque SOD et continuer sur cette Et puis, après la deuxième fois, pour commencer, passons d'abord en revue ce texte Ce texte qui, en gros, nous allons passer en revue les notes que nous utilisons actuellement pour incrémenter le nombre, faire glisser dessus, cliquer avec le bouton droit de la souris, puis descendre et dire «   Hé, réduire à une macro Alors maintenant, cette nouvelle macro agit comme un seul nœud, d'accord ? C'est une fonction très simple qui va nous aider à nettoyer nos plans Ensuite, je vais changer son nom. Laisse-moi faire un zoom arrière. C'est une simple macro. Permettez-moi de le copier-coller ici et de le copier-coller à nouveau. N'oubliez pas qu' il ne fait qu'ajouter un au numéro. Donc sur deux, ça va craquer, je fais glisser le tout. Donc, une fois que vous appuyez pour la deuxième fois le bouton d'attaque, il en affichera deux, puis il essaiera de montrer que, hé, le joueur essaie de faire une attaque deux vendue. Et à trois, plutôt une troisième fois, le nombre passera à deux. Ensuite, il passera, et il indiquera au moteur irréel que le joueur essaie de lancer la troisième attaque vendue Une fois que c'est fait, laissez-moi copier. Oh, j'ai coupé en un clin d'œil. Non. Une fois que c'est fait, laissez-moi copier. Viens ici, et en fait, je n'ai pas besoin de copie. Faisons plutôt glisser le numéro Soda Tack, et nous allons le remettre à zéro pour qu'il recommence depuis le haut N'oubliez donc pas que si le numéro Soda Tack commence à zéro, s'il est égal à zéro, la valeur augmentera de un à un lorsque vous appuierez sur le bouton pour la première fois valeur augmentera de un à un lorsque vous appuierez sur le bouton pour Et puis une nouvelle corde, elle imprimera la corde, puis elle effectuera la première attaque à l'épée. Passons maintenant au plan pour y jeter un coup d'œil rapide Voici donc le plan d'animation. Compilez rapidement et appuyez sur Play. Notez donc qu'en ce moment, il est réglé sur un, 02. Maintenant, ce n' est pas le cas, cela ne vous accepte pas d'appuyer dessus. Appuyez sur trois, il est maintenant capable de lancer à nouveau la première attaque. Maintenant, c'est ce que nous allons faire. Le joueur appuie immédiatement sur le premier bouton. Nous allons configurer une fenêtre de saisie dans laquelle ils pourront appuyer sur le deuxième combo, accord, sur le deuxième bouton du combo. Mais avant cela, voyons comment appuyer réellement sur les autres boutons du combo. Passons donc au plan, et nous savons déjà que la première attaque SWOD est arrivée Nous allons créer un autre état d'animation, et nous allons appeler cette attaque stockée deux points de moins que le score deux. OK. Oh, le mot État est toujours là. Supprimons le mot état. Voilà, l' attaque SOD est presque prête, puis nous allons créer un autre état d'animation, et nous appellerons cette attaque SOD inférieure trois points dans cet état d'animation Allons-y. Et nous allons faire en sorte que, de Soda Tack One, vous puissiez passer à Soda Tak Two ou revenir à Eido OK. Vous pouvez faire l'une de ces deux choses, puis il y a le Soda Tak Three, dans lequel vous pouvez passer du Soda Tak Two. Ou tu peux retourner à IDO. Il s'agit donc essentiellement de la configuration de la boucle. De Idol, tu peux passer à Soda Tack One. Du Soda Tack 1, vous pouvez passer au Soda Tack 2 et du Tack 2, vous pouvez passer à 3 Maintenant, les boutons ne sont pas encore configurés, alors remarquez que si nous appuyons plusieurs fois sur le bouton d' attaque, rien ne se passe, c'est bon. Nous allons donc revenir au plan et passer de Soda Tech un à deux, tout ce dont nous avons besoin, c'est d' entrer, de devenir un héros Ensuite, ce que nous voulons rechercher, c'est la deuxième attaque SOD. Alors, va chercher Soda Tack Two. Et ce que nous voulons deux, c'est le nœud exactement égal, d'accord ? C'est ainsi que nous voulons qu'il soit configuré. Et si c'est le cas, cette valeur est positive, veuillez passer cette animation. Regardons-y de plus près. Donc, en tant que héros, Soda Tack Tack Two, s'il est réglé sur Oui, il peut faire la transition OK ? Alors partons de là. Et puis, du Tack Two au Soda Tack Three, nous allons suivre le même processus, devenir un héros, puis SOD OK, je veux lancer la troisième attaque SOD. Vous voulez le comparer à la valeur égale, et si la valeur égale est oui, vous pouvez effectuer la transition. OK. C'est tout ce dont nous avons besoin. Maintenant, voyons ce que sera réellement le soda tack Maintenant, gardez à l'esprit qu'il est assez facile de passer du point de soudure 1 au mode veille point de soudure 1 au mode veille en le réglant sur zéro pour le point de soudure 1, d'accord Donc, passer de la deuxième étape à l' inactivité fera exactement la même chose Viens ici, connecte-le sauf qu'ici il est vide. Et puis pour le SDA, point 3, exactement la même chose Retour au ralenti. Il suffit coller notre code et de décocher la case. C'est le moyen fondamental, simple et facile de le configurer. Ensuite, nous allons double-cliquer à l'intérieur de la touche 2 du SDA, et nous voulons taper play SOD attack et nous voulons taper play SOD C'est l'animation que nous voulons voir jouer. Et puis dans Soda Tack Three, on tape play Sword Attack Three OK. Quelle est l'animation que nous voulons qu'il joue. Vérifiez, placez une punaise à souder, deux ou trois. Bien. Maintenant, avec juste cette configuration de base, si nous revenons au niveau développeur, et un, deux, trois. OK. Notez qu'il fait le combo, un, deux, trois. Nous avons donc maintenant notre combinaison de base qui fonctionne. Essayons donc de faire les trois essais sur notre mannequin d'entraînement. Un, deux, trois. OK. Faisons-le encore une fois. Un, deux, trois. Sympa. Un, deux, trois. Nous avons notre combinaison. OK. Maintenant, voici ce qu'il y a de beau. Maintenant que nous avons cette configuration, d'accord ? Les boutons fonctionnent réellement, vous pouvez voir qu'il y a un délai d'une seconde pendant lequel vous pouvez décider si vous allez continuer ou non, ou si vous allez arrêter, vous voyez ? Maintenant, allons-y. Comment le configurer de manière à ce qu'il y ait un léger retard afin que nous sachions que je peux entrer si j'en touche un, n'est-ce pas ? À l'heure actuelle, il est mis en place avec un délai très court. Soit vous faites le combo complet soit cela vous empêche d'appuyer sur les boutons. Disons donc que si je n' appuie que sur une attaque d'anime, je ne peux pas appuyer sur les autres quoi qu'il arrive. Passons à la vidéo suivante et ajustons le code pour que vous ayez une plus grande liberté de combinaison. Allons-y. 53. 50 Un bref aperçu avant davantage d'intégration du système de combo: C'est bon. Alors maintenant, vous avez une compréhension raisonnable. Vous savez comment fonctionnent les systèmes de base pour l'animation. Vous avez compris jusqu'à un certain point comment fonctionnent les notifications animées et vous avez compris comment créer des systèmes qui réduisent, vous savez, la santé C'est super cool. Nous passons maintenant à l'interconnexion de ces systèmes d'une manière beaucoup plus étroite et beaucoup plus intégrée Voyons donc comment utiliser les notifications pour notre système combiné. Commençons donc par ce que nous avons mis en place. C'est le plan du héros actuel, non ? Chaque fois que vous appuyez sur le bouton Me Attack, d'accord ? À chaque fois. Nous arrivons maintenant et nous sommes en mesure d'examiner ces nœuds. Nous partons de Mela Tack il va activer t car il compte le multiplicateur Il fait un simple ajout plus un. Il imprime cette chaîne, puis il choisit quel Seda Tack Il dira : « Hey, Seda Tack One est en cours de préparation ». Puis, après un certain délai, il est écrit : «  OK, nous avons fini de souder Tack One Il en va de même pour deux et trois. C'est ainsi que cela fonctionne actuellement, et je m'en sers simplement pour vous montrer comment fonctionnent les systèmes. Maintenant, rendons-le beaucoup plus intégré et la majeure partie de la logique se fera à l'aide des notifications d'animation. titre d'exemple, nous savons que le notificateur de boîte de frappe SOD SOD est le seul élément à l'origine de l'attaque span SWOD introduite par une boîte de frappe Nous allons donc faire la même chose, mais nous allons apporter des ajustements à la façon dont les attaques sont menées. C' est essentiellement ce que nous allons faire. Nous ferons en sorte que si le joueur appuie sur le bouton d'attaque, le combo soit complètement exécuté. Si le joueur s'arrête, le personnage peut se remettre à zéro. C'est l'aperçu général de ce que nous allons faire ensuite. Et c'est le cas, laissez-moi appuyer sur barre d'espace de contrôle, sur l'animation, sur le plan d'animation OK. Ensuite, ouvrez la source d'animation. Nous allons donc utiliser entièrement le système de notification pour configurer les animations. Nous allons commencer par les animations au sol, puis nous allons passer à autre chose et apporter de gros ajustements aux attaques aériennes pour les rendre beaucoup plus amusantes à utiliser. Nous y reviendrons dans la vidéo suivante. J'espère que vous avez tout compris jusqu'à présent. S'il manque quelque chose, hésitez pas à visionner les vidéos. Ainsi, à votre retour, vous aurez cette compréhension profonde et tout ce qui se passera ensuite aura un sens pour vous. Allons 54. 51 Ajouter un lien vers l'attaque à la première attaque par l'épée: OK. Passons maintenant à associer nos attaques à l'écoute des bonnes informations. Maintenant, actuellement dans le jeu, lorsque vous appuyez sur le bouton d' attaque, pour commencer, il arrête d' écouter une fois que vous avez appuyé si vous n'avez pas saisi le combo C'est donc le code actuel juste pour vous montrer la combinaison de base. Maintenant, c'est ce que nous allons faire. Lorsque le joueur appuie sur l'attaque rapide, nous allons écouter si le joueur a appuyé sur le deuxième bouton d'attaque. Si le joueur clique sur le deuxième bouton d'attaque, nous appuierons sur les deux attaques. Il effectuera les deux attaques. Lors de la deuxième attaque, si le joueur fait la troisième, c'est la troisième attaque qui sortira. Pour ce faire, allons de l' avant et configurons cela dans le jeu. Tout d'abord, lorsque nous repensons au code, il ne fait que déclencher le Soda Tack Three dès que le Soda Tack Three est réglé il ne fait que déclencher le Soda Tack Three dès que le Soda Tack Three est réglé. Soda Tack Tack Two, il fait ces choses. Mais maintenant, nous allons les configurer comme étant liés à l'animation. Donc, pour ce faire, permettez-moi d'abord de réduire un peu la taille de cette boîte de commentaires Meleatak Laissez-moi vraiment le comprendre. Et je ne sais pas ce que c'était. Copiez-le. OK, je veux juste une autre boîte ici. Et je vais appeler ça une attaque. Liens. OK. Donc, pour commencer, nous allons commencer par rester très simples. Nous allons faire en sorte que le premier soit appelé SOD attack one OK. Alors, venons ici. Maintenant, nous allons décoller d'un événement. D'accord, nous voulons organiser un événement personnalisé. OK. Nous ajoutons un événement personnalisé. Ensuite, nous allons appeler cela SOD. Permettez-moi de zoomer correctement. Cela s'appellera une attaque SOD. Sous le point 2, soulignez, Link. OK. C'est comme ça que ça va s'appeler. C'est ce qu'on appelle une attaque SOD contre Link. C'est ce que nous voulons que ce soit. Et que ferons-nous après l'attaque SOD contre Link ? Eh bien, c'est très simple. Nous allons venir ici et nous voulons vérifier quelque chose. Alors, que vérifions-nous ? Eh bien, c'est très simple. Nous voulons vérifier et voir si le bouton d'attaque SOD, le deuxième bouton d'attaque, a été enfoncé En d'autres termes, si le numéro de l'attaque SOD est deux. Donc, pour ce faire, nous allons venir ici, nous allons le traîner et nous allons dire : «   Hé, obtenez le numéro d'attaque SWOD Et nous voulons faire un contrôle de base, d'accord ? Nous allons donc faire une branche simple. Une succursale va nous permettre de vérifier et modifier ce qui se passe si c'est vrai ou faux. Donc, avec le numéro d'attaque SWD, permettez-moi de le faire disparaître. Je vais dire que c' est égal à deux, d'accord ? En d'autres termes, s'il est exactement égal à deux, ou faisons-le glisser vers l'extérieur. Faisons en sorte que ce soit plus égal, d'accord ? Donc, si le nombre d'attaques SWOD est supérieur à un ou égal à un, alors tout sera joué après cette durée Maintenant, venons-y. Et nous allons commencer par un simple écran d'impression. Donc, il va imprimer, et il va simplement imprimer du texte disant : «   Hé, fais WoD SWtat C'est ça. Parce que nous allons juste vérifier si le code fonctionne correctement, d'accord ? Maintenant que l'attaque SWOD à deux liens est activée, pour éviter que cela ne soit interrompu par quoi que ce soit d'autre, nous allons venir ici et nous allons rapidement rompre les autres liens OK, on va tout arranger. Ainsi, une fois le bouton d'attaque enfoncé, lorsqu' il est pressé une fois, il exécute le premier bit de code pour la première attaque SWOD, mais il ne fait rien d'autre OK ? Donc, si nous entrons dans le jeu maintenant, quand j'appuie une fois, ouaip, tout cela disparaît. Je ne peux donc appuyer qu'une seule fois sur le bouton d'attaque. C'est une bonne chose. Maintenant, nous allons revenir au plan d'animation et nous allons chercher l'attaque SWOD numéro un Il y a donc cette fonction ici. Il y a plutôt cette notification appelée hit box SWOD. Maintenant, c'est ce que nous allons faire. À la toute fin de l'animation, à la fin de la dernière image, d'accord ? Nous allons ajouter une nouvelle notification. Permettez-moi de passer à la phase de notification. Et il ajoutera une notification et ce sera un nouveau notificateur. Et nous allons appeler ce notificateur SWODTAKundscoe. Deuxièmement, soulignez Link. OK. C'est un nom assez long, mais, vous savez, il est réduit comme ça pour une bonne raison, parce que c' est le lien du point 1 de SODA qui va vers deux Nous l'appellerons donc SODA Tak Two Link, d'accord ? Maintenant que tout est prêt, revenons directement au plan d'animation, et nous allons passer au graphique des événements Nous allons examiner le graphique des événements, et venons-en ici. Nous avons reçu une notification pour la case à cocher appelée. Passons au lien de réception d'une notification pour une attaque au sabre. OK ? C'est dans cette zone que le code sera exécuté. Nous allons entrer et dire : « Hé, en tant que héros, nous voulons que l'attaque SOD soit liée. OK. Remarquez qu'il est là. La fonction, attaque SOD, deux liens est là, exécutez cette fonction OK. Nous y voilà donc. Maintenant que nous avons cette configuration, vérifions-la dans le jeu. Je vais appuyer sur Play. Première attaque, deuxième attaque, il s'agit de lancer une attaque SOD sur un lien, de vérifier ça. Passons maintenant au héros afin le SOD mette réellement à jour son numéro Brisons ce lien ici. Nous n'avons besoin d'aucun autre code pour fonctionner ici. n'est pas nécessaire, mais ce que nous allons faire, venez ici. Laisse-moi prendre ça. Nous allons donc obtenir tout ce code qui dit : « Hé, attaque SOD deux, après une seconde de délai , éteignez-la », puis nous allons simplement récupérer ce code et le couper. OK ? Nous l'emportons donc pour l'utiliser ailleurs. OK ? Passons donc au lien d'attaque, et voici ce que nous allons faire. Nous allons mettre ce code ici. Alors laisse-moi y aller doucement. Dès que l'événement personnalisé à deux liens SwedaTak est déclenché, il vérifie le numéro SwedaTak Et si le nombre SWDatak est supérieur à un, n'est-ce pas, ce qui signifie que le joueur a appuyé plusieurs fois sur le bouton SWDatak, n'est-ce pas ? Il va venir ici, dire que c'est le véritable noyau. Il imprimera donc la chaîne. Fais Swedatak deux. Ensuite, il me permettra de lier ceci. Hé, zoomons à nouveau. Il dira : « Hé, Soda, touche deux, pouce levé, c'est fait, et après un délai d'une seconde, l' attaque SWOD sera désactivée C'est tout ce que ça va faire, d'accord ? C'est tout ce que cette fonction va faire. Maintenant que c'est fait, voyons si cela va fonctionner correctement ici. Alors, tu l'as vu ? Alors, recommençons à zéro. Donc, lorsque j'ai appuyé dessus une fois, la deuxième animation a été correctement jouée. OK ? Cela fonctionne donc correctement. OK, ça marche correctement. Et la raison pour laquelle cela fonctionne correctement, je vais revenir sur la logique une fois de plus. Chaque fois que le joueur subit cette première attaque de soda, à la fin du Sedatack , le jeu revient et exécute cette action Longueur du SodaTackt. Il vérifie deux fois. Hey, quel est le numéro Soda Tack ? Le nombre Soda Tack est-il supérieur à un ? Est-il plutôt égal ou supérieur à un ? Alors, d'accord, lancez l'attaque complète. Faisons maintenant une rapide vérification logique. OK. Donc, vous appuyez immédiatement une fois sur le bouton d'attaque. Cette macro l' incrémente essentiellement de 0 à 1. Il va donc en faire un et le mener à bien. Nous devrons donc modifier ce code pour qu'il ne soit pas supérieur à un, mais supérieur égal à deux. Cela signifie que le bouton d'attaque SOD a été pressé plusieurs fois Cela signifie que le joueur veut deux attaques ou plus. Essayons-le une fois. Appuyez une fois. Rien ne se passe. Bien. Essaie encore une fois. Appuyez deux fois. Ah, c'est le problème. Essayons encore une fois. Appuyez deux fois. Il ne joue pas le deuxième hit. OK, alors revenons en arrière et faisons une vérification rapide. La raison pour laquelle il ne joue pas le deuxième hit, la voici. second coup n'est pas joué car cette macro n' est pas connectée. Connectons-le à nouveau. Faites une compilation rapide, revenez en arrière et testez-la à nouveau. Appuyez une fois sur le bouton d' attaque SWOD. OK, l'attaque éclate. Appuyez deux fois dessus. Les deux attaques sont lancées. Parfait. Maintenant, cela fonctionne correctement, car chaque fois vous appuyez sur le bouton SWD, le numéro de piste est réinitialisé au lieu d' être incrémenté C'est une bonne chose, le code fonctionne correctement. Maintenant, juste pour nous assurer que cela fonctionne correctement, revenons en arrière. Si le numéro de suivi SWD sur le SDTakTink n'est pas supérieur ou égal à deux, nous voulons remettre la taxe Seda à zéro Nous allons donc venir ici, je vais simplement dire set OK, numéro d'attaque SOD Je vais l'apporter ici. Je vais définir le SDTack numéro deux. Je vais venir ici. Permettez-moi d'abord de réduire ce lien à zéro. C'est donc ce qui va se passer. Il vérifiera si le nombre d'attaques SD est supérieur ou égal à deux. S'il vérifie et c'est une bonne chose, il le fait et c'est aussi le cas de l'attaque SD. Si ce n'est pas le cas, le numéro d' attaque SOD sera remis à zéro Et la raison pour laquelle nous le faisons, mais OK, la raison pour laquelle nous le faisons , c'est pour que de retour ici, ce code initial exécutant le numéro de l'attaque SOD, recommence à vérifier à zéro Cela devrait fonctionner correctement. Voyons ça dans le jeu. Donc, données un, deux, c'est bien, c'est le cas. Alors, merci. OK, ça ne fonctionne pas encore correctement. Revenons en arrière et faisons une autre vérification rapide. Donc, le faire une fois suffit. Cela fonctionne correctement comme prévu. Cela devrait fonctionner correctement comme prévu. Si c'est le cas, rompez ce lien. Si c'est deux, cela devrait être augmenté au-dessus de deux, c'est bon. Donc, s'il en est un, il en deviendra deux. S'il est supérieur à deux, c'est bien parce que j'ai appuyé plus de deux fois. Alors vérifions-le et voyons un, deux, ça fait ça. OK. Parfait. Parfait. Nous allons maintenant faire un autre ajustement. Donc, ce que nous allons faire, c'est faire une vérification de base en venant ici. Donc, juste après ce délai, étant donné qu'il y a un délai d' seconde après la première attaque SWOD, ce que nous voulons faire, laissez-moi le copier Apportez-le ici. En fait, je veux faire cette vérification, mais ne la vérifions pas ici. Ce que nous voulons faire, c'est vérifier ici. Nous sommes en train de vérifier si le nombre est supérieur à deux ? S'il est supérieur à deux , exécutez la chaîne. C'est bon. Si le nombre est inférieur à deux, c'est-à-dire s' il est un, l' attaque SOD sera remise à zéro Mettons donc un peu de texte ici. Imprimons du texte, et nous l'appellerons Attack Reset. Parce que nous voulons être sûrs pouvoir voir quand l' attaque sera réinitialisée. Laisse-moi changer cette couleur. Je pense que le rose est bon. Retournez dans le jeu en vous assurant que le code s' exécute correctement une ou deux fois. OK, il le fait. Mais il n'est pas capable de revenir en arrière et de recommencer. OK, nous allons revoir rapidement le code dans la prochaine vidéo 55. 52 Ajouter un lien vers l'attaque à la deuxième attaque par l'épée: OK, maintenant on passe à autre chose. Actuellement, si j'appuie deux fois sur le bouton d'attaque, le joueur actionne les boutons, mais il ne se réinitialise pas encore. Mais si j'appuie dessus une fois, il se réinitialisera, me permettant de lancer l'attaque. Maintenant que la réinitialisation est terminée, ouvrons le plan du héros. S'il découvre que le nombre de fois que vous avez appuyé sur l' attaque est supérieur ou égal à deux, il fera le combo, mais il n'y aura pas de réinitialisation C'est bon. Nous traiterons de la réinitialisation ultérieurement Mais si vous appuyez une fois, le numéro d'attaque à l' épée sera remis à zéro et la réinitialisation de l'attaque par cordes s'affichera. Voici donc à quoi cela ressemble dans le jeu. Appuyez une fois, attaquez, réinitialisez. Appuyez une fois, attaquez, réinitialisez. Appuyez deux fois. Il exécute les deux attaques, mais il n'y a pas de réinitialisation. C'est une bonne chose. Cela fonctionne comme prévu. Passons maintenant à l' attaque numéro deux. Nous allons revenir à l' animation Blueprint, et nous allons sélectionner l' attaque numéro deux Maintenant, avec l'attaque numéro deux, jouons rapidement. Bien. Maintenant, juste après que la zone de frappe de l' épée soit enfoncée, à la fin de l'animation, nous ajouterons une nouvelle notification. OK. Nous allons donc ajouter l'un de ces notificateurs : nous voulons une nouvelle notification, et nous allons appeler, en fait Revenons d'abord en arrière. Je veux que le nom soit SWOD Attack Two Link That's CO Donc, lors de la troisième attaque SWOD, nous allons ajouter une nouvelle notification, qui s'appellera SWOD Attack Underscore Three, underscore Link OK. C'est son nom, et il se trouve à la toute fin de l'animation. C'est à ce moment-là que nous voulons le faire, car c' est à ce moment-là que l'animation est complètement terminée. C'est cool. Et puis dans le plan d'animation, OK. Allons-y. Maintenant, WoD Attaque Two est le premier double cricket. Ce qui se passe sur ce lien, c'est que nous récupérons le héros et que nous jouons à Link l'événement SwOD attack to Link Configurons donc l'événement dans notre classe de plan de personnage sous Attack Links Donc, le SWOD attaque deux Link ici. Ce que nous voulons faire maintenant, c'est configurer un autre événement personnalisé, et nous appellerons cet événement personnalisé SWOD attack underscore three, underscore Nous voulons que la dénomination soit aussi uniforme que possible. Très bon pour l'organisation. Et puis avec ça, je vais essentiellement recopier tout ça, d'accord ? Je ne pense pas qu'il y ait une raison pour moi de tout réécrire Il va y avoir une réécriture. Mais pour des raisons de rapidité et de simplicité, copions-le et relisons-le une fois de plus. Maintenant, qu'avons-nous copié ? Attaque SWOD vers le lien. Zoomons un peu plus. Nous obtenons le numéro d'attaque SWOD. S'il est supérieur ou égal à deux, True. Faites du soda Tack Tack Two C'est ce qui est imprimé. Cela permet à Soda Tack Two d'être actif Après 1 seconde de délai, il l'active. OK. Et puis s'il est inférieur à deux, il joue simplement sur les faux nœuds. numéro Sodtac est remis à zéro et affiche la réinitialisation de l'attaque par chaîne. C'est le cœur. Maintenant, pour ce qui est de Soda Tack Three, nous allons simplement le lier ici Maintenant, si les punks SOD sont supérieurs ou égaux à trois, seront joués tous les trois OK. Il vient par ici. Au lieu de définir SDTack deux, nous allons le remplacer par une attaque SOD trois. Passons donc à l' attaque SOD 3, faisons-la glisser vers l'intérieur et définissons-la sur Zoom avant Nous allons donc le régler sur « Oui, l'attaque SOD 3 est activée Elle est en cours de réalisation. Nous allons lier le délai, nous allons le copier et le coller ici, le faire glisser vers l'extérieur et le régler sur le fait qu'il soit maintenant désactivé au bout d'une seconde. OK. Et puis, ici, nous pouvons voir. Le numéro d'attaque est donc mis à zéro, et il y a une réinitialisation de l'attaque. OK. Maintenant, compilons rapidement ceci et le tour est joué Passons donc au niveau. Appuyons sur Play. Une attaque réinitialisée, une, deux. OK. Je n'ai pas lu correctement ce code. Nous aurons besoin d' une vérification rapide. Une attaque réinitialisée, une, deux, d'accord ? Oh, oui, la fonction n'est pas terminée. Nous venons de terminer de l'installer ici. Oh, c'est moi. Bien, revenons au plan d'animation. Ouvrez WoD Attack Three Link. OK. Maintenant que nous avons une configuration d' attaque SWOT à trois encres, je vais l'ajouter, devenir héros, puis nous voulons que l' attaque SWOT à trois liens soit ce qui sera joué Alors jouons-y après. Maintenant, cela devrait fonctionner correctement. Il joue une réinitialisation d'attaque, une, deux, je ne vois pas la réinitialisation d'attaque. Revenons en arrière et jetons un autre coup d'œil. Donc, lors de la première attaque SWD, nous avons une attaque SWD à lier, et elle fonctionne correctement Lors de la deuxième attaque SOD, permettez-moi de l'enregistrer rapidement, assurer que tout est sauvegardé Enregistrez tout, enregistrez toutes les modifications. Nous avons installé trois liens SOD Attack ici. Nous allons revenir au plan d'animation. Le lien Sword Attach Three semble fonctionner correctement. Sword Attach Three Link fonctionne correctement. Revenons maintenant, assurez-vous que tout le reste fonctionne correctement. OK. Si c'est le numéro défini, c'est là que réside le problème. OK, ajoutons rapidement une épingle. Donc, si le nombre est trois, récupérez cette macro et recopiez-la Cela signifie que le bouton a été pressé trois fois. Augmente le nombre d'une unité. Ce n'est probablement pas le problème, mais ajoutons-le. Cela signifie que le bouton a été pressé trois fois. Alors viens ici, Sword Attack Three. Cela signifie qu' il faut appuyer sur trois attaques. Sword Attack Two se déroule donc correctement. J'espère que vous me suivez. J'espère que cela a du sens. Nous venons ici, Sword Attack. Est-ce que WoD attaque trois. C'est le bon texte. Il vient ici, Sword Attack Three. Retard, retard. Terminé. OK, revenons ici. Appuyez une fois. Réinitialisation de l'attaque, appuyez deux fois. OK, il lance la deuxième attaque semée. Parfait. Maintenant, le problème c'est qu'après avoir terminé le deuxième soda, il ne le réinitialise pas. Voyons voir. Pourquoi ne se réinitialise-t-il pas après le deuxième Soder Tack ? Parce qu'après cela, c'est joué. Faisons quelques étapes de dépannage de base. Voyons si cela se passe réellement. La chaîne d'impression hello hello devrait suffire. Compiler. J'appuie une fois. La réinitialisation fonctionne. J'appuie deux fois. La réinitialisation fonctionne. J'appuie une fois. OK. Compris. Je vais devoir vérifier deux fois pour voir ce qui fonctionne. Hum. Quoi qu'il en soit, je pense que je suis un peu fatiguée. Je m'y intéresse depuis longtemps. Je reviendrai et mettrai à jour une partie de ce code. 56. 53 Finalisation des liens de combo et des réinitialisations pour le combo ancré: OK, donc du café a été bu et du temps s'est écoulé. Donc, revenez et configurez correctement ce système. Revenons donc en arrière et partons des principes de base. Pour commencer, assurez-vous d' avoir la sauce d'animation. Ici, assurez-vous d'avoir le plan d'animation Z. OK ? Ici, nous pouvons consulter le graphique d'animation. Et nous allons y aller un par un pour vérifier les attaques. Ainsi, chaque fois que vous appuyez sur le bouton d'attaque, une attaque de mêlée à action de saisie améliorée est déclenchée. OK. Une fois cela fait, nous passons à un do once qui ne se réinitialise que lorsque le bouton est relâché et nous passons à un interrupteur sur un entier basé sur le numéro SWODAttack Commençons donc par l'attaque rapide. Donc, avec l'attaque rapide après avoir augmenté le nombre d'un, le nombre d'attaques SOD est maintenant fixé à un Nous imprimons une chaîne appelée one. C'est très bien. Nous nous assurons que la première attaque SWD est définie sur true. Il y a un délai d'une seconde, puis la touche 1 du SWD prend la valeur false Maintenant, lorsque le patch SOD est réellement terminé, ce qui se passe, c'est que le SOD attaque deux liens, nœud est déclenché, ce qui change le soda. Je vérifie le numéro de Sdstack s'il est supérieur Ce sera la condition. Si c'est vrai, c'est que c'est plus que non égal à deux. En d'autres termes, le joueur a appuyé plusieurs fois sur le bouton Soda Attack. Il imprime la corde, fait en sorte que la soudure en attaque deux. Cela signifie que Sold Attack Two est lancé. Il y a un délai, puis la deuxième attaque vendue est annulée. S'il est faux, le numéro d'attaque vendu est remis à zéro et affiche la réinitialisation de l'attaque Nous allons maintenant apporter quelques modifications. Pour commencer, OK. Pour commencer, nous allons supprimer le délai. Nous n'avons pas besoin de ce délai, et nous allons obtenir le nœud qui désactive Swadata Animation One Deuxièmement, commençons par remettre cela à plus tard. Maintenant, la raison pour laquelle nous voulons le faire est que nous voulons que cela se déclenche uniquement . Je veux que cela se déclenche sur la base d'une animation, non sur la base d'un délai. Maintenant, si nous le faisons c'est parce que revenons aux articles de animation de Sod Attack One Vous remarquerez donc qu'à la fin du Seder, d' accord, désolé Faites défiler la page ici. C'est à la fin du swedatak que celui-ci est lancé Permettez-moi de le faire avancer un peu jusqu'au maximum. Je veux donc lancer Swedatak juste par ici, juste à la fin quand il sera lancé OK. Maintenant, permettez-moi de revenir en arrière. C'est essentiellement ce que nous voulons. Donc, avec cette simple modification du code, revenons en arrière. Donc, le positionnement du réglage Soda Attack un, deux devrait être quelque part ici. Permettez-moi d'en faire glisser un grand nombre vers l'avant, pour libérer de l'espace. OK, organisez-les. Je vais les empiler verticalement, puis les connecter. Donc, la première chose qu'il fait en essayant relier le deuxième point de soudure est vérifier que le point de soudure variable 1 est activé , C'est essentiellement ce sur quoi il va être configuré. Maintenant, avec cet ensemble, faisons une vérification rapide. Ce n'est donc que le premier point de soudure. Une fois que le bouton de mêlée est enfoncé une fois, il exécute le simple do once, active int, il commence à zéro, puis il va configurer Suder tack 121 pour commencer à jouer Je vais venir ici. Pour que cet événement personnalisé mette Seda Tack One hors fonction, il y a une simple vérification de l'état de la succursale Il fera l'affaire. Et puis cela fera de Swedatak deux un peu plus. Nous allons commencer par cela et voyons si cela nous permet d'obtenir des animations plus propres. Voyons voir. Appuyez une fois. Tiens bon. OK, je n'ai pas fait la réinitialisation appropriée. Une fois ? Non, ça ne l'est pas. Appuyez une fois. OK, réinitialisation de l'attaque. La réinitialisation des attaques fonctionne bien. Appuyez une fois, appuyez sur reset, appuyez deux fois. Il n'a pas fini de faire SweData Two. Maintenant, la raison pour laquelle il n'a pas fini de faire Swedatak Two est liée au plan d'animation Donc, pour le moment, on ne peut passer que de SwedaTak un à Seda C'est essentiellement tout ce qu'il peut faire. Mais nous allons changer cela. Alors, venons-en rapidement ici. Donc, le code de SOD tack un à deux est si Sud Atak two Copions donc simplement ce code et nous allons le faire glisser de idle à Swedtak 2, coller et le connecter OK, assurons-nous que j'aime vraiment l'organisation. Je le sais vraiment, vraiment. Permettez-moi les aligner au milieu. OK. Maintenant, avec ce simple changement, nous avons fait en sorte qu' il puisse passer de inactif à la deuxième attaque SOD, ce qui est très bien Alors, venons ici, nous sommes inactifs. Word Attack One Reset. D'accord, maintenant il peut faire la transition , il peut passer de Okay. Mais je ne peux le faire qu'une seule fois. Nous devons travailler sur les réinitialisations. Il peut le faire. J'y ai donc joué les deux animations. Mais nous devons faire un peu plus de nettoyage car même s'il est agréable de pouvoir passer du mode inactif à Swedatack, vous devrez également le configurer de manière à ce qu'il puisse passer de l'exécution à Soda Tack Tack Two, ce qui ajoutera encore beaucoup à Maintenant, un moment. Maintenant, cela résout ce problème, mais nous voulons tout de même pouvoir passer de Sedatak un à deux Et si on revenait au plan ? Hein ? Voici le plan du personnage Et si au lieu de cela, nous ne laissions Seda lancer qu'une seule fois, supprimons d'abord ce délai pour désactiver Sed Attack Two lancer qu'une seule fois, supprimons d'abord ce délai pour désactiver Sed Attack Nous l'avons fait uniquement par ici, non ? Donc, juste après avoir activé Sed Attack 2, cela permettrait-il à Sdack One de s'exécuter juste Cependant, nous devons également le faire pour qu'en cas de réinitialisation d'une attaque, juste après la réinitialisation, désactive également le Sudtack Essayons donc ça. OK. Oh. OK, donc Soder Tack Two est juste Donc ici, une, une réinitialisation, c'est bien. Sympa. Maintenant, la deuxième attaque est en train de sortir. C'est une bonne chose. C'est donc une bien meilleure implémentation. Nous allons donc partir de « voyons-voir ». Donc, deuxième étape, nous allons l'activer. Nous allons désactiver Solder Tack 1, et nous allons continuer à partir de là. Bien. Maintenant, pour un dernier test, il y a de l'inactivité ici. Brisons le lien ici, supprimons-le. Compilons, allumons-le. Un, réinitialisation de l' attaque, un, deux. Eh bien, je n'ai pas fait Sedatack 2. Essaie encore une fois. Un, une réinitialisation de l' attaque, un. Je vois le texte de D SDTack 2, mais je ne vois pas le véritable SDTack Hmm. Hum. Pourquoi ferait-il cela ? OK, alors entrons ici. Ajoutons un délai. Je pense qu'un délai de 0,2 seconde est raisonnable. Réduisons-le à encore moins. Ce délai est donc maintenant de 0,1 seconde et voyez s' il exécutera correctement l' attaque. Une fois réinitialisé. Une fois réinitialisé, une fois, deux fois. OK. OK. Maintenant, cela fonctionne correctement. OK, c'est bon. L'ajout de ce léger retard a empêché le code de se déclencher trop rapidement, ce qui nous a désactiver le point de soudure juste au moment où le deuxième point de soudure est en train de se déclencher C'est dans cet esprit que nous avons effectué la première attaque par soudure Maintenant, pour ce qui est de la deuxième plaque à souder, elle est arrivée ici. C'est la longueur de trois points de Soder, et c'est ce que nous lançons lorsque nous ouvrons l'attaque c'est ce que nous lançons SWD 2 Sauvegardons tout rapidement. Il est toujours important de tout sauver. Donc, juste après cette baisse, nous avons une attaque SOD à trois liens, c'est la prochaine chose que nous devons examiner Nous allons donc aborder les trois maillons de l'attaque SWOD , et c'est prêt Donc, selon la configuration, à la fin de l'attaque SWD, deux attaques arrivent si le nombre d'attaques est supérieur ou égal à trois OK, je vais vérifier si c'est moins. Il définit le numéro d'attaque SWD 20 et réinitialise l'attaque. Bien. Si c'est vrai, il lancera une attaque SWD trois et activera l'attaque SWD 32 OK, c'est bon. C'est très bien. Maintenant que c'est fait, venons-y. Ce que nous voulons, c'est que la deuxième attaque SWOD soit désactivée et nous voulons qu'elle soit désactivée ici Donc je vais m'en occuper aussi. Laisse-moi comprendre. Collez ça ici. Je veux qu'il soit déclenché. Et puis, lors de la réinitialisation, nous voulons également qu'il soit désactivé à deux reprises. Nous allons obtenir ce délai, et nous allons le ramener à 0,1, compiler, revenir en arrière et le tester maintenant. Après la compilation, faisons ce test. Un, deux, trois. OK, c'est bien. Cela fonctionne correctement. Faisons-le encore une fois. Un, réinitialisation de l'attaque, un, deux, réinitialisation de l' attaque, un, deux, l'attaque est réinitialisée. Faisons-le trois fois. A, sympa. Maintenant, nous avons simplement besoin d' une fonction pour mettre fin à la troisième attaque SOD Sortons. Nous allons revenir à la source d'animation, passer à la troisième attaque SOD, puis à la fin, nous allons ajouter une nouvelle notification et nous allons l' appeler Sword Combo OK. Faites-le glisser jusqu'à la fin, faites-le glisser là-bas. OK, c'est donc la fin du combo Sword. Maintenant que le combo SWOD est configuré là-bas, nous allons passer au héros, et nous allons créer un nouvel événement, sera un événement personnalisé Maintenant, nous allons appeler cet événement personnalisé sword, combo et OK, nous voulons que les noms soient cohérents. C'est ça. Extrémité du combo SOD C'est celui que nous allons utiliser. Maintenant, à l'intérieur du combo SOD, tout ce que nous allons faire, c'est abord faire une réinitialisation de base Nous allons donc remettre le compte des attaques à zéro, et nous allons obtenir SWODAttack trois, mettre ici et le désactiver C'est tout ce que nous allons faire. Alors appuyez rapidement sur compiler. Et nous y voilà. Sword Tack Three est déclenché. Le numéro de punaise de l'épée est mis à zéro. Et maintenant, revenons au plan d'animation. Permettez-moi de tout enregistrer rapidement et de compiler. C'est une bonne compilation. Et ce que nous voulons, c'est rechercher la fin du combo receive Notify Sword. Bien. Ensuite, nous dirons : « Hé, en tant que joueur, deviens plutôt héros ». Ici, une combinaison d'épées s' arrête, vous lancez. Parfait. Compiler. Et puis, par souci de simplicité, venons ici et traînons les choses en longueur. Et nous voulons imprimer une chaîne, et nous appellerons la fin de la combinaison de chaînes et laisse-moi changer sa couleur en une couleur que nous remarquerons, transformer en rouge, un beau rouge foncé. Cela permettra de voir clairement si tout fonctionne correctement ou non. Nous voilà donc en train de réinitialiser l'attaque. Lorsque j'appuie une fois sur le bouton d' attaque, attaque est réinitialisée. Quand j'appuie deux fois dessus. Mmm, hum. Bien. Ensuite, je réinitialise l'attaque. Ensuite, si j'appuie dessus trois fois, il le fait et le combo se termine. Un, deux, trois, et c'est la fin du combo. C'est plutôt bien en fait. Nous avons donc maintenant un système de combo très basique pour les attaques au sol. J'ai donc appuyé trois fois sur le bouton d'attaque et c'est fait. Maintenant, gardez à l'esprit que la raison pour laquelle mes attaques sont si lentes est principalement liée à l'apprentissage et à l'enseignement. Vous pouvez accélérer la fréquence d'images des attaques en fonction de ce que vous jugez approprié. Pour le type d'attaques que vous recherchez dans votre jeu. Donc pour le moment, ceux-ci sont vraiment lents, d'accord ? Mais vous pouvez le faire pour qu'ils soient beaucoup plus rapides que cela. Alors laissez-moi vous montrer à quoi cela ressemble. Nous allons donc revenir à la question de savoir. Passons maintenant aux animations. Non, non, non, aller à l'art. Oui, oui, oui. Faites ensuite défiler la page vers le bas. Ainsi, sod attack one, par exemple, est réglé sur cinq images par seconde. OK. Mais nous pouvons le configurer différemment. Nous pouvons le configurer jusqu'à 15 images par seconde. C'est donc une attaque au gazon beaucoup plus rapide. Maintenant que nous avons atteint 15 images par seconde, examinons l'animation dans le papier. Notez que l'animation est beaucoup plus rapide. Alors attaquons. Remarquez qu'il sort plus rapidement. Sympa. Remarquez, s' éteint une fois et se réinitialise. Sympa. Et puis il y a les autres attaques. Ces attaques sont plus lentes. Maintenant, laissez-moi ajuster l'animation de l'attaque pour qu'elle ne soit pas aussi rapide. Permettez-moi de le réduire à dix images par seconde. Voici donc à quoi ressemblent les animations maintenant. OK, donc ces deux-là sont lents. Accélérons-les. Alors, prenez deux, laissez-moi l'augmenter de cinq images par seconde à dix images par seconde. Chargez-le. Et puis Soda Tack Three. Je l'augmente également de cinq images par seconde à dix images par seconde. OK, un, deux, donc il attaque les deux. Alors regarde ça. Un, deux, trois, un, deux, trois, un, deux, trois. OK, donc vous pouvez les composer, ou vous pouvez les chronométrer de manière semi-précise, d'accord ? Nous y voilà donc. Nous avons maintenant une attaque simple pour les joueurs. OK. C'est donc essentiellement cela. C'est ainsi que nous pouvons configurer un système de combo simple pour notre joueur. Maintenant que nous avons un système de combinaison simple, pour nos attaques au sol, faisons de même pour nos attaques aériennes, car remarquez quand il saute, d'accord ? Lorsque notre héros saute, il ne fait qu'une seule barre oblique, et les animations sont un peu interrompues et les animations sont un peu interrompues Nous allons donc ajuster ces animations d'attaque aérienne dans la prochaine vidéo. Allons-y. 57. 54 Vérifier si le joueur est aérien pour les routes d'attaque à l'épée: C'est bon. Maintenant que nos combos ancrés sont correctement configurés, n'est-ce pas ? Nous voulons maintenant que notre air soit également correctement configuré. Configurons donc un système de combinaison d'air. Maintenant, en gros, nous allons faire la même chose que pour le terrain, mais il va y avoir quelques changements, d'accord ? Mais nous allons y revenir. Revenons donc à la sauce de l'animation. Il s'agit donc de notre première attaque combinée aérienne. Voilà cette tranche d'air. Ensuite, il y a cette tranche vers le bas en l'air, et la dernière est une barre oblique vers le bas en l'air D'accord, c'est donc essentiellement ce que nous avons pour nos combos aériens Nous allons mettre en place un type d'organisation très similaire à la manière dont nous voulons que les combos aériens interagissent Jetons maintenant un coup d'œil au plan d'animation. Voici donc le graphique d'animation. Donc, ce que nous pouvons faire, c'est passer de n'importe quelle attaque SOD à l'inactivité Nous pouvons passer de la première attaque SOD à l' animation en cours ou au ralenti Et puis à partir de là, comme vous pouvez le voir, nous pouvons actuellement passer d'un point de départ rapide à une attaque aérienne SOD, d'accord ? Revenons donc plutôt à Seda Tack. Mais Seda Tack est actuellement configuré pour être Sword Attack One. Nous allons maintenant ajuster cela afin de pouvoir séparer nos contrôles combinés aériens de nos contrôles combinés au sol. Passons donc rapidement à l'animation des héros, et c'est par là que nous allons commencer. Nous y voilà donc. Il existe tous ces différents liens d'attaque, et ce que nous allons simplement faire, c' est plutôt prendre cette boîte prendre cette boîte, la copier et la mettre ici. D'accord, ci-dessous parce que vous voulez qu'ils soient à proximité. Et ce que nous allons faire, c'est changer le nom de liens d'attaque en liens d' attaque restreints. Et ils seront conçus pour attaquer Links Air. Cela maintiendra donc nos liens d'attaque terrestres, et cela conservera nos liens d'attaque aérienne. Maintenant, revenons à l'attaque contre moi. Donc c'est une attaque contre moi, c'est normal, d'accord. Permettez-moi de le comprendre rapidement et de le faire glisser vers le bas. Juste pour nous donner un peu d'espace pour travailler. Et maintenant, nous allons ajouter un nouveau chèque. Maintenant, cette vérification sera une simple vérification pour voir si le joueur saute. Et pour ce faire, nous allons simplement récupérer tout ce contenu à partir de l'interrupteur, le déplacer un peu vers la droite, venir ici et commencer par le décortiquer, n'est-ce pas ? Ce que nous voulons simplement faire, c'est avoir une fonction de saut es simple. Nous devons déterminer si le joueur saute ou non, et la meilleure façon de le faire est d' utiliser la composante de mouvement du personnage. Maintenant, si vous revenez à la zone de gauche, à droite, faisons défiler la page vers le bas. Notez qu'il existe une composante de mouvement du personnage. Nous voulons accéder aux informations de ce composant. Maintenant, pour accéder aux informations depuis le composant de mouvement du personnage, nous allons les faire glisser vers l'extérieur et nous voulons demander si elles tombent. Maintenant, sa chute redeviendra toujours vraie si le joueur est en train de sauter. Ainsi, chaque fois que le joueur est en état de sauter, sa chute sera réglée sur true. Si le joueur est au sol, il sera réglé pour tomber. Maintenant, ouvrons une branche rapide. Et depuis cette branche, nous voulons le connecter ici, d'accord ? Vous voulez connecter la vérification savoir si le joueur tombe ou non sur cette branche. Et nous aimerions pouvoir d'abord effectuer un zoom arrière très rapidement parce que je veux avoir encore plus d'espace pour cela, faites-le glisser ici, d'accord ? Donne-nous l'espace. Nous avons besoin d'espace. OK, retournons dedans. Maintenant, ce que nous voulons, c'est que s' il est vrai que le joueur tombe, il suffit de l'imprimer en gros caractères gras. Oui OK. Et dans quelle couleur, rendons la couleur verte. Oui, le joueur saute, il tombe plutôt. D'accord ? Je suis en train de copier-coller. OK. L par ici. Cependant, s'il est faux, configurons-le pour qu'il dise non. OK. Ce sera essentiellement ça. Et dans quelle couleur, changeons-le en rouge. Maintenant, ce que nous avons fait est fondamentalement simple. Nous avons configuré l'animation d' attaque, le bouton d'attaque pour vérifier si le joueur saute, dites oui. Si le joueur tombe, dites non. OK. Si le joueur est cloué au sol, s'il est cloué au sol, dites non. Si le joueur se trouve dans un État de la zone, dites oui. Alors, déplaçons-nous. J'ai appuyé, c'est dire, non, non, non, non, non, parce que le joueur est au sol. Ce sera donc une bonne chose pour nos combos ancrés, d' accord ? C'est juste non. Mais quand je suis dans les airs, c'est dire oui. Remarquez ça, non ? Quel que soit l'état de saut, il indiquera « oui ». Mais quand il sera immobilisé, il dira non. Quand je saute, ça dit oui. Grounded, non. Sauter. Parfait Nous avons donc la première chose dont nous avons besoin en ce moment. Alors, sauvegardons tout rapidement. Il est toujours bon de sauver Unreal Engine de temps en temps. Fermons ça, fermons ça, venons ici et fermons ça. Maintenant que ces deux éléments fonctionnent comme prévu, configurons maintenant notre connexion. Maintenant, nous savons pertinemment que cet interrupteur fonctionne comme ça. Une fois que le bouton d'attaque est enfoncé, il effectue l'incrémentation, puis il apparaît et configure l'attaque SWOD pour qu'elle soit active OK. Ce qui mène à l'organigramme dans lequel il commence le traitement via les liens d'attaque des liens deux et trois de SWODAttack, puis finalement la fin du combo Tout cela se fait par ce biais. Ce que nous voulons maintenant, c'est l'organiser manière à laisser le commutateur comme d'habitude. Nous pouvons laisser l' interrupteur comme d'habitude, si besoin est, nous pouvons le laisser comme d'habitude. Cependant, ce que nous allons faire, c'est le configurer de telle sorte qu' ici, au lieu de configurer une attaque SOD, il configure une attaque Aero SOD À partir de là, nous allons suivre le même processus pour configurer les combos d'attaques SWOD C'est ainsi que nous allons procéder. 58. 55 Configuration de plans d'animation pour Air Combo: Maintenant que nous avons moyen le plus simple de faire le contrôle qui s'offre à nous. Maintenant, allons-y, supprimons tout cela. Récupérez tous ces nœuds, replacez-les depuis le commutateur int. Et cette fois, au lieu d'imprimer cette chaîne, collons-la ici, et voici ce que nous allons faire : le joueur tombe. D'accord ? Si le joueur ne tombe pas, commencez par Sword Attack One. Cool. C'est essentiellement ça. C'est tout ce que nous faisons. Si le joueur tombe, activez SwOD Attack One OK, définissez ce booléen sur un. Nous allons maintenant créer trois autres booléens. Pour celui-ci, nous allons l'appeler attaque aérienne SWOD dès le départ Nous allons en ajouter une autre, que nous allons appeler attaque aérienne SOD sous le score deux, et une autre attaque aérienne SOD sous le score trois Nous avons donc configuré nos trois variables d' attaque aérienne SOD. Maintenant, ce que nous allons faire, est venir ici et nous allons lancer une attaque aérienne SOD, et nous allons la configurer Nous nous sommes allumés. Et nous allons faire glisser et connecter ces deux éléments ensemble, puis nous allons faire une compilation rapide. Maintenant, si nous sommes sur le terrain, revenons en arrière. Je dois m'assurer que cela est fait correctement. Je n'avais pas connecté ce lien initial, corrigeons-le rapidement , puis compilons, revenons en arrière une fois , je peux faire mon combo à trois coups. Je peux faire mon combo de deux coups au sol. Je peux faire mon combo de trois coups au sol. Je peux faire mes deux essais. Un, deux, trois. Sympa. Parfait Les combos ancrés fonctionnent donc très bien. Mais si je saute, remarquez, euh hein. Il ne fait encore rien. C'est cool. Commençons maintenant à implémenter le code pour effectuer l'attaque aérienne. Maintenant, nous allons revenir à l'animation ZD en papier. La première attaque est ce swipe, qui est une attaque aérienne Nous allons donc revenir sur le plan de l'animation, et passer de Jumpstart à Air Swedatak est ce que nous voulons. Alors viens ici. Mais cette fois, au lieu de chercher un Swedatak, nous rechercherons un avion d'attaque aérienne SWOD Tiens bon. Oui, je veux acheter Air Sword Attack One et le relier ici. Si c'est vrai, il peut y avoir une transition, puis nous nous retirerons. Ensuite, nous irons ici et il également configuré pour une attaque Air SOD. Sortez ça. Attaque aérienne SWOD 1. Parfait Et oui, s'il est vide, il s'arrêtera. Cette fois, sur le terrain, je reçois mon attaque. En l'air, je reçois mon attaque aérienne SOD. C'est une bonne chose. réinitialisation n'est pas encore en cours, mais nous savons que cela fonctionne La prochaine étape, bien sûr, de la même manière que nous l'avons fait pour les autres, c'est d'ajouter de nouveaux états d'animation. Nous appellerons cette attaque aérienne SWOD la case deux et nous ajouterons un autre état d'animation Et nous appellerons cela une attaque SOD à moins de trois points. Et nous les organiserons exactement de la même manière. Vous pouvez donc passer de Air SwoDTack 1 à AirSDTack 2. Vous pouvez passer d'AirsStack 2. Revenons au point de départ, d'AirswdTack 3 à JumpStack et d'AirswdTack 2 à AirSodTack Assurez-vous qu'ils sont correctement connectés. Maintenant qu'ils sont correctement connectés, nous allons effectuer quelques ajustements supplémentaires pour effectuer une double vérification rapide. D'accord ? Cela fonctionne bien. Tout devrait avoir un sens logique. Laisse-moi juste les déplacer vers le haut. Augmentons un peu leurs positions, faisons en sorte que cela ressemble davantage à ça. Il y a donc une boîte d'animations. J'aime son apparence en termes de design. Et permettez-moi aussi de le déplacer vers le haut comme ceci, ressembler davantage à une boîte. J'aime bien ça. Ça a l'air plutôt cool. C'est bon. Maintenant, nous savons que passer d'un point de départ peut passer d'un point de départ à une attaque AirSod Et ce que nous faisons, c'est vérifier la première attaque d'AirSod Maintenant, d'une attaque AirSod à deux, ce que nous voulons, c'est devenir un héros Et nous allons vérifier Air SWDatak 2. OK. Et nous voulons voir l'égalité. Est-ce exactement égal à « il est allumé » ? S'il est exactement égal à activé, il peut effectuer une transition. Vous pouvez donc y faire la transition. Copions-le pour simplifier ce que nous devons faire ensuite. Ensuite, de AirSWDatak two à JumpStart, c'est assez simple. Si Air SOD Attack two est désactivé, il peut effectuer cette transition Maintenant, que diriez-vous de passer de deux à trois attaques AirSod ? C'est assez simple. La seule chose que nous changeons, c'est que cette fois, nous avons la troisième attaque d'Air Word. OK, nous sommes en train de le comprendre. Connecte-le ici. Si c'est sur nice, perfect, vous pouvez faire cette transition. Mais à partir de la troisième étape d'Air Warder, en revenir à Jump Start, c'est pareil sauf que cette fois, nous nous assurons qu' il est configuré pour ne pas être actif, Et c'est tout ce dont nous avons besoin pour le configurer. Maintenant que nous l'avons configuré, nous allons compiler. Et comme tout est compilé tel qu'il est configuré actuellement, nous sommes encore un peu loin de tout faire fonctionner comme prévu car nous avons configuré les nœuds d'animation, mais nous n'avons pas configuré les animations. Nous allons donc entrer dans le nœud d'animation et nous allons dire : «   Hey, play Air SwoD Attack Two Il est donc prêt à jouer cette animation, sortir sur SWD Attack Three Jouez à l'air libre. Alors bien sûr, vous savez quelle animation, Air SWD Attack Three Maintenant que toutes ces animations d' attaque sont configurées, nous sommes dans un bien meilleur état. Bien sûr, il ne fonctionne pas encore correctement, tout simplement parce que lorsque vous sautez, il ne fait qu'une seule attaque, puis il n'y a pas de réinitialisation Ensuite, nous allons effectuer les réinitialisations et ajouter un peu de code, finaliser cela pour le combo aérien 59. 56 La configuration de la logique Air Combo: Maintenant que nous avons ce lien d'animation de base , nous allons utiliser le même flux de logique pour configurer dans nos notifications les attaques SOD, Nous allons donc accéder à la source d'animation de l'attaque aérienne SOD, et à la fin de l'attaque aérienne SOD, nous ajouterons simplement une notification Ce sera une nouvelle notification et ce sera une attaque aérienne SOT. Souligner. Voyons Air SOD attaquer deux fois, soulignons Voilà Air SwodTackUndercore. Le lien est entièrement configuré et nous voulons utiliser exactement la même convention que celle que nous avons utilisée avec le protocole SOD normal Si je dois cliquer sur le bouton SODA normal, attendez. C'est SODA Tack, je suis ici. Faisons un petit zoom arrière. Je pense que je suis trop zoomé. OK. Vous remarquerez donc qu' ArSoD Attack Three Link est installé là-bas J'ai besoin de faire un zoom arrière. Pourquoi cela ne s' affiche-t-il pas correctement ? OK, les cadres ne s'affichent pas correctement. Quoi qu'il en soit, nous devrons venir ajuster cela plus tard, mais avant de le faire, oui, c'est bien mieux. Vous pouvez voir le spawn hit box. Et puis SOD combo ender, les notificateurs sont Nous viendrons nettoyer ça, mais un peu plus tard. Comme vous pouvez le constater, la boîte à chaleur d'origine est là, et au bout se trouve le lien Air SODA Tak Two Et puis à la fin de ArsoDataC 2, nous allons supprimer un notificateur et nous allons créer un nouveau notificateur et nous allons l'appeler air SWODtaUnder Score three, underscore nous allons supprimer un notificateur et nous allons créer un nouveau notificateur et nous allons l'appeler air SWODtaUnder Score three, underscore, Link. OK, c'est le prochain notificateur. Et puis à la fin, nous reviendrons ici, et c'est notre troisième. Il suffit donc d'ajouter à la notification une nouvelle notification, et ce sera simplement une combinaison aérienne. C'est tout ce que ce sera la fin du combo aérien. Ainsi, juste après la troisième attaque aérienne, le combo prend fin. Nous allons maintenant revenir au plan du joueur. Et littéralement, puisque la logique est la même, nous allons simplement les connecter tous , les copier. D'accord, le copier-coller vous fait gagner beaucoup de temps. Fais-moi confiance, mon frère. OK, nous allons nous arrêter ici. Maintenant, il a mis en place différents événements personnalisés pour nous ici. Maintenant, nous allons rapidement y aller, double-cliquez dessus. J'ai appuyé sur F deux pour que nous puissions les modifier. Il s'agit donc d'air, de SOD, d' attaque, de soulignement deux, de lien de soulignement D'accord ? C'est le nom de cet événement. C'est donc ce dont nous avons besoin. Nous avons donc le deuxième lien de Soder ici. Ici, nous avons Soda Tack Three, cool. Nous allons donc faire exactement la même chose ici. Nous avons donc commencé avec Air SWOD Attack Two Link. Renommons-le également. Air SOD, attaque, souligne trois, souligne Link. Non, c'est une faute d'orthographe. Soulignez l'encre avec un K, pas avec un L. Et puis, pour ce dernier point, il s'agit du combo ender Revenons donc d'abord en arrière et vérifions-nous qu'il s' agit exactement du même nom. C'est Air Combo End. Bien. Alors viens ici. Nous allons zoomer. Je vais donc le renommer et je l'appellerai air combo end et c' est terminé Ensuite, nous devons remplacer toutes les punaises SODA par leur version correcte Je vais taper la fin de ce combo aérien. Nous remplaçons désormais la taxe SODA par les attaques aériennes au SOD. Supprimez-le donc et c'est essentiellement Sod Tack Three. Il suffit de venir ici, faire glisser AR Soda, troisième étape, et de vouloir le configurer, le désactiver deux, puis de connecter ces nœuds, et nous allons faire exactement la même chose pour les différentes propriétés Voici donc Soder Tack Tack 2. Nous allons donc prendre Air Soder Tack 2, glisser dedans et le configurer sous forme de set Nous allons nous débarrasser de la tactique Soder. Parce que les combos fonctionneront tous exactement selon la même logique Voici donc la deuxième attaque d'Air Sword qui va être déclenchée. Donc, réinitialisation du numéro d'attaque. Alors voilà, assurez-vous qu' ils fonctionnent correctement. Donc Attaque deux à nouveau, au lieu de cela, ce que nous voulons, c'est Air Sword Attack Two. Nous allons donc le remplacer et ensuite, là où il y a l'air soda, la troisième option Plutôt, optez pour la troisième solution, nous pouvons la supprimer. Nous achetons Air Soda Tack Three, l'avons configuré et nous l'avons activé puisque c'est ce que c'était La logique est exactement la même. Cela nous fait vraiment gagner du temps en utilisant exactement le même arbre logique pour notre taxe sur les boissons gazeuses et pour notre taxe sur les boissons gazeuses moulues. C'est essentiellement ça, c'est un très bon moyen de gagner du temps. Parce que vous ne faites que suivre exactement la même logique. Nous allons maintenant apporter quelques modifications à la taxe sur les boissons gazeuses pour changer leur style, mais nous y reviendrons ensuite. Pour commencer, assurons-nous d' abord que les punaises à soda se combinent correctement les unes dans les autres Maintenant que c'est entièrement configuré, d' accord, vérifions la logique des liens ARSODtakt OK, ça a l'air de bien se porter. Maintenant que les événements sont correctement configurés ici, nous allons revenir au plan d'animation et nous voulons ajuster les notificateurs Nous allons donc passer au notificateur du lien AisDTA. Ensuite, ce que nous voulons, c'est devenir un héros. Et ensuite, faites de nous un héros. Et nous voulons établir un lien entre l' événement et l'attaque aérienne SOD. Et c'est exactement le code que nous voulons jouer lorsque ce notificateur est appelé, d'accord ? Passons ensuite à Air SOD Attack Three Ink, introduisons le G en tant que héros, et nous ferons exactement la même chose Attaque aérienne SOD à trois maillons. C'est parfait Alors maintenant, c'est configuré pour fonctionner correctement. Ensuite, nous passerons à la fin du Combo aérien et nous le retrouverons en tant que héros. Et la fonction que nous voulons jouer est le combo aérien et le boom, et fait et dépoussiéré. Et voilà, nous en avons terminé avec notre système combiné d'air de base. Voyons comment cela fonctionne dans le jeu. Je suis donc sur le terrain. Les feux de ma note fonctionnent correctement. Maintenant, si je saute. Tiens bon. Saute, attaque. OK, l'attaque ne s'est pas réinitialisée correctement. Revenons en arrière et vérifions pourquoi. Nous allons commencer par regarder le héros. Détecte-t-il correctement si le joueur tombe ? Oui Il est donc le configurer pour que la pile d'air fonctionne normalement Commençons par vérifier cela. Sympa. Sauter. Il effectue la pile d'air et se réinitialise Ah, sympa. OK. Maintenant que cela fonctionne correctement, il ne reste plus qu'à tout enregistrer rapidement. Nous devons nous assurer que tout est enregistré afin que tout fonctionne correctement. Fais un autre test. Quand je saute, je peux faire un coup d'épée. Mais remarquez immédiatement qu'il y a un problème. Le code ne fonctionne pas correctement car à un moment donné, le joueur retombera au sol. Donc, pour réinitialiser cela, nous devons faire en sorte que lorsque le joueur est en l' air en train de lancer ses attaques, il reste dans les airs. C'est ce que nous allons faire dans la vidéo suivante. 60. 57 Polir la logique de combinaison aérienne: OK. Maintenant que notre code Air Combo est disponible, la seule chose que nous constatons, c'est que, vous savez, les joueurs touchent le sol très rapidement. Nous voulons donc créer une chaîne de base. Ce que nous voulons vraiment faire, c'est garder le joueur dans les airs pour les combos aériens Pourquoi ? Parce que ça a l'air plutôt cool. OK. Du point de vue du gameplay, une façon simple de penser est que lorsque le joueur est en l'air et qu'il fait un comboing, nous le voulons Supposons donc que lorsque le joueur bouge et que je saute, je veuille tomber normalement. Mais si j'attaque en tant que joueur, je veux en tant que joueur rester en l'air plus longtemps. Maintenant, oui, techniquement, cela pourrait perturber un peu le jeu, mais ne vous inquiétez pas pour contrer le fait que vous restez plus longtemps dans les airs. Nous allons également ralentir vitesse de déplacement horizontal afin que le joueur ne puisse pas se contenter attaques et d' allonger la distance de saut. OK ? Alors, d'accord ? Comme vous pouvez le voir, nous pouvons faire le combo là-bas. Mais si j'essaie de faire le combo, je finirai par terre à un moment donné. OK ? Passons donc au code. Donc, à l'intérieur du héros en ce moment, le mela tag, lorsqu'il est en l'air, vous obligera à placer punaises à souder à l' air, puis à la fin de l'attaque, nous vérifierons si le joueur Si tel est le cas, remettez le nombre d'attaques à zéro plutôt que si ce n'est pas le cas, puis réinitialisez l' attaque et désactivez Sodtak One S'ils sont toujours pressés, activez Sod Attack two Ensuite, après une courte durée, désactivez la variable sod Attack ones. Maintenant, ce que nous allons faire , c'est ajouter un peu de sauce. Donc, dès que le joueur commencera à faire ses trucs à air soda, nous allons aller chercher la composante de mouvement du personnage, d'accord ? Et nous allons l'intégrer. Ensuite, ce que nous voulons faire, c'est définir l'échelle de gravité. OK. Nous voulons définir l'échelle de gravité, et nous voulons la définir. Commençons par le mettre à zéro juste pour vous montrer ce qui se passerait. OK. Maintenant que nous l'avons mis à zéro, compilons et revenons au jeu. Alors maintenant, lorsque le personnage saute, remarquez qu'il peut effectuer ses combos en plein air sans gravité Mais c'est avec une mise à zéro. Réglons-le sur quelque chose de plus sensé. Réglons-le sur quelque chose comme 0,25. Cela signifie qu'une fois que le joueur fait une combinaison, il obtient un quart de la gravité Maintenant, lorsque le joueur saute, il reçoit un quart de la gravité et il peut effectuer sa normale d' attaque aérienne. OK. C'est cool. Cependant, notez qu' il y a un petit problème lorsqu'ils se remettent au sol, s'ils sautent normalement, pas de problème. Ils ont le saut normal que nous avons configuré pour eux. Cependant, s'ils font un combo et qu'ils reviennent au sol, lorsqu'ils sautent en arrière, l'échelle de gravité est conservée. Revenons donc au plan du héros, puis nous copierons les nœuds qui changent de gravité et c'est ce que nous ferons Immédiatement après, si le joueur réinitialise et qu'il ne poursuit pas le combo, remettez l' échelle de gravité à un OK. Donc, si le joueur a arrêté le combo à un moment donné, réglez l'échelle de gravité sur un. OK. Et nous ajouterons le même ensemble de nœuds sur toutes nos périodes d'attente. Ce ne sont peut-être pas les bonnes attaques. Je crois que j'ai mis ça sur une attaque SOD. C'est une attaque SOD Oups. Descendez pour attaquer l'air des encres. Vous voulez être dans les lignes d'attaque aériennes. Mettons-le ici. Donc, à chaque réinitialisation, nous remettons la gravité à un, revenons ici. Il s'agit de la deuxième réinitialisation. Nous avons remis la gravité à un. Nous y voilà. Ensuite, bien sûr, à la fin du combo, nous remettons la gravité à un. J'espère que cela a du sens et que cela vous semble logique. Tout ce que nous faisons, c'est chaque réinitialisation, nous remettons l'échelle de gravité à un. Si le combo continue, nous laissons la couleur flottante de la gravité persister. Voyons à quoi cela ressemble maintenant. Alors laisse-moi faire un saut. Fais. Oh, mon Dieu. Oh, désolée. Arrête ça. Je ne veux pas faire de debugs, merci, s'il vous plaît Je ne suis pas en mode débogage. Commençons par là. Alors arrête le jeu. OK, saute. OK. Tu vois ? Alors je viens, je coupe. Une fois que j'en ai fini avec une barre oblique, ma gravité revient à la normale Si je fais une entorse, ma gravité revient à la normale. D avec une barre oblique, ma gravité revient à la normale. Sautez, slash, la gravité revient à la normale. Sautez, slash et slash pour la deuxième fois. Réinitialiser. À propos de la triple barre oblique, des trois barres obliques, puis de la réinitialisation de la gravité, nous n'avons pas besoin de réajuster la gravité à chaque Maintenant, revenons en arrière, assurez-vous que cela fonctionne correctement. Laisse-moi voir. Cette réinitialisation est réinitialisée à un, réinitialisée à un, réinitialisée à un, réinitialisée à Pas mal Mais je dois aussi vérifier quelque chose. Lorsque j'ouvre le composant de mouvement du personnage, laissez-moi rechercher l'échelle de gravité. Donc, l'échelle de gravité, normalement, pour un saut normal est fixée à deux. Permettez-moi donc de faire un ajustement pour que le saut ne change pas du tout. Revenons au graphique des événements. Cette fois, lors de la réinitialisation Désolé, lors de la réinitialisation, remettons son échelle de gravité à deux pour qu'elle reste la même Maintenant, bien sûr, la méthode intelligente consiste à avoir une variable avec, disons, une gravité de base et à la configurer ici. Mais c'est à vous de l'ajouter. Faisons-le encore une fois. Alors cette fois, je saute, je coupe. La gravité a été ramenée à deux. Je saute, je coupe. Nous avons fixé la gravité à deux. Saute, je fais les trois barres obliques. Je suis de retour au sol. Je fais deux barres obliques Oh, j'en ai fait trois. Fais deux barres obliques De retour au sol. Je saute, je coupe. Je suis de retour au sol. Je saute, je coupe, je suis réinitialisé. Je saute, je coupe, ça se réinitialise. Je saute, je coupe, ça se réinitialise, d'accord ? Je saute, je fais la triple barre oblique, je lâche prise, ça se réinitialise C'est donc essentiellement ainsi que nous maintenons le joueur en l'air lorsqu'il fait des combos aériens OK ? Maintenant, nous allons revenir ici, et nous voulons apporter une dernière modification supplémentaire. Vérifions rapidement l'échelle de gravité 2. Ici, c'est réglé sur deux. Oui, c'est réglé sur deux. Bien. Ici, l'échelle de gravité est fixée à 0,25. Je pense que je vais le ramener à 0,15. Je pense que 15 ans c'est mieux. Bien entendu, vous pouvez l' ajuster à la valeur qui , selon vous, donne le meilleur rendement. Bien que là, cela entraîne un embouteillage plus élevé. Oh. OK. Maintenant que nous remarquons que cela mène à un saut plus haut, nous allons venir ici. Nous allons voir, nous allons régler la vélocité. Voyons voir, régler la vélocité. OK. Nous allons régler la vélocité. Nous allons retrouver la composante de mouvement du personnage, et nous allons obtenir de la vélocité. Obtenez la vélocité. Voyons où est obtenu la vélocité. OK, je veux gagner en vélocité. Répartissons-les. OK. Séparez-les. Et ça aussi, séparons-les. Et nous voulons que la vitesse X soit la même, W la vitesse Y soit la même, mais nous voulons que la vitesse sur Z soit exactement nulle. Maintenant, qu'est-ce que cela signifie ? Oh, la cible, W le composant du personnage, non ? Compilons. Maintenant, c'est ce que nous voulons, non ? Nous y sommes allés alors que le joueur flottait dans les airs, voyons voir. Ce n'est qu'un set pour une attaque rapide. Ils cessent de gagner en vitesse verticale. Tu as vu ce que nous avons fait là-bas ? Nous l'avons configuré pour que le joueur n' augmente pas sa vélocité verticale. Et cette attaque rapide, c'est bien. Mais ils peuvent mener à bien leurs trois attaques aériennes. Sympa, pas trop mal, pas trop mal du tout. Mais maintenant que je l'ai vu, je trouve que ce saut est un peu faible. Ce n'est pas assez haut, tu sais. OK. Mais maintenant que nous l'avons fait, je pense qu'il faut maintenant laisser tomber l'échelle de gravité. C'est marrant, nous continuons à faire tous ces ajustements. Abaissons maintenant l'échelle de gravité à 0,05, d'accord ? Je pense que 0,05 est une échelle de gravité raisonnable car nous avons considérablement réduit la hauteur de saut Alors on vient. Sympa. Le joueur peut donc terminer Oh, je suis toujours zoomé. Toutes mes excuses. Le joueur peut toujours terminer ses trois coups d'épée, puis il est de retour au sol Et c'est un bref aperçu de la façon d' avoir un bon système d'attaque par combo aérodynamique Et ce qui est bien, c'est que le joueur conserve la possibilité de changer direction même lorsqu'il attaque ou frappe en l'air C'est une bonne chose. OK ? C'est à peu près ça. OK, voyons voir si c'est un saut normal. Il s'agit d'un saut offensif. Le saut offensif se déplace plus rapidement. Ce que nous allons faire, nous reviendrons donc une fois de plus sur le héros. Maintenant que nous sommes de retour dans le mouvement des personnages, nous sommes de retour à l'intérieur du personnage principal. Nous voulons obtenir un autre élément de notre personnage, car il existe une autre fonctionnalité de cambriolage Si je fais un saut de base, remarquez que lorsque je saute, je peux sauter environ 1,5 case. Mais si je saute et que je commence à attaquer, je peux en sauter environ trois, ce qui signifie que nous transformons les attaques aériennes en technologie de saut, ce que nous ne voulons pas. Je veux dire, si tu le veux, tu peux l'avoir dans ton jeu. Mais je vais vous montrer comment faire en sorte que les attaques aériennes ne modifient pas vos sauts, car plus tard , nous verrons comment développer un jeu de plateforme engageant et amusant Nous allons donc faire glisser la composante de mouvement du personnage. Et nous voulons rechercher des commandes aériennes, définir la commande aérienne. C'est ce qu'on appelle les contrôles aériens, je veux régler le contrôle aérien. Nous allons le mettre ici. Et ce que nous allons faire, c'est régler contrôle aérien sur, disons, quelque chose comme 0,3. Parce qu'au mieux, la façon dont nous le configurons lorsque nous configurons les mouvements du personnage permet contrôler l'air. Jetons rapidement un coup d'œil à ses détails. Je veux ouvrir les détails. OK, donc mes coordonnées ne s'affichent pas, alors je vais aller voir, et nous y voilà. Je vais cliquer sur les détails, et cette fenêtre de détails sera rétablie. Maintenant, je veux me renseigner sur le contrôle aérien. Sous la composante de mouvement du personnage. Vous pouvez donc voir que le meilleur contrôle aérien est réglé sur un, d'accord ? Donc, en réglant le contrôle aérien à 0,3, nous réduisons la capacité des joueurs à contrôler la vitesse diagonale lorsqu'ils sautent et qu'ils pointent Ils sont donc là. D'accord, le contrôle aérien a donc été réduit, mais bien que le contrôle aérien ait été réduit, le joueur peut toujours le faire. Non, ce n'est peut-être pas la bonne solution. Permettez-moi de supprimer le changement relatif au contrôle aérien. peut donc que le changement de commande aérienne ne fasse pas exactement ce que l'on attend du personnage. Au lieu de cela, modifions rapidement la vitesse de travail réelle. Mm. OK. Nous avons donc ici la variable de vitesse de marche. Maintenant, nous allons simplement suggérer cette variable. Voyons voir, nous avons en fait réglé la vitesse de marche. Nous y voilà donc. Modifions la vitesse de marche maximale. Maintenant, ça commence à 600. Suggérons-le à 300 et voyons si cela fera la bonne différence ou si nous ferons en sorte que le joueur ne soit pas en mesure d' augmenter sa distance de saut. Voyons voir. Non, pas assez. Réduisons-le à 150. C'est le mouvement du personnage. OK, donc ça a ralenti. OK ? Réduisons-le à 50. OK ? Déposez-le vraiment vers le bas afin que nous puissions voir la différence d' impact qu'il a. Non, ce n'est pas suffisant. Mm. Il va falloir faire un autre ajustement. Donc, si la modification de la vitesse de travail ne fonctionne pas dans ce cas d'utilisation, voyons voir. Je pense que ce que nous pourrions changer, c'est le frottement de l'air. Je dois modifier le frottement lorsque je suis dans l'air. En fait, il y a beaucoup de façons différentes de le faire. Chacun avec ses propres problèmes qu'il provoquera lui-même. Nous y reviendrons plus tard. Maintenant, fondamentalement, maintenant que nous en avons terminé avec cela, nous avons la possibilité de créer une belle animation à trois coups et d' y réaliser ces hits, et aussi, disons, de faire un saut rapide. Nous pouvons intervenir et lancer des attaques aériennes. Nous avons des attaques aériennes. Ensuite, nous avons des attaques bloquées. Nous avons des attaques aériennes. Bien que les attaques aériennes soient lentes, nous pouvons y remédier très rapidement. Voyons voir. Laisse-moi entrer dans l'art. Et sélectionnez l'attaque au gaz à air comprimé. Ce paramètre est réglé sur quatre images par seconde. Permettez-moi de le mettre à jour à huit images par seconde pour le rendre plus rapide. Et puis le second, voyons voir, un, deux, trois. OK, c'est réglé sur quatre images par seconde. Permettez-moi de régler cela à six images par seconde pour le rendre plus rapide. Et le dernier est configuré comme vous le souhaitez ? En fait, ce que je vais faire, c'est modifier celui-ci, laissez-moi voir. Quelle est la troisième animation. Permettez-moi de le supprimer. Je vais juste régler ça à quatre images par seconde. Ce sera donc le dernier coup d'épée. Non, restez simple. Donc, avec ces quelques changements, voyons à quoi ils ressemblaient. Voici donc les épées ancrées. Et puis quand je saute, beaucoup plus vite. Un, deux, trois. OK, alors c'est fait. Bien. Un, deux, trois, un, deux, trois. OK. Puis quand tu sautes, un, deux, trois. En fait, j' aime bien pouvoir contrôler le mouvement quand je suis dans les airs comme ça. C'est plutôt cool. Bref, c'est ça. Pour l'instant, nous avons configuré notre système combiné Baseline. Maintenant que le système de combo configuré dans la prochaine série de vidéos, nous allons parler brièvement de ce que nous pouvons faire avec l'IA, car frapper un bloc est amusant, mais toucher une vraie créature capable vous attaquer et de mettre fin à votre vie est bien plus amusant. Entrons dans le vif du sujet. 61. 58 Détection du joueur à portée de main: Maintenant que des combats sont disponibles pour notre joueur, donnons au joueur de quoi se battre, qui sera notre premier ennemi au corps à corps Maintenant, la première chose que nous allons faire est de configurer et de créer le plan de base de l'ennemi au corps à corps, d'accord Pour ce faire, passons aux personnages. Notez maintenant qu'il y a des dossiers ici. Nous avons notre attaque, objet à infliger des dégâts, puis le joueur. Créons donc un nouveau dossier, d' accord, nous l'appellerons ennemi de mêlée Nous allons rester simples, d'accord ? C'est ainsi que ça va s'appeler. Maintenant, c'est l'ennemi de mêlée. Et si nous y allons, nous allons créer l'ennemi de mêlée en tant que classe enfant du mannequin d'attaque Alors, prends le mannequin d'attaque. Il va l'obtenir. Et puis, en haut, il y a la possibilité de créer une classe de plan pour enfants Et nous allons traiter cette classe de «   Child-Blueprint Class Me Ennemi Coupez-le rapidement, nous allons le supprimer, retourner dans l'ennemi au corps à corps, puis coller rapidement le contenu ici Attends, en fait, laisse-moi revenir. Où se trouve la copie ? Je veux vraiment le copier dans son intégralité. Un vrai moteur. Où est la fonction de copie simple ? OK, je n'en vois pas de copie. Je vais juste le faire glisser et le déposer dans Melenem. Ça dit : OK, déménage ici. Oui, c'est ce que je veux faire. Rédacteur très intéressant. Quoi qu'il en soit, maintenant que nous sommes dans l'ennemi de mêlée, nous voulons ajouter quelques autres dossiers Nous allons donc créer un dossier que nous allons appeler art. Nous allons créer un autre dossier appelé animation dans lequel nous allons placer nos animations, et nous allons créer un autre dossier appelé audio. OK. Nous avons donc de l'art, de l' audio et de l'animation, et nous ajouterons d'autres dossiers en fonction des besoins. Mais pour l'instant, ces trois éléments seront suffisants. Bien que ce soit sympa d'avoir ce mannequin ici, mettons-le de côté Laisse-moi le déplacer. Allez, Cameoa. F par ici. Cool. OK. Maintenant, rapidement, lançons l' ennemi au corps à corps dans le monde assurer qu'il est à zéro sur l'axe ZY OK. Il s'agit donc de notre premier véritable ennemi dans le jeu. Ça y est en ce moment. C'est ici. Maintenant, ouvrons le plan et voyons ce qu'il contient. Donc, à l'ouverture, permettez-moi de l'ajouter ici, d'accord ? Donc, en l'ouvrant, remarquez qu'il y a plusieurs choses. Il y a une collision basique entre capsules. Il y a un cube de base ici. Il existe un maillage de caractères de base. Il y a le widget, la barre de santé, là-bas, et il y a une bonne composante de mouvement des personnages. La première chose que nous allons faire , c'est d'entrer. Nous allons sélectionner le cube, et pour le moment, nous allons simplement laisser là pour le moment, car nous ne faisons qu'une chose. Mais nous allons ajouter un autre élément ici. Maintenant, la première chose que l'IA doit faire avant de faire quoi que ce soit d'autre, c' est d' être capable de détecter le joueur et de savoir quand celui-ci se trouve dans une certaine fourchette. Nous allons donc passer aux composants, et nous voulons ajouter un composant appelé pawn sensing. C'est ça. Donc ça y est, la détection des pions. Permettez-moi de le renommer « détection des joueurs ». C'est le nom que je vais utiliser car il est destiné à la détection des joueurs. Et puis, lorsque vous effectuez un zoom arrière, remarquez que c'est un rayon assez fou, n'est-ce pas ? C'est un énorme rayon. Nous voulons donc réduire ce rayon. Maintenant, sur le panneau des détails, nous pouvons réduire le rayon du site. Pour le moment, c'est sur 5 000. Permettez-moi de le réduire à 1 000 unités. OK. Je pense que 1 000 unités , ce sera une bonne chose. Et puis le seuil auditif, nous pouvons le mettre à zéro pour qu'il ne puisse pas entendre le joueur et le seuil auditif LOS. Nous allons le ramener à zéro. Donc, tout ce qu'il a, c'est un rayon de vision. Maintenant, gardez à l'esprit qu' il s'agit en fait d'une sphère. On dirait que c'est une ligne droite, mais ce n'est pas le cas. C'est une sphère complète autour de l'ensemble du personnage, non ? Maintenant, faisons une vérification rapide et assurons-nous que le composant de détection ponctuelle, que j'ai appelé détection claire, fonctionne. Nous allons donc passer au graphique des événements. Laissez-moi venir ici et nous allons créer. Nous allons me permettre de le faire glisser dans la détection des joueurs. La détection claire est donc maintenant là. Et nous voulons ajouter un événement simple pour détecter le joueur, alors revenez à la détection claire. Nous allons ajouter un événement. Nous pourrions utiliser du bruit ici, mais ce n'est pas utilisable pour le moment. Je veux ajouter le CPN, ce qui va conduire à son ajout Donc, en ce qui concerne le CPO, qui est essentiellement destiné la détection des joueurs, que voulons-nous faire ? Nous voulons simplement imprimer une chaîne simple, et nous voulons l'appeler player is visible. C'est ça. Une fois que le joueur est dans une zone détectable, il dit simplement : « Hé, le joueur est visible C'est tout ce dont nous avons besoin pour commencer. OK ? Retournons donc dans le monde. J'appuie sur Play. OK, donc pour le moment, il ne détecte pas le joueur. Nous allons donc revenir au plan directeur. Je suis donc en train de regarder le plan du CPN. Il devrait quand même détecter le joueur. Revenons. Donc, quand je saute de ce côté, je suis là. Il indique donc maintenant que le joueur est visible. Si je reviens, le joueur n' est plus visible. Je reviens de ce côté, le joueur est visible. C'est cool. Nous savons maintenant qu'il est capable de voir le joueur tant qu'il est du bon côté de son champ de vision. Maintenant, élargissons leur champ de vision de telle sorte qu'au lieu de regarder vers la droite, il puisse voir le joueur à la fois du côté gauche et du côté droit. Et pour augmenter l'angle de vision, remarquez ici l'angle de vision périphérique sur la détection du joueur. Alors, jetons-y un coup d'œil. Nous pouvons ajuster ce chiffre à la hausse ou à la baisse. Je vais augmenter ce nombre à 179 degrés, pas entièrement à 180, mais à 179. J'ai trouvé que cela a tendance à très bien fonctionner dans la plupart des cas d'utilisation. Alors maintenant, remarquez que le joueur est visible. Je sors du champ de tir. Le joueur n'est plus visible. Le joueur est visible. Laisse-moi partir. Le joueur n' est plus visible. C'est une bonne chose. Notre IA de base est donc désormais capable de détecter simplement le joueur. Voyons maintenant comment faire en sorte que, lorsque le joueur est visible, l'IA se déplace vers la position du joueur. 62. 59 Faire avancer l'IA vers le joueur: Maintenant que le joueur est détecté, je suis hors de portée visible, et maintenant je suis de retour dans le champ visible. La prochaine chose que nous voulons, c'est nous assurer que l'ennemi au corps à corps se déplace vers le joueur chaque fois que celui-ci est visible Maintenant, pour ce faire, nous devons tout d'abord créer une navigation, et nous allons le faire en définissant des limites du maillage nerveux Maintenant, c'est quoi ça ? Permettez-moi de vous montrer rapidement, non ? Pour commencer, disons que nous avons cet objet ici, non ? C'est notre IA. Si nous faisons un zoom arrière puis que nous arrivons dans le coin supérieur gauche, et que nous voulons ajouter quelque chose , vous ajoutez simplement maillage nerveux dans chaque volume de limites de maillage nerveux Ajoutons cela au monde du jeu. En zoomant en arrière. Cela va créer ce que l'on appelle un maillage nerveux. Maintenant, cette case est un peu petite, donc je l'ai sélectionnée, puis je vais l' augmenter à 50 sur toutes les unités, d'accord ? 50 parce que je veux que ce soit gros. Bien mieux. Maintenant, c' est vraiment grand. Vous voyez donc cette zone verte. Cette zone verte ici vous montre le maillage nerveux. En d'autres termes, vers quels domaines l'IA est-elle capable de naviguer ? Vous remarquerez maintenant que notre boîte est là, mais que notre ennemi de mêlée est capable de se déplacer le long de cette zone verte. Maintenant, laissez-moi déménager ici. Vous remarquerez cette zone autour de ces objets, on dit à l'IA de ne pas pouvoir s'y déplacer, et c'est une bonne chose. Maintenant, juste au cas où vous verriez des espaces en dessous, il vous suffit de vérifier double-cliquer sur « Pas l'ennemi au corps à corps Passons au mannequin d'attaque. Assurez-vous que le cube à l'origine de sa collision est configuré pour simplement superposer toutes les données dynamiques. Cela ne devrait pas être bloquant, car toute collision de blocs provoquera la création d'un espace où le maillage nerveux ne sera pas visible. Maintenant, si je clique à nouveau sur la boîte nerveuse et que j'appuie sur P, le maillage nerveux cessera d' apparaître. J'appuie à nouveau sur P, il vous montre maintenant le maillage nerveux. Maintenant que ce maillage nerveux est configuré, nous allons simplement passer à construction et nous voulons rechercher des chemins de construction. Cela va reconstruire la navigation, juste une simple double vérification. Et ce que vous pouvez faire, c'est dire que nous voulons obtenir les limites de ce maillage nerveux, à droite, et le déplacer un peu plus vers la gauche Cela va créer un maillage nerveux. Notez cette refonte par défaut du maillage nerveux. Vous pouvez le supprimer, passer aux chemins de construction et de reconstruction, et il recréera le maillage nerveux pour vous Je sais que j'ai beaucoup parlé du maillage nerveux, mais il s'agit essentiellement de la zone exploitable que l'IA peut utiliser Maintenant que nous avons configuré la zone accessible à pied que l'IA peut utiliser, assurons-nous qu'elle comprend comment se déplacer vers le personnage du joueur OK. Je vais maintenant vous montrer clairement ce que nous essayons de réaliser. Vous vous dirigez donc vers l'ennemi et vous remarquez qu'il vous poursuit. Ensuite, lorsque je saute par-dessus, tant que je suis à portée visible, il continuera à essayer de poursuivre le joueur jusqu'à sa position. OK, revenez. OK, revenez. Hé, reviens, boum. D'accord ? Bien sûr, il essaie de se rendre à l'emplacement exact du joueur. Maintenant, voici le code du plan simple. La première chose que vous allez faire est donc de revenir à OSPN, la détection des joueurs Ensuite, après la chaîne d'impression, vous allez passer au héros. En gros, vous faites glisser ce brochage et vous souhaitez le lancer sous plan du joueur, quel que soit le nom Une fois que c'est fait, à partir de là, vous allez devenir un héros, vous voulez obtenir la position de l' acteur. Cela va faire apparaître ce nœud, puis nous allons diviser rapidement afin que nous ayons accès aux valeurs X, Y et Z. Bien entendu, nous n'avons pas besoin de la valeur Z. Ce sont les valeurs X et Y qui sont les plus importantes. Ensuite, nous utiliserons un simple nœud de déplacement vers le nœud de localisation. Vous pouvez y accéder en tapant simplement « déplacer vers l'emplacement ». Et avec cela, vous quitterez contrôleur et vous voudrez obtenir un contrôleur AI, vous serez en mesure d'obtenir le contrôleur AI, et à partir du contrôleur AI, assurez-vous de donner une référence à vous-même. Cela indique essentiellement à l' IA de reprendre, en gros, elle dit : « Hé, IA » une fois que vous avez détecté le joueur. Imprimez que le joueur de cordes est visible, lancez-le vers le héros, ce qui devrait être ce que nous voyons, c'est le pion En tant que pion, obtenez sa position actuelle, puis déplacez-vous simplement vers sa position en accédant au contrôleur AI qui se trouve en vous Et c'est ainsi que vous en obtenez un peu, laissez-moi revenir en arrière. C'est ainsi que vous pouvez obtenir un simple déplacement de l'IA vers un endroit où l'IA suit simplement le joueur, et elle essaie de le suivre et elle essaie de le suivre tant que celui-ci est à portée. Maintenant que c'est fait, nous pouvons passer à autre chose et définissons quelques limites de base générales afin que l'IA n'essaie pas pénétrer complètement dans le joueur parce qu'elle essaie de se rendre à sa position exacte, qui n'est pas ce que nous voulons, elle veut qu'elle se déplace vers une certaine distance. OK. Ensuite, nous passerons à attaque de l'IA qui inflige des dégâts au joueur. 63. 60 Ajuster le mouvement de l'IA vers le joueur: Maintenant, si vous revenez dans les dossiers une fois de plus et qu'à l'intérieur des dossiers, il devrait y en avoir sous le joueur, vous remarquerez que nous avons créé un dossier spécifique pour les dégâts dans les boîtes réservées au joueur. Nous allons faire la même chose pour l'ennemi de mêlée À l'intérieur de cela, nous allons créer un nouveau dossier, et ce dossier sera endommagé dans les boîtes. OK. Permettez-moi de cocher deux fois cette case, pas les cases. OK, abîme cette boîte. OK. Je veux garder le même nom pour que tout soit similaire entre les deux. OK, maintenant que cela est disponible, apportons quelques ajustements pour que l'ennemi au corps à corps, au lieu d' atteindre la position exacte du joueur, puisse atteindre les joueurs En gros, il ne devrait pas essayer de pénétrer dans le lecteur, d'accord ? Il essaie de pénétrer dans le lecteur. n'est pas ce que nous voulons. Nous voulons qu'il s' arrête juste à l'extérieur du joueur. Nous voulons donc qu'il laisse toujours un peu d' espace devant le joueur. Maintenant, nous allons le faire en utilisant un nœud différent, et ce nœud s'appelle get distance two. Cherchons-le donc. Obtenez la distance deux. Nous y voilà. Cela nous donne la distance par rapport au personnage d'un joueur, d'accord ? Nous allons donc utiliser ce nœud. C'est la distance d'obtention jusqu'au nœud. Déplaçons donc d'abord tous ces nœuds destinés à déplacer l'acteur, le faisant avancer un peu. Donc, ce que nous voulons faire, c'est qu' après l'outil de déplacement simple, nous voulons vérifier la distance de base au personnage du joueur. Et après cette vérification de distance, nous voulons arrêter tout mouvement actif. Donc, la façon dont nous allons procéder est, tout d'abord, de les espacer un peu plus rapidement , car nous devons effectuer quelques vérifications. OK. Nous devons donc également prendre de la distance, et l'autre acteur sera le héros qu' il détectera. D'accord ? Ce sera l'autre acteur. Et aussi, permettez-moi de le déplacer encore plus vers la gauche parce que nous aurons besoin d'un peu plus d'espace, d'accord ? Nous déterminons donc la distance qui du héros, puis il essaiera de renvoyer une valeur. Ensuite, ce que nous voulons faire, c'est à partir de la valeur de retour, nous allons la faire glisser vers l'extérieur. Nous voulons rechercher une valeur inférieure à. Nous voulons donc rechercher une valeur inférieure ou égale à. OK. Et après cela, inférieur ou égal à, fixons un montant. Supposons que le montant soit de 150 unités. Ensuite, nous allons créer une branche simple et après cette branche, si c'est le cas, voyons voir. Donc, en gros, si la distance est inférieure ou égale à 150 unités, ce que nous voulons, c'est que le joueur se trouve à cette distance, n'est-ce pas ? C'est dans les 150 unités. Nous voulons essentiellement arrêter de faire un mouvement, ce qui signifie que si la distance n'est pas inférieure à 150 unités, ce qui serait faux, nous le ferons glisser vers l'extérieur et nous le déplacerons également vers le mouvement simple. Il se déplacera donc si la distance est inférieure ou plutôt égale à 150 unités. Cependant, si c'est vrai, nous le ferons glisser vers l'extérieur pour imprimer une chaîne simple, et nous voulons que la couleur de la chaîne soit rouge. Cliquez, d'accord ? Et nous l'appellerons portée d' attaque parce que c'est essentiellement la portée d'attaque. Nous l'avons configuré de telle sorte que 150 comme chaque fois que le joueur se trouve dans un rayon de 150 unités, il sera désormais à portée d'attaque Il sera donc prêt à attaquer le joueur. Maintenant que tout est correctement configuré, faisons glisser le casting vers le héros ici. Passons donc en revue le code. Lors de la détection d'un joueur, le héros va déterminer la distance qui le sépare du héros et vérifier si elle est inférieure à 150. Si la distance n'est pas inférieure à 150, essayez simplement de vous déplacer vers l'emplacement du personnage. S'il est inférieur à 150, indiquez simplement que vous êtes à portée d'attaque. OK, donc avec ça, faisons rapidement une compilation sur Play et faisons une vérification rapide. U, se trouve à portée d'attaque. Mais une distance de 150 semble trop petite. Portons ce chiffre à 500. OK. Maintenant à une distance de 500 que nous utilisons pour vérifier. Hmm. Nous avons maintenant un petit problème. Donc, quand je bouge, j'essaie, d'accord ? Non, le contrôle ne fonctionne pas correctement. Voyons voir. OK, maintenant il s'arrête à une bonne distance. Maintenant, il s'arrête à la bonne distance. Maintenant, il s'arrête à la bonne distance. Maintenant, cela ne fonctionne pas correctement. Maintenant, cela ne fonctionne pas correctement. Maintenant, cela ne fonctionne pas correctement. Cela va nécessiter quelques ajustements. Essaie encore une fois. Non, ce n'est pas fiable. Passons maintenant à la résolution des problèmes de base. Comment effectuons-nous le dépannage ? Viens ici et appuyons sur Play. Je veux voir ce qui se passe. Hey, c'est bon, non ? OK. Le seul problème est donc que le simple mouvement fonctionne toujours. Il semble que le code fonctionne correctement car laissez-moi essayer de le démontrer. Quand j'arrive dans la bonne fourchette, attends. Attends une seconde. Il semble bouger et il fait en fait le bon choix en inversant le flux en désactivant également le mouvement simple. Mais ce qui manque, c'est ce mouvement ne s'exécute qu'une seule fois et qu'il est toujours en cours. Ce que nous voulons faire, c'est qu'une fois qu'il détecté qu'il se trouve à portée d'attaque, nous voulons arrêter. Voyons voir. Nous y voilà. Nous voulons arrêter les mouvements actifs. D'accord ? Alors cliquons immédiatement dessus. Il a donc plutôt ouvert la composante de mouvement du personnage et arrêté les mouvements actifs. Maintenant, avec cette configuration, testons à nouveau rapidement cela. Tellement parfait. Je bouge un peu. Oui, il fonctionne désormais correctement. Maintenant, réduisons cela de 500 unités à 150 unités. Faites une compilation rapide. Reviens ici. OK, donc ça s'arrête correctement maintenant. Un ? Non, mais ça ne fonctionne pas correctement maintenant. OK, attends. Permettez-moi d'augmenter les unités afin d'avoir une image plus claire. Permettez-moi de passer à 300 unités. D'accord ? OK, ça s'arrête. Ça s'arrête là. Ça s'arrête là. Ça s'arrête là. Ça s'arrête là. OK. Il ne fonctionne donc pas de manière fiable actuellement. Là, il s'arrête à la bonne distance. Ici, ça s'arrête là. OK. Arrêter le mouvement aide donc à le résoudre dans certains scénarios, mais pas dans d'autres. Ce que nous allons donc devoir faire , c'est apporter un autre changement. Maintenant que nous sommes là, nous l'avons configuré pour arrêter les mouvements actifs. Mais avant cela, nous devons également réorganiser un peu tout cela, réorganiser un peu tout cela assurer que tout est vraiment nettoyé Permettez-moi de rassembler ces informations pour obtenir de la distance et des branches afin que je puisse voir clairement ce qui se passe. Ce sera là, c'est bien. J'aime bien cette organisation. Et puis si c'est vrai, il se ramifie pour arrêter le mouvement actif. Maman, hum. OK. Mais s'il arrête le mouvement, pourquoi s'arrête-t-il à différentes distances ? C'est une question de vélocité. C'est une question de vélocité. Alors, comment modifier la vélocité ? C'est en fait assez simple. Nous utilisons Stop Active Movement, faites-le glisser vers l'extérieur. Voyons voir. Nous y voilà. J'ai ajouté un mouvement d' arrêt immédiat pour empêcher que cela n' avance une fois que nous l'avons fait. J'utilise donc à la fois l'arrêt immédiat du mouvement et l'arrêt du mouvement actif. Testons cela et voyons si cela va donner le bon résultat. OK. OK. Non Non Ah. Je vois. OK. C'est un bon début, mais il y a quelques autres ajustements que nous devrons apporter pour que l'IA suive le personnage et s'arrête à un endroit précis où nous travaillons correctement. Et je pense qu'une partie importante de cela consistera à ajuster le composant de pression C'est ce que nous allons faire dans la vidéo suivante. 64. 61 Ajustement du composant de détection et quelques notions de théorie autour du timing: Maintenant que nous sommes dans un endroit où nous pouvons nous diriger vers notre ennemi de mêlée Et parfois, il s'arrête à la bonne position. Parfois, il s'arrête trop tard et, vous savez, son mouvement fonctionne maintenant. Je dois sortir du code et des nœuds pour adopter une façon de penser un peu plus poussée. Chaque jeu dans le monde entier fonctionne avec un chronomètre. Ce chronomètre s'appelle la technologie. Maintenant, laissez-moi vous en parler. Laisse-moi imprimer une chaîne. Et je veux qu'il imprime les secondes Delta à chaque fois qu'il le faudra. Voyons donc à quoi cela ressemble. Où est le niveau de ce côté ? Non, je veux qu'il parte. OK. Alors, remarquez que ça tourne. À l'heure actuelle, vous voyez 0,008 comme minuteur de prise. Maintenant, qu'est-ce que cela signifie, ouvrons une calculatrice, non ? Maintenant, si nous en obtenons un et que nous le divisons par 0,0 083, nous obtenons 120 OK. Cela signifie que chaque prise est lancée toutes les 120 images environ, et nous pouvons le vérifier, n'est-ce pas ? En venant ici pour sortir, si on lui demande de montrer des FPS, non ? Notez que le FPS est d'environ 120 images. Tout ce que nous faisons est basé sur le chronomètre. Maintenant, laissez-moi appuyer sur Play. Vous remarquerez donc qu'il affichera le temps entre chaque image, qui est maintenant de 0,008 3 secondes. La variation de l' endroit où l'adversaire s' arrête dépend donc du timing. Maintenant, permettez-moi de revenir en arrière et de supprimer cette chaîne qui apparaît sur Te go away. Maintenant, je l'ai retiré. Si nous y allons et que nous vérifions la détection du joueur, accédez au panneau des détails. Laisse-moi ouvrir ça. Et nous verrons quelque chose ici. Attends, voyons voir, prendre les composants, c'est bien. OK. J'ai donc cliqué sur le composant de détection du joueur . Maintenant, venons-y. Notez qu'à l'heure actuelle, son intervalle de tic-tac est défini sur 0,0. Cela signifie qu' il sera réglé sur le même intervalle t que la fréquence d'images. Ce n'est pas vraiment zéro, mais c'est réglé sur cette base. Et maintenant, ce que nous voulons, c'est pouvoir ajuster cela et l' augmenter ou le diminuer. Ce n'est pas le plus important. Eh bien, voyons voir. Ici, nous détectons l'intervalle. Maintenant, l'intervalle de détection signifie essentiellement le temps qu'il faut entre le moment où le jeu vérifie ce composant. Il est donc maintenant réglé sur 0,5. Donc, ce que nous pouvons faire, c'est régler l' intervalle de détection à cinq. Ça fait cinq secondes entières. C'est beaucoup, d'accord ? Alors compilez ceci. Cela signifie donc essentiellement qu'il va continuer à le faire maintenant, un, deux, trois, quatre, cinq. Notez qu'il ne fait cette vérification que toutes les 5 secondes. Un, deux, trois, quatre, cinq, maintenant ça bouge. Nous pouvons également ajuster cet intervalle de détection pour lui donner un sens beaucoup plus rapidement. Nous allons le porter à 0,1. Rappelez-vous, ça a commencé à 0,5, d'accord ? Maintenant, entrons ici. Notez donc que maintenant à 0,1, il suit et s'ajuste à la bonne distance. La raison pour laquelle il le fait est que tout à coup, il vérifie deux fois toutes les 0,1 seconde que l'ennemi exécute le calcul et revérifie la distance qui le sépare du joueur. Permettez-moi donc d'ouvrir à nouveau le graphique des événements. Je fais un petit zoom arrière, mais vous pouvez, d'accord, me laisser zoomer sur l' impression de la chaîne, le moulage et la ramification Alors, appuyons rapidement sur Play. Je veux que tu voies à quelle vitesse il le fait, non ? Cela a complètement changé. Pass, c'est afficher des choses à l'écran. Maintenant, si je voulais partager cela, c'est parce que nous allons faire beaucoup de travail en utilisant différents systèmes de détection de points. Pour vraiment créer une bonne IA, nous allons devoir beaucoup travailler avec eux pour détecter la distance et prendre différentes décisions en fonction de la distance entre les personnages. Si le personnage est éloigné lors d' une attaque à distance, s'il est proche, vous pouvez configurer l'IA pour qu'elle s'enfuie. Ce n'est qu'un concept général de base. Maintenant que nous avons augmenté l'intervalle de détection à 0,1 seconde. Maintenant, le code fonctionne exactement comme nous le souhaitons d'un point de vue humain. Maintenant que nous avons cette configuration, nous l'avons configurée pour attaquer essentiellement à portée ou plutôt à portée d'attaque. Passons maintenant au code et ajoutons une animation à notre ennemi de mêlée, puis nous aborderons une animation à notre ennemi de mêlée, l' ajout d'une attaque et expliquerons comment prendre des décisions concernant les systèmes d'attaque 65. 62 Ajouter un sprite visible à l'ennemi en méloe: Maintenant, la prochaine chose que nous voulons faire est de vraiment changer notre ennemi de mêlée afin de pouvoir réellement le voir à l'écran Permettez-moi de le rapprocher du joueur afin que nous puissions voir rapidement les modifications. Nous voulons que ce soit réellement un ennemi, et pas simplement une boîte avec une barre de santé. Pour ce faire, nous allons examiner le plan de mêlée de l'ennemi. Nous allons sélectionner le cube, nous allons entrer dans ses détails Nous voulons rechercher rendu visible et le rendre invisible. Donc maintenant, nous ne devrions pas en voir, nous ne voyons qu'une barre de santé. C'est cool. Mais nous allons apporter un autre changement. Nous allons sélectionner le widget, entrer dans les détails. Et aussi, nous allons simplement le rendre invisible. Pour que vous le sachiez, nous n'avons plus qu'un ennemi vide de sens. que l'ennemi est vide, allons-y, et nous voulons maintenant commencer à ajouter des sprites en vue de les préparer Nous allons ajouter un composant, et ce sera un flip book. D'accord ? Ajoutons simplement un flipbook papier en tant que composant, et c'est là que nous mettrons tous nos sprites Maintenant, cette vidéo contient également des éléments de sprite que nous allons utiliser pour créer l'ennemi Vous pouvez les télécharger, puis continuer. Maintenant, ajouter les sprites va être assez simple. Tout d'abord, nous allons sélectionner toutes les images que nous avons importées et nous assurer que les paramètres de texture 2D du papier y sont appliqués. La prochaine chose que nous voulons, c'est sélectionner skeleton io, et nous voulons en extraire des sprites Après avoir cliqué sur Extraire les sprites, notez que NRL a déjà segmenté automatiquement les différents sprites et que nous avons Et nous y voilà. Maintenant, nous avons tous ces sprites squelettiques et inactifs déballés Nous allons donc les sélectionner , puis créer un Flip Book, qui se trouve là-bas, et créer un flipbook Et ça s'appelle Skeleton Idol One. Nous allons simplement le remplacer par me NMI, underscore idle. Bon, maintenant jetons un coup d'œil à Melee Enemy Idle. Voilà donc l'animation. En gros, le squelette se tient au même endroit. C'est une très bonne animation, et c'est ce que nous allons utiliser pour garder l'ennemi inactif. Maintenant que c'est fait, nous allons simplement le fermer. Nous allons sélectionner le classeur en papier que nous avons installé dans notre ennemi de mêlée Et nous allons changer le livre à sauce pour qu'on y aille. Nous voulons que l'ennemi au corps à corps soit inactif. OK. Maintenant que nous avons configuré le mode d'inactivité de l'ennemi au corps à corps là-bas, compilons Et quand on touche de la terre battue, regardez, il y a ce tout petit ennemi de mêlée là-bas Très mignon Maintenant ça marche. Nous avons montré qu'il s' affiche correctement. Ajustons la mise à l'échelle pour qu' elle s'adapte et soit plus logique. Je vais verrouiller la balance, la redimensionner en Y. C'est cool. Permettez-moi ajuster son positionnement pour qu'il soit un peu plus haut. Déplacez-le un peu vers l'avant, puis vers le bas. Sa mise à l'échelle actuelle est donc de 4,4. Permettez-moi d'en faire 4.5. C'est la mise à l'échelle. Compiler. Laisse-moi voir à quoi ça ressemble. C'est une bonne chose. Ensuite, revenez en arrière, sélectionnez le flip book, recherchez une ombre, et nous voulons le configurer pour qu'il projette des ombres, car pour le moment, il ne projette aucune ombre. Pour sélectionner Cast Shadow, compilez. Et maintenant, notre petit ennemi en deux D est là, projetant une jolie petite ombre. C'est cool. Et regardez, il se déplace correctement, de gauche à droite, de gauche à droite. C'est excellent. Maintenant que notre petit squelette là pour faire de petites choses, je pense qu' il faut le rendre un peu plus grand, vous savez, un peu plus intimidant Regardons son échelle. Permettez-moi d'augmenter l'échelle à six. Augmentez son couvercle vertical. Je dois regarder le sol, assurer qu'il touche juste le sol. Permettez-moi d'augmenter l' échelle à sept. C'est une bonne chose. Assurez-vous qu'il s' agit simplement de toucher le bas. Permettez-moi d'en parler juste une petite touche. Compiler. Voyons ce que nous avons ici. Ça a l'air beaucoup mieux. Regarde ce squelette. D'accord ? Le seul ajustement que je vais faire est de le réduire légèrement. Voyons voir maintenant, 30 ans. 20 ANS ? Non, je veux que sa position Z soit environ 28. Non, déposez-le vers le bas 27. Cela devrait convenir à peu près. Ajustez jusqu'à ce que vous ayez fini de l'aimer, d'accord ? Ajustez à votre convenance. OK. Ajustez à votre convenance. C' est bien, et je l'aime bien. Maintenant que nous en avons terminé, faisons un dernier ajustement. Hum, non, restons-en là. Nous avons donc maintenant un ennemi squelette de base capable de suivre le joueur partout. Ensuite, nous allons travailler à le joindre, à le configurer dans Paper Zed et à lui donner une véritable animation de course afin qu' il poursuive le joueur. Allons-y 66. 63 Ajouter des animations de marche dans PaperZD: OK, maintenant que nous avons l'illustration de base, pimentons-le et ajoutons cette fonctionnalité plus dynamique. Donc, la première chose que nous allons faire, c'est une configuration très similaire à celle qui a été faite avec le lecteur. Nous voulons trouver le composant d'animation papier Z D. Et avec la configuration de ce composant d'animation, appelez-le simplement animation paper Z. Ensuite, nous déciderons, d'accord, l'instance d'animation, nous en parlerons plus tard, qui rend le composant le mieux. Nous voulons utiliser le paper flip book comme composant de rendu, et maintenant il recherche simplement une classe d'instance d'animation. Nous allons donc créer cela. Donc, dans le dossier Melee Enemy, passez à l'animation, et nous allons créer, voyons voir, nous voulons une instance d' animation Voyons ce que sont les articles a. Voici les journaux par jour. Nous voulons commencer par créer une sauce d'animation, que nous appellerons melee em animation sauce OK. Et après cela, nous l'avons enregistré. Ensuite, nous voulons créer un plan d'animation. OK. Et c'est là que l'on demande : OK, quelle sera la sauce pour les parents en matière d'animation ? Nous voulons que la sauce d'animation Melee NEM en soit la mère. Et nous l'appellerons Animation BP, un ennemi de mêlée. Nous garderons le nom propre. Maintenant que nous avons configuré ces deux éléments, nous allons commencer par entrer dans la source de l'animation. Nous voulons ajouter une nouvelle séquence d'animation. Nous appellerons cette séquence inactive. OK. Comme vous pouvez le constater, nous l'appelons inactif. Sélectionnez maintenant l'animation Idle. Nous voulons tout d'abord, je ne sais pas pourquoi cela s'est ouvert là. Nous voulons une fenêtre complète. Ensuite, quelles données d'animation nous voulons rendre mon travail inactif. n'utiliserai donc pas l'identifiant de l'ennemi au corps à corps, et voici l'animation Il joue proprement. Ça joue proprement. C'est une bonne chose. Maintenant que c'est fait, nous allons revenir en arrière, nous assurer que tout est sauvegardé. Voilà donc ce qu'il y a dans la sauce de l'animation. Ensuite, nous passerons au Blueprint d'animation de mêlée de l'ennemi. Nous avons accès à l'ennemi de mêlée en tant que variable. Nous allons nous assurer que, depuis le graphique des événements du plan d'animation M Enemy, vous voulez lancer Mel Enemy Et puis, en ce qui concerne l'objet, nous voulons avoir l'acteur propriétaire. Et si nous avons obtenu le propre acteur c'est parce que vous avez plusieurs ennemis de mêlée et que chaque code d'animation doit être exécuté séparément. Ensuite, nous voulons simplement passer au statut de variable et la variable est ennemi de mêlée C'est tout ce dont nous avons besoin pour nous installer. OK. Maintenant, avec toute cette configuration, passons au graphique d'animation. Donc, à l'intérieur du graphique d'animation, la première chose que nous voulons faire est de créer une toute nouvelle machine à états. Cherchons donc une machine à états, ajoutons-en une nouvelle, et nous allons simplement l'appeler Mele Enemy pour que les choses restent vraiment simples Ce sera notre nouvel État. Apportez-le ici, nous y reviendrons, et nous partirons directement de l'extérieur, nous le traînerons. Nous voulons ajouter un nouvel état d'animation, que nous appellerons simplement idle. Et double-cliquez sur Idle. Et nous voulons vraiment simplement rechercher play idle, qui est l'animation, la seule dont nous disposons. Jusqu'à présent, connectez-le, sortez-le, contrôlez et, bien sûr, sauvegardez puis compilez. Maintenant, bien que cela soit compilé et prêt, nous avons essentiellement notre papier Z entièrement configuré. Nous allons revenir au graphique d'animation. Donc, à l'heure actuelle, dès qu'il démarre, il passe directement au ralenti. Ensuite, passons à autre chose et ajoutons l' animation de mouvement ou l'animation de course. Maintenant, l'ajout de l' animation en cours est basique. Nous allons simplement commencer, nous allons revenir en arrière, nous remettre à l'art. Oh, pas du personnage. Nous voulons l'art de l'ennemi au corps à corps. Et à l'intérieur de l'œuvre, remarquez qu'il y a m. Voyons voir. Nous avons W ici. Il y a une promenade en squelette. OK. Nous allons donc simplement sélectionner le squelette. Nous voulons extraire des sprites. Ils sont automatiquement coupés. Ensuite, le sprite ambulant les sélectionnera simplement et créera un flipbook, que nous appellerons le flipbook nous appellerons le flipbook OK. Voici donc l'animation du travail de l' ennemi au corps C'est un beau petit travail que fait l'ennemi. Maintenant que nous avons cette animation de travail, nous allons simplement passer à source d' animation de l'ennemi au corps Nous allons ajouter une nouvelle séquence d'animation. C'est ce que nous appellerons le travail. Double-cliquez dessus, et pareil, nous voulons chercher du travail dans la séquence d'animation ici. Nous avons donc maintenant ajouté cette simple animation fonctionnelle. Une fois cela ajouté, nous reviendrons au plan d' animation Mele Nous allons le faire glisser et créer un nouvel état d'animation. Nous nommerons l'état W. À l'intérieur de l'état de travail, nous voulons jouer au travail. Ou l'animation de travail. Ensuite, nous voulons reconnecter le lien entre le travail et le mode veille. Et une fois que nous serons entrés, nous aurons simplement l'ennemi de l'ASM. Ensuite, nous voulons obtenir de la vélocité. OK, nous voulons obtenir de la vélocité. Voici cette composante de get velocity, divisez-la et nous voulons faire une nouvelle vérification rapide. C'est la vélocité X que nous recherchons, et nous voulons voir quelque chose. Nous voulons donc voir si c' est égal à, et nous voulons dire non égal à. Nous utilisons donc la fonction not equal to, qui est cette fonction. Et pour passer de l'inactivité au travail, ce que nous sommes en train d'établir, une fois que la vitesse sur l' axe X est supérieure à zéro, elle peut commencer à fonctionner, mais en revenant ensuite à pied à exactement égale à. En d'autres termes, exactement égal à zéro. Cela devrait devenir un travail. C'était ma faute. Ici, accédez à la classe d'instance d'animation et sélectionnez le plan Mele Enemy Animation Enregistrez, compilez, et maintenant voyons voir. OK, tu peux voir, il y a cette façon de marcher et de fanfaronner. Regardez-le poursuivre l'ennemi. Une fois qu'il atteint, il s'arrête. Maintenant, notre ennemi est capable de voir le joueur, travailler dans sa direction et de s'arrêter. Sympa. Nous avons donc cette configuration correctement. Notre animation de base de référence Me Enemy est correctement configurée. Et maintenant, nous pouvons ajouter une attaque à l' ennemi au corps à corps. Allons de l'avant. 67. 64 Ajouter un sprite d'attaque en més-mêlée: Maintenant que nous avons notre personnage ennemi qui peut balader et se déplacer vers le joueur ennemi une fois que le joueur devient visible La prochaine chose que nous voulons vraiment faire , c'est de faire une base attaque de base pour que l'ennemi puisse infliger des dégâts au joueur. Au fur et à mesure de l'attaque, nous allons apporter d'autres ajustements au système de mouvement pour qu'il reconnaisse mieux la position du joueur et qu'il s'adapte pour qu'il se rapproche de lui. Donc, ce que nous allons faire, c'est venir ici. Nous allons commencer par sélectionner l'attaque du squelette, et après nous être assurés qu' elle possède les deux réglages D du papier, nous allons extraire les sprites Et il semble que cette fois, Unreal Engine ait du mal à déterminer les dimensions des sprites Donc, actuellement, l' extraction des sprites est réglée sur automatique. Je vais changer cela parce que l'auto ne suffit pas. Nous allons le configurer sur le réseau. Maintenant, en tant que grille, nous devons déterminer la largeur et la hauteur des cellules. Maintenant, c'est un moyen facile de le faire. Maintenant, cela va fonctionner pour cette image spécifique. Pour commencer, permettez-moi de zoomer un peu. Nous savons que l'attaque en compte un, deux, trois, quatre. OK, cinq, six, sept, huit, neuf, dix, 11, 12, 13, 14, 15, 16, 17, 18 images, d'accord ? Il y a donc 18 cadres ici. Donc, pour les déterminer à 18, nous savons qu'à l'heure actuelle, chaque largeur de cellule est définie sur 774 Maintenant, nous allons faire quelques calculs et mathématiques de base. Bien entendu, lorsque vous fabriquez vous-même les sprites, vous n'avez pas besoin de faire ces calculs Mais si vous utilisez des actifs, vous devrez parfois le faire. Nous avons donc 774/18, soit 43. Nous allons donc changer la largeur à 43. Et maintenant, nous avons des sprites parfaitement coupés. OK. Juste avec ça. Maintenant, nous allons passer à l'extrait et à l'extrait. Et sans perdre de temps, nous allons créer un flipbook, et nous allons l'appeler Mele EM Let's see Melee OK, ça devrait être parfait. Maintenant, avec cette configuration, d' accord, nous avons notre attaque ennemie au corps Revenons maintenant dans le dossier des ennemis de mêlée. Je voudrais passer à l'animation, et ouvrons à nouveau la sauce à l'animation et le plan d' OK, Animation sauce, ouvrez le plan d'animation. Maintenant, dans la source d'animation, nous voulons ajouter une nouvelle animation, que nous appellerons simplement attaque. Nous allons faire en sorte que les choses restent simples. Maintenant, attaquons, nous allons analyser les bonnes données d'animation, et nous allons chercher une attaque ennemie Ça y est. C'est l'animation de base de Me Enemy Attack. Tellement inactif. Attaque de marche. C'est plutôt cool. OK, laisse-moi prendre ce coup de fil. Et maintenant, nous avons ajouté cette animation d'attaque. La prochaine chose que nous allons faire, c'est m'ouvrir à nouveau, mon ennemi, ouvrir la classe de plan ennemi de mêlée Nous allons maintenant revenir, réorganiser la logique et réfléchir au moment où nous voulons que l'ennemi attaque le joueur et assurer que les nœuds situés ici permettent attaquer le joueur dans le bon espacement, et nous allons également ajuster mouvements de l'ennemi afin que l'ennemi se déplace beaucoup plus lentement afin que le joueur puisse s'enfuir . C'est ce que nous allons faire. 68. 65 Aperçu de l'IA de Melee Enemy et commentaires sur le code: C'est bon. Au fur et à mesure que nous approfondissons l'IA, vous avez configuré le mouvement, elle est capable de suivre le déroulement du jeu. Revenons à réfléchir aux choses à partir des principes de base. DCAA, code de conception chez Audio. heure actuelle, nous avons commencé avec du code juste pour vous donner une idée de la création et de la configuration de l'IA. plan fonctionnel, nous allons utiliser des systèmes de détection, à savoir les systèmes de détection de panoramique et de mouvement Ce sont ces deux éléments qui déterminent vraiment ce que ressent une IA. Alors revenons à la réflexion sur le design, d'accord ? Il s'agit donc d'un aperçu très simplifié de ce que nous allons faire avec l'IA. Il s'agit d'une IA NM de mêlée très simple. La première chose qu'il fait, c'est de patrouiller dans une zone. OK. Lorsque le personnage du joueur entre dans une zone, l'IA semble être en train de patrouiller dans une zone. Ensuite, il se dirige vers le joueur détecté et lance une attaque. Et la dernière chose à faire , c'est : hé, quand sa santé tombe en dessous de zéro, il meurt immédiatement, d'accord ? Il meurt tout simplement, ce qui est très bien. Voici donc ce que nous allons faire pour affronter l' ennemi de mêlée Il doit patrouiller dans une zone. Il doit se déplacer vers un joueur détecté et l'attaquer. Et puis une fois que sa santé tombe à zéro, il meurt. Passons à autre chose en gardant ces principes de base à l'esprit. Maintenant, nous sommes de retour dans le vrai moteur, et nous sommes dans le schéma directeur de notre simple ennemi de mêlée Maintenant, allons-y et examinons rapidement tous les différents nœuds. Donc, la première chose est que nous avons un pion de base , capable de détecter le joueur Allons-y vite. Il s' agit de la détection des joueurs. Ainsi, dans ce rayon autour de l'ennemi, il détecte le joueur. C'est une bonne chose. Maintenant, ajoutons rapidement un commentaire de base. Oh, mon Dieu. Non, non, non, appuyez sur C. Appuyez simplement sur C pour les commentaires. Il s'agit donc d'un simple commentaire, que nous appellerons «   détecter le joueur ». Donc, tout ce qu'il fait ici dans ce code est de détecter le joueur. C'est tout ce qu'il fait. Il ne fait rien d'autre. Comme d'habitude, j'adore les arrière-plans noirs avec du texte blanc. Je les trouve très faciles à lire et à organiser les nœuds. Voici donc la détection des joueurs. Il existe actuellement une chaîne qui détecte le moment où le joueur est visible. D'accord ? C'est une chaîne qui se déclenche une fois que cela a été détecté. Permettez-moi d'abord de les aligner, rétablir tous les liens, c'est bien Ensuite, il lance et vérifie si c'est le héros qui est bon. Et puis viens ici. Hey, amène ça ici. Commencez par ceci. En gros, il détecte le joueur, il lance et dit  : « Hé, d'accord, c'est le joueur. C'est cool. Il s'agit de la base de référence de l'IA. Il est capable de détecter le joueur, puis jusqu'à une certaine distance, il se déplace vers le joueur. Réorganisons le mouvement. Apportez tout ça ici, emmenez tout ça ici. Et cette branche, je veux la laisser en dehors de cela parce que je veux la mettre dans un commentaire différent, assurer qu'elles sont toutes correctement alignées. OK. Viens par ici. Il s'agit du simple déplacement vers emplacement que nous avons utilisé pour déplacer l'IA, déplacer l'acteur du joueur, puis le contrôleur le déplace ici. Pour que nous puissions aligner la manette sur le côté gauche, puisque c'est la manette AI qui sera utilisée pour se déplacer, d'accord ? Donc, fondamentalement, nous détectons le joueur. Et une fois que nous saurons que c'est le joueur qui est le modèle du héros, c'est ce que nous utiliserons pour réaliser toutes ces autres actions. OK, c'est bien. Ensuite, il effectue une vérification de l'état de base pour voir si la distance par rapport au joueur est de 300 unités. Si la distance ne l'est pas, elle se déplacera vers le joueur. Si la distance est atteinte, il arrêtera tout mouvement, et il doit réellement exécuter l'attaque ou plutôt, dès maintenant, nous détectons qu'il est à portée d'attaque. Nous n'avons plus besoin de ce texto. Apportons-le ici. Maintenant, nous devons faire un commentaire ici. Nous allons donc récupérer cette copie et la coller ici, la faire glisser. Nous appellerons cette attaque le joueur à portée. C'est tout ce que ça fait. Il attaquera le joueur lorsqu'il sera à portée. Nous n'avons donc pas encore ajouté le code de l'attaque, mais nous allons nous y intéresser. Il est donc configuré pour attaquer le joueur lorsqu'il est à portée, et copions-collons ce commentaire pour des raisons d' organisation. Et cela va être déplacé vers le champ d'attaque. Du joueur détecté. Ah, non, non, pas besoin de majuscule L. Faites-en un petit L. Bien. Cela se déplacera donc vers la zone d'attaque du joueur détecté. Faisons-le glisser ici. Déplacez-le un peu vers le haut. Déplaçons ça vers le haut. Déplace ça un peu plus vers la droite. C'est une bonne chose. Donc, essentiellement, nous détectons le joueur lorsqu'il se trouve dans une zone détectable. Une fois cela fait, nous effectuons une vérification de base de la portée d'attaque. Si le joueur n'est pas encore à portée d'attaque, il se déplace vers le joueur pour essayer de se mettre à portée. Cependant, si le joueur est à portée d'attaque, nous commençons par arrêter tous les mouvements actifs, puis nous allons attaquer le joueur. Maintenant que c'est vraiment configuré en général, allons-y et ajoutons l'attaque que l'IA va effectuer contre le 69. 66 Ajouter une boîte de frappe de dommages pour une attaque en mése-corps avec un ennemi: C'est bon. Maintenant que notre code est raisonnablement organisé, allons-y et commençons à ajouter une attaque contre l'IA. Maintenant, la première chose que nous voulons faire, c'est savoir que nous allons apparaître dans notre boîte à tête. Donc, lorsque nous revenons et examinons l'animation en vérifiant la source de l'animation, gardons à l'esprit que cela varie beaucoup fonction du type d' animation que vous souhaitez. Maintenant, vous remarquerez qu'il inflige un arc de dégâts. Regarde cet arc. Découvrons image par image. Oh, vite, ouvre-le un peu. Retournons en arrière. Regardez ce bel arc de dégâts. Regarde ça. Donc, autour de la septième image, nous avons un grand arc de dégâts. C'est à ce moment-là que nous voulons faire du mal au joueur. Et vous pouvez voir la belle taille de cette arche, huit dollars, d'accord ? Maintenant que nous avons cette scène, d'accord, revenons à notre ennemi de mêlée, et nous devons décider de l'endroit où cette boîte à chat va apparaître Nous allons donc rapidement sélectionner le classeur en papier, d'accord. Et puis à l'intérieur de cela, nous voulons ajouter une simple collision, d'accord ? Et nous utiliserons une simple collision de boîtes. Maintenant, cette boîte est là, elle est trop grande. Réduisons-le plus petit. Pour le rendre plus petit, nous allons réduire son échelle à quelque chose comme 0,1, magnifique, puis nous allons le déplacer , nous allons déplacer sa position juste devant. Maintenant que c'est fait, je pense que je vais regarder cette animation une fois de plus. Oh, regarde ça. Il fait environ deux longueurs à l'avant, mais nous voulons avoir une grande boîte à chapeaux pour cela. Je pense donc que je vais le déplacer ici. Revenons-en à l'ennemi. Alors par ici, d'accord ? C'est une bonne position pour cela. Maintenant que nous avons vu, c'est là qu'il se trouve. Et puis pour la boîte, appelons-la Axe Swing. OK, nous l' appellerons x swing, non ? Emplacement. OK. Nous l'appellerons l'emplacement X Swing. Maintenant que nous avons configuré cet emplacement, la prochaine chose que nous allons faire est y ajouter une belle collision. Une belle, belle et grande boîte qui va être la grosse collision que nous aurons. Pour ce faire, contrôlons rapidement la barre d'espace. Donc, sous notre personnage de héros, remarquez que nous avions un dossier contenant une boîte de frappe endommagée. Nous allons maintenant affronter l'ennemi au corps à corps. Et l'ennemi de mêlée a également un dossier de boîte endommagé. À l'intérieur de ce dossier, nous voulons créer une nouvelle classe de plan vais être un acteur de base, et nous voulons l'appeler x swing at box. OK. Nous allons maintenant double-cliquer sur la case à chapeau X Swing. Et c'est ici. Nous avons une petite balançoire en X. Voici donc notre swing X de base. Nous devons maintenant ajouter une vraie boîte d'adresse. Nous allons donc ajouter une sphère parce que le X swing at box sera une sphère, et nous allons réduire sa taille à environ 0,5 sur l'échelle. Et c'est à peu près la taille. Tout le reste n'est pas si important, d'accord ? Maintenant que nous avons configuré le X Swing at Box, compilons-le et revenons à notre ennemi de mêlée, d'accord ? Et nous revenons au graphique des événements. Et ce que nous allons faire, un camion vient de passer. Quoi qu'il en soit, ce que nous allons faire, c'est le faire entrer ici Donc, ce que nous voulons faire, c'est entrer et dire : « Hé, acteur filé SP AWN OK, filez l'acteur de la classe, et nous voulons sélectionner la classe comme X swing at box. OK, x swing. Boîte. Et puis, en ce qui concerne le c pour obtenir l'emplacement, tout ce que nous voulons faire, c'est trouver l'emplacement de la balançoire de hache, le faire glisser ici, puis nous faire glisser ici, voulons le localiser dans un endroit sauvage. Oh, va-t'en, va-t'en. Faites-le glisser vers l'arrière. Obtenez la position dans le monde. OK, nous voulons connaître son emplacement, et ce sera sa transformation. Bien, bien, bien, bien, bien. Mets-le ici. Et si je me souviens bien, oui, ça va sûrement le transformer en vecteur. Nous y voilà donc. C'est donc essentiellement tout ce que nous voulons qu'il fasse, d'accord ? Maintenant, tout ce que nous avons fait est de le configurer que le joueur détecté passe à portée d'attaque. Une fois qu'il sera à portée, il fera immédiatement apparaître le x swing at box. Maintenant, pour vous assurer et tester que cela fonctionne correctement. Oui, ça y est. Il apparaît dans cette boîte à chaleur. Il le fait apparaître immédiatement. Mais ce que nous allons faire maintenant, c'est passer à la boîte à chaleur X Swing. Nous allons augmenter son échelle à un. OK. Hmm. Taille raisonnable, taille raisonnable. Je pense que c'est une taille raisonnable pour le hit box. Maintenant, juste pour vérifier rapidement, voici l'animation. Maintenant, revenons-en au plan de mêlée de l'ennemi. Non, nous y reviendrons. C'est donc la boîte à succès en ce moment. Revenons donc à l'ennemi de mêlée. Réduisons la portée à laquelle il va s'arrêter. À l'heure actuelle, il en est à 300 unités. Réduisons ce chiffre à 150. Retournez dedans, faites un autre test rapide. OK. C'est donc là que le hit box s'arrête. Maintenant, nous allons revenir à la boîte à succès X Swing. Nous allons modifier les propriétés de cette sphère et nous allons entrer en collision. Et pour le moment, il est configuré pour bloquer toutes les dynamiques. Nous allons définir cela comme un chevauchement, le tout étant dynamique. Faites une compilation rapide. Voyons à quoi cela ressemble maintenant. OK, donc ça se chevauche. Donc, une fois qu'il atteint 150 unités du joueur, il le fait. C'est une bonne chose. C'est une bonne chose. Ce sont des dégâts suffisants. Maintenant, c'est plutôt une position suffisante pour lancer l'attaque. Maintenant que c'est fait, ajoutons également le code pour réduire celui du joueur. Maintenant, dans le but d'accélérer notre développement, je suis revenu à l'attaque à l'épée du joueur, puis je vais essentiellement copier tout ce code, copier, passer au X swing, puis le coller ici Bien sûr, ce code ne fonctionnera pas de l'intérieur, mais il va nous montrer comment tout faire. N'oubliez donc pas que cela ne fait que lorsque les composants commencent à se chevaucher. OK ? Passez à l'objet que vous voulez qu'il inflige des dégâts, appliquez les dégâts puis détruisez l'acteur ou, si l'événement ne dure qu'une image, détruisez l'acteur. Nous sommes en train d'apporter quelques modifications. Pour commencer, les dégâts que nous pouvons infliger sont les mêmes pour le moment, nous retirerons le lancer pour attaquer les dégâts inutiles, et nous supprimerons le chevauchement des cubes Il suffit d'infliger des dégâts, détruire l'acteur et, le cas échéant, de le détruire. C'est tout ce dont nous avons besoin. Maintenant, avec ça, nous allons passer à la sphère. Nous ajouterons l'événement et nous l' appellerons lorsque le composant commence à se superposer. Cet événement a maintenant été ajouté. Nous avons ajouté le composant de superposition. Maintenant, à partir de là, ce que nous voulons vérifier et voir , par hasard, que nous atteignons le héros. Commencez donc par le casting de base du héros. En d'autres termes, si nous touchons le personnage du joueur, c'est ce que nous voulons voir si nous nous chevauchons Donc si c'est l'autre acteur, c'est bien. En tant que héros, vous allez incarner l'acteur endommagé. Et c'est parti. Cela devrait donc être essentiellement tout ce dont nous avons besoin pour qu'il fasse des dégâts correctement. Donc, lorsque les composants commencent à se chevaucher, c'est la sphère. C'est cette boîte à chaleur X Swing, nous lançons sur le héros, en lui infligeant dix points de dégâts, et c'est l'acteur des dégâts. En fait, augmentons ces dégâts. Dix points, c'est un peu nul. Augmentons les dégâts à 25, d'accord ? Juste pour toi, idée x swing. Tu es spécial. Maintenant, nous allons compiler. Une fois cela compilé, revenons en arrière et voyons s'il fonctionne correctement. Ah, nous y voilà. Pas mal Maintenant, bien sûr, il l' a fait plusieurs fois, ce qui n'est pas ce que nous voulons. Mais vous pouvez voir qu'il continue d'apparaître dans cette boîte à chaleur et qu'il tue notre joueur. C'est une bonne chose. Cela signifie que notre balançoire fonctionne correctement, mais que c'est plutôt la balançoire de la boîte qui fonctionne correctement. Ensuite, nous allons nous assurer qu'au lieu de le voir apparaître immédiatement, l'ennemi passe par tout le cycle d' animation de son attaque et qu'il apparaisse dans cette boîte à chaleur à hache unique Pendant l'attaque, nous allons associer l' apparition de la boîte à chapeaux d'attaque à l'animation C'est ce que nous allons faire dans la vidéo suivante. 70. 67 Lier l'animation d'une attaque avec le code pour l'ennemi més-mêlé: Maintenant que nous avons ajouté la zone de dégâts de base pour l'ennemi de mêlée, assurons-nous de la configurer telle sorte que lorsque l' ennemi attaque, nous jouions cette belle animation d' attaque C'est où ? Oui, cette animation. OK ? Cette belle animation d' attaque époustouflante. Donc, dans le plan NEM de mêlée, nous voulons créer une toute nouvelle variable Maintenant, à l'intérieur des variables, ajoutons une variable appelée x swing attack. Ensuite, nous ajouterons une autre variable. OK. Et nous appellerons cette variable « attaque ». Maintenant, ces deux booléens vont faire quelque chose de très, très basique Maintenant, l'attaque X Swing que nous allons configurer pour démarrer l'animation X Swing puis l'attaque E indiquera à l'IA qu'elle est indiquera à l'IA qu' actuellement dans une animation d'attaque ou dans un état d'attaque, et nous l' utiliserons plus tard pour ajuster certains comportements de l'IA. Une fois que vous aurez ajouté ces deux Bolans, tout cela aura beaucoup de sens une fois que nous serons entrés dans le code Ensuite, nous avons notre ascension chez box. Nous voulons donc le configurer de manière à ce qu'il arrête tout mouvement actif. Ajoutons-le juste après avoir arrêté tous les mouvements actifs. Mais avant de passer à l'attaque à l'épée, nous allons passer à l'attaque au coup de hache Faites-le glisser ici. Nous voulons définir une attaque x swing, et nous voulons l'activer. Nous allons donc activer l'attaque Axe Swing, d'accord. Et quand l'attaque X Swing est activée, ce que nous voulons, c'est attaquer. Et nous voulons nous placer en attaque. OK ? Nous y voilà donc. Vouloir jouer, c'est attaquer. Mais là où nous le voulons, apportez-le ici. Voyons voir, Set attaque. Faisons-le traîner ici. Nous allons donc nous lancer à l' attaque ici. Donc, immédiatement, nous avons dit : « Hé, nous attaquons, l' IA attaque, et elle devrait utiliser l'attaque X Swing ». C'est la base de référence. Maintenant, pour éviter que cela ne se rejoue plusieurs fois, je voulais jouer une fois, nous allons dans cette branche OK Et nous allons créer une autre succursale ici. Gardez à l'esprit que nous utilisons les branches ici juste pour des raisons de simplicité, d'accord ? Maintenant, c' est ici que nous allons le configurer. Donc, juste après avoir détecté au joueur si l'ennemi au corps à corps se trouve dans la bonne zone d'attaque, nous allons le connecter ici Et puis, si c'est faux, il le fera. OK ? Si c'est faux, cela va continuer à attaquer le joueur lorsqu'il est à portée. OK ? Permettez-moi de faire avancer un peu, car nous devons l'étendre beaucoup, l'étendre. Nous ajoutons de plus en plus de code. Donc, en gros, si le joueur attaque, s'il n'attaque pas, il portera tout cela, et il mettra son attaque sur « oui », et il lancera l'attaque avec la hache, et elle apparaîtra dans la zone de frappe, d'accord ? Cependant, si c'est faux, cela ne devrait rien faire. Maintenant, nous allons passer à l'attaque. En d'autres termes, nous allons lancer l'attaque, traîner jusqu'ici, nous l'obtiendrons, et nous la connecterons ici. Il ne doit donc être joué qu'une seule fois. Maintenant, faisons un bref aperçu avant de faire quelques tests de base. Cela permettra de vérifier si le joueur est dans la bonne zone pour attaquer. S'il n'attaque certainement pas déjà, il exécutera maintenant tout ce code, mais il se préparera à attaquer et il mettra l' attaque C swing sur positive, et elle apparaîtra dans cette boîte à chaleur Maintenant que tout est dans son état actuel, passons rapidement au niveau du développeur, et c'est ce qui s'est passé. Remarquez la perte de santé du joueur. Alors faisons-le. Boum, le joueur a perdu 25 % de ses points de vie. C'est ce qu'il fait et il l'a fait une fois. Avant, il créait plusieurs cases à cocher, maintenant il ne le fait qu'une seule fois. C'est suffisant pour commencer. Ensuite, ajoutons l'animation. Nous allons donc passer au plan d' animation de mêlée. Nous allons passer au graphique d'animation, et nous allons entrer dans l'état ennemi au corps à corps Donc, pour le moment, il est réglé sur inactif et prêt à fonctionner. Il ne nous reste plus qu'à créer un nouvel état d'animation. Et nous appellerons plutôt cela animation. Appelons-le x swing. Appelons-le simplement X Swing Attack. OK ? Nous l'appellerons simplement X Swing Attack. Ensuite, nous passerons de l'attaque inactive à l'attaque au coup de hache, et nous passerons du travail à l'attaque réelle. Nous n'avons même pas besoin de nous déplacer pour nous absenter du travail. La raison pour laquelle nous supprimerons cela, nous allons simplement nous connecter depuis le mode veille. Et si nous n'avons besoin de nous connecter inactifs, c'est parce que l'IA s'arrête toujours complètement avant de commencer à balancer la hache. Maintenant, quand on regarde le code, remarque qu'il arrête d'abord tout mouvement, puis qu'il commence à attaquer. OK ? Ce qui signifie qu'à ce moment-là, sa vitesse de déplacement doit être nulle. Nous n'avons donc pas à nous inquiéter de le faire depuis le travail, car les joueurs travaillent. Mais en général, vous les empêchez de mourir, même si c'est pour une fraction de seconde , puis les animations d' attaque sont diffusées. Maintenant, double-cliquons sur x swing, et nous voulons simplement jouer à Attack à partir d'ici. OK. Et vous verrez que cette animation s' appelle attaque. Maintenant, dans le plan maintenant qu'il est prêt à lancer l'attaque, nous avons besoin condition pour le faire passer de l'inactivité à l'attaque, nous avons besoin d'une condition pour le faire passer de l'inactivité à l'attaque, et la condition deviendra un ennemi de mêlée Ensuite, nous voulons vérifier X Swing Attack. Nous avons une attaque X Swing, et nous voulons voir, hé, est-ce exactement égal à Okay. Est-ce exactement égal à « Oui, alors jouez à l'animation X Swing Attack » ? C'est tout ce que ça va faire. Nous avons actuellement un moyen faire passer de x swinging à idle, mais nous voulons juste le tester Maintenant, il fait l' animation X Swing. Regarde ça. Regarde comme ça tue le joueur ennemi. C'est un bon petit squelette Evo. Bon petit endosquelette. Bravo. Maintenant que c'est configuré pour cela, nous devons simplement relier l'apparition dégâts à une image d'animation, ce qui est assez simple Nous allons donc passer à Melenemy et nous allons vous faire apparaître l'acteur de la boîte à succès, et nous allons créer un événement personnalisé OK. Nous ajoutons donc un événement personnalisé. Nous appellerons cet événement ou nous l' appellerons simplement Axe Swing, c'est le seul nom que nous allons lui donner. Maintenant que cet événement est arrivé, nous allons faire glisser tout ce code permettant de apparaître cet acteur dans Box, et nous allons le connecter d'ici, puis nous reviendrons ici et nous romprons ce lien, d'accord ? Donc, la seule chose qui va s'étendre dans la boîte à chaleur c'est cet événement personnalisé X Swing. OK. En fait, changeons-le car X swing ne suffit pas. Appelons-le X Swing Hit Box. OK ? C'est comme ça que nous allons l'appeler. Et puis, bien sûr, comme Good Little Citizens, nous allons ajouter une zone de commentaires, et nous allons l'appeler , nous allons taper le commentaire, apparaître en X swing case afin de pouvoir facilement savoir ce qui sur la case afin de pouvoir facilement savoir ce qui se passe Donc, avec cet événement, si nous revenons au niveau, remarquons qu'il ne fait plus de dégâts car la boîte de tir a été supprimée. Revenons maintenant au plan d'animation. Et ce que nous allons faire, c'est y aller, voyons voir. Non, nous devons accéder à la source de l' animation. Nous y voilà. Nous allons passer à l'animation d' attaque et jouons rapidement à l'animation d'attaque. Sympa. Maintenant, nous allons y aller, non ? Ici, boum, juste là quand il fait le découpage. À l'endroit où il fait le découpage, nous allons ajouter une notification. Nous allons ajouter une nouvelle notification et nous allons l'appeler XSwingHTBX C'est le nom de la notification. Maintenant que cette notification est configurée, nous allons revenir au plan d'animation Me Enemy Nous allons passer à la notification. Voilà XSwingHTBx qui est bon, puis nous allons entraîner Devenez un ennemi de mêlée, puis nous le traînerons, puis nous voudrons utiliser la boîte à chapeau X Swing C'est pourquoi il est important de tout nommer d' une manière logique. Vous n'avez donc pas besoin de trop réfléchir à ce que vous faites. C'est tout simplement simple. Nous savons donc qu'il s'agit de la boîte X Swing it, et la voici. Donc, avec cette configuration, nous allons compiler et maintenant jouons. Boum, boum, ça fait des dégâts. Boum, encore des dégâts. Boom, euh, le joueur est mort. Sympa. Et c'est pour nous. Nous avons donc Sepuldon. Refaisons cette sortie. Je tue le joueur, le tue. Bien. Le joueur est donc mort. Maintenant, pourquoi. La raison pour laquelle cela fonctionne si efficacement et je recommande toutes ces méthodes est que nous avons séparé la position de l'animation de la hitbox. Nous avons séparé l' animation des dégâts. Tout est séparé afin que nous puissions l'ajuster séparément. Peut-être que vous voulez ajuster la zone de frappe, vous pouvez l'ajuster. Vous pouvez ajuster l'animation et modifier l'emplacement de la zone de frappe. C'est juste un bon game design en général, je le recommande vivement. Quoi qu' il en soit, maintenant que nous l'avons configuré pour que l'ennemi puisse réellement se diriger vers l' endroit où se trouve le joueur et commencer à infliger des dégâts. La prochaine chose que nous voulons, c'est apporter quelques ajustements. Maintenant, vous remarquerez que quand je craque, ça essaie vraiment de venir et de continuer à attaquer. Remarquez que quand je m'enfuis, il joue toujours cette animation. OK ? Nous ne voulons pas qu'il fasse cela. Nous voulons séparer le mouvement du moment où il lance l'attaque. Nous voulons ajouter un peu de délai lorsque l'ennemi décide d'effectuer différentes actions. C'est le meilleur moyen d'avoir une bonne IA dans votre jeu. C'est ce que nous allons faire dans la vidéo suivante, avec quelques ajustements de l'IA. 71. 68 Ajouter une fonction de réinitialisation de l'état d'attaque: C'est bon. Maintenant que notre IA est capable de comprendre quand elle attaque, ne nous reste plus qu'à ajuster le timing, d'accord ? Ce n'est donc pas comme courir partout en faisant ce que l'on veut. OK. Donc tout d'abord, l'ennemi au corps à corps, position ascendante, la collision, le chevauchement, tout est dynamique, accord, je ne sais pas ce que nous rencontrons. Mais il y a quelque chose que nous sommes en train de rencontrer, oui, le flipbook papier qu'il a créé pour bloquer tout ce qui devrait résoudre le problème Maintenant je peux, je ne sais pas ce qui en est la cause. Mm. OK. Je n' aime pas ça. Je n'aime pas ce que font les caméras. Sinon, cela pourrait être un personnage de héros. Je vais donc passer à la caméra du héros, la caméra, puis vérifier sa collision. Voyons voir. OK, j'ai vérifié. Ce n'est pas l'appareil photo. C'est le bras à ressort. C'est le printemps. Je vais sortir. En ce moment , il fait un test de collision. Je l'ai désactivé pendant le test de collision. Je veux m'assurer que cela a cessé. OK, c'est beaucoup mieux. Bien mieux. C'est ce que je préfère. OK, donc on peut juste passer en revue les gens. Va-t'en, va-t'en, va-t'en, c'est bien. C'est très bien Quoi qu'il en soit, c'était juste une chose rapide. Maintenant, fondamentalement, nous voulons que le mouvement et les actions de l'IA aient, faute de meilleur terme, un peu plus de sens, d'accord ? Alors c'est ce que nous allons faire, d'accord ? Lorsque l'IA se déplace et commence à attaquer le joueur, nous allons effectuer une double vérification de base de la distance entre le joueur et le pion Et puis une fois qu'il dépasse une certaine distance, nous supposons que le joueur s'enfuit ou qu'il est sorti de la distance où il peut être attaqué. Ensuite, à ce moment-là, nous allons désactiver l'animation de l'attaque. OK, c'est l'aperçu général. Nous allons donc affronter l'ennemi au corps à corps. Je viendrai par ici. Et puis juste ici, autour du passage à la zone d'attaque, juste après le simple déplacement vers le lieu, alors qu'il fait son déplacement vers le lieu, puis la prochaine chose qu' il va faire, en fait, la première chose qu' il va faire, c'est de le dire ici OK, nous allons donc faire une simple vérification. Je vais faire une simple vérification des succursales. Et au sein de cette branche, nous allons demander si elle attaquait. D'accord ? Nous allons attaquer. En d'autres termes, à l'heure actuelle, le joueur est hors de portée d'attaque, mais l'IA attaque toujours. OK. Comme il s'agissait toujours d'une attaque, la première chose que nous voulions faire de définir une attaque x swing. Non, alors pourquoi me montre-t-il tout cela ? Oui, nous voilà parés à Swing Attack Off. OK. Maintenant que nous avons activé x swing attack two, attendez, allons-le un peu plus loin, donnez-lui plus d'espace. Juste après avoir déclenché l'attaque X Swing, elle se déplacera simplement vers sa position. Cependant, s'il n'attaquait pas, il lui suffira de se déplacer vers l'emplacement. Il s'agit d'une logique de code simple de base. D'accord ? Très basique. Revenons donc au plan d'animation de mêlée, au graphique d'animation, à l'état de l'ennemi au corps Nous allons donc venir ici et nous allons lancer l'attaque X Swing. OK, et nous allons d'abord le laisser tel quel. Venez ici, principalement de l'animation animée, bla, bla, bla, bla, bla Principalement de l'animation, nous allons avoir l'attaque X Swing. Et pour passer de l' inactivité au swing de hache, il suffit que l' attaque x swing soit égale à vraie. Cependant, pour passer d'une attaque X Swing à une attaque inactive, nous voulons avoir l'ennemi au corps à corps Nous voulons obtenir une attaque X Swing. OK, nous avons droit à l'attaque X Swing. Et aussi, nous allons faire attaquer le A, OK. Ensuite, ce que nous voulons faire c'est vérifier deux choses. Pour commencer, nous voulons dire égal à. Je veux vérifier si le swing attaque plutôt. Je veux voir, voyons voir. La logique doit être stricte. La logique doit être stricte. Si l'attaque Aswing est fausse, elle peut entrer dans cette transition Faisons une vérification rapide. OK, ça s'est arrêté maintenant. OK. Mais cela crée un autre problème. Cela ne va pas revenir dans l'animation. Remarquez donc que c'est une attaque. OK. Redémarrez, il attaque. Cependant, s'il attaque et que nous sortons de la zone d'attaque, lorsqu'il revient à portée d'attaque, boum, il n'est plus capable d'attaquer. OK. Je devrais sérieusement me laisser désactiver ces notifications de discorde OK, c'est comme ça que ça marche en ce moment, et puis quand tu t'enfuis, les animations fonctionnent correctement. Maintenant, pour que cela fonctionne, c'est exactement ce que vous devez faire. commencer, à l'intérieur de l'ennemi au corps à corps, vous allez l'organiser de telle sorte que, juste après, je puisse zoomer Juste après avoir vérifié la distance, nous bifurquons et vérifions pour voir si condition d'attaque est le pouls, il continuera à effectuer le mouvement. Cela permet de garantir qu'il ne commence bouger qu'une fois que l'animation de l'attaque s'est déroulée en quatre. Ensuite, assurez-vous, bien sûr, que la branche d'attaque normale existe. Maintenant, remarquez qu'à la fin de l' attaque, le code d'animation commence, à droite, I attack est défini sur yes, et l'attaque CSwing est définie sur yes Maintenant, en plus de cela, vous allez ajouter un simple état de réinitialisation de l'attaque. Nous allons commencer par un événement personnalisé appelé Attack Stat Reset. Et à l'intérieur de cela, il réinitialise ses statistiques d'attaque, et l'attaque cswing est également reprogrammée pour être Et cela se trouve juste à l'intérieur du plan de mêlée de l'ennemi. Et puis à l'intérieur de la source d'animation, d'accord ? Accédez à l' animation de l'attaque et, à la fin, ajoutez une notification connue sous le nom de réinitialisation de l'état de l'attaque. Une fois cette notification, cette notification est bien entendu configurée à la toute fin de l'animation, à la toute fin. Après avoir configuré cette notification, accédez au plan d'animation de l'ennemi au corps à corps Et sous le notificateur de réinitialisation de l'état d'attaque, ajoutez la réinitialisation de l'état d' attaque par notification de réception, afin qu'il fasse appel à cette fonction de réinitialisation de l'état d' attaque. Et une fois que vous avez tout ce set, lorsque l'ennemi s' approche du joueur, il est capable de lancer l'attaque, mais le joueur peut s'enfuir. OK. Maintenant, dans la vidéo suivante, nous allons apporter une modification simple car maintenant le joueur peut simplement avancer alors qu'il n'en est plus capable, comme vous pouvez le voir, le joueur n'est plus en mesure subir des dégâts d'ici, et l'ennemi ne fait demi-tour qu' une fois que le joueur a parcouru une certaine distance. Nous voulons l'ajuster pour que le personnage ennemi soit toujours orienté dans la direction du joueur. D'accord ? Boom, non, allons-y. OK, c'est bon. C'est ce que nous allons faire. Petit ajustement lors de la prochaine 72. 69 Empêcher le joueur de pouvoir maîtriser l'IA: Bien, nous voulons donc empêcher le joueur de tout tromper en écrasant nos ennemis Un moyen simple de le faire est donc que la collision entre les capsules est actuellement réglée sur le préréglage de collision du pion Nous pouvons essentiellement le configurer comme quelque chose d'aussi simple que de bloquer toute compilation dynamique, afin de ne pas perturber la disposition des niveaux Assurez-vous que cela doit réellement être sur le terrain. Je n'aime pas sa position quand il est dehors ou là. Maintenant, le joueur ne peut plus simplement traverser l'ennemi au bulldozer, il doit vraiment sauter par-dessus Mais maintenant, avec cette simple modification, sélectionnons le personnage. OK, c'est notre héros. Sélectionnez le mouvement de son personnage, sélectionnez Sauter. Actuellement, la vitesse de saut Z est fixée à 840. Nous allons porter ce chiffre à 900. OK. Faisons une vérification rapide. Oui, c'est stupide. 909 000 centimètres/seconde, ce n'est pas ce que nous voulions. Voyons voir. Réglons cela à 9 mètres/seconde. Parfois, Unreal Engine, parfois Unreal Engine, change les chiffres d'une manière qui n'a aucun sens pour moi Il y a eu de meilleurs flux, juste une variable. Quoi qu'il en soit, maintenant nous sommes capables de sauter par-dessus l'ennemi, mais nous ne pouvons pas nous contenter de le traverser au bulldozer OK ? Ça devenait un peu fou. Maintenant que c'est réglé, nous pouvons passer à autre chose 73. 70 Nerver l'ennemi en més-méprise avec l'IA: C'est bon. Dans l'état actuel, nous avons donc un simple ennemi de mêlée qui attaquera le joueur OK, il arrive et attaque le joueur. Ce qui est plutôt raisonnable. OK. C'est cool. Cependant, notez qu' à chaque fois qu'il attaque, il recommence immédiatement à poursuivre le joueur. Nous voulons intégrer des éléments à l'IA une fois qu'elle a fait quelque chose, laisser ralentir un peu et retarder sa prochaine action pour donner au joueur plus de temps pour réagir. Passons donc à l'ennemi au corps à corps, et nous allons maintenant séparer un plus grand nombre de ses capacités. Pour commencer, Clear est visible. Cette ficelle, nous allons nous en débarrasser. Nous n'en avons pas besoin actuellement. Et la prochaine chose que nous allons faire est d'entrer dans le niveau. Nous allons réduire la portée de visibilité, donc ce sera beaucoup plus clair. Je sélectionne donc sa détection des joueurs. Et je vais augmenter sa portée de détection. Actuellement, il est défini sur un rayon de 1 000 sites. Je vais réduire la portée de détection, son rayon de visée à 600. OK. Juste pour qu'une grande partie de ce qui se passe soit un peu visible. OK ? Alors maintenant, le joueur doit être dans les 600 unités. Le prochain NaF qui lui sera attribué sera celui de sa vitesse de déplacement, du mouvement du personnage Ensuite, recherchez la vitesse. Sa vitesse de travail maximale est donc actuellement de 600. Nous allons le réduire à 450. OK. Donc quatre à 50 centimètres/seconde, ce qui signifie que c'est désormais nettement plus lent que Il détecte donc le joueur, mais le joueur peut facilement sauter par-dessus et s'enfuir. Remarquez que le joueur est sur le point de s'enfuir. Maintenant, il se dirige vers le joueur, mais nous l'avons ralenti. Ce sont des nerfs de simplification de base, d'accord, parce que vous ne voulez jamais cela, vous ne voulez jamais , vous savez, que votre ennemi soit trop difficile pour le joueur. Remarquez donc qu'il doit se mettre à portée, puis il attaque, il doit se mettre à portée, puis il attaque, mais le joueur peut s'enfuir. Le joueur peut s'enfuir avant que son animation d'attaque ne soit terminée. OK ? Ce ne sont donc que quelques nerfs de base. Le nerf de la vitesse de déplacement et l'animation sont donc déjà suffisamment lents pour que le joueur puisse raisonnablement le contrer en s'enfuyant. OK ? C'est juste pour donner un petit bonus aux joueurs Maintenant que c'est fait, allons-y et faisons en sorte que chaque fois que le joueur attaque l'ennemi, celui-ci chaque fois que le joueur attaque l'ennemi, soit immédiatement étourdi, afin que le joueur soit capable de lancer sa triple attaque à l'épée et de brûler l'ennemi à mort. Entrons dans le vif du sujet. 74. 71 Animation de la mort pour l'IA et quelques théories de logique: Maintenant que nous avons quelques points de base en main, ce que nous voulons vraiment, c'est que, pour commencer, lorsque le joueur inflige des dégâts à l'ennemi, nous ne voulons pas qu' il continue d'attaquer En gros, c'est un peu suffisant. Nous voulons qu'ils entrent un peu dans le hit stern pour que le joueur puisse réellement obtenir son combo. Nous savons maintenant que pour ce faire, nous devons ajouter une animation de statère thermique à nos petits squelettes là-bas. Passons donc à l'art de notre ennemi de mêlée, et nous voulons trouver Skeleton Dead. OK, et le squelette a été touché. Maintenant, si nous regardons la chaleur du squelette, elle est essentiellement préréglée avec, par exemple , « Oh, elle a subi un petit dommage dû à la chaleur, puis elle revient au ralenti. Il s'agit d'une animation informatique de base. OK. Revenons donc ici. Donc, si le squelette est touché et que le squelette est mort, c'est le squelette qui tombe. OK, tu peux le voir là-bas. Le squelette tombe en fait. Maintenant, par souci de logique, nous n'utiliserons que le squelette mort pour cette animation. OK ? Nous allons donc sélectionner le squelette mort et configurer les actions des sprites Nous voulons extraire tous les sprites. Maintenant, vous pouvez voir que tous les sprites sont là lorsque nous zoomons. Il existe plusieurs sprites. Mais sortons-le de l'automatique et remettons-le dans le réseau. Maintenant, ce sont une, deux, trois, quatre, cinq, six, sept, huit, neuf, dix, 11, 12, 13, 14, 15 animations différentes. Nous devons donc diviser la largeur de la cellule par 15. Ouvrons donc notre calculateur très rapidement. Donc 495/15 c'est 33. Nous allons donc faire en sorte que la largeur de cellule 33 pixels, extraire ces sprites Ensuite, nous allons créer un flip book, et nous l'appellerons. Nous allons dire que c'est mort. On va juste dire que c'est mort, d'accord ? Il s'agit donc de l'animation morte actuelle. Vous pouvez le voir là-bas, 15 films par seconde, d'accord ? C'est l'animation. OK ? C'est cool. Permettez-moi donc de faire une pause et de passer en revue image par image. Vous pouvez donc voir que ça commence par devenir blanc, d'accord ? Elle devient blanche. Puis il retombe un peu, puis il s'effondre. C'est donc là que la logique entre en jeu. Nous allons le configurer de telle sorte qu'aux alentours de la sixième image, avant qu'il ne commence à s'effondrer, nous procédions à un contrôle de santé de base. Si l'état de santé est bon, il redeviendra inactif, d'accord ? Cependant, si la santé est nulle ou plutôt nulle ou inférieure à zéro, elle s'effondrera, et ce sera la fin de notre joli petit squelette ennemi au corps OK ? Nous avons donc maintenant cette animation. Jouons-y d'abord. Il est donc configuré pour se déplacer à 15 images par seconde. Mais je pense que nous devons le ralentir un peu ou le ralentir à environ 20 images par seconde. Ah, ça accélère les choses. Toutes mes excuses. Ralentissons à une dizaine d' images par seconde. Donc ça en prend un coup. Ça en prend un coup. Ça en prend un coup. OK. Remettons-le à 15. Nous reviendrons plus tard en fonction de l'apparence et de la sensation des choses. Maintenant que nous avons configuré cette animation, revenons à notre source d'animation, et nous voulons ajouter une nouvelle séquence d'animation, et nous appellerons la séquence d'animation, papa. Nous allons le garder, vous savez, nettoyer les noms, les garder propres. En ce qui concerne les données d'animation, nous recherchons Dead on Flipbook Voici donc l' animation des morts-vivants. Regarde ça. Plutôt cool. Maintenant que nous avons terminé de configurer l'animation ici, revenons en arrière. Revenons en arrière et jetons un coup d'œil. Revenons à notre ennemi de mêlée. OK, nous allons revenir à notre réflexion ici, Animation graph. Passons au plan d'animation de l' ennemi au corps à corps. Sélectionnez l'ennemi de mêlée, et nous voulons maintenant avoir un nouvel état d'animation Et cet état d'animation va s'appeler Dad. Effectuez un zoom arrière. Faites un zoom arrière, revenez en arrière, changez le nom. On dit que c'est mort. Et nous allons le traîner ici. Donc, d'une attaque inactive à une attaque en X, nous pouvons passer immédiatement à la mort, d'accord ? Et mort, nous allons passer au type d'animation play dead, donc il va commencer à jouer l'animation morte. OK, c'est vraiment ce que ça va faire. Compilons rapidement. Maintenant, il n'est lié à rien. La prochaine chose que nous allons faire est relier et de le configurer de manière à ce qu'il joue chaque fois que l'ennemi le prend 75. 72 Rendre la barre de santé de l'IA visible et quelques ajustements avant de passer à l'étape suivante: C'est bon. Désormais, grâce au pouvoir du voyage dans le temps généralisé, le joueur peut attaquer le mannequin d'attaque et sa santé finira par atteindre zéro OK ? Il n'est pas encore prêt à mourir, mais nous sommes capables d'attaquer l'ennemi plutôt que d' attaquer l'ennemi et de réduire sa santé. Certaines choses ont été modifiées. Premièrement, pour attaquer le joueur à l'épée, modifiez ses dégâts de base d'environ 25, augmentez-les à 40, afin qu'il inflige plus de dégâts. Ensuite, pour la hache, balancez-la dans la boîte, réduisez les dégâts à un. C'est juste pour que nous puissions faire quelques tests sans que cela ne tue le joueur très rapidement C'est à peu près ce qu'il faut faire pour cela. Ensuite, dirigez-vous vers l'ennemi au corps à corps et créez un nouveau commentaire Ce commentaire s'intitule « headstater » sur le fait de subir des dégâts, mais nous voulons nous assurer de le configurer de manière à ce que l'ennemi subisse réellement mais nous voulons nous assurer de le configurer de manière à ce que l'ennemi subisse réellement des dégâts visibles, car il veut que sa santé soit révélée Pour que l'état de santé apparaisse, la première chose à faire est de revenir au widget, revenir au widget et de le configurer pour qu'il soit visible. Réglez-le pour qu'il soit visible comme vrai. Une fois cela fait, il ne reste plus qu'à organiser et configurer ces plans Dans ce commentaire, nous commençons par un événement : chaque dommage, puis une variable atteint stan et nous allons faire une chaîne d'impression de base indiquant que les dégâts sont en cours. Ensuite, nous allons créer une autre chaîne d'impression, qui va taper les dégâts plutôt que la santé de l'ennemi. Maintenant, si nous y retournons, remarquez que vous voyez Dammi Health ici Pour que cela soit révélé, rendez-vous dans My Blueprint et il y a un paramètre, puis affichez variables héritées car la variable DamiHealth est héritée de Maintenant, nous utilisons beaucoup la santé de Dami ici. Pour commencer, nous obtiendrons les points de vie de dammi, et nous déduirons le montant des dégâts de l'événement Nous le soustrayons donc simplement en définissant dammi health. Il y a une soustraction en cours. C'est notre nouvelle satanée santé. Une fois que nous avons terminé, nous venons chercher le widget auprès de l' ennemi au corps à corps et nous le traînons vers l'extérieur. Et puis nous obtenons le widget qui se trouve à l'intérieur, qui est, bien sûr, une dammi health bar Et une fois que nous l'aurons placée dans la barre de santé dammi ici, tant que barre de santé dammi, nous allons bien sûr cibler la barre de progression de dammi Health, et nous la définirons comme le pourcentage de 100 en utilisant le pourcentage défini à partir de la barre de progression de dammi Health, et nous utiliserons le damiHealth divisé par 100, et ce sera la santé que nous aurons Et avec toute cette configuration, le joueur pourra infliger des dégâts à l'ennemi et nous pouvons voir la barre de santé baisser. Avec toute cette configuration, passons maintenant à l'ajout de la logique Hit Stern. 76. 73 Ennemi més-mépris et Mort tout en un: Maintenant, pour ajouter le nombre de têtes au jeu, lorsque nous sommes dans le plan ennemi au corps à corps, notez qu'en cas de dégâts, nous avons configuré cette variable appelée headstater lorsque nous sommes dans le plan ennemi au corps à corps, notez qu'en cas de dégâts, , et nous l'avons configurée pour qu'elle soit vraie Maintenant que nous avons cette configuration, nous allons passer au plan d'animation Me Enemy, et nous allons le configurer de telle sorte que, de l'attaque à la hache, il puisse passer à l'animation morte, et tout ce dont nous avons besoin c' est d'ASMleeEnmy Nous voulons vérifier que Headstan Get est en ligne. Nous voulons vérifier qu'il est inférieur à égal. D'accord. Nous l'avons fait plusieurs fois. Cela devrait être facile pour toi maintenant. Et tant que le nombre de coups est égal à positif, on peut passer d'une attaque à une animation, vous savez, jouer à The Dead. Alors faisons-le. Donc je t'attaque. Il fait donc maintenant l'animation morte. Remarquez, une fois qu'il est touché une fois, il attaque, il attaque. Mais une fois qu'il est touché une fois, il joue l'animation morte. D'accord ? C'est cool. Maintenant, c'est parfaitement bien. Mais revenons au plan d'animation. Nous voulons également qu'elle puisse passer de l'animation morte à l'animation inactive. Mais nous allons le configurer comme ça. Maintenant, la raison pour laquelle ça passe du X balancement OK, à la mort. Et la raison pour laquelle il devrait également être capable de passer du mode inactif à l'état mort, nous le configurerons plus tard, c'est parce que dès qu'il se trouve dans la zone de dégagement, il commence à faire le x swing Mais on l'atteint, il commence à jouer l'animation morte, et cette animation est cette animation qui montre qu' elle s'effondre Mais nous ne voulons pas qu'il joue toujours l'animation morte s'il n' est pas encore réellement mort. Nous allons donc venir ici. Voyons voir un, deux, trois, juste avant qu'il ne commence à s'effondrer Vers la fin de la cinquième image, nous allons créer une nouvelle notification. Nous allons donc ajouter une notification. Nous ajouterons une nouvelle notification, que nous appellerons Meleem heads OK, on l'appelle juste Melee Enemy Headstand. Et c'est comme ça que nous allons l'appeler. C'est le notificateur. Maintenant que nous sommes en train de le faire , l'ennemi bat la tête, d'accord ? C'est vérifié là-bas. Passons maintenant à l'État et remarquons-moi . Enemy Headstand avertit ici, à l'intérieur du plan Et ce que nous voulons faire, c'est nous transformer en ennemis. Maintenant, la prochaine chose que nous voulons faire est de créer une fonction. Et cette fonction sera la fonction DST de mêlée de l'ennemi D'accord ? Maintenant, revenons au plan de mêlée de l'ennemi, j'ajoute une zone de commentaire, puis nous allons appeler ce frappeur une vérification d' aide. Tu peux l'appeler. Honnêtement, vous pouvez changer cela de plusieurs manières. Voyons voir, ce n'est pas un problème que j'appelle Melanem Headstart. Disons que c'est le bilan de santé de mon chef. Donc, chaque fois que le joueur est en tête, il l'exécute plutôt que l'EM est Head Stan, il effectue cette vérification. Ensuite, nous allons créer un nouvel événement, et ce sera un événement personnalisé, d'accord ? Maintenant, juste pour être sûr que les noms sont exactement les mêmes, cela s'appelle mele ENM hit Stern. Nous allons l'appeler. Nous allons lui donner le nom d'ici. Mele N hit Stern. Maintenant, nous avons ce check du frappeur ennemi fonctionne plutôt ici, cet événement personnalisé Maintenant, que voulons-nous faire dans cet événement personnalisé, n'est-ce pas ? Donc, ce que nous voulons faire, c'est ce que nous voulons vraiment faire, c'est mettre fin à cette satanée santé D'accord ? Nous voulons donc retrouver santé et faire un bilan de base, d'accord ? Donc, ce que nous voulons voir, c'est voir inférieur ou égal à. Et est-ce inférieur ou égal à zéro, d'accord ? Ensuite, nous allons faire une branche de base. Une branche très basique. Maintenant, si l'état de santé du mannequin est inférieur ou égal à zéro, nous voulons le définir de manière à modifier la propriété de la variable Hetster D'accord ? Donc, si la santé de l'ennemi est inférieure à zéro, ou égale à zéro, cela signifie que l'ennemi de mêlée est réellement mort. Donc, si c' est vrai, c' est simple, nous le laisserons tel quel c' est simple, nous le laisserons tel , nous le laisserons tel quel. D'accord ? Cependant, si c'est faux, ce que nous allons faire, c'est mettre la tête baissée. D'accord ? Oh, je ne suis pas en train de taper. Réglez le bandeau installé dans le bandeau pour qu'il soit éteint. Maintenant, si nous le faisons, c'est parce que nous voulons activer le headstater parce que nous voulons l'ennemi sorte de l'animation du headstater Maintenant, cela ne fonctionnera pas actuellement car remarquez pour le moment qu'il n'est pas encore prêt à fonctionner. Je les ai frappés une fois qu'ils sont encore debout. Maintenant, pour que cela fonctionne, nous devons tout d'abord configurer l'événement ici. Nous voulons créer un centre commercial ennemi, l' installer dans le plan d' animation figurant dans la notification Parfait Il est maintenant configuré dans le Notify. Cela ne devrait toujours pas fonctionner, mais vous devez vous assurer que même avec l'événement, il est correctement configuré. D'accord. Ensuite, nous voulons revenir au plan d'animation dans le graphique d'animation, et nous voulons pouvoir passer de XSwing à l'animation morte, en passant également de l'animation inactive à l'animation morte Je vais simplement copier exactement le même code depuis AxSing, car la logique est exactement la même chaque fois qu'il est en mode Headstand, puis nous double-cliquons sur l'animation morte et sur le play dead, nous allons la configurer pour qu'elle ne tourne pas En d'autres termes, il s'agit d'une animation qui ne se joue qu'une seule fois. D'accord ? Alors maintenant, il ne tourne plus en boucle. Maintenant qu'il n'est plus en boucle, je peux passer de l'état mort au ralenti dans un cas où, si le frappeur est égal à off, il repasse directement au Et si le frappeur est égal à off, il peut revenir directement en arrière. Passons à l' attaque si elle est désactivée. D'accord. Il dispose donc des deux itinéraires. Alors jouons maintenant. Remarquez que maintenant, nous l'avons debout, laissez-moi le refaire. Maintenant, il peut attaquer. Si je le touche, il commence à attaquer, mais il recommence à attaquer et il est capable de s'en prendre à nouveau au joueur. Des têtes, puis c'est debout. Mais cette fois, c'est l'animation qui se joue. J'espère que cela a du sens. J'ai fait de mon mieux pour décrire la logique complète. S'il vous plaît, si rien n'a de sens, revenez en arrière et regardez à nouveau la vidéo Je veux que cela fonctionne correctement, mais plus que cela, je veux aussi que cela ait beaucoup de sens. Maintenant, l'ennemi peut désormais être tué. Donc un, c'est la tête debout, un, deux, trois, maintenant c'est la tête debout, et maintenant elle est morte. Nous l'avons configuré correctement pour qu'il meure correctement. Maintenant, dans cet esprit, nous ne voulons pas que ces flics restent là pour toujours. D'accord ? Donc, ce que nous allons faire, c'est le configurer à l'intérieur de l' ennemi de mêlée de telle sorte que si cette condition de dammi est égale ou inférieure à zéro, nous voulons également qu'il y un délai de 0,2 seconde, c'est parfaitement bien, mais je pense que c'est un peu trop court Mais alors nous allons simplement détruire l'acteur, et ce sera le soi. Donc, compilons rapidement ceci. Compilez bien. Non, non, non, compilez. Tout d'abord, sauvegardons tout et vérifions-nous que toutes les modifications sont correctement enregistrées. Ceci est compilé. Alors ça a encore frappé, mort. Et puis, boum, il a disparu du monde. Et c'est une méthode globale très simple pour le configurer de telle sorte que l'ennemi puisse entrer dans Headstan lorsqu'il subit des dégâts OK, mais recommencez à attaquer, mais il peut toujours entrer dans Head Stan, et maintenant il est mort. Maintenant, avec cette configuration, ce très bon système pour Headstart, nous pouvons simplement avancer et apporter d'autres ajustements Il y a plusieurs directions différentes que vous pouvez prendre. Pour commencer, nous pouvons maintenant faire exactement la même chose pour le personnage du joueur et le configurer dans Headster Nous pouvons faire exactement la même chose pour les autres ennemis, puisque la logique devrait maintenant avoir du sens pour vous. Avec cette configuration, passons à l' ajout de plus de code dans notre jeu. Ensuite, nous allons faire quelques nettoyages et ajustements, vérifier rapidement tout ce qui concerne l'ennemi, ajuster certains chiffres, puis passer à un autre type d'ennemi pour vous 77. 74 Configuration du classement d'ennemis: Maintenant, commençons rapidement avec un bel ennemi à distance dans notre jeu, car nous avons l'ennemi de mêlée ici Mais pour le moment, nous n'avons pas besoin de vous pour le moment, nous pouvons donc simplement vous le laisser dans le monde entier pour y revenir plus tard, mais pour le moment, supprimons-le simplement Nous n'en avons pas besoin pour le moment. Mais ce que nous allons faire, c'est créer un tout nouveau dossier, appeler ce dossier ennemi à distance et créer deux dossiers à l'intérieur, l' un appelé animation, l'autre intitulé art. Maintenant, dans le cadre de l'art, vous allez avoir quelques sprites de base qui vous seront fournis dans le cadre de ce projet, afin que vous puissiez les utiliser pour apprendre Vous pouvez également utiliser votre propre animation si vous êtes un très bon artiste, et nous pouvons commencer à créer l'ennemi à distance Une fois que vous aurez configuré ces deux dossiers, la prochaine chose que nous allons faire est de passer aux personnages. Nous allons revenir à l'attaque, bon sang, et la prochaine chose que nous voulons faire, c'est créer un plan pour enfants, d'accord Et nous allons appeler le plan un ennemi à distance. OK ? Nous allons chercher ce petit enfant. Nous allons le couper. Et je veux essentiellement le déplacer. Voyons voir, utilisons move, voulons utiliser move. Nous allons venir ici, nous allons le récupérer, et nous allons l'entraîner vers ennemi à distance et nous voulons nous y déplacer, nous voulons le déplacer Maintenant, notre ennemi à distance est ici. Maintenant, quand je double-clique sur l'ennemi à distance, laissez-moi le faire entrer ici Nous avons ici notre gentil petit ennemi à distance pratiquement prêt à partir La prochaine chose que nous allons faire, bien sûr, est de sélectionner le cube sur lequel nous rechercherons une collision. Nous allons le régler pour qu'il n'y ait pas de collision. Ensuite, en ce qui concerne la visibilité, nous la rendrons invisible car nous n'avons vraiment pas du tout besoin de cet Ube. Mais nous y voilà. Il existe une barre de santé simple et basique, et le graphique des événements est actuellement complètement vide. C'est un excellent point de départ pour nous. Maintenant que c'est fait, passons à autre chose et ajoutons l'animation de base afin que nous puissions réellement avoir quelque chose à examiner lorsque nous examinerons notre arrangement 78. 75 animations simples en inactivité pour l'ennemi à portée de main: ajout de l'animation inactive de base à l'ennemi à distance sera donc à l'ennemi à distance très similaire à façon dont nous l'avons fait pour l'ennemi au corps à corps Maintenant, juste pour m'assurer que nous faisons tout correctement, je vais ouvrir le plan de l' ennemi au corps à corps, d' Maintenant, dans le même ordre d'idées, la toute première chose que nous allons faire est d'ajouter un article de flipbook en papier, Nous ajoutons donc simplement et nous voulons un flipbook papier. Le flip book en papier est donc maintenant ajouté. Maintenant que c'est ajouté, d'accord. Exactement de la même manière qu'à l'intérieur de l'ennemi au corps à corps, d'accord ? Maintenant que le flipbook papier est ajouté, la prochaine chose que nous allons faire est y ajouter une animation Nous allons donc passer à l'art. Non, pas dans The Mele Enemy. Passons à l'ennemi arrangé, à l'art, et nous avons quelques animations différentes, mais nous voulons l'animation inactive. Alors double-cliquez. Vous pouvez noter qu'il y a un , deux, trois ou cinq ou six sprites OK. Donc, essentiellement, nous voulons nous assurer d'extraire ces sprites Maintenant, ce que nous allons faire, c'est d'abord appliquer au papier deux réglages de texture D. En fait, appliquons-les à tout. OK. Maintenant, à partir de l'inactivité, je vais passer à Sprite Actions et je vais sélectionner Extraire Sprite Laisse-moi y revenir encore une fois. Tout d'abord, permettez-moi de tout enregistrer rapidement. OK. Donc, à partir du mode veille, il suffit de cliquer avec le bouton droit de la souris , puis d'accéder à Sprite Actions et d'extraire Sprite comme cela a été fait plusieurs fois Notez maintenant que le vrai moteur veut entrer et extraire manuellement le sprite Nous ne le ferons pas. Configurons-le sous forme de grille. Nous savons maintenant que ce sont un, deux, trois, quatre, cinq, six, des sprites OK. Donc, ce que nous allons faire, c'est simplement calculer que c'est 750/6, ce qui en fait 125. Nous allons donc faire en sorte que la largeur de cellule soit 125. Donc, en ce qui concerne la largeur de cellule, nous allons la définir sur 125 x 125. C'est ce que tu vois. C'est plutôt cool, non ? OK. Maintenant que nous l'avons , extrayons-le. Maintenant que tous nos sprites ont été extraits, nous allons simplement créer un flip book que nous appellerons ranged M underscore En gros, c'est comme ça que nous allons l'appeler. Regardons maintenant l'animation inactive. C'est une animation inactive assez cool, agréable et simple. Avec cette configuration d'animation inactive, revenons au plan de l' ennemi à distance Notre flipbook papier est là et nous allons simplement remplacer le flipbook source par une animation Idle à distance Ça y est. Donc voilà. Maintenant, si nous retournons dans le monde, juste à côté de notre joueur, nous ajouterons simplement un ennemi à distance Assurez-vous qu'il est réglé sur zéro. OK. Et bien, nous avons notre petite dame fantôme ennemie à distance juste là Elle ne fait rien, mais elle existe dans le monde en ce moment. Faisons maintenant quelques ajustements. Revenons donc à l'ennemi à distance. Ensuite, nous allons voir avec l'ennemi mêlé que nous atteignons l'échelle sept ce qui est de l'ennemi à distance, Pour ce qui est de l'ennemi à distance, passons d'abord à l'échelle quatre C'est très gros, très gros. À l'échelle de quatre, il n' existe même plus dans le monde. Donc, ce que nous allons faire, c'est commencer par relever le positionnement de ce classeur en papier, arrêter ça. Maintenant que nous l' avons soulevé, compilez. Maintenant, c'est encore trop gros. Réduisons-le à deux. Puis abaissez la position de la dame fantôme flottante. Et voyons voir maintenant. OK, c'est pas mal. À deux heures, ça a l'air plutôt raisonnable, mais ça semble quand même un peu trop petit. Voyons donc 2,52 0,5, ça a l'air correct Ça a l'air juste. Et maintenant, remarquez que si nous restons à l'intérieur, ça s'écaille. Ce que nous pouvons faire, c'est simplement sélectionner l'ennemi à distance. Et sur l'axe de voyons voir, sur l'axe Y, nous pouvons simplement le déplacer de dix unités. Nous allons donc le déplacer à moins dix, disons. Maintenant, c'est en arrière-plan. Ils ne sont donc pas exactement sur le plan des pixels, et vous pouvez simplement les ajuster car à moins dix, ils ne scintillent plus Techniquement, il ne devrait plus scintiller même à un point négatif, car ces sprites ont une épaisseur d'un pixel OK ? C'est ainsi que vous pouvez vous débarrasser de tout chevauchement de pixels. C'est une façon assez simplifiée de le faire. OK. Mais maintenant, nous avons notre NEM arrangé avec une animation de base en mode inactif Nous allons maintenant ajouter un simple projectile que l' ennemi à distance lance sur le joueur C'est ce que nous allons faire dans la vidéo suivante, puis nous irons plus loin en ajoutant plus d'animations et de vie à cet ennemi à distance. Allons-y 79. 76 Génère un projectile qui va à l'emplacement du joueur lors du lancement: OK, maintenant notre ennemi à distance existe, vous pouvez le toucher et il subit des dégâts, mais il ne peut pas simplement subir des dégâts Il doit infliger des dégâts au joueur. Donc, pour nous assurer que cela inflige des dégâts au joueur, créons un objet capable de suivre la position du joueur et de lui infliger des dégâts. Maintenant, dans le dossier des ennemis à distance, comme nous l'avons fait partout ailleurs, créons un dossier appelé Damage it box, dans lequel nous allons ajouter un plan Dirigez-vous vers l'ennemi à distance. C'est l' ennemi à distance en ce moment. Nous allons créer un nouveau dossier et nous voulons l'appeler damage it box. Dans ce dossier, OK, dans ce dossier, nous allons créer une nouvelle classe de plan, et nous voulons simplement créer un acteur de plan Et nous allons appeler cela un projectile ennemi. C'est comme ça que nous allons l'appeler. Et puis économisons rapidement. Donc, à l'intérieur du projectile ennemi, tout ce que nous allons faire, c' est ajouter une sphère rapide, d'accord ? C'est tout ce que nous voulons, cette sphère de base. Alors compilons rapidement. Alors maintenant, lançons rapidement le projectile ennemi dans le monde. Apportez-le probablement quelque part. Donc voilà. Il y a une grosse tache ici, d'accord ? C'est le projectile ennemi. Donc ce que nous voulons, c'est que le blob se déplace vers le joueur, d'accord ? Donc, pour que cette sphère se déplace vers le joueur, allons dans le projectile ennemi et allons-y Passons rapidement à son graphe d'événements Mais avant de le faire, sélectionnez la sphère. Je sélectionne la collision, puis je sélectionne Superposer toutes les dynamiques de sorte que, vous savez, essentiellement avec la sphère, ne puisse pas sauter dedans et faire se déplacer dans le joueur sans bloquer l'espace. OK, avec cette configuration, retournez dans la sphère, accédez à son graphe d'événements, et commençons maintenant à le déplacer vers la position du joueur. OK. Maintenant, pour lui donner la bonne quantité de mouvement, nous allons d'abord lui ajouter une certaine propriété, à savoir le mouvement du projectile Nous avons donc maintenant ajouté le mouvement du projectile à la sphère Nous pouvons commencer à jouer avec son mouvement d'une manière bien intégrée dans un véritable moteur. Maintenant, les choses vont devenir un peu mathématiques, mais j'espère qu'avec votre connaissance d'Unreal Engine, puisque vous en êtes arrivé jusqu'ici dans le didacticiel, cela aura du sens Donc, la première chose que nous allons faire est de déterminer l'emplacement joueur, de déterminer l'emplacement de la balle elle-même, d'accord, de la sphère, et d'essayer de déplacer la sphère vers l'emplacement du joueur. OK ? C'est essentiellement ce que nous voulons faire pour le faire avancer vers le joueur. C'est donc la grande théorie globale. OK. Donc, la première chose que nous allons faire est de commencer par introduire le mouvement du projectile, de vouloir qu'il soit là et de nous assurer qu'il est configuré pour s'activer OK. Et nous le mettons sur le nœud Event Begin Play. Maintenant, le nœud Event Begin Play est fondamentalement le premier nœud appelé chaque fois que cet objet apparaît dans le jeu Je veux donc faire tout cela au moment où l'événement commencera à jouer. Maintenant c'est tout : redressez la connexion. Maintenant que c'est fait, il est activé. Nous avons activé le mouvement du projectile. La prochaine chose que nous voulons faire est de régler sa vélocité. Vous voulez régler la vélocité. Voyons dans l'espace, et c'est tout. Je veux régler la vitesse dans l'espace local et remarquer qu'il s'agit d'une composante du mouvement du projectile Laisse-moi le chercher et le mettre ici. Maintenant, je pense que la vélocité est actuellement réglée sur zéro, zéro. C'est ce à quoi nous assistons. Réglons-le sur un sur l'axe X pour commencer, compilons et voyons à quoi cela ressemble. Remarquez que ça va vers le bas. Cool. OK, alors revenez ici et nous allons le régler sur un, un, un pour des raisons de simplicité. OK. Il essaie donc de bouger, et il continue de se répandre dans le monde entier. OK. Nous devrons procéder à des ajustements plus importants. Maintenant, ce que nous voulons que soit cette vélocité, nous n'allons pas l'incliner et concentrer sur la vélocité Nous voulons en fait qu'il ait une valeur spécifique, qui est la valeur de la distance entre le joueur et l'objet lui-même. Ce que nous allons faire, c'est obtenir le personnage du joueur. Nous allons le récupérer et une fois que nous l'aurons obtenu, déterminons l'emplacement. OK, nous avons donc maintenant la position du joueur. Nous l'avons Ensuite, nous voulons savoir où se trouve le soi, d'accord ? Il s'agit donc de remarquer la cible elle-même. Cela signifie que cet endroit est l'emplacement du projectile lui-même. Maintenant, ce que nous voulons faire, c'est soustraire ces deux emplacements l'un de l'autre OK. Voici donc essentiellement la différence entre ces deux acteurs différents. Et avec cela, la prochaine chose que nous allons faire est faire une simple multiplication. Notez que le multiplicateur possède trois coordonnées. C'est pour X, Y et Z, et nous allons relier la fin de ce multiplicateur à la vélocité. Supposons donc que nous définissions le facteur multiplicateur sur un, un et un, il se déplacera à une vitesse d' une unité par seconde vers le joueur Regardons à quoi cela ressemble réellement dans le jeu. Donc, dans le jeu, appuyez sur Play. Il se déplace maintenant vers l'emplacement réel du joueur. Il fonctionne donc comme prévu. Cependant, remarquez que cela descend trop loin, c'est une question de gravité. Donc, pour résoudre ce problème, nous allons revenir au projectile. Nous allons sélectionner le mouvement du projectile. Et après avoir sélectionné le mouvement du projectile, la prochaine chose que nous voulons faire est de rechercher dans mouvement du projectile, Hum, nous voulons que ce soit mis à zéro car il s'agit d'un projectile sans gravité Si nous devons commencer à prendre en compte la gravité, nous allons avoir un problème, d'accord. Les choses deviennent très compliquées et très incontrôlables. Donc, sans gravité, jetons un coup d'œil. Boum, il se dirige vers le joueur. Maintenant qu'il se déplace vers le joueur, faisons en sorte qu'il se distrait automatiquement au contact du joueur, d'accord ? Maintenant, le moyen le plus simple de le faire s'arrêter plutôt que par contact est simplement de le faire, vous savez, s'arrêter. Chaque fois qu'il touche quelque chose, il est détruit. Nous allons donc créer un acteur destructeur. OK. Il y a donc ce composant de destruction de l'acteur. Nous allons le mettre ici. Bien entendu, la cible est le soi avec l'acteur destructeur. Ensuite, nous laissons cela ici et ajoutons que nous rechercherons l' événement sur Projectile Stop OK. Voyons voir, voir. Donc, pour appeler ça, je vais devoir rendre sur Projectile Movement Il y a cet événement appelé On Projectile Stop. Découvrons-le rapidement. Maintenant, nous avons cet événement à notre disposition, et ajoutons-le rapidement juste avant la destruction de l'acteur. OK. Permettez-moi de rompre ce lien. Je ne pense pas que cela soit nécessaire. Testons rapidement. Donc, à l'arrêt du projectile, cela signifie qu'à chaque mouvement, le projectile s'arrête À chaque mouvement, arrêt du projectile, il sera détruit Arrête. Commençons. Boum. OK ? Le mouvement ne s'arrête donc pas encore, car il ne se chevauche pas réellement avec le joueur qui l'a provoqué Nous devons donc maintenant simplement ajouter un chevauchement rapide. Maintenant que nous sommes ici, entrons et disons : OK, nous avons donc cette sphère. La sphère est bonne. Ajoutons autre chose. Ajoutons la collision. Ajoutons une collision de sphères. Trouvons la sphère elle-même. En fait, je le veux dans la racine par défaut. Voici donc la sphère. Réduisons la taille de cette sphère. OK, donc la collision se produit juste autour de la sphère. C'est donc la première sphère, pas de problème. Ainsi, avec la sphère 1, nous voulons ajouter un événement au début du chevauchement des composants. C'est l'événement que nous voulons ajouter. Et ce que nous voulons faire, c'est que les composants commencent à se chevaucher. Nous allons immédiatement lancer le casting au joueur, mais pour le moment, nous l'appelons héros. Nous l'appellerons donc cast to hero. Et ce sera l'autre acteur, c'est l'objet qu'il aura touché. Et juste après cela, cela détruira l'acteur. Maintenant que nous l'avons, compilons rapidement. Et immédiatement, ça frappe l'acteur. Il est immédiatement détruit. C'est cool, et puis pour lui infliger des dégâts, remarquez qu'il est immédiatement détruit une fois qu'il est sur le personnage du joueur, c'est bien. Maintenant, pour l'endommager, il nous reste plus qu' à le faire traîner. Et nous voulons dire : « infligez des dégâts, bloquez des dégâts, peu importe ». Et nous voulons que l' acteur endommagé soit le héros. Supposons que chaque projectile inflige 30 dégâts. OK. Faisons-les, compilons rapidement, puis appuyons sur Play. Regarde ça. Le joueur vient de subir 30 dégâts directs sur sa barre de santé parce qu'il a été touché par le projectile Nous avons donc maintenant un ennemi de base et un beau projectile qui peut réellement endommager le personnage du joueur Dans la vidéo suivante, combinons les deux pour avoir un dangereux ennemi à distance 80. 77 Configuration du plan d'animation pour Ranged Enemy: Maintenant que nous avons le projectile de base, retirons-le rapidement du monde, car il ne sera pas là uniquement pour faire des choses tout seul Non, il doit être créé par notre ennemi à distance. Maintenant que c'est fait, allons-y et ajoutons des animations appropriées pour lancer la balle à notre ennemi à distance Maintenant, pour ce faire, la première chose que nous allons faire est de passer à l'animation de l'ennemi à distance Ensuite, nous voulons ajouter une sauce d'animation ZD en papier, et nous appellerons cette source d'animation ennemie Et nous allons maintenant ajouter un plan d'animation. Ensuite, bien sûr, on nous demande quelle source nous voulons utiliser, à savoir l' animation ennemie à distance. En tant que source. Nous appelons cette animation orange B P. C'est ainsi que nous l'appellerons pour des raisons d'organisation. Maintenant, nous allons ouvrir la source d'animation de l'ennemi à distance et ajouter une nouvelle séquence, la première Bien entendu, nous l' appellerons inactif. C'est le nom de la première car nous partons d' une animation inactive. Ensuite, nous voulons simplement trouver l'ennemi à distance inactif. C'est l'animation. Une jolie petite animation inactive est disponible. Ensuite, pour effectuer la configuration appropriée, nous voulons ouvrir le plan d'animation de l' ennemi Cela ouvre la voie. Maintenant que nous avons choisi l'ennemi à distance, nous voulons trouver le propre acteur OK, très similaire à ce que nous avons fait avec la mêlée. Ensuite, nous voulons promouvoir l'ennemi à distance avec une variable car c'est ce que nous allons utiliser dans l'animation C'est donc tout. L'événement lancer un ennemi à distance, consiste à lancer un ennemi à distance, puis en tant qu'ennemi à distance, sera la variable D'accord. Maintenant que c'est configuré, nous avons accès au graphe d'animation et nous voulons créer un nouvel état d'animation. Nous allons donc ajouter une nouvelle machine à états, et nous appellerons simplement cette gamme EEM Nous allons rester simples et nous allons configurer cela comme sortie. Ensuite, pour nous assurer que cela fonctionne efficacement, nous reviendrons au plan de l' ennemi à distance Nous y ajouterons le composant papier Z D, pour gérer les animations. Nous allons ajouter le Blueprint ennemi à distance comme classe d' instance d'animation Ensuite, pour le composant de rendu, nous allons sélectionner le flipbook papier comme composant de rendu Chaque fois que Paper réalise les animations, il les gère comme avons fait trois fois, deux fois auparavant. J'espère que tout cela vous semble logique. Parce que maintenant, remarquez qu'il est simplement bloqué, mais nous reviendrons ensuite au plan d' animation de l'ennemi Nous allons le sélectionner, le faire glisser hors de l'état d'animation. Définissez l'état comme inactif. Oh, cliquez sur I comme inactif, puis sélectionnez l'état inactif, puis nous voulons qu'il joue l'animation inactive. Compilez, revenez en arrière. Et maintenant, lorsque nous entrons dans le niveau, l' animation inactive est correctement jouée. C'est exactement ce que nous voulons atteindre, et j'espère que , comme vous avez si bien appris des autres vidéos, tout cela vous connecte et prend tout son sens pour vous. Vous devriez en fait être capable de le faire principalement par vous-même. Mais maintenant que c'est fait, passons à l'ajout de animation du dessin du projectile Maintenant, si vous revenez aux personnages arrangés en NEM et que vous revenez à l'art, remarquez qu'il y a cette animation d'aviron d'attaque D'accord. Maintenant, avec cela, nous voulons obtenir cette animation d' attaque. Faites de même, appliquez du papier à ces paramètres, puis extrayez les sprites Il va toujours faire la même chose en essayant de les extraire automatiquement pour vous, mais le vrai moteur n'est pas encore assez intelligent pour le faire. Configurez-le donc sous forme de grille, puis divisez 750 par un, deux, trois, quatre, cinq , six, pour obtenir un, deux, cinq, et cela nous donnera des sprites à bande propre Nous les extrayons. Elles apparaissent sous la forme d'une attaque de zéro à cinq, puis nous créons un flipbook, que nous voulons appeler attaque EM soulignée à distance D'accord. Et sur ce, remarquez l'animation. C'est l'attaque ennemie à distance. Mais ralentissons. Je pense que c'est bien trop rapide, d'accord ? Donc, ce que je veux, c'est qu'au lieu de 15 images, faisons-en cinq images. C'est bien mieux. C'est beaucoup plus raisonnable en tant qu'animation d' attaque. Vous pouvez donc voir la sorcière lever la main puis la lancer. C'est donc très, très bien. Maintenant que nous avons cette animation ici, revenons à la source NEM à distance Nous ajoutons une nouvelle séquence d'animation, que nous appellerons simplement attaque. Restez simple. Les données d'animation proviendront de l'animation d' attaque NEM à distance. Ça y est. OK, c'est essentiellement ça. Et puis, avec l'animation d' attaque NEM à distance en jeu, sauvegardons rapidement tout Maintenant, nous pouvons revenir au NEM à distance en gros, non ? Il est donc inactif. Nous devons maintenant le configurer pour l'attaque. Nous allons donc créer un nouvel état d'animation, et nous allons simplement le configurer comme attaque de jeu afin qu'il reproduise l'animation d'attaque lors de sa transition vers Et nous allons le mettre en place. Nous le ferons plus tard, mais changeons le nom. Whoa, de cet État, ne devrait pas être simplement un État. Ça devrait être une attaque. Nous avons maintenant un moyen de passer de l'inactivité à l'attaque Il est possible de lire l'animation de l' attaque, mais il n'y a pas encore de code pour la faire passer, et c'est bon Mais maintenant, revenons simplement au plan de l'ennemi à distance et passons au graphique des événements Maintenant, pour qu'il attaque de la même manière que nous avons configuré l'ennemi au corps à corps, nous allons ajouter un capteur de points D'accord. Et nous allons appeler cela comme avant, la détection des joueurs. Donc, une fois le joueur détecté, cela fonctionnera et pareil, rayon de visée le réduira à 500, disons. L'audience sera nulle. Nous ne voulons pas qu'il soit entendu. L'intervalle de détection est réglé sur 0,5, ce qui est fantastique. C'est raisonnable. Je vais le réduire à 0,1 juste pour que l'intervalle de détection soit meilleur. La plage de vision sera réglée à 179 degrés afin d'offrir une grande portée visuelle. Ensuite, nous allons simplement passer au graphique des événements. Nous allons le faire glisser non, nous n'avons pas besoin de le faire glisser. Nous procéderons à une détection claire lorsqu' un pion C est détecté par un joueur Donc, chaque fois qu'il voit le pion, tout ce que nous voulions faire était d'imprimer une chaîne et de dire « Hé, joueur détecté OK, ce sera un bon début pour voir si cela fonctionne correctement. Appuyez donc sur Play. L'argile n' est pas détectée. La couleur est en cours de détection. Nous savons donc qu'il fonctionne correctement dans la plage denamy Nous n'en avons plus besoin. Maintenant que nous l'avons, nous allons simplement faire apparaître ce projectile Maintenant que nous l'avons. Dans le même ordre d'idées que précédemment, nous allons passer au flip book en papier, et ce que nous voulons faire, c'est ajouter un collisionneur de boîtes de base, et nous voulons appeler cela une apparition de projectiles D'accord. Donc, la raison en est que c'est là que le projectile va apparaître, nous pouvons donc le faire glisser Et mettons-le quelque part ici, d'accord ? Sympa. Nous allons le mettre quelque part ici. Maintenant que l'apparition de ce projectile est bloquée, nous allons passer au graphique des événements Ainsi, chaque fois que le joueur est détecté, il fait apparaître ce projectile Nous allons donc utiliser le nœud de base pour le spawning. Nous l'appellerons donc spawn actor, accord, actor from task Et la classe sera celle des projectiles ennemis. D'accord. C'est juste la classe de base que nous allons utiliser. Ensuite, pour la transformation de la portée, nous obtiendrons la portée du projectile Nous allons découvrir son emplacement sauvage. Oh, physique. Je ne sais pas pourquoi j' ai choisi cette physique. C'est ma faute. Ce que nous voulons, c'est obtenir un environnement sauvage. Et puis c'est dans cet endroit sauvage qu'il se transformera. Faites-le glisser ici, faites-le glisser ici. Alors maintenant, cela prend tout son sens. Donc, en gros, il va sentir et chaque fois qu'il est détecté, il va apparaître dans ce projectile Compilons, vérifions que cela fonctionne. Remarquez donc qu'il continue d'apparaître dans ces projectiles et remarquez que les projectiles apparaissent en se dirigeant vers l'endroit vers Nous avons donc maintenant cette génération de projectiles prête à être lancée. Maintenant, dans la vidéo suivante, ajoutons l'animation de lancement, et nous définissons l'image dans laquelle le projectile va réellement apparaître 81. 78 Lier l'animation de lancement avec Projectile Spawn: Maintenant que tout cela est configuré, nous avons organisé l' apparition de nos ennemis dans ces projectiles Revenons maintenant rapidement au plan NEM à distance. Et n'oubliez pas qu'à chaque fois qu'il détecte le joueur, il apparaît dans le projectile Mais au lieu qu'il apparaisse dans le projectile chaque fois qu'il détecte le joueur, nous allons procéder à un ajustement très basique Commençons donc par ajouter un petit commentaire. J'ai donc ajouté le commentaire de just, vous savez, detect player. Bien entendu, comme toujours, sur fond noir, texte blanc, augmentez la taille de ce commentaire et assurez-vous que les nœuds sont bien positionnés. Nous savons donc qu'à l'intérieur, il ne fait que détecter le joueur. Et maintenant, cela apparaît dans le projectile. Donc, ce que nous allons faire c'est rompre ce lien et le faire glisser ici pour séparer ces deux actions, puis après avoir détecté le joueur, créer une nouvelle commande, puis appeler le projectile filé C'est bon. Alors permettez-moi d' en parler rapidement ici. Et nous allons créer une fonction personnalisée. OK. Maintenant, il s'agit plutôt d'un événement personnalisé, et nous appellerons cela un incendie. Non, appelons ça Shoot Fireball. OK. En fait, ce n'est pas une boule de feu parce que ce n'est pas une boule de feu C'est une boule magique. Il suffit donc de l' appeler Shoot Magic Ball. Shoot Magic Ball est donc le nom de cette fonction. Et chaque fois que l'on appelle Shoot Magic Ball, elle se déplace dans le projectile, d'accord ? Maintenant, avec cette configuration et à l'écart, sortons du terrain pour détecter le joueur. Maintenant, nous voulons le configurer pour qu'il fasse l'une des deux choses suivantes. Tout d'abord, s'il détecte que le joueur est très proche, nous voulons que l'ennemi à distance tente de s'enfuir. Et il ne devrait le faire qu'une seule fois. Cependant, si le joueur est au champ de tir, il tentera de tirer un projectile sur le joueur Maintenant, fondamentalement, commençons simplement par le configurer telle sorte qu'une fois que le joueur est vu, il lance une boule de feu sur le joueur Et pour ce faire, nous allons simplement créer une nouvelle variable. Et nous allons ajouter cette variable. Ce sera un booléen de base. Et nous allons l'appeler I Footing Magic Ball. OK. Maintenant, avec cette configuration variable, nous allons la faire glisser vers l'extérieur et définir comme set is shooting magic ball. Et nous allons définir cela comme « oui ». Cela commence par un non, mais dès que le joueur sera vu, nous le configurerons pour tirer la balle magique. Maintenant que sa boule magique est prête à être lancée, ouvrons le plan d'animation de l'ennemi Maintenant, dans le plan d' animation, pour passer de l'inactivité à l'attaque, il suffit de passer à la transition, puis de laisser l' ennemi à distance, désolé, l'entraîner Incarnez l'ennemi à distance. Nous cherchons à tirer une balle magique. Ensuite, nous voulons dire : « Hé, égal à y », alors vous pouvez entrer cette transition. C'est très logique et cela devrait très facilement avoir du sens. Revenons donc au niveau principal. Alors remarquez, c'est maintenant que le joueur entre immédiatement. Il commence à jouer cette animation montrant qu'il lance la balle magique. Maintenant, nous allons retourner dans la source de l' animation et sélectionner l'animation d' attaque. Nous voulons chercher un moment où la balle sera lancée par ici. Boum, et nous allons créer une nouvelle notification. Nous allons créer une nouvelle notification et nous allons appeler la notification lancer une boule magique C'est ainsi que nous l' appellerons Zoom arrière. Donc, à peu près, oh, désolée. à peu près à ce moment que nous lançons la boule magique. Maintenant que cette configuration est intégrée à la source d'animation, nous allons revenir au plan, et nous allons chercher la balle magique de réception Ensuite, ce que nous voulons faire, c'est devenir un ennemi à distance. Nous voulons que l'événement du lancer que je l'ai appelé Shoot Magic Ball ici. Nous appellerons donc cet événement Shoot Magic Ball. Il est toujours préférable de les nommer d'une manière logique. Nous y voilà donc. Donc, chaque fois que cette notification est appelée, elle doit lancer la boule magique. Alors, allons-y. Voyons voir. Alors, retournez dans le jeu. Désormais, chaque fois que l'ennemi voit le joueur, il lance la boule magique. OK. Boum. C'est très bien. C'est donc un élément de base. Nous avons maintenant la configuration de l'animation pour lancer la boule magique, d'accord ? Passons donc à autre chose. Maintenant, corrigeons le changement de direction, puis ajoutons une animation beaucoup plus animée, car à l' heure actuelle , la boule magique est essentiellement celle qui flotte devant le joueur. Faisons un ajustement à son apparence. 82. 79 Ajustement de la direction du sprite en fonction de l'emplacement du joueur: Maintenant que l'ennemi à distance est capable de lancer une balle magique sur le joueur, et que cela est configuré et effectué en fonction de l'animation, assurons-nous que la première chose que fait à distance est capable de lancer une balle magique sur le joueur, et que cela est configuré et effectué en fonction de l'animation, assurons-nous que la première chose que l'ennemi à distance lorsque le joueur est à portée de détection est faire face au joueur Nous allons maintenant examiner le sprite des ennemis à distance, et vous remarquerez que ces sprites ont été dessinés en regardant vers la gauche plutôt que dessinés en regardant vers la gauche plutôt Nous allons donc simplement sélectionner le flip book en papier, ajuster sa rotation sur l'axe Z, et le faire simplement pivoter de 180 degrés négatifs. C'est vraiment aussi simple que cela. Alors maintenant, il fait face correctement au joueur. Cependant, notez que lorsque vous passez de l'autre côté, il n'est plus orienté correctement. C'est normal et simple à corriger. Maintenant, tout ça, je vais juste vous montrer le code une fois qu'il aura été écrit. Remarquez maintenant qu'il fait face à la bonne direction. Et laissez-moi vous expliquer rapidement les plans et les réflexions. Maintenant, pour le faire rapidement, permettez-moi de commencer par vous montrer comment fonctionne le flux de code. Je l'ai donc configuré pour que l'ennemi à distance soit débogué. Maintenant, remarquez qu'il passe par la ligne supérieure. Lorsque je passe à ce côté gauche, cela passe par la ligne inférieure. Ici, il s' écoule par le haut du pot dans les hochements de tête. Ici, ça coule par le bas. J'ai ajusté, bien sûr, les dégâts à B et 1 sur le projectile ennemi, mais c'est juste pour vous montrer Passons maintenant aux nœuds eux-mêmes. La toute première chose que nous faisons est de passer directement d' Os Pon au casting du héros. Après avoir choisi le héros en tant que héros, nous obtenons son composant capsule. Essentiellement, presque tous les composants feront l'affaire, mais la capsule est très utile. Ensuite, nous obtenons l'emplacement sauvage, et en utilisant le clic gauche, nous divisons les épingles de la structure afin d'obtenir la valeur X séparément. Une fois que nous aurons terminé, nous aurons le composant flipbook que nous pouvons obtenir ici depuis l'intérieur de l'ennemi à distance, comme n'importe quel composant le fera d'habitude, mais nous utiliserons simplement le flipbook pour des raisons de simplicité, puis nous le retrouverons mais nous utiliserons simplement le flipbook pour des raisons de simplicité, puis nous le retrouverons Une fois cela fait, nous passons à autre chose et nous voulons soustraire. Maintenant, nous voulons soustraire la position sauvage de la capsule du classeur en papier, cela nous donnera une mesure de la distance entre les deux Ensuite, nous vérifierons la différence de distance en utilisant le nœud supérieur à, et est-elle supérieure ou égale à zéro ? C'est la logique qui le sous-tend. Ensuite, nous avons ouvert une succursale. Maintenant, la branche est simple. La distance est supérieure ou égale à zéro, ce qui est vrai. Cela signifie que le joueur est sur la droite. Nous allons donc configurer la rotation sauvage à moins 180 en appelant self, en récupérant le flip book en papier et en réglant la rotation sauvage. Il s'agit du nœud que vous allez utiliser. Maintenant, après l' avoir réglé sur moins 180, il sera correctement orienté vers le joueur. Cependant, si c'est faux, cela signifie que le joueur est derrière l'ennemi Nous allons donc mettre la nouvelle rotation à zéro. J'espère que la logique vous semble logique et qu' ensuite, nous reconnecterons tout à sa balle magique. Voyons cela à nouveau en action maintenant que vous avez vu les nœuds. Donc je suis parce que le joueur est du bon côté. Le sprite est orienté vers la droite. Le joueur est sur le côté gauche, le sprite est constamment orienté dans la bonne direction, ce qui est très bien Maintenant que c'est fait, passons à autre chose et apportons quelques ajustements supplémentaires à notre IA NEM à distance 83. 80 Ajouter du sprite à la boule magique: C'est bon. Alors maintenant, l'ennemi lance une véritable boule magique. Nous allons corriger la direction dans la vidéo suivante, mais vous pouvez voir l'ennemi lancer une balle et laissez-moi vous expliquer les étapes très simples pour le configurer. Pour commencer, il vous suffit d'entrer dans le projectile ennemi et supprimer la sphère initiale Une fois que c'est fait, ajoutez un livre à feuillet en papier, ce que vous avez déjà fait plusieurs fois. Je l'ai également configuré pour que ses ombres soient projetées, ce que je trouve cool, et j'ai également ajouté ombres à l' ennemi à distance en plus de cela Ensuite, après avoir ajouté le flipbook en papier, vous remarquerez qu'à l'intérieur du dossier de l'ennemi à distance se trouve un fichier appelé Maintenant, à l'intérieur du projectile se trouvent un, deux, trois , quatre, cinq, six petits sprites . Pour extraire les sprites, vous leur appliquez des réglages de texture en deux D sur du papier, puis vous passez à extraire les sprites, et le vrai essaiera toujours de les extraire et le vrai essaiera toujours Mais si vous voulez le configurer sur une grille et une largeur de cellule, au lieu de 288, vous obtenez juste 288 et vous le divisez par six, ce qui devrait vous donner une largeur de cellule de 48. Et remarquez maintenant que vous pouvez extraire proprement tous ces six sprites Après les avoir extraites, il suffit de les récupérer et de les transformer en flip book Et ça continue, non. C'était le flipbook, le livre, et appelez le flipbook la boule magique Une fois que c'est fait, vous l'ajoutez au flipbook papier et Wala, vous avez fondamentalement fini d' ajouter le fib, bien sûr, d'augmenter le, augmenter l'échelle à la bonne taille Maintenant que cette boule de feu est configurée, nous allons maintenant entrer dans le code permettant organiser sa direction de manière à ce qu' elle fasse face à la direction, qu'elle se déplace C'est ce que nous allons faire dans la vidéo suivante. Maintenant, au cas où vous rencontreriez des difficultés pour effectuer cette configuration simple, peut-être que le fait de revenir à certaines des vidéos précédentes vous aidera. Il s'agit en quelque sorte d'une vérification des connaissances, car il s'agit d' une action que vous auriez déjà dû effectuer environ cinq ou six fois, et elle devrait être dans votre sang. Cependant, si vous avez parfaitement compris comment procéder, cela signifie que vous apprenez efficacement grâce au didacticiel, et j'en suis très heureuse. Allons de l'avant. 84. 81 Direction changeante de la balle magique: Maintenant que le sprite a été ajouté à la boule magique, ajustons simplement sa direction Mais avant cela, nous allons faire un nettoyage de base rapide du code, d'accord ? Alors maintenant, en ce qui concerne le code du projectile ennemi, il y a beaucoup de choses à faire Organisons-le rapidement. Tout ce code est donc pour Actor Begin Overlap. C'est le code qui gère les dégâts. Nous ajouterons simplement un commentaire rapide en appuyant sur C. J'aimerais régler la taille du téléphone sur 50. Et puis, comme toujours, texte blanc sur fond noir. Maintenant, nous allons simplement l'ajouter ici, agrandir pour qu' il y ait suffisamment d'espace. Excellente. Maintenant, je vais déposer ces nœuds ici, juste à l'intérieur du commentaire. Ce qui se passe est donc assez clair. Cela commence donc à superposer la sphère, à lancer sur le héros et à infliger des dégâts, et augmentons ces dégâts de un à 30, car il ne s'agissait que d'un seul pour les tests de base. Et en arrêtant le mouvement du projectile, il se détruit lui-même. C'est une bonne chose. Il se détruit tout seul. C'est une bonne chose. Passons maintenant au nœud de début de jeu. Écoutons rapidement ce commentaire. Dites ceci Oh, mon Dieu, tout d'abord, définissez le commentaire comme un simple commentaire afin qu'il ne déplace pas nos nœuds. Il a donc tout réorganisé dès le début du jeu. Jusqu'au mouvement du projectile. Laissez-moi accélérer les choses. C'est bon. Ces nœuds sont donc désormais tous organisés en un seul endroit. Aucune modification supplémentaire n'a été apportée. Donc, ce que nous allons faire, c'est juste après avoir défini la vélocité dans l'espace local, nous allons la configurer telle sorte qu'elle pointe dans la direction du personnage du joueur une fois qu'elle aura fini de la régler. Et voilà à quoi ça ressemble. Il y a deux choses que nous voulons. Tout d'abord, nous voulons savoir où se trouve l'acteur, d'accord ? C'est notre acteur actuel. Et nous voulons simplement que son emplacement soit disponible pour que nous puissions nous y référer. Après avoir trouvé la position de l' acteur, la prochaine chose que nous voulons faire est de savoir, oh, désolée. Nous voulons connaître sa vitesse actuelle. Ces deux éléments seront importants pour choisir la direction vers laquelle le projectile pointe Maintenant, il y a un nouveau nœud que nous allons référencer, et ce nœud s'appelle find look at rotation. OK ? C'est le nœud que nous voulons. C'est ce qu'on appelle le find Look at rotation. Et ce que nous voulons, c'est qu'il indique essentiellement une valeur de rotation à examiner par notre projectile Et pour que cela fonctionne, il faut un point de départ et un emplacement cible. Maintenant, le lieu de départ sera l'emplacement actuel de l' acteur. Cependant, la cible va être différente. Ce que nous allons faire, c'est ajouter et additionner la vélocité actuelle, et après avoir additionné, nous allons ajouter la position de l'acteur. Et la raison en est que la vitesse indiquera la direction dans laquelle le projectile se déplace Et avec ceux-ci, nous en tirons la valeur et nous la fixons comme objectif. La cible se trouvera à environ une image du point de départ de l' acteur. Maintenant, avec ça, nous allons trouver la rotation, et nous allons voir, acheter un flipbook en papier, d'accord ? Donc, oh, non, nous n'en avons même pas besoin. Ce dont nous avons besoin, c'est juste du flipbook, puis nous allons définir la rotation OK. Je veux donc définir une rotation sauvage, et ce sera le nœud auquel nous nous connecterons. Ensuite, la rotation Look sera définie comme nouvelle rotation. Cependant, en raison du fonctionnement du code du moteur Unreal, si nous l'exécutons tout seul en ce moment, il ne fonctionnera pas efficacement Et c'est la raison pour laquelle, avec tout tel quel, si nous passons au niveau développeur et que nous appuyons sur Play, toutes nos excuses Arrêtons d'abord cette simulation très rapidement. D'accord, parce qu'il essayait de nous le montrer, mais nous ne voulions pas le voir. Donc, si nous appuyons sur Play, remarquons qu'il n'y a aucun changement. n'y a aucun changement dans la façon dont il gère la direction, sauf, bien sûr, il n' y a aucun changement. La raison en est qu'en raison de la rapidité avec laquelle le calcul est effectué, nous avons besoin que cela se produise après au moins une image. Donc, pour que cela se produise après au moins une image, nous allons faire juste après avoir réglé la vélocité dans l'espace local, d'accord ? Juste après ce nœud de vélocité défini dans l'espace local, nous allons définir un délai, un délai, mais il existe différents types de délai, et le délai que nous voulons est celui-ci appelé delay until next Tech. Nous allons donc simplement attendre la prochaine technologie. Ensuite, une fois cela fait, il passera par le reste des nœuds pour définir la rotation du flipbook en papier Essayons-le maintenant. OK. Maintenant, cela fonctionne correctement. Notez que la direction est correctement calculée. Maintenant, vous pouvez demander, mais attendez. Ça a l'air un peu flippy. Pourquoi est-ce le cas ? Par exemple, verticalement, il semble que la direction soit bonne, mais tout va mal. C'est en fait très simple. Nous retournons simplement dans le projectile ennemi. Nous retournons dans la fenêtre d'affichage et remarquons qu'il s'agit du flipbook papier Donc, ce que nous allons faire, c'est obtenir le flipbook papier lui-même, et nous voulons inverser la tendance Maintenant que nous sommes revenus, vous remarquerez que le projectile est orienté vers la gauche Donc, comme il est orienté vers la gauche, nous allons faire un petit ajustement. Donc, au lieu d'ajouter la position de l'acteur et la vélocité du get, nous allons le changer, et nous allons le régler pour qu'il soit soustrait. Nous voulons donc soustraire la position de l'acteur. Nous voulons plutôt soustraire la vitesse de l'emplacement de l'acteur et la définir comme cible Maintenant, avec cette configuration, revenons en arrière et voyons si cela fonctionne comme prévu. Alors, appuyons sur Play, oui, maintenant cela fonctionne comme prévu. Remarquez que la petite boule magique va réellement dans la bonne direction. C'est plutôt cool. Et maintenant que nous l'avons, remarquez qu'il se déplace en fait essentiellement dans la bonne direction. OK. Sympa. Regarde ça. OK, maintenant nous avons notre boule de feu magique en mouvement. Dans la bonne direction. Regarde ça. OK. C'est fait. Avançons maintenant et apportons quelques ajustements supplémentaires à l'IA de l'ennemi à distance 85. 82 Mettre en place la combinaison d'animation de coups et de morts: Donc, pour vraiment compléter et finaliser cet ennemi à distance, ajustons-le de telle sorte que lorsque je touche l'EM à distance ou que je touche l'un des joueurs, il entre dans une bonne base en matière d'animation statère, puis Et puis remarquez que ces projectiles apparaissent dans le monde, mais ils continuent en quelque sorte à l' infini à moins qu'ils ne touchent le infini à moins qu'ils ne touchent Nous allons donc mettre un chronomètre pour les empêcher de rester en vie pour toujours. Faisons ces deux choses dès maintenant. abord, nous allons commencer par le projectile ennemi et configurer de telle sorte qu' en cas d'échec du casting, il y ait un délai , et ce délai durera, disons, 6 secondes, puis il détruira l'acteur Le projectile ne peut donc rester à l'écran 6 secondes environ avant être complètement retiré du monde D'accord ? C'est fait. Passons maintenant directement à l'ennemi à distance, ouvrons, retournons ouvrons, retournons dans le giron de l'ennemi à distance, revenons à l'art, art, et vous remarquerez qu' un sprite appelé hart double-clique dessus pour indiquer qu'il y a une petite animation en forme de cœur ici lorsqu'il subit des dégâts. C'est cool. Ensuite, il y en a une autre qui s'appelle la mort. Maintenant, remarquez que la mort et l'art ont beaucoup de similitudes. Nous voulons donc configurer le code de la même manière que nous le faisions auparavant. Il y a donc une animation de dégâts, mais si la santé tombe en dessous de zéro ou égale à zéro, l'animation de mort est terminée. Commençons par quelques opérations d'extraction de sprites de base. J'ai donc sélectionné Hart. Et tout d'abord, cœur et mort, permettez-moi d'appliquer rapidement du papier aux paramètres de texture, et de tout enregistrer rapidement. Ensuite, commencez par l'art. Et, désolé, cliquez avec le bouton droit sur Sprite Actions, extrayez Sprite. Il y a trois sprites. Configurons-le sous forme de grille. Nous allons donc faire quelques calculs de base. OK, donc je devrais vraiment épingler la calculatrice ici. Nous obtiendrons donc 375/3, ce qui signifie que la largeur des cellules est de 125, et nous extrayons ces sprites Il y a donc le cœur zéro, le t un et le cœur deux. C'est une bonne chose. Ensuite, nous allons sélectionner les animations de mort, d' accord, les actions du sprite de la mort, extraire le sprite Configurons-le sur la grille. Et maintenant c'est 875 ou une, deux, trois ou cinq, six, sept images D'accord. Donc, si nous sortons notre calculatrice et que nous obtenons 875 et que nous le divisons par sept, nous obtenons 125 à nouveau. Donc 125, nous coupons correctement ces sprites et les extrayons. C'est cool. Maintenant, ce que nous allons faire sélectionner tous les sprites de la mort, puis nous allons créer un flipbook et nous l' appellerons , appelons-le simplement mort, d'accord Disons que c'est la mort à distance d' EM Underscore. D'accord. Maintenant, avec cette configuration, remarquez qu'il s'agit de l'animation de la mort. Ce que nous allons faire maintenant, c'est d' abord ralentir cela à une dizaine d'images par seconde. Maintenant, ce que nous allons faire , c'est ajouter une autre image clé. Nous allons le traîner dedans. Voyons donc voir que c'est le premier cadre. Le cadre deux est vide, puis le cadre OK. Donc ça en est un et ça en est deux. Donc, à l'intérieur de ce cadre vide, nous allons choisir un nouveau sprite, et nous allons en chercher un, voyons voir, le blesser, le sprite C'est celui-ci, qui a flash blanc, vous savez. Alors maintenant, c'est comme ça que ça fait des dégâts. Ensuite, nous ajouterons une autre image après et dans cette image nous ajouterons une autre animation. Choisissons un nouveau sprite. Appelons donc Pick Heart Zero. Nous utiliserons Heart Zero pour cela. Donc, remarquez qu'il clignote rapidement chaque fois qu'il subit des dégâts, ce qui est cool. Supprimons maintenant le nombre d'images par seconde au lieu de dix. Réduisons-les à neuf. Alors, diffusons l'animation . Remarquez cela. Il émet donc ce petit flash lorsqu'il subit des dégâts, et c'est l'animation. OK, arrêtons-nous là. Avec cette configuration, nous avons maintenant une animation de mort ennemie à distance prête à fonctionner. Nous allons donc simplement revenir à l'ennemi à distance, passer à l'animation Ouvrons la source d'animation de l' ennemi à distance. Ajoutez une nouvelle séquence d'animation. Nous allons le renommer « mort ». D'accord. Et dans Death of Death, nous utiliserons la mort ennemie à distance comme animation Nous allons donc configurer cela comme animation. Maintenant, dans la leçon suivante, ajoutons les bonnes notifications et les bons événements pour que cette présentation soit correcte. 86. Un ennemi de 83 rangs frappe s'il subit des dégâts: D'accord. Alors revenons à la sauce de l' animation, d'accord ? Notez qu'il y a des images où l'ennemi est légèrement touché. Nous ne voulons pas entrer dans la troisième image de l'animation. Donc, juste à la fin de la deuxième animation, nous ajouterons une notification. Nous appellerons cela une nouvelle notification, et nous allons l'appeler un stateur ennemi à distance C'est comme ça que nous allons l'appeler. C'est ce qu'on appelle un headstand ennemi à distance. D'accord ? Juste des têtes ennemies à distance se tiennent debout C'est comme ça que ça va s'appeler. D'accord. Maintenant, une fois que nous avons cette configuration, nous passons au plan NEM à distance et remarquons que, sous notifications, l'adster NM à distance se trouve ici remarquons que, sous notifications, l'adster NM à distance se trouve Nous allons donc accéder à la fonction ici. Nous allons donc retourner dans l'ennemi à distance. Au lieu de cela, nous allons simplement copier cette zone de commentaire spécifique , d' accord, et la coller et nous allons appeler ça. Non, oublie le headstand. C'est juste pour des raisons de rapidité, appelons ça le hit-stater, c'est le commentaire Mais ce que nous voulons vraiment, c'est créer un événement personnalisé. Oui, d'accord ? Et cet événement personnalisé s' appellera Range NEM hits stater C'est vraiment comme ça que nous voulons l'appeler. Préparez simplement cet événement personnalisé simple. Maintenant que l'événement est prêt, créons une nouvelle variable. Et nous appellerons cette variable dans headstar. C'est un booléen de base et elle s'appelle Maintenant, maintenant, nous allons rapidement compiler ceci. Au début du jeu, il sera vide. Il s'agit de sa valeur par défaut. Maintenant, ce que nous allons faire, c'est maintenant que nous avons cette variable headstand Lorsque cette fonction de maintien à distance de la tête de l'ennemi est activée, nous voulons simplement qu'elle vérifie rapidement l'état de santé de l'ennemi Retournons en arrière. Et maintenant, nous allons dire qu'en tant qu'ennemi à distance, nous voulons qu'il élimine l'ennemi à distance selon sa fonction de statère Nous l'avons fait à plusieurs reprises, cela devrait donc être logique. Maintenant que nous l'avons, nous savons qu'à chaque fois que cette animation sera diffusée, elle fera l'objet d'un rapide coup d'œil Et ce que nous voulons, c'est que s' il s' avère que le joueur ennemi est mort, animation complète de la mort soit Cependant, si le hit finit par être, vous savez, non, vous êtes juste en position debout, vous n'êtes pas encore mort, il revient en arrière À son animation inactive pendant une courte période. Puis il revient à son animation d'attaque après avoir détecté le joueur. C'est la logique que nous préconisons. Alors revenez ici. Sauvons tout rapidement et retournons dans l'ennemi à distance. Ici, nous voulons simplement commencer par vérifier la valeur sanitaire. La première chose que nous allons faire, c'est obtenir la santé de Dami, la traîner ici et nous voulons obtenir la santé de Dami, et nous allons créer une branche de base Et ce que nous voulons faire, c'est vérifier si l'état de santé de Dami est meilleur. D'accord. En d'autres termes, est-il supérieur à zéro ? Si la santé de dammi est supérieure à zéro, cela sera vrai D'accord. Donc, si la santé de dammi est supérieure à zéro, nous la réglons sur true, puis nous exécuterons simplement certaines fonctions ici Et pour commencer, nous allons dire : OK, écoutez, je suppose que la santé est inférieure à zéro Si elle est inférieure à zéro, ce que nous voulons faire, c'est faire traîner tout cela , puis nous voulons dire, Hé, non, plutôt, laissez-moi préciser que cette logique a du sens. D'accord. Donc, s'il est inférieur à zéro, c'est ce que nous voulons vraiment. D'accord ? Non, s'il est inférieur à zéro, en d'autres termes, c'est faux. Nous voulons qu'il y ait un délai d'environ 1 seconde, juste un délai d'une seconde, puis nous détruisons immédiatement l'acteur. D'accord ? Il s'agit d'une simple vérification. C'est une vérification très simple. Et cela signifie que l' ennemi à distance est maintenant mort. Donc, si nous revenons au graphique d'animation de l'ennemi à distance, remarquons qu'il n'y a que du inactif et qu'il y a de l'attaque Mais maintenant, créons un nouvel état d'animation, que nous appelons mort. D'accord. Ainsi, de l'attaque à la mort, elle peut passer, et de l'oisiveté à la mort, elle peut passer. Et la façon dont cela peut faire la transition, c'est allons-y. Nous allons le faire vérifier en tant qu'ennemi à distance. Nous voulons nous faire frapper Stern, non ? Et si in hits stater est égal à, oui, il est dans son statère Il peut faire une transition. D'accord. Donc, tant que l' ennemi est dans sa position, il peut faire la transition. C'est essentiellement ça. Ensuite, nous prenons un moyen de simplement copier ceci. Ainsi, chaque fois que l'ennemi se tient debout, il commence à jouer l'animation de la mort Donc, copions-le et mettons-le ici. Cela permet d'économiser cela. Nous double-cliquons sur la mort et nous voulons jouer l'animation de la mort depuis l'intérieur du nœud de mort ici, d'accord, ce petit état. Il peut donc passer de l'oisiveté à la mort et de l'attaque à la mort. Cependant, il ne peut redevenir inactif que s'il n'est plus en position debout, puis il peut revenir à son animation inactive, d'accord ? C'est essentiellement tout pour le moment. Maintenant, voici à quoi cela ressemble. Oh, il n'est pas encore redevenu inactif. Nous y reviendrons ensuite. Maintenant, remarquez qu'à l' heure actuelle, dans l'ennemi à distance, il n'y a aucun moyen de le faire rentrer. Il y a actuellement aucun moyen de lui donner la propriété de statère des coups Changeons cela. Donc, la façon dont nous allons procéder est de créer rapidement cette boîte de commentaires et de la mettre ici. Entrez l'animation tt en cas de dommage. Ce qui est assez facile à comprendre. Entrez donc dans l'animation du headstand dès que vous subissez des dégâts. Nous commençons donc par connaître l'événement, les dégâts éventuels. OK, nous allons détecter les éventuels dégâts. Ensuite, nous allons simplement le placer dans bandeau et le configurer telle sorte qu'une fois qu' il est en position debout, il s'installe correctement Maintenant, avec cela, nous revenons au niveau des développeurs. Il subit donc des dégâts. Il joue ça maintenant, mais il le joue indéfiniment. Donc, pour l'empêcher de jouer, nous y retournons. Et cette fois, lorsqu'il effectue la double vérification de base et découvre qu'il l'est, en fait, son état de santé est toujours supérieur à zéro. Ce qu'il va faire, c'est que nous voulons le mettre en position debout, donc nous allons le mettre en place et nous dirons non, il n' est plus en position debout. Voilà donc à quoi cela ressemble. Remarquez ça, non ? Donc, si tu arrêtes de combiner l'ennemi, il revient immédiatement, C'est essentiellement ce que nous voulons vraiment. Alors, entrons ici. Il lance donc un projectile. Maintenant, je suis en train de le toucher. D'accord. Il est donc en train de subir des dégâts, mais remarquez qu'il n'est pas en train de mourir et qu'il y a un peu de retard. Au contraire, le délai avant qu'il n' attaque à nouveau est vraiment trop court. Suggérons-le donc dans le prochain 87. 84 Décalage de l'attaque après la prise d'un coup: C'est bon. Maintenant, nous avons notre ennemi à belle portée que nous pouvons attaquer, et lorsque nous attaquons, il entre un peu dans son statère et il ne peut pas nous attaquer en retour C'est plutôt cool. Faisons un ajustement simple pour qu'une fois touché, il dépense beaucoup plus avant de passer animation d'attaque proprement dite afin d'avoir plus de poids. Pour ce faire, il suffit d'ouvrir une seule chose pour commencer, est d'aller dans le dossier des ennemis à distance et de nous assurer que le plan de l' ennemi à distance Et une fois qu'il sera ouvert, nous pouvons maintenant avancer et retarder un peu plus le démarrage Maintenant, la prochaine chose que nous allons faire, que vous remarquerez que lorsque nous infligons des dégâts au mannequin d'attaque pendant qu'il subit les dégâts, remarquerez que la barre de santé ne fonctionne pas correctement se produit parce qu' une fois que nous avons appelé pour signaler un dommage, il cesse d'être appelé dans le plan parent Nous allons donc devoir copier l'ensemble du code de l' événement, tout dommage causé par le parent pour nous assurer qu'il fonctionne correctement ici. Maintenant, le moyen le plus rapide de le faire est d'ouvrir votre plan factice d'attaque et de vous votre plan factice d'attaque et rendre compte des dégâts éventuels, et de remarquer que nous pouvons entrer et maintenant faire une copie de tout cela , puis le mettre dans l'enfant Maintenant, laissez-moi vous montrer à quoi cela ressemble, puis je vais vous expliquer le code. Donc, boum, il y a un peu de tête, puis c'est mort. tour est joué. Maintenant, voici à quoi cela ressemble fondamentalement dans le code. En fait, revenons un peu en arrière, d'accord ? Donc pour le moment, l'ennemi est capable de me lancer des projectiles, d' Il est capable de lancer des projectiles. Oh, claquez. Non Non Prise de fenêtre. Cependant, une fois que je l'ai frappée, maintenant, je remarque que c'est pendant environ 2 secondes, d'accord ? C'est la vraie star à succès. Et pendant 2 secondes, je ne peux rien faire. Maintenant, bien sûr, c'est exagéré. Dans un vrai jeu, vous voulez que ce temps soit un peu plus court, mais j'exagère juste pour enseigner, d'accord ? Ainsi, l'ennemi, plutôt que le personnage du joueur, peut frapper un ennemi uniquement pour l'ennemi à distance, et pendant un certain temps, il ne peut absolument rien faire et puis il est mort. C'est aussi simple que cela, d'accord. C'est aussi simple que cela. Maintenant, laissez-moi entrer dans le code, et nous allons y aller étape par étape. Nous allons donc commencer par l'ennemi à distance de base. OK. Donc ici, maintenant, d' accord, il ne vous reste plus qu'à le configurer pour le mettre en position debout Mais allons-y étape par étape. Donc, une fois que nous avons qualifié l'événement d'événement de dommage ici, il ne fonctionnera plus depuis l'événement parent. Nous devons donc réajouter tout ce code. Commençons donc. Il y a une séquence. Signalons tout ici pendant un moment. Et suivez cette ligne. Nous obtenons cette satanée santé Bien sûr, cela vient de l'intérieur du personnage. OK. Et une fois que nous aurons obtenu la santé de dammi, nous soustrairons les dégâts de tous les dégâts infligés à la santé de dammi et la définirons tous les dégâts infligés à la santé de comme la nouvelle santé Une fois que c'est fait, nous voulons passer à la barre de santé de Dammi Maintenant, la façon dont nous le faisons est d'appeler un widget. Le widget est ici. Nous l'avons déjà ajouté. C'est la barre de santé. Nous obtenons un widget et nous passons à Dammi Health Bar. Ensuite, en tant que barre de progression de Dammi Health, nous allons obtenir Dammi Health, diviser par 100 et le définir comme le pourcentage défini, c'est fait Tout ce que cela fait, c'est que lorsque nous touchons le mannequin, plutôt que lorsque nous touchons cet ennemi, il apparaisse réellement dans sa barre de santé OK, passons à autre chose. Maintenant que nous l'avons, OK. Revenons au bilan de santé du chef ennemi à distance. OK ? C'est là que nous vérifions si l'état si l'état de santé est inférieur ou supérieur à zéro. OK ? C'est la tête de l' ennemi à distance. Ici, ce que nous voulons faire, c'est il y ait un délai d'une seconde, puis cela détruirait l'acteur. C'est bon pour le moment, d'accord. Cependant, nous voulons le configurer pour qu'il soit en position fermée. Est-ce que c'est tirer une balle magique ? Non, ça ne l'est pas. Ajout d'un délai rapide de 2 secondes. Ensuite, nous voulons créer une nouvelle variable appelée Cannot Shoot. Maintenant, quel est le but du tournage de Carnot ? Nous allons aborder la question Impossible de tirer plus tard, mais simplement créer cette variable. Et pour le moment, l'option « Impossible de tirer » est désactivée. Cela signifie qu'après un délai de deux secondes, appareil ne peut pas tirer, ce qui signifie qu'il peut tirer, d'accord ? Revenons maintenant à l'animation de l'ennemi à distance. C'est une animation sur la mort. À la fin de son animation de mort, nous l'avons configurée pour qu'elle se détruise elle-même. Cela consiste à utiliser un Notify. OK ? Désormais, dans le plan d'animation à distance, il est simplement configuré de telle sorte que s'il tire sur la boule magique, il passe à Si ce n'est pas le cas, il passe au ralenti. Je n'aurai pas cette configuration, d'accord ? Et puis, de l'animation Attack to the Death, c' est-à-dire, est-ce que c'est en headstand ? Oui S'il n'est plus debout, il peut revenir à l'attaque, ou s'il n'est plus debout, il peut redevenir inactif ou revenir à l'identifiant, d'accord ? C'est une logique de base. Tu l'as déjà fait. Passons maintenant à la destruction du soi. Cela ne fait que créer une fonction dans l'ennemi à distance appelée destroy self Maintenant, à portée d'ennemi, nous avons essentiellement défini Destroy Self comme acteur de destruction de base. C'est tout ce qu'il fait. Il détruit l'acteur si son enfer descend en dessous de zéro ou atteint zéro. OK. C'est tout ce qu'il fait. Maintenant, avec cette configuration, quel que soit le dommage, le casque est prêt à être allumé Il ne tire plus la boule magique et il ne peut pas tirer. Voyons maintenant à quoi cela ressemble réellement en termes de code, d'accord ? Revenons maintenant à l'endroit où le joueur a été détecté. Il y a un grand changement cette fois-ci. OK, nous avons ajouté : est-ce que c' est dans le headstand S'il est en position debout, il ne devrait rien faire. Si Headstand est vrai, ne faites rien. S'il n'y a pas de tête, il devrait faire le reste de ce code Bien sûr, il y a toujours le casting du héros, ce que nous avons fait, le changement de direction. Mais après le changement de direction et le réglage de la rotation sauvage, nous avons ajouté une nouvelle branche et la branche est assez simple, elle ne peut pas tirer. S'il ne peut pas tirer, il ne fait rien. S'il peut tirer, il lance la boule magique. Maintenant, regardons et voyons à quoi cela ressemble réellement, d'accord ? Je vais le régler sur dbug, je joue. Donc en ce moment, il peut tirer, donc il tire. Cependant, d'accord, laissez-moi recommencer. Donc, une fois que je l'ai touché, il se tient debout et ne peut plus tirer pendant un moment. Et vous pouvez l'ajuster à votre guise. Maintenant, si vous avez suivi correctement les didacticiels, tout cela est parfaitement logique. Maintenant, vous avez un ennemi à distance qui fonctionne, et passons rapidement ennemi masculin pour le faire entrer dans le monde Oh, en fait, j'en ai déjà un ici. C'est un ennemi que j'ai placé ici. J'ai donc un ennemi mâle qui vient m'attaquer, mais, bien sûr, je peux le toucher et le tuer, pour qu'il meure, puis nous avons un ennemi à distance Viens Moria. Moi et ça se lie. Nous avons donc maintenant un ennemi à distance et un ennemi masculin prêts à être utilisés, et vous savez comment utiliser le papier z d pour configurer ces deux ennemis Il y a donc encore une chose que nous allons faire pour l'ennemi à distance, puis nous irons de l'avant Et c'est ainsi que nous allons affronter l'ennemi à distance. Nous allons accéder au widget de sa barre de santé et le configurer pour qu'il ne soit pas visible. Et si nous l'avons fait, c'est parce que nous voulons simplement améliorer l' apparence de notre niveau. OK ? OK. que leurs barres de santé ne sont plus visibles dans le jeu, c'est cool. Configurons-le également pour l'ennemi mêlé. Je veux dire, avec le widget. Nous n'avons pas besoin que cette barre de santé soit visible. C'est une bonne chose. Maintenant que c'est fait. OK. Développez un niveau. Voi a fini. Maintenant que nous en avons terminé, apportons un autre ajustement à l'ennemi à distance Ce qui va être le cas, nous allons le configurer. Il s'agit en fait de deux ajustements. La première est que nous allons apporter un léger ajustement à sa vélocité. Et à l'heure actuelle, il semble se heurter à l'ennemi à distance, ce que nous ne voulons pas dire Nous voulons donc que l' ennemi de mêlée soit capable de se déplacer et de ne pas interagir avec l'ennemi à distance, car en ce moment il s'y attache, ce qui n'est pas ce que nous voulons Ensuite, nous voulons le configurer de telle sorte que l'ennemi à distance, une fois que vous atteignez une certaine distance, cesse de vous lancer des projectiles Nous voulons qu'il ne lance que des projectiles dans une plage spécifiée OK ? C'est ce que nous allons faire. Ensuite, 88. 85 Comment éviter que vos ennemis ne se coincent les uns les autres: Dans cette vidéo, commençons par le simple problème de base. Nous avons un ennemi de mêlée. OK. Alors, allez, suivez-moi. Suivez-moi. Allez, allez, ici. OK. Mais une fois qu'il atteint l' ennemi à distance, il reste bloqué Alors résolvons ce problème, d'accord ? Maintenant, la façon dont nous allons résoudre ce problème est passer au plan Me NEM OK. Et nous allons sélectionner le composant de la capsule, car c'est là que se produisent la plupart des collisions, d'accord ? Nous allons maintenant entrer dans les détails, et je veux rechercher sa collision. Maintenant, pour le moment, il est configuré pour bloquer toute dynamique, et changeons cela en pasteur. Maintenant qu'il est dans un état personnalisé, notez que nous pouvons modifier ses réponses aux collisions dans tous les domaines. Nous allons donc sélectionner un pion et le configurer pour qu'il soit ignoré, afin qu'il puisse être configuré pour ignorer, superposer ou bloquer, mais nous allons simplement le configurer pour ignorer complètement les pions en général, Une fois cela fait, nous compilons rapidement. Maintenant, testons-le rapidement et voyons s'il fera réellement le travail. OK ? OK. Et voilà. Donc, il ignore complètement maintenant, Oh, snap, je dois courir C'est bon, je suis mort. Mais vous pouvez voir que maintenant il ignore complètement l'ennemi à distance et qu'il ne restera plus coincé dessus Oui, c'est en gros la solution. Passons à autre chose. 89. 86 Création d'une gamme d'attaque pour l'ennemi ciblé: OK. Permettez-moi de vous montrer rapidement le résultat final car l'ennemi attaquait constamment, mais maintenant il attaque le joueur. Cependant, une fois que je sors d'une certaine portée, il cesse d'attaquer le joueur. Quand je reviens à portée, il commence à attaquer. Et une fois que je suis sorti de cette zone, il arrête immédiatement d'attaquer le joueur. C'est ce que nous voulons. Maintenant, laissez-moi vous expliquer le code étape par étape. Passons donc à l'ennemi à distance. La toute première chose que nous allons faire est d'ajouter une grande sphère. Ce type de sphère vous oblige donc à entrer, bien sûr, dans la capsule et à ajouter une sphère. J'ai réglé ma sphère à environ 20 unités de rayon. Vous pouvez le configurer comme le rayon de votre choix. Et j'appelle ce champ d'attaque par collision de sphères. Une fois la portée d'attaque configurée, il suffit d'ajouter simplement deux événements différents, d'accord ? Le premier événement est le chevauchement de début et le chevauchement de fin est le second. Une fois que vous avez créé ces deux événements, passons au graphique des événements. Maintenant, la première chose que nous voulons faire, c'est juste avant que la détection du joueur commence à vérifier s'il a une longueur d'avance, ne commence à vérifier s'il a une longueur d'avance, nous voulons qu'il effectue une simple vérification sous une nouvelle variable, une valeur booléenne, appelée portée d'attaque En gros, cela indique si le joueur est à portée d'attaque ou non. Donc, si c'est vrai, ça continue. Si c'est faux, cela ne fait rien. Maintenant, lorsqu'il s'agit gérer réellement la portée d'attaque, commençons par examiner les deux événements. Nous avons l'événement de début de chevauchement du composant. Et nous avons l'événement de chevauchement de fin de composant. Maintenant, cela mène à deux choses différentes. Ils sont tous deux attribués au héros parce que nous voulons uniquement que le composant soit le héros à l'origine de cela Et maintenant, s'il a commencé à se chevaucher, sa portée d'attaque deviendra vraie. S'il met fin au chevauchement, il définit la portée d'attaque sur off, puis juste pour des raisons de clarté visuelle. Il indique s'il est à portée d'attaque, il indique s'il est à portée d'attaque. Une fois hors de portée d'attaque, il s'imprime en toute sécurité et déclenche le tir balle magique pour empêcher l'ennemi à distance de tirer le ballon Voyons cela en temps réel. Je suis maintenant à portée d'attaque. Je suis maintenant en sécurité. Je suis à portée d'attaque. Je suis maintenant en sécurité. Mais maintenant, bien que la portée d' attaque soit là, nous passons maintenant dans la zone de détection, d'accord ? Parce que cela permet également de détecter les pattes qui provoque réellement les attaques Maintenant que je suis à portée d'attaque, je touche le pion qui détecte et il commence à m'attaquer Mais quand je pars, je suis maintenant en sécurité, et l'appareil cesse de m'attaquer et de me lancer des projectiles C'est la logique simple utilisée pour créer une zone d' attaque autour de l'ennemi à distance , puis utiliser la détection pour gérer le lancement de projectiles vers 90. 87 Un regard sur le niveau: C'est bon. Maintenant que nous avons terminé travailler sur ces IA, plaçons-les dans un niveau. Revenons aux niveaux et maintenant que nous avons fini de travailler au niveau développeur, passons au niveau 1. Maintenant, c'est notre niveau 1 actuel, et nous allons faire un peu plus de conception de niveaux car ce niveau a été conçu pour être très ouvert. Compressons-le pour qu'il occupe une surface beaucoup plus petite ce qui est en fait assez simple. Nous allons récupérer ces deux objets au début du niveau et les déplacer ici. OK, c'est beaucoup, beaucoup mieux avec ce changement. Et puis il y a notre personnage de joueur. Donc, pour l'instant, c'est depuis le début du niveau. Oh, il y a autre chose que nous n'avons pas ajouté. Il y a donc ce petit bloc que j'ai ajouté au niveau. OK, je le traîne ici. Faites-le glisser ici. Cela empêche essentiellement le joueur de monter complètement les escaliers, juste un pâté de maisons. Et maintenant, nous avons ces petites étapes que le joueur ces petites étapes que le joueur peut suivre. Assurez-vous qu'à l'intérieur de la ressource méga-scans, si vous avez utilisé une ressource méga-scan, pour vous assurer que la collision fonctionne correctement, assurez-vous de rechercher les paramètres de collision dedans, et vous voulez vous assurer qu'elle est configurée pour utiliser une collision complexe aussi simple que possible afin de garantir que le joueur peut réellement marcher dessus correctement. Maintenant que c'est fait, voyons voir si le joueur part d'ici. Nous les ferons entrer, puis ils commenceront par combattre un seul ennemi au corps à corps Ensuite, ils avanceront et il y aura un ennemi à distance là-haut, puis il y aura un autre ennemi de mêlée à combattre, puis un ennemi à distance Et une fois qu'ils auront terminé, ils monteront les escaliers et il y aura un boss là-haut, d'accord ? Passons maintenant à la conception de niveaux supplémentaires de base. Je vais le récupérer et le copier. La raison pour laquelle je le fais, c'est parce que je veux, voyons voir, d'accord, ce ne sera pas suffisant pour moi. Ce que nous allons faire, c'est ajouter une forme, et vous vous demandez peut-être quelle forme, nous voulons juste un simple cube. Mettons-le à l'échelle. Débloquons la mise à l'échelle. Je pense à une échelle de 50 sur le X, dix sur le Y, puis de 50 sur l'horizontale. OK ? Maintenant, nous avons cette énorme ombre projetée, puis je vais sélectionner ce bloc. Je ne le mettrai pas en rotation. Je vais le mettre en mouvement. Faisons avancer les choses de cette façon. Sympa. Maintenant, il projette une énorme ombre là-bas. Permettez-moi de faire avancer la caméra de cette façon et je voudrais juste ajuster un peu cette ombre. OK ? C'est comme de la triche dans le développement d'un jeu, d'accord ? Utiliser un objet artificiel pour projeter une ombre. Maintenant, il y a cette ombre qui, je pense, lui donne une bien meilleure apparence. Alors maintenant, lorsque vous sauterez par-dessus, venant ici, vous aurez des ennemis à combattre. Et puis, une fois que les ennemis ont été combattus, vous avancez, puis vous montez les escaliers, et c'est dans cette zone ombragée le boss va être affronté C'est parfait. Mais maintenant, vous remarquerez que notre matériau sprite ne réagit pas à la lumière Ajustons-le donc pour qu' il puisse réellement réagir à la lumière et que nous puissions voir clairement quand le joueur est entré dans la zone d'ombre. C'est ce que nous allons faire dans la vidéo suivante. Ensuite, nous allons faire de la conception des niveaux, ajouter quelques personnages, puis nous terminerons le didacticiel une fois que je vous aurai montré le dernier exercice, qui consiste à créer un boss ennemi. Allons-y. 91. 88 Faire réagir le sprite du joueur à la lumière: OK, donc j'ai placé le joueur juste autour de la zone causée par ce petit objet là-bas parce qu'en ce moment, lorsque les joueurs sont dans l' ombre, ils ont l'air en retard. Lorsque le joueur est éclairé, il a l'air en retard. Nous pouvons donc effectuer un réglage simple pour le faire réagir à la lumière. Tout d'abord, allez dans les paramètres et assurez-vous que les options Afficher contenu du moteur et Afficher contenu du plug-in sont toutes deux sélectionnées. Cela va exposer Unreal Engine à l' ensemble de son moteur et à son contenu de plug-in C'est la raison pour laquelle nous faisons cela, c'est parce que nous allons entrer dans le lecteur, puis nous allons sélectionner le bloc-notes en papier et remarquer que son contenu actuel est le sprite masqué et non éclairé, et nous voulons remplacer cela par le matériau masqué éclairé par le sprite, qui permettra à notre sprite de recevoir de la Passons donc au niveau 1, appuyez sur Play. Je remarque que maintenant notre sprite accepte la lumière et qu'il y réagit La couleur change-t-elle en fonction de l'éclairage rebondissant qui l'entoure ? Littéralement, lorsque la cape n'est pas éclairée, vous pouvez voir que c'est plutôt cool. Et maintenant, chaque fois que le personnage du joueur se déplace dans une zone sombre, vous pouvez voir l'obscurité qui l'entoure. C'est cool. Mais maintenant que c'est fait, ajoutons un peu de lumière au personnage qu'il ait toujours quelque chose qui brille. Maintenant, pour ce faire, il suffit d'entrer dans le héros, sélectionner le composant de la capsule. Et ce que nous voulons faire, c'est ajouter de la lumière. OK, nous allons commencer par un feu ponctuel de base. Faisons-le glisser ici. Et par ici. Maintenant, le personnage emportera toujours un peu de lumière avec lui. Déplacez-le vers le personnage. Voyons à quoi cela ressemble. Remarquez ici, c'est un peu trop clair, ça brille sur tout. Mais lorsque le personnage du joueur se trouve maintenant dans une zone sombre, il a toujours une lumière sur lui. Nous pouvons entrer. Soulevez sa position et déplacez-la vers l' arrière pour l'adoucir un peu, et il vaut mieux maintenant qu'elle ne soit pas visible dans les zones claires. Mais une fois que vous entrez dans une zone sombre, il y a juste un peu de lumière sur le personnage du joueur, ce qui l' aide vraiment à mieux paraître dans la scène. OK. Vous pouvez désormais apporter toutes sortes de réglages à l'éclairage. Vous pouvez changer son positionnement, vous pouvez changer son emplacement. Tout dépend de vous, mais c'est une bonne façon de donner un peu de vie à votre sprite 92. 89 retouches générales pour le niveau: C'est bon. Alors permettez-moi de faire rapidement une conception de niveaux douce et lente. J'ai donc ajouté une autre plateforme ici, je l'ai ajoutée ici. OK, alors voyons vite. Le joueur peut-il accéder à cette plateforme ? Oui, le joueur peut accéder à cette plateforme. C'est une bonne chose. Permettez-moi de le copier-coller. Assurez-vous que ces deux éléments s' emboîtent correctement. Le joueur peut-il sauter sur cette plateforme et ensuite c'est excellent. Maintenant, assurez-vous que c'est un peu difficile. Il est toujours bon de placer un ennemi rangé dans un endroit difficile à atteindre pour le joueur. Permettez-moi de revenir un peu sur sa position. Voyons voir. Mangez-le et c'est bon. Maintenant que cet ennemi à distance est là-haut, je suis ici et je le place, attends, laisse-moi m'assurer que sa position est négative un, moins 20 Maintenant, c'est un ennemi à distance. Je vais placer un autre ennemi à distance juste ici. Négatif sur le positionnement, c'est bien. Ensuite, je vais mettre un neem de mêlée par-dessus. Il s'agit de la prochaine phase du développement du jeu. Lorsque vous aurez terminé votre planification, vous allez créer votre code art et votre animation, puis le son. Cela va créer des composants individuels, mais les composants individuels ne font pas vraiment du jeu cet ennemi, le personnage du joueur, les niveaux. Ce qui caractérise vraiment un jeu, c'est lorsque ces composants sont assemblés de manière à interagir les uns avec les autres. Oh, désolée pour ça. Vous remarquez qu'il a du mal à bouger, pourquoi ? Parce qu'il manque la navigation. Ajoutons rapidement. Voyons voir, un gros maillage nerveux limite le volume Permettez-moi d'augmenter sa taille à environ 20 ici, excellent, puis d'augmenter sa hauteur à environ 20. C'est trop profond. Non, je n'ai pas besoin de beaucoup de largeur. Mettons-le à environ dix. Bien, puis déplacez-le sur tous ces différents personnages. OK. Maintenant, pour ce qui est de sa hauteur, laissez-la tomber au sol pour commencer, puis ajustez-la de manière significative à, disons, 20, afin qu'elle puisse regarder ces zones de navigation D'accord, 20 c'est raisonnable. Peut-être que nous pouvons aller un peu plus haut. Faisons en sorte que ce soit 30. Bien. Il y a ces limites de navigation, augmentez un peu sa largeur, augmentez sa longueur d'environ 30 Je pense que 30, c'est à peu près ce qu'il faut ici. Alors, comme cela bloque la voiture ennemie, c'est suffisant. Ensuite, nous copierons ce volume de limites pour créer un second volume de limites. Et ce volume limité réduira simplement sa largeur car le volume suivant ne fera que tenir. Je ne veux pas qu'il atteigne les escaliers. Ici, nous sommes parfaits, puis copiez-le et collez-le dans le monde, et ici. Le volume de cette prochaine limite doit être encore plus petit, car il suffit de gérer l'arène ici Sympa. Nos ennemis peuvent donc se déplacer dans toutes ces zones. Ensuite, je vais envoyer un autre ennemi masculin ici. Il y en a deux, bien sûr. Et Valla, nous avons tout ce qu'il faut pour atteindre un niveau de base. Hé ! Maintenant, nos ennemis sont réellement capables de nous poursuivre correctement. Celui-là est mort. Sympa. Maintenant que nous arrivons ici, on nous lance des balles magiques. Hé, hé, tu meurs, tu meurs. Celui-là est également mort. Et maintenant, mourez deux, et maintenant que c'est fait, nous passons à autre chose triomphalement Notez maintenant que ce matériau de sprite n'est pas en retard Nous allons donc apporter quelques ajustements uniquement à ce matériau de sprite Nous allons donc sélectionner l'ennemi à distance, accéder à Viewport, sélectionner le flip book en papier et l'ajuster au dernier sprite Ensuite, nous allons y ajouter une lumière ponctuelle. OK. En fait, apportons-le ici. En quelque sorte ici. C'est bon Ensuite, nous allons rapidement ajuster la couleur des lumières pour qu'elle soit verte. Oh, c'est vert. Parfait Ensuite, maintenant que nous avons réglé ce feu pour qu'il soit vert, la prochaine chose que nous allons faire est de réduire le rayon. Voyons voir. Nous allons réduire son rayon d'atténuation directement. Numéro 200. Faisons 150. 150, ce n'est pas assez, 100. Sympa. Maintenant, c'est un joli petit rayon d'atténuation. C'est une bonne chose. Maintenant, avec ça, nous allons revenir au niveau. Et cette fois, je pense, laissez-moi trouver le personnage du joueur et le déplacer ici pour que nous puissions rapidement passer à l'action, tuer ce type Super, viens ici. Maintenant, regardez ça. Oh, mais nous avons un problème. Donc, en ce moment, dans le champ de tir, l'ennemi, les projecteurs sont braqués sur le flip book, alors il est en train d'être inversé Maintenant, connectons-le au composant de la capsule afin qu'il ne se retourne pas. OK. Au revoir. Maintenant, il est tard et il y a cette petite lueur verte. Mais on peut toujours ajuster la position de la lueur verte. On peut le mettre plus près des pieds et le reculer un peu. Juste un petit peu. Nous pouvons réduire son intensité à 2 500 , puis augmenter légèrement son rayon d' atténuation , puis baisser à nouveau son intensité à 1 500 Maintenant, voyons à quoi cela ressemble en termes de gain. prie, meurs. Je t'attaque, au revoir. Maintenant, ça a l'air bien, mais c'est un peu trop près du sol maintenant. Nous l'avons fait, mais c'est cool. Il fait encore froid à l'idée de voir ça. Augmentons-le un peu. Revenez ici, puis soulevez-le un peu plus loin. Ça devrait aller. La prochaine chose que nous allons faire, c'est dans le champ électromagnétique à distance, ouvrir ce projectile, puis nous allons ajouter une lumière, une lumière, lumière ponctuelle OK. Je vais le traîner ici. Et puis, bien sûr, la couleur de la lumière sera le vert, ce beau vert. Et puis le rayon d'atténuation ramènera à environ 1:50. 150, c'est trop. Passons à 100 et voyons si c' est sur laquelle se trouve la sphère ? OK. Voyons maintenant à quoi ressemblent les projectiles. En me lançant un projectile ? Oui, les projectiles ont maintenant une jolie petite lumière qui bouge avec eux C'est juste un toucher doux. Gardez à l'esprit, bien sûr, que vous pouvez Oh, mon Dieu. Mourez, mourez, mourez, mourez. OK, tu es parti. Maintenant, tout cela n'est que pour vous montrer quelques petites touches. ce, sans même ajouter votre propre son personnalisé, ni les effets de chaleur et les dégâts. Maintenant c'est l'heure pour moi, dans la prochaine vidéo, de vous faire passer votre test final, qui sera de créer un boss EM. Avec tout ce que vous avez appris, tout devrait se combiner. 93. 90 Faire un ennemi patron comme entraînement final: Maintenant que vous avez appris tout ce que j'ai à vous apprendre sur les principes fondamentaux du développement en 2,5 D, vous êtes maintenant prêt pour votre entraînement final. Maintenant, dans cette zone ou dans toute autre zone que vous avez désignée pour votre boss , vous allez créer un boss ennemi Il s'agit de votre dernier test d' entraînement avant commencer à créer vos propres projets de jeu. Maintenant, les animations que vous allez utiliser pour ce projet se trouvent toutes dans un simple modèle gratuit sur chaque point IO, appelé Demon Slime. Il propose de nombreuses animations différentes, qu'il s' agisse d'un petit blob un personnage de boss complètement mature Il possède une animation d'attaque, un stop, des flammes et un sort. Maintenant, le lien correspondant va être inclus dans le cours. Maintenant, une fois que vous l'avez et que vous l'avez importé, vous avez maintenant toutes les connaissances nécessaires pour créer un boss simple. illustrer simplement ce que vous pouvez faire le boss pourrait venir attaquer le joueur. C'est un exemple simplifié, d'accord ? Ensuite, vous pouvez faire autre chose, comme, par exemple, frapper de telle sorte qu'une fois que le boss a été attaqué à un certain niveau, il apparaisse en ennemi arrangé Maintenant, j'espère pouvoir l' obtenir en un seul essai. Cela m'a fait du mal. La partie est terminée. OK. C'est donc un exemple simple. Il existe de nombreuses façons de concevoir Boss AI, mais je voudrais vous donner un petit conseil : celle-ci est configurée en deux phases différentes. Dans la première phase, il ne fait qu'une attaque au corps à corps lorsqu'il est à portée Dans la deuxième phase, il apparaît dans un seul ennemi à distance censé attaquer le joueur Il ne s'agit que d'un simple ensemble d' exemples de ce que vous pourriez faire pour être créatif. Si vous ajoutez le moignon, vous pouvez faire en sorte que, dans la première phase, il choisisse au hasard entre une attaque au corps à corps et la souche ou le lancement d'un sort peut être appelé sous forme d'animation avant d' attirer cet ennemi à distance Il existe de nombreuses manières de créer un boss. Je ne peux que faire des recommandations. En tant que développeur de jeux, c'est à vous de créer des choses pour vous-même. À l'issue de ce dernier exercice d' entraînement, je tiens à vous remercier d'avoir suivi le cours de développement de jeux vidéo en 2,5 D. J'espère que vous avez beaucoup appris pour progresser dans le développement de jeux vidéo. N'oubliez pas de toujours réfléchir, planifier avant d'exécuter. Enfin, souvenez-vous vraiment que planifier les choses est vraiment trop difficile, d' accord ? La planification est bonne. En tant que développeur de jeux, n'ayez donc pas peur de simplement écrire des choses et de vous en servir comme guide. Et mon dernier conseil simple vise à simplifier la façon dont vous aimez développer des jeux Commencez toujours par un design généralisé, puis passez au code et enfin à cet art. Et enfin, du son pour tout ce que vous faites pour votre jeu. Jusqu'à notre prochaine rencontre, je suis hyper développeur et si vous avez des questions, peux m'envoyer un message, mais j'espère que vous avez beaucoup appris grâce à ce cours Sinon, sortez et n'oubliez pas jeu de vos rêves ne se construira pas tout seul. Je vous souhaite bonne chance.