Unreal engine 5 Créer un jeu FPS avec une bataille de boss | Navid Ansari | Skillshare

Vitesse de lecture


1.0x


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

Unreal engine 5 Créer un jeu FPS avec une bataille de boss

teacher avatar Navid Ansari

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.

      Promo 00 FPS

      1:41

    • 2.

      01 Créer un projet et importer des fichiers

      3:18

    • 3.

      Plan 02 FPS

      4:45

    • 4.

      03 Regardez autour de vous

      4:16

    • 5.

      04 Aller de l'avant à l'arrière

      2:47

    • 6.

      05 Aller à gauche et à droite

      1:39

    • 7.

      06 Ajouter un pistolet

      2:19

    • 8.

      07 Sprint

      2:53

    • 9.

      08 Plan d'animation

      3:15

    • 10.

      09 Obtenir la vitesse du personnage

      2:24

    • 11.

      10 Espaces de mélange

      5:49

    • 12.

      11 Interface utilisateur à cheval

      3:17

    • 13.

      12 Ailes à chevalière

      2:42

    • 14.

      13 Ciblage

      4:19

    • 15.

      14 Commencer à cibler

      4:19

    • 16.

      15 Cibler des animations

      3:12

    • 17.

      16 Objectif de marche

      6:12

    • 18.

      17 Monts d'anime

      4:52

    • 19.

      18 Flash du museau

      4:34

    • 20.

      19 Son de tir et éjection d'obus

      1:58

    • 21.

      20 Trace de ligne lorsque nous visons

      6:48

    • 22.

      21 Trace de ligne pour un état de non-ciblage

      3:30

    • 23.

      22 Résultats de retour

      2:33

    • 24.

      23 VFX du traceur de feu

      4:47

    • 25.

      24 Effets spéciaux liés à l'impact du feu

      3:59

    • 26.

      Mode Gun Burst 25

      4:10

    • 27.

      26 Pointe de la corde d'impression

      3:25

    • 28.

      27 Gestionnaire de munitions

      3:17

    • 29.

      28 Événement personnalisé de rechargement du pistolet

      3:06

    • 30.

      29 Remplissez le magazine

      4:32

    • 31.

      30 Utilisation du reste des munitions conservées

      1:53

    • 32.

      31 Manuel de recharge

      4:21

    • 33.

      32 Animation recharger

      5:14

    • 34.

      33 Recharge sonore

      1:58

    • 35.

      34 Allumage lors du sprint

      3:29

    • 36.

      35 Réparer la course et le tirage

      2:03

    • 37.

      Arrière-plan d'interface utilisateur 36 Ammo

      3:02

    • 38.

      37 Widget boîte horizontale

      4:26

    • 39.

      38 Ammo UI pour les magazines et le stockage

      4:59

    • 40.

      39 Mise à jour de l'interface utilisateur ammo

      4:30

    • 41.

      40 Objet d'ammunition

      4:20

    • 42.

      Plan Kraken 41

      3:30

    • 43.

      Contrôleur IA 42

      4:24

    • 44.

      43 Passer à Kraken

      5:23

    • 45.

      44 Vérifiez si le joueur est à portée

      3:07

    • 46.

      Joueur de chasse Kraken 45

      3:27

    • 47.

      46 Kraken reçoit des dommages

      2:38

    • 48.

      47 Système de santé Kraken

      3:32

    • 49.

      48 Kraken Health UI

      6:12

    • 50.

      49 Visibilité de la barre de santé Kraken

      2:32

    • 51.

      Plan d'animation 50 Kraken

      3:58

    • 52.

      Animation de mort de 51 Kraken

      2:57

    • 53.

      Passage 52 au décorateur

      3:11

    • 54.

      53 Tâche d'attaque Kraken

      3:57

    • 55.

      54 animations d'attaque Kraken

      4:50

    • 56.

      Joueur de dommages Kraken de 55

      2:18

    • 57.

      56 Santé des joueurs et système de bouclier

      4:50

    • 58.

      57 Interface utilisateur santé des joueurs

      6:01

    • 59.

      58 Mettre à jour l'interface utilisateur santé

      3:27

    • 60.

      59 Type d'article

      3:17

    • 61.

      60 Articles à ramasser

      4:53

    • 62.

      Jeu sur UI

      3:33

    • 63.

      62 sons de pas de pied

      3:44

    • 64.

      63 L'entrée ne fonctionne pas après la réinitialisation

      1:08

  • --
  • 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.

44

apprenants

2

projets

À propos de ce cours

Dans ce cours, nous commencerons par créer notre personnage FPS qui peut se déplacer, regarder et viser des objets.

Ensuite, nous ajouterons quelques interfaces utilisateur à notre personnage, donc maintenant où nous allons aller, nous ajouterons un système de munitions pour gérer les quantités de munitions dont nous disposons

ensuite, nous ajouterons des mécanismes d'arme de tir et ajouterons des effets visuels (système Niagara) et du son 

ensuite, nous ajoutons quelques interfaces utilisateur pour le gestionnaire d'ammunition et l'interface utilisateur de protection avec un plan de widget

puis nous aurons un système de rechargement 

puis nous commencerons par les animations pour jouer les animations de rechargement de marche et de sprint et les animations de tirage d'événements

puis nous allons créer une IA comme ennemi et nous allons utiliser un maillage de squelette kraken pour qu'elle puisse attaquer un joueur et le tuer également.

Ensuite, nous créerons un plan d'article modulaire qui peut être un article de munitions, un article de santé ou un article de bouclier

Rencontrez votre enseignant·e

Teacher Profile Image

Navid Ansari

Enseignant·e

Hello, I'm Navid.

Voir le profil complet

Level: All Levels

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. Promo 00 FPS: Dans ce cours, nous allons créer un jeu FPS. Nous commençons par la façon dont nous pouvons regarder autour de nous et nous déplacer. Ensuite, nous ajouterons une arme à distribuer ou à incarner. Ensuite, à l'aide de certains outils du plan du widget, nous ajouterons un croisement sans utiliser de texture ni d' Ensuite, nous optons pour les animations, afin de pouvoir courir , marcher, marcher et tirer. Et nous avons un AM sur le site, ce qui nous permet de regarder la lunette et de filmer. Ensuite, nous ajouterons des effets visuels, son chaque fois que nous tirons avec un pistolet. Ensuite, nous rechargeons le pistolet, comme vous pouvez le voir, il a l'air génial Le rechargement aura également un son plein. Ensuite, nous passerons en revue conception approfondie de l'interface utilisateur de notre système de munitions, puis de notre barre de santé et de notre barre de bouclier. Ensuite, en tant qu'ennemi, nous allons importer un maillage squelettique fissuré, et nous utiliserons un contrôleur IA pour contrôler le craquage afin qu'il puisse poursuivre le joueur, attaquer le joueur et tuer le joueur également Et on peut aussi tuer les rayonnages. Ensuite, nous aurons quelques objets, par exemple des munitions, des points de santé, un bouclier, afin que nous puissions les récupérer. Et pour cela, nous allons créer un plan modulaire pour l'article Donc, si vous placez l'un de ces objets dans le niveau, vous déciderez ce que doit être cet objet. Commençons donc ce cours ensemble. 2. 01 Créer un projet et importer des fichiers: Pour créer un jeu FES, nous devons créer un projet, et j'utilise ARL Engine 5.5 0.3. vous plaît, si vous êtes débutant, tenez-vous-en à cette version, car une version plus récente changera le nom des nœuds, et cela vous embrouillera. Installez donc le moteur ARL, 5.5 0.3 et ouvrez-le. Et ici, allez aux jeux et ici, créez un projet vierge, non ? Nous voulons que ce soit dans Blueprint, le maximum pour ordinateur de bureau, et nous n'avons pas besoin de contenu de démarrage, et je veux l'appeler FPS, non ? Head Create et il créera ou projettera. Alors que nous ouvrons notre nouveau projet, dans la description de cette vidéo, il y a un fichier zip appelé fps point zip. Téléchargez-le. Mets-le sur ton bureau, comme je le fais ici. Et ne cliquez pas dessus pour l'ouvrir. Vous pouvez voir qu'il y a un fichier FPS là-bas. Vous devez le glisser-déposer et le placer sur votre bureau. Les chemins du fichier qu'il contient sont très importants. Donc, si vous ouvrez ce dossier FPS à l'intérieur, il devrait y avoir un dossier d'actifs. C'est ça. Cela ne devrait pas être autre chose. Changer les noms ici n'est pas écrit pour rien. Vous pouvez modifier les noms ou repositionner des éléments dans le moteur ARL Tu ne devrais pas le faire ici. Non, ouvrez le projet ARIO Engine. Accédez au tiroir de contenu, cliquez avec le bouton droit sur le dossier de contenu, puis cliquez sur Afficher l' explorateur. C'est ça. Non, cela ouvrira le dossier de contenu de notre projet FPS, n'est-ce pas ? Vous pouvez simplement glisser-déposer ce dossier FPS à l'intérieur, et savoir que si nous allons dans le tiroir de contenu, il y aura un dossier FPS, mais il n'y aura rien. Nous devons fermer un moteur Ale ouvert, mais pour le moment, laissez-le tel quel. Nous devons modifier certains paramètres, et après cela, nous fermerons un moteur Aureo ouvert, n'est-ce pas ? Tout d'abord, allez dans Modifier, allez dans les préférences de l'éditeur, et ici, recherchez « Ouvrir ». Et dans l'emplacement ouvert de l'éditeur d'actifs, remplacez-le par défaut par la fenêtre principale. Donc, peu importe ce que nous ouvrons, il sera ouvert ici. Il sera plus facile de travailler avec. Maintenant, tu peux simplement le fermer. Ensuite, la commande de la tête se trouve sur votre clavier pour enregistrer ce niveau. Vous pouvez simplement l'enregistrer dans le dossier de contenu. Sauvegardez la tête, et elle sera sauvegardée. Non, vous devez ensuite modifier les paramètres du projet, accéder à Cartes et modes, et remplacer la carte de départ de l' éditeur la nouvelle carte que nous avons enregistrée. Après cela, allez ici pour la carte par défaut du jeu, remplacez-la également par une nouvelle carte . C'est ça. Après cela, vous pouvez simplement le fermer. Tout ira bien. Vous pouvez simplement fermer le moteur Are. Et vas-y et ouvre-le à nouveau. Non, le moteur arrière n'est pas ouvert. Vous pouvez accéder au tiroir de contenu. Dans le dossier FS, vous pouvez voir qu'il y a toutes ces ressources et que nous voulons les utiliser pour créer un jeu sur FPS. Il y a des graphismes, des textures et un maillage squelettique que vous souhaitez utiliser pour créer un jeu sur FPS. 3. Plan 02 FPS: La première étape pour créer notre jeu FPS n'est pas de créer un plan Mais avant cela, je veux que cela soit organisé. Donc, dans ce dossier FS, je veux cliquer avec le bouton droit de la souris, aller dans Nouveau dossier et créer un nouveau dossier, et je veux l'appeler blueprint Tous nos plans seront donc là. Accédez au dossier des plans, cliquez dessus avec le bouton droit de la souris, créez une classe de plan correspondant type de personnage car elle contient composante de mouvement du personnage et il sera plus facile de créer un jeu FPS, Créez donc une classe de personnage. Je veux l'appeler BP FPS. C'est ça. Je vais cliquer dessus pour l'ouvrir et vous pouvez voir qu'il s' ouvrira ici. C'est bon Non, parce que nous voulons créer un jeu FPS, un jeu à la première personne. C'est pourquoi je ne veux pas utiliser ce maillage que nous avons ici. La première chose importante dans le jeu FS est la caméra. Cliquez donc sur la capsule, puis sur AD et ajoutez une caméra. Alors recherchez un appareil photo. Mets-le là. C' est notre appareil photo. Ensuite, en tant qu'enfant de cet appareil photo, je souhaite ajouter un maillage squelettique. Si je me contente de tourner ça en dérision et de le laisser tomber, si je le dis comme un enfant, ce sera génial, mais on ne peut pas faire ça Nous pouvons simplement laisser cela, mais cliquer sur la caméra, cliquer sur Ajouter et ajouter un maillage squelettique. Recherchez un maillage squelettique et ajoutez-le ici. J'ai envie de l'appeler armes parce que dans le jeu FBS, nous ne verrons que les armes C'est pourquoi je l'appelle armes. ce, j'ai envie de cliquer sur les bras, de passer à Skeleton Mesh Acid et de choisir le mannequin Sk. Et vous pouvez le voir ici. heure actuelle, la position des choses n'est pas bonne ici, donc je veux d'abord changer la position de la caméra. Je veux en parler comme ça. Je pense que c'est une bonne chose en plus d'une collision, non ? heure actuelle, vous pouvez voir que chaque fois que nous changeons quelque chose, cela augmente de dix unités, n'est-ce pas ? Ou nous pouvons simplement changer cela en cliquant ici et mettre à un ou nous pouvons simplement le désactiver complètement. Non, nous pouvons mieux le positionner. Par exemple, ici en haut du composant de la capsule. Non, le positionnement du surmain n'est pas correct, alors cliquez sur les bras et nous devons le baisser comme ça Par exemple, laissez-moi le baisser jusqu'à ce qu'il atteigne le bout de cet appareil photo, non ? Encore une fois, il faut que ça baisse comme ça. Hein ? Non, pour que tu voies les mains, ce que je veux, est-ce que je veux choisir l'animation ici ? Par exemple, cliquez ici, modifiez le plan d'utilisation de l'animation pour utiliser la ressource d'animation Et avec cela, nous pouvons simplement choisir l'animation idéale, non ? Bras inactifs. Maintenant, comme vous pouvez le constater, nous n'avions pas du tout besoin de le faire pivoter. Donc, rien qu'avec ça, tout fonctionne bien, non ? C'est toujours une bonne idée de placer l'animation au ralenti, puis de changer de position. Ce sera plus facile comme ça. Maintenant, pour que vous le voyiez mieux, je veux aller dans le tiroir de contenu ici, cliquer avec le bouton droit de la souris, accéder à la classe Blueprint et créer une base de mode de jeu Et je veux l'appeler GM BP pour le mode jeu. Blueprint, et je veux l'appeler FPS. Je vais cliquer dessus pour l'ouvrir. La seule chose que je veux changer ici, c'est la classe punk par défaut. Cliquez ici et remplacez-le BPPS Head. Sachez que si vous allez sur notre nouvelle carte et que vous passez à la création de mots ici, nous pouvons changer le mode de jeu pour ne plus utiliser GMBPFPS . Juste avec ça, si vous écrasez le jeu, non, vous pouvez voir les bras. Bien entendu, nous ne pouvons rien déplacer car nous n'avons pas écrit de code pour que vous puissiez mieux le voir. Je veux cliquer ici et l' ouvrir dans les nouvelles fenêtres de l'éditeur. Pi, non ? Tu peux le voir. L'un des problèmes que nous avons ici c'est que nous ne pouvons pas voir les bras, n'est-ce pas ? Pour que nous puissions le voir, nous pouvons changer la position des bras. Par exemple, parlez-en un peu, comme ceci. Bien entendu, nous le modifierons à l'avenir. Mais non, on le voit mieux. Encore une fois, changeons-le, parlons-en un peu et courons. Non, tu le vois mieux. Je voudrais également l'amener un peu vers la gauche. Comme ça. Si tu cours, non, tu peux mieux voir les bras. Bien entendu, ce n'est pas la position finale que vous souhaitez y placer simplement pour ne pas la laisser avec ces valeurs, et nous la modifierons ultérieurement. Pour le moment c'est bien. 4. 03 Regardez autour de vous: n'est pas la première chose que vous voulez faire, nous voulons pouvoir regarder autour de vous. Et pour cela, nous avons besoin d'une contribution. Allons donc dans le tiroir de contenu et ici, dans le dossier FPS, clic droit ici, créons un nouveau dossier et je veux l'appeler entrées, n'est-ce pas ? Cliquez dessus pour l'ouvrir , cliquez avec le bouton droit de la souris ici, accédez à la saisie et créez la carte d'entrée en contexte. Je veux l'appeler IMC FPS, c'est vrai. Cliquez dessus pour l'ouvrir. Ensuite, nous voulons créer une action d'entrée. Alors, cliquez avec le bouton droit de la souris ici, accédez à la saisie et créez une action de saisie. Je veux l'appeler, je regarde autour de moi, d'accord. Avec cela, parce que nous voulons regarder vers le haut, vers le bas, à gauche et à droite, c'est pourquoi je veux changer cela en axe vers le. Assurez-vous de sauvegarder, et après cela, nous devons le mapper à l'intérieur ou saisir la carte dans son contexte. Donc, ici, créez une nouvelle cartographie, et ce que vous voulez cartographier, c'est que je regarde autour et comment nous voulons voir autour de vous avec le plus de X et de Y. Donc, cliquez ici, allez au plus grand nombre et changez-le en X, Y par rapport à l'axe, n'est-ce pas ? Juste sur ce point, nous devons implémenter cet IMCFPS dans notre plan directeur, n'est-ce pas cet IMCFPS dans notre plan directeur Alors, allez au graphique des événements ici, obtenez d' abord le contrôleur du joueur, obtenez le contrôleur du joueur. Et à partir de là, nous devons en extraire le composant d'entrée amélioré et y ajouter ou y saisir du contexte de mappage. Ajoutez un contexte de mappage d'entrée, à droite. Connectez-y l'épingle d'exécution cliquez ici et choisissez IMCFS Maintenant que c'est activé, si vous cliquez avec le bouton droit de la souris ici, recherchez un aperçu, vous pouvez voir qu'il y a un événement d'action ici. Avec ça, ça nous donnera X et Y de sursouris, non ? Alors, prenez-le ici et cassez-le. Il a X et Y pour sursouris, et avec cela, nous pouvons changer le O de la caméra, par exemple, ou le contrôleur avec le X de la souris et changer le pas de la caméra ou contrôleur avec le Y de overmse Donc, ici, la première chose que vous voulez faire, ajouter au contrôleur une entrée pour regarder à gauche et à droite, et nous pouvons utiliser juste le s de celui-ci, n'est-ce pas ? Ensuite, nous voulons pouvoir regarder vers le haut et vers le bas. Et pour ce faire, nous devons changer le pitch du contrôleur, le contrôleur, l'entrée de tonalité, n'est-ce pas ? Et nous devons modifier la tonalité par Y de notre souris. Juste avec ça, si nous nous dirigeons vers la compilation et la relançons, non, vous pouvez voir, je peux regarder à gauche et à droite. Je ne peux pas regarder de haut en bas, mais la gauche et la droite fonctionnent bien. La raison pour laquelle nous ne pouvons pas regarder de haut en bas, si vous passez à la classe par défaut et que vous recherchez le pitch, il existe un pitch de rotation du contrôleur qui, par défaut, est désactivé. Si vous l'activez et qu'il n'y a pas de jeu Runo, non, nous pouvons regarder de haut en bas. Mais le problème quand on regarde vers le haut et vers le bas, c'est que c'est inversé. Nous devons donc changer quelque chose. Donc, chaque fois que nous utilisons notre mode, nous avançons, nous levons les yeux, n'est-ce pas ? Pour ce faire, il existe plusieurs façons de simplement multiplier ce Y par moins un comme ceci, multiplier par moins un, et cela fonctionnera. Nous l'avons mis ici. Maintenant, si vous renversez le jeu avec ça, nous pouvons regarder en haut et en bas gauche et à droite, tout va bien. Mais la meilleure façon de le faire n'est pas comme ça. Nous pouvons simplement accéder à la carte d'entrée dans son contexte et ici, ajouter un modificateur à la plupart des X et Y. Ajoutez un modificateur et le type sera le négatif, mais nous voulons simplement annuler le Y Alors développez-le et dites-lui de ne pas annuler X ou Z, juste d'annuler le Y. Assurez-vous que vous êtes en sécurité. Non, en cours de jeu, vous pouvez voir que nous pouvons regarder en haut, en bas, gauche et à droite, et tout semble parfait. Tout est beau. Maintenant, nous pouvons regarder autour de nous. Il est temps de se déplacer. 5. 04 Aller de l'avant à l'arrière: Non, nous voulons pouvoir avancer et reculer. Pour ce faire, nous devons aller dans le dossier de saisie FPS, cliquer avec le bouton droit de la souris ici, créer une action de saisie, et je veux l'appeler un go forward. En arrière. Je vais cliquer dessus pour l' ouvrir car pour avancer et reculer, il ne s'agit que d'une seule valeur Nous pouvons donc simplement la remplacer par l'axe 1 D, une valeur flottante. Vous pouvez simplement l'enregistrer et passer maintenant à IMC FPS. Nous devons le cartographier là-bas. Donc, ici, ce que vous voulez cartographier s'appelle avancer et reculer. Non, quand voulons-nous avancer, en cliquant ici, tête W. Et quand nous voulons revenir en arrière, en cliquant ici pour ajouter une autre entrée et en cliquant sur les en-têtes ici. Chaque fois que nous appuyons sur S, nous voulons revenir en arrière. Mais par défaut, chaque fois que nous appuyons sur W ou S, il en passe un. Nous devons donc annuler le S qu'il passe moins un Allez donc ici pour modifier et ajoutez-y un modificateur négatif. C'est ça. Maintenant, avec cela, nous pouvons avancer et reculer. Et comment nous pouvons le faire, ici, nous pouvons dire : «  J'irai de l'avant ». Et en arrière, c'est vrai. Une fois cela fait, nous pouvons ajouter une entrée de mouvement en fonction de la valeur d'action dont nous disposons. Nous pouvons simplement relier cette valeur d'action à ici, mais la direction est vraiment importante. Dans quelle direction ? Nous devons avancer et reculer. Et cette valeur d'échelle nous donne une valeur comprise entre moins un et un. Si nous appuyons sur W, cela nous en donnera un. Si nous appuyons sur S, cela nous donnera moins un. La direction que nous voulons prendre est donc un vecteur avant pour avancer, et le vecteur avant est multiplié par cette valeur d'échelle. Chaque fois que nous aurons un S, ce sera moins un. Donc vecteur avant, multipliez par moins un, cela nous donnera un vecteur arrière, non ? Nous pouvons donc obtenir la rotation de contrôle, obtenir la rotation de contrôle. Et à partir de cela, nous pouvons obtenir le vecteur avant, n'est-ce pas ? Et avec cela, nous pouvons avancer et reculer. Compilons et lançons un jeu de mots. Maintenant, si vous avancez, vous verrez que cela fonctionne bien. Nous pouvons avancer et reculer et regarder à gauche et à droite. Ça a l'air génial. Mais la prochaine chose que nous voulons faire, pouvoir aller à gauche et à droite. À l'heure actuelle, D et A sur notre clavier ne font rien. Comme nous l'avons fait pour Ford Victor, nous avons la même chose pour Right Victor. Je voulais te lancer ce défi. Essayez d'aller à gauche et à droite avec D et A sur votre clavier. Nous allons le faire ensuite. 6. 05 Aller à gauche et à droite: Pour aller à gauche et à droite. Comme nous l'avons fait dans la dernière vidéo, nous devons créer une action de saisie. Alors, cliquez avec le bouton droit de la souris ici, accédez à saisie et créez une action de saisie. Nous sommes dans le dossier des entrées. Je veux l'appeler IA, aller à gauche, à droite. Je vais cliquer dessus pour l'ouvrir. En haut, je veux qu' il flotte aussi, parce que nous allons soit à gauche, soit à droite. OK ? Et maintenant, allez dans IMCFPS, créez un nouveau mappage Nous voulons cartographier, D, aller à gauche et à droite. Choisissez IA, allez à gauche et à droite. Et chaque fois que nous appuyons sur D, nous voulons aller à droite. Et ajoutez une autre entrée chaque fois que nous appuyons sur A sur notre clavier, alors cliquez ici, si vous avez un A sur votre clavier, nous voulons aller à gauche. Mais encore une fois, dans ces deux cas, il en sera adopté un. Chaque fois que nous appuyons sur A, nous voulons l'annuler, sorte qu'il passe moins un Cliquez ici, ajoutez un modificateur et choisissez la négation. C'est ça. Assurez-vous d' économiser, non, allez ici. Et comme nous l'avons fait pour avancer et reculer, nous avons besoin d'inventer, d'aller à gauche, écrire l'événement, n'est-ce pas ? Et encore une fois, nous devons ajouter du mouvement à la saisie, n'est-ce pas ? Et avec cela, la valeur d'échelle, comme vous le savez, devrait être une valeur d'action. Mais la direction du mot, encore une fois, nous pouvons obtenir cette rotation de contrôle, et à partir de là, nous pouvons obtenir le bon vecteur et le relier à la direction du mot. Juste avec cela, nous avons compilé une sauvegarde et un jeu Runo. Maintenant, vous pouvez voir, je peux aller à gauche et à droite et tout fonctionne bien. Et c'est tout. C'est tout ce que nous devons faire pour nous déplacer ou. 7. 06 Ajouter un pistolet: Il n'y a aucune autre chose que nous voulons faire. Nous voulons donner une arme à notre joueur. Voyons comment nous pouvons le faire. Pour le pistolet, le pistolet que nous avons importé n'est qu' un treillis squelettique. Nous pouvons donc simplement cliquer sur nos bras ici et cliquer sur ajouter une machine squelettique ici, n'est-ce pas ? Et le maillage squelettique, je veux l'appeler pistolet. C'est vrai. Sur ce, je veux aller ici et choisir l' atout du maillage squelettique plutôt que le pistolet. Mais si vous allez dans la fenêtre d'affichage, vous pouvez voir que la rotation du canon n' est pas bonne du tout, n'est-ce Alors, comment pouvons-nous le mettre en main ou dans le maillage squelettique d' un personnage ou d'un personnage ? Si vous cliquez ici, cliquez sur cette loupe trouvez le squelette et double-cliquez dessus Il devrait y avoir une prise ici que nous pouvons utiliser. Ça s'appelle Grip Point, non ? ce, si vous cliquez ici et que vous cliquez sur ou que vous utilisez un pistolet et que vous choisissez le socket parent comme point de préhension, cela devrait être au niveau du personnage, mais pour l'instant, c'est là-haut, non ? Ce n'est pas bon. La raison pour laquelle il se trouve là-haut, c'est parce qu'il est décalé par rapport à son emplacement. Donc, pour résoudre ce problème, nous pouvons simplement cliquer ici et cela le mettra en main. Non, ça y est, compilons et exécutons le jeu. Non, vous pouvez voir, nous pouvons voir le pistolet, tout regarder, non ? Tu peux voir. Mais le positionnement de notre main n'est pas correct, le moment, nous ne pouvons pas le découvrir, n'est-ce pas ? Nous devons donc le réduire un peu. Cliquez donc sur les bras et abaissez-les un peu. Permettez-moi de le résumer comme ça , sans compilation de tête ni testo pour voir si tout va bien. Si cela vous convient, vous pouvez simplement l'utiliser. Mais encore une fois, vous pouvez le déplacer à l'endroit de votre choix. Pour moi, en ce moment, c'est une bonne chose. Mais en changeant simplement ce bras, vous pouvez le faire avancer, reculer, descendre vers le haut. Tu peux faire ce que tu veux. Cette position pour le non est bonne pour. 8. 07 Sprint: Il n'y a aucune autre chose que nous voulons faire. Nous voulons être capables de sprinter, non ? Voyons donc comment nous pouvons le faire. Pour ce faire, nous avons besoin d'une contribution. Il suffit donc d'aller dans le tiroir de contenu ici, d' aller dans les entrées, de cliquer avec le bouton droit de la souris ici, créer une nouvelle action de saisie. Et je veux l'appeler IA sprint, non ? Ne cliquez pas dessus pour l'ouvrir. Le booléen numérique est largement suffisant. Tu peux juste le fermer. Accédez à IMCFPS Nous voulons le cartographier ici. Cliquez donc sur Nouveau mappage pour créer une nouvelle carte. Et ce que nous voulons cartographier s' appelle un sprint, n'est-ce pas ? Allons-y simplement. Quand voulons-nous que cela se produise ? Cliquez ici, appuyez sur la touche gauche votre clavier pour y placer la touche gauche, et c'est tout. Avec le virage à gauche, nous voulions être capables de sprinter, n'est-ce pas ? Maintenant, dans notre plan graphique d'événements, ce que nous voulons faire. Nous voulons cliquer avec le bouton droit de la souris sur Rechercher un sprint, n'est-ce pas ? Avec cela, chaque fois que nous appuyons sur la touche gauche, nous voulons pouvoir sprinter. Et chaque fois que nous relâchons le levier de vitesses vers la gauche, nous voulons qu'il marche, n'est-ce pas ? Donc, par défaut, nous voulions marcher. Mais comment pouvons-nous y parvenir ? Dans le composant de mouvement du personnage, il existe de nombreuses options que nous pouvons modifier. Par exemple, la vitesse de marche maximale est de 600 par défaut. Par défaut, nous voulons entrer. Je vais donc le réduire à 250. Donc non, juste avec ça, si vous renversez le jeu et que vous avancez, vous pouvez voir que nous allons de l'avant, pas vite. Juste 250 centimètres/seconde, non ? Non, nous voulons modifier la vitesse maximale du walki chaque fois que nous maintenons la touche Shift enfoncée Nous pouvons le faire. Cette variable, la vitesse maximale du walkie, se trouve dans le composant de mouvement du personnage Nous pouvons donc le saisir et rechercher la vitesse maximale du walkie, et nous voulons régler la vitesse maximale de marche, n'est-ce Juste avec ça chaque fois que nous appuyons sur la touche gauche. Nous voulons faire passer la vitesse maximale de marche à 600. Et encore une fois, sélectionnons simplement ce Control C Control V pour le coller ici. Chaque fois que nous relâchons la touche Shift gauche, nous voulions la ramener à 250, n'est-ce pas ? Maintenant que cela est réglé, disons simplement compiler, enregistrer et exécuter. Non, si vous avancez, vous pouvez voir qu'il marche, et si vous maintenez la touche gauche enfoncée, la vitesse de marche est beaucoup plus élevée maintenant. Vous pouvez voir que nous marchons et que maintenant nous courons. Maintenant, la prochaine chose que vous voulez faire , c'est jouer les animations. heure actuelle, il joue une animation inactive, peu importe que vous marchiez ou que vous couriez. Voyons comment ajouter des animations. 9. 08 Plan d'animation: Non, nous pouvons nous déplacer et regarder autour de nous, mais le problème est qu'il n'y a pas d'animation. Voyons donc comment nous pouvons le faire. Cliquez sur les bras. Vous pouvez voir qu'au lieu d' utiliser une seule animation à jouer, nous pouvons lui dire d'utiliser un plan d'animation Et avec le plan d'animation, nous pouvons décider de l'animation à jouer, n'est-ce pas ? Donc, pour ce faire, je veux aller dans le tiroir de contenu, aller dans le dossier Blueprint, et ici, cliquer avec le bouton droit, aller dans Animation et créer un plan d'animation, Pour lequel, nous voulons créer un plan d' animation pour SK Manikin Arms Sélectionnez donc cette création de tête et je voudrais l'appeler ABP pour Animation Blueprint FPS, n' Ils cliqueront dessus pour l'ouvrir. Voici donc notre plan d'animation. Et dans notre plan d'animation, nous avons un aperçu qui nous montre ce que cela est lié à Output pose ce moment, c'est à Apos, il ne lui arrive rien Nous pouvons aller dans Asset Browser et trouver, par exemple, les bras inactifs, n'est-ce pas ? Il suffit de le glisser-déposer et de le connecter comme ceci. Maintenant, si vous aviez compilé, vous pouvez voir qu'il ira à la pose IDL. Et sachez qu'avec cela, si vous allez sur nos BPFP, cliquez sur les bras, nous pouvons décider du plan d' animation C'est ce qu'on appelle ABP FPS, non ? Sachez qu'une fois cela fait, si nous renversons le jeu, ce sera exactement comme avant, il jouera l' animation inactive pour nous. Et si on déménage, rien ne se passe, n'est-ce pas ? Maintenant, l'étape suivante consiste à choisir l'animation à jouer. Et pour y parvenir, nous voulons vérifier la vitesse ou la vélocité de notre personnage. Par exemple, si c'est 250, jouez à cette animation de promenade, n'est-ce pas ? Mais si c'est 600, jouez à cette animation de sprint. Et si la vitesse est nulle, lancez l'animation inactive, non ? Par exemple, si j'y connecte l'animation de la marche et que je compile la tête. Non, vous pouvez voir qu'il diffuse l'animation de la promenade. Mais le problème, c'est qu'il jouera en même temps, et après cela, vous pouvez voir qu'il restera ici. C'est pourquoi nous n'avons pas activé l'animation en boucle. Activez donc l'animation en boucle une fois cette tête compilée, vous pouvez voir qu'elle sera jouée en boucle. Et maintenant, vous pouvez voir que nous avons une animation en boucle. Maintenant, si vous renversez le jeu, il jouera toujours l'animation de marche. Peu importe que vous marchiez ou couriez, jouer cette animation, n'est-ce pas ? Non, nous ne voulons pas le faire comme ça. Nous voulons utiliser ces trois animations et les mélanger. Ainsi, chaque fois que la vélocité est nulle, nous jouons l'animation inactive. Et chaque fois que nous commençons à marcher, nous passons doucement de l'inactivité à la marche. Et chaque fois que nous maintenons la touche gauche enfoncée , passez doucement de l' animation de marche à l'animation de sprint. Si nous connectons l'animation du sprint et activons l' animation en boucle que j'ai compilée, vous pouvez voir qu'il s'agit de l' animation pour courir. C'est ça. Voyons maintenant comment nous pouvons faire la prochaine vidéo. 10. 09 Obtenir la vitesse du personnage: Non, pour décider de l'animation à jouer, nous devons connaître la vélocité de notre personnage. Et comment nous pouvons le faire, nous pouvons le faire dans Event Graph. Dans le graphique des événements, nous pouvons obtenir l'événement de début de partie en recherchant l'événement de début de partie, n'est-ce pas ? Et nous pouvons utiliser ce propriétaire de Try Get Pan. Si vous ne l'avez pas et qu'il est supprimé, recherchez simplement le propriétaire de Try Get Pawn C'est ça, non ? C'est facile Et nous voulons le convertir en FPS, non ? BPFP pour que nous puissions en déduire la vélocité, non ? Pour faciliter les choses, je veux cliquer avec le bouton droit de la souris ici, le promouvoir en tant que variable, et je veux l'appeler BPFP C'est ça, et mets-le ici. Maintenant, dans l'animation de mise à jour, ce que je veux faire, c'est obtenir ce BPFPS Et tout d'abord, je veux vérifier si c'est valide. Il est très important de vérifier s'il est valide. Et après avoir vérifié si c'est valide, nous pouvons en déduire la vélocité. Alors, obtenez de la vélocité. Il suffit de rechercher get loci. C'est ici. Tu peux l'obtenir comme ça. Cela dit, je veux en connaître la longueur. Recherchez la longueur, la longueur du vecteur X et Y, car avec cela, nous voulons faire passer la marche au ralenti et à la course à pied. Il est au sol, c'est pourquoi j'utilise X et Y. Maintenant, je peux cliquer dessus avec le bouton droit de la souris, transformer en variable et je peux le réduire en vitesse, n'est-ce pas Une fois cela fait, connectons-le comme ceci. Et je veux utiliser un test d'impression ici pour le montrer, non ? Il suffit de le connecter comme ça. Maintenant, je voudrais revenir à graphique animé et connecter l'une de ces animations à ici Peu importe lequel, c'est juste pour tester. Retournez au graphique des événements. Nous voulons montrer la vitesse, non ? Donc, jeu Runo. À l'heure actuelle, vous pouvez voir que la vitesse est nulle. Si nous vous l'avions dit, la vitesse avoisinerait les 250. Et si nous maintenons la touche gauche sur le clavier, elle atteindra une valeur proche de 600, n'est-ce pas ? Maintenant, vous pouvez voir que nous intégrons la vélocité ou la vitesse de notre personnage dans notre plan d'animation Sur cette base, nous voulons décider de l'animation à jouer. 11. 10 Espaces de mélange: Maintenant, dans notre plan d'animation, nous savons quelle est la vitesse de notre personnage, n'est-ce pas Sur cette base, nous voulons décider de l'animation à jouer. Pour ce faire, il existe plusieurs moyens. Une solution consiste à le faire avec des machines d'État, une autre à le faire avec des espaces Blender. Je trouve que Blender Spaces est bien meilleur. Donc, pour ce faire, je veux aller dans tiroir de contenu et je veux aller dans le dossier FPS. Et ici, cliquez avec le bouton droit sur Accéder au nouveau dossier et créez un nouveau dossier, et je veux l'appeler animations, non ? Oh, cliquez dessus pour l' ouvrir ici. Cliquez avec le bouton droit sur Accéder à l'animation, et ici, descendez jusqu'à ce que vous atteigniez l' espace du mixeur. Cliquez dessus. Il vous indiquera pour lequel vous souhaitez créer un espace mixeur. Je veux le faire pour S Mankin Arms, non ? On l'appelle BS pour mélanger les espaces. Marchez, courez. OK. Je vais cliquer dessus pour l'ouvrir. Comme vous pouvez le voir, il y a le détail des actifs ici et nous avons un graphique ici. Donc, ici, nous pouvons ajouter de l'animation à cela, non ? Par exemple, si je prends l' idole et que je la place n'importe où, vous pouvez voir qu'elle diffusera l'animation inactive. Il existe également un axe horizontal et un axe vertical. Nous pouvons les nommer et les utiliser. Par exemple, l'axe horizontal, je veux aller ici et changer son nom de non en speed. OK ? Et en fonction la vitesse de notre personnage qui est comprise entre 0 et 600, nous voulons décider de l'animation à jouer C'est ça, non ? Non, par exemple, cette animation qui est destinée au ralenti à la vitesse zéro, nous voulons qu'elle se produise, n'est-ce pas ? Alors mets-le à zéro, et celui-ci à zéro, tu peux aussi le mettre à zéro. Donc, si la vitesse est nulle, l'animation inactive sera jouée. Et utilisons simplement Walk maintenant. Cliquez sur cette promenade. Quand voulons-nous que cette marche ait lieu lorsque la vitesse est de 250 ? Et ce non, on peut aussi le mettre à zéro. Maintenant, comment pouvons-nous le tester ? Si vous maintenez le contrôle, vous pouvez voir, je peux changer la vitesse et savoir que lorsque nous atteindrons 250, vous pourrez voir que c'est clairement l'animation de la marche. Et c'est un mélange entre les deux. Vous pouvez voir à quel point c'est beau. Maintenant, nous pouvons également ajouter le sprint ici, par exemple, et cliquer dessus. Et maintenant, nous voulons parler de cette animation destinée au sprint ou à la course Je veux que cela se produise à la vitesse 600, et nous pouvons également mettre cela à zéro. Non, si vous maintenez le contrôle et que vous le testez, si le SPD est nul, l'animation inactive sera jouée Et si le SPD est de 250, il diffusera l'animation de marche, et si la vitesse est de 600, il jouera l'animation de course, et vous pouvez voir que c'est génial , non ? C'est ça. Nous voulons utiliser cet espace du plenda. Assurez-vous donc de tout enregistrer et de savoir que dans notre plan d'animation, nous pouvons passer à un graphique animé, au lieu d'utiliser le, nous pouvons utiliser BS Wakron car nous avons créé un espace de mixage pour C'est pourquoi l'espace du mixeur sera ajouté ici. Nous pouvons simplement le glisser-déposer et le connecter à OwoodPose. Il a besoin d'une variable de vitesse, nous pouvons simplement l'obtenir à partir des variables et le connecter à ici. Maintenant, si vous appuyez sur compiler par défaut, l'animation sera inactive. Maintenant, si vous parcourez le jeu, vous pouvez voir qu'il s'agit d'une animation inactive. Si vous marchez, vous pouvez voir qu'il diffuse l'animation de marche. Et si vous maintenez la touche Shift enfoncée, vous passez à l'animation de sprint ou à l'animation d'exécution, et vous pouvez voir que tout est beau. Et maintenant, encore une fois, il va repartir en marche, et après cela, si nous restons, il passera à l' animation inactive, n'est-ce pas ? On peut faire plein de choses avec ça. Vous pouvez voir que lorsque je fais des tests ici, lorsque je modifie la valeur, cela prend un peu de temps. Il y a deux croix ici, et l'une d'elles est loin derrière la suivante. Vous pouvez voir que c'est pour les mélanger, non ? Comment pouvons-nous changer cela ? Nous pouvons modifier cette heure de déménagement. Par exemple, disons simplement arbre à points, n'est-ce pas ? Et maintenant, si vous gardez le contrôle, vous pouvez voir qu'il faudra plus de temps pour nous rejoindre et atteindre la principale croix verte. Tu peux le voir. Non, nous pouvons modifier ce type de déménagement pour, par exemple, « es in » et « ease out ». Et je sais que ça aura l'air bien mieux. Maintenant que c'est fait. Permettez-moi de changer cela en 1 seconde. C'est beaucoup. Il vous faudra 1 seconde pour atteindre la croix verte principale, mais vous pouvez voir la différence. Laissez-moi passer en revue le jeu et savoir si vous marchez, vous verrez qu'il vous faudra un peu de temps, 1 seconde pour atteindre l'animation de marche. Et si nous essayons de courir, il faudra 1 seconde pour commencer à courir, et vous pouvez voir à quel point c'est beau de se fondre entre les deux. Mais cette valeur de 1 seconde est trop élevée. Mettons-y juste un point. Vous pouvez décider ce que vous voulez y faire, mais je pense que c'est largement suffisant. Tu peux voir. Nous pouvons aller courir , nous pouvons recommencer à marcher et nous remettre au ralenti. Et je trouve que ça a l'air génial. Maintenant que c'est fait, nous pouvons accéder à ABP FBS, accéder à Event Graph et supprimer cet anneau d'impression parce que nous n'en avons plus besoin 12. 11 Interface utilisateur à cheval: Non, il est temps d'ajouter une interface utilisateur. Voyons comment nous pouvons le faire. Pour ce faire, je veux accéder au tiroir de contenu du dossier FS. Je veux cliquer avec le bouton droit de la souris, créer un nouveau dossier pour tous nos éléments d'interface utilisateur, et je veux l'appeler digits. Alors cliquez avec le bouton droit ici, descendez jusqu'à ce que vous atteigniez l'interface utilisateur et descendez et créez un plan de widget, le type que vous souhaitez créer s'appelle widget utilisateur, alors cliquez dessus et je veux appeler le WBP Je veux créer le réticule. Je vais cliquer dessus pour l'ouvrir et je sais ici que la première chose à faire est de descendre et d'ajouter un panneau Canvas, descendre et d'ajouter un panneau Canvas car pour le panneau Canvas en forme de réticule, il est plus facile de travailler avec, n' Non, c'est la prochaine chose que je veux faire. Je veux créer des cheveux, des croix avec juste des bordures. Je ne veux utiliser aucune image. Alors allez vers le haut et glissez et déposez une bordure à l'intérieur ici. La première chose que je veux faire, d'en changer l'ancre pour qu'elle soit au milieu. Vous pouvez voir que l'ancre est actuellement au milieu. Et si vous changez les positions X et Y à zéro, vous pouvez voir que cela les placera au milieu. Mais cela l'alignera dans le coin supérieur gauche, et nous pouvons modifier cet alignement. Dans cet alignement, on peut dire qu'il s'aligne par le point d'ancrage au milieu. Et comment nous pouvons le faire, nous pouvons mettre 0,5 et 0,5 pour X et Y pour l'alignement, donc cela le placera au milieu. Ce que signifie cet alignement, c'est X zéro. Celui-ci est X 0,5, et celui-ci est X un. Et encore une fois, celui-ci est Y zéro. Celui-ci est Y 0,5 et celui-ci est Y un, non ? N'oubliez pas cela parce que nous voulons beaucoup l'utiliser. Maintenant, pour ce qui est de sa taille, je voudrais le mettre sur cinq ou cinq. Comme ça, je veux que ce soit plus croisé, mais je veux le changer pour l'améliorer Passez à l'appréhension, aux pinceaux, et ici, changeons simplement la couleur de teinte en Donc le vert devrait être zéro, bleu devrait être zéro, et c'est tout. Non, ce sont nos avantages, mais un simple carré n'est pas bon. Je veux le faire tourner. Encore une fois, cliquez dessus, passez aux dessins ici et changez-le en boîte arrondie. C'est ça. C'est magnifique. Voyons maintenant comment nous pouvons l'utiliser. Pour l'utiliser, je veux aller sur BPFPS et ici, au début du jeu, je veux créer ce plan de widget Vous pouvez voir que je suis chez Bigmplay et ici, je veux créer ce widget, créer un widget Recherchez simplement Create Widget. Le widget que vous souhaitez créer s'appelle WBPCrossaer. Ensuite, je veux cliquer dessus avec le bouton droit de la souris, promouvoir en tant que variable, et je veux l'appeler W BP, cross hair, c'est vrai. Ensuite, je veux l'ajouter à la fenêtre d'affichage, ajouter à la fenêtre d'affichage, afin que nous puissions le voir directement dans notre jeu C'est ça. Maintenant, avec ça, si vous renversez le jeu, vous pouvez voir que le point rouge est là. Ça a l'air génial, et ça marche bien. Magnifique. Mais je voudrais y ajouter d'autres éléments. Voyons voir, nous pouvons le faire ensuite. 13. 12 Ailes à chevalière: Ensuite, je veux améliorer un peu ce réticule. Pour ce faire, je veux passer au réticule WBP ici, et encore une fois, je veux utiliser une bordure, Avec cette bordure, par défaut, elle sera placée en haut ici. Je veux cliquer dessus et changer nouveau le point d'ancrage au milieu et changer la position X et position Y à zéro pour être au milieu. Maintenant, ce que je veux faire, est changer la taille. Par exemple, la taille Y. Je veux que ce soit 5 et la taille X. Restons-en à 20 Je pense que c'est une bonne chose. Non, je veux aussi qu'il soit rond. Alors dessine, je veux le changer en boîte arrondie. Ça a l'air bien mieux, non ? Et je veux l'aligner avec le milieu du Y, comme ceci. Ce point que nous avons ici, ce point ici. Cliquez donc dessus et modifiez l'alignement du Y 2.5. C'est ça. Non, nous pouvons le positionner un peu mieux. Par exemple, dix unités vers la droite. C'est ça. Non, c'est un croisement, mais je veux le dupliquer en le sélectionnant, Control D, pour le dupliquer Tout d'abord, je veux changer la position Y à zéro parce que je veux placer cette aile, autre aile que nous copier/coller le côté gauche exactement comme ceci, mais en miroir de ce côté. C'est pourquoi je veux changer l'alignement dans la direction x en un, afin qu'il aille à cette partie, n'est-ce pas ? Et pour la position X, je veux la changer en moins dix. Donc, de ce point à ce point, il y a dix, et de ce point à ce point c'est moins dix. C'est ça. Ou le réticule est prêt. Je trouve que c'est magnifique. Non, passons juste en revue le jeu. Vous pouvez le voir ou le traverser. Ça a l'air magnifique. Maintenant, ce que je veux changer, sélectionner les deux, passer à la couleur de teinte et en changer l'alpha, 2.6, par exemple. Je pense que de cette façon, c'est beaucoup mieux. Si vous écrasez le jeu, non, vous pouvez le voir. Je trouve que c'est magnifique. Non, il y a une chose que je voudrais changer ici, vous pouvez voir, si vous regardez le positionnement de notre traverse, c'est qu' il est un peu surélevé Si nous tirons, cela n'a pas l'air bien parce que notre arme semble un peu abaissée. C'est pourquoi je veux sélectionner ces trois bordures, donc maintenez le contrôle, sélectionnez-en trois et modifiez le décalage pour qu' il soit saisi par 50, n'est-ce pas ? Donc ça baisse un peu. Et maintenant, si vous écrasez le jeu, non, vous pouvez voir qu'il est plus aligné. C'est magnifique. Non, notre traversée est terminée. 14. 13 Ciblage: Sachez que nous avons un réticule. Ce que je veux faire, c'est être capable de viser, à fois avec le réticule et avec la lunette Donc, pour ce faire, laissez-moi d'abord enregistrer ceci. Nous n'en avons pas besoin. Sauvegardez ceci, fermez-le. Nous n'en avons pas besoin. Pour viser, nous avons également besoin d' une entrée. Donc, allez dans un premier dossier, allez dans la saisie, cliquez avec le bouton droit de la souris ici, allez dans la saisie et créez une action de saisie, et je veux l'appeler I aim, n'est-ce pas ? Cliquez dessus, ouvrez-le. Le booléen numérique est largement suffisant . Tu peux juste le fermer. Accédez au contexte de mappage d'entrée, créez un nouveau mappage. Permettez-moi de maintenir la touche Maj enfoncée , de cliquer ici et de cliquer à nouveau. Cela le soulèvera de manière effondrée parce que c'est un gâchis. Cliquez ici, nous voulons cartographier l'objectif, à droite. Ensuite, cliquez ici et appuyez sur le bouton le plus à droite. Avec le bouton le plus à droite, nous voulons pouvoir viser, non ? Accédez aux BPFP maintenant ici, trouvez une pièce ici et cliquez avec le bouton droit de la souris pour rechercher IA Et cela fait, chaque fois que nous appuyons sur le bouton le plus à droite, cela commence à se produire Et chaque fois que nous relâcherons le bouton le plus à droite, cette opération sera terminée. Et ce que je veux en faire, créer une variable et je veux l'appeler « aim , n' est-ce pas ? Et je veux les installer ici. Chaque fois que nous appuyons sur le bouton le plus à droite, nous voulons dire que nous visons. Et chaque fois que nous relâchons le bouton le plus à droite, alors contribuez à le coller, nous voulons les rendre faux. Et la prochaine chose que je veux faire chaque fois que nous visons le plus à droite en bas, utiliser la lunette, n'est-ce pas Donc, pour cela, nous n'avons plus besoin du réticule. Je vais donc prendre le réticule comme celui-ci, glisser-déposer et régler la visibilité dessus Recherchez la visibilité du set. Et si nous visons, nous voulons régler la visibilité du réticule principal de manière à ce qu'il ne soit pas dirigé, n'est-ce pas ? Contrôle C, on le colle ici. Et chaque fois que nous relâchons le fond le plus à droite, nous le rendons visible. Maintenant, si vous aviez compilé et exécuté le jeu, vous pouvez voir si j'appuie sur le bouton le plus à droite, le widget disparaîtra, le widget disparaîtra, et chaque fois que nous relâcherons le bouton le plus à droite, le widget sera là, n'est-ce La croix s'en va. Maintenant, comment nous voulons utiliser le scope. Pour ce faire, il existe un oscilloscope, un maillage statique que vous pouvez utiliser. heure actuelle, si vous regardez cela, vous pouvez voir qu'il n' y a aucune marge de manœuvre. Pour ajouter le maillage statique de la portée à Ogon, nous pouvons simplement cliquer sur Ogon car Ogon est un maillage squelettique. Il a quelques os. Nous pouvons y connecter des objets, non ? Donc, ici, ajoutez un msh statique, recherchez un maillage statique et ajoutez le maillage statique et ajoutez le C'est ce que j'appelle une lunette, c'est vrai. Et le maillage statique que vous souhaitez utiliser s'appelle scope, mais vous pouvez le voir, nous le mettrons ici. C'est pourquoi nous voulons le mettre sur une alvéole ou sur un os. Donc, en cliquant ici, il y a un socket de scope, un socket de scope, n' est-ce pas ? Si vous le mettez là, non, vous pouvez voir que la lunette sera là et que nous pourrons l'utiliser, n'est-ce pas ? Ça a l'air vraiment génial. Mais comment voulons-nous modifier la position de l'Ogun ou de la caméra pour qu'il passe à la lunette pour examiner la lunette, comment pouvons-nous le faire ? Pour cela, il y a l'animation. Laisse-moi te le montrer. Si vous allez dans Assets, passez aux armes, l'animation, non ? Nous avons des armes. Visez le haut, non ? Il y ira avec cette taille. Tu peux le voir. Il le placera devant la caméra. Ça a l'air vraiment génial. On peut utiliser ça, non ? Mais comment nous pouvons l'utiliser, nous devons utiliser un plan d'animation pour cela Il est maintenant temps de vous montrer comment vous pouvez utiliser cette animation avec les bras en l'air. Nous pouvons donc examiner le champ d'application des machines immobilières. Voyons comment nous pouvons le faire ensuite. 15. 14 Commencer à cibler: Sachez que dans notre plan d' animation, nous voulons utiliser cette animation active pour placer la lunette devant la caméra Pour ce faire, nous devons d'abord savoir dans notre plan d'animation si vous visez ou non Donc, allez au graphique des événements, et ici, nous obtenons la vélocité, nous pouvons également obtenir sa visée. Donc, recherchez Get I aiming et nous pouvons simplement le promouvoir en variable, n'est-ce pas ? Il suffit de le mettre ici et de savoir que nous avons accès à Is aiming dans notre plan d' Anmissionblueprint Passez maintenant à un graphique animé. Nous ne voulons pas faire ce genre de choses. Je peux juste les couper, non ? Vous pouvez voir si nous irons à nouveau à Apos. Non, je veux ajouter une machine immobilière, non ? Ajoutez une machine immobilière, et je veux l' appeler locomotion, d'accord Et avec cela, je veux relier ces deux éléments ici. Avec cette machine immobilière, nous pouvons décider à tout moment l'animation à jouer, n' est-ce pas ? En créant des domaines. Ajoutez donc le domaine ici, et je dirais que c'est Walk, Run, Idle. Ils seront donc tous là, non ? Et entrons simplement à l'intérieur et contrôlons de coller l'espace du mixeur que nous avons ici l'espace du mixeur que nous avons découpé et connecté comme ça. Par défaut, lorsque nous parcourons le jeu, le premier domaine connecté à l'entrée sera toujours actif, n'est-ce pas ? Donc, juste avec ça, vous pouvez voir que tout devrait fonctionner comme avant. La marche devrait fonctionner, la course à pied devrait fonctionner. Tout devrait fonctionner, non ? Comme avant. Nous n'avons rien changé. Mais avec cette machine étatique, nous pouvons décider d'autres successions. Par exemple, ajoutons simplement un autre este. Je veux l'appeler « commencer à viser ». Hein ? Et en commençant par viser l'intérieur, nous voulons jouer les bras en l'air. Alors, allez dans Asset Browser ici et trouvez les objectifs en l'air, pas les bras en l'air. Alors saisissez ces objectifs et connectez-les à ici comme ceci. Maintenant, le plus important, c'est que l'animation en boucle pour celui-ci ne devrait pas être activée du tout, non ? Juste avec ça, il y a une règle. Avec cette règle, nous devons décider à quel moment commencer à viser. Donc, par exemple, allons-y. Nous pouvons utiliser son objectif ici. Donc, si vous visez, vous devriez commencer par viser, non ? Vous pouvez le survoler Il dit : Si vous visez, vous devriez vous diriger vers une étoile qui vise, n'est-ce pas ? Non, compilons, exécutons. Maintenant, avec ça. Si je maintiens le bouton le plus droit, vous pouvez voir qu'il a joué cette animation, n'est-ce pas ? Mais pour le moment, le positionnement de notre caméra des bras n'est pas bon, donc nous devons corriger cela, n'est-ce pas ? Donc, pour résoudre ce problème, nous devons cliquer sur les bras et le faire avec ça. Les valeurs que j'ai trouvées sont Z quatre -168,27, non ? Vous pouvez simplement jouer avec ces valeurs. Et pour le Y, je veux mettre 1.4, et testons avec ça, assurant de sauvegarder et de compiler. Maintenant, si vous maintenez le bouton le plus à droite, non, vous pouvez voir que cela fonctionne correctement. Mais ça ne reviendra pas, non ? Cela n'arrivera qu' une seule fois. Nous allons régler ce problème. Mais vous pouvez voir que c'est censé être comme ça. Oh jeu, c'est censé être comme ça. Maintenant, si vous maintenez le bouton le plus à droite, vous pouvez voir, nous pouvons voir à travers le D ou le réticule La prochaine chose que je vois ici, si je maintenais le bouton le plus à droite, vous verrez que le point rouge n' est pas dans la bonne position, n'est-ce Une façon d'y remédier est d'accéder à un oscilloscope et de modifier son positionnement, par exemple en l' amenant un peu vers la droite , par exemple 0,1, n'est-ce pas ? Un petit peu. Non, courons. Et maintenant, vous pouvez voir qu'il est exactement au milieu. Ça a l'air génial et magnifique. Mais nous allons viser, mais nous n'allons pas revenir en arrière. Voyons comment nous pouvons résoudre ce problème. 16. 15 Cibler des animations: Non, nous jouons à la visée initiale, elle démarrera et la mettra dans la bonne position. Mais lorsque nous relâchons le bouton le plus en bas à droite, il ne revient pas en arrière, et c'est un problème. Pour résoudre ce problème, rendez-vous sur ABP FBS. Et ici, une fois la visée initiale terminée, nous voulons créer un autre état, et je veux l'appeler visée. Donc, avec elle, il devrait y avoir une marche à visée inactive que vous pouvez voir ici. Les bras sont braqués au ralenti. En cas de doute, cliquez dessus, vous pouvez le voir. Les bras visent le repos, les bras visent la marche. Vous pouvez voir que nous avons des animations pour ceux-là, n'est-ce pas ? Mais lorsque cette visée doit avoir lieu, nous pouvons simplement indiquer cette règle chaque fois que l'animation dans laquelle nous décidons de commencer à viser sera automatiquement envoyée à Amin, n'est-ce pas ? Donc, ici, nous pouvons simplement cliquer dessus et choisir règle automatique basée sur le lecteur de séquence, n'est-ce pas ? Alors, vérifiez ça. J'irai automatiquement chez Amin. Et à l'intérieur, pour viser le non , utilisons simplement les bras pour viser au ralenti. Il suffit de le mettre là. Cette fois, ça devrait être en boucle. N'oubliez pas de le mettre en boucle. Non, nous allons simplement compiler en tête. Retournez. Et pour que vous le voyiez mieux, je voudrais passer en revue le jeu, rendre petit comme ça. Ensuite, il suffit de cliquer ici et de choisir l' instance afin que vous puissiez voir quel domaine joue. Et une fois cela fait. Maintenant, si je tiens le bouton le plus à droite, vous pouvez voir qu'il est allé au domaine d'Amin, n'est-ce pas ? Tout d'abord, il jouera le rôle d'Amin de départ, puis il passera à l'état d'Amin. Regardez-le encore une fois. Vous pouvez voir qu'il y ira automatiquement. Mais la prochaine chose que vous voulez faire, chaque fois que nous relâchons le bouton Most avec le bouton droit, nous voulons revenir à Walk Run Idle, tout, n'est-ce pas ? Encore une fois, nous pouvons simplement nous connecter d'ici à ici. Cela nous donnera des règles. Et en effet, nous pouvons juste vérifier que je vise, non ? Nous vérifions que la visée n'était pas vraie. Recherchez donc Not Bullion. Si nous ne visons pas, vous pouvez passer de la visée à la marche, à la course et au ralenti, n'est-ce pas ? Juste sur ce, je veux que tu voies tout. Alors permettez-moi de réduire ce jeu et de l'exécuter. Non, tu peux tout voir. Si je maintiens le bouton le plus à droite, vous pouvez voir qu'il ira à Amin jusqu'à ce que je maintienne le bouton le plus à droite, il restera sur l'Amin et quand je le relâcherai, vous pouvez voir qu'il reviendra à marcher au ralenti Vous pouvez voir que ça a l'air génial. Mais l'un des problèmes que nous avons ici, c'est que d'abord, lorsque nous marchons et que nous visons, une autre animation doit être diffusée. Mais en ce moment, il joue le rôle de l'idole qui vise, non ? Et lorsque nous visons et maintenons la touche, nous sprintons. Encore une fois, nous devons jouer une autre animation. Nous ne devrions pas être capables de viser lorsque nous sprintons, n'est-ce pas ? Nous allons corriger tout cela et ensuite 17. 16 Objectif de marche: Non, nous visons et nous commençons à tout viser. Mais lorsque nous marchons, nous ne jouons pas à la marche visée. Et lorsque nous courons, nous n'annulons pas le ciblage. Voyons comment nous pouvons résoudre ce problème. Tout d'abord, chaque fois que nous visons et que nous marchons, nous voulons jouer à une animation différente parce que nous avons bras d'animation différents. Visez au ralenti et les bras visent à marcher. Et comme je veux l'utiliser, je veux utiliser des espaces mélangés Allez donc dans le dossier FPS, allez dans les animations et cliquez avec le bouton droit ici, passez à l'animation et créez un espace de fusion pour notre squelette de mannequin C. Je veux l'appeler visée BS, non ? C'est ça. Je vais cliquer dessus pour l'ouvrir. Non, en fonction de la vitesse ou du personnage, nous voulons décider de l' animation à jouer, n'est-ce pas ? Donc, pour ce faire, je veux utiliser la valeur horizontale. Donc, en valeur horizontale, je veux à nouveau l'appeler vitesse, non ? Et comme vous le savez, parce que nous avons AM idle and aim walk et que la marche est de 250. Donc, cette valeur est la valeur XoS minimale, je veux la mettre sur zéro, et la valeur maximale de la vitesse, je veux la mettre sur 250, non ? Vous pouvez donc voir de zéro à 250. Non, je veux prendre ces bras, les mettre ici, cliquer dessus, et je veux dire que cliquer dessus, et je veux chaque fois que la vitesse est nulle, cette animation, nous voulons qu'elle se produise Armes et oisifs, non ? Nous pouvons également mettre zéro pour aucun ici. Mais quand nous marchons, alors que le dragon laisse tomber ses bras et marche, cliquez ici. Quand voulons-nous que ces bras et cette marche apparaissent lorsque la vitesse est de 250, n'est-ce pas ? Et on peut mettre ça zéro à zéro. Maintenant, si la vitesse est nulle, il jouera le bras au ralenti. Mais si la vitesse est de 250, il jouera Arms AM Walk et il se fondra vraiment bien entre les deux . Assurez-vous d'économiser. Accédez à ABP FBS en état de visée ici. Au lieu de simplement l'utiliser, je veux utiliser BS viser correctement Dragon Drop, le mettre ici, et cela a aussi besoin de vitesse. Alors associez la vitesse à cela. C'est ça. Tête. Maintenant, si vous renversez le jeu, voyons ce qui va se passer. Si je l'agrandis, si nous sommes au ralenti et que la vitesse est nulle, vous pouvez voir que cela joue au ralenti, n'est-ce pas ? Mais si nous marchons, vous pouvez voir que non, c'est jouer à la visée, et ça a l'air génial. Si vous relâchez le bas à droite, vous pouvez voir que cela fonctionne correctement. Et si nous allons voir Amin, vous pouvez voir que cela fonctionne bien également. Ça a l'air génial, non ? Mais le problème pour le moment, c'est que si je maintiens la touche Shift pendant que nous visons et marchons, voyons ce qui va se passer. Tu peux voir. Encore une fois, il s'agit de viser et jouer l'animation de marche à visée. Nous ne voulons pas que cela se produise. Alors, comment pouvons-nous résoudre ce problème ? Nous voulons vérifier la vitesse. Si la vitesse est supérieure à 250, elle devrait quitter la visée, n'est-ce pas ? Encore une fois, je veux faire glisser et dessiner partir de cet aimingtd pour marcher au ralenti Créez une autre règle en visant à marcher et à courir. Et avec ça, je veux vérifier la vitesse. Si la vitesse est supérieure, par exemple, 255 ou 250, cela signifie qu'il faut passer de visée à la marche, au ralenti, n'est-ce pas ? Juste avec ça, si vous aviez compilé, lancez-le. Lorsque nous visons, avancez, vous pouvez voir que l' animation est bonne. Si nous maintenons la touche Shift enfoncée, vous pouvez voir le problème. J'essaie de me remettre à courir, mais encore une fois, vais recommencer à viser. Qu'est-ce qui se passe ? Laisse-moi aller à la machine à empiler , la mettre ici et la lancer à nouveau. Faites-le un petit comme celui-ci et choisissez une instance afin que vous puissiez mieux le voir et le savoir ici. Vous pouvez voir qu'il va viser . Lorsque vous marchez, encore une fois, il vise. Mais si je maintiens la touche Maj enfoncée, vous pouvez voir qu'il va tourner au ralenti et qu'après cela, il recommencera à viser, n'est-ce pas ? B vise, car il va commencer à viser. Donc, à l'intérieur, nous voulons vérifier deux choses. Si la vitesse est inférieure à 250 ou 255 et que la visée e est vraie, vous pouvez passer du stade de marche au ralenti à celui de commencer à viser. Nous devons donc vérifier la vitesse pour commencer à viser, non ? Donc, pour cela, je vais obtenir la vitesse et vérifier si elle est inférieure, par exemple, à 255. Et je veux vérifier les deux, afin de pouvoir le vérifier avec un booléen Ce booléen, ce qu'il fait, vérifiera les deux Et si les deux sont vrais, on passera du stade de marche au ralenti à celui de visée, non ? Non, compilons, exécutons le jeu, et ici, passons à Locomotion, que vous puissiez le voir ici également Non, si je vise, vous pouvez voir qu'il va commencer à viser et à viser. Après ça. Si nous marchons à nouveau, il continuera à viser. Mais si vous maintenez la touche Shift enfoncée, vous pouvez voir que non, il va marcher, courir et tourner au ralenti. Et si je relâche la touche Shift, vais commencer à viser et ensuite viser et à faire une boucle, n'est-ce pas ? Encore une fois, vous pouvez voir à quel point c'est beau. Maintenant, la prochaine chose que je veux faire, aller ici et de modifier ce temps de déplacement 2.3, par exemple, pour qu'il ait une bien meilleure apparence. Et ce type de déménagement, je veux le dire assouplissement », est révolu. C'est ça. Je pense que de cette façon, c'est beaucoup mieux. Non, revoyons le jeu à nouveau. Non, ici, nous sommes en mode Walkun Inactif. Nous sommes en train de marcher en ce moment. Nous sommes en train de viser. Et après cela, nous nous lançons dans le sprint, non ? Vous pouvez voir que tout fonctionne bien. Ça a l'air magnifique. 18. 17 Monts d'anime: Non, la prochaine chose que vous voulez faire, être capable de tirer ou d'utiliser une arme, mais il faudra un peu de temps et quelques vidéos pour le faire complètement. Donc, pour ce faire, nous avons d' abord besoin d'une contribution. Chaque fois que nous appuyons sur le bouton le plus à gauche ou sur le clavier, nous devrions tirer avec notre arme, non ? Accédez au dossier FPS, allez à la saisie, cliquez avec le bouton droit de la souris ici, allez à la saisie, passez à l'action de saisie et appelez-le iAFre, n'est-ce pas ? Tu n'as pas besoin de changer quoi que ce soit ici. Vous pouvez simplement le fermer, accéder à IMC FPS, pour l'y mapper. Encore une fois, vous pouvez maintenir la touche Maj cliquer ici, relâcher la touche Maj et cliquer ici, vous verrez qu'elle s'ouvrira normalement. Mais si nous ajoutons une nouvelle cartographie, encore une fois, c'est un gâchis ici en ce moment. Nous voulons cartographier l'IAFre, choisir iAFre après avoir développé ce bouton, cliquez ici et le bouton le plus à gauche y sera automatiquement placé choisir iAFre après avoir développé ce bouton, cliquez ici et le bouton le plus à gauche y sera automatiquement placé . C'est ça. Assurez-vous d'économiser. Accédez au BPFPS, accédez au graphique des événements Non, nous voulons pouvoir tirer par-dessus une arme. Je veux aller ici, chercher IA Fire, non ? Et avec cela, chaque fois que nous appuyons sur le bouton le plus à gauche, cela commence à se produire, et nous voulons tirer avec notre arme, Mais avant cela, vous devez vérifier auprès d'une branche si vous visez ou non. Alors connectez en visant à cela. Non, la première chose que vous voulez faire ici est de jouer à l'animation, mais comment pouvons-nous le faire ? Nous pouvons le faire de nombreuses manières, mais je voudrais vous montrer des montages d'animation Voyons comment nous pouvons les utiliser. Accédez au tiroir de contenu, accédez aux actifs, aux animations des bras. Et ici, il y a de l'animation. Par exemple, les armes à feu AM et les armes à feu. D'accord ? Sélectionnez donc les deux, cliquez avec le bouton droit sur l'une d'elles, créez et créez un vintage à partir de ces animations Maintenant que c'est fait, je veux faire glisser et dessiner les deux dans des animations à l'intérieur d'un dossier féroce, puis les y déplacer. Non, passons simplement aux animations. Vous pouvez voir les montages d'animation. Là-bas. Tout d'abord, nous voulons tirer avec des armes, non avec des armes dirigées, n'est-ce pas ? Non, vous pouvez voir qu'il s'agit d'un montage d'animation que nous pouvons jouer quand nous le voulons. Mais les montages d'animation ont besoin d'une machine à sous pour y jouer. Chaque montage d'animation peut donc avoir un emplacement. Par défaut, c'est l'emplacement par défaut, et c'est largement suffisant pour nous. Et nous pouvons décider où cet emplacement doit se trouver dans notre plan d'animation, n'est-ce pas ? Nous pouvons donc y jouer cette animation. Alors allez dans Animation Blueprint, allez dans Anmgraph. Et après cette agitation, je veux rechercher l'emplacement par défaut, non ? Cet emplacement par défaut se situera entre la pose d'Ot Wood et notre machine à états, et avec cela, nous pourrons jouer notre montage d'animation. Là-bas. Il sera donc ajouté à toutes les animations que nous avons ici, n'est-ce pas ? Maintenant, compilons, en toute sécurité, passons à notre FPS. Et ici, si vous ne visez pas, nous pouvons simplement jouer au montage, non ? Il suffit de jouer au montage. Et ici, tout d'abord, il faut un maillage squelettique sur lequel jouer de l'animation, afin que nous puissions mettre nos bras, les mettre là, n'est-ce pas ? Ensuite, il a besoin d'un montage pour jouer. Donc, en cliquant ici, nous voulons utiliser Arms Fire Montage, et c'est tout. Passons simplement à la compilation et à l'exécution du jeu. Et agrandissez ça. Maintenant, si vous ne visez pas et que vous appuyez le plus à gauche en bas à gauche, vous pouvez le voir Nous pouvons jouer l'animation du feu. Tu peux le voir. Ce n'est pas trop, mais ça marche bien. Tu peux voir, cool. Non, lorsque nous visons, encore une fois, nous voulons faire de même, donc Control C, Control V pour le coller ici si c' est vrai, nous visons. Nous voulons jouer le montage AM Fire, non ? Ouvrons-le ici, AM Fire Montage. Encore une fois, ce montage AM Fire utilise l'emplacement par défaut, n'est-ce pas ? Nous pouvons donc simplement utiliser cet emplacement par défaut pour tout, non ? C'est amplement suffisant. Donc non, ici, testons ça. Si vous courez et que vous visez le bouton le plus élevé, non, vous pouvez voir que cela fonctionne bien également. Donc non, nous sommes une simple animation pour tirer par-dessus une arme. Et je trouve que ça a l'air génial pour les deux. Cela fonctionne bien. 19. 18 Flash du museau: Non, nous tirons avec une arme et nous diffusons de l'animation pour elle. Mais non, je veux en faire plus. Par exemple, voyons voir, nous voulons voir où nous nous dirigeons, n'est-ce pas ? Nous voulons créer des effets visuels. Nous voulons avoir du son. Nous voulons avoir, par exemple, un gestionnaire Amo parce qu'il ne devrait pas être infini, n'est-ce pas ? Pour ce faire, je veux créer une fonction qui sera réutilisable afin que nous puissions l'utiliser où nous voulons. Donc, pour ce faire, je veux créer une fonction, et je veux l'appeler tir d'arme, n'est-ce pas ? C'est ça. Maintenant, dans ce tir d'arme, première chose que je veux faire est de jouer à l'animation d'Ogun lui-même, car Ogun lui-même possède une certaine Laisse-moi te le montrer. Nous allons dans le dossier FPS, dans Asset, Gun et dans l'animation Gun, vous pouvez voir qu'il y a deux animations ici. L'un est pour les coups de feu et l'autre pour le rechargement des armes. Il suffit de double-cliquer sur l'un d'entre eux. Et vous pouvez voir que nous avons des coups de feu. Il ne lui arrive rien. Laisse-moi zoomer. Si vous zoomez simplement ici, vous pouvez voir qu'il y a une animation ici lorsque nous lançons celui-ci. Il suffit de revenir en arrière et juste comme ça. Nous voulons jouer cette animation. Donc pour cela, ici, nous pouvons récupérer notre arme. Nous n'avons pas besoin de plan d' animation pour ce type d'animations Nous pouvons simplement dire jouer à l'animation, non ? Bien sûr, vous pouvez également utiliser un plan d'animation pour une arme à feu y ajouter une machine à sous et jouer à un dessin animé Mais c'est exagéré. Nous pouvons simplement le faire comme ça. Jouez à une animation de coups de feu. Allons-y et choisissons des coups de feu, d'accord ? Maintenant, avec ça, voyons comment nous pouvons l'utiliser. Nous voulons l'utiliser sur les deux. Que nous visions ou non, nous voulons utiliser ce tir d'arme. Fonction. Connectons-le donc ici et utilisons également cette fonction ici. Vous pouvez donc voir qu'il est réutilisable. Nous pouvons le faire en même temps et l'utiliser pour plusieurs endroits, non ? Maintenant que c'est fait, rien n'est changé. Mais si nous renversons le jeu, vous pouvez voir que nous sommes en train de tirer. On n'y voit rien de différent, mais il joue en fait de l'animation. Et vous pouvez dire que nous ne montrons rien avec cette animation. Pourquoi l'utilisons-nous ? Nous l'utilisons pour une raison ou une autre. Si vous passez à l'animation de coups de feu, vous pouvez voir ici que chaque fois que nous tournons, nous voulons ajouter un son Une façon de le faire, c'est aller ici et de jouer un son ici. Mais il est vraiment plus facile de jouer un son dans la séquence d'animation. Nous pouvons lui dire dans quel cadre le son doit se produire. Dans chaque image, cette balle devrait s'éteindre, non ? Nous pouvons faire tout cela ici, et ce sera parfait. Donc, ici, la première chose que je veux , c'est ajouter un système Naga Alors cliquez avec le bouton droit ici, ajoutez le système de particules Notify and go and put play Naga Je veux que cela se produise dès le début, et le système Naga auquel vous voulez jouer s'appelle NS Weapon Fire Muzzle Flash Rifle, n' Il suffit de le mettre là. Maintenant, si vous y jouez, voyons ce qui va se passer. Vous pouvez voir que cela se passe ici à 00, par exemple. Nous pouvons changer cela en y mettant un socket nommé. Donc, pour trouver la douille , il suffit de cliquer ici pour accéder à un squelette de plus d'arme. Et ici, nous devons jouer à ce système Muszzle Flash Naugur à bout de souffle ou Et il y a une douille qui s'appelle muselière. Vous pouvez voir que c'est une pointe d'Ogun. Juste comme ça, nous pouvons simplement copier cette controverse pour la copier et la mettre ici sous forme de nom d'os. Maintenant, avec ça, si nous avions Enter, il l'y placerait. Et chaque fois que nous jouons à ce jeu, vous pouvez voir que cela se produira au moment du basculement du pistolet. Maintenant que c'est fait, passons en revue le jeu et tirons. Vous pouvez voir, non, c'est en train de jouer, non ? Et nous pouvons retourner voir Amin. Dans ce cas, cela se produit également. Ça a l'air génial, non ? Ensuite, je voudrais vous lancer ce défi en tant que graphique pour l' éjection d'obus, n'est-ce pas ? ce que tu essaies de faire. Nous allons le faire ensuite. 20. 19 Son de tir et éjection d'obus: La prochaine chose que vous voulez faire, éjection de l'obus Pour ce faire, c'est comme avant. Ici, chaque fois que cette animation atteint ce point, par exemple, lorsque l'obus peut être éjecté, suffit de cliquer avec le bouton droit de la souris ici, d' ajouter une notification cette fois, jouer à Naga Particle Effect , de cliquer dessus, et ici, de choisir l'éjection d'obus à feu d'arme NS Choisis ça. nous pouvons passer à un squelette et vous pouvez voir qu'il y a une En ce qui concerne le nom de l'os, encore une fois, nous pouvons passer à un squelette et vous pouvez voir qu'il y a une éjection de coque ici qui se trouve à la bonne position Nous pouvons donc nous en servir. Ici, nous pouvons simplement rechercher Shell Eject Maintenant que c'est fait. Vous pouvez voir qu'il y a une éjection d'obus, mais cela se produit très vite, non ? Donc, avec ça, sauvegardons, passons à notre niveau, exécutons le jeu et savons que si vous tirez, vous pouvez le voir, mais dans cette phase AMS, vous pouvez mieux le voir Cela se passe très vite, mais c'est là. C'est amplement suffisant. Non, la prochaine chose que nous voulons faire, jouer du son. Encore une fois, dans Gunfire, au début, nous voulons ajouter un autre notificateur pour émettre un son Donc, même ici, nous pouvons cliquer avec le bouton droit de la souris et dire « jouer le son ». Mais vous voyez, je veux le mettre au début. Laisse-moi l'agrandir. Je voudrais le mettre au début, mais nous avons déjà quelque chose. Nous pouvons donc ajouter une autre piste. C'est la première piste. Il suffit de cliquer ici. Ajoutez une autre piste, une piste pour le faire, non ? Au début, nous voulons émettre un son. Choisissez donc play sound. Mets-le au début. Maintenant, pour le son, en cliquant ici, nous voulons d'abord jouer à ce fusil d'assaut. Il suffit de l'utiliser, non ? Maintenant, si nous sauvegardons, passez à notre jeu. Vous pouvez voir que je peux tirer, et maintenant nous avons aussi du son. Ça a l'air vraiment génial. Et Shell éjecte W. Non, notre jeu est 21. 20 Trace de ligne lorsque nous visons: La prochaine chose que nous voulons faire c'est voir où regarde notre arme. Si nous tirons sur une arme, là où elle devrait avoir un impact, non ? Donc, pour ce faire, nous avons besoin d'un tracé linéaire, non ? Donc je ne veux pas le faire ici parce que ça va tout gâcher. Le tracé des lignes nécessite beaucoup de choses. C'est pourquoi je souhaite créer une autre fonction uniquement pour le tracé de ligne. Et ici, je peux simplement créer la fonction. Je veux l'appeler Fire Line Trace, non ? Et avec elle, d'abord et d'abord, nous avons deux domaines pour vérifier où regarde Morgan. Laisse-moi te le montrer. Si nous ne visons pas, cela signifie que nous devons tirer là où réticule nous regarde, n'est-ce pas ? Donc, si vous ne visez pas, c'est différent de lorsque nous visons. Lorsque nous visons, nous devons tirer là où regarde une lunette, n'est-ce pas ? Alors d'abord, faisons-le simplement avec un oscilloscope. Donc, ici, la première chose que vous voulez vérifier, vérifier si vous visez ou non. Utilisez donc une branche et vérifiez si vous visez ou non. Avec elle, si c'est vrai, cela signifie que nous visons. Donc dans ce cas, je veux utiliser un tracé linéaire par canal, non ? J'ai besoin d'un point de départ et d'arrivée. Donc, nous allons simplement fournir. Pour le point de départ, je peux obtenir la lunette comme ceci. Et à l'intérieur de cette lunette, il y a aussi une prise. Alors laisse-moi te le montrer. Cliquez sur A Scope et ouvrez ce scope, astatic Mish. Je vais cliquer dessus pour l'ouvrir. Et ici, vous pouvez voir qu'il y a un socket. Bien sûr, il est trop difficile de zoomer dessus. Je réduis la vitesse de l' appareil photo en maintenant le bouton le plus à droite et le plus au milieu. Je peux le faire. Maintenant, ce socket. Si vous ne l'avez pas, bien sûr, vous l'avez. Vous pouvez simplement cliquer ici, créer un autre socket et positionner, n'est-ce pas ? Positionnez-le. Vous pouvez voir qu'il est là par défaut. Nous pouvons simplement l' évoquer, le mettre au milieu. Pour ce qui est de la taille, je peux juste y mettre 0,1 pour chacun d'entre eux, 0,1 pour celui-ci et 0,1 pour celui-ci. De cette façon, il est beaucoup plus facile de le positionner, non ? Positionnez-le exactement à ce point rouge, non ? Juste comme ça. Nous pouvons simplement supprimer cette dernière portée. Nous voulons créer notre propre champ d'application. Cette douille est venue avec l'acide. C'est pourquoi il est là. Mettons-le simplement là. Et laissez-moi voir si c'est parfait. C'est un peu difficile de le positionner. C'est pourquoi ils se sont ajoutés eux-mêmes, mais je voulais vous montrer comment ajouter un socket. Et c'est tout. Je pense que ça a l'air bien. C'est là que nous pointons. Maintenant, avec ce support, nous pouvons connaître sa position. Nous avons donc besoin de son nom, non ? Avec ça, nous pouvons aller ici à partir de cette lunette, je peux obtenir l' emplacement de ce socket comme ça Et l'emplacement du socket que vous souhaitez obtenir s'appelle également socket , n'est-ce pas ? Nous l'avons appelé socket ici, donc c'est tout. Maintenant, c'est notre point de départ. Non, nous voulons connaître l'emplacement final, mais pour ce qui est de l'emplacement final, notre socket doit être orienté au bon endroit, n'est-ce pas ? Donc, pour ce faire, revenez à une lunette et nous voulons la faire pivoter jusqu'à ce que la direction X soit le vecteur avant, n'est-ce pas ? Il suffit donc de la tête E pour le faire pivoter comme ceci. 90 degrés d'abord pour voir ce qui va se passer, tête W. Non, vous pouvez voir que le X est dans la bonne direction. Si nous passons au plan et qu'ici, vous le regardez, vous pouvez voir qu'il fait face dans cette direction Le X doit faire face de cette façon. Ainsi, lorsque nous en obtenons le vecteur direct, il est dans la bonne direction. C'est tout pour notre socket. Ou une prise. Non, c'est parfait. Maintenant, allons-y, passons à la fonction de traçage des lignes de feu. Nous sommes en train d'obtenir le point de départ, mais nous devons également obtenir le point d'arrivée. Pour l'emplacement final, je veux d'abord obtenir la rotation du socket, et le socket dans lequel vous voulez obtenir sa rotation est également appelé socket, n'est-ce pas ? Et avec elle, nous pouvons en extraire le vecteur avant. Et après avoir obtenu le vecteur avant, parce que le vecteur direct est d'une longueur de un. Ce n'est pas trop. Il n' y aura pas grand-chose devant nous. C'est pourquoi je veux le multiplier par une valeur vraiment importante. Tous les X, Y et Z doivent être multipliés par une très grande valeur Je peux donc soit mettre une grande valeur dans chacun d'eux, cliquer avec le bouton droit de la souris ici, le changer en valeur flottante, et je devrais y mettre une très grande valeur, c'est tout. Non, nous devons y ajouter l' emplacement de départ, n'est-ce pas, parce que nous voulons que cela commence à partir de l' emplacement de départ pour avancer, n'est-ce pas ? Donc, c'est ça. C' est notre destination finale. Et pour que vous puissiez le voir pour que Draw puisse taper, je voudrais le changer pour la durée et non, nous allons simplement compiler en tête. Nous avons notre fonction. Utilisons-le simplement. Ici, je veux passer à find line trace ici et le connecter comme ça. Maintenant, si nous avions compilé et exécuté le jeu, si nous tirions comme ça, rien ne se passerait parce que nous avons créé ou tracé des lignes juste pour le moment où nous visons. Mais lorsque nous visons, il suffit de le regarder. Cool, je peux voir qu'il y a une ligne entre la lunette et l'endroit où nous regardons. Vous pouvez voir si je photographie ici, vous pouvez voir, c'est bien, mais c'est un peu exagéré. Si vous voulez qu'il soit parfait, vous pouvez vous tourner vers un oscilloscope et faire pivoter légèrement dans le sens large, exemple de moins cinq degrés, n'est-ce pas ? Il va donc regarder un peu vers le bas. Maintenant, si vous renversez le jeu, il s'agit de la rotation du pistolet, de la lunette et tout ça, n'est-ce pas ? Alors tirons. Non, tu peux voir que c'est parfait. Bien sûr, c'était bien comme ça, non ? Laissez-moi photographier ici, par exemple. Non, tu peux voir que tout a l'air génial. Nous l'avons donc simplement fait pivoter légèrement vers le bas, pour qu'il soit orienté vers le bon point, non ? Et c'est tout. Maintenant, nous avons une trace de fourrure chaque fois que nous visons. Nous voulons faire de même chaque fois que nous ne visons pas. Voyons ce que nous pouvons faire ensuite 22. 21 Trace de ligne pour un état de non-ciblage: Non, nous voulons créer le tracé linéaire lorsque nous ne visons pas. Voyons comment nous pouvons le faire. Pour ce faire, je veux accéder à la fonction Fire Line Trace ici. En cas de panne, lorsque nous ne visons pas, je souhaite utiliser un autre tracé linéaire par canal, d' accord, comme avant, j'ai besoin d' un point de départ et d'arrivée. Quels sont les points de départ et d'arrivée ? Le point de départ, je veux que ce soit exactement au milieu de l'écran, là où se trouve le réticule. Ce n'est pas exactement au milieu. Nous le réduisons un peu. Nous y réfléchirons également, mais c'est le point de départ. Et pour l'emplacement final, nous pouvons simplement utiliser la direction que vise ce point, n'est-ce pas ? Laissez-moi vous montrer comment vous pouvez le faire. Tout d'abord, nous devons trouver le milieu de l'écran. Comment pouvons-nous le faire, nous pouvons obtenir la taille de la fenêtre d'affichage, n'est-ce pas ? Avec cette taille de fenêtre d'affichage, si vous cliquez dessus avec le bouton droit de la souris, si vous fendez une épingle, cela nous donnera le X et le Y de la taille de notre moniteur ou d'un écran ou d'une fenêtre d'affichage, Non, parce que nous voulions le milieu. Nous pouvons diviser X par deux, et cela nous donnera le milieu, et nous devons faire de même pour le Y également. Donc, divisez-le par deux, et comme dans le sens du blanc, nous avons fait un peu avec le bas , nous pouvons en ajouter un petit peu , disons 35, nous allons tester avec cela. Et avec ces valeurs, nous trouverons ce point rouge, non ? Maintenant, nous voulons convertir cette position artistique, car il s'agit d'une position à l'écran. Il existe un nœud pour cela. C'est ce qu'on appelle D project screen to art. Et si je clique ici avec le bouton droit la souris et que je divise la goupille, il faut un X et un Y. Donc c'est le Y, c'est le X. Ensuite, il faut la manette du joueur Alors, procurez-vous la manette du joueur comme celle-ci. C'est ça. Nous avons maintenant le point de départ, et cela nous donnera également l'orientation du mot . Faites de la place. La direction de ce mot est exactement que le vecteur avant du milieu de l'écran, n'est-ce pas ? Donc, comme la direction est une longueur de un, c'est pourquoi nous voulons la multiplier par une valeur vraiment élevée. Alors changeons simplement cela en float et multiplions le par une très grande valeur comme celle-ci. Ensuite, nous voulons également y ajouter la position de départ , et c'est tout. C'est notre destination finale. Et pour que vous le voyiez, je voudrais remplacer ce type de debo draw par duration. C'est ça. Maintenant, si vous écrasez le jeu et que vous tirez ici, vous pouvez voir, encore une fois, que c'est un peu trop haut. Nous devons donc en ajouter d'autres. 50, par exemple, non ? Maintenant, si vous écrasez le jeu et que vous tirez, vous pouvez voir que c'est parfait. Pourquoi devrions-nous utiliser 50 ? Si nous passons à Widget Blueprint, laissez-moi vous le montrer FPS, Widget et passer au Widget Blueprint Ici, si nous les sélectionnons toutes, peu importe laquelle vous pouvez voir le décalage vers le haut, nous utilisons 50. C'est pourquoi nous devrions en ajouter 50, non ? Vous pouvez dire : Non, c'est parfait, non ? Non, nous avons des tracés linéaires lorsque nous ne visons pas 23. 22 Résultats de retour: La prochaine chose que tu veux faire. Nous voulons vérifier avec ces tracés linéaires. Si nous avons trouvé quelque chose, renvoyez le résultat. Voyons comment nous pouvons le faire. Tout d'abord, commençons par celui-ci. Ici, tout d'abord, il y a une valeur de retour, et avec elle, nous pouvons la vérifier avec une branche. Donc si c'est vrai, cela signifie que nous avons touché quelque chose, non ? Dans ce cas, nous pouvons donc renvoyer la valeur que vous souhaitez. Ajoutez une note de retour, nous voulons renvoyer un résultat Ohad, n'est-ce pas ? Une solution consiste simplement à cliquer sur les résultats, les nommer, et tout ça. Mais le meilleur moyen et le plus rapide est de saisir cela, dépasser le résultat, et ici, étendre et d'obtenir tout ce dont nous avons besoin, n'est-ce pas ? Donc, la première chose dont nous avons besoin, est le point d'impact. Donc, il suffit de glisser-déposer, de le placer là, et il le mettra en sortie pour nous et le nommera pour nous, n' est-ce pas ? C'est magnifique. Ensuite, nous avons également besoin d'un impact normal. Dragon Drop l'a donc mis là aussi. Ensuite, nous avons besoin de l' acteur principal, Dragon Drop. Magnifique. Ensuite, c'est un nom d' os, non ? Glissez et déposez, placez-le là, et c'est tout. C'est tout ce dont nous avons besoin pour pouvoir, par exemple, ajouter des effets visuels, n'est-ce pas ? Donc, non, nous renvoyons des informations utiles à partir de cette fonction et nous pouvons les utiliser, non ? Mais si je n'ai rien touché ? Ce que nous devrions rendre, n'est-ce pas ? Lorsque nous ne touchons rien, nous n'avons pas de point d'impact normal, acteur thermique, de nom d'os. Nous ne l'avons pas parce que nous n'avons rien touché. Je vais donc passer cet arbre vide, mais au point d'impact, je passerai l'extrémité de la trace, l'emplacement final, n'est-ce pas ? Nous avons donc quelque chose à photographier, le point d'impact ou le lieu d'arrivée, n'est-ce pas ? Et non, avec toutes ces commandes C Control V pour les coller ici et les connecter. Vous n'avez pas besoin de le faire à partir de zéro. Alors connectez-le à ici, connectez-le à ici, et cela devrait fonctionner. C'est ça. Maintenant, nous renvoyons les informations utiles. Et avec ces informations, d'abord, nous serons vraiment organisés, et nous pourrons en faire plein de choses. Voyons maintenant comment utiliser ces résultats. Nous ajoutons donc quelques effets visuels de la Nagra. 24. 23 VFX du traceur de feu: abord, aucun graphique que je souhaite ajouter ne s'appelle fair tracer, et nous voulons le faire avec toutes ces valeurs. Nous voulons créer des effets visuels. Ici, il vaut mieux ajouter un nœud de séquence. Donc, avec ce nœud de séquence, nous pouvons un par un , créer un effet visuel, non ? Et pour jouer à ce correctif visuel de la Nagra, je souhaite créer une autre fonction, afin qu'elle soit plus facile à utiliser Tout d'abord. Créons simplement une fonction. Je veux l'appeler Fire Tracer, VFX, non ? Et là où je veux l'utiliser, laissez-moi accéder au Web et lancer, puis à zéro, non ? Fire Tracer Vax et connectez-le comme ça. Maintenant, avec ça maintenant, allons-y. Je veux créer un système, un système d'envergure, le système inaugural attaché, pourquoi attaché parce que nous voulons attacher au bout ou au pistolet, n'est-ce pas Donc d'abord, nous devons choisir Fire Tracer. Alors recherchez un traceur d'arme à feu, mettez-le là. à quoi nous voulons l'attacher, nous voulons l'attacher à notre arme. Alors connectez-y le pistolet. Le nom du point ci-joint, nous voulions le bout ou le pistolet. Alors laisse-moi trouver le squelette du pistolet. Nous avons une muselière. Nous pouvons donc l'utiliser, non ? Donc, entête deux dessus, pour que tu puisses le renommer, Ctrl C pour copier Ctrl C pour copier le nom et le coller ici. C'est ça. Non, rien ne se passera car il y a des pomètres utilisateur à l'intérieur ce système Niagara que nous voulions changer. Alors cliquons simplement sur cette loupe, ouvrons celle-ci, ces effets visuels, et sachez qu'ici, laissez-moi d' abord vous la montrer Si je l'avais, il n' y a rien parce que le promètre utilisateur sur lequel nous voulons nous asseoir n'est pas réglé, n'est-ce Nous devons donc mettre à jour la position d'impact. Ce nom est donc très important. Maintenant, avec ça, revenons à ça. Et ici, avec cet effet Naga, nous voulons savoir où se trouve la fin de ce traceur d' incendie, n'est-ce pas ? Nous devrions donc dire Nagara set vector array. Pourquoi définir un tableau vectoriel ? Encore une fois, si je vais ici, vous pouvez voir qu'il s'agit d'une interface de données, d'un tableau, d'un arbre de flux Niagara. L'arbre de flux Niagara est comme un vecteur ou un plan. Rappelez-vous donc qu' ici, il faut un tableau, mais comme nous ne touchons qu' un seul endroit à la fois, nous pouvons simplement créer un tableau avec une seule entrée. Et quelle est cette contribution ? C'est le point d'impact. Cette fonction a donc besoin du point d' impact comme entrée. Cliquez ici, et le type, comme vous le savez, doit être vectoriel, et je veux l'appeler point d' impact, non ? Et nous pouvons utiliser ce point d' impact ici, saisir et rechercher un point d'impact. C'est ce que j'ai trouvé ici. Nous pourrions simplement glisser-déposer des connexions comme ça, mais de cette façon, c'est beaucoup plus propre, non ? Il suffit de le mettre ici. Le nom du nom de remplacement est vraiment important Il est donc très important de copier le nom exact ici. Nous pouvons donc cliquer dessus avec le bouton droit de la souris, renommer la tête et Croce le copier Et ici, il faut le coller, non ? Mais rien qu'avec ça, ça ne marchera pas. Si vous allez ici, vous pouvez voir la variable que nous avons ici, la variable de tableau vectoriel que nous avons ici se trouve dans l'espace utilisateur. C'est pourquoi nous devrions également ajouter cet utilisateur. Donc, ici, nous devons ajouter les positions d' impact des points de l'utilisateur, n'est-ce pas ? Donc, avec cela, nous ajoutons la position d'impact avec ou le point d'impact, n'est-ce pas ? C'est ça. Non, nous devrions tirer avec une arme et passer du point d'impact au point d'impact, non ? Alors passez-le comme cette compilation de tête. Non, je veux accéder à Fire Line Tracer et désactiver ce type de Draw Debuc parce que nous n'en avons plus besoin. Ici aussi, remplacez le type de débuc de dessin par none, nous pouvons maintenant le tester Si vous écrasez le jeu, voyons voir. Si vous le voyez, à notre rencontre , nous avons une trace de ligne de feu, non ? Peu importe celui que nous utilisons, nous l'avons, non ? C'est trop cool. Non, nous ajoutons des effets visuels lorsque nous tirons ou que nous tirons avec une arme. Ensuite, nous voulons également avoir un impact. Voyons comment nous pouvons le faire. Suivant. 25. 24 Effets spéciaux liés à l'impact du feu: Non, un autre effet visuel que je voudrais ajouter concerne l'impact sur le sol, n'est-ce pas ? Voyons donc comment nous pouvons le faire. Comme cela a été le cas pour Fire Tracer VFX, nous devons également créer une fonction pour celui-ci Impact ou impact incendie, effets visuels, non ? C'est notre fonction. Et dans le cadre de cette fonction, nous voulons utiliser un système de spa sur place, n'est-ce pas ? C'est amplement suffisant. Le système que vous souhaitez utiliser s'appelle le béton NS Impact, n'est-ce pas ? Il suffit de l'utiliser. Maintenant, pour ce qui est de l'échelle de rotation des emplacements, vous n'avez pas à vous en soucier. Il suffit de cliquer dessus et de l'ouvrir ici. Regardons-le simplement. Il a été compilé. Vous pouvez le voir à quoi il ressemblait. Si vous utilisez le promètre, vous pouvez constater qu'il a besoin d'une position normale d' impact et d'une position d' impact, n'est-ce pas ? Nous devons donc fournir cela avec ces valeurs, n'est-ce pas ? Encore une fois, l'impact normal est un tableau, un arbre de flux vectoriel. Et l'impact positionne, encore une fois, une matrice, cette fois une position. Encore une fois, positionnez-vous, c'est comme un vecteur, non ? Alors maintenant, allons-y et configurons-les. Ici, nous n'avons pas besoin de définir la rotation de l'emplacement et une échelle. Ils sont compensés à ce stade parce l'emplacement que nous avons ici est beaucoup plus important, n'est-ce pas ? Donc, la première chose que vous voulez faire ici, que nous disons Naga set position array, n'est-ce pas ? Juste comme ça. Nous l'appelons tableau de positions, mais c'est exactement comme définir un vecteur. Si nous le faisons parce que nous ne touchons qu'une chose à la fois , vous pouvez voir que ce n'est qu'un vecteur. Ils l'appellent simplement position à ce stade. Vous allez donc apprendre les deux. Nous avons donc besoin du point d'impact de cette position, non ? Donc, à l'entrée, nous pouvons créer une entrée, et je veux l'appeler point d' impact, n'est-ce pas ? Et on peut l'utiliser ici. Recherchez l'impact. Point. Non. Son nom est vraiment important. Il suffit donc de trouver le nom du poste, de cliquer dessus avec le bouton droit de la souris, de renommer la tête, contrôler C, de le copier Et ici, laisse-moi zoomer. Nous voulons utiliser point avec ce nom, non ? Position d'impact. Maintenant, avec ce t, prochaine chose que vous voulez définir, ce sont les normales d'impact Alors faisons-le maintenant. Nous pouvons le récupérer. Cette fois, tu devrais dire que Niagara a tué Victor Ay, non ? Et il a besoin d'une épingle d'exécution. Cette fois, nous voulons mettre à jour les normales. Alors allons-y, cliquez avec le bouton droit sur celui-ci, renommez-le, polémique pour le copier Et ici, nous voulons dire «  User point impact normalals ». C'est ça. Pour passer les normales, encore une fois, il faut un tableau Faisons donc simplement un tableau. Et à l'entrée, nous avons également besoin d' un impact normal. Créez donc une entrée. Je veux l'appeler Impact normal, non ? Et on peut juste l'utiliser ici. Donc, ici, recherchez Impact. Normal. C'est ça. Je pense que tout est terminé. Je devrais travailler, mais nous devrions tirer avec des armes et utiliser cette fonction. Lancez, impactez un VFX, connectez-le , puis un à celui-ci. J'ai besoin d'un point d'impact. Donnons-lui donc le point d'impact, et il faut que l'impact soit normal. Donnons-lui donc également un impact normal. Et c'est tout. Maintenant, dirigeons-nous simplement compiler et exécuter. Si tu tires, tu peux le voir. Il s'agit de graphismes simples ou inexistants pour chauffer quelque chose et cela devrait se produire pour les deux. Lorsque nous visons, vous pouvez le voir, mais il est là. Tu vois ? Ça a l'air génial. Ça a l'air magnifique. 26. Mode Gun Burst 25: Sachez que nous pouvons tirer par-dessus une arme, il est temps de passer également au mode rafale. Nous pouvons donc tirer les uns après les autres. Nous avons une cadence de tir, non ? Donc, si vous maintenez la touche la plus à gauche en bas, nous voulons tirer encore et encore, Donc, pour ce faire, je veux revenir au graphe des événements. Et chaque fois que nous tirons par-dessus une arme, peu importe laquelle, si nous la maintenons pendant 0,1 seconde, par exemple, nous voulons pouvoir tirer encore et encore. Donc, ici, je veux utiliser une minuterie. Donc, ici, recherchez un minuteur réglé, par événement, il est plus facile de travailler avec celui-ci. Tout d'abord, cette fois, je voulais rester au courant. Donc je veux que ça se produise toutes les 0,17 seconde, non ? Ainsi, toutes les 17 secondes, cet événement aura lieu et nous pouvons créer un événement personnalisé pour celui-ci. Recherchez donc un événement personnalisé et celui-ci parce que c'est pour lorsque nous visons Je vais appeler cet événement personnalisé parce qu'il est différent de celui lorsque nous ne visons pas. Je veux dire que c'est du feu quand je vise, non ? C'est ça. Non, cet événement se produira toutes les 0,17 secondes, n'est-ce pas ? Et avec cela, nous voulons jouer à ces deux-là. Tout d'abord, jouez à un dessin animé, puis à une arme, à un feu, non ? Comme toujours. Contrôle C : nous le collons ici et le connectons comme ça. Comme vous le savez, lorsque l'animation d' un étranger ou d'une arme destinée à viser ou à ne pas viser est différente. C'est pourquoi je l'appelle différemment. Ensuite, nous voulons faire de même lorsque nous ne visons pas. Nous avons besoin de plus d'espace. Alors laisse-moi prendre ça, en parler. Maintenant, dans celui-ci, encore une fois, je veux aussi régler une minuterie. Réglez à nouveau le chronomètre par événement. Et encore une fois, dans celui-ci, je veux que ça arrive toutes les 0,17 seconde, et je veux que ça se passe en boucle Donc, avec cela, cet événement aura lieu toutes les 0,17 secondes, non ? Créez donc un événement personnalisé pour et je voudrais appeler celui-ci tirer quand vous ne visez pas, n'est-ce pas ? Ou quel que soit le nom que vous voulez lui donner, ça devrait être juste différent avec celui-ci, non ? Et cela se produira toutes les 0,17 secondes, non ? Et pour chacune d'entre elles, nous voulons également jouer ces deux fonctions. Jouez à un montage et ensuite, tirez avec une arme à feu. Maintenant, passons simplement en revue le jeu pour voir s' il y a un problème. Ici, si je maintiens le mouvement vers la gauche, non, nous tirons. Mais si nous relâchons le bouton le plus à gauche, il n'arrêtera pas Voyons comment nous pouvons résoudre ce problème. Donc, si nous relâchons le bouton le plus à gauche, ce qui se passera pendant toute cette période d'incendie se produira Cela va se produire, et nous voulons annuler le chronomètre. Voyons donc comment nous pouvons le faire. Pour que nous puissions annuler le chronomètre, nous devons enregistrer ce chronomètre dans une variable. Donc, en cliquant avec le bouton droit de la souris ici, passez à une variable, et je veux dire que c'est un déclenchement. R, non ? Et je souhaite également utiliser la même variable pour cette minuterie. Donc, polémique sur Control V pour le coller ici. C'est la même variable, non ? Je ne veux pas créer beaucoup de variables ici. Et chaque fois que nous relâchons le bouton le plus à gauche, que voulez-vous faire ? Nous voulons obtenir ce chronomètre et l'effacer, n'est-ce pas ? Cela n'arrivera donc plus. Nous disons donc effacer et invalidez chronomètre par manche chaque fois qu' il est terminé Maintenant que c'est fait, il ne reste plus qu' à compiler et exécuter le jeu. Non, si je tire. Chaque fois que je le relâche, vous pouvez voir qu'il ne pourra pas tirer. C'est ça. C, non ? Non, testons-le simplement lorsque nous visons. Cela fonctionne parfaitement bien. 27. 26 Pointe de la corde d'impression: Non, la prochaine chose que nous voulons faire, d'avoir un système de munitions Nous ne devrions donc pas être capables de filmer à l'infini, non ? Donc, pour ce faire, je veux aller au BPFPS et ici, je veux créer une variable de type entier, non Et le nom, je veux l' appeler ammo et ensuite, je veux créer une autre variable pour le stockage Des munitions, non ? Disons les munitions de stockage, donnez-leur une valeur par défaut Par exemple, 50, non ? Et les munitions en elles-mêmes, disons que nous en avons dix, non ? C'est ça. Sur un ShowT. La meilleure façon de l'afficher est d'utiliser une chaîne d'impression sur eventq Trouvons donc simplement l'événement. Comme je veux le faire, c' est une bonne pratique de faire les débogages comme celui-ci Après cela, nous créerons une interface utilisateur pour cela. Donc, ici, je veux utiliser une chaîne d'impression, d'accord. Et avec cela, je veux utiliser un format de texte, n'est-ce pas ? Ainsi, avec ce format de texte, nous pouvons combiner certains textes ensemble. Je peux dire, par exemple, ouvrir et fermer les bretelles bouclées Et là-dedans, je veux dire munitions, non ? Et après cela, j' ajouterai du texte, par exemple, d' une autre accolade bouclée Je veux l'appeler stockage, munitions ou quel que soit le nom que vous voulez Si vous vous y rendez, vous pouvez voir qu'il y aura deux broches ici, si nous connectons les munitions aux munitions d'ici et des munitions de stockage à celle-ci Bien sûr, je n'ai pas écrit ce nom correctement. D'une munition de rangement à une munition de stockage ici. Ce que fera ce nœud, c'est remplacer les bretelles bouclées qui se trouvent à l'intérieur de ces munitions par cette variable de munitions, et il remplacera bretelles bouclées pour munitions de stockage par cette variable de munitions de stockage Le nom de ceci et celui-ci n'a pas besoin d' être le même. Non, cela étant fait, nous devons étendre le test d'impression et lui donner une clé. Peu importe la clé que vous y mettez, nous voulons que ce soit la persévérance. Donc, si nous ajoutons la clé, ce sera la persévérance, non ? Head Compilation et aucun jeu Runo. Non, vous pouvez voir dans le coin supérieur gauche qu'il est écrit dix sur 15 parce que nous avons dix munitions sur 15 munitions de stockage, n'est-ce Supposons, par exemple, que nous réduisions ces munitions . Par exemple, lorsque nous tirons la tête, nous voulons obtenir les bonnes munitions, et nous voulons en réduire une Nous pouvons donc utiliser decrement int, non ? Ce que fera ce nœud, il diminuera les munitions d'une unité. C'est ça. Et cela l'économisera également dans les munitions. C'est un moyen rapide de le faire. Maintenant, si vous écrasez le jeu, vous pouvez voir que je peux tirer, et ce sera neuf, huit, six, trois, deux, un. Et vous pouvez voir qu'il peut atteindre des valeurs négatives. Mais nous ne voulons pas faire le gestionnaire de munitions comme ça. Supprimez-le, vous n'en avez pas besoin. Nous allons créer une fonction pour gérer les munitions. Voyons comment nous pouvons le faire ensuite 28. 27 Gestionnaire de munitions: Non, je souhaite créer une fonction pour réduire les munitions. Donc, pour ce faire, créons simplement une fonction et je voudrais l' appeler diminuer les munitions, n'est-ce pas Et à l'intérieur, chaque fois que nous appelons cette fonction, nous voulons diminuer les munitions d'une seule unité, comme nous le faisions auparavant, n'est-ce pas Ici, nous voulons d'abord vérifier si nous avons des munitions si elles sont supérieures à zéro, nous voulons les vérifier avec une branche, pour qu'elles ne descendent pas en dessous de zéro, n'est-ce pas Ça ne devrait pas être comme ça, non ? Donc, s'il est supérieur à zéro, nous voulons obtenir les munitions et en réduire une, et comment nous pouvons le faire avec moins moins décrémenter int, je les diminuerai d' une unité et cela les économisera en soi. C'est ça. Compile et sauvegarde Non, où voulons-nous que cela se produise chaque fois que l'arme tire Donc, ici, que voulez-vous faire avant de faire quoi que ce soit, accord, nous voulons utiliser cette fonction de réduction des munitions Et parce que nous créons un feu d'arme, il est très facile de l'ajouter partout, n'est-ce pas ? En l'ajoutant simplement ici, car les coups de feu sont omniprésents. Maintenant, si vous renversez le jeu, vous pouvez voir qu'il est dix et que nous pouvons tirer. Je passe à zéro après zéro, ça ne passera pas à moins, mais encore une fois, on peut tirer. Voyons comment nous pouvons résoudre ce problème maintenant. Si nous passons à un graphique incurvé, je tire au début. Ce que nous voulons faire, c'est vérifier si nous avons des munitions, puis tirer avec l'arme, n'est-ce pas Nous avons donc besoin d'espace, créez de l'espace comme celui-ci. Je veux utiliser une succursale ici. Donc, branche. Et avec cette branche, nous voulons vérifier si nous avons des munitions Alors, prenez les munitions, et si la quantité de munitions est supérieure à zéro, dans ce cas, nous pouvons Maintenant, compilons, exécutons. Maintenant, si vous tirez, vous pouvez voir que nous ne pouvons plus tirer, mais nous avons un autre problème. Ici, si nous prenons des photos sans relâcher le bouton le plus à gauche, il pourra reprendre la prise de vue. Tu vois ? Mais si vous relâchez le bouton le plus à gauche et que vous essayez de prendre à nouveau la photo, cela ne fonctionnera La raison pour laquelle cela se produit, c'est à cause de ces chronomètres. Sur ces minuteries, nous devons également vérifier les munitions , non ? Donc, dans ces deux chronomètres, nous voulons vérifier exactement auprès de cette succursale que nous avons ici, n'est-ce pas ? Organisons-le un peu comme ça et Croce pourra le copier, car lorsque vous l'utilisez sur ces deux minuteries Si nous avons des munitions, vous pouvez continuer à tirer avec l'arme Encore une fois, pour celui-ci, nous allons le mettre ici, connecter le pin d'exécution comme ça. Maintenant, si nous avions compilé et exécuté le jeu, si nous tirions toutes nos munitions, il ne serait pas capable de tirer Tu peux voir que ça ne marche plus. Il est maintenant temps de pouvoir recharger. Tu vois, nous pouvons le faire ensuite. 29. 28 Événement personnalisé de rechargement du pistolet: Non, nous voulons pouvoir recharger notre arme, mais je voudrais la casser en quelques étapes, afin que vous puissiez le comprendre plus facilement Ce n'est pas si compliqué, mais je veux que cela soit organisé. Donc, pour le recharger, je veux aller ici. Comme ici, cliquez avec le bouton droit de la souris, créez un événement personnalisé, ajoutez un événement personnalisé, et je veux l'appeler reload Gun, non ? C'est ça. Et avec elle, je veux juste utiliser une chaîne d'impression, et je veux y ajouter. Rechargez, non ? Non, quand voulons-nous que ce rechargement ait lieu, n'est-ce pas ? abord, nous voulons que cela se produise automatiquement lors ce chronomètre, événement personnalisé, de ce chronomètre, événement personnalisé, qu'il s'agisse de viser ou de ne pas viser. Dans les deux cas, si les munitions n'étaient pas supérieures à zéro, nous voulons utiliser Reload Gun. D'accord ? C'est tout ici, et ici aussi. Rechargez, Gun. Et où d'autre ? Voyons voir. Chaque fois que nous appuyons sur R sur notre clavier, nous voulons également recharger Nous avons donc également besoin d'une contribution. Allons donc simplement dans le dossier des entrées, faisons un clic droit ici, passons à la saisie et créons une action de saisie. Je veux l'appeler IAR load. C'est ça. Nous n'avons pas besoin de changer quoi que ce soit à l'intérieur, nous devons le cartographier. Donc, ici, IMC FPS, cliquez sur Ajouter un nouveau mappage et nous voulons cartographier le rechargement de l'IA qui se trouve ici . Quand voulons-nous que cela se produise ? Cliquez ici, sur R de votre clavier. Chaque fois que nous appuyons sur R, nous voulons que cela se produise, non ? Non, ici en bas, ce que je veux faire, je veux cliquer ici avec le bouton droit de la souris, rechercher IA reload D'accord ? Ainsi, chaque fois que nous appuyons Recharger le point de départ, chaque fois que nous appuyons sur le bouton Recharger ou sur R de notre clavier, nous voulons recharger le pistolet C'est ça. Maintenant, nous venons de compiler. Tout d'abord, si j'appuie sur R, vous pouvez voir qu'il est écrit « recharger », et cela fonctionne bien Si nous tirons avec notre arme et qu'elle diminue ses munitions, il suffit de la tenir Une fois qu'il a atteint zéro, c'est par exemple recharger, et après cela, nous ne pouvons plus tirer Un autre endroit que nous voulons recharger est au début de cet IA Fire, chaque fois que nous vérifions si les munitions sont supérieures à zéro , n'est-ce Dans ce cas, nous voulons également recharger, non ? Donc ici, en cas de chute, si les munitions n'étaient pas supérieures à zéro, nous voulons recharger le pistolet Pourquoi devons-nous l'ajouter ici ? Disons que nous tirons avec notre arme comme ça avec le bouton le plus à gauche à chaque fois, non ? Et quand il atteint zéro, si vous appuyez sur le bouton le plus à gauche, cela indique Si vous appuyez à nouveau sur le bouton le plus à gauche, cela indique « recharger ». Encore une fois, vous pouvez voir que non, cela fonctionne bien. Non, nous savons où recharger le pistolet, et quand le recharger, implémentons simplement le système de rechargement 30. 29 Remplissez le magazine: Non, la première chose que je veux faire pour le rechargement, créer une fonction uniquement pour augmenter le nombre de munitions La raison pour laquelle je souhaite créer une fonction pour cela, même si nous avons un événement personnalisé, c'est parce que nous devons vérifier beaucoup de logique. Nous avons beaucoup de logique. Je ne veux pas tout gâcher. Nous y ajouterons également de l' animation. L'animation sera donc là, mais la logique résidera dans cette fonction. Donc, ici, je veux créer une fonction et je veux l' appeler reload, non ? Et lors de ce rechargement, je veux tout d' abord vérifier les munitions. Si les munitions sont égales à zéro Cela signifie qu'il n'y a aucune balle dans le magazine, n'est-ce pas ? Il y a une différence, non ? Utilisez donc une branche ici pour vérifier les munitions. Ensuite, nous devons définir, à chaque fois que nous rechargeons notre arme, le nombre de balles que notre chargeur peut encaisser lorsqu'il est complètement rechargé, n' est-ce notre chargeur peut encaisser lorsqu'il est complètement rechargé, Donc, pour cela, je veux créer une variable, et je veux l'appeler reloaded Max Ammo reloaded Max Ammo Donc, pendant que je vérifie si les munitions sont égales à zéro. Supposons, par exemple, que dans une munition de stockage, nous ayons 50 balles Et dans notre magazine, il y a trois balles. Et nous avons chargé des munitions Mg. Disons que c'est 12, non ? Mettons-en 12. Non, si nous avons trois balles dans le chargeur et que le maximum de munitions rechargées est de 12, cela signifie que nous n'avons besoin que de neuf balles provenant des munitions de stockage pour être ajoutées au chargeur Nous n'avons pas besoin de ranger ces trois-là. Mais si les munitions étaient égales à zéro, cela signifie qu'il n'y a pas de balle dans le chargeur, donc ce sera plus facile Nous pouvons simplement diminuer le nombre de munitions de stockage et augmenter le nombre de munitions, n'est-ce pas ? C'est ça. Nous avons donc deux domaines. Premièrement, s'il y a déjà une balle dans le chargeur, s'il n'y en a pas et que le chargeur est vide, n'est-ce pas ? Donc, s'il est égal à zéro, cela signifie que cela se produira et que le magazine est vide. Dans ce cas, nous voulons tout d'abord vérifier si les munitions de stockage étaient plus grosses que les munitions Max rechargées, dans ce cas, ce cas, Nous voulons vérifier cela auprès d'une agence. Ainsi, si les munitions de stockage étaient supérieures au nombre maximum de munitions rechargées, nous pouvons d'abord diminuer le nombre de munitions de stockage Alors, soustrayez les munitions de stockage par les munitions Max rechargées et enregistrez-les à nouveau dans les munitions de stockage, comme ça , d'accord Et une fois que nous en aurons retiré les munitions de stockage, nous pourrons les ajouter à notre magazine, n' Nous pouvons donc obtenir les munitions comme celles-ci, le maximum de munitions rechargées et les conserver à nouveau dans les munitions et les conserver à nouveau dans les Juste comme ça, sauvegardez-le à nouveau dans les munitions Max. C'est ça. Ce que nous faisons, c'est vérifier s'il n'y a pas de balle dans le chargeur et s'il y a suffisamment de munitions dans le magasin pour le remplir, nous diminuons la quantité de munitions que nous voulons mettre dans le chargeur et nous les ajoutons aux munitions elles-mêmes Maintenant que c'est fait, voyons comment nous pouvons le tester. Je souhaite accéder au graphique des événements. Après ce test d'impression par rechargement, je souhaite utiliser la fonction de rechargement, je souhaite utiliser la fonction de rechargement, n'est-ce pas ? Juste comme ça. Non, disons simplement le statut. Pour que cela se produise pour nous, faut d' abord que les munitions atteignent zéro n'y a donc pas de balle dans le magazine. Alors allons-y. Non, c'est zéro. Si nous appuyons une fois de plus sur le bouton le plus à gauche, cela en ajoutera 12, et cela diminuera de 12 le stock de munitions Et vous pouvez le voir ici. Nous avons 12 balles dans le chargeur, et nous diminuons de 12 balles les munitions de stockage Et encore une fois, si vous tirez et qu'il atteint zéro, et si vous appuyez une fois de plus sur le bouton le plus à gauche, cela réduit les munitions de stockage de 12 et augmente les munitions de 12. C'est 31. 30 Utilisation du reste des munitions conservées: Non, pour le prochain test. Ici, si le chargeur est vide et les munitions de rangement ne sont pas plus grosses que les munitions Max rechargées, des chutes se produiront, n' est-ce Et si ces chutes se produisent, cela signifie que nous n'avons pas assez de munitions dans les munitions de stockage pour atteindre 12 C'est moins de 12, non ? Parce que le nombre de munitions MX rechargées est de 12, alors les munitions de stockage n'en ont pas Ce faux va donc se produire. Et dans ce cas, nous voulons ajouter le reste de la balle aux munitions comme ceci, obtenir les munitions, ajouter le risque d'y ajouter le risque lié aux munitions de stockage, d'accord, comme ça Et gardez-le dans les munitions, gardez-le là en cas de chute comme celle-ci Ensuite, nous voulons mettre les munitions de stockage à zéro. C'est ça. Voyons comment nous pouvons le tester. Pour tester aussi facilement, je veux me tourner vers une munition de stockage Je veux le remplacer par huit, par exemple, n'est-ce pas ? Le nombre maximum de munitions rechargées est donc de 12, mais les munitions de stockage ne sont que de huit, donc elles ne peuvent pas remplir le chargeur Maintenant, si vous testez notre jeu, passons à huit jusqu'à ce que nous atteignions zéro. Non, si j'appuie sur le bouton ifmost, cela réduira le nombre de munitions de stockage à zéro, et cela ajoutera les huit balles que nous avions dans les munitions de stockage aux munitions Non, si je tire, quand il atteindra zéro, rien ne se passera. Il ne peut plus être rechargé. Non, cette succession réservée aux cas où le magazine est vide est terminée. Non, nous voulons faire cela lorsque le magazine contient une balle et que nous appuyons sur R sur notre clavier. Voyons comment nous pouvons le mettre en œuvre. 32. 31 Manuel de recharge: Supposons qu'il y ait déjà une puce dans notre magazine et que nous ayons un R. Alors, comment pouvons-nous y faire face ? Dans ce cas, les munitions ne seront pas nulles. Ce faux va donc se produire. Et si ces fausses munitions se produisent d'abord, nous devons d'abord savoir combien de balles nous devons retirer d'une munition de stockage et l' ajouter aux munitions, que le chargeur soit plein, Donc, pour ce faire, je veux créer une variable pour le calculer. Donc ici, créez à nouveau une variable, de type entier et je veux l'appeler montant à ajouter. Quantité de munitions à ajouter, non ? C'est mieux. Maintenant, pour le calculer, nous devons obtenir le Maxamo rechargé qui, dans ce cas, vaut 12, c'est vrai, et soustraire par les munitions que nous avons déjà Et voilà le montant que vous souhaitez ajouter au magazine, pour qu'il atteigne le Maxamo rechargé, Juste comme ça. Maintenant que nous savons quelle quantité de munitions nous devons ajouter au chargeur ou aux munitions, je voudrais vérifier s'il y a suffisamment de munitions dans les munitions de stockage Je peux donc vérifier cela auprès de la succursale, non ? Et je veux vérifier les munitions de stockage pour voir si elles contiennent plus de munitions que la quantité de munitions à ajouter Si les munitions de stockage contiennent suffisamment de munitions pour remplir le chargeur, c'est vrai Cela dit, nous devons d'abord réduire quantité de munitions contenues dans les munitions de stockage, donc soustraire la quantité à ajouter aux munitions donc soustraire la quantité à ajouter aux de stockage et économiser à l'intérieur des munitions de stockage Donc, avec cela, nous réduisons la quantité de munitions entreposées chaque année, n'est-ce pas ? Ensuite, nous voulons ajouter ce montant au magazine. Nous obtenons donc les munitions et nous y ajoutons la quantité de munitions à ajouter, d' accord, avec un nœud d'ajout Et on économise les munitions après ça, non ? Donc, juste comme ça, nous pouvons économiser les munitions Cool. Maintenant, compilons, sauvegardons et testons Tattooed Disons que non, nous en avons dix dans notre magazine. Le nombre maximum de munitions rechargées est de 12, et nous en avons huit en stock Si nous entendons R, que devrait-il se passer ? Les munitions de stockage devraient diminuer de deux, et elles seront de six, et les munitions elles-mêmes devraient atteindre 12, Tête R, et maintenant tu peux voir, 12 sur six. Cela fonctionne bien, non ? Encore une fois, vous devriez en avoir sept. Nous devons en ajouter cinq, donc il y en aura encore 12, munitions Max rechargées, non ? Et les munitions de stockage utiliseront une seule tête R, et vous pouvez maintenant en voir 121 Vous pouvez donc voir que cela fonctionne bien. L'étape suivante est lorsque les munitions de stockage n' ont pas assez de munitions pour remplir le chargeur Nous pouvons donc simplement ajouter le reste des munitions qui se trouvent à l'intérieur des munitions de stockage dans le chargeur Et réglez ensuite les munitions de stockage à zéro car il n'y en a pas assez Donc pour cela, je veux mettre les munitions ici, les ajouter aux munitions de stockage et ensuite, placer les munitions, comme ça, connecter l' exécution, épingler Ensuite, nous voulons remettre les munitions de stockage à zéro, elles seront donc nulles Maintenant, voyons comment nous pouvons envoyer des SMS. Testez ça. Si vous renversez le jeu, tirons sur tout, non ? Nous en avons deux sur notre chargeur en ce moment, et nous en avons huit en réserve, et le nombre de munitions rechargées est de 12, donc cela ne remplira pas le Si nous appuyons sur R, la quantité de munitions dans le chargeur devrait être de dix, et les munitions de stockage devraient être Alors, appuyons simplement sur R. Maintenant, vous pouvez voir, dix sur zéro. C'est ça. Cela fonctionne bien, non. Nous avons un système de munitions pour 33. 32 Animation recharger: Il n'y a aucune autre chose que nous voulons faire. Nous voulons jouer de l'animation lorsque nous rechargeons, non ? C'est vraiment important. Allez donc dans le tiroir de contenu. Je veux vous montrer l' animation, alors allez dans Asset, allez dans Arms, arm Animation, et laissez-moi trouver le rechargement Vous pouvez le voir ici. C'est notre recharge. Nous voulons que cela se produise, jouez cette animation, non ? Donc, pour ce faire, encore une fois, je veux utiliser un montage i. Alors cliquez dessus avec le bouton droit de la souris, allez créer et créer des images, n' C'est ça. Je veux le glisser-déposer, le mettre dans le dossier d'animation de l'Opus, le déplacer là, à droite. Par défaut, tout devrait bien se passer. Nous avons un montage de rechargement, non ? Accéder à la fonction de rechargement de BPfPST est bonne . Cette diminution des munitions est une bonne chose. Non, fermons juste certaines d'entre elles. Nous n'avons pas besoin de ceux-là. Passez donc au graphique des événements. Non, ici, nous n'avons plus besoin de dire « recharger ». Nous avons la fonction de rechargement. Vous pouvez simplement le supprimer pour non, bien sûr. Tout d'abord, ici, nous voulons vérifier s'il y a des munitions dans une munition de stockage ou non Alors vérifiez-le auprès de la succursale. Les munitions de stockage, nous devrions vérifier si elles sont supérieures à zéro, non ? S'il est supérieur à zéro, nous pouvons jouer les animations, non ? Si c'est vrai, nous voulons jouer à un montage. Alors recherchez Play Montage, non ? Celui-ci est incomplet. Donc, chaque fois que le millésime sera complètement joué, cette partie incomplète se produira, n' Le montage auquel vous souhaitez jouer s'appelle montage de rechargement des bras, et le mage squelettique sur lequel vous souhaitez jouer cette animation s'appelle bras Alors, dragon, laisse-le tomber, mets-le là. Non, tu n'as pas besoin de changer quoi que ce soit. Pour qu'il ne nous cause aucun bogue, nous devons créer une variable. Donc, chaque fois que c'est clair. Cet animotage est clair. Ne rechargez pas à nouveau. Les rechargements ne peuvent donc pas s' interrompre, n'est-ce pas ? Donc, ici, je veux créer une variable de type booléen, et je veux l'appeler es reloading Donc, au début, nous voulons définir le rechargement ese sur true Réglez donc la facilité de rechargement sur true lorsque nous voulons jouer l'animation Et avant tout cela, nous voulons vérifier. Si ce rechargement n'est pas vrai, vous pouvez le recharger. Donc, ici, vérifiez-le avec la branche comme ceci. Si nous ne rechargeons pas, vous pouvez commencer le rechargement vous pouvez commencer le rechargement Et une fois le rechargement terminé, nous pouvons régler ce rechargement pour qu'il tombe à nouveau, c'est vrai, Et lorsque cette animation sera complètement jouée, nous pourrons également utiliser la fonction de rechargement Donc, la fonction de rechargement de Dragon Drop est ici. Ensuite, après avoir joué cette animation, nous devrions également jouer une autre animation . Laisse-moi te le montrer. Si vous allez sur Asset, allez sur Gn, si vous vous souvenez de Gone Animation, nous avons également une animation Gun reload Il suffit de le regarder. Le magazine va sortir, non ? Nous voulons également jouer à cette animation. Donc, ici, on peut oublier le pistolet. Avec cette animation, nous voulons jouer cette animation. Donc cette exécution se fera exactement avec ça, non ? Ici, nous pouvons jouer à l'animation, droite, et connecter cette épingle d'exécution à ici. Et l'animation que vous voulez jouer s' appelle gun reload C'est amplement suffisant. Non, c'est juste le Sato. Si vous deviez compiler, et si vous appuyez sur Exécuter, non, voyons ce qui va se passer Si j'appuie sur R, vous pouvez voir que cela fonctionne bien. Et maintenant, nous en avons 12. Maintenant, si vous tirez à nouveau et si vous tapez à nouveau, vous pouvez voir que le rechargement fonctionne correctement Mais un problème que je peux voir ici, rechargeons d'abord Vous pouvez voir que nous sommes en train de recharger, tout semble bon. Mais nous avons 12 balles dans notre magazine. Mais si vous cliquez encore une fois, l' animation sera jouée pour nous. Rien ne s'est passé en ce qui concerne la quantité de balles dans le rangement et les munitions, mais c'est l'animation qui joue, donc nous devons corriger ce problème Nous pouvons le réparer ici. Nous voulons donc vérifier si les munitions de stockage étaient supérieures à zéro et, avec le lingot final, nous voulons vérifier si les munitions n'étaient pas égales, pas égales au nombre maximum de munitions rechargées. Dans ce cas, Dans ce cas Encore une fois, si les munitions de stockage contiennent des munitions et que les munitions ne sont pas remplies, le chargeur n'est pas rempli le chargeur n'est Si ces deux cas sont vrais, vous pouvez recharger. Maintenant, si vous avez compilé et exécuté, nous en avons dix. Si vous rechargez, c' est bon, non ? Et je sais que si j'avais R, vous pouvez le voir en animation simple, non ? Nous tirons, et après cette tête R, vous pouvez voir, non, c'est du rechargement ou de l'arme Ce set ou ce rechargement est terminé 34. 33 Recharge sonore: Non, nous sommes en train de recharger et nous utilisons l'animation pour cela, mais il n'y a aucun son Donc, pour ajouter du son, là où je veux le faire, je veux le faire dans cette séquence d'animation, en rechargeant le pistolet Cliquez donc sur cette loupe, ouvrez le rechargement du pistolet Ici, comme vous le savez, nous pouvons émettre du son. Alors laisse-moi voir ça. Tout d'abord, le magazine sort, non ? C'est ça. Dans ce cas, ici, nous voulons émettre un son. Ici, cliquez avec le bouton droit de la souris sur Ajouter et notifier le son, et le son que nous voulons jouer est rechargé Rechargez la première partie. C'est ça. Ensuite, un autre magazine sera publié, puis vous voudrez y aller. Encore une fois, je veux jouer un autre son, ajouter Nodify, jouer Et le son que cette fois, encore une fois, il y a le rechargement de la deuxième partie, nom, c'est vrai Après cela, nous avons un onglet, non ? Maintenant, pour la partie suivante, il y a un robinet. Laisse-moi te le montrer. Si vous parcourez le jeu, et que nous appuyons simplement, vous pouvez voir qu'il y a un onglet. Mais ici, en l'ajoutant, c' est un peu difficile. Nous devrions le mettre quelque part et, avec cela, décider si cela doit se produire tôt ou tard. Accédez donc à Ajouter une notification pour jouer le son. Et pour ce son, cliquez ici, recherchez « tap tap in the gun ». Voyons si rien qu'avec ça, le son est bon ou non. Maintenant, si vous frappez, et je pense que ça a l'air bien. Il se trouve sur le châssis 42, près de 42. Bien sûr, vous devriez jouer avec cela jusqu'à ce qu'il soit parfait. Maintenant, jouons-y aussi ici . Ça a l'air génial. C'est magnifique. Tu peux juste le fermer. Aucun rechargement excessif n' émet de bruit. Tu vois ? Cool. 35. 34 Allumage lors du sprint: Non, nous voulons corriger certains bugs qui vous ont permis de le trouver jusqu'à présent. Donc, si je passe par-dessus le jeu et que j'entre ici, sprintons, non ? Et si nous maintenons le bouton fmost enfoncé, oubliez-le. Ça n'a pas l'air bien, non ? Donc, ce que nous voulons faire, changer la vitesse maximale de marche à 250 lorsque nous voulons tirer, n'est-ce pas ? Donc, ici, dans le graphique des événements, lorsque nous voulons tirer, laissez-moi le trouver. Je tire. Tout d'abord, permettez-moi de faire de la place ici. Avant de vérifier si vous visez ou non, je souhaite modifier la vitesse de marche maximale. Téléchargez la composante de mouvement du personnage et réglez ici la vitesse de marche maximale à 250. C'est la vitesse de marche, non, pas la vitesse de sprint, non ? Alors, mettez-le là. Non, il passera à l'état de marche. Mais lorsque nous relâcherons le bouton le plus à gauche, c'est terminé, et nous voulons revenir à l'état dans lequel nous étions Nous voulions donc savoir si nous étions en train de courir ou non. Donc, pour ce faire, je veux créer une variable, et je veux dire qu'elle est en cours d'exécution. C'est ça. Maintenant, où voulons-nous définir cela ? Montez là où nous sommes fixés, le maximum que nous devons atteindre. Si nous le mettons sur 600, nous voulons régler la course à deux, on pourrait simplement l'appeler «   Sprinter », peu importe Contin control, on le colle ici, et c'est pour marcher, non ? Sachez donc que nous savons quand nous courons. Donc ici, avant d' activer le chronomètre, je voudrais vérifier si nous utilisons une branche ou non, n'est-ce pas ? Vérifiez donc si nous sommes en train de courir. Si vous relâchez le bouton le plus à gauche alors que nous étions en train de courir, nous voulons à nouveau faire passer la vitesse de marche maximale à 600 Passons donc au mouvement du personnage, et ici, fixons la vitesse de marche maximale à 600, n'est-ce pas ? Si nous étions en train de courir, connectez la broche d'exécution deux, et ceci pour effacer le chronomètre. Mais si on marchait, on devrait continuer à marcher, non ? Mais pour être sûrs, nous pouvons simplement le mettre sur 250. Si nous étions déjà en train de marcher et tirer et que nous relâchions le bouton le plus à gauche, encore une fois, nous voulions rester à la vitesse de marche, Nous connectons donc les deux ici, et c'est tout. Maintenant, si vous renversez le jeu, voyons ce qui va se passer. Courons et avons laissé le bouton le plus à gauche. Vous pouvez voir qu'il faudra marcher, mais nous avons un problème. Voyons voir. Si nous essayons de tirer, il devrait se recharger Et vous pouvez voir que lorsqu'il court, il tire aussi, un petit peu, non ? C'est à cause de l'espace dont nous disposons dans le mixeur. Nous devons donc changer cela, aller voir des singes, assister à des animations, et faire marcher et courir des bières. Et je veux remettre la douceur à zéro. Testons simplement cela non. Si nous parcourons le jeu et essayons de lancer le bouton pour en obtenir plus, vous pouvez voir qu'il fonctionne bien, non. Cool. Et c'est notre problème. 36. 35 Réparer la course et le tirage: Le prochain problème que nous avons, laissez-moi vous le montrer. Disons que nous nous déplaçons et que nous tirons, non ? Et nous maintenons le quart de travail. Vous pouvez voir ce qui va se passer. Laissez-moi marcher, maintenez le bouton le plus à gauche et maintenez la touche Shift enfoncée. Vous pouvez voir quel est le problème. Chaque fois que nous tirons, nous ne devrions pas autoriser le joueur à sprinter. Donc, pour ce faire, nous devons d'abord savoir quand nous tirons, n'est-ce pas ? Lorsque nous tirons, lorsque cet incendie s'est produit et que les munitions sont supérieures à zéro Je veux donc créer une variable, et je veux l'appeler es firing. Et dans ce cas, nous voulons le définir sur true, n'est-ce pas ? Une fois cela fait, chaque fois que nous essayons de courir, laissez-moi le trouver. Nous montons. Chaque fois que nous essayons de courir, que voulez-vous faire ? Nous voulons vérifier que c'est en train de se déclencher. Obtenez-le et vérifiez-le auprès de la succursale. Et cette fois, je veux que le démarrage et le déclencheur vérifient cela, accord. C'est vraiment important. Si vous ne tirez pas, nous pouvons passer à une vitesse de marche maximale de 600. Non, compilons, sauvegardons et exécutons le jeu, tirons, déplaçons et maintenons la touche Maj enfoncée. Après cela, vous pouvez voir que nous ne pouvons plus courir. Tu vois, si je relâche le bouton le plus à gauche, encore une fois, nous ne pouvons pas courir Quel est donc le problème ? Le problème est que chaque fois que nous relâchons le bouton le plus à gauche, nous ne réglons pas le déclenchement de Es sur false Ici, lorsque nous relâchons le bouton le plus à gauche, le feu IA, nous devons régler le tir E sur false C'est ça. Maintenant, vérifions-le. Vous pouvez voir que nous ne pouvons pas courir. Non, on ne peut pas courir. Donc tout va bien, nous n'avons aucun bug. Bien sûr, si vous trouvez un bogue, laissez-le simplement dans la section des questions ou sur le canal Discord Je vais créer une vidéo pour. 37. Arrière-plan d'interface utilisateur 36 Ammo: Non, nous voulons créer une interface utilisateur pour notre AO. Voyons comment nous pouvons le faire. Pour ce faire, je veux aller dans le tiroir de contenu, aller dans le dossier FPS, aller dans le widget. Et ici, à droite, cliquez sur Accéder à l'interface utilisateur et créez un plan de widget correspondant au type de widget utilisateur. Je veux l'appeler DUBP Amo UI, droite, cliquez dessus pour l'ouvrir Ici, la première chose que je veux ajouter, ajouter un panneau Canvas. Ensuite, je veux ajouter une bordure ici. Et cliquez dessus. Je veux montrer l'AO dans le coin inférieur gauche. C'est pourquoi je souhaite également changer le point d'ancrage dans le coin inférieur gauche et changer la position X et la position Y à zéro. Non, je veux changer l' alignement en Y pour qu'il soit un, celui-ci , mais le x zéro est largement suffisant, non ? Donc, ici, l'alignement de Y, je veux qu'il en soit un, et je veux lui donner un peu de rembourrage qu'il s'éloigne de cette bordure Donc, en position X, je veux mettre 50 et en position Y, je veux utiliser -50 pour que ça monte Pour la taille, je veux changer les tailles à 300 x 100, non ? C'est ça. Ensuite, celui-ci, allez dans les apparences, passez au pinceau et changez l'image dessinée en boîte arrondie. Donc ça a l'air beaucoup mieux. Ensuite, passez au réglage du plan. Faites passer la radio d'angle à dix pour tous. Comme ça, changez la couleur du contour en blanc, non ? Juste comme ça aussi. cause de cela, je veux en mettre un là-dedans, et le type arrondi, je veux le changer pour fixer le rayon. Ensuite, je souhaite également utiliser la transparence du pinceau. Non, je trouve que ça a l'air bien, mais je veux aussi en changer la teinte. La couleur de la teinte, je veux qu'elle soit exactement noire pour que vous puissiez voir les bordures, et je veux changer l' Alpha 20.5, par exemple, chauffer OK. Et c'est l' arrière-plan de Over AO UI, n'est-ce pas ? Juste avec ça, ajoutons-le à notre plan. Au début de la partie, nous devons le créer et l'ajouter à la fenêtre d'affichage Donc ici, encore une fois, je vais dire créer un widget, non ? Et le widget que vous souhaitez créer s'appelle WBP MouI. Ensuite, je veux rediriger la promoted vers une variable, et je veux l'appeler AO UI ou il vaut mieux l' appeler WBP MOI Il sera plus facile de le trouver, non ? Après cela, vous souhaitez l'ajouter d'une fenêtre à l'autre. Et juste avec ça, si vous écrasez le jeu, vous verrez que nous avons un arrière-plan pour afficher l'AO. Voyons maintenant comment y ajouter plus belles choses. 38. 37 Widget boîte horizontale: La prochaine chose que je veux faire. Je veux vous montrer ce que vous voulez créer avec ce fond d'écran. Laisse-moi te parler de la peinture. C'est gratuit, non ? Donc, ici, nous avons un historique, n'est-ce pas ? Dans ce contexte, ce que je veux faire en premier. Et ici, je veux montrer l'image d'une arme comme celle-ci. Je ne peux pas faire mieux que ça. Après cela, je veux ajouter une ligne ici et ajouter une ligne ici également. Et ici, je veux montrer la quantité de munitions, par exemple, dix par huit, par exemple, n'est-ce pas ? Et laisse-moi changer la taille comme ça. Ensuite, laissez-moi cliquer ici pour choisir l'un d'entre eux. Ici, je veux vous montrer comment vous pouvez recharger. Nous ajoutons donc une image ici et ici, nous disons recharger, non ? Comme ce rechargement, comme ça. C'est donc à peu près ce que nous voulons montrer. Une image, une ligne et le numéro de balle à l'intérieur du magazine et du rangement. Et après cela, montrez une image ici pour dire que si vous appuyez sur R, vous pouvez recharger C'est ça. C'est ce que nous voulons faire. C'est notre référence, non ? Pour ce faire, je veux tout d'abord ajouter une boîte horizontale, non ? Donc, ici, ajoutez une boîte horizontale. Nous pouvons donc ajouter horizontalement des éléments les uns après les autres. La première chose que je veux ajouter à l'intérieur cette boîte horizontale est juste une image. Ajoutez donc une image et l' image que je souhaite utiliser, passez au pinceau et ici. Recherchez M four. C'est ça. Maintenant, vous pouvez en voir la taille. C'est trop gros. Je veux lui dire de remplir la moitié de l'arrière-plan. Cliquez donc sur remplir et remplacez le 1 par 0,5 pour non. Bien sûr, il a tout rempli parce qu'il n'y a rien là-bas en ce moment. Mais lorsque nous ajouterons d'autres éléments, vous verrez que cela fonctionne. Ensuite, je veux également l'aligner à gauche et au milieu, au milieu en vertical et à gauche en horizontal. Donc, à gauche de ce côté et au milieu de ce côté. Ensuite, je veux changer la couleur de teinte en quelque chose comme ça, une couleur bleue, d'accord. Comme ça, je trouve que ça a l'air bien mieux. Ensuite, je veux ajouter une ligne au milieu ici, donc ajouter une bordure à l'intérieur de cette horizontale. Vous pouvez voir qu'il sera ajouté ici. Et encore une fois, nous voulions lui dire quelle partie de l'écran elle devait être ressentie. Par défaut, lorsque nous en mettons une ici et 0,5 pour celle-ci, cela signifie que l' arrière-plan entier sera de 1,5, que l'une d'elles sera cette image, 0,5 d'entre elles sera celle-ci et quatre images, n'est-ce pas ? Donc, celui-ci, je veux créer juste une ligne. Donc, je veux que la taille de ce champ soit de 0,005, vraiment un petit nombre Je n'ai pas envie de faire la prochaine chose. Je veux en réduire l'Alpha à 0,5. Hein ? Tu peux le voir. Et je veux ajouter un peu de rembourrage en haut et en bas. Je pense donc qu'en haut, mettons simplement dix pour le haut et en bas jusqu'à dix également. Et c'est tout pour le non, laisse-le comme ça. Ensuite, je veux créer une verticale pour empiler les objets les uns sur les autres Nous créons ceci, nous créons cette ligne. Mais non, nous avons besoin d'une boîte verticale pour pouvoir empiler les objets les uns sur les autres. Trouvons donc une boîte verticale, une boîte verticale, une boîte horizontale ajoutée. Et celui-ci Encore une fois, je voulais faire le plein, mais cette fois, je voulais en remplir 0,6, non ? Tout cela est relatif, n'est-ce pas ? Juste avec ça, si tu cliques ici, tu peux le voir. Il y a une ligne ici et une boîte verticale ici. Et attention, la taille de cette image n'est pas bonne. Je veux changer la taille de cette image à 152 x 41, et c'est tout. Maintenant, nous avons une bonne image. Nous avons une boîte verticale dans laquelle nous pouvons y ajouter beaucoup de choses. Mais pour le moment, je trouve que ça a l'air génial. Disons simplement compiler et exécuter, et maintenant vous pouvez voir. C'est magnifique. Pour le moment, nous ne mettons rien à jour. Nous ne l'avons pas encore terminé, mais dans la vidéo suivante, nous essaierons de le terminer complètement. 39. 38 Ammo UI pour les magazines et le stockage: La prochaine chose que nous voulons faire, d'indiquer le montant du droit. Alors revenons ici. Tout d'abord, nous avons des chiffres, et pour ce que je veux faire, nous voulons d'abord empiler certaines choses les unes sur les autres. Et la première chose que nous voulons empiler en haut, ce sont ces chiffres. Et je veux utiliser une autre case horizontale pour, par exemple, ceci soit un texte, ceci soit un autre texte, et ce sera un autre texte. Donc ils ne les poussent pas du tout, non ? Après cela, nous ajoutons la ligne avec la bordure, puis une autre case horizontale pour mettre cette image ici et après cela, un texte ici, non ? Voyons donc comment nous pouvons le faire. Pour ce faire, je veux tout d'abord créer une boîte horizontale, ajouter une boîte horizontale au-dessus de la boîte verticale, et vous pouvez voir un haut ici. Et je veux dire ressentir 50 % ou 0,5 %, non ? C'est relatif à d'autres choses qui se trouvent à l'intérieur parce qu'il n'y a rien là-dedans, 0,5 remplira tout, n'est-ce pas ? Ensuite, nous avons besoin d'une frontière. Alors laissez-moi monter, prendre une bordure parce que nous avons besoin d'une ligne. Et celui-ci, encore une fois, nous voulions tout remplir, et je veux que la quantité de remplissage soit de 0,01. C'est ça. Ensuite, je veux ajouter une autre boîte horizontale comme celle-ci. Et celui-ci, encore une fois, nous voulions remplir un écran. Cette fois, encore une fois, 0,5 également, non ? Maintenant, avec ça, si vous cliquez dessus, vous pouvez le voir. C'est ça. La première chose que je veux faire, cliquer sur cette bordure et changer sa couleur de teinte Alpha à 0,5. OK. Donc ça a l'air beaucoup mieux. Tu peux le voir. Ça a l'air bien mieux, non ? Ensuite, pour notre boîte horizontale, je veux qu'elle soit exactement au milieu, comme ceci. Vous pouvez voir qu'il est devenu petit, mais lorsque nous y ajouterons des éléments, il s'agrandira. Donc, ce que je veux ajouter n'est qu'un texte. Alors permettez-moi d'en ajouter un, ajouter un autre. Il nous en faut trois, non ? Ajoutez-en une autre. Ce premier, appelons-le simplement amo. Hein ? Le suivant, nous n'avons pas besoin de le nommer. Ce n'est qu'une barre oblique, non ? Et le suivant, ce sera des munitions de stockage, non ? C'est ça. Maintenant, pour que vous puissiez le voir, par exemple, ici, disons huit, n'est-ce pas ? Et pour celui-ci, disons juste à partir de 50 ans, non ? Pour le non, bien sûr. Et celui du milieu, utilisons-le simplement, est une barre oblique, non ? Juste comme ça. Nous montrons la quantité de munitions par pré, n'est-ce pas ? Maintenant, je veux cliquer sur chacun d'eux, les sélectionner tous et changer de couleur. Par exemple, pour ce qui est de l'opacité ou de l'alpha de tous, je veux qu'elle soit de 0,8, un peu faible . Je voulais aussi qu'elles soient toutes alignées au milieu Donc, si nous changeons la taille de l'écran, elle sera toujours au milieu. C'est ça. C'est magnifique. Il n'y a pas de boîte à quatre ni de boîte horizontale ici. Il faut d'abord ajouter une image. Ajoutez donc une image ici. L'image que vous souhaitez ajouter s'appelle R on ou clavier R. Nous la montrons ici. Ensuite, nous voulons dire remplir l'écran. Il suffit d'en pointer un arbre, non ? Encore une fois, c'est relatif. Lorsque nous y ajoutons d'autres éléments, nous pouvons modifier le numéro du champ en conséquence. Si nous ajoutons autre chose et que cette valeur est supérieure à cela, cela occupera plus de volume dans notre boîte horizontale, n'est-ce pas ? Ensuite, le rembourrage. Donc, ici, rembourrage dans toutes les directions. Je veux en mettre cinq comme ça. Encore une fois, je veux qu'il soit aligné au centre pour tous. Maintenant, pour ce qui est de la taille de l'image, je veux la changer en 261 par 258. Juste sur ce, je voudrais ajouter autre chose, comme un texte que je sais que vous pouvez voir. Et avec ce texte, je veux cliquer dessus, encore une fois, lui dire de tout remplir. Ce texte, je veux le remplir de 0,5, et je veux qu'il soit aligné au milieu dans les deux cas. Et pour ce qui est de l'Alpha, je veux qu'il soit aussi de 0,8. Et je veux dire rechargez. Là-dessus, et c'est tout. Maintenant, nous avons plus d'interface utilisateur, non ? Maintenant, si vous parcourez le jeu, vous pouvez voir que nous avons plus d'interface utilisateur, mais nous n'avons pas cette ligne. Augmentons simplement cette valeur jusqu'à ce que nous obtenions 0,2 et aucun run over game. Non, vous pouvez voir que la limite est là. Non, tout semble bon. Il est maintenant temps de mettre à jour ces chiffres. Voyons comment nous pouvons le faire dans la prochaine vidéo. 40. 39 Mise à jour de l'interface utilisateur ammo: Ensuite, nous voulons mettre à jour la quantité d' AO et d'AO de stockage l'intérieur de l'endroit où vous vous trouvez. Voyons si nous pouvons le faire. Pour ce faire, nous devons cliquer sur ce texte AO et maintenir la touche Ctrl enfoncée, sélectionner également l'AO de stockage et le rendre variable en cochant cette case. les rendant variables, nous avons accès à eux dans le graphique ici, n'est-ce pas ? Pour les mettre à jour, je souhaite créer une fonction. Donc, par exemple, je veux nommer cette mise à jour AO, n'est-ce pas ? Avec ces munitions mises à jour, je souhaite mettre à jour les munitions Alors, prenez les munitions et je veux y mettre du texte. Posez un texto ici, non ? Et ils ont besoin d'un texte à l'intérieur. Mais l'AO n'est qu'un entier. Cliquez donc sur mettre à jour AO et créez une entrée ici, et je veux appeler cela un montant ou AO ou quel que soit le nom que vous voulez. Le type, je veux que ce soit un entier, et maintenant je peux simplement le connecter à ici. Il le changera automatiquement en texte, et sachez qu'avec cette fonction, nous pouvons le mettre à jour. Nous devons faire de même pour mettre à jour les munitions de stockage. Sélectionnez tout, contrôlez C pour le copier et créez une autre fonction pour mettre à jour les munitions de stockage, n'est-ce pas ? Et avec cela, contrôlez V pour tout coller ici, connectez l'épingle d'exécution. Cette fois, nous ne voulons pas changer les munitions. Nous voulons changer les munitions de stockage. Alors glissez-le et maintenez-le ici, et nous pouvons simplement le connecter à ici et lui donner un nom, n'est-ce pas ? Alors cliquez ici, nommez-le également par le montant. C'est ça. Maintenant, nous avons deux fonctions qui, avec celles-ci, nous pouvons mettre à jour l'Amo dans OUI. Donc non, pour ce faire, nous devrions passer au BPFBSF et d'abord, ici, au début du jeu, sur le chemin d' exécution du début du jeu, nous devons les mettre à jour tous les deux Nous pouvons donc obtenir le WBP MOI, et ici, utiliser la mise à jour AO correctement et y connecter le pin d'exécution Nous voulons mettre à jour les munitions avec les munitions que nous avons ici, n'est-ce Ensuite, nous devons également mettre à jour les munitions de stockage. Donc ici, recherchez Update Storage Ammo, connectez le code d'exécution, et pour le montant, nous devons transmettre les munitions de stockage, Avec ces deux options, nous pouvons cliquer dessus avec le bouton droit de la souris et les réduire à une fonction de mise à jour de l'AOI, n'est-ce pas ? Donc, avec cette fonction, où que nous la placions, nous mettons à jour les munitions Maintenant, voyons voir. Si nous compilons, vous pouvez voir que les munitions sont dix et les munitions de stockage de Passons simplement en revue le jeu. On peut en voir dix et huit. Si nous tournons, ce n'est pas une mise à jour. C'est un problème où nous devrions la mettre à jour chaque fois que nous diminuons la quantité de munitions, où nous pouvons le faire en tirant avec des armes , directement pour réduire les munitions À la fin de la réduction des munitions, nous pouvons utiliser cette mise à jour MOI, juste comme ça, connectée comme ça, compilation de la tête, et pas de course, et voyons ce qui va Vous voyez qu'il est en train de se mettre à jour. Et si nous partons, voyons ce qui va se passer. Ce n'est pas une mise à jour, non. Donc, quand il diminue, tout va bien, mais lorsque nous rechargeons, il ne se met pas à jour Voyons donc comment nous pouvons également ajouter cette fonctionnalité. Découvrez où nous sommes en train de recharger. Ici, nous avons un pistolet de recharge à la fin. Lorsque ce rechargement se produira, encore une fois, nous voulons mettre à jour MOUI connected de cette Et maintenant, testons Std. Si nous renversons le jeu, si nous voyons quand nous tournons, il est en train de se mettre à jour Cool. Si j'appuie sur R, on verra ce qui va se passer. Non, tu peux voir. À chaque fois, il est mis à jour. Ça a l'air génial. C'est magnifique. Testons davantage Non, tout fonctionne bien. Nous n'avons plus besoin de cette chaîne d'impression, nous pouvons donc accéder à Event. Laissez-moi le trouver. C'est en haut. Nous pouvons simplement le supprimer car nous le montrons avec AUIO C'est ça. Félicitations. 41. 40 Objet d'ammunition: Non, disons que notre balle est vide. Nous n'en avons aucune dans le magazine. Nous n'en avons pas dans un entrepôt, nous avons donc besoin d'un article pour pouvoir le récupérer, n'est-ce pas ? Donc, pour ce faire, je veux aller le dossier FPS et ici, aller dans Blueprint Cliquez avec le bouton droit ici, créez une classe de plan de type d'acteur, et je voudrais l'appeler article BP, n'est-ce pas ? Parce qu'à l'avenir, je veux que cet article soit également une autre chose. C'est pourquoi je vais l'appeler item. Mais pour l'instant, je veux m' en servir comme d'une balle, non ? Alors maintenant, la première chose que je voudrais ajouter, c'est ajouter un système de porticules Niagara, et je veux le glisser-déposer, mettre comme snroot par défaut et savoir que ce que je veux y mettre s'appelle des munitions NS, n'est-ce et je veux le glisser-déposer, le mettre comme snroot par défaut et savoir que ce que je veux y mettre s'appelle des munitions NS, n'est-ce pas ? Il suffit de choisir ceci. Maintenant, tu peux le voir. Chaque fois que nous entrons en collision avec celui-ci, nous le récupérons et notre quantité de munitions augmentera, n' est-ce pas Ensuite, je veux ajouter une collision de sphères. Recherchez donc une collision de sphères et mettez-la là. Maintenant, je veux aborder cette question comme ça et descendre ici jusqu'à ce que vous atteigniez la section de collision, devrait se chevaucher tout devrait se chevaucher de manière dynamique et générer un événement de chevauchement. La prochaine chose que je veux ajouter ici, d'ajouter un montant, non ? Montant à ajouter, non ? Alors, cliquez ici. Je veux le changer en entier. Supposons, par exemple, que nous voulions ajouter 25 munitions à notre espace de stockage Je veux que ce montant soit modifiable par instance et exposé sur span Alors compilez et sauvegardez. Maintenant, mettons simplement certains d'entre eux en niveau ou en niveau. Je veux cliquer sur notre joueur Sart head F pour y accéder. Non, je veux les mettre, un de ces objets BP ici pour que nous puissions entrer en collision avec lui Maintenant, si vous courez, vous pouvez voir nous pouvons avancer et entrer en collision avec lui, n'est-ce pas ? Cool. Mais pour le moment, il ne fait rien. Voyons comment nous pouvons le récupérer. Passons simplement à BP FPS et ici, cliquez sur le composant de la capsule. Si vous descendez, nous pouvons créer un chevauchement des composants BN. Laissez-moi l'apporter ici pour que nous ayons un peu d'espace. Ici, nous voulons vérifier. Si vous chevauchez quelque chose, nous voulons vérifier s'il s'agit d'un objet, obtenir l'autre objet avec lequel nous nous recouvrons, mouler en BP Objet, non ? Et comme nous savons que cet article en PP à l'heure actuelle, il peut s'agir simplement d'une munition Nous pouvons en obtenir une quantité, une quantité, juste, l'obtenir, et l'ajouter à des munitions de stockage, les additionner comme ça, connectés comme ça Ensuite, sauvegardez-le dans les munitions de rangement, enregistrez-le comme ça et connectez-y l' épingle d'exécution, n'est-ce pas ? Et après cela, nous devons mettre à jour le MoUI, n'est-ce pas Tout comme cette mise à jour du MOUI. Voyons maintenant ce qui va se passer. Si vous écrasez le jeu, vous pouvez voir si je le chevauche, ce qui va se passer, je nous en ajouterai 25. Mais la prochaine chose que nous voulons faire chaque fois que nous le chevauchons, c' est de le détruire, afin ne pas pouvoir le récupérer encore et encore. Donc, à la fin, nous voulons faire entrer l'autre acteur ici et le détruire. Dites, détruisez l'acteur, c'est vrai, et connectez-le comme ça. Maintenant que c'est fait, ajoutons-en un peu plus. Par exemple, le PPIM est là. Attendez, créez-en une copie. Vous pouvez voir que parfois ça ne le montre pas, c' est juste un bug. Ne t'inquiète pas pour ça. Le montant de celui-ci, nous pouvons simplement le modifier en détail si vous cliquez dessus. En ce moment, celui-ci en a 25. On peut en mettre huit, non, et celui-ci en fait 25, non ? Non, courons. Si vous prenez celui-ci, il nous en ajoutera huit, vous pouvez le voir, et il sera détruit. Et encore une fois, si nous prenons celui-ci, cela nous en ajoutera 25, non ? Tu vois ? Non, nous avons encore une balle à tirer. 42. Plan Kraken 41: Il n'y a rien à ajouter ensuite, nous voulons ajouter de l'IA, NM et nous voulons utiliser le suivi. Pour ce faire, il existe un fichier zip dans la description de cette vidéo qui s'appelle ai point zip. Téléchargez-le. Mettez-le sur votre bureau. Double-cliquez dessus pour l'ouvrir. Ensuite, allez dans Real Engine ici, cliquez sur le tiroir de contenu. Accédez au dossier de contenu, cliquez avec le bouton droit de la souris dessus, affichez-le dans l'explorateur et sachez que nous avons le dossier de contenu de notre projet. Non, une fois cela fait, faites glisser le dossier AI dans ce dossier de contenu. Assurez-vous qu'il s'appelle exactement AI. Après ça, à l'intérieur, ça devrait craquer, non ? C'est ça. Ne changez rien pour l'instant. Si vous voulez changer quoi que ce soit, vous pouvez accéder à Areal Engine et le faire, n'est-ce Non, une fois cela fait, si vous y allez, vous pouvez voir qu' il y a un dossier à craquer et des actifs, comme un maillage pour trop craquer, n' Donc, non, créons simplement une surfissuration. Dans ce dossier génial, je veux cliquer avec le bouton droit de la souris, créer un nouveau dossier, et je veux l' appeler BluePrint, Je vais cliquer dessus pour l'ouvrir correctement, cliquer ici, créer une classe de plan car notre fissuration peut bouger C'est pourquoi je veux créer une classe de personnage pour ou pour craquer, n'est-ce pas Et je veux l'appeler «   BP crack », non ? Je vais cliquer dessus pour l'ouvrir. La première chose que je veux faire ici, cliquer sur le maillage et choisir le maillage. Alors cliquez ici et choisissez le crack, non ? Tu peux voir, c'est vraiment grand. Non, la collision entre les capsules, pour le moment, est trop petite, mais Cracken est trop grande. Il suffit donc de cliquer sur le composant de la capsule et de modifier le Halfte et le rayon de la capsule Je veux le changer en 352 pour les deux, comme ça. Non, je veux cliquer sur le Kraken ou le mailler, et je veux le repositionner jusqu'à ce qu'il soit au milieu Je veux le changer en -350, non ? Ce sera au milieu. C'est une bonne chose. Maintenant, avec ça, regardons simplement l'une de ses animations. Ainsi, par exemple, utilisez l'actif d' animation et choisissez l'une des animations de craquage. Par exemple, inactif. Vous pouvez voir, ou Kraken fait face à la direction Y positive, et nous voulons qu'il soit orienté vers la direction X positive, le vecteur avant, cette flèche dans laquelle nous ne pouvons pas la voir ici, n'est-ce Laisse-moi me diriger vers F pour zoomer dessus. Vous pouvez voir la flèche. Il s' agit de notre vecteur direct. Kraken devrait donc faire face dans cette direction, et nous pouvons le faire pivoter de -90 autour de l'axe Z, pour qu'il fasse face à la direction X positive, De cette façon, encore une fois, c'est comme si vous faisiez face au test positif parce que si vous cliquez ici, vous pouvez voir que c'est la position du mot, et c'est le positionnement local, la rotation locale, n'est-ce pas ? C'est donc ce que vous voulez aligner sur l'axe X positif, à droite. Et avec ça, ce que je veux faire, c'est compiler, enregistrer, passer à un niveau et en mettre un ici, non ? Juste comme ça. Ce sera sur le terrain. Non, c'est bon. Tu peux voir que c'est magnifique. Maintenant, passons en revue le jeu et non, vous pouvez voir que nous en avons ou que nous craquons, n'est-ce pas ? Ça a l'air magnifique. Il s'agit simplement de jouer l'animation idéale. 43. Contrôleur IA 42: Non, nous voulons créer un contrôleur, un contrôleur AI pour surcraquer Il peut donc le déplacer. Il peut trouver le joueur. Je peux toucher le joueur, lui faire du mal et tout ça. Donc, pour ce faire, allez dans le tiroir de contenu. Je souhaite créer notre manette à l'intérieur nos plans, car ce n'est qu'un plan Alors, cliquez avec le bouton droit ici, créez une classe de plan, accédez à toutes les classes et recherchez un contrôleur AI, n'est-ce pas ? Et celui que je veux utiliser s' appelle DTRKrod Sélectionné, sélectionnez la tête, et je veux l'appeler AIC pour contrôleur AI. Détruis-le. Hein ? C'est ça. Non, avec ça, nous voulons aller là où se craquer et passer aux valeurs par défaut des classes, descendre jusqu' à ce que vous atteigniez la section des pions Si je peux le trouver, c'est un peu difficile. C'est ici en bas. Vous pouvez voir dans la section Pan que nous avons une classe de contrôleur AI, et nous voulons lui fournir notre propre contrôleur que nous créons, n'est-ce pas ? Juste avec ça, non, nous ne pouvons pas lui dire où aller, où séjourner, quand aller et tout ça. Mais maintenant que nous sommes là, passons simplement aux mouvements des personnages. Je veux changer certaines choses ici. Par exemple, pour ce qui est de la vitesse de marche maximale pour craquer, je veux la changer à 250 Cela semble plus naturel de cette façon. À la baisse, lorsque vous atteignez le taux de rotation, je veux également le réduire de 100, et c'est tout. Maintenant, nous avons un contrôleur qui peut contrôler la fissuration, mais comment voulons-nous le contrôler ? Il suffit de cliquer ici. Ici, vous pouvez voir que c'est comme n'importe quel plan, n'est-ce pas ? Mais le moteur Ari nous fournit un outil appelé arbre de comportement qui nous permet de faire beaucoup de choses de manière simple et rapide, n'est-ce pas ? Passons donc au tiroir de contenu ici. Cliquez avec le bouton droit de la souris, accédez à Intelligence artificielle ou IA et créez un arbre comportemental. Je veux l'appeler BT. Kraken C'est notre comportement. Et si vous ne cliquez pas dessus ici, nous pouvons décider de ce que le craquage doit faire à tout moment Et je vais tout expliquer. Ne t'inquiète pas pour ça. Notez simplement qu' avec cet arbre de comportement, nous pouvons gérer le comportement de notre crack. Et cette artère comportementale a besoin d'un tableau noir. À l'heure actuelle, vous pouvez voir qu'il est nivelé. Le Blackboard est l'endroit où nous enregistrons nos données. Nous enregistrons où se trouve notre joueur, nous enregistrons les lieux et tout ce dont nous avons besoin. Nous avons donc également besoin d'un tableau noir. Cliquez ici avec le bouton droit de la souris, accédez à Intelligence artificielle et créez un tableau noir Cette fois, je veux l' appeler BB crack, non ? Vous pouvez cliquer dessus pour l'ouvrir. Et non, nous devons relier cette fissuration artérielle liée au comportement de BT à ce tableau noir Nous enregistrons donc nos données dans le Blackboard, et grâce au comportement , nous pouvons y accéder. Donc, pour placer le Blackboard ici, dans l'artère comportementale, nous devons cliquer ici dans l'artère comportementale et choisir l'actif Cliquez ici, choisissez le BB crack et sachez que nous avons accès à notre tableau noir juste Vous pouvez le voir ici, nous pouvons accéder aux deux ou vous pouvez simplement l'ouvrir comme ça. Les deux sont identiques. Oh, vous pouvez voir que le tableau noir est connecté à notre arbre de comportement Et nous pouvons le sauver. Pas d'aperçu ni de contrôleur d'IA. Nous devons demander à ce contrôleur d' IA d'utiliser cet arbre de comportement pour gérer le comportement de notre fissuration et comment nous pouvons le faire Nous pouvons dire « run behavior tree ». Et il nous dira quel arbre de comportement, choisissez le craquage BT, non ? Et c'est tout. Notre contrôleur d' IA contrôlera le craquage grâce à cet arbre de comportement ici Ensuite, nous parlerons de cet arbre de comportement. 44. 43 Passer à Kraken: Maintenant, laissez-moi vous expliquer comment ces choses fonctionnent. abord, nous créons un contrôleur d'IA, et avec le contrôleur d'IA, nous exécutons une artère comportementale, et dans l'artère comportementale, nous pouvons décider de ce que le crack peut faire C'est exactement comme n'importe quelle entrée. Par exemple, nous avons un orignal et un clavier, non ? Donc, dans Moose and Keyboard, il ne s'agit que d'une manette lorsque nous vous avons indiqué où le craquage devait aller Lorsque nous appuyons sur S, il devrait revenir en arrière, non ? Mais dans l'artère comportementale, nous les appelons tâches. Par exemple, tâche pour avancer. Tâche pour revenir en arrière. Bien sûr, nous ne voulons pas le faire comme ça, mais nous le faisons avec des tâches, non ? Vous savez que le craquage de l'AIC consiste à contrôler ou à craquer, Et avec notre artère comportementale, nous sommes en train de décider quel contrôleur d' IA doit passer au cracker, n'est-ce pas ? Donc ici, si c'est Dragon Drop à partir d'ici, vous pouvez voir qu'il y a certaines choses là-dedans dont le plus utilisé est un nœud de séquence. Ce nœud de séquence, si vous le survolez, vous indiquera également de quoi il s'agit. Quelle que soit la tâche que nous ajoutons ici, elle sera exécutée de gauche à droite. Le positionnement des choses ici est donc très important. Ce n'est pas comme un plan selon lequel vous pouvez connecter n'importe quoi où vous voulez, n'est-ce pas ? Ici, il exécutera les tâches de gauche à droite. Et si l'une des tâches échoue, la séquence elle-même échouera. Mais si toutes les tâches liées à la séquence peuvent être exécutées avec succès sans problème, la séquence, comme nous l'appelons, a réussi, n'est-ce pas ? Par exemple, l'une des tâches que nous voulons utiliser s'appelle déplacer vers, n'est-ce pas ? Ce déplacement entraînera le déplacement fissuration excessive vers un emplacement Nous avons donc besoin d'un emplacement vers lequel déplacer, et comment définir cet emplacement, nous pouvons le définir à l'intérieur du tableau noir Vous pouvez voir ici que nous avons une catégorie Blackboard, et ici, nous pouvons décider où elle doit aller Par exemple, si je vais dans Blackboard et que j' ajoute ici la clé du type de vecteur, et que je veux l'appeler emplacement où aller, n'est-ce pas ? Ainsi, si je me dirige vers Enregistrer et que je reviens au comportement 3 et que je clique sur ou que je passe à un autre, nous pouvons décider de la touche Blackboard que ce déplacement doit utiliser pour se déplacer vers un emplacement Maintenant que cela est fait ou que vous passez au nœud ou aux tâches, vous avez un emplacement où vous rendre. Vous pouvez voir qu'il est écrit de déménager dans un lieu où aller, n'est-ce pas ? Nous devons donc mettre à jour cet emplacement dans BP Kraken. Alors, allez sur BP Kraken, et ici, disons simplement qu'au début de Play, nous voulons mettre à jour ou clé Blackboard appelée emplacement où aller, donc ici, nous pouvons accéder à Recherchez donc Blackboard. Nous disons d'aller chercher le tableau. Je vais me procurer le tableau car il est connecté ici par le contrôleur AI que nous créons Et ici, nous voulons définir un vecteur. Recherchez un vecteur, définissez la valeur sous forme de vecteur, n'est-ce pas ? Non, la prochaine chose dont cette valeur définie en tant que vecteur a besoin est un kename Nous devrions donc passer à notre comportement trois fois après cela le Blackboard et copier ce nom headf two control C pour copier, et nous pouvons simplement l'utiliser pour le kename Mais le nom de clé que vous pouvez voir, je ne peux pas le coller ici Donc, ce que je veux faire, c'est utiliser une chaîne pour nommer le nœud ici, n'est-ce pas ? Je peux donc indiquer ou envoyer un texto le lieu où aller, non ? Et la valeur du vecteur, la position dans laquelle nous voulons qu'il prenne, laissons-la simplement nulle, zéro, zéro. Peu importe, non ? Alors maintenant, si vous passez au niveau supérieur, c'est ou si vous craquez, et pour que vous puissiez voir où se trouve la position 000, je vais cliquer sur l'un de ces objets et le mettre sur 00 position Vous pouvez donc voir que c'est l'emplacement 00 que vous pouvez voir ici. Donc, sinon la fissuration devrait commencer là et s'arrêter ici. Maintenant, si vous écrasez le jeu, vous pouvez voir où le craquage ne bouge pas La raison pour laquelle elle ne se déplace pas vers cette position 000, c'est parce que notre IA a besoin d'un Navmsh pour trouver son visage Cliquez ici et ajoutez un maillage de navigation. OK, Nav Msh Bounce Volume. Il suffit de le mettre là. Je veux changer la taille dans chaque direction en 100, par exemple, et dans la direction, 100 également. Et dans le sens Z , utilisons simplement 50, non ? C'est amplement suffisant. Passons simplement en revue le jeu. Vous pouvez maintenant voir où se déplace la fissuration. Le mouvement n'est pas si important. Nous n'avons pas d'animation pour le déplacement, mais vous pouvez voir qu'il bouge et qu'il fonctionne bien. Et chaque fois qu'il atteindra la position 000, il s'arrêtera maintenant, vous pouvez voir qu'il s'arrêtera à la position 000. 45. 44 Vérifiez si le joueur est à portée: Sachez que nous savons comment passer au-dessus des rayonnages. Ce que nous voulons faire maintenant, vérifier si le joueur est dans la ligne de mire, aller le voir et l'attaquer et nous le ferons dans plusieurs vidéos. Donc, pour ce faire, nous devons d'abord savoir si le joueur est à portée pour que les joueurs puissent le voir , quelque chose comme ça, n'est-ce pas Pour ce faire, je veux créer une collision de sphères. Cliquez donc sur la capsule, cliquez sur AD et recherchez une sphère. Collision avec ça. Je veux le rendre vraiment grand. Comme le rayon de 6 000 de la sphère, non ? Juste comme ça. Vous pouvez voir à quel point il est grand. Et je sais qu'avec ça, si je devais compiler, sauvegarder, passer à un niveau ou passer à un niveau, je voudrais le placer en dehors du point de départ du joueur. Alors mettons-le peut-être ici. Ensuite, je veux acheter un Navmsh et le rendre vraiment plus grand, par exemple 500 x 500 C'est ça. Juste assez grand pour qu'il puisse nous trouver, non ? cela fait, chaque fois que nous entrons dans cette sphère, Une fois cela fait, chaque fois que nous entrons dans cette sphère, nous voulons que ce soit le joueur qui craque, n'est-ce pas ? Donc, pour ce faire, je veux cliquer sur ou sur une sphère, descendre ici et créer un chevauchement de début. Sur ce, je voudrais voir l'acteur qui commence à se superposer à cette collision sphérique avec le casting, a choisi deux FPS BP, n'est-ce pas ? Et si c'est le joueur, le succès se produira, et je veux le montrer avec juste un trésor d'impression, n'est-ce pas ? Et je tiens à dire que le joueur est à portée. C'est ça. Maintenant, si le joueur sort de la zone de jeu, clique à nouveau sur la sphère, et ici, il suffit de créer un chevauchement de composants. Dans ce cas, encore une fois, je veux faire de même. Control C Control V pi tout cela, connectez la broche d'exécution, un autre acteur à un objet. Non, cette fois, je veux dire que le joueur n'est pas à portée. Donc, ici, ce n'est pas dans la gamme et la couleur, je veux la rendre rouge pour que vous puissiez mieux la voir. C'est ça. La tête va bien. Maintenant, avec ça, compilons , sauvegardons et exécutons le jeu. Non, vous pouvez voir, cela ne dit rien, mais si vous avancez dedans, vous pouvez voir que le joueur est à portée, et si nous en sortons, il se déplace parce qu'il veut aller à la position 00. Et vous pouvez voir que cela indique que le joueur n'est pas à portée. Encore une fois, si nous y arrivons, joueur est à portée, et si nous en sortons, voyons ce qui se passera. Le joueur n'est pas à portée. Encore une fois, si nous y entrons, vous pouvez voir comment cela fonctionne. Maintenant, avec cela, nous voulons créer un système. Ainsi, chaque fois que nous entrons dans cette collision de sphères, s'en prend au joueur. Voyons comment nous pouvons le faire. Suivant. 46. Joueur de chasse Kraken 45: Non, nous voulons craquer et suivre le joueur, s'il est à portée. Donc, pour cela, nous n'avons pas besoin de cet anneau d'impression. Ensuite, nous n'avons plus besoin de définir l' emplacement auquel accéder, nous pouvons donc également le supprimer. Maintenant que c'est fait, je veux accéder à Blackboard ici, et nous n'avons pas besoin de cet emplacement pour le supprimer Nous n'avons pas besoin de celui-ci non plus. Nous voulons sauver le joueur, n'est-ce pas ? Et dans notre arbre de comportement, nous voulons dire « passer au joueur », n'est-ce pas ? Passons donc à Blackboard ici. La clé que je veux créer est le type d'objet, et je veux l'appeler joueur, n'est-ce pas ? Et le type de clé a étendu la classe de base. Je veux le changer en BPFPS, non ? Assurez-vous qu'il s'agit de BP FPS. Donc non, ce joueur peut enregistrer un joueur FPS à l'intérieur. Et dans notre arbre de comportement, dans ce mouvement, nous voulions, dire, nous en prendre au joueur. C'est ça. Nous y avons mis le joueur, non ? Mais non, si je renverse le jeu comme ça ou si je ne le craque pas du tout Vous pouvez voir qu'il ne bouge pas du tout. Même si vous êtes à l'intérieur de la collision, n'est-ce pas ? Il ne bouge pas. Pourquoi ça ne bouge pas ? Parce que nous n'avons pas du tout configuré ce joueur. Et où voulons-nous le placer ? Sur ce point, il y a un chevauchement. Donc, si le joueur se trouve à l'intérieur de la collision de sphères, Kraken peut s'en prendre à elle Donc pour ce faire, ce que je veux faire, je veux obtenir notre tableau noir, donc acheter un tableau noir Et nous voulons définir la valeur de l'objet. Recherchez donc un objet, à droite, définissez la valeur en tant qu'objet. C'est ça. J'ai besoin de l'épingle d'exécution. L'objet que vous souhaitez transmettre est BPFS et le nom de la clé, nous voulons utiliser une chaîne pour le nommer, n'est-ce pas ? Et le nom est joueur. C'est ça, mets-le là. Et une fois cela fait, si vous voulez compiler, enregistrer un run over en ce moment, vous pouvez voir que notre cracker ne bouge pas Si nous nous dirigeons vers elle et que nous entrons en collision dans l'atmosphère, elle devrait nous poursuivre. Maintenant, vous pouvez voir qu'il s' en prend à nous. Attendons. Si nous nous rapprochons, nous y aiderons. Et si nous nous rapprochons de nous, voyons ce qui va se passer. Attendons. Attendons. Attendons. Et maintenant, vous pouvez voir qu'il y reste. C'est ça. Il joue l'animation inactive. Et si nous déménageons à nouveau, il bougera également avec nous. Vous pouvez voir pour nous joindre, non ? Non, il s'approche trop près de nous. Nous pouvons changer cela. Accédez au comportement T ici et cliquez sur ce déplacement vers. Nous pouvons changer le rayonnement acceptable de cinq parce que cinq est trop petit à 1 300, Le saviez-vous alors si nous avions un jeu compilateur et runo, n'est-ce pas ? Non, il ne nous poursuit pas. Et si nous entrons dans la collision de la sphère, elle nous poursuivra et attendra près de nous, mais pas si près que nous sommes en dessous, n'est-ce pas ? Donc, non, attendons, attendons. Et maintenant, vous pouvez le voir, il y attendra. C'est génial, non ? Aucune fissuration ne peut s'ensuivre 47. 46 Kraken reçoit des dommages: Il n'y a pas d'autre chose que tu veuilles faire. Nous voulons être capables de tirer sur notre fissuration, réduire sa santé et d' avoir une guerre sanitaire, n'est-ce pas ? Alors lançons notre jeu et partons. Vous pouvez voir que je peux le filmer, mais laissez-le nous parvenir. Chaque fois que nous tournons dessus, c' est comme si rien ne se passait, n'est-ce pas ? Cela n'a aucun impact. Voyons donc quel est le problème. Si nous allons à notre crack BP, à Mish, nous devons empêcher sa collision Donc, d'abord, je veux changer le préréglage de collision en paramètre personnalisé parce que je veux faire certaines choses ici. Je voulais tout bloquer, mais superposer le jeu de mots et générer également un événement de chevauchement Il ne souhaite pas qu'il compile et exécute le jeu. Maintenant, approchons-nous de lui pour voir si nous le touchons, s'il a un impact ou non Non, vous pouvez voir que lorsque nous le frappons, vous pouvez réellement voir l'effet. Je peux voir qu'il y a un certain effet, impact sur les effets visuels, n'est-ce pas ? Alors laisse-moi tirer. Ici, vous pouvez voir que non, cela fonctionne. On peut le toucher. Mais quand on l'atteint, il ne se passe rien, n'est-ce pas ? Nous devons endommager ou craquer, et pour y parvenir, nous devons ouvrir notre plan de FPS, notre PFPS et y entrer, PFPS et y entrer, où que nous Est-ce que la CIA est en feu, non ? Nous devons tirer avec des armes. Après avoir établi le tracé de la ligne for, faisons de la place. Nous voulons trouver l'acteur à succès et infliger des dégâts, n' est-ce pas ? C'est ça. Facile. Appliquez des dégâts à l' acteur que vous frappez. Si l'acteur craque, cela se produira. S'il est moulé, cela n'arrivera pas. Un moteur l'ignorera, non ? Maintenant, pour les dégâts de base, je veux utiliser un flotteur aléatoire à portée, n'est-ce pas ? Disons que chaque fois que nous voulons ajouter cinq à huit dégâts. Donc à chaque fois, ce sera différent, non ? Voyons maintenant si cela fonctionne ou non. Allez à BP Cracking et ici, trouvez l'espace vide et recherchez dégâts, n'est-ce pas ? Et je veux vérifier avec la chaîne de l'imprimante, imprimer une chaîne pour voir quels sont les dommages, n'est-ce pas ? Chaque fois que nous l'avons. Maintenant, si vous écrasez le jeu et que vous tirez dessus, vous pouvez en voir cinq, sept, sept, et non, vous pouvez voir, cela fonctionne bien. Nous sommes en train de l'endommager ou de le fissurer. Cool, non ? 48. 47 Système de santé Kraken: Non, nous voulons créer un système de santé pour les personnes qui se surpassent, n'est-ce pas ? Nous n'avons donc pas besoin de cette chaîne d'impression. Ce que je veux faire ici, créer une variable, et je veux l'appeler santé, non ? Et le type, je veux qu'il soit flottant. Ensuite, je veux créer une autre variable, et je veux l'appeler Max Health, non ? C'est ça. Par exemple, disons que la santé est de 45 ou 50 et que la santé maximale 100 ou ce que vous voulez y mettre. Cela devrait fonctionner avec tous, non ? Maintenant que c'est fait, chaque fois que la fissure peut être endommagée, nous voulons vérifier si la santé une branche est supérieure à zéro, n'est-ce pas ? Recherchez donc une branche comme celle-ci. S'il est supérieur à zéro, nous pouvons diminuer la santé, n'est-ce pas ? Ici, la vérité se produira, et dans ce cas, nous voulons retrouver notre santé et soustraire de ce chiffre endommagé Et après cela, nous voulons le sauvegarder à nouveau dans le système de santé au cas où c' est vrai, n'est-ce pas ? C'est ça. Il n'y a aucune autre chose que nous voulons faire. Nous voulons vérifier si l'état de santé est inférieur à zéro ou nul, n'est-ce pas ? Donc, encore une fois, je veux me renseigner sur l'état de santé et vérifier. Si la santé est inférieure ou égale, alors zéro, cela signifie que la fissuration est terminée. Nous devrions donc le vérifier avec une branche comme celle-ci. Dans ce cas, si c'est le cas, nous pouvons utiliser une chaîne d'impression pour rien de tel et dire que le craquage est mort. Et en cas de panne, ce que je veux faire, c'est utiliser une chaîne d'impression et y indiquer l' état de santé. C'est ça. Non, compilons et exécutons et savons que si vous tirez sur ou que vous craquez, vous pouvez voir que la santé est de 42. Tirez dessus. Vous pouvez voir que c'est en baisse, en baisse. Et quand il atteint zéro, cela signifie que le craquage est mort. Notre système fonctionne donc bien. Mais le prochain problème que nous rencontrons chaque fois que nous tirons sur notre crack devrait nous suivre. Peu importe que nous soyons à l'intérieur cette collision de sphères ou non. Donc ici, lorsque la santé est supérieure à zéro et que nous l'endommageons, ces chutes se produisent et nous montrons ensuite la santé. Ce que vous voulez faire, nous voulons mettre à jour le joueur dans Blackboard, mettre à jour ce joueur dans Blackboard, mettre à jour ce joueur dans Blackboard, Nous l'avons déjà fait ici, non ? Juste comme ce Control C, Control V pour le coller ici, non ? Et pour le joueur, pour la valeur de l'objet, nous pouvons obtenir le personnage du joueur, non ? Et nous pouvons le caster pour le caster sur BP FPS. J'ai besoin d'une épingle d'exécution. Donnons-le donc comme ça et connectons-le à la valeur de l'objet. Maintenant que c'est fait, si nous nous dirigeons vers la compilation et le jeu Runo, vous pouvez voir qu'il ne se dirige pas vers nous, mais si nous lui tirons dessus, non, vous pouvez voir qu'il nous suit Si nous attendons, il nous parviendra. Non, tu peux voir que ça nous arrive. Non, ou craquer c'est vérifier si c'est une tête ou pas. C'est magnifique. 49. 48 Kraken Health UI: Non, nous voulons créer une interface utilisateur de barre de santé pour éviter de trop craquer. Voyons donc comment nous pouvons le faire. Accédez au tiroir de contenu, allez dans le dossier de contenu, allez dans AI Crack et, ici, sur le clic droit, créez un nouveau dossier et je veux l'appeler Widgets. Double-cliquez dessus pour l'ouvrir. Cliquez avec le bouton droit ici, accédez à l'interface utilisateur, et ici, créez un plan de widget Et je veux créer un type de widget utilisateur, que je voudrais appeler WP, crack et Health. C'est vrai. Je vais cliquer dessus pour l'ouvrir. Maintenant, ici, la première chose que je veux faire, ajouter un panneau de toile. Je veux utiliser une barre de progression comme celle-ci, et je veux l'ancrer au milieu comme ça, haut au milieu, bien sûr, la position X et à la position Y, je veux qu'elle soit nulle. Sa taille, je veux qu'elle soit de 800 dans sens X et de 15 dans le sens Y. Et pour la position Y, je veux y mettre 50, donc ça va baisser un peu. Et PositionX, je veux aussi en ajouter 16, non ? Pourquoi je fais cela parce que je veux mettre une image au milieu ici, et créer également cette barre de santé sur le côté gauche Permettez-moi donc d'utiliser Control D pour dupliquer celui-ci. Et cette fois encore, le point d'ancrage en haut au milieu, non ? Et sa taille est bonne. L'alignement, je veux qu'il soit X un, et la position Y, je veux qu'il soit 50, juste comme ça, comme nous l'avons ici. Et en position X, je veux que ce soit -60. Celui-ci est 60, c'est -60. Maintenant, vous pouvez voir que c'est comme un miroir, n'est-ce pas ? Maintenant que c'est fait, mettons simplement le pourcentage à 0,5 et le pourcentage de celui-ci à 0,5 également. La prochaine chose que je veux faire. Celui-ci je voulais aller de gauche à droite, et celui-ci je voulais aller de droite à gauche, juste comme ça. Maintenant, si je prends les deux et change la personne à n'importe quelle valeur, les deux changent comme ça en s'éloignant l'une de l' autre, n'est-ce pas ? Ensuite, je veux descendre pour transformer et changer la cisaille Vous pouvez voir que je peux le cisailler comme ça jusqu'à 50, par exemple, n'est-ce pas ? Et le suivant -50, juste comme ça. Je pense que ça a l'air bien mieux. Tu peux le voir. Non, je veux ajouter une image entre eux pour qu'elle soit plus belle. Sur cette image, je veux l'ancrer en haut au centre, comme ceci. Choisissez l'image. Ça s'appelle Kraken Non, changeons simplement les positions X et Y à zéro, elles seront donc au milieu. Je veux que l'alignement sur le X soit au milieu. 0,5 est donc le milieu. Non, c'est la prochaine chose que je veux faire. Je souhaite modifier la taille du contenu. Tu peux le voir. Non, je veux changer la taille à 150 x 150. Juste comme ça. Non, vous pouvez voir qu'une partie de cette maladie est en train de disparaître. Donc, ce que je veux faire, je veux cliquer dessus, sur la position X, je veux que ce soit 50, un peu à l'intérieur. Et pour celui-ci, cliquez dessus, changez la position X en -50, non ? Ou nous pouvons simplement mettre -55. C'est à la limite, c'est mieux. Donc 55 pour celui-ci et -55 pour celui-ci. Non, je trouve ça génial. Ce que je veux faire ensuite, sélectionner les deux et changer le type de champ de couleur en vert. Donc c'est plus beau et ça montre la santé, non ? Maintenant, avec cela, en sélectionnant les deux, je veux les rendre variables, comme ceci. Après cela, je veux passer au graphique. J'ai ces deux barres de progression. Vous pourriez simplement le nommer, mais ce n'est pas important. Nous pouvons créer une fonction pour les mettre à jour. Je vais donc l'appeler update Health. Hein ? Et sur ce, je veux obtenir notre barre de progression, une barre de progression comme celle-ci, et définir un pourcentage. Il a défini un pourcentage, non ? C'est réglé comme ça. Et le pourcentage, on peut simplement le glisser-déposer, le mettre ici. Il s'agit d'une valeur de 0 à 1. Ainsi, dans notre Kraken, lorsque nous le mettons à jour, nous devons savoir qu'il s'agit d'une valeur 0-1 Nous voulons attribuer la barre de progression et barre de progression 17 que nous avons ici à cette personne, les deux en même temps. Voyons maintenant comment nous pouvons l'utiliser. Pour l'utiliser, rendez-vous sur BP Kraken au début de l'événement. Nous voulons créer ce widget. Alors recherchez Create Widget, n'est-ce pas ? Et le widget que nous voulons créer s' appelle wbpkraknHlth, avec cela, nous voulons d'abord le promouvoir en variable Je vais donc appeler cela Health UI. C'est vrai. Et après cela, vous voulez l'ajouter à la fenêtre d'affichage, ajouter à la fenêtre d'affichage, c'est vrai, et c'est Maintenant, la prochaine chose que vous voulez faire, mettre à jour l'état de santé. Et pour ce faire, nous pouvons obtenir interface utilisateur de santé et utiliser la mise à jour de l'état de santé qui s'y trouve. Et vous savez que l'état de santé de la mise à jour est de 0 à 1. Nous pouvons donc obtenir notre santé et la diviser par la santé maximale. Juste comme ça, divisé par la santé maximale, et cela nous donnera une valeur de 0 à 1 Et c'est ce dont nous avons besoin, non ? Ensuite, nous voulons utiliser cette fonction chaque fois que l'état de santé d'une fissuration excessive change, par exemple, ici, n'est-ce pas ? Partout où nous subissons des dégâts, non ? À la fin, je veux le coller, et dans les deux cas, je veux mettre à jour l' état de santé, comme ça. Maintenant, si vous écrasez le jeu, vous pouvez voir que nous pouvons voir la santé de loin. Si vous tirez dessus, vous pouvez voir qu'il diminue sur les deux. Donc ça a l'air génial. Cela fonctionne bien. 50. 49 Visibilité de la barre de santé Kraken: Il n'y a pas d'autre chose que tu veuilles faire. Nous ne voulons pas montrer ce crack et cette barre de santé chaque fois qu'ils ne nous poursuivent pas, n'est-ce Chaque fois que nous n'en sommes pas près, non ? Donc, pour ce faire, tout d'abord, au début, nous voulons obtenir notre interface utilisateur de santé. Au début, nous voulons définir la visibilité de notre interface utilisateur pour qu'elle ne soit pas visible, n'est-ce pas ? Si nous nous en approchons, il devrait être visible dans ce cas. Cela dit, non, je veux le copier-coller là où je veux l'utiliser chaque fois que nous commençons à chaque fois que nous commençons se chevaucher avec sa collision de sphères, n'est-ce pas ? Donc, à la fin, si nous recoupons cette collision de sphères, nous voulons la rendre visible comme ceci. Et encore une fois, contrôlez pour le coller ici. Si nous finissons par se chevaucher avec cette collision de sphères, nous voulons également la masquer. Ensuite, chaque fois que le craquage disparaît, ce que vous voulez faire, nous voulons également le masquer Contrôlez donc V pour le coller ici et masquer la barre de santé. Mais si le crack et la santé diminuent d'une balle ici et que le point de vie n'est pas nul, dans ce cas, nous voulons le rendre à nouveau visible ici. Alors, rendez-le visible, connectez-le comme ça, et connectez-le comme ça à ici. Voyons maintenant ce qui va se passer. Si vous êtes en tête de compilation et d' exécution, vous pouvez voir n' y a pas de barre de santé. Si vous tirez dessus, non, vous pouvez voir la barre de santé, elle nous poursuit et si nous lui tirons dessus jusqu'à ce qu'elle soit morte, vous pouvez voir que la guerre sanitaire s'arrêtera. Aucune barre de santé ne s'affiche chaque fois que nous lui tirons dessus ou que nous pénétrons dans son rayon. Encore une fois, laisse-moi courir. Ne tirez pas dessus. Si nous nous en approchons, vous pouvez voir maintenant qu'il affiche la barre de santé parce que nous nous en approchons. La prochaine chose que je veux faire ici, dans ce chevauchement ininterrompu, chaque fois que nous entrons dans cette collision de sphères, c' rendre la barre de santé visible Mais avant cela, je veux vérifier si la santé est supérieure à zéro, si la santé de Kraken est supérieure à zéro Alors, vérifiez l'état de santé et vérifiez. S'il est supérieur à zéro, vérifiez-le auprès de la succursale, non ? Juste comme ça. S'il est supérieur à zéro, vous pouvez rendre la barre de santé visible dans ce cas. C'est ça. Aucune interface utilisateur de barre de santé ne fonctionne correctement. 51. Plan d'animation 50 Kraken: Non, nous voulons ajouter des animations à la surfissuration. heure actuelle, il glisse, nous voulons donc ajouter une animation. Pour ce faire, je vais aller dans le tiroir de contenu, crack et dans le dossier, puis dans Blueprint Et ici, cliquez avec le bouton droit de la souris parce que je l'enregistre de plus en plus lent, passez à l'animation, passez au plan d'animation, et nous voulons le créer pour craquer le squelette, créer la tête Je veux appeler ça du craquage ABP, non ? Poupée, cliquez dessus pour l'ouvrir. Et sachez qu'ici, compte tenu de la vitesse de surfissuration, nous devons jouer à l'animation Accédez donc à Asset Browser. Vous pouvez voir que nous avons une animation, par exemple dl, n'est-ce pas ? Pour ce faire, je veux créer une machine étatique. Donc, recherchez une machine à états et je veux l'appeler Locomotion ou quel que soit le nom que vous voulez Je vais cliquer dessus pour l'ouvrir. Et sachez qu'ici, le premier domaine que je veux créer est un domaine que je veux appeler inactif et le prochain domaine que je veux créer ici, Adeste, je veux l'appeler un domaine de promenade parce que nous n'avons que deux domaines Et non pour les animations, passez au ralenti. Nous voulons y placer l' idole, la connecter et nous assurer que l'animation en boucle est définie. Maintenant, revenez en arrière et faites-le également pour la promenade. Encore une fois, craquez et marchez, mettez-le ici, connectez-le. Assurez-vous que l'animation en boucle est également cochée. Compiler. Connaissez les règles. Nous voulions passer du ralenti à marche lorsque la vitesse est supérieure à zéro, et nous voulons passer de la marche au ralenti chaque fois que la vitesse est nulle, n'est-ce pas ? Nous devons donc connaître la vélocité ou la vitesse de la surfissuration. Passez donc au graphique des événements. Ici, nous voulons oublier le fait de craquer, non ? Je vais donc créer un plan de jeu ici, un plan d' événement, commencer à jouer, et nous voulons recruter ces propriétaires de pions Alors fondez-le en fissuration, en fissuration BP, d'accord, comme ça Ensuite, nous voulons le promouvoir en tant que variable. Je veux l'appeler «   BP crack », non ? Non, ici, nous voulons acheter notre biscuit BP et vérifier s'il est valide La recherche de est donc valide. Avec cela, s'il est valide, nous voulons obtenir sa vélocité. Alors Dragon Drop, recherchez Get Velocity. C'est ici, prends de la vélocité. Nous voulons obtenir la longueur de la vélocité. La longueur des vecteurs X et Y est largement suffisante. Non, nous voulons les transformer en variables et nous pouvons appeler cela la vitesse. Ou la vélocité ou quel que soit le nom que vous voulez lui donner en cas de validité, n'est-ce pas ? C'est ça. Non, nous l'avons. Passons simplement à Locomotion. Pour cette règle, qui consiste à passer au ralenti pour marcher, nous voulons vérifier. Si la vitesse est supérieure à zéro, comme ceci, si elle est supérieure à zéro, vous pouvez passer du ralenti à la marche. Mais si la vitesse est égale à zéro, on peut passer de la marche au ralenti. Obtenez de la vitesse. Et cette fois, je veux vérifier s'il est presque égal à zéro, non ? S'il est presque égal à zéro, avec une tolérance de cinq, par exemple, et qu'il y est connecté. C'est ça. Maintenant que tout cela est fait, nous devons passer à autre et y placer le plan d'animation Cliquez donc sur O mesh, et au lieu d'utiliser une seule ressource d'animation, remplacez-la par un plan d'animation et remplacez-la ABP cracking, n'est-ce pas ? C'est ça. Maintenant que c'est fait, si vous écrasez le jeu, si nous nous rapprochons d'ici et si nous craquons et bougeons, vous pouvez voir que les pieds de notre fissure bougent également. Et quand il arrivera, il redeviendra inactif. Il suffit de le photographier. Tu peux voir, on peut aussi le filmer. Et maintenant, vous pouvez voir que les exploits fonctionnent également bien. Ça a l'air génial. 52. Animation de mort de 51 Kraken: La prochaine chose que vous voulez faire de pouvoir jouer à The Dead Animation. C'est vrai, non, on est en train de craquer. santé peut atteindre le zéro, mais aucune animation ne sera diffusée si la santé atteint le zéro, n'est-ce pas ? Donc, pour ce faire, trouvons simplement la bonne animation, allons dans le dossier de craquage, allons dans Asset, allons dans Animations Et maintenant, vous pouvez voir que nous sommes en train de mourir. Si nous ne cliquons pas dessus, vous pouvez voir l'animation. Vous pouvez voir que quand il sera mort, il jouera cette animation. Maintenant, pour jouer cette animation, je veux le faire avec un animation, donc cliquez dessus avec le bouton droit de la souris et créez un animontage comme ça et créez un animontage Je veux créer un nouveau dossier à l'intérieur ou craquer, nouveau dossier, et je veux l' appeler animations, d'accord Sur ce, je veux mettre l'image que nous créons dans ce dossier Déplace-le là-bas. Une fois cela fait, il suffit de cliquer sur le nimontage Ici, vous pouvez voir, comme avant, qu'il utilise l'emplacement par défaut et nous voulons l'utiliser, n'est-ce pas ? Maintenant, pour placer cet emplacement, dans notre analyse ABP, nous pouvons accéder à notre graphe anim et ici, rechercher un emplacement, un emplacement par défaut, nous pouvons simplement le placer là, et c'est Maintenant, nous pouvons l'utiliser. Va voir BP Cracking ici. Lorsque le craquage est mort, nous voulons, au lieu de dire que le craquage est mort, jouer son animation Donc, ici, on peut passer par-dessus le maillage, non ? Et avec cela, nous voulons jouer au montage, n'est-ce pas, jouer au montage. Et une fois cela fait, connectons simplement le canal à ici. Le montage que vous voulez jouer s' appelle Cracking Def montage, n'est-ce pas ? Et connectez les deux ici, et c'est tout. Voyons maintenant si cela fonctionne ou non. Si vous lancez notre jeu et que vous tirez sur notre râteau, vous pouvez voir qu'il s'agit d'une animation pour sourds Voyons ce qui va se passer. Vous pouvez le voir jouer l'animation. Mais encore une fois, après cela, il prend vie et après cela, nous poursuit, non ? C'est donc un problème. Donc, ce que vous voulez faire dans ce cas, nous voulons tout d'abord vous dire de vous en tenir à la dernière image de l'animation pour sourds. Accédez au crack et au dossier, accédez aux animations et ouvrez l'animontage une fois de plus Et désactivez-le pour activer le mélange automatique. Si nous décochons cette option, elle restera à la dernière image. Si vous écrasez le numéro de jeu, voyons ce qui va se passer. Fais-le mourir. Vous pouvez voir qu'il joue cette animation et qu'il restera dans cette image. Mais comme vous pouvez le constater, il bouge à nouveau. C'est donc un problème. Vous pouvez voir qu'il bouge à nouveau. Nous ne devrions donc pas laisser notre artère comportementale se déplacer se fissurer lorsqu'elle est morte. Mais faisons-le dans une autre vidéo. 53. Passage 52 au décorateur: Non, quand le crack est mort, il bouge aussi. Donc, pour résoudre ce problème, nous devrions aller à l'endroit où se comportent les artères en cliquant ici. Cette initiative aussi, nous voulions éviter qu' elle ne se produise chaque fois que Cracking est mort. Ici, nous devons savoir si la fissuration est morte ou non Nous devons donc accéder à Blackboard et ajouter un autre keotyp boolean Et je veux dire que c'est craquant. Mort, non ? Nous avons donc la variable nécessaire, mais nous devons passer à notre pression artérielle, la régler chaque fois que nous mourons et jouer à l' animation, Dans ce cas, nous voulons obtenir notre tableau noir, obtenir le tableau noir et définir une valeur booléenne Donc, recherchez un taureau, définissez la valeur comme booléenne, non ? Permettez-moi de m'organiser un peu comme ça. Et ici, nous voulons que cela soit vrai. Parce que le craquage est mort. Maintenant pour le nom, je veux utiliser une chaîne pour le nommer ici, non ? Et le nom, nous devrions aller ici et le copier d' ici, en tête de deux, contrôlant C pour copier, et ici, en contrôlant pour coller, non ? Maintenant que cela est fait, nous savons qu'il sera mis à jour dans Blackboard, n'est-ce pas ? Non, notre artère comportementale, nous pouvons dire au mouvement à noter ou passage à la tâche de ne pas se produire si Cacken est mort Et comment nous pouvons le faire, nous pouvons cliquer dessus avec le bouton droit de la souris et y ajouter un décorateur Je veux créer un décorateur de tableau noir, non ? C'est ça. Je veux le nommer ici pour déménager si Kraken n'était pas mort. OK ? Nous le nommons correctement, mais non, nous devons cliquer dessus et lui dire comment cela doit se passer. Donc, en ce qui concerne le changement de valeur, nous devrions vérifier cela, non ? Et ce que nous voulons abandonner en cas de changement de valeur, c'est le soi. Nous voulions donc que ce passage à la tâche soit annulé. Quand la valeur a changé, un bateau a avorté et est parti continuer ici, nous voulons vérifier si le craquage Et on le vérifie. S'il n'a pas été défini, s'il tombe, il n'est pas défini. C'est comme dire faux. Si c'est faux, tu peux continuer. Mais si ce n'est pas faux, cela signifie que nous n'avons plus aucune chance. Cette fissuration sera vraie. Il va donc s'arrêter tout seul. Juste comme ça. Maintenant, si tu te sens prudent, passe à un niveau et cours. Tirons simplement dessus. Tirez à nouveau dessus, et maintenant vous pouvez le voir mourir et il ne pourra plus bouger du tout. Vous pouvez voir qu'il ne bouge pas du tout. On peut tirer dessus. Il ne se passera rien. C'est ça. Non, on craque et on ne bougera pas si on le tue. 54. 53 Tâche d'attaque Kraken: Sachez que nous pouvons tuer notre fissuration, fissure et que nous devrions également être capables de nous attaquer . Voyons comment nous pouvons le faire. Pour ce faire, permettez-moi de clore certains de ces éléments dont nous n'avons pas besoin. Nous n'avons pas besoin de celui-ci pour le moment. Nous n'avons plus besoin de ce crack ABP. Assurez-vous d'accéder au fichier, de tout enregistrer. Non, vous pouvez simplement les fermer, c'est vrai, et fermer le holf qui craque parce qu'il fonctionne Maintenant, allez à l'arbre des comportements. Je souhaite utiliser d'autres tâches. Par exemple, je souhaite utiliser une tâche de pondération. Par exemple, supposons que je veuille pondérer 1 seconde par écart, 0,5. Ce que cela signifie, cela signifie qu' au hasard, il obtiendra une valeur flottante comprise entre 0,5 et 1,5, et qu'il attendra ce moment. Ensuite, après avoir attendu ce temps, nous voulons pouvoir attaquer. Mais ici, vous pouvez voir qu'il n' y a pas d'attaque, n'est-ce pas ? Nous devons donc créer notre propre tâche. Pour créer une nouvelle tâche, il vous suffit de cliquer ici et de créer la nouvelle tâche. Je veux l'appeler tâche T de comportement BTT. Attaque, non ? C'est ça. Assurez-vous de l'enregistrer et il l' ouvrira automatiquement. Maintenant, ici, nous avons besoin d'un événement. Cliquez ici, et nous voulons d'abord recevoir Execute AI. Ainsi, chaque fois que ce séquenceur essaie de lancer l'attaque, recherchez une attaque BTT. Que va-t-il se passer ? Cet événement se produira dans le cadre de cette attaque BTT. Et ici, pour le moment, je veux utiliser une chaîne d'impression, non ? Et je veux appeler ça une attaque, non ? Et après cela, vous savez que ce séquenceur doit savoir si ces tâches peuvent être exécutées avec succès ou non Nous devons donc terminer l'exécution, terminer l'exécution et la réussir. C'est ça. C'est tout ce que nous devons faire. Passons maintenant à l'artère comportementale, et ici, sinon une attaque BTT devrait se produire Mais ensuite, parce que je ne veux pas que ça reproduise très vite, je veux ajouter un autre poids, exemple, cinq secondes par un écart de deux. C'est comme attendre comme une valeur aléatoire de 3 à 7. Choisissez une valeur aléatoire de 3 à 7 et attendez, non ? Maintenant que c'est fait, si vous vous dirigez, économisez, et pour que vous puissiez mieux voir les choses, je veux les rapprocher. Vous savez que le séquenceur exécute la tâche de gauche à droite Si l'un d'entre eux échoue, la séquence échouera également et recommencera. Maintenant, si vous écrasez le jeu ici, et que vous le réduisez. Laisse-moi le faire un petit peu comme ça. Passer au comportement Vous pouvez voir que le déplacement est coché, mais pour le moment, comme le joueur est vide, il ne fera rien. Cela va échouer, non ? Mais si on y tire dessus, voyons ce qui va se passer. Non, le lecteur n'est pas vide. Le lecteur dans Blackboard n' est pas vide. C'est pourquoi le déplacement se produira et vous pouvez le voir se produire jusqu'à ce qu'il atteigne la position où il devrait s'approcher suffisamment pour nous tirer dessus, n'est-ce pas ? Non, tu peux voir que ça va attendre. Après cela, passez à l'attaque. Et après cela, il attendra. Après cela, revenez à passer à nouveau, attendez après cette attaque. Vous pouvez également voir l'attaque dans le coin supérieur gauche. Quand il attaquera, il imprimera une chaîne pour nous. Je peux le voir. C'est cool. Non, avec cette attaque PTT, nous voulions vraiment jouer à l'animation d'attaque et ensuite réduire la santé de notre joueur. Voyons ce que nous pouvons faire. 55. 54 animations d'attaque Kraken: Voyons maintenant comment nous pouvons faire craquer, attaquer le joueur Pour ce faire, je veux aller chez BP Cracken. Ici, je veux créer un événement, un événement personnalisé. Recherchez donc un événement personnalisé, et je veux appeler cela une attaque. C'est ça. C'est amplement suffisant. Non, je veux utiliser un anneau d'impression, n' est-ce pas, et je veux dire que c'est une attaque, non ? Et maintenant, passez à la tâche BTT attack the behavior tree. Et ici, d'abord, nous devons faire en sorte que le jeu de mots de commande le fasse craquer à BP, n' Ensuite, nous voulons exécuter l'événement d'attaque, correctement, et le connecter comme ceci. Maintenant, si vous renversez le jeu, que vous tiriez dessus et que vous avancez , encore une fois, comme avant, il devrait y avoir le mot attaque, non ? Tout comme avant. Mais cette fois, nous pouvons jouer l'animation, non ? Vous pouvez voir qu'il est écrit «  attaque toutes les 5 secondes », par exemple. Tu peux le voir. C'est ça. Maintenant, là où l'attaque fonctionne bien, il ne reste plus qu'à l'implémenter. Nous ne voulons pas utiliser de bague de test d'impression. Donc, ici, que voulez-vous faire ? Nous voulons jouer un montage, n'est-ce pas ? Recherchez donc play Montage et dans le montage que vous voulez jouer, le moment, nous n' avons rien. Alors créez ça, non ? Allez dans crack and folder, allez dans Acid. Nous avons un dossier d'animations, et ici, nous avons un certain type d'attaques. Sélectionnez ces quatre types d' attaques, cliquez avec le bouton droit de la souris sur l'un d'entre eux, puis cliquez sur Créer et créer des images pour chacun d' Maintenant, je veux les récupérer toutes, les déposer et déplacer dans le dossier des animations, n'est-ce pas ? Nous voulons utiliser ce type d'attaques. Alors maintenant, choisissons-en un ici. Ça s'appelle l'un d'entre eux, ça s'appelle un montage d' attaque Smash, non ? Nous voulons lui donner le maillage squelettique d'une fissuration excessive. Non, avec ça, compilons , exécutons, et non, allons-y et non, allons-y pour voir si cela nous attaque ou non. Allez de l'avant. Et non, attendons. Vous pouvez voir qu'il nous attaque maintenant. Nous verrons s'il nous attaque à nouveau ou non. Vous pouvez voir qu'il nous attaque maintenant, et c'est parfait. Mais pour des raisons de sécurité, je veux créer une variable, et je veux l'appeler es crack attack, n'est-ce pas ? Et le type, je veux qu'il soit flottant. Donc, si le craquage voulait attaquer le joueur, cette attaque se produira et nous voulons régler l'attaque par craquage sur vraie, n' est-ce Et quand ce sera terminé, encore une fois, nous voulons définir l'attaque géniale Mets-le ici pour tomber, non ? C'est ça. Non, au début de tout ça, nous voulons craquer, attaquer, et nous voulons vérifier cela auprès de la branche Si ce n'était pas une attaque, nous pouvons jouer l'attaque, non ? C'est ça. C'est un système de sécurité intégré. Cela ne devrait pas poser de problème, mais c'est sûr. Non, le problème , c'est qu' il ne s'agit que d'une simple animation, non ? Donc, ce que je veux faire, c'est utiliser un élément de tableau aléatoire. Sur ce, je veux les promouvoir en tant que variable, et je veux les appeler attaques Kraken, n'est-ce pas ? Nous avons donc placé toutes les attaques au rack dans ce tableau, et au hasard, nous avons sélectionné l'un des montages à jouer Combien en avons-nous, nous en avons quatre. Alors créez-en quatre et choisissez. Nous avons des fissures, la mort, pas de fissures, de dégâts d'écrasement Après ça, craquage, attaque par balayage, combinaison de deux coups, non ? Encore une fois, nous avons une attaque par balayage. C'est ça. Le suivant s'appelle Sweep Smash Attack Three Heat Combo. Nous en mettons trois autres. Non, si vous renversez le jeu, chaque fois que ce crack veut nous attaquer, une autre animation sera diffusée chaque fois que ce crack veut nous attaquer, une autre animation sera Il sélectionnera l'un d'eux au hasard. Parfois, l'un d'entre eux peut se produire plusieurs fois. Vous pouvez voir, non, nous avons Smash, nous avons Sweep, vous pouvez le voir, Tout a l'air génial. Ce sera différent. Parfois, cela peut être répétitif car ils se ressemblent pour la plupart. Mais vous pouvez voir que nous sélectionnons au hasard l'une des animations à jouer. Non, craquer, c'est attaquer notre joueur, mais cela ne le blesse pas mais cela ne le blesse pas. Voyons ce que nous pouvons faire. 56. Joueur de dommages Kraken de 55: Voyons maintenant comment nous pouvons réellement infliger des dégâts au joueur lorsque le cracker attaque, n'est-ce pas ? Nous savons quand c' est le craquage qui attaque, non ? Nous voulons donc l'utiliser pour infliger des dégâts au personnage chaque fois que le maillage de la fissure se superpose à celui le maillage de la fissure de notre joueur, n' Donc, pour ce faire, je veux cliquer sur le racken ou le mailler. Descendez. Et jusqu'à ce que vous trouviez le composant, commencez à vous superposer, n'est-ce pas ? Maintenant que c'est fait, nous voulons d'abord vérifier si le craquage attaque Alors vérifiez-le avec la branche, trouvez-le craquelé, et vérifiez-le avec la branche, d'accord, comme ça S'il se fissure, vous pouvez infliger des dégâts aux autres acteurs Donc, infligez des dégâts, n'est-ce pas, si la fissuration attaque Et le montant, encore une fois, je veux utiliser une plage flottante aléatoire comme cinq à huit à chaque fois, n'est-ce pas ? C'est ça. Non, je veux aller au BPFP, non ? Accédez au dossier Contenu, allez au dossier FPS. Dans Blueprint, ouvrez les BPFP. Et ici, accédez au graphique des événements, trouvez un espace vide ici, cliquez avec le bouton droit de la souris sur Rechercher les dégâts de l'événement A, n'est-ce pas ? Et je veux le montrer avec un anneau d'impression, non ? Montrez les dégâts. C'est ça. Non, je veux parler de BP Cracken. Et ici, partout où nous avons un anneau d'empreintes, nous voulons le supprimer. Nous savons donc que les dommages causés par la fissuration ne font que se manifester, n'est-ce pas ? Maintenant, dirigeons-nous simplement vers la compilation, exécution, l'approche ou le craquage Tirez dessus un peu, pour qu'il nous parvienne également. Vous pouvez voir s'il nous attaque, s'il attaque un État, il nous attaquera six ou sept, et vous pouvez le voir, n'est-ce pas ? Maintenant que c'est fait, le fait craquer endommage le personnage Non, la prochaine chose que vous voulez faire, c'est d'avoir un système de santé pour notre joueur, une interface utilisateur dédiée à la santé. Voyons comment nous pouvons le faire. 57. 56 Santé des joueurs et système de bouclier: Non, pour le système de santé de notre BPFBS, allons-y Et ici, je veux créer des variables. Je veux aussi avoir de la santé et un bouclier. Donc, ici, créez une variable, et je veux l'appeler santé. Le genre, je veux être flottant. Encore une fois, créez-en un autre. Celui-ci, je veux l'appeler Max Health, non ? Le suivant, je voudrais l'appeler bouclier. Et un autre, je veux l'appeler Max Shield. Disons la santé, je veux qu'elle soit de nouveau à 50 ans. OK ? Le MxL, je veux qu'il soit 100 Le bouclier, disons qu'il est de 25, et le bouclier maximum est également de 100. Vous pouvez modifier ces valeurs, le bouclier maximal et les valeurs maximales de santé, et cela fonctionnera. Ne t'inquiète pas pour ça. Maintenant, avec tout cela, ce que nous voulons faire, je ne veux pas simplement le montrer avec la chaîne d'impression. Tout d'abord, je voudrais vérifier les dégâts que nous subissons dans le plan de notre joueur Et si les dégâts que cela nous cause sont supérieurs au bouclier dont nous disposons, nous voulons diminuer notre santé. Mais si ce n'est pas plus que le bouclier, nous voulons le réduire par rapport au bouclier, n'est-ce pas ? Alors maintenant, ici, nous voulons vérifier le bouclier. Obtenez-le. Si les dégâts étaient supérieurs ou égaux aux dégâts du bouclier, n'est-ce pas ? C'est vrai, cela se produira. Cela signifie, par exemple, le bouclier est, par exemple, cinq et que les dégâts sont de six. Nous devons donc réduire le bouclier de cinq, le ramener à zéro et diminuer la santé d'un, n'est-ce pas ? Donc, tout d'abord, je veux obtenir ces dégâts et les soustraire du bouclier, pour voir combien de dégâts doivent être absorbés par le bouclier combien de dégâts doivent être absorbés par le Et après cela, nous voulons réduire ce qu'il en reste à cause de la sursanté. Alors, récupérez la santé, diminuez cette quantité existante et enregistrez-la à nouveau dans la santé. Comme ça dans le cas de True, non ? Ensuite, vous voulez mettre le bouclier à zéro, juste comme ça parce que nous le diminuons ici, n'est-ce pas ? Maintenant que c'est fait, que voulez-vous faire ? Je veux diriger la compilation. Je voulais te le montrer. Donc ici, laissez-moi trouver l'EventIQu ici, je veux utiliser une chaîne d'impression Et encore une fois, comme avant, je veux utiliser un format de texte, non ? Et je tiens à dire « santé C on ». Permettez-moi de zoomer ici pour que vous puissiez mieux le voir. Je tiens le contrôle avec le plus au milieu, je peux zoomer davantage, non ? Vous pouvez donc mieux le voir. La santé, c'est tout. Je veux l'appeler Edge, c'est vrai. Ensuite, maintenez la touche Shift Head Inter enfoncée. Vous passez donc à la ligne suivante, vous voulez dire que le bouclier est, par exemple, S, et c'est tout. Stagiaire en chef. Non, nous pouvons régler la santé ici et installer le bouclier ici aussi, non ? Non, une fois cela fait, nous pouvons simplement le connecter à ici. Non, une fois cela fait, nous devons l'étendre et lui donner une clé. Peu importe ce que tu y mets. Non, pour tester ça, je voudrais réduire le bouclier à deux, non ? Compilons et exécutons. Vous pouvez voir que le bouclier est composé de deux. Et il a 50 ans de santé. La première fois que nous craquons et nous attaquons, le bouclier est bien moindre. Cela diminuera donc le bouclier et la santé, les deux ensemble. Il suffit de le regarder. Le bouclier est nul et la santé diminue, comme vous pouvez le voir. Ça a l'air génial, non ? La prochaine chose que nous voulons faire, c'est de gagner le domaine chaque fois que le bouclier est supérieur aux dégâts que nous infligeons à notre joueur. Dans ce cas, c'est plus facile. Nous pouvons simplement obtenir notre bouclier et le soustraire de la valeur des dégâts, d'accord, comme ça Et nous pouvons également l'enregistrer dans le bouclier par la suite et le connecter ici. Maintenant, pour tester les données, nous allons augmenter le bouclier à 25 et pas de jeu Let's Runo Tirez dessus, il se rapprochera également de nous. Nous avons beaucoup de bouclier, et il devrait nous attaquer et diminuer le bouclier. Il suffit de le regarder. 18125, et vous pouvez voir le bouclier diminue avec succès Il suffit de le regarder. Encore une fois, vous pouvez constater que la santé diminue maintenant. Donc, tout va bien. Il est maintenant temps de créer une interface utilisateur pour cela, non ? Non, nous n'avons pas d'interface utilisateur pour la santé et le shi. 58. 57 Interface utilisateur santé des joueurs: Non, créons simplement notre interface utilisateur Health. Pour ce faire, je veux aller dans le tiroir de contenu, aller dans le dossier de contenu, aller dans AI Crack in, et ici, aller dans Widget. Cliquez avec le bouton droit ici, accédez à l'interface utilisateur et créez un plan de widget correspondant au type de widget utilisateur Je veux l'appeler WBP Health, non ? C'est ça. Je vais cliquer dessus pour l'ouvrir. Comme toujours, la première chose que je veux faire ici d'ajouter le panneau Canvas. Ensuite, je veux créer l'arrière-plan de notre interface utilisateur Health, afin d'utiliser un tableau comme nous l'avons fait pour le MoUI, n'est-ce Nous voulons créer ce type d'arrière-plan. Tout d'abord, son ancrage est bon car je veux le laisser dans le coin supérieur gauche Ensuite, son positionnement doit être 50 x 50. Il y aura donc de la place ici et ici, non ? La taille 6100 est bonne, mais la taille Y, je veux que ce soit 300, non ? C'est ça. Maintenant, je veux me débarrasser de tout ce rembourrage Alors mets-les tous à zéro comme ça. Ensuite, je veux changer la couleur de teinte en noir et la désactiver à 0,5, n'est-ce pas ? Ça a l'air génial. Non, je veux aller ici, passer de l'image à la boîte arrondie. Ne t'inquiète pas pour ça. Le type arrondi, je veux que ce soit un rayon fixe. Maintenant tu peux le voir. Je souhaite également utiliser la transparence du muguet Et après ça, le chauffage, je veux le mettre sur l'un d'entre eux. Maintenant, pour ce qui est de la radio du coin, je voudrais les mettre toutes à dix, comme nous l'avons fait auparavant. C'est ça. Si tu cliques ici, clique ailleurs, tu le verras mieux. Maintenant, pour la couleur du contour, je veux le mettre sur du blanc. Juste comme ça. Non, si je clique, tu peux le voir. Nous avons de bons antécédents. Je veux avoir la barre de santé ici et le bouclier ici, non ? Pour ce faire, je veux une barre horizontale. Pour les empiler les uns à côté des autres. Ensuite, je veux deux boîtes verticales. Pourquoi vertical ? Parce que je veux avoir une barre de progression comme celle-ci ici et un avantage d'image pour dire que c'est la santé et une autre barre de progression ici un avantage d'image pour montrer que c'est un bouclier. Pour ce faire, je veux avoir des cases verticales, deux d'entre elles, en ajouter deux ici, et vous pouvez simplement sélectionner les deux en gardant le contrôle et lui dire de tout remplir 50, 50, n'est-ce pas C'est ça. Non, avec ça, c' le premier que je veux que ce soit pour la santé. Ajoutons-y donc simplement un par de progression. Juste comme ça, vous pouvez y voir un sommet. Non, cliquez sur le tableau de progression. Je veux qu'il remplisse tout, de haut en bas. Et si vous changez de personne, vous pouvez voir que c'est de gauche à droite. Je veux que ça vienne du bas. Top, juste comme ça. Tu peux voir. C'est pour notre santé. Ensuite, je souhaite ajouter une image. Ajoutez donc une image dans cette boîte verticale, et vous pourrez voir l' image en bas. Cliquez donc sur l'image, recherchez Plus et mettez-la là. Tu peux le voir. Je veux aussi que cela se sente. Mais pour ce qui est de la progression, je veux avoir une impression de 0,9 comme ça et l'image de 0,13, non ? Maintenant, pour la couleur du champ, je veux cliquer ici et le changer en quelque chose de vert comme celui-ci. Je pense que ça a l'air bien. Et maintenant, vous pouvez voir que si je clique, vous pouvez voir que cela ne fait pas partie de notre arrière-plan. C'est pourquoi je veux cliquer sur le tableau de progression ou ajouter un peu de rembourrage dans toutes les directions, par exemple cinq. Il suffit d'en mettre cinq. Nous nous agrandissons, vous pouvez tous les voir. Non, c'est cinq. Ça a l'air génial, je trouve. Non, nous voulons faire de même pour la boîte verticale. Alors, sélectionnez tout, cliquez, copiez et accédez à cette case verticale, n'est-ce pas, cliquez sur Coller, n'est-ce pas ? C'est ça. Exactement ce que nous voulons changer dans l'image. Nous voulons le modifier pour lui donner une texture de bouclier, juste comme ça. Et pour ce qui est de la couleur de la barre de progression, je veux la changer en quelque chose de bleu, comme ça, non ? Et non pour les images. Par exemple, ces deux images. Maintenez simplement le contrôle enfoncé, sélectionnez les deux. Tout d'abord, je veux qu'il soit au milieu comme ça à la fois pour l' horizontale et la verticale. Ensuite, je voudrais ajouter un peu de rembourrage à partir de gauche, comme cinq peuvent être vus de droite, cinq aussi, et cinq en bas également Maintenant, vous pouvez voir que ça a l'air beaucoup mieux. Passons maintenant à la coloration. Je veux enregistrer cette couleur comme ça. Nous pouvons simplement enregistrer cette couleur en la faisant glisser et en déposant ici et enregistrer cette couleur, en cliquant ici en la saisissant et en la plaçant Maintenant, nous sauvegardons les couleurs, et nous pouvons les mettre pour celle-ci. Par exemple, pour ce qui est de la teinte de celui-ci, je veux que ce soit l' écran, OK. Vous pouvez voir que ça a l'air génial. Et celui-ci, la couleur de sa teinte, je veux que ce soit celui-ci. Donc ça a l'air génial. Maintenant, commençons simplement à compiler, enregistrer. Passons simplement à nos BPFP et mettons-le en œuvre, non ? Donc, ici, sur ce chemin d'exécution du jeu, je veux créer un widget, créer un widget, n'est-ce pas ? Et le widget que vous souhaitez créer s'appelle WBPHLF et nous voulons le promouvoir en tant que variable Je veux aussi l'appeler WBP Health. Et nous voulons l'ajouter à Viewport. Ajouter à la fenêtre d'affichage. C'est tout ce que nous devons faire. Passons simplement à la compilation et à l'exécution du jeu. Vous pouvez maintenant y voir la barre de santé. Non, il est temps de mettre à jour la barre de santé. heure actuelle, la barre de santé n'est pas mise à jour, mais elle a l'air bien, non ? Voyons comment nous pouvons le mettre à jour dans la vidéo suivante. 59. 58 Mettre à jour l'interface utilisateur santé: Non, pour mettre à jour l'interface utilisateur de santé. Voyons comment nous pouvons le faire. Pour ce faire, nous devons accéder à WBPHLP. Et ici, pour cette barre de progression, nous devons la nommer barre de santé, lui donner un nom significatif. Et cette barre de progression s'appelle Shield bar, à droite. Et assurez-vous de maintenir la touche Ctrl enfoncée, de les sélectionner toutes les deux et de les rendre variables en cochant la case est variable. Ensuite, nous y aurons accès dans le graphique. Et à l'intérieur du graphique, vous souhaitez créer des fonctions pour eux. Créez donc une fonction pour mettre à jour la santé, n'est-ce pas ? Et avec cela, nous voulons obtenir la barre de santé comme celle-ci et y définir un pourcentage, définir un pourcentage, à droite, et connecter l'épingle d'exécution, et pour l'entrée, nous pouvons simplement la connecter comme ceci. Et nous pouvons simplement le copier-coller, créer une fonction pour mettre à jour le bouclier, mettre à jour le bouclier, n'est-ce pas ? Et collez-le ici, connectez la broche d'exécution cette fois. Nous voulons mettre à jour la partie bouclier. Alors, placez-le là par glisser-déposer, et pour le moment, connectez-le comme ça. Maintenant, nous avons deux fonctions, l'une pour la santé et l'autre pour le bouclier. Voyons comment nous pouvons les utiliser. Accédez au BPFPS ici au début, examinons simplement l'état du WBP, et avec cela, nous voulons mettre à jour l'état de santé de la mise à jour et connecter le Pour le pourcentage en pourcentage, nous savons qu'il s'agit d'une valeur de 0 à 1 Nous devrions donc retrouver notre santé comme ça. Divisez-le par la santé maximale, cela nous donnera une valeur de 0 à 1, c'est vrai, divisez par la santé maximale. Cela permettra de mettre à jour l'état de santé. Ensuite, ce que vous voulez faire, contrôlez Control C, collez-le ici et mettez à jour le shield cette fois, n'est-ce pas ? Donc, pour ce faire, connectez-le ici. Encore une fois, comme nous l'avons fait ici, nous voulons obtenir le bouclier comme celui-ci et obtenir le bouclier maximum comme celui-ci. Et divisez-les les uns par les autres, d' accord, comme ceci et connectez-les en pourcentage. Maintenant, regardons-le. La santé est de 50, donc la moitié doit être pleine et le bouclier est de 25. Environ 25 % de notre santé devrait être là. Et vous pouvez voir qu'il est en train de se mettre à jour. Maintenant, ce que je veux faire d'abord, allons-y et dirigeons cette chaîne d'imprimantes. Nous n'en avons pas besoin. Nous avons une interface utilisateur pour le montrer, non ? Maintenant, je veux les sélectionner toutes, cliquer avec le bouton droit sur l'une d'elles et réduire deux fonctions pour mettre à jour, mettre à jour Health, n'est-ce pas ? Maintenant, avec cette fonction, chaque fois que nous diminuons ou augmentons la santé, nous voulons mettre à jour l'interface utilisateur de santé, n'est-ce pas ? Par exemple, ici, nous voulons utiliser Update Health. Et dans les deux cas, pour ce qui est de la mise à jour de l'état de santé, nous voulons qu'elle se produise. Voyons si cela fonctionne bien ou non. Si nous tirons sur la fissuration, elle ira vers nous et nous courrons vers elle Voyons ce qui va se passer. Il devrait nous attaquer. Regardez-le. Lorsqu'il nous attaque, il diminue d'abord le bouclier. Vous pouvez voir que le bouclier diminue. Et une fois le bouclier terminé, il diminuera la santé. Il suffit de le regarder. Vous pouvez voir que cela fonctionne bien. Chaque fois qu'il nous atteint, le bouclier et la santé diminuent. Donc, tout fonctionne bien avec la mise à jour de l'état de santé. 60. 59 Type d'article: Sachez que notre santé et notre bouclier diminuent, mais nous avons besoin d'un objet pour les augmenter pour les augmenter. Donc, pour ce faire, je veux aller dans le tiroir de contenu, de contenu, dans le dossier FPS, dans le plan et ouvrir l'élément BP Maintenant, ce que je veux faire. Je veux le rendre personnalisable, afin que nous puissions l'intégrer à notre niveau et que nous décidions de ce que cela devrait être. Il devrait y avoir de la santé, un bouclier ou des munitions, non ? Donc, pour ce faire, je veux créer une énumération pour cela. Cliquez donc avec le bouton droit de la souris ici, accédez à Blueprint et créez une énumération Et je veux l'appeler type d'article E, non ? Juste comme ça. Double-cliquez dessus, ouvrez-le. Je veux ajouter un énumérateur ici, donc un, deux, trois. La première que je veux que ce soit Amo, non ? Le suivant, je veux que ce soit un bouclier, et le suivant, je veux que ce soit la santé. C'est ça. Assurez-vous d' économiser. Accédez à BPM. Je souhaite créer une variable. Et je veux l'appeler type d'article. Et le type, encore une fois, je veux que ce soit le type d'élément, cette énumération que vous créez ensemble Donc, je veux que ce soit du type E, non ? Et je veux qu'il soit modifiable par instance et qu'il soit exposé lors d'un spawn Et par défaut, disons que c'est la santé, par exemple, non ? Head Compiler, non. Si nous choisissons l'un d'entre eux, trouvons l'un d'entre eux qui est dans notre niveau, par exemple celui-ci, n'est-ce pas ? Laissez-moi le mettre devant notre joueur. Celui-ci, vous pouvez voir, je peux dire, quel est le type d'article. Par exemple, un bouclier B, des munitions ou autre, c'est ce que nous pouvons décider ici Et en fonction de ce que nous avons décidé ici, de sa représentation, de ce qui n'est pas graphique, j'ai également voulu le modifier. Pour ce faire, je peux consulter le script de construction ici. Je veux obtenir le type d' article que nous avons choisi et je veux utiliser Switch on it, n'est-ce pas ? Alors allumez-le. Si c'est de l'amo, ce que nous voulons faire notre composant non graphique ici, régler l'acide du système Niagara et y connecter les munitions Dans ce cas, nous voulons le configurer sur NS Amo pour le copier-coller à nouveau. Cette fois, nous voulons le faire pour le bouclier. Nous avons donc simplement changé cela en NS Shield, non ? Bouclier NS. Ensuite, contrôlez C Control V pour le coller ici, et celui-ci, nous voulons le faire pour la santé, non ? Changez donc cela en NS Health. C'est ça. Non, j'ai aussi besoin de la cible. Connectez donc la cible ici. Maintenant, si vous compilez, passez à notre niveau. Vous pouvez voir que si nous les transformons en santé, ce sera la santé. Et si nous les changeons en munitions, ce seront des munitions. Encore une fois, si je le duplique et que je le remplace par, par exemple, bouclier, cela nous montrera le bouclier. Maintenant, vous pouvez voir que nous avons des objets, n'est-ce pas ? Cool. Voyons maintenant comment nous pouvons les récupérer. Nous allons le faire à côté. 61. 60 Articles à ramasser: Non, pour ce qui est de choisir la moitié du bouclier, les munitions et tout ça, voyons comment nous pouvons nous y prendre. Accédez à BPFS. Si tu te souviens, nous l'avons fait pour les munitions, non ? Je veux le déconnecter d'ici. Nous voulons le faire pour AO. Passons donc à tout cela en mettant à jour le MOUI et en ajoutant les munitions de stockage, Maintenant, avec cet objet BP, nous pouvons d'abord obtenir le type d'objet, obtenir le type d'objet, et avec cela, nous voulons l'activer pour voir de quel objet il s'agit, n'est-ce pas ? S'il s'agit de munitions, ce que nous voulons faire, c'est augmenter le stockage des munitions Juste comme ça, les munitions devraient bien fonctionner, non ? Permettez-moi de mettre tout cela, par exemple, ici, afin que nous soyons organisés, et après cela, nous détruisions l'acteur, n'est-ce pas ? Ensuite, nous voulons le faire pour Shield. S'il s'agit d'un bouclier, encore une fois, nous voulons obtenir la quantité de bouclier que vous souhaitez ajouter, juste comme ça. Mettons-le juste ici. Nous voulons l'ajouter pour protéger le bouclier et y ajouter celui-ci, l' ajouter, juste après cela, enregistrer dans le bouclier comme ceci et y connecter le bouclier d'exécution, et après cela, nous voulons mettre à jour l'état de santé. Et une fois cela fait, après cela, nous pouvons simplement détruire l'acteur. Ensuite, nous voulons le faire également pour la santé, exactement de la même manière. C'est ainsi que nous retrouvons notre santé. Et nous l'ajoutons au montant fourni par l'article. Donc, recherchez une quantité, obtenez une quantité, ajoutez-la à la santé comme ceci, enregistrez-la à nouveau dans la santé comme ceci et connectez-la à la santé. Et après cela, mettez également à jour l'état de santé et connectez-le à ici. Pour le détruire ensuite, non ? Non, disons-le aussi. Si vous écrasez le jeu, vous pouvez voir si vous vous retrouvez sur des munitions, vous pouvez voir que les munitions augmentent Si nous dépassons la santé, vous pouvez voir que la santé augmente et pour le bouclier, vous pouvez voir que le bouclier augmente également. Mais la prochaine chose que nous voulons faire ici, c'est qu'il est vraiment important de ne pas dépasser une certaine valeur, n'est-ce pas ? Alors, par exemple, permettez-moi de faire de la place. Si l'état de santé est supérieur à celui du Mac lui-même, alors vérifiez-le. La santé est plus importante que celle de Max, non ? Nous voulons vérifier cela avec une succursale comme celle-ci. Ensuite, s'il ne s'agit pas uniquement de l'état de santé du Mac, nous voulons définir l' état de santé avec le Mac lui-même. Nous ne voulons donc pas qu'il soit augmenté plus que le Mac lui-même, n'est-ce pas ? En cas de vérité. Après cela, nous pouvons mettre à jour l'état de santé. En cas de faux, nous pouvons simplement mettre à jour l'interface utilisateur de santé. Exactement ce que nous avons fait ici, nous pouvons simplement le copier et le faire pour le bouclier également. Alors, faites de la place. Contrôlez V pour coller tout cela ici, ou dans un espace comme celui-ci. Connectez les broches d'exécution, nous remplacerons tout ce qui est nécessaire. Cette fois, nous sommes en train de vérifier le bouclier, alors connectez-le ici. Si le bouclier était plus grand que le bouclier maximum, juste comme ça, nous voulons le remplacer par le bouclier maximum. Et en cas de chute, cela signifie que ce bouclier est inférieur au bouclier maximal et que l'état de santé devrait être mis à jour. C'est ça. Si nous nous dirigeons vers Compiler pour tester cela, ce que je veux faire, prendre l'un de ces éléments, et je veux maintenir le glissement. Et cette fois, je veux donner une valeur vraiment importante à 150. Et pour cette santé, je veux encore une fois tenir bon, traîner. Et encore une fois, disons 150 également. Maintenant que c'est fait. Nous ne devrions pas lui permettre d'atteindre plus de 100 points de vie, car c'est le maximum de points de vie. Maintenant, si vous allez ici, regardez la santé, la santé s'améliore. Mais si vous prenez celui-ci, vous pouvez voir que votre santé est à 100. Non. Encore une fois, si vous le prenez, cela remplira votre santé et votre bouclier. Maintenant, si le crack nous attaque, que se passera-t-il ? Elle sera diminuée. Vous pouvez voir qu'il sera réduit de 100, pas plus que cela. Attendons juste que ça nous atteigne. Encore une fois, vous pouvez voir que quand cela nous attaque, cela diminue à nouveau notre santé, vous pouvez voir que non, cela diminue la santé. La santé et le bouclier n'ont pas augmenté de plus de 100, plus que la santé maximale. Non, tout fonctionne, très bien. Nous avons un article. 62. Jeu sur UI: Pas la prochaine chose que vous voulez faire, nous voulons créer une interface utilisateur pour ou le joueur mourra. Voyons donc comment nous pouvons le faire. Pour ce faire, je veux aller dans Cont DrR, aller dans Apis, aller dans Widget, et ici, cliquer avec le bouton droit de la souris, aller dans l'interface utilisateur et créer un plan de widget du type de Je veux l'appeler WBPgame over, non ? Ne cliquez pas dessus pour l'ouvrir et ne vous dirigez pas vers l'intérieur pour l'ouvrir. Maintenant, ce que je veux faire, c'est ce que l' on appelle le flou d'arrière-plan. Cherchez-le. Il suffit de le mettre là, et de savoir qu'avec cela, nous pouvons modifier l'intensité du flou de l' arrière-plan, C'est ça. Non, je souhaite également y ajouter un texte. Alors trouvez le texte, mettez-le là. Je veux que ce soit au milieu. Alors cliquez ici et cliquez ici pour le mettre au milieu. Non, je veux passer à la police, agrandir comme ça. Et je tiens à dire que la partie est terminée, non ? C'est ça. Non, il se contente de compiler, de sauvegarder. Et non, cela étant dit, passons simplement au BPFS où nous réduisons l'état de santé. Nous voulons vérifier l'état de santé après avoir mis à jour l'interface utilisateur de santé Vérifiez l'état de santé. Est-ce que la santé est inférieure ou égale à zéro. Nous voulons vérifier cela auprès de la succursale. Cela signifie que notre joueur est mort, non ? Alors connectons-nous simplement. Si ces valeurs sont inférieures à zéro, que voulez-vous faire ? Nous voulons créer ou créer un widget, créer un widget. Et le widget que vous souhaitez créer est game over game over WBP, n'est-ce pas ? Et après cela, vous souhaitez l'ajouter à la fenêtre d'affichage. La prochaine chose que vous voulez faire, placer le mode de saisie uniquement dans l'interface utilisateur. Le joueur ne peut donc rien changer par la suite. Il faut une manette de joueur, pour que nous puissions obtenir la manette de joueur, juste comme ça. Ensuite, dans get to be focus, nous voulons nous concentrer sur ce widget que nous créons et vider également les entrées Après cela, je veux créer un chronomètre comme celui-ci , régler le chronomètre par événement, n'est-ce pas ? Disons qu'au bout de 3 secondes, nous voulons recommencer le jeu, non ? Nous avons donc besoin d'un événement personnalisé pour cela, un événement personnalisé. Je ne veux pas parler de niveau de rechargement. C'est vrai. Une fois cela fait, ce que nous voulons faire, nous voulons ouvrir le niveau, est-ce pas, par son nom, et le niveau que nous voulons ouvrir s'appelle Nouvelle carte, n'est-ce pas ? C'est ça. C'est tout ce que nous devons faire. Tâchons simplement de compiler. Je veux diminuer l'aide pour le non, dix et réduire le bouclier à huit, par exemple. Cela nous tuera donc beaucoup plus rapidement pour que vous puissiez en voir l'effet. Prenons juste celui-ci et non, allons-y, tirons dessus. Il nous retrouvera donc beaucoup plus rapidement, non ? Allez de l'avant. Regardons-le simplement. Quand cela nous fait mal, vous pouvez voir que notre santé se détériore. Non, attendons, et c'est tout. Cela indiquera la fin de la partie. Et au bout de 3 secondes, le niveau devrait s'ouvrir. Encore une fois, félicitations pour avoir terminé ce cours. Si vous avez trouvé un présage ou si vous voulez que je crée ou ajoute d'autres vidéos à ce cours, vous pouvez simplement le laisser dans section des questions ou dans cette chaîne de cours, merci Merci Merci beaucoup d'avoir regardé. 63. 62 sons de pas de pied: Non, la dernière chose que vous souhaitez ajouter est le son Walk in. Voyons donc comment nous pouvons le faire. Pour ce faire, nous devons le faire dans l'animation. Nous avons une animation de promenade. Ouvrons-le simplement. Dans l'animation de marche, vous pouvez voir, dans ce cas, et ici nous voulons jouer le son de marche. Mais pour ce faire, je veux aller dans le tiroir du contenu, tout d' abord dans Assets, dans Ft Step Sound. Vous pouvez voir qu'il y en a beaucoup ici. Nous voulons tous les utiliser. Non, je veux passer au FPS ici, n'est-ce pas, cliquer sur Créer un nouveau dossier, et je veux appeler ça du son, non ? Ici, cliquez avec le bouton droit de la souris, accédez à l'audio et créez une source de métasund Je veux dire que c'est un pas, non ? Du pied au pas. Et à l'intérieur, nous avons besoin d'un lecteur de vagues. Donc, recherchez Wave Player, n'est-ce pas, parce que vous voulez jouer une vague, n'est-ce pas ? Et connectez-le comme ça. Non, choisissez plutôt l' exemple WavefaceTF, celui-ci, n'est-ce pas ? Maintenant, si vous jouez, j' espère que vous pouvez l'entendre, mais il y a un bruit de marche, non ? Chaque fois qu'il est joué, il est terminé, nous voulons terminer l'exécution du métasund afin que toutes les ressources soient gratuites. Encore une fois, vous pouvez voir que nous pouvons y jouer, et une fois le jeu terminé, il deviendra inachevé Maintenant, nous avons beaucoup de sons, mais nous ne jouons qu'un seul d'entre eux. Comment pouvons-nous sélectionner l'un d'entre eux au hasard et le jouer ici. Nous pouvons simplement glisser-déposer la variable promue vers une variable graphique, et j'ai envie d'appeler cela des sons, non ? Et je voulais créer une matrice de sons afin que nous puissions en avoir plusieurs. Non, je veux financer les sons de Footsteps, les ancrer ici. Comme ça. Maintenant, encore une fois, sélectionnez tout, dessinez à sec et déposez, placez-le ici, et sachez que cela place automatiquement tout cela dans cette zone pour nous, n'est-ce pas ? Maintenant, avec ce son, nous voulons en obtenir un au hasard à chaque fois et le jouer sous forme de vague, n'est-ce pas ? Nous devons donc connecter ces deux éléments ensuite et les connecter comme ça, non ? Et pour la graine, nous pouvons simplement y mettre une valeur, afin qu'elle soit plus aléatoire Et c'est tout. C'est notre son. Nous voulons l'ajouter ou quoi ? Par exemple, disons que l'un d'entre eux là parce que notre joueur n'a pas de nourriture. Nous devons simplement le mettre après cela, voir si cela sonne bien ou non et ensuite changer de position. Alors, émettez un son et ici, le son que vous voulez jouer s' appelle MS Footstep, n'est-ce Et c'est tout. Encore une fois, par exemple, ici, nous voulons en jouer un autre. Allez donc ajouter le son Notify play. Et cette fois encore, nous voulons jouer à MS Footstep, non ? Maintenant, jouons-y. C'est ça. Vous pouvez simplement jouer avec cela jusqu'à ce que vous obteniez le résultat que vous souhaitez. C'est cool. Non, nous l'avons fait pour celui-ci. Nous voulons également le faire pour Sprint. Donc, dans un sprint ici, par exemple, cliquez avec le bouton droit de la souris pour émettre un son. Et le son que vous voulez jouer s' appelle S footstep, n'est-ce Et à la fin, ajoutons simplement un autre son de jeu. D'accord ? Et nous voulons aussi jouer à MS, foot a slip. C'est ça. Maintenant, mourons. Si vous écrasez le jeu, voyons ce que vous avez, vous pouvez voir. Maintenant, nous avons un pied d'écart, et je pense que ça marche bien, non ? 64. 63 L'entrée ne fonctionne pas après la réinitialisation: Je dois ajouter un correctif ici. Le problème, c'est que lorsque nous serons détruits, disons simplement. Quand nous serons en train de craquer, détruis-nous, voyons ce qui va se passer. Attendons. Et le jeu sera terminé au bout de 3 secondes, il redémarrera, non ? Mais non, on ne peut pas bouger du tout. C'est un problème. Voyons comment nous pouvons résoudre ce problème. Pour résoudre ce problème, je voudrais accéder à Blueprint, ouvrir le BPFS et au début jouer ici, à la fin, nous pouvons régler l' entrée uniquement sur le jeu, n'est-ce Et il a besoin d'une manette de jeu. Alors procurez-vous une manette de joueur. Maintenant que c'est fait, passons en revue le jeu. Si nous y allons et continuons, attendons que cela nous détruise. Maintenant, vous pouvez voir qu'il nous a tués au bout de 3 secondes. Que va-t-il se passer, nous pouvons partir maintenant. C'est donc le premier garçon que nous avons trouvé et soigné.