Comment créer un jeu FPS - Unreal Engine 5 multijoueur (2024) | Pixel Helmet | Skillshare

Vitesse de lecture


1.0x


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

Comment créer un jeu FPS - Unreal Engine 5 multijoueur (2024)

teacher avatar Pixel Helmet, Game Developer & Publisher

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.

      1.01 Introduction

      1:21

    • 2.

      1.02 Téléchargement d'Unreal Engine 5

      1:37

    • 3.

      1.03 Créer un nouveau projet

      2:21

    • 4.

      1.04 Aperçu d'Unreal Engine 5

      17:54

    • 5.

      2.01 Introduction de jeu

      2:21

    • 6.

      2.02 Créer une nouvelle carte

      1:05

    • 7.

      2.03 Importation d'actifs d'environnement

      4:16

    • 8.

      2.04 Designing de l'environnement

      12:05

    • 9.

      2.05 Volume de processus de post

      6:05

    • 10.

      2.06 Éclairage de l'environnement

      23:46

    • 11.

      2.07 Astuces d'optimisation d'environnement

      10:52

    • 12.

      3.01 Importation des personnages

      2:56

    • 13.

      3.02 Classes de plans pour parents et enfants

      4:53

    • 14.

      3.03 Paramétrage du personnage

      8:31

    • 15.

      3.04 Mode de jeu et manette de joueur

      4:58

    • 16.

      3.05 Mapping d'entrée

      5:14

    • 17.

      3.06 Ajout du cadre de mapping d'entrée

      5:13

    • 18.

      3.07 Interface de plan

      6:53

    • 19.

      3.08 Mouvement de joueur

      7:07

    • 20.

      3.09 Importation des animations de joueur

      3:27

    • 21.

      3.10 Créer des plates-formes IK

      6:58

    • 22.

      3.11 Créer un retargeter IK

      6:49

    • 23.

      3.12 Fixation des mains

      5:40

    • 24.

      3.13 Retargeting des animations

      4:37

    • 25.

      3.14 Introduction à Blend Espaces

      3:35

    • 26.

      3.15 Espaces de mélange non armés

      8:40

    • 27.

      3.16 Introduction aux plans d'animation

      3:53

    • 28.

      3.17 Vitesse et direction de mouvement

      7:47

    • 29.

      3.18 Entrée de Crouch multijoueur

      2:34

    • 30.

      3.19 Fonction d'accroupi multijoueur

      11:54

    • 31.

      Plan d'animation 3.20 accroupi

      7:30

    • 32.

      3.21 Réplication variable

      3:08

    • 33.

      3.22 Lissage d'animation

      2:46

    • 34.

      3.23 Promenade multijoueur

      6:00

    • 35.

      Plan d'animation de marche 3.24

      4:46

    • 36.

      3.25 Saut multijoueur

      4:59

    • 37.

      Plan d'animation de saut 3.26

      7:37

    • 38.

      3.27 Introduction aux énumérations

      2:47

    • 39.

      3.28 Variables de mouvement de commutation vers Enums

      10:46

    • 40.

      3.29 Changements de règles de transition d'animation

      6:08

    • 41.

      3.30 Fixation de la taille de joueur

      3:54

    • 42.

      3.31 Réglage de la vitesse de déplacement

      8:18

    • 43.

      4.01 Espace de mélange de décalage de but

      2:04

    • 44.

      4.02 Préparer les animations de décalage de but

      4:56

    • 45.

      4.03 Ajout d'animation au décalage de buts

      2:31

    • 46.

      4.04 Détermination de la direction de l'objectif

      5:47

    • 47.

      4.05 Ajout du décalage de but

      2:19

    • 48.

      4.06 Ajouter une caméra de joueur à la tête

      6:27

    • 49.

      4.07 Masquer la tête de modèle de joueur

      3:10

    • 50.

      4.08 Ajout d'un maillage à la troisième personne

      3:04

    • 51.

      4.09 Caméra et lissage FPS

      4:04

    • 52.

      5.01 Ajustement de la vitesse de déplacement

      2:38

    • 53.

      5.02 Ajustement de la vitesse d'animation

      10:14

    • 54.

      5.03 Fixation de l'écrêtage de mur de la caméra

      5:50

    • 55.

      5.04 Fixation du crochet de saut

      6:01

    • 56.

      5.05 Fixation des bugs restants d'accroupissement

      1:07

    • 57.

      5.06 Préparer le SFX sur les traces

      5:27

    • 58.

      5.07 Minuterie par événement

      6:51

    • 59.

      5.08 Réplication multidiffusion

      9:17

    • 60.

      5.09 Sur les traces de SFX

      13:03

    • 61.

      6.01 Placement des points de spawn

      5:53

    • 62.

      6.02 Stockage d'informations sur le point de naissance

      8:07

    • 63.

      6.03 Importation des actifs d'interface utilisateur

      4:21

    • 64.

      6.04 Importation d'une police personnalisée

      2:54

    • 65.

      6.05 Introduction aux plans de widget

      5:26

    • 66.

      6.06 Affichage de l'interface utilisateur de sélection d'équipe

      12:32

    • 67.

      6.07 Taille d'interface utilisateur dynamique pour toutes les tailles d'écran

      5:13

    • 68.

      6.08 Designing de l'interface utilisateur de sélection d'équipe

      21:24

    • 69.

      6.09 Effets sonores de Button

      3:06

    • 70.

      6.10 Comment faire apparaître des acteurs

      7:19

    • 71.

      6.11 Lieu d'apparition de joueur

      5:32

    • 72.

      6.12 Interface de schéma de mode de jeu

      2:15

    • 73.

      6.13 Terminer la logique de sélection d'équipe

      5:08

    • 74.

      6.14 Apparition du joueur

      4:27

    • 75.

      6.15 Réglage du mode d'entrée

      3:14

    • 76.

      6.16 Placement d'une caméra de spectateur

      5:41

    • 77.

      7.01 Espaces de mélange de pistolet

      5:50

    • 78.

      7.02 Espaces de mélange de fusils

      3:58

    • 79.

      7.03 Décalages de visée de pistolet

      2:23

    • 80.

      7.04 Décalages de visée de fusil

      2:14

    • 81.

      7.05 Poses de mélange par Bool

      4:15

    • 82.

      7.06 Poses de mélange par Enum

      5:53

    • 83.

      7.07 Plan d'animation de pistolet

      3:05

    • 84.

      7.08 Plan d'animation de fusil

      2:20

    • 85.

      7.09 Finalisation du plan d'animation

      6:38

    • 86.

      8.01 Importation des actifs d'arme

      3:16

    • 87.

      8.02 Mise en place de l'arme

      5:50

    • 88.

      8.03 Physique habilitée

      4:03

    • 89.

      8.04 Réplication d'acteurs

      1:22

    • 90.

      8.05 Chevauchement d'arme

      4:34

    • 91.

      8.06 Paramétrage du type d'arme

      2:31

    • 92.

      8.07 Vérification si le joueur a l'arme

      4:09

    • 93.

      8.08 Pillage de l'arme

      11:17

    • 94.

      8.09 Créer la prise d'arme

      10:00

    • 95.

      8.10 Créer les sockets restants

      5:51

    • 96.

      8.11 Attacher une arme à la main

      14:05

    • 97.

      8.12 Attacher des armes à l'arrière

      10:58

    • 98.

      8.13 Chevauchement de deux armes à la fois

      13:33

    • 99.

      8.14 Créer la structure d'arme

      5:08

    • 100.

      8.15 Créer la table de données d'armes

      9:10

    • 101.

      8.16 Utilisation de la bibliothèque de fonctions

      8:03

    • 102.

      8.17 Ajouter le nom d'arme

      3:08

    • 103.

      8.18 Remplacement de la variable WeaponType

      5:03

    • 104.

      8.19 Action d'entrée d'arme de largage

      2:02

    • 105.

      Logique d'arme de largage 8.20

      4:48

    • 106.

      8.21 Notification d'un représentant d'arme de largage

      9:51

    • 107.

      8.22 Réinitialisation de la valeur de notification de représentant

      6:18

    • 108.

      8.23 Booléen d'interaction d'arme

      5:25

    • 109.

      8.24 Suppression d'interaction de la suppression de lecteur

      7:07

    • 110.

      8.25 Amélioration de l'interaction avec les joueurs d'arme

      8:03

    • 111.

      8.26 Arme de pillage avec clé de clavier

      16:58

    • 112.

      8.27 Réglage correct du type d'élément équipé

      2:28

    • 113.

      8.28 Correction de l'erreur "Accès à aucune" de looting

      5:18

    • 114.

      8.29 Nettoyage du code

      13:04

    • 115.

      8.30 Correction d'un petit problème de réplication

      7:22

    • 116.

      9.01 Actions d'entrée de commutation d'arme

      2:11

    • 117.

      9.02 Logique de commutation d'arme

      7:47

    • 118.

      9.03 Equiper et Unequip ReNotify d'arme

      4:47

    • 119.

      9.04 Equipement d'une arme auxiliaire

      2:30

    • 120.

      9.05 Créer des montages d'animation

      2:04

    • 121.

      9.06 Ajustement du plan d'animation

      4:37

    • 122.

      9.07 Multicast d'animation d'Equip

      5:59

    • 123.

      9.08 Paramétrage du widget d'affichage d'arme

      2:41

    • 124.

      9.09 Designing de l'interface d'affichage d'armes

      6:09

    • 125.

      9.10 Affichage de l'interface utilisateur d'affichage d'armes

      4:05

    • 126.

      9.11 Codage de la fonctionnalité d'affichage d'arme

      6:02

    • 127.

      9.12 Ajout d'une miniature d'arme à la structure

      8:26

    • 128.

      9.13 Opacité d'interface utilisateur d'arme non équipée

      5:21

    • 129.

      9.14 Ajout d'effets sonores d'équipement

      8:15

    • 130.

      10.01 Créer l'interface utilisateur en croix

      3:09

    • 131.

      10.02 Affichage de la croix

      2:52

    • 132.

      10.03 Ajouter des propriétés d'arme à la structure

      1:11

    • 133.

      10.04 Action et structure d'entrée d'arme de tir

      8:41

    • 134.

      10.05 Créer le minuteur de tir d'arme

      18:21

    • 135.

      10.06 Trace linéaire par canal

      13:21

    • 136.

      10.07 Ajustement des paramètres de collision de joueur

      8:31

    • 137.

      10.08 Créer les prises flash de muselière

      2:35

    • 138.

      10.09 Tournage VFX et SFX

      6:26

    • 139.

      10.10 Prévention de tir pendant Equip Anim

      5:56

    • 140.

      10.11 Créer l'interface utilisateur de munitions

      6:04

    • 141.

      10.12 Définition de la quantité initiale de munitions d'arme

      6:37

    • 142.

      10.13 Créer la logique d'interface utilisateur de munitions

      4:52

    • 143.

      10.14 Mettre à jour l'interface utilisateur de munitions

      5:02

    • 144.

      10.15 Masquer l'interface utilisateur de munitions

      6:03

    • 145.

      10.16 Détermination de munitions

      6:20

    • 146.

      10.17 Animation d'arme de rechargement

      5:20

    • 147.

      10.18 Fonctionnalité d'arme de recharge

      11:27

    • 148.

      10.19 Dispositions de prise de vue

      7:31

    • 149.

      10.20 Recharger une arme avec une touche de clavier

      5:48

    • 150.

      10.21 Recharger une arme lors d'une commutation d'arme

      3:31

    • 151.

      10.22 Ajouter un tir au pistolet

      3:06

    • 152.

      10.23 Tournage VFX d'arrêt lors d'un changement d'arme

      7:13

    • 153.

      10.24 Animation de prise de vue

      13:52

    • 154.

      10.25 Hors de munitions SFX

      7:45

    • 155.

      10.26 Impact de balle VFX et SFX

      22:02

    • 156.

      10.27 Propagation de balles

      5:39

    • 157.

      10.28 Placer correctement les armes

      5:14

    • 158.

      11.01 Designing de l'interface utilisateur de santé et d'armure

      12:01

    • 159.

      11.02 Appliquer des dommages

      9:33

    • 160.

      11.03 Structure d'informations de joueur

      1:46

    • 161.

      11.04 Tableau de données d'informations sur le joueur

      5:08

    • 162.

      11.05 Paramétrage de la santé et de l'armure de base

      4:45

    • 163.

      11.06 Fonctionnalité d'interface utilisateur de santé et d'armure

      5:08

    • 164.

      11.07 Mise à jour de l'interface utilisateur Health et armure

      4:09

    • 165.

      11.08 Infliger des dommages à la santé

      4:23

    • 166.

      11.09 Infliger des dégâts à une armure

      5:13

    • 167.

      11.10 Prévention de pillage de plusieurs fusils

      5:43

    • 168.

      12.01 Mort

      8:35

    • 169.

      12.02 Arme de largage lorsqu'elle est morte

      23:20

    • 170.

      12.03 Respawn

      9:03

    • 171.

      12.04 RepNotify non mort

      9:06

    • 172.

      12.05 Réinitialisation de la santé dans Respawn

      1:40

    • 173.

      12.06 Prévention des dommages d'équipe

      2:41

    • 174.

      13.01 Designing de l'interface utilisateur de partition

      6:18

    • 175.

      13.02 Designing de l'interface utilisateur de Win d'équipe

      2:18

    • 176.

      13.03 Fonctionnalité d'interface utilisateur de victoire et d'équipe

      5:38

    • 177.

      13.04 Garder une trace de joueurs vivants

      7:07

    • 178.

      13.05 Garder une trace des joueurs morts

      3:09

    • 179.

      13.06 Garder une trace de tous les joueurs engendrés

      1:40

    • 180.

      13.07 Vérification du nombre de joueurs vivants

      6:03

    • 181.

      13.08 Annonce de gains d'équipe

      13:17

    • 182.

      13.09 Ajouter le score d'équipe

      7:34

    • 183.

      13.10 Réapparition des joueurs

      4:28

    • 184.

      14.01 Ajout d'une impulsion à une baisse d'arme

      4:46

    • 185.

      14.02 Amélioration du poids de l'arme

      3:12

    • 186.

      14.03 Recharger SFX lors d'une baisse d'arme

      5:46

    • 187.

      14.04 Ajout d'une annonce d'équipe Win SFX

      5:47

    • 188.

      14.05 Ajout d'un indicateur de frappe ennemi

      8:28

    • 189.

      14.06 Ajout d'un SFX d'ambiance

      2:10

    • 190.

      14.07 Suppression de la matrice lors du rechargement

      9:21

    • 191.

      14.08 Correction d'un bug de recharge sur une commutation d'arme

      3:28

    • 192.

      14.09 Que faire maintenant

      2:04

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

406

apprenants

1

projets

À propos de ce cours

Comment créer un jeu FPS - Découvrez Unreal Engine 5 Multijoueur

Ce cours complet d'Unreal Engine vous apprendra à créer un jeu FPS dans Unreal Engine 5 Multijoueur à partir de zéro. Inspiré par le jeu classique Counter-Strike, vous apprendrez toutes les mécaniques de base et avancées nécessaires pour savoir comment créer un jeu de tir à la première personne. Tout cela sans écrire une seule ligne de code.

Vous n'avez pas besoin d'une expérience préalable en développement de jeu pour suivre ce cours ; nous allons le parcourir étape par étape. Que vous soyez un débutant ou un développeur expérimenté d'Unreal Engine, ce cours a quelque chose pour tous ceux qui veulent apprendre à créer un jeu fps dans UE5.

L'objectif principal de ce cours est de vous montrer sûr de la façon de créer un jeu fps. Cela vous permettra de gagner de l'argent et de travailler en tant que développeur de jeux indépendant à domicile. En fait, je suis un développeur de jeux UE5 à plein temps depuis quelques années, créant des jeux, des cours de design et vendant des actifs de jeu sur la place de marché Unreal Engine.

Commencez votre formation de premier joueur de tir en personne en apprenant à créer un jeu fps !

Qu'est-ce qui me qualifie pour vous enseigner ?

Je suis un développeur de jeux expérimenté avec neuf ans d'expérience. Pour résumer mon travail sans vous ennuyer :

  • J'ai sorti un jeu Steam que j'ai dirigé du début à la fin avec une équipe de 8 personnes.
  • J'ai créé 11 cours de développement de jeux avec plus de 40 000 étudiants et une note moyenne de 4,8 sur 5 étoiles.
  • Je développe actuellement en solo Farmtale 2 du début à la fin.
  • Je travaille également en tant que freelance sur divers projets de jeu, me spécialisant dans la programmation, l'éclairage, l'optimisation de jeux et plus encore.

Je suis profondément passioné pour le développement de jeux et j'en ai fait mon emploi à plein temps. J'aimerais vous apprendre tout sur Unreal Engine 5 avec de bonnes pratiques de développement de jeux et vous tenir au courant des dernières informations.

Si vous voulez apprendre à publier un jeu sur Steam, jetez un coup d'œil au cours que j'ai publié sur le sujet.

Créer des jeux sans codage.

Blueprint Unreal Engine est le puissant langage de script Unreal Engine utilisé dans UE5. Il vous permet de créer votre propre jeu en ligne du début à la fin sans écrire une seule ligne de code. Cela signifie que vous pouvez facilement créer votre propre jeu en ligne même si vous êtes débutant, artiste ou designer sans expérience en programmation.

Ce cours ne nécessite aucune expérience de programmation ou d'Unreal Engine. Nous allons suivre les bases de plans d'Unreal Engine et progresser lentement vers le développement de mécaniques de jeu plus complexes. Ce faisant, vous apprendrez à développer des jeux du début à la fin.

Vous pouvez vous lancer dans ce cours en tant que débutant car vous apprendrez étape par étape comment créer un jeu fps à partir de zéro.

Multijoueur d'Unreal Engine 5

Se lancer dans le développement de jeux en ligne avec Unreal Engine 5 est très facile. Il est similaire au plan d'Unreal Engine solo, mais avec une étape supplémentaire ajoutée. Tout en apprenant à créer un jeu fps, vous apprendrez tout ce que vous devez savoir sur le multijoueur d'Unreal Engine 5. Vous n'avez pas besoin d'expérience préalable car je vous enseignerai la mise en réseau de base et avancée d'Unreal Engine.

Comment créer un jeu vidéo à partir de zéro

Même si ce cours vous apprend à créer un jeu fps, il y a toujours d'autres objectifs d'apprentissage importants dans mes cours. Lorsque vous regardez les leçons vidéo, il est essentiel de prêter attention aux outils utilisés pendant le développement de jeux. Vous apprendrez à développer des jeux à partir d'un projet Unreal Engine vide . Quel que soit le genre, le processus de développement pour les jeux dans Unreal Engine 5 reste le même.

Comment créer un jeu de tir à la première personne - Apprenez tout

Dans ce cours Unreal Engine, vous apprendrez à créer un jeu fps dans une langue étrangère. Tout d'abord, le cours commence par un projet vide et vous présente des leçons vidéo simples et faciles à suivre dans une résolution 4K. Deuxièmement, vous apprendrez à développer l'environnement de jeu, y compris la conception de niveau, l'éclairage et l'optimisation de l'environnement pour des performances de jeu optimales. Ensuite, nous passerons aux bases multijoueurs d'Unreal Engine 5 et apprendrons en développant notre jeu. Certaines des notions clés de ce cours Unreal Engine :

  • Apprenez à créer votre propre personnage dans Unreal Engine 5.
  • Apprendre Unreal Engine amélioré pour le mouvement et l'animation.
  • Apprendre la conception de niveau des matériaux à l'éclairage et à l'optimisation de jeux.
  • Apprenez à ramasser des armes ou tout autre élément sur le sol.
  • Apprenez à équiper, à larguer, à tirer et à recharger des pistolets et des fusils.
  • Créer un système d'inventaire avec une fonctionnalité de glisser-déposer.
  • Infligez des dégâts à d'autres joueurs avec de la santé et une armure.
  • Créer une fonctionnalité de sélection d'équipe avec des règles de gain.
  • Apprendre à faire apparaître et à réapparaître des joueurs
  • Designer l'interface utilisateur de jeu (UI).
  • Ajouter des effets visuels et sonores (VFX et SFX).
  • Et bien plus encore.

Ce cours comprend également le projet de jeu terminé que vous devez inspecter. À la fin de ce cours, vous aurez acquis les compétences nécessaires pour créer votre propre jeu en ligne.

Suivez ce cours et obtenez une certification.

Terminer le cours sur la façon de créer un jeu FPS vous permet d'obtenir une certification Unreal Engine. Vous pouvez l'utiliser pour renforcer votre portefeuille en tant que développeur de jeux indépendant ou l'utiliser lorsque vous postulez à des emplois de développement de jeux. La certification Unreal Engine peut être téléchargée et enregistrée localement et est valide indéfiniment.

Comment poursuivre lorsque vous terminez "Comment créer un jeu FPS".

"How to Make a FPS game" fournit les compétences et le savoir nécessaires pour progresser vers des sujets plus difficiles. Vous pouvez développer votre formation de premier joueur en ajoutant un système d'inventaire pour le transformer en un jeu de tir de RPG.

Créer des jeux 2D dans ce logiciel de développement de jeux est étonnamment facile et pratique. Supposons que vous souhaitiez apprendre à créer un jeu 2D en multijoueur en utilisant les fonctionnalités 2D d'Unreal Engine. Dans ce cas, vous pouvez vous inscrire à un cours passionnant sur la façon de créer un jeu de plates-formes 2D en multijoueur. Vous pouvez également vous lancer dans des jeux 2D solo dans Unreal Engine 5 en regardant comment créer un jeu de clicker.

Rejoignez notre communauté de soutien.

Le développement de jeux Unreal Engine peut parfois être une expérience frustrante. Par exemple, vous devrez peut-être chercher une case décochée quelque part, vous laissant un sentiment d'être perdu pendant des heures. Alternativement, vous pourriez avoir besoin d'un soutien moral et d'idées de la part d'autres développeurs de jeux comme vous. C'est pourquoi nous offrons un support en direct 24/7 en écrivant dans la section Q/A dans l'un des cours. Nous sommes toujours là pour vous aider chaque fois que vous en avez besoin.

Commençons par "Comment créer un jeu FPS" sans aucun retard. J'ai hâte de vous voir dans la première leçon. Commençons donc et encourageons un voyage d'apprentissage passionnant !

Rencontrez votre enseignant·e

Teacher Profile Image

Pixel Helmet

Game Developer & Publisher

Enseignant·e

Pixel Helmet is a video game developer and publisher based in Denmark. We have recently released our first game Farmtale on the Steam platform.

We decided to get on Skillshare to create high-quality courses and share our knowledge with the game development community. Learning can be tedious at times and we aim to create a fun learning experience.

We offer to create courses within Modeling, Texturing, Unreal Engine, Blueprints, C++, Game Design, and much more. If you need any help during a course, please let us know through Skillshare or connect with us on Discord, Twitter, or LinkedIn.

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. Introduction: Dans ce cours, nous allons apprendre à développer un jeu de tir à la première personne multijoueur en utilisant plans d'Unreal Engine Five en recréant un jeu similaire au jeu emblématique Ce cours contient tout ce que vous devez savoir pour commencer à développer un jeu de tir multijoueur à la première personne dans Unreal Engine Five Y compris comment ajouter un mouvement FPS multijoueur. Comment créer un écran de sélection d'équipe. Comment ramasser et déposer des armes. Comment faire un inventaire FPS. Comment équiper un pistolet et un fusil. Comment tirer avec différents types d'armes. Comment calculer et afficher le nombre correct de balles Comment recharger une arme. Comment ajouter de la santé et de l'armure. Comment infliger des dégâts aux autres joueurs. Comment attribuer des points ronds à l'équipe gagnante. Comment réagir les joueurs. Comment mettre à jour correctement les valeurs de l'interface utilisateur du jeu en multijoueur. Et enfin, comment ajouter des effets visuels et sonores en multijoueur. Je vous fournirai également le projet terminé afin que vous puissiez l'inspecter comme vous le souhaitez tout en suivant le cours. À la fin de ce cours, vous serez capable de créer en toute confiance votre propre jeu de tir multijoueur à la première personne à partir de zéro dans Honnreal Engine Five J'espère que vous me rejoindrez dans ce cours aujourd'hui. Et n'oubliez pas que je suis toujours là pour vous soutenir tout au long du cours et j'espère vous voir bientôt. 2. 1.02 Télécharger Unreal Engine 5: Pour télécharger Unreal Engine Five, vous devez d'abord vous rendre sur Epic Games.com. À l'intérieur, il y a un bouton bleu en haut à droite Vous devez cliquer dessus pour télécharger le lanceur Epic Games Vous pouvez le voir ici, il est en cours d'installation. Cependant, je l'ai déjà installé, alors allez-y et installez-le quand ce sera terminé. Et voilà, j'ai ouvert le lanceur Epic Games et il vous demandera de vous connecter J'ai déjà un compte Epic Games, je vais donc me connecter avec mon compte Epic Games. Si vous n'en avez pas, vous pouvez vous inscrire ici. C'est gratuit, ou vous pouvez vous connecter avec toutes les autres méthodes. Cependant, je vais me connecter avec mon compte Epic Games. Une fois connecté au lanceur, vous serez à l'intérieur de cette page Allez-y et cliquez sur Honoral Engine ici à gauche. Allez-y, cliquez sur l'onglet bibliothèque en haut, et vous verrez les versions du moteur. C'est Honoral Engine, et si vous ne voyez rien, il se peut que vous ayez une boîte grise ici si c'est la première fois que vous entrez ici Mais si vous n'obtenez pas de case grise, vous pouvez cliquer sur le bouton plus ici et vous en obtiendrez une. Ensuite, vous pouvez sélectionner le numéro et sélectionner version d'Unreal Engine que vous souhaitez installer Maintenant, vous pouvez voir que j'ai déjà installé Unreal Engine 5.2. Cependant, si vous avez une version ultérieure, si vous la regardez dans le futur et que vous avez 5.3 ou 5.21, etc., allez-y et installez-la Vous pouvez suivre, rien n'a changé. Mais pour ce cours, je vais installer le dernier Unreal Engine Five Ensuite, nous sommes prêts à passer à la leçon suivante. 3. 1.03 Créer un nouveau projet: Allons-y et lançons Unreal Engine Five. Lorsque Unreal Engine 5 sera lancé, cette fenêtre apparaîtra pour que vous puissiez voir vos projets récents Et si vous n'avez aucun projet récent, celui-ci sera vide. Mais ici tu peux voir le mien. Et ce que nous voulons faire, c'est cliquer sur l'onglet Jeux parce que nous créons des jeux. Mais vous pouvez également voir que Real Engine Five peut également être utilisé pour créer de l'architecture cinématographique et vidéo, utilisé pour créer de l'architecture cinématographique et vidéo, de l' automobile et de la simulation. Très cool. Mais pour nous, nous allons créer des jeux. Je vais donc aller dans l'onglet Jeux. Dans l'onglet Jeux, vous pouvez voir que vous pouvez choisir entre différents modèles. Par exemple, si vous souhaitez créer un jeu de tir à la première personne comme nous le faisons, vous pouvez sélectionner le modèle à la première personne. Si vous voulez créer un jeu à la troisième personne, vous pouvez sélectionner celui-ci et ainsi de suite. Vous pouvez donc voir que vous pouvez choisir entre différents modèles sympas. Cependant, vous pouvez créer tous ces modèles. Vous pouvez réellement créer un projet vierge, tout créer à partir de zéro et créer tous ces modèles. Si vous savez ce que vous faites pour mes cours, j'aimerais commencer par un projet vierge qui ne contient rien. Parce que je veux t' apprendre à créer un jeu à partir de rien. Je n'aime pas commencer par ces modèles ici. Et encore une fois, vous pouvez créer tout cela à partir d'un projet vierge si vous savez ce que vous faites. Commençons donc par un projet vierge car je veux tout vous apprendre. À partir d'un projet vierge, nous allons sélectionner Blueprint comme langage de programmation Et la plate-forme cible est la qualité d'un ordinateur de bureau. Le préréglage est réglé au maximum. En ce qui concerne le contenu des données, si vous en avez, je vais le supprimer afin que nous n'ayons rien. Encore une fois, je veux commencer par rien , puis sélectionner l'endroit où vous souhaitez enregistrer le projet. Je vais donc cliquer ici et sélectionner un dossier. Ensuite, allez-y et donnez à votre projet le nom de ce jeu. Je vais juste l'appeler Counterstrike parce que c'est le type de jeu que nous faisons Nous ne le copions pas à 100%. Je fais aussi des choses personnalisées. Mais cela ressemblera beaucoup plus Counterstrike pour ce jeu de tir multijoueur Allez-y, donnez-lui un nom, puis cliquez sur Créer un projet. Une fois le projet créé, nous voici dans Unreal Engine Passons à la leçon suivante et examinons la présentation d'Unreal Engine 4. Présentation de l'Unreal Engine 5: Avant de commencer notre projet, voyons un bref aperçu de la façon dont Unreal Engine est construit Ici, au milieu, nous avons la fenêtre d'affichage, et c'est là que vous pouvez voir votre jeu visuellement Dans la fenêtre d'affichage, vous pouvez maintenir le bouton droit de la souris enfoncé. Lorsque vous maintenez le bouton droit de la souris enfoncé dans la fenêtre d'affichage, vous pouvez voir que vous pouvez regarder à l'intérieur de la fenêtre Maintenant, lorsque vous maintenez le bouton droit de la souris enfoncé et que vous cliquez sur W, vous avancez dans le monde. Lorsque vous cliquez sur, vous reculez, lorsque vous cliquez sur D, vous vous déplacez vers la droite. Et lorsque vous cliquez sur A, vous vous déplacez vers la gauche. N'oubliez pas de maintenir le bouton droit enfoncé lorsque vous faites cela. Maintenez donc le bouton droit de la souris et le bouton gauche de la souris enfoncés en même temps. Ensuite, vous pouvez voir que vous pouvez réellement vous déplacer avec votre souris seule, comme ceci. Vous pouvez également maintenir le bouton gauche de votre souris seul et le déplacer vers l' avant ou vers l'arrière. Et tu peux voir que tu peux aussi ressembler à ça. Il existe différentes techniques de déplacement à l'intérieur d'ici. La prochaine étape consiste à maintenir le bouton droit de la souris enfoncé, puis vous pouvez cliquer sur pour vous déplacer vers le bas, ou vous pouvez cliquer sur pour vous déplacer vers le haut. Bien sûr, la dernière chose que nous avons ici est que si vous faites défiler la page avec le bouton de votre souris, vous pouvez également zoomer et dézoomer. Ce sont toutes les techniques de déplacement, et c'est tout. Le principal que j'utilise est de maintenir le bouton droit de la souris enfoncé et de cliquer sur S DNA. Je me déplace simplement dans le monde comme ça. Je n'utilise généralement pas les autres méthodes, c'est la plus utilisée pour moi. Vous pouvez donc essayer maintenir le bouton droit de la souris enfoncé, de cliquer sur, d'essayer de naviguer, d'avoir une idée de ce que l'on ressent lorsqu'on se déplace dans ce monde. Ici, nous avons différents boutons à l'intérieur du panneau d'affichage, en cliquant ici, le plus important est celui-ci appelé vue du jeu Et celui-ci cache des icônes dans le jeu. Et c'est utile si vous avez autant d' icônes dans le jeu. Souvenez-vous lorsque vous créez un jeu. Donc, si vous cliquez sur l'un des objets que vous avez dans le monde et que vous cliquez simplement sur votre clavier , vous accédez à cet élément. Vous pouvez voir ici si je clique sur, sur mon clavier, c'est le raccourci pour accéder à la vue du jeu. Si je clique dessus, je masque les icônes. Et c'est très cool parce que je veux voir mon jeu, quoi il ressemble vraiment sans icônes. Et vous pouvez cliquer à nouveau pour les afficher ici. Le prochain est le mode immersif, affichera votre Viewport en plein écran En cliquant sur 11, c'est le raccourci pour cela. Cela permet de passer le jeu en plein écran. Ensuite, je peux cliquer dessus pour masquer les icônes. Et je peux essayer de voir à quoi ressemble mon niveau sans me laisser embêter par toutes ces icônes Cliquez à nouveau pour les afficher en cliquant sur 11 pour minimiser le Viewpoard Encore une fois, passons simplement à ces outils très importants. Le premier s'appelle un outil de sélection. En cliquant dessus, vous pouvez sélectionner différents objets dans le monde. Je ne l'utilise pas trop, j'utilise en fait ces trois-là. Je ne le sélectionne jamais, en fait. Si maintenant que j' y pense, je ne le sélectionne jamais. Cependant, il se peut que vous y trouviez une utilité. Mais en cliquant sur le Q du clavier, vous pouvez voir qu'ils ont des raccourcis si vous maintenez la souris dessus. En cliquant sur Q, vous sélectionnez l'outil de sélection, et en cliquant sur W sur le clavier, vous sélectionnez l'outil de déplacement. En sélectionnant l' outil de déplacement, vous pouvez voir si je sélectionne l'une des icônes, par exemple, j'obtiens ces flèches. Vous pouvez donc voir que nous avons une flèche verte, une flèche bleue et une flèche rouge également. Avec l'outil de déplacement, nous pouvons déplacer des objets. Et tu peux cliquer sur l'une des flèches. Et vous pouvez le déplacer ici sur cet axe. Sur cet axe également. Et sur cet axe également. Ici, à droite, vous pouvez voir que dans le panneau des détails, il vous montre en fait des détails sur l'élément sélectionné. Si vous sélectionnez l'un d'entre eux, vous pouvez voir qu'il modifie les détails de cet article. Par exemple, si je sélectionne celui-ci vous pouvez également voir comment il s'appelle dans l'Outliner L'Outliner vous montre essentiellement tous les objets que vous avez à l'intérieur de ce monde, à l'intérieur de ce niveau que nous avons ici C'est ce qu'il y a dedans. Toutes ces choses paysagères que vous pouvez voir ici ne sont que ce monde, que vous pouvez voir. Il est composé de blocs. Lorsque vous le sélectionnez, vous pouvez voir qu'il est également sélectionné ici dans l'Outliner Lorsque je sélectionne celui-ci dans la partie vue, il est également sélectionné ici dans l'Outliner Toutes ces choses que vous pouvez voir ici en fait quelque chose qui se trouve à l'intérieur de votre monde. Lorsque je sélectionne cette option, vous pouvez voir que cela s'appelle la lucarne. C'est la lumière du ciel. Et vous pouvez voir des détails sur la lucarne , par exemple son intensité Par exemple, vous pouvez l'augmenter. Imaginons que je veuille en écrire trois. Et vous pouvez voir que mon niveau d'éclairage est plus intense. Et je peux cliquer ici et cliquer à nouveau ou cliquer à nouveau avec le bouton droit de la souris, puis tout redeviendra normal. Tu peux changer les choses ici. Ce que je voulais vous montrer ici avec l'outil de déplacement, c'est que lorsque vous le déplacez, vous pouvez voir qu'il change également emplacement dans le panneau de détails. Si je le déplace, vous pouvez voir qu'il change de valeur dans la valeur z ici lorsque je le déplace cette façon et aussi lorsque je le déplace de cette façon. Mais pour les points de pivot, vous pouvez voir que le point rouge est en fait l'axe X. Vous pouvez le voir en maintenant la souris dessus. Il indique X. Le vert est l'axe Y, et le bleu est l'axe Z. Nous avons l'axe X, l'axe Y. Et l'axe Z. Vous pouvez modifier leur emplacement en procédant ici. Vous pouvez également modifier l' emplacement en écrivant un chiffre. Par exemple, dans le Z, je peux écrire 200 en cliquant sur Inter pour passer à la valeur 200 dans le Z. Mais vous pouvez le faire, au lieu d'écrire un chiffre, vous pouvez également cliquer, cliquer sur le chiffre, maintenir la souris et faire glisser le Ensuite, vous pouvez voir que vous pouvez également modifier l'emplacement de cette manière. Si vous souhaitez le déplacer dans toutes les directions à la fois, vous pouvez cliquer sur cette boule blanche au milieu. Et vous pouvez le déplacer dans toutes les directions à la fois. Si vous souhaitez le déplacer dans deux directions différentes à la fois, vous pouvez cliquer sur la case au milieu. Et vous pouvez le déplacer dans les deux directions que vous avez sélectionnées. Ensuite, si vous cliquez sur E sur le clavier ou cliquez ici, vous obtiendrez simplement l'outil de rotation, comme indiqué. Vous pouvez cliquer ici et faire pivoter l'article. le moment, c'est une icône, nous ne pouvons donc pas vraiment voir ce qui se passe. Mais si je clique ici, cela ajoutera des éléments. En cliquant ici, en allant sur Formes, je vais juste ajouter un simple cube. En ajoutant un simple cube, je peux maintenant cliquer sur le cube, cliquer sur E sur le clavier ou sélectionner l'outil de rotation, et je peux simplement faire pivoter cet élément autour d'un axe différent. Encore une fois, vous pouvez voir les valeurs changer ici pour la rotation, et vous pouvez le voir ici. Vous pouvez également le faire pivoter en cliquant ici, en cliquant bouton gauche de la souris et en le faisant glisser Cela le fera également pivoter. Ensuite, nous avons l'outil de mise à l'échelle ici, et comme il est indiqué, il redimensionne l'article. Vous pouvez le redimensionner dans ces trois directions. Ou si vous souhaitez qu'il soit redimensionné uniformément dans toutes les directions en même temps, vous pouvez cliquer sur cette case blanche au milieu Et il évoluera dans toutes les directions, même temps lorsque vous le redimensionnerez. Vous pouvez également voir les valeurs ici, quelle mesure nous les avons redimensionnées. Si vous voulez le réinitialiser, vous pouvez écrire 111 qui réinitialisera l'échelle. Cependant, vous pouvez également cliquer sur cette petite flèche ici. Cela réinitialisera les valeurs par défaut en cliquant sur cette petite flèche pour revenir aux valeurs par défaut. Ici à droite, vous avez différents outils de capture Vous pouvez voir que lorsque je clique sur W sur mon clavier pour sélectionner l'outil de déplacement, je peux déplacer cet élément. Mais vous pouvez voir que ça ne va pas bien. Il s'accroche à une grille. Je peux le désactiver en cliquant sur l'icône en haut. Et maintenant je peux le déplacer , et vous pouvez voir qu'il se déplace maintenant sans problème. Si je clique à nouveau dessus, je l'activerai. Vous pouvez également augmenter ou diminuer la quantité avec laquelle il capture Si je clique sur le chiffre ci-dessus et que je peux sélectionner, par exemple, 100, il en cliquera beaucoup plus. Si je le fais glisser maintenant, vous pouvez le voir prendre beaucoup plus de photos. C'est utile lorsque vous faites de la conception de niveaux, par exemple, et que vous souhaitez que les éléments placés les uns à côté des autres comme dans un schéma. Ce que vous pouvez faire, par exemple ici, c'est maintenir la touche Alt enfoncée sur le clavier. Vous pouvez cliquer et faire glisser le pointeur tout en maintenant la touche Alt enfoncée. Cela copiera l'article si je le fais à nouveau. Je clique, puis je clique et fais glisser à nouveau. Je clique, je clique et je fais glisser. Vous pouvez voir que je peux copier les articles. Et ils sont désormais placés à la même distance les uns des autres. C'est en cela que l' outil de capture est utile. Je vais juste le remettre à dix d'habitude. Vous pouvez également le faire avec la rotation et avec le dimensionnement. Vous pouvez voir si je clique sur l'outil de rotation pour sélectionner l'outil de rotation et que je clique sur l'un d'eux, je le fais pivoter, vous pouvez voir qu'il pivote tous les dix degrés. Encore une fois, c'est là-haut. Je peux augmenter ou diminuer la quantité avec laquelle il capture, ou je peux simplement cliquer sur l'icône et je peux le faire pivoter maintenant, librement sans aucun cliquetis. Je vais le rallumer. Et vous pouvez faire la même chose avec la mise à l'échelle. Maintenant, ici, vous pouvez augmenter ou diminuer la vitesse de la caméra. Vous pouvez voir en ce moment que je me déplace dans mon monde comme ça. Je peux aussi me déplacer beaucoup plus lentement. Imaginez que si vous deviez mettre au point de petits détails ici, il est très difficile de déplacer l' appareil photo pour qu'il apparaisse ici. Ce que vous pouvez faire, vous pouvez cliquer ici, augmenter la vitesse de la caméra. Vous pouvez désormais vous déplacer beaucoup plus lentement et vous concentrer sur les petits détails de votre niveau. Cependant, si vous voulez déménager à l'autre bout du monde, cela prendra une éternité. Vous pouvez cliquer ici, augmenter la vitesse de la caméra, et maintenant vous pouvez vous déplacer rapidement à l'autre bout du monde. Encore une fois, si vous souhaitez passer à un élément spécifique, vous pouvez toujours cliquer dessus ici. Par exemple, si je veux me déplacer, disons à mon feu directionnel, je peux cliquer dessus. Et je peux cliquer sur mon clavier. Et ce sera également le cas ici. Maintenant, je peux à nouveau réduire la vitesse de mon appareil photo à un par défaut. Et je peux me déplacer normalement ici, comme avant. Très bien, il y avait donc tout ce qui se trouvait à l'intérieur du Viewpoard Encore une fois, le plan montre essentiellement ce qu'il y a à l'intérieur de votre niveau, ce que vous pouvez voir visuellement à l'intérieur du niveau Mais pour l'instant, je vais supprimer ces cubes. Je vais donc cliquer ici, appuyer sur Supprimer sur mon clavier. Et sélectionnez-les également tous. Et appuyez sur Supprimer sur mon clavier. Maintenant, dans la barre d'outils, nous pouvons enregistrer le niveau actuel dans lequel nous nous trouvons. Nous pouvons également cliquer ici et utiliser les différents outils dont nous disposons. Par exemple, si nous voulons créer un paysage, nous pouvons utiliser l'outil paysage ou le feuillage, par exemple. Si vous voulez peindre du gazon et des arbres dans votre niveau, vous pouvez également l'utiliser. Cependant, nous n' allons pas l'utiliser dans notre jeu car nous allons créer un niveau de base et nous nous concentrons également sur les plans et sur la façon dont nous pouvons programmer notre jeu de tir multijoueur à la première personne Donc, si vous souhaitez vous concentrer sur la création de paysages et de feuillages, veuillez consulter mon site Web Pixel Helmet.com . Vous trouverez ici de nombreux cours qui expliqueront également cela Ensuite, un bouton très, très important est que vous pouvez ajouter différentes choses à votre niveau. Par exemple, nous avons créé la forme, le cube ici. Vous pouvez également créer de l'éclairage. L'éclairage que vous pouvez voir ici, nous le créerons également à partir de zéro. Et vous pouvez créer les différentes lumières à l'intérieur d'ici. Vous pouvez également créer des effets visuels, etc. Vous pouvez donc placer différents éléments à votre niveau en utilisant ce bouton. Ensuite, nous avons le plan de niveau. Et nous parlerons beaucoup des plans plus tard, alors ne nous concentrons pas là-dessus pour le moment Ensuite, nous avons les cinématiques, et nous allons sauter les cinématiques pour le Ensuite, nous avons le bouton de jeu, et si vous cliquez dessus, vous jouez au jeu. Et puis vous pouvez voir que je joue maintenant à mon jeu à l'intérieur du niveau. ne se passe pas grand-chose parce que nous n'en avons pas vraiment beaucoup à l'intérieur. Je vais donc cliquer sur Escape sur mon clavier pour quitter le mode de jeu en cliquant sur ces trois boutons. Vous pouvez également sélectionner la manière dont vous souhaitez jouer. En ce moment, nous y jouons dans le Viewpoard. Cliquez également ici pour ouvrir une nouvelle fenêtre. Et il s'est ouvert sur mon deuxième écran, vous pouvez voir maintenant que je joue au jeu dans ma deuxième fenêtre. Je peux cliquer sur Escape pour le quitter. Encore une fois, vous pouvez sélectionner la façon dont vous souhaitez jouer. Je vais juste sélectionner le Viewpoard qu'ils ont sélectionné. Ici, nous avons les paramètres multijoueurs. Nous y travaillerons plus tard. Enfin, si vous souhaitez empaqueter votre jeu et le publier sur Steam ou le distribuer à vos amis, vous pouvez cliquer ici, Windows par exemple, puis empaqueter le jeu pour le publier. Maintenant, ici, nous avons les différents boutons. Nous avons le bouton Fichier, où vous pouvez créer un nouveau niveau, vous pouvez créer un nouveau projet, etc. Très basique dans les anciens logiciels que nous avons vus. Ensuite, lors de l'édition, le plus important, ce sont les paramètres du projet, et nous les utiliserons beaucoup. Vous pouvez voir qu'il comporte de nombreux boutons et cela peut sembler un peu déroutant si vous êtes nouveau dans le moteur général. Cependant, concentrons-nous uniquement sur les choses les plus importantes que nous devons apprendre. Et vous pourrez apprendre tout cela plus tard, mais pour le moment, nous allons nous concentrer sur les choses les plus importantes. Oublions ça pour le moment. Et nous allons beaucoup aborder cette question au cours du cours. Ensuite, dans Windows, très cool, vous pouvez ouvrir différentes fenêtres à l'intérieur de notre moteur central. Par exemple, cette fenêtre que vous pouvez voir ici au milieu, vous pouvez accéder à Viewports, puis vous pouvez cliquer sur Viewports 2, et cela ouvrira une Maintenant, c'est très cool si vous avez deux écrans. J'ai l'habitude de le faire si j'ai une caméra et que je regarde mon jeu comme ça, que je le place sur mon deuxième écran et que je peux travailler ici aussi pendant que j'ai cette vue de mon jeu. C'est tellement cool. Vous pouvez ouvrir plusieurs fenêtres ici. Et cela vaut également pour le panneau de détails si vous souhaitez ouvrir un deuxième panneau de détails. Et vous pouvez voir ici que si je sélectionne quelque chose dans mon univers, vous pouvez voir que ce sont les mêmes détails qui sont affichés à l'intérieur d'ici. C'est tellement cool que vous puissiez ouvrir plusieurs fenêtres ici. En ce qui concerne les outils, nous n'en avons pas vraiment beaucoup, alors allons-y pour le moment. Dans Build, le seul bouton important ici est que vous pouvez créer le niveau et l'éclairage. Et cela créera les bonnes ombres, etc., mais nous y travaillerons plus tard, lorsque nous nous occuperons de l'éclairage. À la fin, nous aurons l'aide et vous pouvez également consulter la documentation ici. OK. La dernière chose que je veux examiner avant de terminer ici est le tiroir de contenu. Et cliquez sur le tiroir de contenu en bas. C'est là que se trouveront tous les fichiers destinés aux vrais moteurs, au jeu que vous créez. Par exemple, si vous avez des textures, de la musique, si vous avez trois modèles en D, tous ces fichiers pour votre jeu se trouveront ici dans le tiroir de contenu. Ce que j'aime faire, c'est que si je clique sur le Viewpoard, il disparaîtra Si je clique ici puis que je clique à nouveau, disons que je travaille dans le Viewpoard, il disparaîtra Je trouve ça un peu agaçant. Ce que je fais habituellement, c'est de cliquer ici et de cliquer sur Duck in Layout. Et il restera ici. Et maintenant, cela s'appelle le navigateur de contenu. Il reste tout le temps sur mon écran. Lorsque je travaille sur mon jeu ici, sur le belvédère, il ne disparaît jamais. Et c'est aussi beaucoup plus agréable à voir pour vous dans le cadre de ce cours. Dans le navigateur de contenu, je peux créer des dossiers. Si vous cliquez ici avec le bouton droit de la souris, vous pouvez créer un nouveau dossier. Par exemple, vous pouvez lui donner un nom, par exemple bonjour ou quelque chose comme ça. Vous pouvez également cliquer avec le bouton droit sur le dossier et définir la couleur. Vous pouvez définir la couleur du dossier. Et c'est très pratique si vous voulez rester organisé ici dans le navigateur de contenu. Parce que vous pouvez imaginer que si vous avez un gros jeu, vous avez beaucoup de fichiers à l'intérieur dans le navigateur de contenu Si vous voulez créer un nouveau jeu, vous pouvez cliquer avec le bouton droit de la souris ici. Vous pouvez voir qu'en cliquant avec le bouton droit de la souris, vous pouvez ajouter différents éléments à votre jeu. Le plus important, c'est que nous allons travailler avec des plans Celui-ci est donc très énorme. Et nous pouvons également créer un nouveau niveau, un nouveau matériau. Si nous avons quelque chose à voir avec les animations, nous y travaillerons également. Vous pouvez le créer , par exemple. Vous pouvez cliquer sur l'un d'entre eux et vous verrez que vous avez différentes options. À l'heure actuelle, nous n'avons pas vraiment de squelette, de joueur. Je vais donc le fermer et créer quelque chose de nouveau. Par exemple, un matériau. Et vous pouvez le voir ici. Si vous souhaitez réduire ou agrandir les icônes, vous pouvez cliquer sur les paramètres, passer à la vignettes et sélectionner une taille plus petite Maintenant, ce que vous pouvez également faire, c'est maintenir le contrôle sur le clavier et vous pouvez utiliser la molette de la souris. Donc, si vous zoomez avec la molette de la souris tout en maintenant la touche Ctrl enfoncée, vous pouvez également augmenter et diminuer les icônes. Maintenant, je vais cliquer sur celui-ci et appuyer sur Supprimer sur mon clavier. Et allez-y, supprimez-le pour le moment. Si vous cliquez à nouveau avec le bouton droit de la souris, vous pouvez voir tous ces éléments que vous pouvez créer et ajouter à votre jeu. Encore une fois, cela semble très, très déroutant si vous ne l'avez jamais utilisé auparavant, sur un vrai moteur, et si c'est nouveau pour vous. Mais encore une fois, n'essayez pas de vous concentrer sur toutes ces choses. Concentrons-nous simplement sur les choses les plus importantes et créons-les au cours de ce cours. Et je te promets que tu apprendras tout ça lentement. Ne vous concentrez donc pas sur tout pour le moment. Maintenant, vous pouvez également utiliser ce bouton Ajouter, mais je ne l'utilise jamais. En fait, je vais simplement dans le dossier dans lequel je veux ajouter quelque chose et j'écrirai simplement cliquez ici. Mais pareil, vous pouvez également cliquer ici si vous le souhaitez. OK, c'était tout pour la présentation d'Unreal Engine. Si vous souhaitez un aperçu plus détaillé d'Unreal Engine, veuillez consulter mes autres cours J'ai également un guide complet pour débutants. Cela étant dit, allons-y et passons à la leçon suivante. 5. Introduction au jeu: Bonjour Ron. C'est moi qui viens du futur. Et voici le projet terminé pour ce cours. Et je vais juste vous montrer ce que nous allons faire dans le cadre de ce cours. Il est parfois beaucoup plus facile de voir le produit fini avant de continuer. Ce que nous allons faire ici, c'est créer un jeu FPS à partir de zéro. Et littéralement à partir de zéro, nous partons d'un projet vierge. Et nous nous occupons de tout, de la création de la carte l'éclairage, en passant par l' importation des armes, la fabrication de l' équipement des armes, etc. Et si je clique simplement sur Jouer ici, vous pourrez voir le jeu. Nous avons donc un son ambiant en arrière-plan. Quelques oiseaux, tu peux piller des armes ici. Tu peux aussi le piller. Tu l'as sur le dos, comme tu peux le voir ici dans mon ombre. Mais vous pouvez aussi le voir ici si j'apparais simplement en tant qu'autre joueur Vous pouvez le voir ici au dos de ce lecteur. Et je peux aussi changer d'arme. Je peux tirer avec l'arme. Il existe également différents effets sonores pour chaque arme. Vous pouvez également constater que nous avons des effets sur le terrain. Nous avons des puces pour calculer. Nous pouvons recharger l'arme. Nous pouvons également toucher d'autres joueurs. Oui, nous avons de la santé, de l' armure et nous avons aussi des points ronds. Nous avons beaucoup de choses à faire. Nous pouvons lâcher des armes. Les armes ont du poids. Et nous avons aussi Ragdoll Death and Responding. Et vous recevez également une notification lorsque vous gagnez la manche et que vous perdez la manche, etc. se passe beaucoup de choses dans ce jeu, mais nous allons les aborder ensemble. Et croyez-moi, ce sera facile si vous suivez simplement le cours ici. Je vais vous apprendre tout ce que vous devez savoir pour créer un jeu FPS. L'avantage des plans est ce cours Si vous le suivez pleinement et le comprenez, ce cours vous apprendra non seulement à créer des jeux FPS, mais également d'autres jeux Parce que lorsque vous créez d'autres jeux, vous utilisez en fait les mêmes outils. Les plans ne sont que des plans. Et vous avez simplement ces outils dans une boîte à outils et vous pouvez créer différentes choses avec eux. Dans ce cas, nous allons créer un jeu FPS. J'espère que tu t'amuseras bien avec moi. Allons-y et continuons, et ne perdons pas de temps, et je te verrai à la prochaine. 6. 2.02 Créer une nouvelle carte: Pour créer une nouvelle carte. Commençons par créer un nouveau dossier ici. Je vais cliquer avec le bouton droit sur le dossier de contenu. Je vais cliquer sur Nouveau dossier, et appelons-le Maps. Alors, à l'intérieur d'ici, faisons un clic droit ici. Et allons-y et cliquons sur Niveau pour ce niveau. Habituellement, pour les cartes, je les appelle carte comme préfixe, car plus tard, nous pouvons réellement rechercher des éléments ici et ce sera plus facile pour nous plus tard Je donne donc généralement des préfixes à mes fichiers. J'appelle cette carte une carte et appelons-la simplement principale. Voici notre carte principale. Nous pouvons maintenant double-cliquer sur cette carte. Et maintenant, il nous demande si nous voulons également enregistrer ce niveau ici. Et je vais juste le supprimer. Je veux juste enregistrer ma nouvelle carte et cliquer sur Safe Selected. Et maintenant, je suis dans ma nouvelle carte. Et vous pouvez voir qu'il fait très sombre à l'intérieur et qu'il n' y a rien dans le contour Et il fait noir car il n'y a pas de lumière. n'y a pas encore d'actifs dans notre niveau, et nous devons les ajouter dans nos prochaines leçons. 7. 2.03 Importer des ressources d'environnement: Pour les actifs environnementaux, nous allons utiliser un pack du Marketplace. Si vous ouvrez le lanceur Epic Games et que vous y cliquez sur l'onglet Marketplace lorsque vous êtes dans le Marketplace Marketplace propose de nombreux objets intéressants que vous pouvez utiliser pour votre jeu. Vous pouvez également voir qu'ils sont gratuits pour le mois. Cela vaut le coup d'y jeter un coup d'œil, mais pour l'instant, dans les produits, cherchons la grille. Si vous écrivez simplement Grid ici et que vous appuyez sur Entrée, puis ici avec le prix maximum, vous cliquez sur Gratuit. Et puis vous voyez celui-ci appelé Super Grid Start up Pack. C'est ce que nous allons utiliser. Donc, si vous cliquez dessus, « télécharger ici » s'affichera si vous ne l' avez pas encore téléchargé. Et lorsque vous téléchargez cette ressource, vous pouvez créer un projet. Vous pouvez cliquer sur ce bouton appelé Créer un projet. Ensuite, vous devez sélectionner l' endroit où vous souhaitez l'enregistrer et cliquer sur Créer. Vous pouvez également sélectionner la version pour laquelle vous souhaitez le créer. heure actuelle, il est réglé sur 5.1. C'est le cas. D'accord, vous n'avez pas besoin d'une version 5.1 pour l'utiliser, mais il s'agit simplement de créer la dernière version du moteur Honual Vous n'avez pas besoin de le télécharger pour l'utiliser, donc ce n'est pas grave. Je l'ai déjà créé. Donc, si je retourne dans ma bibliothèque, c'est ici que, comme si vous la créiez, elle apparaîtra ici. Il s'agit du pack Super Grit Stata ou d'Unreal Engine 5.1. Je vais double-cliquer dessus pour l'ouvrir. Encore une fois, vous n'avez pas besoin d'Unreal Engine 5.1 Vous pouvez en fait l'ouvrir avec 5.2 ou la version que vous utilisez. Et voilà, ça s' ouvre. Tu dois attendre. Si c'est la première fois que vous l'ouvrez, il doit préparer les shaders Cela peut prendre beaucoup de temps lorsque vous l' ouvrez pour la première fois, parfois une demi-heure, parfois une heure. Mais quand il sera prêt, vous pouvez maintenant utiliser le SS ici. Pour utiliser les actifs d'un projet à un autre, vous devez migrer des fichiers. Pour ce faire, vous pouvez écrire, cliquer sur ce super dossier Grid, puis cliquer sur Migrer, puis sur OK. Ensuite, vous devez sélectionner où vous souhaitez enregistrer ce fichier ? Et je veux l'enregistrer dans mon autre projet. Ici, je l'ai créé dans ce dossier de jeu de tir multiplicateur et dans Counter Strike. Ensuite, vous devez sélectionner le dossier de contenu pour votre projet Unreal Engine N'oubliez pas que vous devez sélectionner le dossier de contenu Vous ne pouvez pas l'enregistrer dans d'autres dossiers, sélectionner le dossier de contenu et vous ne pouvez pas sélectionner un autre dossier à l'intérieur du dossier de contenu. Lorsque vous migrez des éléments d' un projet à un autre, vous devez sélectionner le dossier de contenu puis cliquer sur Sélectionner un dossier. Ensuite, il migrera tous les fichiers qui se trouvent ici, et maintenant c'est terminé. Je peux donc fermer ce superréseau. Et si j'ouvre mon projet, vous pouvez voir que j'ai maintenant ce dossier Supergrid et que je peux utiliser les ressources qu'il contient dans mon jeu Maintenant, avant de terminer, je vais rouvrir le lanceur Epic Games, car nous avons besoin d'autre chose. Avant de continuer, je vais ouvrir le marché. Et pour l'éclairage, il nous faut un ciel ici. Si je cherche à nouveau Sky, je clique sur gratuit. À l'intérieur, je vais utiliser celui-ci qui s'appelle Good Sky. Si vous cliquez à nouveau dessus, vous pouvez cliquer sur Télécharger si vous ne l'avez pas encore téléchargé, puis sur Ajouter au projet, puis vous devez trouver votre projet. Vous pouvez voir ici, si j'y retourne, il n'est disponible que pour 5.1. Actuellement, j'utilise 5.2. Ce que vous devez faire est de cliquer sur Ajouter au projet, puis sur Afficher tous les projets. Ensuite, je peux cliquer sur mon projet Counter Strike. Ensuite, je dois sélectionner la version ou le Pac. Je vais cliquer ici et sélectionner la dernière version avec laquelle il est compatible. C'est bon, il ne va pas y avoir de bug. Cela va très bien fonctionner. Je vais cliquer sur Ajouter au projet, et il l'ajoutera à mon projet ici. Maintenant, si je reviens à mon projet, vous pouvez voir que le beau ciel a été ajouté à mon projet et que je peux également l'utiliser. Maintenant que nous avons importé les actifs environnementaux, passons à la leçon suivante et concevons l'environnement. 8. 2.04 Designer l'environnement: Afin de concevoir l'environnement. heure actuelle, vous pouvez voir que le niveau est sombre et qu'il est impossible de faire quoi que ce soit si je vais dans le super réseau et que je lance un pack, puis que je vais dans Source et que vous pouvez voir que nous avons le dossier des maillages Par exemple, si je fais glisser cette case à l'intérieur d'ici, vous pouvez voir qu'il fait sombre et que nous ne pouvons rien voir Si je clique sur le mode éteint ici, changeant le mode éclairé en mode éteint, je peux maintenant le voir parce que nous n'avons pas vraiment de lumière et nous ne pouvons pas voir les choses lorsque nous sommes en mode éclairé En fait, je n' aime pas trop concevoir en mode éteint. Tu peux le faire. Bien sûr, vous pouvez simplement essayer de concevoir l' ensemble du niveau en éclairage, car après cela, nous allons ajouter de l'éclairage. Cependant, si vous souhaitez le concevoir en mode éclairé, vous pouvez simplement cliquer ici. Et allez dans Lumières et ajoutez une lumière directionnelle juste pour le moment. Et tu pourras toujours le modifier plus tard. N'oubliez pas que si vous augmentez la taille de cette boîte, par exemple, et que vous pensez que la lumière du soleil est trop forte, vous pouvez cliquer dessus et vous pouvez cliquer sur E pour utiliser l'outil de rotation. Et vous pouvez toujours le faire pivoter, essayez de voir si vous pouvez obtenir un bon angle. Et vous pouvez également diminuer l'intensité ici et travailler à partir de là. Mais pour le moment, c' est juste temporaire. Nous allons simplement concevoir le niveau, puis nous nous occuperons de l'éclairage. Mais je veux juste ajouter celui-ci afin de pouvoir également concevoir mon niveau en mode éclairé. Très bien, pour l'instant je vais juste supprimer à nouveau cette boîte. Et ce que nous allons faire, c'est concevoir quelque chose comme ça pour Counterstrike C'est ce qu'on appelle une carte. Une carte, c'est essentiellement, vous avez les deux faces de cette carte. Ainsi, le contre-terroriste apparaît d'un côté et le terroriste de l'autre Et il y a des armes qu'ils peuvent ramasser et qu'ils peuvent se tirer dessus comme ça. juste une carte très, très simple et nous allons simplement concevoir quelque chose comme ça, naturellement, un copier-coller complet, mais quelque chose qui nous semble bon pour le moment. Commençons par faire glisser cet avion supercrit dans le niveau Ce que j'aime faire, c' est le placer à l'emplacement 000, donc au centre du monde. Et d'habitude, j'aime bien partir d'ici. Très cool. Pour ces actifs, vous pouvez cliquer sur Art pour utiliser l' outil de mise à l'échelle, puis vous pouvez les redimensionner ces différentes directions. Et vous pouvez voir que cela crée l'avion comme ça et cela crée un niveau pour vous. Très cool. Vous pouvez le redimensionner sur les deux axes, puis créer le terrain pour le jeu afin de vous faciliter la tâche afin de ne pas avoir à trop d'échelle. Ce que vous pouvez faire, c'est cliquer ici pour le redimensionner comme ceci d'abord, afin d'afficher complètement cette boîte Ensuite, vous pouvez cliquer ici pour accéder à l'outil de mise à l'échelle ici. Et peut-être en sélectionnant la balance sur un, en la réglant sur un. Maintenant, si je le redimensionne dans cette direction, vous pouvez voir qu'il redimensionne une boîte entière, une boîte que je redimensionne une fois. C'est très cool. Au lieu de le faire plusieurs fois maintenant, vous pouvez simplement le faire à l'échelle une fois et cela crée cette boîte pour vous. Vous pouvez voir à quel point il est utile d'utiliser snapping également pour le niveau lorsque je le redimensionne Vous pouvez également le voir évoluer ici dans mon panneau de détails. Vous pouvez voir les chiffres augmenter. Vous pouvez soit le redimensionner de cette façon, soit vous pouvez le redimensionner de cette façon. Permettez-moi simplement de l'adapter de cette façon. Ici, vous pouvez imaginer que si vous descendez ici, c'est là que se tient le joueur. Si vous voulez voir la taille de cette carte, vous pouvez également cliquer rapidement ici sur le bouton deux Principes de base et ajouter un joueur démarre ce joueur commence, je vais d'abord la descendre au sol. Quelque chose comme ça. Cela indiquera « mauvaise taille ». S'il est dans le sol, je vais le déplacer vers le haut. Quelque chose comme ça. Le personnage a presque la taille de celui-ci. Les joueurs commencent presque. ne s'agit que d'une référence. Maintenant, vous pouvez voir que ce niveau est très petit. Ce n'est pas ce que nous voulons. Il faut qu'il soit beaucoup plus grand. Je vais donc cliquer sur cet avion. Je vais écrire 80 pour le x et 80 pour le Y. Maintenant, je vais essayer de construire cette carte ici Bien entendu, pour ce cours, vous pouvez toujours le réduire. Peu importe ce que vous concevez. Allez-y et concevez à nouveau votre propre niveau, peu importe ce que vous concevez à ce stade. Plus tard, nous effectuerons la programmation avec la carte que vous concevez. Allez-y, soyez créatif concevez votre propre truc et amusez-vous avec. Lorsque nous aurons créé le terrain, vous pourrez prendre cette boîte par exemple. Tu peux le poser ici, sur le sol. Ensuite, je vais le déplacer pour qu'il s' accroche à nouveau au bord du sol. Pour le claquer, le mettre en un, je peux maintenant le redimensionner, et ce n'est que mon mur Nous allons le redimensionner jusqu'à l'autre bout, comme ça, jusqu'à ce que tout soit terminé ici. Ensuite, vous pouvez également le redimensionner vers le haut pour créer un mur comme celui-ci. À l'échelle de 20 pour la hauteur. Nous pourrons toujours le modifier ultérieurement. Si nous pensons que c'est trop petit ou trop grand. Ce que je peux faire, c'est que je vais le déplacer d'une étape ici, ici sur cette boîte, parce que je veux aussi avoir l' autre mur ici. Ce que nous pouvons faire maintenant avec ce mur, c'est que je veux aussi réduire la taille ici, maintenant il est à l'extérieur, en diminuant la taille d'une unité. Juste comme ça. Maintenant, ce que je peux faire, c'est maintenir la touche Alt sur mon clavier et faire pivoter tout en maintenant la touche Alt enfoncée. Cela copiera le modèle en maintenant la touche Alt enfoncée pendant que vous faites pivoter. Cela le copiera. Maintenant, je peux faire glisser ce modèle jusqu'à cette taille. Je vais juste augmenter légèrement la vitesse de mon appareil photo pour voir ce qui se passe. Et je vais passer en mode éteint parce que maintenant vous pouvez voir, c'est vraiment difficile à voir Et je vais le déplacer comme ça. Il suffit de les assembler. Assurez-vous simplement qu'ils sont assemblés. Je regarde ici pour voir si tout va bien. Tout va bien. Encore une fois, je vais cliquer sur E old, puis faire glisser le pointeur pour le copier. Pas comme ça. Je vais cliquer sur Ctrl Z, maintenir la touche Alt enfoncée. Cliquez et faites glisser pour le copier, puis faites-le glisser ici, puis prenez-le en photo Peut-être qu'il est également beaucoup plus facile d'augmenter ce cliquetis. Il vaut mieux contrôler. Vous pouvez le voir ici, vous n'avez pas besoin trop le déplacer avant qu'il ne s'enclenche Cela vous facilitera beaucoup la tâche. Je vais faire la même chose ici, faisant glisser de ce côté, assurant qu'il s' accroche à ce mur Il faut aussi s'assurer que ça a l'air bien ici. Maintenant tu peux voir que j'ai un mur. Si je passe maintenant en mode Allumé, je peux cliquer sur ce voyant directionnel. Je peux le faire pivoter légèrement. Je peux voir mon niveau. Et je peux aussi diminuer l'intensité pour que ce ne soit pas si intense. Nous avons maintenant ce niveau avec les murs. D'accord ? Je veux donc que vous conceviez ce niveau comme vous le souhaitez. Vous pouvez toujours placer des cubes ici. Vous pouvez essayer de les redimensionner, faire des murs pour le joueur, afin que le joueur soit là et tire sur les autres joueurs Vous pouvez essayer de faire des cubes, quelque chose comme ça. Vous pouvez maintenir la touche Alt enfoncée et faire glisser le pointeur pendant que vous maintenez la touche Alt enfoncée pour la copier et peut-être la placer comme ceci. Vous pouvez même le copier à nouveau. Et tu peux le placer à côté celui-ci, quelque chose comme ça. Et vous pouvez également augmenter la taille, rendre quelque chose comme ça intéressant. Vous pouvez également toujours essayer de créer des modèles intéressants. Vous pouvez voir ici que vous pouvez utiliser tous ces actifs. Vous pouvez également utiliser des rampes. Vous pouvez essayer de faire glisser cette rampe et vous pouvez également augmenter la taille de la rampe ainsi que la taille de la pente. Comme ça et de cette façon , vous pouvez également créer des rampes à ce niveau Essayez d'être très créatif et créez simplement un niveau aléatoire que nous pourrons utiliser pour programmer le jeu. Cela dit, si vous n'êtes pas vraiment intéressé par la conception du niveau et que vous souhaitez simplement commencer avec des plans, j'ai également inclus le projet lequel le niveau a été conçu sans aucun code Vous pouvez également l'utiliser si vous le souhaitez. C'est vraiment une bonne pratique de concevoir également vos propres niveaux. Imaginez que lorsque vous créerez votre propre jeu plus tard à ce stade, vous sachiez également comment concevoir votre niveau. Je recommande donc d'aller de l'avant et de s'amuser avec ça. Concevez simplement le niveau. Prenez peut-être une heure ou 30 minutes, puis revenez ici. Très bien, me revoilà. Je suis de retour et j'ai conçu le niveau. J'ai passé quelques heures à concevoir quelque chose d' intéressant et à le rendre cool lorsque nous programmons le projet. Encore une fois, je l'ai inclus pour vous, afin que vous puissiez l'utiliser sans aucun code. Donc, si vous ne voulez pas concevoir, le voici, vous pouvez l'utiliser. Cependant, encore une fois, je vous suggère de continuer, amuser et de concevoir quelque chose de aléatoire que nous pourrons utiliser. Vous pouvez voir ici que j'ai créé un nouveau dossier appelé marketplace. Et à l'intérieur, j'ai traîné le beau ciel et aussi le super réseau Ils sont là et c'est un peu mieux organisé. En ce qui concerne le niveau, je vais en fait le passer mode éteint pour vous le montrer car l'éclairage est un peu gênant en ce moment À l'intérieur, vous pouvez voir ce que j'ai fait. Par exemple, je viens d' assembler les boîtes. J'essayais juste d'ajouter des formes intéressantes à ce niveau, à sa taille. Encore une fois, le sol mesure toujours 80 x 80, comme nous l'avons fait avant, et les murs mesurent toujours 20 x 79, comme avant. Vous pouvez voir ici toutes ces boîtes, elles sont composées de boîtes différentes. Vous pouvez voir cette boîte ici ajoutée avec cette boîte. Encore une fois, comme avant. J'ai simplement utilisé l' outil de mise à l'échelle pour les redimensionner vers le haut et vers le bas et j'ai juste essayé de créer des formes intéressantes pour celui-ci. C'est le Super Grid Ring. Si vous cliquez dessus, par exemple, si vous cliquez dessus ici, vous pouvez cliquer sur cette petite icône. Cela vous amènera en fait au modèle dans le navigateur de contenu. C'est donc le moyen le plus simple de le faire, et c'est celui que j'ai utilisé dans le dossier meshes J'ai également fabriqué cette rampe. Vous pouvez donc voir ici que j'ai conçu comme une rampe. Vous pouvez monter ici en faisant cette rampe et en faisant ce mur à côté pour enfermer cette rampe ici Vous pouvez voir comment j'en suis arrivé là pour avoir juste un peu de terrain ici. Et ce sol également sous cette rampe. Il s'agit simplement de deux rampes assemblées et un peu de terre entre elles. Juste quelques murs assemblés. Vous pouvez voir que j' ai passé du temps juste à créer un niveau intéressant. Ce ne sont que des boîtes que vous pouvez assembler. Vous pouvez également utiliser ces formes. Si vous cliquez sur cette icône, elle vous redirigera. Ce sont ces cylindres que vous pouvez placer et ensuite redimensionner . Ensuite, ce que vous pouvez faire, c'est utiliser ceux-ci pour les mettre dessus. Vous pouvez les réduire pour leur donner une belle apparence. Peut-être simplement supprimer le cliché ici ou simplement le réduire à quelque chose comme 0,125 ou quelque chose comme ça Et il suffit de le diminuer et d' essayer de le copier-coller partout pour créer cette forme intéressante ici. D'accord, mais c'est ce que j'ai fait pour concevoir ce niveau. Encore une fois, vous pouvez le télécharger si vous le souhaitez. Je l'ai inclus pour vous. Une fois cela terminé, n'oubliez pas de monter ici également. Ce que vous pouvez faire dans le plan, vous pouvez sélectionner tous ceux que vous avez conçus Et ce que vous pouvez faire, c'est que vous pouvez tous les sélectionner. Cliquez donc sur le premier, maintenez la touche Maj enfoncée et cliquez sur le dernier. Ensuite, vous pouvez cliquer sur l'icône de ce dossier pour créer un nouveau dossier. Et cliquez sur deux votre clavier pour donner un nom à ce dossier. Et ça restera organisé comme ça. N'oubliez pas qu'il est toujours agréable de rester organisé ici dans le navigateur de contenu. Restez également organisé ici dans l'Outliner. Maintenant que ce niveau a été conçu, revenons au mode allumé. Et maintenant, nous sommes prêts à faire l'éclairage. Cependant, vous pouvez voir qu'il est très lumineux. Et quand je passe à la lumière directionnelle et que je la change à quelque chose comme 0,2, vous pouvez voir l'éclairage change constamment et qu'il devient de plus en plus brillant. Nous devons donc ajouter un volume de post-traitement avant de pouvoir continuer. Passons donc à la leçon suivante. 9. 2.05 Volume de traitement des messages: Le volume de post-traitement dans Unreal Engine est quelque chose que nous pouvons utiliser pour changer l' image du jeu Tout comme vous pouvez penser à Photoshop, où vous ajoutez une image dans Photoshop et vous modifiez les couleurs de cette image. C'est la même chose ici dans Unreal Engine, nous utilisons un volume de post-traitement Ce volume peut modifier la chaleur du niveau, nous pouvons changer la couleur, la saturation, l'éblouissement de l' objectif Bloom, etc. Donc, ce que nous pouvons faire, c'est cliquer ici et vous pouvez le trouver dans l'un ou l'autre des effets visuels et vous pouvez voir que c'est ce qu'on appelle le volume post-traitement. Vous pouvez également accéder aux volumes, puis créer un volume de post-traitement. Deux manières de le créer. Alors allez-y et cliquez dessus. Et si je clique sur mon clavier pour afficher les icônes, vous pouvez voir cette boîte que nous avons créée ici. Il s'agit du volume de post-traitement. Maintenant, à l'intérieur d'ici, si vous cliquez sur l'un d'entre eux, par exemple, le Bloom, et que vous cliquez sur l'intensité. Et augmentons-le à quelque chose de fou, par exemple cinq Vous pouvez voir que rien ne s'est vraiment passé Si je le disais à une personne, si je le disais à cinq, rien ne se passe. Cela est dû au fait que vous devez accéder à ce volume de post-traitement. Vous pouvez voir si je déplace mon appareil photo à l'intérieur, la floraison prend effet. Si je sors de cette boîte, vous pouvez voir que la floraison ne prend pas effet Je dois donc être à l'intérieur de cette boîte pour que cela fasse effet. Afin de l'appliquer à l'ensemble du niveau sans entrer et sortir de cette boîte. Vous pouvez descendre ici et cocher la case appelée étendue infinie. Vous pouvez le cocher et maintenant vous pouvez voir qu'il s'applique à l'ensemble du niveau. Qu'est-ce que l'étendue infinie ? Il l'applique simplement à l'ensemble du niveau afin que vous n' ayez pas à entrer et à sortir de la boîte. Maintenant, à quoi ça sert ici, pour cette boîte ? C'est le cas, par exemple, si vous avez un donjon, ou disons que je veux entrer dans ce bâtiment ici et que je veux changer de couleur. C'est ce que tu peux faire. Vous pouvez le déplacer, par exemple, à l'intérieur de ce bâtiment. Tu peux le déplacer ici. Et vous pouvez même l'étendre. Vous pouvez voir si je le déplace ici, je peux utiliser l'outil d'échelle, en cliquant sur R pour prendre l'outil d'échelle, puis je peux le redimensionner je peux utiliser l'outil d'échelle, en cliquant sur R pour prendre l'outil d'échelle, sur les X, Y et Z. En essayant juste de remplir la zone, je veux vraiment que cela prenne effet Disons, par exemple, que je souhaite que cela prenne effet ici. Quand j'emménage, quand j' emménage dans ce donjon, vous pouvez voir la floraison, la floraison augmente, maintenant cela fait effet C'est son utilisation pour ne pas utiliser l'étendue infinie. Par exemple, si vous avez un jeu RPG, vous avez des donjons et vous souhaitez changer de couleur chaque fois que vous êtes à l'intérieur de ce Cependant, nous n'avons pas vraiment quelque chose comme ça. Je veux que cela s'applique à l'ensemble du niveau, je vais donc cliquer sur Infinite Extent. Je vais aller au sommet, et je vais aussi opter pour la balance. Je vais appuyer sur ce bouton pour revenir à la valeur par défaut. Ce n'est pas vraiment important, mais je voulais juste qu'il soit par défaut comme ça, comme vous pouvez le voir ici. Par exemple, pour la température, vous pouvez augmenter ou diminuer la température et vous pouvez changer la couleur de ce monde. Même la teinte, vous pouvez augmenter ou diminuer la teinte. Vous pouvez voir que le volume de post-traitement est identique à celui de Photoshop. Vous pouvez modifier l' apparence de ce jeu. Je vais cliquer sur ces flèches, les remettre à leur valeur par défaut pour le moment. Nous n'allons pas vraiment jouer avec elle pour le moment. Ce que je veux faire, c'est que vous pouvez voir ici, si je supprime cette intensité pour le Bloom, je clique ici. Vous pouvez voir la lumière du soleil, si je la mets à, disons, cinq très intenses, vous pouvez voir qu'elle change de lumière. C'est l'exposition. Si je le mets à 0,2, vous pouvez voir qu'il commence par faire sombre, puis qu'il augmente avec l'éclairage. Je ne veux pas le faire parce que nous créons des jeux, et dans les jeux, nous ne faisons pas vraiment ce genre de choses. Il est toujours agréable de rester à un seul éclairage lorsque vous faites de l'éclairage. Passons au volume du post-traitement et cliquez sur Exposure ici. Cliquons sur le EV minimum et maximum et définissons-le sur un. Et réglez celui-ci sur un également. Maintenant, vous pouvez voir si je clique sur la lumière directionnelle et que je règle l'intensité sur environ trois. Et maintenant, vous pouvez voir si je m'en rapproche, si je m'en vais, si je regarde différentes choses, vous pouvez voir que la lumière ne change pas vraiment et qu'elle est statique. Et c'est ce que nous voulons pour les jeux. Passons au volume de post-traitement du Bloom. Pour l'instant, je vais cliquer sur l'intensité et la mettre à zéro. C'est toujours agréable de l' avoir à zéro dès le départ. Lorsque vous faites de l'éclairage, nous n'influençons pas l' éclairage par d'autres facteurs, c'est pourquoi le Bloom le met à zéro. Ici aussi, l'effet d'image, nous avons ce qu' on appelle une vignette Et une vignette, c'est que vous pouvez voir si je clique dessus et que vous l'agrandissez, cela crée un bota noir sur votre écran Si j'augmente simplement l' intensité de la direction, allumez pour que vous puissiez voir ce que je veux dire. Si je le mets à dix et clique maintenant sur le volume de post-traitement, vous pouvez augmenter ou diminuer la vignette. Juste comme ça. Il s'agit simplement d'un albot cinématographique autour de votre image. Et je ne veux pas faire ça pour commencer. Je ne veux pas que cela affecte mon éclairage. Mettons-le à zéro. Vous pouvez voir si je ne le coche pas, c' est 0,4 par défaut, vous pouvez voir que c'est réellement appliqué. Si je le décoche, n'oubliez pas de créer un ticket et de le mettre à zéro, cela le supprimera Si je vais ici juste pour m' assurer qu'il y a autre chose à ajouter au flou Les gens n'aiment généralement pas flou cinétique dans les jeux de tir à la première personne. Je vais cliquer sur le montant et le définir également à 120. Une fois cela fait, nous sommes maintenant prêts à faire de l'éclairage. Vous pouvez voir que rien n'affecte actuellement notre éclairage. Lorsque nous faisons l' éclairage et que nous voyons les résultats, rien ne change l'éclairage. Et vous pouvez voir que lorsque je fais des allers-retours, la lumière reste la même. Et c'est ce que nous voulons. Allons-y et cliquons sur Fichier. Et cliquons sur Enregistrer tout. Et également ici, dans le volume de post-traitement, vous pouvez cliquer dessus , créer un nouveau dossier. Et il suffit de cliquer ici, cliquer sur deux et d'appeler celui-ci « Post Process ». Voici le volume du post-traitement, et nous sommes maintenant prêts à procéder à l'éclairage. 10. 2.06 Éclairer l'environnement: Nous sommes maintenant prêts à faire l'éclairage. Donc, ce que nous pouvons faire, c' est supprimer cette lumière directionnelle. Parce que maintenant nous sommes prêts à repartir de zéro, d'accord ? Pour ce qui est de l'éclairage, je monte ici, passe aux lumières, et nous ajoutons d'abord une lumière directionnelle. C'est donc notre soleil. Et j'ajoute généralement toutes les lumières avant de commencer à les régler. Voici donc la lumière du soleil. Et en cliquant ici, revenez aux lumières. Et ajoutons celui-ci appelé lucarne. La lucarne est une lumière venant du ciel, comme vous pouvez le voir ici, il fait vraiment noir en ce moment Ce que nous pouvons faire, c'est ici, dans le dossier Marketplace, je peux cliquer sur le Good Sky que nous avons ajouté plus tôt, puis sur le dossier Blueprint Et ce Good Sky, tu peux cliquer et le faire glisser dans le niveau. Et lorsque vous le placez, vous pouvez voir qu'il se trouve à l'intérieur d'ici. Encore une fois, je veux faire en sorte que ce soit le jour, mais pour l'instant je ne vais pas vraiment ajuster quoi que ce soit. Alors ce que nous pouvons faire, c'est cliquer ici. Nous avons également une autre lumière, mais elle n'est pas à l'intérieur des lumières. C'est à l'intérieur des effets visuels et c'est l'atmosphère du ciel. Vous pouvez cliquer sur celui-ci , puis sur celui-ci ici. Retournez dans Effets visuels et cliquez sur celui-ci appelé Sphere Reflection Capture. Il va capturer les reflets à l'intérieur de votre niveau. Pour celui-ci, je vais en fait le faire glisser vers le bas, peut-être 2000. Et laissez-moi le glisser au milieu du niveau. Naturellement précis , peu importe. Je vais augmenter ce rayon d'influence pour englober mon niveau Vous pouvez voir maintenant qu'il résume mon niveau. Et cela va ajouter des reflets sur mon niveau. Maintenant, ici, vous pouvez cliquer nouveau et accéder aux effets visuels, en fait, pas aux effets visuels dans les volumes. Et nous avons celui-ci appelé volume d'importance de masse légère. Cliquez sur celui-ci. Importance de la carte Le volume indique simplement au moteur ce qui est important sur lequel vous devez faire apparaître la lumière. Nous devons résumer notre niveau et dire au moteur cette zone est vraiment importante pour l'éclairage C'est ce que nous allons faire. Mettons-le quelque part au milieu. Encore une fois, cela n'a pas vraiment d'importance. Je vais cliquer ou le définir ici pour les paramètres du pinceau. Vous pouvez le voir dans le X. Vous pouvez cliquer et faire glisser pour l'agrandir. Vous augmentez cette case pour englober votre niveau. Encore une fois, vous n'avez pas vraiment besoin d'être précis, il suffit d'encapsuler le niveau. Et je vais le faire aussi pour le Y. Je vais le faire aussi pour les Z X. Je vais déménager ici juste pour voir si ça enveloppe. Et nous n'en avons pas vraiment besoin ici bas. Je vais l'augmenter légèrement. En fait, diminuez-le un peu juste pour vous assurer que le sol est là avec. Et je m'assure également que les murs d' ici sont également là. Encore une fois, pas besoin d'être précis, assurez-vous simplement qu'il résume le niveau Nous avons maintenant la direction, la lumière, le beau ciel, le ciel, l'atmosphère, la lucarne, le reflet de la sphère et la masse lumineuse à l'intérieur de notre niveau Ce que je vais faire, c'est que je vais tous les sélectionner. Cliquez ici pour accéder à ce dossier, appelons-le éclairage. Nous sommes maintenant prêts à régler l'éclairage de notre jeu. habitude, je commence par cliquer sur la lumière directionnelle, qui est la lumière du soleil. Et ce que vous pouvez faire, c'est cliquer sur E sur le clavier pour sélectionner l'outil de rotation. Ensuite, vous pouvez essayer de faire pivoter le soleil. Vous pouvez donc lui donner de belles ombres intéressantes. C'est ce que vous essayez de faire pour commencer, il suffit de lui donner des ombres intéressantes. Vous pouvez simplement le faire pivoter voir où les ombres sont intéressantes. Vous pouvez également supprimer le snapping en cliquant ici. Ensuite, vous pouvez le faire pivoter librement et essayer de créer des ombres intéressantes pour votre jeu. Pour moi, je vais essayer de le faire pivoter pour quelque chose comme ça. Peut-être que je le fais aussi pivoter de cette façon. Cela jette donc une ombre de cette façon. Et je peux également essayer de l' ajuster plus tard. Donc, en ce moment, vous pouvez voir que les ombres sont vraiment sombres. Et je veux le modifier un peu pour qu'il soit plus facile pour moi d' essayer de trouver des ombres intéressantes juste pour les rendre un peu plus lumineuses. En cliquant sur ce beau ciel, je vais monter ici, et pour le moment de la journée, je vais changer celui-ci, pour qu'il ne s'agisse pas d'étoiles. Je vais écrire 12 à cette heure de la journée. Et maintenant tu peux voir qu'il fait jour. Et vous pouvez cliquer sur la lucarne, descendre, cliquer sur Recapture pour capturer le Vous pouvez voir que certaines couleurs ont changé ici et qu'elles deviennent de plus en plus lumineuses. Vous pouvez également modifier l'intensité de la lucarne ici pour la faire passer à cinq ou quelque chose comme ça C'est vraiment dingue en ce moment. Mais juste pour trouver des ombres intéressantes avec lesquelles vous pouvez travailler maintenant, j'ai fait pivoter mon soleil et je suis contente de mes ombres Encore une fois, je vais aller à la lucarne, cliquer sur cette flèche et la remettre à une pour le moment Maintenant que nous avons le ciel, je vais commencer par le beau ciel. Cliquez maintenant sur Good Sky. Pour ces préréglages, ce que je vais faire, c'est que vous pouvez voir, vous pouvez cliquer dessus et les modifier ici pour le style des nuages Encore une fois, c'est facultatif, mais je vais cliquer dessus et sélectionner ce cloud B. C'est le style des nuages Pour la couverture nuageuse, je vais sélectionner Middle. Et voici les paramètres d'un ciel radieux. Il n'y a pas grand-chose à changer ici. Juste pour m'en assurer, je vais cliquer à nouveau sur la lucarne, descendre, cliquer sur Recapture, juste pour m'assurer que l' éclairage du ciel est correct . Et je vais cliquer sur Construire et créer tous les niveaux. Et cela garantira que l'éclairage est réellement correct. Alors vas-y et fais-le. Cela prendra un certain temps si c'est la première fois que vous le faites. Et vous pouvez voir les progrès réalisés ici lors de la construction de l'éclairage. Mais comme vous pouvez le constater, cela me prendra probablement quelques secondes. Maintenant, lorsque vous aurez fini de construire l'éclairage, il vous indiquera la progression. C'est exactement comme avant. C'est bon. Vous pouvez voir ici que si je clique sur la lucarne maintenant et que j' augmente l'intensité de la lucarne à environ trois, vous pouvez voir les ombres s' Et c'est à cela que sert la lucarne. Cela rend les ombres plus lumineuses. Si les ombres sont très sombres dans votre jeu, vous pouvez toujours les augmenter pour qu'elles deviennent plus claires. Et ça a l'air bien mieux qu'avant. Cependant, ce n'est généralement pas si sombre. Si je l'ai à l'échelle de deux, il n'est pas censé faire si sombre. Et aussi, si vous regardez à l'intérieur d'ici, il y a autre chose qui se passe. Voici le lumen, le nouveau système d'éclairage. Si vous cliquez sur ce processus de publication pour le moment, je vais minimiser cette exposition. Si vous descendez ici et que vous trouvez Lumen ici, vous pouvez voir l'illumination globale Lumen, vous pouvez cliquer dessus ici et ici dans le Lumin, éclairage global, vous pouvez cliquer sur cette distance maximale pour celui-ci Si vous écrivez zéro, vous pouvez voir qu'il est beaucoup plus lumineux qu'avant. Si vous cliquez sur cette flèche pour revenir à la normale, vous pouvez voir que tout est si sombre. Et si j'écris à nouveau zéro, c'est beaucoup plus clair. Il y a aussi quelque chose qui se passe là-dedans. Je vais en fait le réduire légèrement pour celui-ci. Vous pouvez voir si vous écrivez 100, ça ressemble à ça. Si vous écrivez 200, 300, 400500600700900, il commence à En fait, je vais en écrire 700. Vous pouvez essayer de l'équilibrer dès maintenant, il semble très plat, donc je ne vais pas choisir. 1 lumen, c'est vraiment bien et cela donne de beaux effets Vous verrez cela plus tard lorsque l'éclairage sera bon, donc je ne veux pas qu'il ait l'air aussi plat C'est vraiment agréable d'avoir du lumen dans votre scène car l'éclairage s'en trouvera bien meilleur Au lieu de tout enlever, et mettons-le à 200 ou 300, essayez de l'augmenter légèrement, mais il est toujours plat sur le sol. Je vais continuer à augmenter de 100 jusqu'à ce que je puisse voir certains détails. Maintenant, je peux voir certains détails ici. Et si j'écris 700 au lieu de 600 ? Et voilà à quoi ça ressemble. Si j'écris 800, cela deviendra vraiment sombre ici. Je vais opter pour 700 avec celui-ci, nous pourrons toujours le modifier plus tard. OK ? Vous pouvez donc voir la différence. Si je clique ici, ça ressemble à ça. Si j'écris 700, cela semble beaucoup plus léger qu'avant. Vous pouvez maintenant cliquer sur la lucarne et augmenter légèrement pour qu'il ne fasse pas si sombre Pour le puits de lumière en ce moment, il y en a deux. Tu peux écrire 34, peut-être quelque chose comme quatre pour le moment, d'accord, peut-être quelque chose comme quatre. Et vous pouvez déjà voir c'est beaucoup plus beau qu'avant. Avant c'était un par défaut et maintenant c'est quatre. Et vous pouvez voir la différence ici. Je vais continuer à régler l' éclairage jusqu'à ce que je sois satisfait. Dans les jeux de tir à la première personne, c'est vraiment agréable d'avoir des coins sombres parce que les gens veulent se voir, ils veulent se tirer dessus Et ce n'est pas agréable d'avoir un coin sombre où vous ne pouvez pas voir l'ennemi. Quelque chose comme ça, ce sera vraiment ennuyeux. Écrivons quatre dans l'échelle d'intensité ici. Ce que je vais faire également, cliquer sur la lumière directionnelle et augmenter l'intensité de l' éclairage indirect. Et ce que ça fait, ça fait simplement rebondir quelques lumières sur les murs et ça lui donnera une bien meilleure apparence Si vous l'augmentez, vous verrez la différence. Vous voyez vraiment la différence ici. Si j'écris zéro ou un comme avant et si j'écris six, vous pouvez voir ces murs font rebondir de la lumière les uns sur les autres Et l'environnement est bien meilleur qu'avant. Si c'est bon, bon six, vous pouvez également voir la différence sur ce mur. Bien, ce que je veux faire maintenant, c'est trouver un équilibre entre les ombres et l'éclairage. Cela semble donc correct. Avant que je fasse ça. Maintenant, si vous cliquez sur la lucarne, puis que vous cliquez sur Avancé ici dans l'éclairage, ici dans la lucarne, vous cliquez sur Avancé, vous pouvez voir ce l'éclairage, ici dans la lucarne, vous cliquez sur Avancé, vous que l'on appelle une couleur de l'hémisphère inférieur Ce que c'est, c'est qu'elle fait rebondir la lumière du sol vers ces murs et cet environnement. Ici, vous pouvez voir que si je clique dessus et que je mets la lumière ou la couleur à quelque chose d'extrême, vous pouvez voir qu'il fait rebondir de la lumière du sol vers le haut sur ces murs ici Maintenant, il fait noir et cela n'a pas vraiment de sens, car nous ne projetons pas vraiment de lumière noire sur les murs ici Pour le rendre plus réaliste, nous devons changer la couleur pour quelque chose de plus correct. En ce moment, mon sol est gris. Ce que vous pouvez faire ici, c'est cliquer sur le mode Lit ici, vous pouvez accéder à la visualisation de la mémoire tampon, puis à la couleur de base. Vous pouvez maintenant voir la véritable couleur de base de votre sol. Ce que vous pouvez faire, c'est cliquer dessus, utiliser le sélecteur de couleur, puis sélectionner la couleur du sol Je vais sélectionner celui-ci gris ici. Et je vais retourner dans mon ciel. Si je le minimise, va à la lucarne. Maintenant, vous pouvez voir que nous avons changé la couleur de l'hémisphère inférieur. Maintenant, si je reviens en mode éclairé, que je descends et que je n'oublie pas de cliquer sur recapture Parce qu'il faut récupérer l'éclairage. Maintenant, il fait rebondir le bon éclairage sur ces murs Très bien, permettez-moi de zoomer ici. Et je veux maintenant trouver un équilibre entre l' ombre et la lumière. Maintenant, si vous cliquez sur la lumière directionnelle et que vous modifiez l' intensité ici, cela augmentera ou diminuera la quantité de lumière. Si vous vous dirigez vers la lucarne et que vous augmentez ou diminuez la quantité ou l'intensité, le degré d'obscurité de ces ombres augmentera ou diminuera Je vais commencer par cliquer sur la lumière directionnelle, et je vais augmenter l'intensité peut-être environ sept. Maintenant, si je passe à nouveau à la lucarne, tu peux commencer par un, puis écrire 23 Vous pouvez essayer de l'augmenter légèrement juste pour voir à quoi il ressemble jusqu'à ce que vous soyez satisfait, n'est-ce pas ? J'ai joué avec l' intensité de la lucarne et de la lumière directionnelle Pour la lumière directionnelle, je l'ai mise à six, en fait, je vais la mettre à sept pour qu'elle ne ressemble pas à la nuit. En mettant ça à sept pour la lucarne, je le mets encore à cinq. Je l'ai juste légèrement augmenté ici jusqu'à ce que je sois satisfait lorsque je l'augmente à six. Je pense que c'était un peu trop clair, alors j'en ai réduit cinq. Et nous pourrons toujours le modifier plus tard. Ce n'est pas un problème, mais pour l'instant, je trouve que ça a l'air sympa. Nous pouvons voir à quoi ressemblent les ombres par rapport à l'éclairage. Et il suffit de le comparer au ciel. Regardez et voyez si tout semble réaliste. Jetez un coup d'œil à l'intérieur de ce tunnel pour voir si tout va bien. Je ne veux pas qu'il soit très sombre comme vous pouvez le voir ici. Si vous cliquez sur le volume après le traitement et que vous redescendez au lumen et à la distance de trace maximale, si vous le remettez à 2000, vous pouvez voir dans quelle mesure cela affecte l'éclairage Cela rend vraiment tout sombre et vous devez le diminuer à nouveau. Vous pouvez écrire 100 pour voir à quoi cela ressemble, mais pour le moment, c'est vraiment plat sur le sol. Si j'écris 200, 300, 400, vous pouvez voir que le sol a toujours l'air très plat. Et si nous continuons à augmenter ce chiffre, cela va paraître un peu trop sombre à un moment donné. Je vais donc, encore une fois, le remettre à 700. Et j'aime beaucoup ce numéro, donc je vais rester ici. Mais c'est comme ça que je fais habituellement l'éclairage. J'essaie d'abord de me diriger vers le feu directionnel. Essayez de trouver de belles ombres en faisant pivoter la lumière du soleil. Et puis je vais retourner ici dans la lucarne, comme avant Cliquez sur le bouton avancé correspondant à la lampe. Descendez dans l'hémisphère inférieur et changez la couleur du sol Cela coûte un éclairage correct et aussi pour le beau ciel. Nous avons modifié un peu les paramètres ici. Maintenant, vous pouvez voir si je regarde cette partie et que je m'éloigne, vous pouvez voir que tout d' un coup elle disparaît, le reflet rouge étant là. Si je me rapproche, vous pouvez le voir apparaître si je m'éloigne, vous pouvez voir qu'il y a un petit changement dans l' éclairage ici. Ce que vous pouvez faire ici, c'est jouer avec la distance en lumens Vous pouvez revenir au volume du post-traitement et vous pouvez descendre ici. Et nous avons quelque chose appelé Lumen Scene Detail. Si vous cliquez sur le détail de la scène lumen, si vous cliquez sur le mode éclairé, puis vous passez à la scène lumen et lumen Ainsi, dans la scène Lumen, vous pouvez réellement voir où le lumen affecte Encore une fois, le nouveau système d'éclairage du moteur Ural rend tout vraiment beau. Prenons cela comme exemple. Si ça devient noir, tu peux voir si je m'en éloigne. Cela signifie que le lumen ne fonctionne pas sur ce maillage pour le moment Si je me rapproche, ça marchera. Cela est censé se produire parce que nous ne voulons pas que le lumen fonctionne tout le temps, car à un moment donné, vous n'en avez le temps, car à un moment donné, vous pas vraiment besoin parce que vous êtes trop loin. Et nous n'avons pas vraiment besoin de renforcer les performances du jeu. Ce que nous pouvons faire ici pour que cela fonctionne un peu plus. Vous pouvez voir si je suis là, je voulais vraiment travailler sur certains de ces modèles également. Je ne veux pas que ce soit aussi extrême pour les détails de Slumencene Vous pouvez l'augmenter légèrement. Si vous l'augmentez beaucoup, cela fonctionnera sur tout même si vous êtes loin. Si vous l'augmentez, cela supprimera certains détails. Par défaut, vous pouvez le voir ici, si vous l'augmentez, cela augmentera en fonction du coût du GPU. Je ne veux pas trop l' augmenter, mais vous pouvez l'augmenter légèrement. Je vais cliquer et faire glisser juste pour l' augmenter légèrement jusqu'à ce que cela apparaisse quelque chose comme 1.2 C'est un changement intéressant. Vous pouvez voir que ça ressemble à ça quand je le mets à un, quand je le mets à 1.2. Permet également d'obtenir le métier à tisser dans les détails beaucoup plus rapidement qu'auparavant. Vous pouvez voir que lorsque nous en avions un, à ce moment-là, il était éteint. Si je le mets à 1.2, il est activé. Si je reviens au mode allumé, c'est beaucoup mieux maintenant. Très bien, donc avant de terminer, cliquons d'abord sur Construire et Construire tous les niveaux. Et assurez-vous simplement que tout est correct avec l' éclairage et les ombres. construction va encore une fois prendre un certain temps et je reviendrai une fois que l'éclairage aura été installé. C'est bon. Maintenant, il a fini construire l'éclairage et tout va bien. Maintenant, parfois, pour certaines personnes , l'éclairage est différent. Et c'est parce que cela peut être dû au fait que vous devez accéder aux paramètres et à l'évolutivité du moteur Et en ce moment, vous pouvez voir que je regarde tout dans Epic Graphics. Et c'est parce que j' ai un ordinateur rapide. Mais si votre ordinateur est lent, vous pouvez utiliser une égalité moyenne ou faible, par exemple . Mais à basse altitude, vous ne pouvez pas voir les ombres, mais vous pouvez aussi les utiliser. Si vous avez un ordinateur plus lent, j'en ai un rapide. Je vais opter pour le modèle Epic. Vous pourrez toujours le modifier ultérieurement lorsque vous exporterez le jeu. Mais Epic est généralement très lourd, donc vous devriez opter pour le high pour votre ordinateur s' il est un peu plus lent. Mais comme vous pouvez le constater, cette évolutivité du moteur affecte également l'éclairage, vous pouvez donc également le vérifier OK, pour la dernière étape, je vais cliquer sur ce volume de post-traitement. Maintenant, ce que nous pouvons faire, c'est changer un peu les couleurs. Nous pouvons donc cliquer sur cette température et vous pouvez la cocher ici. Ce briquet thermique et aussi cette teinte. Je vais donc baisser légèrement la température qu'elle devienne un peu plus bleutée. Environ 6 200, une très, très légère différence. Vous pouvez voir si je le coche et décoche, voici à quoi cela ressemble Juste une légère différence. Cela donne à tout un aspect un peu plus froid, plus bleu qu'à cause de la teinte. Si vous l'augmentez, vous verrez qu'elle paraîtra un peu plus orangée, un peu plus chaleureuse Maintenant, je ne veux pas que ce soit aussi extrême. Donc, si vous augmentez de 0,1, vous pouvez voir à quoi cela ressemble et vous pouvez le cocher et le décocher. Le changement. Cependant, je pense que c'est peut-être un peu trop pour l'instant. I 0,05 au lieu d'un ticket NFI et d'un ticket. Voilà à quoi ça ressemble. OK ? Il s'agit donc d'un très léger changement de couleur. Très bien, donc la dernière chose que je veux faire ici, vous pouvez voir que dans les paramètres globaux, vous pouvez également changer les choses. Par exemple, la saturation. Si votre jeu est trop désaturé, vous pouvez augmenter la saturation et tout deviendra beaucoup plus Désormais, vous n'avez plus besoin d'augmenter trop le réglage. Par exemple, vous pouvez le mettre à 1,1 et votre jeu sera légèrement saturé. Vous pouvez voir que cela lui donne un peu plus de couleur. Cependant, je vais m'en tenir à un pour le moment. Vous pouvez également augmenter le gain si votre jeu est trop sombre, afin d'augmenter le gain. L'ensemble du jeu sera beaucoup plus brillant qu'avant. Maintenant, pour moi, je vais m'en tenir à un pour celui-ci également. Je n'ai pas besoin de changer quoi que ce soit ici. Ce que je veux changer, c'est que je pense que les surfaces sont un peu trop claires et c'est en fait le point fort. Si vous allez sur Highlights ici et que vous cliquez, par exemple, sur le gain. Et vous pouvez voir ici que si vous augmentez ou diminuez le gain, vous augmentez et diminuez les couleurs ici. Si vous le mettez simplement à zéro, vous pouvez réellement voir ce que cela affecte. C'est le point fort. Cela affecte le surlignage au-dessus de ces modèles, 5.21 Je trouve que c'est un peu trop clair et ennuyeux à regarder Ce que vous pouvez faire, c'est le diminuer légèrement pour qu'il ne soit pas si brillant. Et c'est ennuyeux à regarder, peut-être quelque chose comme 0,60 0,56 Et vous pouvez voir si vous en écrivez un, voici à quoi il ressemblait Et si j'écris 0.6, voici à quoi cela ressemble. Maintenant, je pense que cela semble un peu mieux qu'avant, parce qu'avant, il faisait un peu trop clair sur la glace, et écrire 0.6 permet de résoudre ce problème. C'est ce que nous avons actuellement dans un niveau. Maintenant, pour celui-ci, nous pouvons ajouter un peu de floraison. Et je vais en fait ajouter un peu de fleurs à mon niveau. Il s'agit désormais d'une préférence. Vous ne pouvez pas non plus ajouter de fleurs à votre niveau. Certaines personnes n'aiment pas fleurir rivages à la première personne. Mais pour moi, je vais juste l'augmenter légèrement que vous puissiez simplement l'augmenter et voir à quoi il ressemble. Si vous en écrivez un, voici à quoi il ressemble. Cela lui donne cet effet de rêve. Si vous écrivez 01, je pense que c'est trop extrême. Si je le mets à 0,6 , vous pouvez essayer d' écrire 00.6 pour voir la différence Je pense que quelque chose comme 0,6 est la voie à suivre. Pas plus que ça, sinon ce sera un peu plus ennuyeux. Maintenant, nous pouvons voir à quoi cela ressemble ici. L'éclairage est vraiment bon. Vous pouvez voir combien cela coûte en plus de la houle ici, et vous pouvez également le voir à l'extérieur d'ici Essayez de regarder à l'intérieur, assurez-vous qu'il n'y a rien de noir. Tu peux voir l'ennemi si je rentre par ici. Maintenant, si vous pensez que ce tunnel est un peu trop sombre, vous pouvez toujours entrer par ici et cliquer ici. Accédez aux lumières, cliquez sur la lumière ponctuelle et créez une lumière ponctuelle ici. Et vous pouvez toujours le placer quelque part à l'intérieur de ce tunnel. Pour cette lumière ponctuelle, vous pouvez augmenter ou diminuer l'intensité et voir à quoi elle ressemble. Maintenant, c'est un peu trop clair sur ce point précis. Et je veux arranger les choses parce que, comme vous pouvez le voir ici, nous n'avons pas vraiment d'ampoule. Cela va donc sembler un peu étrange que cet éclairage soit si brillant ici. Donc, ce que vous pouvez faire, c'est que je vais en fait diminuer l'intensité. Je vais cliquer sur Avancé, et utiliser ici Inverse squared Fall off. En fait, je vais le désactiver ici. Maintenant que vous pouvez voir quand vous augmentez ou diminuez l'éclairage, vous pouvez maintenant augmenter l'intensité pour qu'elle soit bien supérieure à ce qu'elle était auparavant. Vous pouvez également diminuer l'intensité de cette atténuation. Et vous pouvez constater que cela met un peu plus l'environnement au lieu de se concentrer uniquement sur ce domaine spécifique. Maintenant, si je continue et que je clique à nouveau sur le point lumineux. Et je vais juste le laisser ici à deux heures pour l'exposant de perte de lumière Ensuite, je vais réduire l'intensité à quelque chose comme vous pouvez le voir. Il fait très, très clair maintenant parce que nous l'avons désactivé, nous avons abaissé l'exposant de perte de lumière et nous avons également désactivé celui-ci pour l'intensité Si vous n'en écrivez qu' un par exemple, vous pouvez voir la différence si vous l'activez et le désactivez Juste un léger effet pour s'assurer qu'il n'y ait pas de points noirs à l'intérieur de notre niveau. Vous pouvez maintenant jouer avec le rayon d'accentuation. Si vous cliquez sur, vous pouvez voir où cela se répercute. Donc, si vous augmentez ou diminuez le rayon d'accentuation, voici à quoi cela ressemble Je vais juste le mettre à quelque chose comme 2000, peut-être, quelque chose comme ça. Si vous cliquez sur, vous pouvez le déplacer comme ça. Essayez de le placer dans un endroit vraiment agréable où vous ne verrez pas vraiment qu'il y a une ampoule à l'intérieur d'ici. Et essayez également de jouer avec l'intensité. Je pense que c'est beaucoup trop clair, donc si je le mets à 0,5 pour que ce ne soit pas trop visible. Et tu peux cliquer sur cet œil pour le masquer et le montrer. Et vous pouvez voir à quoi cela ressemble, juste un léger effet. Mais vous pouvez voir ici que si l'ennemi se tient là et vous regarde, vous pouvez voir qu'il y a un peu plus de lumière. Et il est toujours plus facile de voir l'ennemi. Et c'est plus agréable à regarder. Maintenant, essayez simplement de contourner la lampe maintenant que vous avez fini de la placer. Et essayez de le placer dans un endroit où cela vous convient. Je trouve que la lumière estivale est belle ici. Je vais faire la même chose ici. Je vais maintenir la touche Alt enfoncée, cliquer et faire glisser pour le copier. Je vais également le placer ici, à l'intérieur de ce tunnel. Essayez de le placer quelque part au milieu. Ensuite, je vais le faire évoluer dans cette direction. Je vais juste y jeter un œil et voir comment cela affecte un endroit comme ici. C'est la même chose que ce que vous avez fait ici pour cet éclairage également. Cet éclairage, il est également au milieu. Assurez-vous simplement qu' il est au milieu et qu'il est placé ici. Pour l'autre, je vais le presser légèrement pour qu'il ressemble également à l'autre lampe. Maintenant que nous avons placé la lampe personnalisée juste pour qu'elle paraisse un peu plus lumineuse à l'intérieur, je pense que nous en avons terminé avec l'éclairage et voici je pense que nous en avons terminé avec l'éclairage et à quoi ressemble le niveau maintenant. 11. 2.07 Astuces pour l'optimisation de l'environnement: Avant de pouvoir dire que cet environnement est terminé, nous devons également examiner l'optimisation et assurer qu'il fonctionne nous assurer qu'il fonctionne correctement en tant que jeu lors de sa sortie. Pour voir l'optimisation, cliquez sur le mode couvercle ici. Passons aux modes d'affichage optimisés et commençons par celui-ci appelé Light Complexity. ce qui concerne la complexité de la lumière, comme son nom l'indique, nous examinons essentiellement comme son nom l'indique, la complexité de l'éclairage. Comme vous pouvez le voir ici, nous avons ici un dégradé, commence par le noir et le bleu, puis qui va jusqu' au rouge, violet et au blanc. Maintenant, si vous êtes ici dans le bleu, c'est une très bonne performance. Si vous êtes ici en violet et blanc, c'est une mauvaise performance et c'est mauvais pour votre jeu. Mais comme vous pouvez le constater, notre niveau est entièrement bleu. Et vous pouvez voir que c'est par ici. Et c'est vraiment bien optimisé en termes d'éclairage. C'est parce que nous n' utilisons pas autant de lumières. Nous n'avons que la lumière directionnelle , puis nous avons la lumière du ciel. Ils l'éclairent principalement comme vous pouvez le voir. Si j'y retourne, si j'éteins le feu directionnel et si j'éteins la lucarne, vous pouvez voir tout s'assombrir En fait, ce sont ces deux-là qui éclairent l'environnement. Maintenant, si je reviens à la zone de complexité légère , elle est verte. C'est parce que nous avons ajouté les ampoules. N'oubliez pas que nous avons cliqué ici dans les lumières et ajouté une lumière ponctuelle. C'est pourquoi il est vert. Celui-ci est plus exigeant en termes de performances que ce domaine. Cependant, ces performances restent faibles. C'est vraiment sympa. C' est bon pour ton jeu. Tu es toujours dans la bonne zone. Si je prends l'une des ampoules et celle-ci ici, si je prends cette icône, ce feu ponctuel, si je maintenais la touche Alt enfoncée et que je fais glisser le pointeur pour la copier, vous pouvez voir si je la copie et si je la place en dehors de ces autres points lumineux, c'est prêt. Cependant, si je commence à superposer les lumières, comme vous pouvez le voir ici, elles deviennent rouges maintenant. Et dans la zone orange. Maintenant, disons que c'était votre niveau, tout va bien. Cela n' affectera pas votre jeu. C'est toujours très bon. Cependant, si l'ensemble de votre jeu est rouge, comme ça, vous pourriez en faire l'expérience dans votre jeu. Cependant, si c'est juste une zone minimale votre niveau qui est rouge, ce n'est pas grave. C'est très bien Maintenant, si je le copie/colle à nouveau, vous pouvez voir qu'il devient ici, violet et blanc. Et si vous l'avez dans votre jeu, c'est vraiment nul. Lorsque vous optimisez votre jeu, essayez de réduire la quantité d'éclairage que vous utilisez. Vous pouvez donc les utiliser loin les uns des autres. Ainsi, vous pouvez superposer certaines d'entre elles. C'est bon. Cependant, n'essayez pas de superposer plusieurs lumières à la fois. Cela fera traîner votre jeu. Je vais supprimer tous les autres points lumineux que j'ai créés ici. Celui-ci et celui-ci également. À l'heure actuelle, notre niveau est vraiment bien optimisé. Passons donc à la densité de la carte de lumière. heure actuelle, il est encastré dans un vrai moteur. Peut-être qu'ils vont le réparer. Ces boîtes noires scintillantes ne sont pas censées être là. Peut-être qu'ils le répareront dans le futur. Mais pour l'instant, ignorez simplement ces lignes noires scintillantes dans la densité de la carte de lumière Ce qu'il vous montre ici en ce moment, c'est à nouveau bleu. Le bleu représente la résolution. Et c'est bon pour vos performances de jeu. Si quelque chose est très rouge comme ça, c'est mauvais pour vos performances. Nous passons du bleu au rouge. Il y a un dégradé. Il passe donc du bleu au vert légèrement, puis il passe à l'orange, puis au rouge. À l'heure actuelle, quelle est la densité de la carte lumineuse ? Quelle est la densité de la carte lumineuse ? Vous pouvez augmenter la résolution de la carte de lumière pour chaque modèle. Et cela augmentera le niveau détail de votre ombre sur le sol. Si la résolution de votre ombre au sol est très faible, c'est parce que la résolution de la carte de la lumière du sol est faible. Cela peut en être la cause. Ce que nous voulons faire, c'est passer à la densité de la carte de lumière et l'augmenter. Le bleu est une très faible résolution pour une carte lumineuse. Nous devons augmenter la résolution pour les ombres soient belles lorsqu'elles atteignent les maillages, par exemple. C' est vraiment bien. Nous voulons viser cette couleur verte. Ce que je veux faire, c'est cliquer sur ce terrain. Vous pouvez trouver ce terrain ici dans le navigateur de contenu. Cependant, si vous ne le trouvez pas, vous pouvez cliquer sur le sol. Et vous pouvez cliquer sur cette icône ici, et cela vous mènera à ce maillage au sol. Maintenant, double-cliquons et ouvrons-le ici dans le panneau des détails. Cherchons une carte lumineuse. Vous pouvez maintenant voir la résolution de la carte de lumière et la résolution minimale de la carte de lumière. Maintenant, je dois cliquer sur autre chose. Je ne vois pas cette couleur rose, il suffit de cliquer sur autre chose. Je peux voir la couleur bleue du sol ici. Maintenant, si vous augmentez simplement la résolution de la carte lumineuse à quelque chose comme d'habitude, nous la multiplions par deux, vous pouvez dire 128. Maintenant, vous pouvez voir que c'est moins bleu. Maintenant, si je recommence, je le multiplie par deux. Maintenant, au lieu de simplement écrire le nombre, ce que vous pouvez faire, moteur vraiment sympa et irréel, vous pouvez dire « multiplier par deux », puis appuyer sur Entrée Et il va le faire automatiquement. Maintenant, vous pouvez voir que la résolution est plus élevée qu'avant. Avant tes 64 ans, tu. Basse résolution. Maintenant, lorsque nous le multiplions par deux, multiplié par deux, je veux toujours le multiplier par deux, car il s'agit toujours d'une faible résolution multipliée par deux. Maintenant c'est beaucoup mieux. Je m'arrêtais parfois ici parce que c' est également agréable. Mais ce que je veux faire, c' est simplement le multiplier par deux pour voir à quoi cela ressemble également. C'est la couleur que j'ai l' habitude de choisir dans mes jeux. C'est toujours dans la zone de basse résolution, mais cela donnera une belle apparence à vos ombres tout en optimisant votre jeu. Je n'aime pas rendre mes modèles très verts comme ça. J'aime rester dans la zone vert bleuté. Ça a toujours l'air bien avec les ombres. Résolution 1024, résolution de la carte lumineuse pour le sol. Et n'oubliez pas de copier ce numéro et de le coller dedans. La résolution minimale de la carte lumineuse également. Ensuite, vous pouvez continuer et le fermer. Et il vous demande si vous voulez l'appliquer. D'accord ? Cliquez ensuite sur Oui. C'est ce que vous devez faire pour tous les autres modèles. Prenons par exemple un autre exemple. Cliquons sur celui-ci ici. Cette bague est là. C'est cette bague ici. Double-cliquez dessus, ouvrez-le. Light Map Resolution, la voici. Maintenant, cliquons sur autre chose pour que nous puissions réellement voir la couleur. Écrivons deux fois. La résolution est toujours faible. Multiplions-le encore une fois par deux. Multiplions-le encore une fois par deux. C'est vraiment très bien. Je pense que ce sera trop élevé si je le multiplie par deux. Vous pouvez voir maintenant que c'est vert et orange. Celui-ci. C'est toujours une bonne performance. Cependant, je pense toujours que cette performance est trop élevée. N'oubliez pas que plus vous augmentez la résolution de la carte lumineuse, plus le nombre d'images par seconde augmentera. Et la performance, je dirais de la diviser par deux et de rester ici au maximum. Je vais également copier ce numéro ici. Et je vais le fermer et l'appliquer maintenant. Allez-y et faites-le pour tous les modèles que vous utilisez dans le jeu. Je vais passer à autre chose et essayer de le faire pour tous les modèles que j'ai ici. J'ai fini de tous les ajuster, et comme vous pouvez le voir, voici à quoi cela ressemble. Maintenant, vous pouvez voir que certains d'entre eux sont encore en très basse résolution. Par exemple, ce mur ici. Cependant, ce mur est aussi cette boîte qui a l'air très verte. Vous pouvez voir que si j'ouvre la case Supercrid et que je recherche la résolution de la carte lumineuse, je peux l'augmenter Par exemple, multipliez-le à nouveau par deux et multipliez-le à nouveau par deux, et ce mur sera en haute résolution. Cependant, vous pouvez voir que ces cases sont toutes rouges et rouges maintenant. Et ce n'est vraiment pas bon. En effet, plus vous agrandissez un élément, plus sa résolution sera faible. Par exemple, revenons en fait à 128 auparavant. Si je le place ici dans le niveau, vous pouvez voir qu'il est maintenant vert. Cependant, si je prends l' outil de mise à l'échelle et que je l' agrandisse, la résolution paraîtra inférieure. Si je l'agrandis davantage, vous pouvez voir qu'il a maintenant une résolution inférieure à celle d'avant. Plus vous agrandissez l'objet, plus sa résolution sera faible. Cependant, tout va bien jusqu'à présent. Et si je reviens simplement au mode éclairé et que vous pouvez faire, c'est enregistrer le niveau, puis cliquer sur Construire et construire tous les niveaux. Et c'est juste pour s'assurer que tout l'éclairage est intégré, toutes les ombres sont cuites et que tout semble correct. Cela va prendre un certain temps ici. Cela va prendre un peu plus de temps qu'avant car vous avez augmenté la densité de la carte lumineuse. Cependant, vous pouvez constater que le niveau est toujours très optimisé. Cela n'a donc pas pris de temps et c'est déjà terminé. À l'heure actuelle, l'éclairage est en haute résolution ici au sol, plus qu'auparavant. Il a l'air de meilleure qualité qu'avant. Cela est dû au fait que nous avons augmenté la densité de la carte lumineuse. Revenons maintenant ici dans les modes d'affichage optimisés. Ensuite, nous avons le chevauchement de la lumière stationnaire. Comme vous pouvez le constater, nous n'en utilisons pas beaucoup. Nous voici dans la zone verte. Vous pouvez voir que c'est très optimisé. Si nous passons à la complexité du shader, encore une fois, cela semble vraiment beau Il n'y a pas de quoi s' inquiéter si je passe, en fait, je passe juste à l'overdraw pour les quads Au lieu de les assembler, je vais opter pour le quad overdraw Et voici les trois modèles D que vous utilisez. Il va examiner le nombre de triangles que vous utilisez par modèle, mais nous n'en avons pas beaucoup. Vous pouvez voir que c'est vraiment très optimisé. L'ensemble de votre niveau est actuellement optimisé. Et si vous passez en mode Lit maintenant, maintenant que nous avons terminé le niveau, tout est optimisé. Et si je passe aux images par seconde, si je clique ici, affiche les images par seconde. Et sachez que 120 images par seconde, c'est le maximum ici dans Unreal Dans la fenêtre d'affichage ici, vous devez exporter votre jeu sous forme de fichier EXC Par exemple, si vous voulez le sortir sur Steam et qu'il aura un nombre d'images par seconde plus élevé, mais qu'à l'intérieur du moteur lui-même, il est bloqué à 120, n'est-ce pas ? Tout est donc vraiment bien optimisé. L'ensemble du niveau fonctionne à un FPS maximum. Et nous avons également optimisé le niveau. Nous sommes donc prêts à continuer. 12. 3.01 Importer les personnages: Bien, il est maintenant temps d'importer les personnages. Maintenant, pendant le cours, nous allons importer plus de choses. Par exemple, les armes et les animations. Mais allons-y étape par étape. Commençons par les personnages. Ouvrons le lanceur Epic Games. À l'intérieur, je veux que vous cliquiez sur l'onglet Marketplace. Désormais, dans le Marketplace, vous pouvez trouver des actifs que vous pouvez utiliser pour le jeu. Vous pouvez voir qu'ils créent très belles choses que vous pouvez utiliser. Bien entendu, c'est en grande partie pour de l'argent. Cependant, ce que nous allons faire, c'est cliquer sur Parcourir et accéder à Personnages. Ensuite, nous allons cliquer sur le lien gratuit ici pour que le prix maximum soit gratuit. Maintenant, à l'intérieur d'ici, je vais utiliser celui-ci appelé Military Doc et Military Silva. Cependant, vous pouvez également utiliser d'autres personnages. Vous pouvez utiliser celui-ci si vous le souhaitez, vous pouvez utiliser celui-ci si vous le souhaitez. Cela n'a pas vraiment d'importance. Tu peux utiliser celui-ci. C'est à vous de décider. Cependant, je vais utiliser ces deux, donc je vais cliquer sur le premier. Ensuite, allez-y et cliquez sur Télécharger. Si vous ne l'avez pas encore téléchargé, le message « Télécharger ici » s'affichera. Allez-y et cliquez sur Télécharger. Vous pouvez ensuite cliquer sur Ajouter au projet. Maintenant, vous pouvez le voir ici, c'est vide, et c'est parce qu'il n'est compatible qu' avec Unreal Engine 4.8 à 4.27. Il s'agit d'une très ancienne version Ce n'est même pas Unreal Engine Five. Cependant, nous pouvons toujours l'utiliser pour notre jeu. Allez-y, cliquez sur Ajouter au projet, puis sur Afficher tous les projets. Ensuite, vous pouvez sélectionner notre projet. Et maintenant, il est dit qu'il n' est pas compatible avec Unreal Engine 5.2. Vous devez donc sélectionner une autre version Cliquez ici et sélectionnez la dernière version d'Unreal Engine Maintenant, allez-y et sélectionnez-le. Et allez-y, cliquez sur Ajouter au projet. Maintenant, cela va entrer dans le projet, si vous voyez ici, si je reviens à mon jeu ici, si je clique dessus, vous pouvez voir qu'il fait maintenant partie du projet et que je peux utiliser ce type dans mon jeu. Ce n'est pas grave s'il n'est pas compatible, nous pouvons toujours l'utiliser pour le jeu. Revenons en arrière et passons à l'autre, celui-ci en argent. Encore une fois, allez-y et cliquez sur Télécharger. Et une fois que vous l'avez téléchargé, cliquez sur Ajouter au projet, Afficher tous les projets. Sélectionnez notre projet et sélectionnez la dernière version avec laquelle il est compatible. Allez-y et cliquez sur Ajouter au projet, et celui-ci sera également ajouté au projet. Nous avons maintenant les deux personnages. Nous avons ce document militaire. Nous avons cette pièce d'argent militaire que nous pouvons utiliser pour le jeu. Très bien, voici comment vous importez des choses depuis le marché. Il suffit de les télécharger et de les ajouter à votre projet. Et s'ils ne sont pas compatibles, pensez à afficher tous les projets, sélectionner le projet et à sélectionner également la version avec laquelle il est compatible. Maintenant que nous avons importé les personnages, passons à la leçon suivante. 13. 3.02 Classes de plans pour les parents et les enfants: Nous sommes maintenant prêts à travailler avec des plans. Créons un dossier ici, cliquez avec le bouton droit de la souris. Accédez au nouveau dossier et appelez celui-ci blueprints à l'intérieur de ce dossier de plans Cliquez avec le bouton droit de la souris et sélectionnez la classe Blueprint. Nous allons maintenant créer un personnage. Je vais donc sélectionner cette classe Aca. Cependant, si vous n'êtes pas familier avec les classes Blueprint, le premier est un acteur. Et l'acteur n'est qu'un acteur qui peut être placé dans le monde. Par exemple, une table, une chaise, une bouteille, juste un acteur statique qui est juste là. Le pion est quelque chose que tu peux contrôler. Par exemple, si vous avez une balle qui roule, c' est votre joueur. Vous pouvez donc contrôler cette balle dans votre niveau car un pion peut être possédé Possédé signifie que le joueur peut contrôler cette classe de plan à l' aide du clavier et de la souris Nous allons maintenant créer un personnage parce qu'il a la capacité de se déplacer. Vous pouvez vous imaginer comme un être humain avec deux bras deux jambes qui se promène. Ensuite, vous devez sélectionner le personnage. Si votre personnage n'est qu'une balle qui roule, il suffit d'y aller avec une patte Cependant, nous avons des personnages, alors allez-y et cliquez sur le personnage. Et je vais l'appeler BP Player Base. Maintenant, pourquoi ne l'ai-je pas simplement appelé BP Player ? Pourquoi l'ai-je appelée « base de joueurs BP » ? C'est le sujet de cette leçon. Il s'agit de cours pratiques pour parents et enfants. Maintenant, je vais d'abord le créer ici. Avant de l'expliquer, faisons un clic droit sur cette base de joueurs BP et créons une classe de plan pour enfants Appelons celui-ci BP Terrorist. Faisons à nouveau un clic droit dessus et appelons-le BP sous Terrorisme. D'accord. C'est ce que sont les classes modèles pour parents et enfants heure actuelle. Nous l'avons fait, nous avons créé une classe de blueprint À partir de là, nous avons écrit, cliqué et créé un cours de plan pour enfants Ce que cela fait, c'est que si je modifie les paramètres dans cette classe de plan parent, ces modifications seront répercutées dans la classe de plan antiterroriste et dans la classe de plan terroriste Disons que je suis entré dans la base de joueurs à l'intérieur d'ici. Je suis passé à la composante de mouvement du personnage , puis j'ai modifié la vitesse de marche maximale. Disons que je voulais que mon personnage marche plus lentement. Je suis donc allée ici et j'en ai écrit 250. J'ai réduit la vitesse. J'ai cliqué sur Compiler pour enregistrer mes paramètres ici, puis je suis passé à, vous pouvez voir qu'ils ont maintenant cette étoile Et l'étoile signifie qu'ils ont besoin d'être sauvés. Si vous cliquez sur Counterterrorist, vous pouvez voir si je clique sur la composante de mouvement du personnage, elle est également désormais sur 250 Il l'a fait automatiquement. Et si je passe également à la composante terroriste, qui concerne les mouvements du personnage, le maximum de pièces Wx est également de 250 Vous pouvez voir que si vous modifiez des éléments dans la classe de plan parent, tous ses enfants modifieront également ce paramètre Cela vous fera gagner beaucoup de temps. Disons, par exemple, Quinzaine. Si vous jouez à Fortnight, disons que vous êtes un développeur de Fortnight Vous avez cette base de joueurs , puis vous avez tous les skins. Dans Quinzaine, vous avez tous les skins. Tous les skins de joueurs que vous contrôlez. Lorsque vous modifiez un paramètre dans la base de joueurs, cela change le paramètre de tous les skins. Disons encore une fois, par exemple, la vitesse à laquelle ils marchent. Au lieu de modifier la vitesse de marche de chaque personnage en quinze jours, il est très facile de passer dans la classe de plan parent, de modifier la vitesse, et cela aura effet sur tous les enfants du plan directeur D'accord, c'est pourquoi nous créons des classes de plan pour parents et des classes de plan pour enfants . Par exemple, le mouvement, nous allons effectuer le mouvement avec le clavier situé à l'intérieur de la base de joueurs, car nous n'avons pas besoin de coder le même mouvement dans le contre-terroriste et le même mouvement dans le Quand ils ont exactement le même mouvement, ils bougent de la même manière. Que vous soyez un antiterroriste ou que Terris ne compte pas, le mouvement est le même Et c'est pourquoi il est préférable de le faire dans la base de joueurs, il suffit donc de le faire une seule fois. OK, je vais changer le maximum, revenir à 600 et la base de joueurs compilée, comme vous pouvez voir dans la lutte contre le terrorisme et le terrorisme, elle sera ramenée à 600. C'est ainsi que nous allons travailler. Nous allons principalement faire les choses dans le cadre de la clause du plan directeur pour les parents et lorsqu' ils ont des choses spécifiques qui ne sont pas similaires, nous allons les faire avec les enfants d'ici Mais pour l'instant, c'est l'explication de base. Sauvegardons tout et quand tout sera sauvegardé, passons à la leçon suivante et configurons le personnage. 14. 3.03 Paramétrer le personnage: Pour définir le personnage. Commençons par le terriste ici sur le terris Cliquons sur Ouvrir l'éditeur de plan complet. Ce visualiseur s'affiche chaque fois que le plan est vide et que vous l'ouvrez pour la deuxième fois Cliquez ensuite ici dans l' éditeur Open full blueprint et vous serez retour ici dans la vue normale dans la fenêtre d'affichage Si vous cliquez ici dans les composants, cliquez sur le maillage. Et puis, à droite, vous pouvez voir que vous pouvez ajouter un actif de maillage squelettique. Vous pouvez maintenant cliquer dessus ici, et vous pouvez sélectionner le personnage. Ce que vous pouvez faire, c'est également sélectionner le dossier que vous avez importé. Et vous pouvez également cliquer et faire glisser le personnage dans ce composant de maillage ici. Vous pouvez soit les sélectionner ici, soit simplement les cliquer et les faire glisser ici. Par exemple, je vais utiliser celui-ci, le terroriste masculin, et je vais cliquer dessus et le faire glisser ici pour l'attribuer. Comme vous pouvez le voir, je vais faire de même pour le terroriste. Double-cliquez dessus. Ouvrez l'éditeur de plan complet ici. Cliquez sur le maillage. Accédez à la fenêtre d'affichage, juste pour que je puisse voir ce que je fais ici Cliquez ici et vendez. Sélectionnez la femme. Cela dépend de vous, peu importe ce que vous choisissez, mais je vais sélectionner celui-ci, le personnage masculin de la lutte contre le terrorisme. Maintenant, vous pouvez voir que les personnages sont censés être orientés dans cette direction, là où apparaît la flèche bleue. Ils font fausse route. Encore une fois, je vous ai parlé des cours pratiques pour parents et enfants Au lieu de les faire pivoter ici et ici, vous pouvez tout faire en même temps dans la base de joueurs. Si j'ouvre la base de joueurs et que je passe dans la partie vue, je clique sur le maillage. Cliquez sur E sur le clavier pour accéder à l'outil de rotation, puis il s'enclenche J'ai mis ce cliquetis dessus et j'ai fait pivoter de 90 degrés à 90 degrés. Cela les fera avancer de cette façon. Si je clique sur Compiler et que je clique sur chacun d'eux, vous pouvez voir qu'ils sont tous les deux pivotés. C'est pourquoi il est agréable de perdre un parent. Vous pouvez donc modifier un paramètre et il s'appliquera à tous. Maintenant, ce que nous devons faire également, placer le pied de ces personnages au bas de la capsule. On ne peut pas vraiment le faire ici. Nous devons le faire pour chacun d'entre eux. Tu peux le faire. Essayons vraiment. Faisons-le simplement. Cliquons sur le maillage. Et cliquez sur le maillage squelettique ici. Attribuez simplement un caractère aléatoire ici. Nous n' allons pas vraiment nous inquiéter pour le personnage, car nous allons également le supprimer. Cliquez donc sur ce personnage. La meilleure façon de procéder est de passer à la vue en perspective ici. Et cliquez sur, Commençons par la vue de face, par exemple. Vous pouvez zoomer et faire glisser ce personnage vers le bas. Juste comme ça, vous pouvez voir la capsule ne remplit pas vraiment tout ce personnage. Donc ce que je vais faire c'est cliquer sur la capsule. Et la moitié de la hauteur de la capsule, je vais l'augmenter légèrement, 93 ou quelque chose comme ça. Cliquez sur le personnage. En fait, je vais passer à la bonne vue. Je pense que c'est beaucoup plus facile de visualiser et de simplement faire glisser ce personnage. Le pied est donc en bas. Vous pouvez imaginer que c'est le sol. Le sol est là. Là où il atteint ce point, je vais le faire glisser vers le bas. Donc, le pied est dans le sol, juste comme ça. Il n'est pas nécessaire que ce soit précis à 100 %. Vous pourrez toujours l'ajuster ultérieurement. Mais ce n'est qu' un bon début. Il n'est pas vraiment nécessaire que cela remplisse tout cela. Capsule de collision. Ce composant de capsule est généralement utilisé en cas de collision. Par exemple, dans les jeux à deux ou trois D, si vous voulez toucher le joueur, il sera touché par ce composant de la capsule. Cependant, dans notre jeu de tir multijoueur à la première personne, nous allons créer un système de collision plus avancé pour les bras et les jambes, etc. Parce que vous pouvez voir dans ce jeu, si nous avons cette capsule comme collision, lorsque vous frappez le joueur. Vous pouvez réellement toucher le joueur si la balle est tirée ici. Et cela n'a pas vraiment de sens. Nous allons donc créer un système de détection des impacts plus avancé. Ainsi, le joueur ne sera touché que s'il est réellement touché au bras et non pas ici. Celui-ci n'a pas vraiment d' importance pour le moment. Il n'est pas nécessaire que ce soit totalement précis, mais j'aimerais le voir dans le bon angle, faire en sorte que le produit touche le sol comme ça du mieux que possible. Si vous passez à la vue de face, vous pouvez essayer de réduire légèrement la capsule. Il s'agit de son corps, juste comme ça. OK, cliquons sur Compiler maintenant. Allons voir le contre-terroriste. Regarde à quoi ça ressemble. Si je prends le bon point de vue. Vue de face, jetez un œil. Ça a l'air bien. Si je passe à la compilation sur les terroristes, jetez simplement un coup d'œil à la perspective. Adoptez le bon point de vue. un coup d'œil à l'antiterroriste Celui-ci a l'air bien aussi. Vous pouvez voir que nous avons tout créé ici, dans la base de joueurs, et maintenant ils sont appliqués à tous les futurs personnages que nous créerons. Supposons maintenant que vous vouliez créer un autre personnage dans le futur. Ce que vous devez faire, c'est simplement cliquer ici avec le bouton droit de la souris et créer une nouvelle classe de plan pour enfants Supposons par exemple que nous l'appelions EP et qu' il y ait un terroriste appelé Phoenix. Vous pouvez entrer un nouveau personnage ici et cliquer sur ce type sur ce maillage pour le remplacer par ce personnage de Phoenix. Par exemple, ce personnage féminin pourrait être Phoenix. Et vous pouvez voir à quel point il est facile de créer de nouveaux personnages. Tous les paramètres sont appliqués. Supposons que pour ce personnage, certains paramètres doivent être modifiés. Ensuite, vous pouvez simplement entrer dans ce personnage et ajuster ce personnage. Vous pouvez très bien ajuster les plans de ces cours pour enfants très bien ajuster les plans de ces cours Vous n'avez pas à vous fier uniquement aux paramètres de la base de joueurs. Vous pouvez ajuster chacune d' entre elles si vous le souhaitez. Cependant, vous pouvez voir que c'est vraiment bien que nous ayons déjà fourni les paramètres de base (Paramètres par défaut et cela facilite notre travail. Maintenant, fermons tout. Je vais supprimer celui-ci. C'était juste pour vous montrer et je vais revenir dans la base de joueurs, que nous devons également ajouter une caméra, car en ce moment le personnage est là. Cependant, nous n'avons pas de caméra à travers laquelle le joueur peut regarder. Nous allons cliquer sur le maillage ici, passer à D. Ensuite, nous allons ajouter ce que l'on appelle un ressort à ressort. Le bras est juste un support pour l'appareil photo. En cliquant sur le ressort, allez D, puis recherchez une caméra. Vous pouvez ensuite sélectionner cette caméra. Vous pouvez maintenant voir que nous avons un bras à ressort, et à l'intérieur du bras à ressort se trouve une caméra. Maintenant, en cliquant sur le ressort, je vais cliquer sur mon clavier pour accéder à l'outil de rotation, puis je vais faire pivoter la caméra pour qu'elle se trouve derrière le personnage. Pour l'instant. Je vais juste le traîner vers le haut. Juste quelque chose comme ça n'a pas vraiment d'importance pour le moment. Nous allons régler la caméra plus tard. Mais pour l'instant, je veux juste voir mon personnage quand je suis dans le jeu. Ce que vous pouvez faire, c'est que vous pouvez le voir ici si vous, par exemple. Maintenant, vous pouvez voir que cela s' applique en fait aux deux, la terris et à la lutte contre le terrorisme, parce que ce sont des enfants Vous pouvez constater que les deux ont maintenant un bras à ressort, aussi bien le terrist que le contre-terist Mais ce que vous pouvez faire, c'est cliquer et faire glisser la terrasse du comptoir, par exemple, dans le niveau. Si vous cliquez sur le personnage, vous pouvez voir que vous avez une vue ici. Et c'est parce que vous venez d'ajouter une caméra. Vous pouvez voir à quoi ressemble ce personnage vu de dos. Comme d'habitude, ici dans la base de joueurs, je vais cliquer sur le bras à ressort. Et je vais régler la longueur du bras à environ 600, donc c'est un peu éloigné du personnage. Ensuite, je vais cliquer sur le personnage, et vous pouvez voir à quoi il ressemble. J'aimerais développer mon jeu de tir à la première personne de cette façon d'abord et plus tard. C'est très simple. La différence entre un jeu de tir à la troisième personne et un jeu de tir à la première personne est simplement que vous pouvez cliquer sur le bras à ressort et régler la longueur du bras cible à zéro. Et puis vous considérez ce jeu comme un mode à la première personne. Mais pour l'instant, puisque nous nous occupons des mouvements du joueur, j'aimerais commencer par une longueur de bras cible de 600, afin que nous puissions voir tous les mouvements que nous effectuons j'aimerais commencer par une longueur de bras cible de 600, afin que nous puissions et voir si nous faisons les choses correctement. C'était pour asseoir le joueur. N'oubliez pas de compiler et de sauvegarder l'ensemble de votre travail. Passons à la leçon suivante. 15. Mode de jeu et manette du joueur 3.04: Chaque jeu que tu crées. Quel que soit le jeu, vous avez toujours un mode de jeu et une manette Player. Cliquons sur le dossier Blueprint. Avant de faire quoi que ce soit , créons un nouveau dossier à l'intérieur d'ici, et appelons-le Player. Je vais les prendre tous ici, les ajouter à l'intérieur, les déplacer dans le dossier Player. Nous sommes donc un peu plus organisés ici dans le dossier des plans Cliquez avec le bouton droit de la souris et créons une nouvelle classe de plan. Sélectionnons une manette Player. Un contrôleur de joueur, ce que nous faisons habituellement à l'intérieur d'ici, c'est de créer l'interface utilisateur, puis apparaître des éléments à l'intérieur d'ici Par exemple, si le joueur laisse tomber une arme dans le monde, nous faisons apparaître cette arme dans le monde, faisant apparaître des objets à l'intérieur de la manette du joueur et l'interface utilisateur se trouve également à l'intérieur de la manette du joueur Allons-y, cliquons et créons un contrôleur de joueur. Et je leur donne généralement préfixe EC pour manette de joueur, puis je l'appelle le nom du jeu Le jeu est Counterstrike, je vais juste l' appeler Under Strike, puis cliquer à nouveau avec le bouton droit Accédez à la classe Blueprint , puis créez un mode de jeu. Et généralement, le mode de jeu sert à créer les règles et le score des parties. Par exemple, combien de secondes par tour et quel est le mode de jeu , par exemple, capturer le drapeau, etc. Alors allez-y, créez le mode de jeu, et appelons-le GM pour le mode jeu. Et encore une fois, je vais l'appeler le nom du jeu Hound, A Strike Donc ce que je veux que tu fasses c'est double-cliquer sur ce mode de jeu. Et nous avons besoin de quelques réglages initiaux à l'intérieur d'ici. En mode jeu, vous pouvez voir que nous avons dans la classe par défaut la classe Player Controller Il s'agit simplement du contrôleur Unreal Engine Player par défaut. Nous voulons cliquer dessus, remplacer par notre propre loi de contrôle des joueurs personnalisée que nous venons de créer. Il en va de même pour la classe par défaut. Plus tard, nous n' aurons personne, nous n'en sélectionnerons aucun. Cependant, nous n'avons pas vraiment d' écran de sélection des personnages pour le moment. Ce que je veux faire, c'est simplement apparaître, par exemple, en tant que terroriste ou contre-terroriste Je vais juste sélectionner Counter Terrorist. Plus tard, nous allons le supprimer car nous aurons un écran de sélection des personnages vous pourrez sélectionner le personnage sous lequel vous souhaitez apparaître Mais pour l'instant, apparaissons en tant que contre-terroristes, car nous n' avons pas d'écran de sélection des personnages Maintenant, fermons-le. Passons aux paramètres d'édition et de projet. À l'intérieur, nous avons les cartes et les modes. Dans les cartes et les modes, vous devez changer de mode de jeu. heure actuelle, il est réglé sur la base du mode de jeu, qui n'est que le mode de jeu de base d'Unreal Engine Cependant, je souhaite le remplacer par notre propre mode de jeu personnalisé. Et en cliquant sur cette petite flèche pour le mode de jeu sélectionné, assurez-vous simplement que la clause de points par défaut correspond au contre-terrorisme que nous avons sélectionné et que la manette du joueur est également la nôtre. Maintenant, si vous le souhaitez, vous avez remarqué que si vous fermez et ouvrez le moteur, il vous placera sur la carte par défaut du monde ouvert. Vous pouvez également modifier cela dans les cartes et les modes. La carte de démarrage de l'éditeur, je peux la changer pour qu'elle soit cette carte, cette carte que nous avons créée également pour la carte par défaut du jeu, nous pouvons également la remplacer par celle-ci. OK, fermons ça. Enfin, allez-y et cliquez sur les paramètres mondiaux. Maintenant, si vous ne voyez pas l'onglet, vous pouvez cliquer sur Fenêtre, puis sur Paramètres mondiaux, et vous pourrez le voir. Alors allez-y, cliquez sur World Settings, et dans le mode jeu override, cliquez sur celui-ci et sélectionnez notre mode de jeu comme celui-ci Il est très important que vous fassiez tout cela car sinon vous ne pourrez pas apparaître le joueur dans le monde Maintenant, si je supprime ce joueur, c'est juste quelqu'un que je viens placer dans la leçon précédente. Il faut qu'un joueur commence avant de pouvoir réellement apparaître à l'intérieur d'ici Je vais cliquer ici, passer à Notions de base et sélectionner un joueur pour démarrer. Je vais cliquer sur G pour voir les icônes. Je vais le déplacer comme ça vers le bas, dans le monde. Quelque chose comme ça ici. Vous pouvez voir ici que si vous le mettez sous terre, cela indiquera qu'il est de mauvaise taille. Assurez-vous simplement qu'il est au-dessus du sol. Quelque chose comme ça. Vous pouvez maintenant cliquer sur jouer, et cela devrait faire apparaître votre personnage Si elle ne s'affiche pas, veuillez regarder cette vidéo à nouveau. Assurez-vous que le mode de jeu se trouve dans le monde, le réglage se trouve dans les paramètres du projet, etc. Mais maintenant, vous pouvez voir que nous apparaissons en tant que personnage et nous cliquons sur Jouer Et ça a vraiment l'air cool. Voici Lumen. Vous pouvez voir le lumen, fait un loup le prendre depuis la surface D'accord, nous avons maintenant ajouté le mode de jeu et la manette du joueur. Et allons-y, établissons le contexte de mappage des entrées et ajoutons du mouvement au joueur. 16. 3.05 Cadre de la cartographie des entrées: Allons-y et commençons par le contexte de mappage des entrées où nous pouvons ajouter le mouvement du joueur. Allons-y et entrons dans le dossier du lecteur. À l'intérieur, je vais cliquer avec le bouton droit de la souris et créer un nouveau dossier appelé Input. J'ai juste mal orthographié cette entrée juste comme ça à l'intérieur d'ici Ouvrons-le, cliquons avec le bouton droit de la souris, accédons à Input et créons celui-ci appelé contexte de mappage d' entrée. D'habitude, j'appelais IMC comme préfixe et je vais simplement l'appeler Maintenant, avant de pouvoir l'utiliser, vous pouvez voir si je l'ouvre , il est vide. Si je clique sur ce bouton plus ici pour ajouter une touche à mon mouvement, par exemple, vous pouvez voir que rien n'est indiqué, et je ne peux rien sélectionner. C'est parce qu'il veut une action d'entrée. Donc, ici, cliquez avec le bouton droit de la souris, passons à la saisie et sélectionnons l'action de saisie. C'est ce que nous allons appeler le mouvement. Maintenant, pour celui-ci, je vais l'ouvrir. Cette action de saisie, la seule chose que nous devons vraiment changer ici , c'est le type de valeur. Le type de valeur, vous pouvez cliquer dessus et vous pouvez voir que vous avez ces différentes options. Ce que nous allons faire, c'est avancer et reculer pour notre personnage dans le jeu Si je place le personnage à l'intérieur d'ici, le personnage va se déplacer d'avant en arrière. Il s'agit d'un axe. Le personnage va se déplacer à gauche et à droite. C'est le deuxième axe. C'est pourquoi je vais choisir un axe deux D, car nous avançons arrière et aussi vers la gauche et la droite, qui sont le deuxième axe. Alors je vais économiser ici. Revenons au contexte du mappage des entrées. Nous pouvons maintenant cliquer ici et ajouter notre action de saisie que nous venons de faire. OK, minimisons ça pour le moment. Au lieu d'ici, vous devez attribuer une clé. Je veux avancer avec ma touche W. Ce que vous pouvez faire, c'est appuyer ici et rechercher. Et puis vous pouvez voir que c'est le clavier. Vous pouvez sélectionner le W. Une autre méthode plus simple pour le faire est de cliquer sur le signe plus haut. Maintenant, je veux revenir en arrière avec ma touche S. Au lieu de cliquer ici, d'écrire et de trouver votre touche S. Parfois, cela peut prendre un certain temps. Ce que vous pouvez faire, c'est cliquer sur cette icône, puis sur le clavier qui attribuera cette touche. Maintenant, pour me déplacer à gauche et à droite, je vais aller sur deux d'entre elles ici pour la droite, je vais cliquer ici et cliquer sur D pour la gauche. Je vais cliquer ici et cliquer sur A sur mon clavier. Maintenant j'ai ces clés. Je veux aussi ajouter si je veux ajouter le mouvement de la souris. Je vais créer une nouvelle action de saisie. Je vais aller ici, cliquer avec le bouton droit de la souris, accéder à la saisie et créer une nouvelle action de saisie. Je vais l'appeler. Écoutez, cherchant à nouveau celui-ci avec la souris , je vais ouvrir l'action de saisie. Et je vais changer le type de valeur sur l'axe deux D, car je vais regarder vers le haut et vers le bas. C'est un axe. Et le deuxième axe regarde vers la gauche et vers droite vers l'axe 2 D. Je vais cliquer sur Enregistrer. Et pour en revenir à mon contexte de mappage des entrées, je peux maintenant cliquer sur le signe plus haut et je peux ajouter ma nouvelle action de saisie pour celle-ci. Maintenant, cliquez dessus ici et recherchez une souris. Et vous avez celui-ci appelé souris XY2d. Maintenant, ajoutez simplement la souris X, ajoutez-en une autre, et ajoutez la souris Y. Vous pouvez le faire également C'est pareil, mais pour rendre les choses plus propres, je vais simplement cliquer ici, rechercher la souris et ajouter cette souris Xy, parce que nous pouvons le faire également et le code deviendra beaucoup plus propre. Maintenant, ce que nous voulons faire avec le mouvement ici avec le WK, avancer avec le K, nous reculons Cependant, à l'heure actuelle, ils vont tous les deux de l'avant. Ce que nous devons faire pour que le SK recule , c'est dans les modificateurs que vous devez cliquer sur le Ensuite, ici, vous devez sélectionner celui-ci appelé negate. Cela inverse votre saisie. Lorsque vous cliquez dessus, il recule. Lorsque cette négation est ajoutée, Negate signifie simplement qu'elle fait le contraire de ce que fait la touche Nous devons faire la même chose ici. D se déplace vers la droite, en fait, pour la gauche et la droite. Ce que nous devons également faire dans les modificateurs, cliquer ici et sélectionner l'espace mondial Nous devons faire de même pour la gauche. Ici, nous devons cliquer sur les modificateurs et sélectionner l'espace mondial Maintenant, pour la gauche et la droite, le D va vers la droite et le A va vers la gauche. Maintenant, pour la gauche, nous devons également ajouter ce modificateur appelé Nick Gate, comme avant. Cela va aller dans le sens inverse de celui du D. Allons-y et cliquons sur Enregistrer. Tout va bien. Nous sommes maintenant prêts à ajouter ce contexte de mappage d'entrée à notre personnage. Parce que maintenant nous avons tout ajouté. Tout se présente bien. Maintenant, si nous obtenons une boîte avec le mouvement, nous pouvons toujours revenir ici et la changer. Mais pour l'instant, c' est ce que nous avons. Et supprimons ce personnage. Passons à la leçon suivante. 17. 3.06 Ajouter le contenu de la cartographie en entrée: Avant de pouvoir utiliser le contexte de mappage d'entrée et ajouter du mouvement au personnage, nous devons l'ajouter à notre plan Clauss. Allons-y et faisons-le. Passons au joueur et entrons dans la base de joueurs. À l'intérieur d'ici, nous allons ajouter le mouvement. Lorsque nous ajouterons le mouvement ici, il s'appliquera également aux enfants. Dans le plan parent Claus, la base de joueurs. Passons au graphique des événements. À l'intérieur du graphique des événements, vous pouvez cliquer sur le bouton droit de la souris pour vous déplacer à l'intérieur du graphique des événements. Maintenant, allons-y et sélectionnons-les tous. Et appuyez sur le fil du clavier. Et commencer par le début , c'est la première chose que je vais écrire. Cliquez. Et lorsque vous écrivez « click », vous pouvez choisir entre différentes fonctions et différents événements. Le premier événement que nous allons créer s'appelle Begin, Play, Play. Allez-y et sélectionnez l' événement, Commencer, Jouer. Et qu'est-ce que cela signifie, c'est ce qui devrait se passer si je commence à jouer au jeu ? Vous pouvez écrire du code ici. Si je fais glisser le pointeur depuis cette épingle d'exécution, je le lâche. Et j'écris, j'imprime et j' utilise cette chaîne d'impression. C'est donc la fonction la plus simple et la plus simple que nous ayons dans le moteur Unreal Dans les plans, cela imprimera simplement du texte à l'écran Maintenant, si je compile, je clique sur play. Vous pouvez voir qu'il est écrit «   bonjour » ici. Si je clique à nouveau sur Play, vous pouvez voir qu'il dit bonjour. Donc, cela indique simplement ce qui devrait se passer si je commence à jouer au jeu ? Ce que nous voulons faire, c'est ajouter le contexte de mappage. Pour ce faire, vous devez d'abord obtenir la référence du contrôleur du joueur. Pour ce faire, écrivons click et cherchons simplement le contrôleur. Vous pouvez sélectionner celui-ci appelé Yet controller. Nous avons la manette, mais celle-ci n'est que la manette de jeu par défaut de base dans Unreal Engine Nous devons préciser à Unreal Engine que nous parlons en fait ce contrôle de joueur personnalisé que nous avons créé La façon dont nous procédons est de passer des contrats à partir d'ici. Et nous pouvons dire que lancer deux, coûter deux signifie que nous essayons d'obtenir la référence de cette manette de joueur. Je peux faire glisser le pointeur d'ici et dire « coût deux , puis vous devez lui donner le nom de la manette du joueur. Contrôleur de lecteur, PC. Nous l'avons appelé Counterstrike. Alors allez-y et sélectionnez-le. Maintenant, nous pouvons accéder à tout ce qui se trouve à l'intérieur. Disons dans le Player Controller. Si, par exemple, j' ajoute une variable, appelle-la simplement hello ou quelque chose comme ça. Tout ce qui est aléatoire, cliquez sur compiler dans la base de joueurs. Maintenant, vous pouvez voir si je fais glisser le pointeur d'ici et que j'écris bonjour, je peux voir la variable que je viens de créer. Le casting, c'est que vous pouvez accéder à tout ce qui se trouve dans cette manette de joueur maintenant parce que vous y avez une référence, c' est ce que l'on appelle la communication par plan Parce que maintenant vous êtes dans la base de joueurs, vous communiquez avec le contrôleur du joueur et vous pouvez accéder à tout ce qui s'y trouve. La seule chose que nous voulons faire à l'intérieur d'ici, c'est faire glisser le pointeur. Et puis nous avons amélioré, je ne me souviens plus de ce nom, il est si long. Sous-système de lecteur local d'entrée amélioré. Il suffit d'écrire Enhanced et de le sélectionner ici. À partir de celui-ci, nous allons faire glisser et dire « ajouter un contexte de mappage ». Allez-y et ajoutez le contexte de mappage. Et n'oubliez pas de connecter votre code, sinon il ne fonctionnera pas car il proviendra de l'événement, il obtiendra cette référence de manette de jeu. Ensuite, il va ajouter ce contexte de mappage à ce plan Et n'oubliez pas que dans le contexte de mappage, vous devez cliquer ici et sélectionner le contexte de mappage que vous avez créé. Allez-y et cliquez sur Compiler. Et c'est exactement ça. Vous avez maintenant ajouté le contexte de mappage au joueur et vous pouvez désormais utiliser les événements et créer le mouvement. Cependant, dans la leçon suivante, nous allons parler des interfaces de plan Je n'aime pas vraiment faire du casting parce que le casting crée des références intéressantes dans le moteur réel lorsque vous démarrez le jeu. Imaginons par exemple que vous ayez créé un jeu complet. Vous avez créé, par exemple, 100 plans dans votre jeu Il est maintenant disponible sur Steam. Cependant, pour les références les plus populaires, lorsqu'un joueur ouvre votre jeu avant qu'il ne charge le menu principal et tout le reste, il charge d'abord les références les plus populaires. Si vous en avez, disons, 100 ou 200 dans votre partie de casting, cela ralentira votre jeu car il doit charger toutes les références les plus populaires. Il doit d'abord les charger tous. Il peut exécuter votre jeu. Je ne dis pas qu'il ne faut jamais l'utiliser, car il y a des cas où il est ridicule de ne pas l'utiliser. Cependant, dans ce cas, ce que j'aime faire habituellement, c'est créer une interface de plan Et à partir de là, nous pouvons communiquer avec d'autres plans sans créer de références chaudes Alors allons-y, optimisons davantage notre jeu. Et j'essaie également de vous montrer comment je le ferais normalement de manière avancée, et je n'aime pas vraiment vous apprendre de mauvaises façons de le faire. Essayons d'éviter le moulage pour le moment, et passons à la leçon suivante où nous pouvons remplacer cette pièce. 18. Interface de plan 3.07: Les interfaces Blueprint sont utilisées au lieu de calculer les coûts. Pour une communication sur un plan directeur, nous utilisons généralement des interfaces de plan afin d'éviter les coûts Et comme vous pouvez le voir ici, dans le jeu, nous l'avons fait dans la base de joueurs, nous avons calculé les coûts. Pour éviter de masquer les références qui doivent être chargées dans le jeu avant le menu principal et de ralentir le jeu, nous avons créé une interface de plan pour éviter ces Allons-y et créons-en un. Et voyons de quoi il s'agit. Dans le dossier Blueprint, je vais écrire, cliquer et créer un nouveau dossier Et je vais appeler celle-ci interfaces ou interface. Et entrons dans ce dossier à l'intérieur d'ici. Écrivons, cliquons, accédons à Blueprint et sélectionnons l'interface Blueprint Habituellement, pour les interfaces, je les appelle t comme préfixe heure actuelle, vous devez l' appeler comme vous essayez de faire référence. J'essaie de faire référence à la manette de mon joueur. Je vais l'appeler One Play Controller. Je vais entrer ici et voici l' interface du plan Gardez à l'esprit que les interfaces Blueprint sont généralement difficiles pour les débutants, mais essayez de les comprendre et elles en fait très faciles à comprendre Essayons simplement d'en créer un et de voir ce qui se passe dans une interface de plan Vous avez ce point de vue, vous ne pouvez vraiment rien faire à l'intérieur d'ici. Vous ne pouvez rien faire ni glisser. La seule chose que vous pouvez faire, c'est ici, dans les fonctions, vous pouvez créer une fonction. La fonction que je veux créer maintenant si vous cliquez sur deux sur le clavier, vous pouvez en changer le nom. Je veux juste l'appeler get player controller ref. J'essaie, avec cette fonction, d'obtenir la référence des manettes du joueur. Je peux donc éviter ce casting ici . Je vais cliquer sur cette fonction que je viens de créer. Je vais créer une sortie ici. Dans les sorties, je vais sélectionner la classe de plan à laquelle j'essaie de faire référence Maintenant, j'essaie de faire référence à mon Player Controller PC Counterstrike C'est ainsi que nous l'avons appelé. Et sélectionnez la référence de l'objet. Sélectionnez ici dans les variables dont vous avez besoin pour sélectionner la classe de plan à laquelle vous essayez de faire référence Je vais l'appeler Player Controller. Et maintenant, cette fonction est terminée. C'est très simple. N'oubliez pas d'appuyer et de compiler ici. C'est très important , allez-y et économisez. Nous avons maintenant cette fonction simple. Maintenant, ce que nous pouvons faire avec ça, c' est ouvrir le contrôleur. Si je passe aux plans et que j' ouvre la manette du joueur qui s'y trouve, ouvrons l'éditeur de plans complet , puis sélectionnons Paramètres de classe Dans les paramètres de classe ci-dessous, vous pouvez désormais ajouter l'interface Blueprint Cliquons ici et cherchons T. Voici l' interface que nous venons de créer. Allez-y, sélectionnez-le. Lorsque vous sélectionnez l'interface Blueprint, vous remarquerez peut-être que cet onglet s'affiche ici à gauche Maintenant, il s'agit d'un nouvel onglet qui vient d'apparaître appelé interfaces. À l'intérieur d'ici, vous pouvez voir la fonction que nous venons de créer dans cette interface de plan Il est maintenant apparu lorsque vous ajoutez l'interface Blueprint. Si vous double-cliquez sur cette fonction et que vous entrez dans celle-ci, vous pouvez maintenant définir cette variable ici. Nous avons créé cette variable de contrôle du joueur, mais elle est actuellement vide. Ce que nous devons faire, nous devons nous en éloigner. Et puis on écrit soi-même. Qu'est-ce que cela signifie ? Permettez-moi de le refaire. C'était peut-être trop rapide. Dragon vu d'ici. Et en écrivant « self », puis en sélectionnant celui-ci, vous obtiendrez une référence à vous-même. Ce que cela signifie, c'est que je vais simplement y retourner. Nous avons créé l' interface du plan ici et nous avons créé cette fonction à l'intérieur de celle-ci pour les variables que nous avons sélectionnées, la variable à laquelle nous voulions faire référence Maintenant, à l'intérieur du contrôle du joueur, lorsque nous avons ajouté l'interface via les paramètres de classe apparaissaient ici. La fonction à l'intérieur d' ici pour cette variable que nous écrivons est elle-même. Cela signifie que nous indiquons simplement au moteur quelle est cette variable de contrôleur de joueur. Parce que si je maintiens le contrôle clique ici et que je le déconnecte, le moteur ne saura jamais quelle est cette variable. Si c'est le cas, c'est qu'elle est vide, que la variable est vide et que vous obtiendrez de l'ère dans votre jeu. Mais si nous faisons une autoréférence, cela signifie que cette variable est elle-même. N'oubliez pas que nous sommes à l'intérieur du Player Controller. Nous définissons essentiellement cette variable Player controller. Nous disons au moteur que c'est cette manette de jeu dans laquelle je me en ce moment. C'est soi. L'autoréférence signifie ce qu'Eva, classe de plan dans laquelle je me trouve en ce moment, à savoir la manette du joueur Nous l'avons donc simplement défini ici. Allez-y, compilez et enregistrez ce que nous pouvons faire maintenant. Nous en avons maintenant terminé avec cela. Nous pouvons maintenant accéder au lecteur et le supprimer. Ce que nous pouvons faire maintenant, c'est faire glisser le curseur depuis le contrôleur, puis écrire la fonction que nous l'avons appelée. En voici le nom. Obtenez la référence de la manette du joueur, je peux faire glisser le pointeur à partir d'ici et dire « get layer ». Et puis vous pouvez le voir apparaître ici à partir de l'interface de plan que nous avons créée Il est écrit « get player controller reference C'est la fonction que nous venons de créer lorsqu'elle indique un message à la fin, cela signifie qu'elle provient d'une interface de plan Alors allez-y et sélectionnez-le. Cette icône ici signifie simplement qu'elle provient d' une interface de plan. Et maintenant, nous l'avons. Maintenant, nous évitons le casting, nous évitons les références difficiles, et notre jeu est également plus optimisé en termes de performances. Vous pouvez maintenant simplement le connecter. Il sait maintenant que cette manette de joueur à laquelle nous faisons référence est notre manette de jeu Counterstrike pour PC Parce que nous avons écrit toutes ces variables dans le contre-attaque sur PC que nous avons écrit nous-mêmes, elle sait maintenant de quoi nous parlons ici Cela peut être un peu déroutant au départ si vous n' avez jamais utilisé d' interfaces Blueprint auparavant, mais c'est très pratique pour éviter le casting Nous venons de créer l'interface Blueprint. Nous sommes ensuite allés de l'avant et avons sélectionné la classe de plan à laquelle nous voulions faire référence Ensuite, à l'intérieur de la classe de plan nous essayons de faire référence, nous avons ajouté cette interface de plan et celle-ci est apparue Ensuite, à l'intérieur d'ici, nous avons fait une autoréférence. Et à partir de là, nous pouvons maintenant l'utiliser ici où nous pouvons dire «   obtenir la manette », puis « obtenir la référence de la manette du joueur », juste comme ça et en évitant les coûts Très bien, c'était tout pour l'interface Blueprint. Nous aurons d'autres exemples à l'avenir. Si cela vous a été un peu difficile, jetez un œil à mon serveur Discord ou à Pixel Helmet.com. Je suis très, très heureuse de vous aider Allons-y et cliquons sur Fichier > Tout enregistrer. Passons à la leçon suivante. 19. Mouvement du joueur 3.08: Maintenant que nous avons ajouté le contexte de mappage d'entrée au joueur, nous pouvons effectuer le mouvement. Nous devons écrire le nom des actions d'entrée que nous avons créées. Le premier que j'ai créé s'appelait IA Movement. Commençons par celui-ci. Ce que vous pouvez faire maintenant dans le lecteur, c'est écrire, cliquer et écrire IA Movement, le nom de l'action de saisie. Ensuite, vous pouvez cliquer sur cet événement pour le créer. N'oubliez pas que ce symbole signifie qu'il s'agit d'un événement. Alors allez-y et créez-le. Maintenant, nous avons cet événement qui semble un peu complexe, mais pas vraiment. Il vous indique simplement quand l'événement est déclenché, commencé, en cours, annulé et terminé. Rien de trop complexe ici. Maintenant, quand cet événement est-il déclenché ? L' événement est déclenché. Si vous accédez au contexte de mappage des entrées, souvenez-vous que nous avons ajouté des boutons pour notre mouvement. Si je clique sur W, ce mouvement sera déclenché. Voyons maintenant si cela fonctionne réellement. Parce que si vous n'avez pas ajouté ce code, cela ne déclenchera pas la bonne chaîne d'impression et j'imprimerai simplement un simple message à l'écran. Si je clique sur, par exemple, je peux cliquer sur jouer. Et si je clique dessus, vous pouvez voir qu'il est en train d'imprimer à l'écran. Maintenant, si je l'avais déconnecté et que je n'avais pas ajouté mon contexte de mappage d'entrée, et que je clique sur Play et que je clique sur, vous pouvez voir que rien n'est imprimé à l'écran et que cela ne fonctionne pas. N'oubliez pas de l'ajouter à votre code. Très bien, maintenant que cela fonctionne, agissons. Pour le mouvement du joueur, nous utilisons une fonction appelée « Ajouter un mouvement », cliquer avec le bouton droit et écrire un mouvement C'est ainsi que vous ajoutez du mouvement à un personnage. Connectons-le maintenant. Maintenant, ce qu'il vous demande, c'est dans quelle direction souhaitez-vous faire évoluer le personnage ? Passons maintenant à la première. Avancez et reculez. Ce que vous pouvez faire, il suffit de cliquer avec le bouton droit et de droite de la souris. Pourtant, chez forward vector, c'est le vecteur direct et nous pouvons le relier ici à la direction du monde. Maintenant, comment pouvons-nous revenir en arrière ? En fait, nous n'avons besoin de rien d'autre. C'est la seule chose dont nous avons besoin. Comment est-ce, comment sait-il quand nous avançons et reculons ? Cela est dû à cette valeur d'échelle. La valeur d'échelle est une, elle va avancer. Vous pouvez le voir ici, si je clique sur jouer et que je clique dessus pour avancer. Si je clique sur maintenant, il avance également car cette valeur d'échelle est définie sur un. Si je le mets à moins un et que je clique sur Jouer ici et que je clique sur, ou vous pouvez voir maintenant qu'il recule Quand c'est un, il avance, et quand c'est moins un, il recule Il s'agit de la valeur de l'action ici. Nous pouvons cliquer dessus avec le bouton droit de la souris et diviser l'épingle de la structure. Ou vous pouvez le prendre et casser le vecteur deux D. C'est en fait la même chose. Je vais juste cliquer dessus avec le bouton droit de la souris et dire structure divisée. Maintenant, pour ce x, vous pouvez l'ajouter ici à la valeur d'échelle. Au lieu de cela, lorsque vous cliquez sur, vous avancez. Lorsque vous cliquez sur, vous reculez car il y aura moins un. N'oubliez pas que dans le contexte du mappage des entrées, vous avez écrit le modificateur ici pour que, lorsque vous appuyez sur le bouton arrière, vous avez écrit ou sélectionné Negate, ce qui inverse simplement qui signifie que ce sera moins un lorsque vous cliquerez sur OK. Il s'agit du mouvement vers l'avant et vers l'arrière. C'est maintenant terminé pour la gauche et la droite, c' est très, très simple. Vous pouvez le copier, le coller et le connecter ici. Ensuite, pour la direction du mot, vous pouvez écrire un vecteur droit Et tu peux le connecter dès maintenant. Et maintenant, vous pouvez le connecter pour le y sur la valeur de l'échelle. N'oubliez pas à présent d'organiser votre code. Vous pouvez double-cliquer ici pour créer un nœud de redirection. Essayez simplement de rester organisé. Double-cliquez également sur celui-ci. Essayez de rester organisé. Juste comme ça. Il est toujours agréable de rester organisé car vous pouvez imaginer que votre code sera très volumineux par la suite. Vous pouvez également sélectionner le tout et cliquer sur C sur le clavier pour créer un commentaire. Par exemple, vous pouvez écrire le mouvement WASD, etc. Pour l'instant, je ne vais pas le faire, je vais le faire un peu plus tard. Oui, c'était le mouvement. Vous pouvez maintenant compiler et cliquer sur Play. Mais au lieu de jouer dans la fenêtre d'affichage, je pense que c'est plus facile pour vous de l'afficher si je joue dans l'éditeur dans une nouvelle fenêtre d'éditeur, en cliquant ici, dans une nouvelle fenêtre d'éditeur, et ça va apparaître comme ça Maintenant, je peux jouer, laissez-moi juste l'agrandir un peu. Cliquez sur jouer pour l'agrandir. Vous pouvez voir maintenant que lorsque je clique sur, j'avance. Lorsque je recule, si je clique sur D, je me déplace vers la droite Et si je clique dessus, je me déplace vers la gauche. Maintenant, je peux déplacer mon personnage avec mon clavier. Très, très sympa. Cependant, pour le moment, nous ne pouvons toujours pas déplacer la souris. Nous devons également ajouter le code pour cela. Vous pouvez à nouveau cliquer ici avec le bouton droit de la souris. Nous l'appelons IA look Input action. Nous devons profiter de cet événement. Vous pouvez maintenant cliquer avec le bouton droit de la souris et écrire un aperçu. Ensuite, nous pouvons sélectionner cet événement. Maintenant, pour regarder, nous devons utiliser ce qui s'appelle ajouter votre entrée, c'est-à-dire regarder à gauche et à droite. Et puis nous avons le second intitulé pitch Inputs, celui-ci ici, il se déplace ou regarde de haut en bas. Encore une fois, c'est très simple, cliquez avec le bouton droit de la souris ici, fendez l'épingle frappée. Allez-y, connectez le x ici et le Y ici. Et c'était tout pour cela très simple, pour regarder de haut en bas et de gauche à droite avec la souris. Compilons et cliquons sur jouer. Et je vais déplacer ma souris. Vous pouvez voir que je peux le déplacer à droite et à gauche. Je ne peux pas le déplacer de haut en bas. C'est en fait dans le bras à ressort. Si je clique sur le bras à ressort, je dois prendre celui-ci appelé utilisation lors de la commande de rotation. Maintenant, je peux cliquer sur Play. Et maintenant tu peux voir que je peux me déplacer de haut en bas, de gauche à droite. Cependant, lorsque je me déplace de haut en bas, c'est en fait inversé par rapport à ce à quoi je suis habitué Je n'ai pas l'habitude de passer de la souris de haut en bas comme ça. J'ai l'habitude de voir le contraire. Passons au contexte de mappage d'entrée ici dans la souris Xy ici. Pour le modificateur, je vais ajouter un nouveau modificateur et annuler avec le bouton droit, je veux inverser mon mouvement en Y pour que la souris clique sur la petite flèche Pour le négatif, je vais supprimer le X et le Z. Je ne veux pas inverser le X et le Z, je veux juste inverser le Y. Donc encore une fois, je vais simplement Et maintenant, quand je me déplace de haut en bas, c'est vraiment correct. Alors maintenant, quand je monte et descend, c'est correct pour moi. Et quand je regarde à gauche et à droite, c'est également correct. C'est bon. C'était donc le mouvement. Et encore une fois, si quelque chose est le contraire de ce vers quoi vous essayez de vous déplacer, vous pouvez toujours sortir d'ici en utilisant la négation et essayer d' inverser le Et quand tout est correct, le mouvement était très, très simple pour notre personnage. Nous pouvons maintenant nous déplacer et regarder avec la souris. Cependant, il nous manque l'animation. Et nous allons travailler avec cela dans la prochaine leçon. Alors allez-y, sauvegardez tout, et passons à autre chose. 20. 3.09 Importer les animations des joueurs: Maintenant que nous avons terminé le déplacement des joueurs, nous sommes prêts à ajouter quelques animations sur ce site. J'ai inclus pour vous des supports de cours. Allez-y, téléchargez le matériel judiciaire et vous obtiendrez probablement ce dossier de matériel de cours sous forme de dossier SIP. Assurez-vous simplement d'extraire le contenu du dossier Sip. Maintenant, ce que nous pouvons faire ici, c'est accéder au dossier Counter Strike Animations. Il s'agit d'un projet Unreal Engine. J'ai ajouté toutes les animations que vous devez utiliser pour le jeu. Si vous vous contentez d' ouvrir ce projet, voici ce que vous verrez une fois que vous l'aurez ouvert . Vous avez ce dossier d'animations. À l'intérieur, vous trouverez toutes les animations dont vous avez besoin pour créer le jeu. L'animation est légèrement décalée lorsque vous pointez le pistolet, etc. Pour celui-ci, cliquez avec le bouton droit sur le dossier des animations , puis sélectionnons migrer. Au fait. Un autre conseil ici. Si vous cliquez avec le bouton droit sur un fichier au lieu d'un dossier, la migration se fait sous Asset Actions, puis sous Migrer. C'est le cas si vous souhaitez migrer un seul fichier, mais que nous voulons migrer l'ensemble du dossier. Cliquez avec le bouton droit et effectuez la migration. Et cliquez simplement sur OK, encore une fois, migrons-le dans notre dossier de contenu. Si vous allez au Multiply Shooter, c'est mon dossier. Il se trouve à l'intérieur des inconvénients, du projet Strike, puis du contenu à l'intérieur du contenu. Ici encore, sélectionnez uniquement le dossier de contenu, sélectionnez un autre dossier, sinon cela ne fonctionnera pas. Allez-y et sélectionnez le dossier de contenu. Sélectionnez le dossier, et il extraira toutes les animations ou les transférera à notre propre projet. Maintenant que nous avons terminé la migration, revenons à notre propre projet À l'intérieur, vous pouvez voir que nous avons maintenant le projet d'animations, et nous avons toutes ces animations que nous avons migrées. Nous allons maintenant transférer toutes ces animations à notre propre personnage. Et plus tard, nous pourrons supprimer ces deux dossiers que nous avons importés. De plus, pour ces deux dossiers, je vais les cliquer et les faire glisser le marché juste pour le rendre un peu plus propre. Parfois, lorsque vous faites glisser des dossiers de l'un à l'autre, et que vous pouvez voir sur le marché, ils sont désormais là. Cependant, ils sont toujours là, et ce ne sont que des dossiers vides. Il n'a pas été supprimé. Ce que vous pouvez faire, les sélectionner, appuyer sur Supprimer sur votre clavier, et vous verrez qu'il s'agit de redirecteurs d' objets Vous pouvez simplement l'ignorer et continuer à le supprimer. Maintenant, vous pouvez voir qu'il n'est toujours pas supprimé. Cela arrive parfois dans Unreal Engine. Vous pouvez cliquer avec le bouton droit sur le dossier de contenu puis cliquer sur Corriger les redirecteurs, puis réessayer de le supprimer. S'il n'est pas supprimé, je ferme généralement le projet. Ensuite, je vais dans mon propre projet ici et dans le dossier de contenu et je les supprime simplement d'ici. Assurez-vous simplement de les avoir transférés dans le dossier Marketplace, comme vous pouvez le voir ici. Je vais simplement supprimer ces dossiers vides du dossier de contenu, puis ouvrir mon propre dossier. Encore une fois, cela se produit parfois dans Unreal Engine. Bon, nous voilà de nouveau dans le projet, et maintenant que nous avons importé nos animations, nous allons les transférer vers notre propre personnage. Ensuite, nous allons supprimer ces deux dossiers plus tard, mais passons à la leçon suivante. 21. 3.10 Créer des plates-formes IK: Avant de pouvoir copier les animations sur notre propre personnage, nous devons créer ce que l'on appelle un K-rig. Passons aux plans. Et allons dans le dossier du lecteur. Ici, je vais cliquer avec le bouton droit de la souris et créer un nouveau dossier appelé Animations. Et puis à l'intérieur de ce dossier, nous pouvons accéder aux animations. Ici, en bas, nous voyons quelque chose appelé K. Ensuite, nous devons le sélectionner sur le modèle jaune appelé K rig. J'ai l'habitude de les appeler, appelons-le un mannequin. Mannequin est le nom de l' autre personnage dont nous allons copier les animations depuis K mannequin. Vous pouvez maintenant double-cliquer et insérer ici. Et ce que vous pouvez faire ici maintenant, vous devez sélectionner un maillage squelettique que vous souhaitez utiliser. Je vais utiliser ce mannequin dont nous devons copier les objets. Vous pouvez continuer et sélectionner celui-ci. Vous pouvez voir qu'il est appelé dans ce dossier de références 01. Si vous pouvez voir cette information en bas dans le lien, cliquez dessus. Maintenant, c'est le Manikin, nous allons créer un appareil IK très simple Ici, dans l'interface IK Rig, vous avez toutes les animations comme vous pouvez le voir ici dans le navigateur d' actifs. Si vous pouvez double-cliquer dessus, vous pouvez voir les animations ici dans la fenêtre de retargeting d'IK Ici, vous devez spécifier les os de ce personnage , puis nous devons également spécifier les os de notre autre personnage. De cette façon, nous pouvons réellement copier les animations de ce personnage vers l'autre. Parce que nous avons défini les bases et Honoral Engine sait comment copier les animations Maintenant, je vais juste cliquer sur Réinitialiser pour qu' ils restent immobiles. Ici, au Royaume-Uni, il s'agit du ciblage. Ce que vous devez faire, c'est créer une nouvelle chaîne. La première chaîne que nous allons emprunter, nous allons simplement l'appeler «  tête ». Allez-y, appelez-le « chef ». Pour le moment, nous n'avons pas besoin de sélectionner quoi que ce soit, il suffit d'enchaîner. Juste comme ça. OK, nous en avons maintenant un qui s'appelle Head. Continuons d'ajouter les autres. Je vais encore me heurter à une chaîne. Et celui-ci s'appellera à gauche, gauche, puis créez-en un nouveau appelé à droite. Puis créez-en un nouveau, Leg left. Créez-en une nouvelle appelée jambe, non ? Ensuite, nous pouvons en créer une nouvelle appelée colonne vertébrale et une dernière appelée racines. OK, ce sont donc toutes les chaînes que nous devons créer. Tête, jambe gauche, jambe droite, jambe gauche, colonne vertébrale droite et racine. Vous devez maintenant spécifier où commence et où se termine la tête, l'os de départ et l'os d'extrémité. Ce que vous pouvez faire ici, et d'une manière très, très simple, maintenant je sais que ça s'appelle. Si vous recherchez ici le terme « cou », vous pouvez le sélectionner ici et il se termine en tête. Maintenant, je le sais parce que je l' ai fait 100 fois. Cependant, si vous êtes nouveau ici ou si vous avez un nouveau personnage aux os différents, car souvenez-vous que si un artiste le fait pour vous dans un logiciel en trois dimensions, il peut l'appeler comme il veut Il faut savoir comment ça s'appelle. Ce ne sont là que les noms des os qui apparaissent généralement sur les vrais moteurs. Je sais comment ils s'appellent. Ce que vous pouvez faire ici pour voir leurs noms sans vraiment savoir comment ils s'appellent. Ici, vous pouvez cliquer sur Afficher réellement le personnage ici. Cliquez sur Personnage, allez dans Bones et sélectionnez toute la hiérarchie. Cela vous permet de voir tous les os de ce personnage. Ce que vous pouvez faire ici, vous pouvez cliquer ici. Maintenant, vous pouvez voir qu'il s'appelle Neck 01. Ma tête part du cou 01. Si je clique ici, celui-ci s'appelle head. L'os terminal est la tête. Maintenant faisons-le pour le bras gauche. Maintenant, c'est le bras gauche. Si nous sommes debout comme ça, c'est le bras gauche. Si vous pouvez cliquer sur le bras gauche, cela commence au niveau de la clavicule, gauche au-dessus de l'os de départ se trouve Levical, à gauche de l'extrémité ici Ce n'est pas vraiment la fin , au bout des doigts, mais là où commence la main, si vous cliquez ici, il est écrit main gauche. Ici, l'extrémité. Sélectionnons ce qui restait, juste comme ça. C'était parti comme fin. Maintenant, pour ce qui est de la droite, c'est pareil. C'est juste Levi Coal, non ? Et puis de nouveau la main droite pour la jambe, vous pouvez l'essayer comme exercice, vous pouvez cliquer dessus quelque part là-haut. C'est la cuisse. Ici, ça commence par la cuisse, je vais juste le copier. Cuisse gauche, et je vais la coller ici, sur la jambe droite, pour la faire cuisse gauche. Cuisse droite. La jambe s'arrête ici. Si vous cliquez dessus, il se termine au pied de sélection à gauche et en bas, au pied droit. Maintenant, le dernier, Spine, c'est très simple. C'est la colonne vertébrale centrale ici. Il commence à la première colonne vertébrale et se termine à la troisième colonne vertébrale. Celui-ci est facile. En cherchant une colonne vertébrale, vous pouvez voir qu'elle commence à la colonne 1 et se termine à la colonne 3. La racine est simplement appelée racine. Vous pouvez rechercher des racines, appelez-les simplement root ici également. Racine, racine. C'est pareil, c'est juste l'os là-haut, l'os radiculaire ici bas. Nous en avons fini avec le retargeting de ce personnage. Et ce que vous pouvez faire, c'est cliquer avec le bouton droit sur le bassin ici. C'est très important. Cliquez maintenant avec le bouton droit sur le bassin et sélectionnez Définir la racine cible. Cela permettra de stabiliser ce personnage. Et allez-y, cliquez sur Safe. OK, maintenant que nous en avons terminé avec celui-ci, nous pouvons maintenant accéder au dossier des animations. Trouvez votre IK Ric que vous venez de créer. Vous pouvez cliquer avec le bouton droit de la souris, puis vous pouvez le dupliquer. Laisse-moi appeler ça un joueur K. C'est le joueur. Maintenant, au lieu de faire quoi que ce soit ici, vous pouvez simplement sélectionner le joueur. Maintenant, par exemple, vous pouvez sélectionner ce mâle undaterroristk. Tu n'es pas obligée de le refaire. Vous pouvez voir qu'il est déjà là. Tout va bien. Tout va bien. C'est déjà défini comme itinéraire de retarget parce que nous l'avons fait pour l'autre Nous pouvons fermer celui-ci, mais nous avons maintenant ces deux appareils IK. Cela étant terminé, passons à la leçon suivante et créons la retargeta IK 22. 3.11 Créer un retargeter IK: Allons-y maintenant et créons l'IK Targeta. Regardons bien ici, deux animations. Et puis sélectionnez à nouveau le K C. Et sélectionnez le second appelé IK Targeta. Parce que nous sommes maintenant prêts à copier les animations d'un personnage à l'autre, créant ainsi le retarget K. Je vais l'appeler IKR. Appelons-le simplement joueur pour le moment, IKR. Ouvrons-le. Il va maintenant vous demander de quel IK Rick vous souhaitez copier les animations. Je souhaite copier les animations de mon mannequin sur lesquelles nous avons les animations. Et je veux copier des animations sur mon lecteur comme ça. Il ajoutera automatiquement ces deux caractères pour vous. Maintenant, ils se chevauchent ici dans le maillage cible. Décalez le x ici. Je vais cliquer, faire glisser et simplement déplacer ce personnage, environ 175 ici sur l'axe X. Je peux donc les voir tous les deux. Maintenant, à l'intérieur de l'IK tageta, vous pouvez voir, je peux maintenant voir toutes les animations situées ici, dans la chaîne ou dans le navigateur défini Dans le mappage des chaînes, vous pouvez voir les chaînes que nous avons créées pour qu'elles fonctionnent correctement. Et généralement, il le fait correctement automatiquement, en s'assurant simplement que la racine de la chaîne cible, qui est celle-ci, est la même que la racine source est associée à la racine, et que la colonne vertébrale est associée à la colonne vertébrale, et ainsi de suite. Assurez-vous simplement que la jambe droite, par exemple, n' est pas associée à la colonne vertébrale. Ce sera une erreur. Ils doivent être associés au même os ou à la même chaîne que ceux que nous avons créés. Habituellement, Unreal Engine le fait automatiquement correctement. Passons maintenant au navigateur Acid , voici les animations. Si vous cliquez sur l'une d'entre elles, par exemple, sélectionnons cette promenade, n'est-ce pas ? Vous pouvez voir que c'est presque correct. En fait, je vais enlever ces os pour qu'on puisse voir les choses plus correctement. Si je clique sur Character Bones et ne le sélectionne que maintenant, c'est presque correct. Cependant, les bras sont très étranges, sinon tout le reste semble fonctionner correctement. Nous pouvons presque le copier , mais nous devons corriger quelque chose ici. Je vais cliquer sur Stop. Je crois. Ici, oui, cliquez sur Stop. Nous allons arrêter l'animation. La raison pour laquelle il ne copie pas correctement est que la position de ce caractère doit être la même pour ce caractère. Et vous pouvez voir que le bras n'est pas dans la même position. C'est pourquoi cela crée une ère avec les armes. Dans cette animation, je vais cliquer sur Arrêter ici. Ce que nous pouvons faire, c'est sélectionner l'un des os. Encore une fois, cliquez sur les os des personnages, le tout dans la hiérarchie. Je peux donc voir tous les os, et les voici pour ces os. Maintenant, nous pouvons cliquer sur le mode édition. Le mode édition nous permet de modifier la pose de ce personnage. Vous pouvez maintenant sélectionner l'un des os, par exemple. Vous pouvez simplement l'essayer, sélectionner celui-ci, essayer de le faire pivoter. Vous pouvez voir que celui-ci n'est pas celui que vous devez faire pivoter. Vous pouvez cliquer sur le contrôle Z pour revenir en arrière, et vous pouvez sélectionner le suivant. Le prochain ici. Si vous le faites simplement pivoter vers le bas, juste comme ça, je pense à environ 50 degrés. Je pense que 40 degrés, c'est un peu trop. Peut-être que nous pouvons simplement essayer -50 degrés de cette façon. Pour l'autre, je vais cliquer sur le même os puis le faire pivoter de -50 degrés, juste comme ça. Tout comme ce type. Vous pouvez aussi voir que ce type a une rotation de l'os ici. Je dois le faire ici aussi. Je dois cliquer ici sur cet os. Ensuite, je peux le faire pivoter d'environ 30 degrés. Et essayez simplement de comparer les deux. En cliquant également sur l'autre, le faisant pivoter de 30 degrés, juste comme ça. Essayez simplement de regarder par haut et de comparer ces deux personnages. D'accord, je pense qu'ils se ressemblent. Essayons l'animation et voyons si elle fonctionne réellement. Je vais quitter le mode édition. Je vais encore cacher les os, juste pour voir à quoi ça ressemble sans les os. Ensuite, je vais cliquer sur l'une des animations. Par exemple, sélectionnons-en un où il marche ou court. C'est un peu mieux à regarder. Vous pouvez voir que les mains posent problème en ce moment, et je pense que c'est parce que nous avons trop fait pivoter les bras vers le bas. Revenons en mode édition. Je vais voir tous les os, puis je vais cliquer sur cet os et faire pivoter le bras un peu vers le haut. probablement le problème, nous l'avons un peu trop alterné . Maintenant, jetons-y un coup d'œil Revenons au mode édition. Cliquez sur le devant ici, laissez-moi simplement retirer l'os pour que je puisse voir quoi cela ressemble en essayant d'autres animations. Vous pouvez voir que tout fonctionne correctement. Cependant, l'erreur est qu'en ce moment, ce sont les mains, elles ne fonctionnent pas vraiment correctement. Juste pour m'assurer que tout est correct, je vais arrêter les animations et regarder du point de vue du point de vue. Ici. Du bon point de vue. Il suffit de regarder ces deux personnages m'assurer que tout semble correct. Passez également à la vue de face et assurez-vous que tout est correct pour mieux le voir. Ici, nous pouvons cliquer à nouveau sur le personnage, Bones, puis sur toute la hiérarchie. Nous pouvons donc voir tous les os et les voici. Vous pouvez voir qu'il y a une petite différence. Si vous pouvez cliquer sur l'un des bras, puis régler le cliquetis pour la rotation, je vais le régler sur cinq, puis passer en mode édition Alors permettez-moi de le faire légèrement pivoter ici. Ensuite, je vais le faire légèrement pivoter pour qu'il s'adapte presque à l'autre main. Quelque chose comme ça ici. Vous pouvez cliquer sur l'autre, mais pas sur celui-ci, celui-ci ici. Et faites-le pivoter pour qu'il s'adapte également à l'autre. Vous pouvez maintenant revenir à la vue en perspective, regarder ces personnages. Vous pouvez également y jeter un œil depuis le haut pour voir à quoi ils ressemblent tous les deux. Et s'ils se ressemblent, je pense que dans la plupart des cas, ils se ressemblent. Revenons maintenant au mode perspective. Ce que nous devons faire, c'est réparer nos mains parce qu'elles ne sont pas belles. Nous pouvons simplement essayer de lancer une animation. Par exemple, le retour à gauche. Et je vais enlever tous les os pour pouvoir le voir. Vous pouvez voir qu'ils ont l'air bien. Les deux. Cependant, les mains sont un peu défoncées. Nous devons donc régler ce problème. Passons à la leçon suivante et fixons les aiguilles avant de copier les animations. 23. 3.12 Fixer les mains: Maintenant, allons-y et réparons les doigts. Avant de copier les animations, double-cliquez sur ce mannequin K rig ici. J'ai déjà ajouté les chaînes. Vous pouvez le voir ici, vous devez également ajouter des chaînes pour les doigts. Si vous voulez que les doigts fonctionnent comme les autres parties du corps, ajoutez-y simplement les mêmes. Le pouce ici, ce pouce ici. Et puis vous avez l' index, le majeur, l'annulaire, puis le rose ici. Vous devez les ajouter, toutes à nouveau, pouce gauche, pouce droit, index gauche, index droit, milieu gauche, milieu droit, anneau gauche, anneau gauche, anneau, droite et petit doigt gauche et petit doigt Allez-y et ajoutez-les. Je vais juste vous montrer les deux premiers pour savoir comment vous pouvez les retrouver, puis je vais ajouter les autres. Le premier ici, le pouce, vous pouvez cliquer sur le premier ici. Vous pouvez voir que c'est le pouce 01, non ? Vous pouvez cliquer ici et rechercher le pouce. Vous pouvez voir que cela commence par le pouce 01. Celui-ci est celui de gauche. Nous devons sélectionner le pouce. 01, À gauche, pouce droit. Il se termine au pouce 03, à gauche. Vous pouvez également cliquer ici pour voir le nom, mais c'est très facile pour ces doigts, le même doigt droit, vous pouvez rechercher le pouce, sélectionner le bon doigt. Il se termine à 033, ici, dans l' index, vous pouvez cliquer dessus Cela commence par l'indice 01. Vous pouvez le voir pour les mains, elles sont en fait simples. Si vous cliquez ici et recherchez un index, vous pouvez voir l'index 01 pour la gauche, un pour la droite, 1203 pour la droite 101203, celui de gauche et celui de droite. Ici, dans le majeur, vous pouvez cliquer sur le majeur. Cela commence au milieu de 01. Je vais juste aller de l'avant et les ajouter tous ici. Maintenant, je les ai tous ajoutés et nous pouvons continuer et cliquer sur Enregistrer. Et vous pouvez tous les voir ici. Tout comme ce que nous avons fait ici. OK, maintenant ce que je peux faire, c'est fermer ça. Maintenant, au lieu d'ajouter la même chose ici, je vais simplement la supprimer. Je vais juste supprimer celui-ci. Et en cliquant sur OK. Cela va en fait vous donner une époque car il est ajouté à cette plate-forme IK. Je vais également supprimer cette plate-forme IK. Maintenant, il dit qu'il y a quelque chose qui fonctionne ici et je ne suis pas sûr de savoir ce qu'il veut. J'essaie de sauvegarder le projet. Cliquez sur le dossier de contenu, corrigez les redirecteurs, revenez aux animations du lecteur et essayez de les supprimer Supprimons effectivement celui-ci. K joueurs vont me le donner. En fait, je vais fermer le projet et essayer de le rouvrir pour voir s'il fonctionne. OK, nous y revoilà. Je vais supprimer celui-ci. Et voilà. Parfois, Unreal Engine vous donne des erreurs aléatoires supprimons pas la cible IK, faisons en sorte qu'elle reste ici. Je vais cliquer avec le bouton droit de la souris et dupliquer mon mannequin IK et l'appeler joueur IK comme avant, entrer ici et simplement remplacer ce mannequin par notre propre antiterroriste Juste comme ça, tout va bien. Nous faisons des économies. Revenons à la cible IK. heure actuelle, pour le retarget IK, assurez-vous que le mannequin IK est la source et que la cible est le joueur Donc, tout semble aller bien. Essayons encore une fois. Essayons de lancer une animation. Si nous revenons à gauche, par exemple. Et je vais juste cacher tous les os pour que je puisse vraiment voir ce qui se passe. Vous pouvez voir que ça n'a pas l' air bien non plus. Je pense que les chaînes ne sont pas cartographiées. Si vous cliquez sur le mappage des chaînes, comme je vous l'ai déjà dit, elles doivent être similaires, vous pouvez voir qu'elles ne sont pas identiques ici, je dois les relier. Au lieu de le faire manuellement, essayez de cliquer ici et de cliquer sur Map All Exact. Et vous pouvez voir qu'il les cartographie toutes pour vous. Voyons maintenant à quoi cela ressemble. Tu peux voir maintenant que c'est beaucoup mieux. Il s'agit en fait de le tenir, comme l'autre joueur, et pas simplement de tenir les doigts au hasard. Les voici, nous avons corrigé le mappage de la chaîne. Vous pouvez maintenant voir que la main de ce joueur est tordue, comme vous pouvez le voir ici. C'est tordu ici. Cependant, ce n'est pas vraiment votre problème, c'est juste la façon dont le personnage est créé. Vous pouvez voir que c'est un peu foiré sur cette partie du bras. C'est bon Ce n'est pas vraiment toi qui as fait quelque chose de mal. Jouons quelques animations juste pour nous assurer que tout est correct avant de continuer. Et en y jetant un coup d'œil, tout semble aller bien, vous pouvez même voir que ce doigt de gâchette tient correctement, tout comme cet autre doigt de gâchette. D'accord, donc nous pouvons toujours si vous voulez que les bras et les mains ressemblent à 100 % à ceux de ce joueur, comme je vous l'ai déjà dit, vous pouvez passer à la modification, déplacer légèrement les doigts si vous voulez pas oublier de cliquer sur les os des personnages et sur toute la hiérarchie et vous pouvez essayer de les déplacer un peu s'il y a quelque chose qui ne vous satisfait pas. Ensuite, vous pouvez continuer et simplement jouer une animation. Regardez à quoi ça ressemble, mais je pense que pour le moment ça a l'air vraiment bien. Avant que vous ne puissiez imaginer, ou que vous ne vous souveniez, que les bras volaient vers le haut. Maintenant, ils vont tous bien et les doigts fonctionnent également. OK, donc avec ça, cliquons sur le personnage. Encore une fois, je vais cacher tous les os parce que je n'ai plus vraiment besoin de les voir. Maintenant, sauvegardons le projet, et passons à la leçon suivante où nous copions les animations. 24. 3.13 Retargeting les animations: Nous sommes maintenant prêts à copier les animations. Passons à l'IQ Targeta. À l'intérieur, vous pouvez voir que lorsque je clique sur les animations, comme dans la leçon précédente, tout fonctionne correctement. Nous sommes maintenant prêts à copier toutes les animations. Ce que vous pouvez faire, c'est très simple. Vous pouvez cliquer sur le premier, puis sélectionner le dernier, puis cliquer sur les animations sélectionnées. Vous devez maintenant sélectionner un dossier dans lequel vous souhaitez enregistrer ces nouvelles animations. Je vais en fait créer un nouveau dossier. Pour mieux m'organiser, je vais créer un nouveau dossier que je vais appeler Assets. C'est ce que je fais habituellement pour mes jeux. Je peux écrire, cliquez ici et allons-y et appelons les nouvelles animations du dossier. Ensuite, vous pouvez continuer et cliquer sur Exporter. Maintenant, nous exportons ces animations ici, et c'est terminé. Maintenant, si je minimise et que je passe aux animations de mes actifs, vous pouvez voir qu'elles sont toutes là. Si je clique simplement sur l'un d'entre eux, vous pouvez voir qu'il fonctionne avec notre personnage. Ça a vraiment l'air bien. Non, je ne pense pas que ce soient toutes les animations que je peux voir ici. Et c'est parce qu'ils n'utilisent pas le même mannequin. Si je reviens au joueur, voyons voir, et si je reviens à ma cible K, à ce mannequin, vous pouvez voir que si je passe la souris dessus, il utilise le maillage squelettique du de référence 01 Vous pouvez voir ici pour le moment qu'il ne s'agit que des animations pour le pistolet Je peux voir qu'ici, dans le dossier des animations des actifs, nous avons copié toutes les animations des pistolets Vous pouvez voir à la fin qu'ils s'appellent pistolet. Cependant, nous avons d' autres animations. Vous pouvez voir si vous allez dans le dossier des autres animations que nous avons importées, vous avez la version non armée et aussi le fusil Nous ne pouvons pas les voir. Et pourquoi ça ? On ne voit que ceux des pistolets. C'est parce que les autres utilisent en fait d'autres maniquins pour celui du fusil Si vous maintenez simplement la souris dessus, vous pouvez voir qu'il utilise le squelette du dossier references 02, il utilise en fait un autre Manequin Ce que nous pouvons faire, c'est retourner au mannequin K qui se trouve à l'intérieur d'ici Nous pouvons cliquer sur celui-ci. Si vous maintenez simplement votre souris sur les autres mannequins que vous avez, par exemple celui-ci, cela indique que celui-ci provient du dossier des références 02 heure actuelle, nous utilisons le maniq des références 01, en cliquant sur le deuxième mannequin Maintenant, allez-y et cliquez sur Enregistrer. Passons à la cible K. Maintenant, vous pouvez voir dans les animations qu'il y a toujours le pistolet Ce que nous devons faire, c'est simplement cliquer sur cette flèche pour la réinitialiser. Ensuite, je vais cliquer à nouveau et sélectionner le mannequin IK. Et allez-y et appuyez sur Enregistrer. Maintenant, vous pouvez voir qu'il ne s'agit plus du pistolet, mais de toutes les animations du fusil pour continuer et sélectionner toutes les animations du fusil Exportez les animations sélectionnées. Et je vais les exporter à nouveau dans le dossier des animations. Allez-y et exportez-les une fois qu'ils auront été exportés. Je vais retourner à mon mannequin IK. Je vais sélectionner le mannequin dans le dossier des références 03, vous pouvez le sauvegarder Retournez au Ktageta. Je vais cliquer à nouveau sur la flèche ici pour la réinitialiser. Ensuite, je vais sélectionner à nouveau le mannequin, assurant qu'il est écrit UA à la fin, ce qui signifie « désarmé Ce sont toutes des animations non armées. Et tu peux cliquer dessus pour voir à quoi ça ressemble. Allez-y et sélectionnez-les tous à nouveau. Et allez-y, cliquez sur Exporter les animations sélectionnées, puis exportez-les à nouveau dans le dossier des animations. Cliquez sur Exporter. Fermons maintenant tout et examinons le dossier des animations. Vous avez maintenant toutes les animations ici. Vous pouvez donc voir que lorsque vous cliquez dessus, ils ont l'air un peu stupides Et ce n'est pas parce que nous avons fait quelque chose de mal, c'est en fait l'animation qui semble un peu stupide, à mon avis, mais c'est bon Nous n'avons pas vraiment de meilleures animations. Et ils sont gratuits, et nous pouvons les utiliser. Vous pouvez donc voir ici toutes ces animations vraiment très belles. Et nous pouvons les utiliser pour créer notre jeu. Bon, maintenant tout fonctionne pour le personnage. Et vous pouvez voir que tout va bien. Et parfois, nous pouvons ajuster certaines de ces animations. Vous pouvez voir que lorsqu'il regarde le sol, c'est beaucoup trop sur le sol, à mon avis. Et nous pourrons ajuster cela plus tard. Mais vous pouvez voir que tout fonctionne bien. Et c'est ainsi que vous copiez les animations d'un personnage à l'autre. Allons-y, appuyons sur Enregistrer, et passons à la leçon suivante. 25. 3.14 Introduction à mélanger les espaces: Très bien, alors allons-y et créons un espace de fusion. Et un espace de fusion est simplement utilisé pour fusionner deux animations. Et nous pouvons l'utiliser dans le plan d'animation. Plus tard. Vous pouvez voir que je viens de colorier mon dossier de plans juste pour le voir ou le repérer plus rapidement Encore une fois, n'oubliez pas que vous pouvez le faire en sélectionnant tous ces dossiers. Cliquez avec le bouton droit sur Accéder à la définition de la couleur, puis cliquez sur Nouvelle couleur et sélectionnez simplement la couleur. C'est ainsi que vous mettez des couleurs dans les dossiers. Maintenant, dans le dossier du plan, dans les animations. Allons-y et cliquez ici avec le bouton droit de la souris. Accédez à Animation et sélectionnez celui-ci appelé espace de fusion. Encore une fois, un espace de fusion est l'endroit où vous pouvez fusionner deux animations. Par exemple, l'animation inactive et l'animation exécutée. Nous pourrons les utiliser ultérieurement dans le plan d'animation. Allons-y et créons-le pour le moment. Maintenant, il vous demande de choisir un squelette. Vous devez choisir le squelette de votre personnage. Pour celui-ci, je vais sélectionner le style MW. C'est le contre-terroriste et c'est le terroriste. Je vais sélectionner le contre-terroriste parce que souvenez-vous que dans les animations, nous avons redirigé les animations sur ce contre-terroriste Je vais sélectionner le squelette de l' antiterroriste. Appelez-le BS pour Blend Space. Alors je vais juste appeler ça run après ça. J'ai l'habitude de l'appeler, par exemple, celui-ci. Je vais créer les espaces de mélange non armés parce que plus tard nous allons courir avec le fusil et courir avec le pistolet également Celui-ci s'appelle Run Armed. Double-cliquez dessus lorsque vous l'ouvrez. C'est l'espace de mélange. Ici à gauche, vous avez un panneau de détails à l'intérieur. Vous pouvez faire des choses comme lisser l'animation, la vitesse de déplacement, la direction , etc., mais nous y reviendrons plus tard. Ici, très, très important, vous avez un graphique. Et ici, vous pouvez ajouter toutes vos animations. C'est ici que vous fusionnez les animations, et nous allons le faire dans la prochaine leçon à droite. Ne t'inquiète pas trop pour ça. Nous n'avons pas vraiment grand-chose à faire ici. Mais ici, vous pouvez voir toutes les animations. Si vous double-cliquez simplement sur l'une d'entre elles, par exemple celle-ci, double-cliquez sur celle-ci, vous pouvez voir toutes les animations présentes dans ce lecteur d'animation. Si vous double-cliquez dessus, vous pouvez voir que vous êtes en dehors de l'espace de fusion. Maintenant, vous ne pouvez pas voir ce graphique si vous faites simplement défiler la page. Vous pouvez soit l' ouvrir à nouveau ici en cliquant ici. Mais vous pouvez désormais également le voir avec les animations. Vous pouvez le voir ici. Il s'agit de la couleur de l'espace de fusion. Vous pouvez double-cliquer dessus et ouvrir à nouveau, comme ça. Très, très simple. C'est ainsi que nous procédons. Et nous pouvons, par exemple, cliquer et faire glisser une animation. En fait, ne les utilisons pas. Il s'agit d'une compensation. Utilisons ces animations. Nous travaillerons plus tard avec le décalage Aim. Travaillons simplement avec l'une des animations. Vous pouvez les cliquer et les faire glisser, les placer dans le graphique. Et puis vous pouvez voir que ce gars marche maintenant automatiquement. Et vous pouvez faire glisser une autre animation et la placer quelque part. Et maintenant, vous pouvez voir qu'ils se mélangent vraiment. Si vous maintenez la touche de contrôle votre clavier et que vous déplacez simplement votre souris d'ici à là, vous pouvez voir qu'ils se mélangent maintenant OK, vraiment cool. Pour l'instant, il ne s' agissait que d'un exercice. Cliquons sur celui-ci, cliquez sur Supprimer sur le clavier. Cliquez sur celui-ci, cliquez sur Supprimer sur le clavier. Allons-y et économisons. Et commençons par la leçon suivante, où nous ajoutons des espaces de fusion non armés 26. 3.15 Espaces de mélange non armés: Nous sommes maintenant prêts à créer les espaces optiques non armés. Commençons ici. quoi je commence habituellement se trouve ici, dans le panneau des détails. Nous avons un axe horizontal et un axe vertical. Il suffit de cliquer sur les petites flèches voir toutes ces informations. Habituellement, sur l'axe horizontal, nous avons le sens du mouvement. Allez-y et appelez cela la direction du mouvement. Vous pouvez également voir qu'il change de nom. Ici, là-haut, nous avons la vitesse de déplacement. Il s'agit de l'axe vertical. Appelons cela la vitesse de déplacement. Maintenant, pour la direction du mouvement, nous passons d'une valeur minimale à une valeur maximale. Le minimum est de moins 180 degrés, le maximum de 180 degrés. C'est ainsi que nous pouvons tourner à 360 degrés. Maintenant, pour ce qui est de la vitesse de déplacement ce que je fais habituellement ici, par exemple, c' est courir. Si nous passons au personnage, si nous cliquons sur le joueur puis sur la base de joueurs, à l'intérieur de la base de joueurs, nous cliquons sur le composant de mouvement. Vous pouvez voir ici que la vitesse maximale de marche, qui est également la vitesse de course, est actuellement de 600. D'habitude, je le mets à environ la moitié de ce qui est écrit ici. Parce que si vous écrivez 600, vous devez atteindre la vitesse de 600 avant de pouvoir passer complètement à cette animation. Si vous voulez passer à l'animation de course, j'écris généralement 300 parce que lorsque j' atteins la vitesse de 300, ce que je fais très rapidement car ma vitesse maximale est de 600, je passe à la vitesse de course beaucoup plus rapidement. D'habitude, je le réduis simplement à ce qu'il est. Je vais juste écrire 300 pour celui-ci, pour la direction du mouvement. Je vais augmenter les divisions de la grille ici car j'ai plus d' animations que quatre. Je vais en écrire huit. Nous avons un mouvement à huit directions. Vous pouvez voir maintenant que j' ai plus de lignes ici. Et c'est ainsi que nous voulons qu'il en soit ainsi. Maintenant c'est la seule chose que tu veux faire ici. Pour le moment, cliquez sur Enregistrer pour accéder à cet écran détaillé. Maintenant, dans le graphique, ce que vous pouvez faire, c'est créer l'animation de course pour pas armés ici à la vitesse de zéro C'est là que vous avez l' animation inactive à la vitesse de zéro. Nous sommes juste immobiles. Maintenant, ici, si nous cherchons idle, celui-ci s'appelle idle armed. Prenons celui-ci. Inactif, désarmé, faisons-le glisser Et nous devons le déposer ici, où la vitesse de déplacement est nulle. Maintenant, si vous maintenez la touche Shift de votre souris enfoncée pendant que vous la faites glisser, vous pouvez la voir s'accrocher à la grille. Et c' est ce que je veux. Je veux le photographier ici. Si vous le placez, vous pouvez voir le personnage tourne maintenant au ralenti avec une animation inactive Maintenant, cliquons et glissons à nouveau sur ce bouton. Maintenez la touche Shift enfoncée pour l'activer. Allez-y, cliquez et faites-le glisser dans tous ces points de la grille ci-dessous. Il suffit de prendre l' animation inactive jusqu'au bout. C'est juste l'animation inactive car la vitesse est nulle. Maintenant, quand la vitesse est maximale, lancez l'animation. Si je cherche juste à courir en ce moment, nous sommes désarmés. Si vous allez simplement ici, vous pouvez voir que celui-ci s'appelle is forward. B signifie en arrière. B L signifie par exemple arrière gauche, et B R signifie arrière droite, et ainsi de suite. Pour celui-ci, nous voulons courir en avant, mais étant désarmés, courez en avant ici Et vous pouvez voir celui-ci s'appeler « désarmé ». Vous pouvez à nouveau faire glisser celui-ci, maintenir la touche Maj enfoncée et la placer ici. Maintenant, si vous maintenez le contrôle du clavier et que vous déplacez votre souris, vous pouvez voir que vous pouvez passer de l'animation Adle Et si vous déplacez votre souris tout en maintenant la touche de contrôle de votre clavier enfoncée, vous pouvez passer à celle-ci. Tu peux voir à quoi ça ressemble. Et c'est ce qu'est un espace de mélange. Maintenant, ici, je vais cliquer sur ce bouton pour vous montrer les exemples de noms, afin que vous puissiez voir ce que j'ai placé et ce sera également plus facile pour vous. Donc ici, au lieu de chercher à courir, je vais en fait chercher une personne désarmée comme ça Je pense que ce sera plus facile pour moi et je pourrai voir toutes mes animations de course sans arme Donc, ici à droite, nous avons l'avant droit. Celui-ci s'appelait Front Right. Je vais le déposer ici. Alors nous avons le droit d'ici. Je vais prendre celui qui a été appelé correctement. Déposez-le ici. Alors celui-ci est de retour, non ? Je vais prendre le dos. Juste à la fin, dans le coin, se trouve le mouvement du dos. Je prends le dos et je le place ici pour que vous puissiez voir si je garde le contrôle et si je m'y déplace lentement. Vous pouvez voir que mon personnage est en transition. Juste comme ça, tout semble correct. Il marche à reculons , puis il revient. Car celui-ci est tout le contraire. C'est le côté gauche, donc courez vers l'avant gauche. Je vais donc prendre celui-ci sur l'avant gauche, maintenir la touche Shift enfoncée, placer et celui-ci est à gauche. Je vais trouver la gauche puis l'arrière gauche, choisissant celui-ci appelé à gauche et celui-ci rappelé à nouveau. Tout comme dans l' autre coin, nous avons le mouvement du dos ici et nous avons également le mouvement du dos ici. Parce que nous tournons à 360 degrés. Très bien, voici mon animation et tout semble correct. C'est donc à ça que ça doit ressembler. Nous avons donc le mouvement avant, puis les mouvements de gauche et de droite. Et maintenant, nous avons fini de courir sur le bras, pour que tu puisses garder le contrôle. Découvrez à quoi cela ressemble lors de la transition. Maintenant, vous devez également le faire avec les autres. Je vais donc juste vous partager un autre exemple rapide. Je vais juste le parcourir rapidement. Maintenant, si vous revenez simplement aux animations du joueur, cliquez avec le bouton droit de la souris, passez aux animations, créez un nouvel espace de fusion. Sélectionnez à nouveau le personnage, le squelette que nous avons créé, appelez-le PS. Cette fois, je vais l'appeler accroupi parce que maintenant nous sommes accroupis Et encore une fois, appelez-le non armé. Pour le dernier, cliquez à nouveau avec le bouton droit de la souris. Passons à l'animation. Accédez à l'espace de fusion, sélectionnez le squelette. Celui-ci marche parce que maintenant nous marchons et disons qu'il est désarmé Nous devons également créer celui-ci. En cliquant à nouveau sur le accroupi, ici dans l'axe horizontal, nous avons le sens du mouvement Ensuite, nous avons la vitesse de déplacement. Au fur et à mesure du mouvement, nous passons de moins 180 à 180. La division de la grille est de huit, car nous avons huit mouvements que nous devons ajouter ici pour obtenir la vitesse de déplacement. Encore une fois, celui-ci est pour les accroupis. Maintenant, s'accroupir est beaucoup plus lent que la vitesse de marche. Encore une fois, vous pouvez revenir en arrière si vous le souhaitez dans la base de joueurs. Cliquez sur le composant de mouvement et examinez la vitesse d'accroupissement Pour le moment, il y en a 300. Je vais juste le porter à 150, la moitié pour le moment. Plus tard, nous allons modifier tous ces mouvements, car nous devons tester le joueur dans le jeu et voir à quelle vitesse il court. Et nous pouvons toujours venir ici et modifier cette valeur ici, d'accord ? Maintenant que nous l'avons ici à droite, il nous faut maintenant que ce soit accroupi, accroupi Nous allons juste écrire « bras de soulignement », nous avons tous ces mots accroupis Le premier est celui qui est inactif. Je vais prendre celui-ci, anim accroupi les bras croisés. Je vais maintenir la touche Shift enfoncée, la placer ici. Il suffit de cliquer et de faire glisser la même position accroupie sur tous ces points vers le bas. Parce que là encore, la vitesse de déplacement est nulle. Nous ne faisons que tourner au ralenti. Ensuite, nous avons le mouvement avant. Nous allons prendre le front ici, désarmés. Alors voici le bon mouvement. Celui-ci est à l'avant, à droite, en faisant glisser l'avant vers la droite. L'autre côté est avant gauche, avant droit, avant gauche. Ensuite, nous avons la droite ici, la droite et la gauche de l'autre côté. Sur celui-ci se trouve en arrière à droite, en faisant glisser le pointeur vers la droite. De l'autre côté, c'est en arrière à gauche. Et puis il y a le mouvement du dos de ces côtés. Nous pouvons à nouveau garder le contrôle. Regarde à quoi ça ressemble. Tout va bien. Allez-y et économisez. Et je vais juste faire le dernier et je vous recontacterai. Très bien, j'ai fini de marcher et je peux activer les étiquettes pour que vous puissiez voir ce que j'ai fait comme avant. Les mouvements de droite, les mouvements de gauche, et aussi le ralenti ici. Rien de nouveau. Allons-y, économisons, et fermons-le. Et nous avons ici tous les espaces de fusion réservés aux mouvements désarmés Plus tard, nous devrons également tout recréer pour le fusil et pour le pistolet, mais ne nous en soucions pas pour le moment Passons au plan d' animation. 27. 3.16 Introduction aux plans d'animation: Nous sommes maintenant prêts à travailler avec des plans d'animation. Allons-y dans le dossier des plans. Je vais aller dans le dossier du lecteur. Dossier d'animation. Ici. Je vais cliquer avec le bouton droit de la souris, accéder à Animation. Et puis sélectionnez celui-ci appelé plan d'animation. Nous devons maintenant sélectionner le squelette du joueur pour lequel nous le créons. Je suis en train de le préparer pour ce Cando Terris. Je vais aller de l'avant et sélectionner le squelette. Allez-y et cliquez sur Créer. Appelons-le simplement un lecteur MBP. Maintenant, double-cliquons et ouvrons ce plan d'animation Un plan d'animation se compose de deux parties. La première partie est ce graphique d'animation. À l'intérieur de ce graphique d'animation, nous insérons les animations et vous pouvez voir si vous maintenez le bouton droit de la souris enfoncé ici, vous pouvez vous déplacer à l'intérieur de ce graphique d'animation, nous branchons les animations ici. Et la deuxième partie est ce graphique des événements. À l'intérieur du graphe d'événements, nous écrivons le code du mouvement. Nous avons la partie code, puis nous avons la partie animation où nous ajoutons les animations. Commençons ici dans le graphique d'animation, vous pouvez voir à droite que vous avez toutes les animations que vous pouvez voir ici. Vous pouvez même cliquer dessus et le faire glisser dans le graphique d'animation, puis vous pouvez brancher, le compiler et ainsi de suite. Et vous pouvez voir que lorsque vous le branchez, vous pouvez voir que le lecteur tourne ralenti et vous pouvez voir l'animation Nous travaillons maintenant avec des espaces de fusion d'animations, et pas seulement avec ces animations ici. Supprimons celui-ci. Au lieu de simplement insérer une animation ici, cliquez avec le bouton droit de la souris et recherchons State Machine Sélectionnons cette machine à un état. Allez-y, renommez celui-ci. Je vais l'appeler mouvement désarmé, car plus tard, nous aurons du mouvement avec le pistolet et également avec le fusil Prenons ceci, connectons-le ici, et compilons. Et vous pouvez voir que vous recevez un avertissement parce que celui-ci est vide pour le moment. Double-cliquez sur cette machine à états que nous avons créée ici. Si vous cliquez dessus et faites glisser le pointeur, vous n'avez pas grand-chose à faire ici. La seule chose que nous voulons faire, c'est simplement créer cet État. Cliquez sur un état, et appelons-le une exécution inactive. Et maintenant, nous pouvons voir que vous avez cet état. Maintenant, si vous double-cliquez sur cet état à l'intérieur d'ici, vous pouvez maintenant ajouter l'animation. Mettons simplement fin à ce mouvement désarmé. C'est celui avec lequel nous travaillons en ce moment. Branchons-le et cliquons sur Compiler. Maintenant, vous pouvez voir que cette époque est révolue . Si vous souhaitez revenir au graphique d'animation, vous pouvez cliquer ici. Vous pouvez voir que vous n'avez pas d'onglet. Il vous suffit de cliquer ici pour revenir au graphique d'animation. Vous pouvez voir que cette époque est révolue. Nous avons relié le mouvement désarmé à l'intérieur d'ici. Et nous avons cet état, l'état d'exécution inactive. Plus tard, nous allons créer d'autres États. Par exemple, si vous faites glisser le pointeur sur l'état, nous allons créer l'état accroupi, puis nous allons créer un autre état Peut-être voulons-nous créer l'état de marche et ainsi de suite. Mais pour l'instant, juste l'état d'exécution inactif. À l'intérieur, nous avons cet espace de fusion que nous avons créé plus tôt. Nous pouvons maintenant voir que l'espace de fusion veut prendre deux entrées. Si je reviens à l' espace de course à l'intérieur d'ici, vous pouvez voir que nous avons créé la direction et la vitesse du mouvement. C'est ce qu'il veut. Il veut ces deux valeurs. Maintenant, si j'écris simplement un nombre statique ici dans la vitesse de déplacement, par exemple, disons que je me déplace à une vitesse de 400. Et si je compile, vous pouvez voir que le personnage fonctionne correctement. Si je change simplement la direction, par exemple en écrivant à 90 degrés, nous pouvons également par exemple en écrivant à 90 degrés, compiler cela qui fonctionne correctement. Très bien, très cool. Maintenant, nous ne voulons pas vraiment de nombres statiques ici, nous voulons les calculer à l'aide du code dans le graphe des événements. Allons-y et faisons-le dans la prochaine leçon. Compilons pour le moment, en écrivant à nouveau 00 ici. Sauvegardons tout et passons à autre chose. 28. 3.17 Vitesse et direction du mouvement: Pour calculer la vitesse de déplacement et la direction du mouvement, passons au graphique de la camionnette. Maintenant, à l'intérieur d'ici, au lieu de partir d'ici, cliquons avec le bouton droit de la souris et recherchons initialize Et sélectionnez celui-ci appelé Blueprint Initialize Cet événement, c'est comme le début de la partie. Si vous vous souvenez, si je reviens à la base de joueurs, nous utilisons celle-ci appelée «   begin play ». Que se passera-t-il si je commence à jouer ? Désormais, dans les plans d'animation, cela s'appelle simplement plan, Initialiser Que se passe-t-il lorsque vous initialisez ce plan ? C'est pareil ici. Ce que vous voulez faire, utilisez cette fonction ici, essayez get pawn owner Partons d'ici et disons que c'est valide. Et allez-y, sélectionnez celui-ci avec le point d'interrogation valide. Nous demandons maintenant si le joueur est valide, s'il est apparu dans le monde Si le joueur est apparu, nous voulons cliquer avec le bouton droit sur cette variable, l'appeler pion du joueur, puis nous connecter au est valide Maintenant, ce que nous faisons ici, c'est simplement demander à ce joueur de faire apparaître ce joueur dans le monde entier Vous pouvez imaginer Counterstrike. Lorsque vous vous connectez, vous devez choisir si vous voulez être un terroriste ou un contre-terroriste. Maintenant, si le joueur n'a pas encore sélectionné de terroriste ou de contre-terroriste, il n'est pas encore apparu dans le monde Cela n'a aucun sens de faire tout ce code d'animation si le joueur n'est même pas encore apparu. Nous vérifions simplement si le joueur est apparu, s'il est valide, s'il est placé dans le monde Si ce n'est pas le cas, nous voulons attendre. Écrivons simplement le délai ici et sélectionnons ce délai. Nous allons retarder le code de 0,3 seconde, disons. Par exemple, lorsque ce délai sera terminé, nous allons courir. C'est à nouveau valide car si le code n'est pas valide, si le joueur n'est pas encore apparu, nous ne voulons pas rester coincés ici Si nous n'ajoutons rien ici, le code va simplement s'arrêter. Et je ne veux pas ça, je veux que cette variable player pon soit définie chaque fois que le joueur réapparaît. Je vais continuer à vérifier si le joueur est réapparu. Je vais retarder le code s'il n'est pas valide, puis je vais le réexécuter. Et maintenant, nous pouvons double-cliquer sur celui-ci pour créer des nœuds re, route afin de le rendre un peu plus organisé. Quelque chose comme ça. Ici, nous ne cessons retarder le code si le joueur n'est pas apparu, jusqu'à ce que le joueur apparaisse et que cela crée cette variable de douleur pour le joueur Maintenant, nous pouvons prendre cette variable de pion du joueur , nous pouvons la placer ici Si vous le prenez ici, vous pouvez soit obtenir la variable, soit la définir. Maintenant, pour le faire rapidement, vous pouvez maintenir le contrôle enfoncé et le faire glisser pour l'obtenir automatiquement. Si vous maintenez la touche Alt enfoncée et que vous l'obtenez ici, la variable sera définie. Ce ne sont que des raccourcis, Ctrl enfoncée et la touche Alt enfoncée pendant que vous les faites glisser. OK, nous avons donc cette variable de pion du joueur. Maintenant, cliquez avec le bouton droit sur cette variable et convertissez-la en une variable déjà validée. Maintenant, ce que cela fait, c'est maintenant connectons-le ici. Cela permet encore une fois de vérifier si le joueur est valide, s'il a mis en gage Juste pour nous assurer que nous n'exécutons ce code que lorsque le joueur est apparu Parce que vous pouvez voir si je compile maintenant, le code est en cours d'exécution. Et vous pouvez voir que cela fonctionne à l'infini, car nous ne l'avons pas encore créé. Cela cessera de fonctionner chaque fois que nous apparaîtrons. Quant à celui-ci, il fonctionnera toujours, le plan sera mis à jour, l' animation sera toujours exécutée Et c'est toujours agréable de vérifier si le joueur est apparu , car nous ne voulons pas exécuter ce code alors qu'un joueur val n'est pas encore apparu OK, maintenant pour calculer la vitesse de déplacement, frappons depuis ce joueur, patte Cherchons la vélocité et trouvons celle-ci appelée vélocité. C'est tout simplement la seule chose que nous devons faire, en fait. Cependant, si je reviens ici dans le plan d'animation et que je reviens à mon état d'inactivité, vous pouvez voir le plug-in Il veut l'entrée qu'il veut, c'est une variable de type flottant. Il ne s'agit pas d'un vecteur. Vous pouvez voir si je reviens à mon graphe de ventilation, il s'agit d'un vecteur. On ne peut pas vraiment le brancher ici. Ce que nous pouvons faire pour transformer un vecteur en flottant, nous pouvons le faire glisser à partir de celui-ci et rechercher la longueur. Nous pouvons choisir celle-ci appelée longueur du vecteur, qui la transformera en fait en une variable de type flottant. Nous pouvons cliquer dessus avec le bouton droit de la souris et en faire une variable maintenant et l'appeler vitesse de déplacement. Maintenant, connectons-le ici au S valide. Et maintenant, nous avons la vitesse de déplacement. C'est en fait très simple. C'est comme ça que tu le fais. Vous obtenez la vélocité du joueur. Nous avons défini la longueur du vecteur parce que nous voulons transformer la variable en variable flottante. Et puis nous avons la vitesse de déplacement ici. Maintenant, pour calculer la direction du mouvement, nous pouvons faire glisser le pointeur à partir d'ici et rechercher « calculer ». Et vous pouvez voir celui-ci appelé calculer la direction. Comme celui-ci maintenant, il demande une rotation. Ce que vous pouvez faire, c'est que vous pouvez directement depuis le joueur et rechercher une rotation des numéros. Celui-ci obtient une rotation. Maintenant allons-y et branchons-le. Maintenant, si vous découvrez Blueprint pour la première fois, vous ne savez parfois pas comment s'appellent ces fonctions S'il demande une rotation, par exemple, vous pouvez simplement le demander à partir d'ici et vous pouvez écrire une rotation. C'est ce que j'ai fait à mes débuts. Quand j'ai eu complètement terminé, j'ai simplement écrit rotation et j'ai essayé de comprendre quelles étaient toutes ces fonctions. Ensuite, je fais une sélection parmi celles-ci. Maintenant, cela prendra un certain temps si vous êtes nouveau. Cependant, cela se fait encore et encore et cela deviendra une mémoire musculaire pour vous. Ne t'inquiète pas pour ça, continue juste à t'entraîner. Nous procédons à la rotation des acteurs, nous l'intégrons ici Nous calculons la direction. Nous pouvons maintenant cliquer avec le bouton droit sur celui-ci, le transformer en variable et l'appeler direction du mouvement. Maintenant, nous avons également calculé la vitesse de déplacement et la direction du mouvement. Allons-y et compilons. Et maintenant, nous avons ce code ici. Passons à l'état d' exécution inactive ici. Encore une fois, vous pouvez cliquer sur le graphique d'animation. Vous pouvez également cliquer sur le graphique d'animation ici. Ou passez à l'état d' exécution inactif ici, à gauche, à l'intérieur d'ici. Déterminons notre vitesse de déplacement. Branchez-le à la vitesse de déplacement et faites glisser le sens du mouvement, branchez-le dans le sens du mouvement. Allons-y et compilons maintenant. Avant de pouvoir jouer, vous pouvez voir si je joue maintenant, rien ne se passera car nous n'avons pas utilisé le plan d'animation dans le lecteur Passons à la base de joueurs. Accédez au Viewpo, cliquez sur le joueur ou sur le maillage. Ici, vous pouvez voir le mode animation. Utilisez un plan d'animation, c'est correct. La clause d'animation, nous devons sélectionner notre plan et cliquer sur Compiler Et maintenant, vous pouvez voir que le joueur est également animé ici dans le Viewpoard Cliquons sur Play, et essayons-le. Si je clique sur W pour avancer, pour reculer, je me déplace également sur les côtés. Je passe à tous les autres sites. Vous pouvez voir qu'il fonctionne correctement. Génial Les animations que nous avons branchées fonctionnent correctement. Maintenant, en ce qui concerne la vitesse de déplacement, nous allons la modifier nous allons la modifier plus tard, alors ne vous inquiétez pas. Je peux également constater que le joueur est en fait très petit par rapport à l'environnement. Nous devons donc également régler ce problème. Mais ne nous en inquiétons pas pour le moment. Tout fonctionne correctement. Passons à la leçon suivante et créons l' accroupissement 29. 3.18 Entrée Crouch multijoueur: Créons maintenant l'entrée pour l' accroupissement dans le dossier du lecteur Je vais aller dans le dossier de saisie. Encore une fois, cliquez avec le bouton droit de la souris, accédez à Input et créez cette action de saisie. Encore une fois, appelons celui-ci accroupi. Ouvrons maintenant notre contexte de mappage d'entrée ici. Ajoutons ce nouveau mappage. Maintenant, nous l'avons déjà fait. Je vais aller un peu plus vite, créant cette fois cette position accroupie. Pour m'accroupir, je vais cliquer ici et utiliser mon bouton de commande gauche Maintenant, vous pouvez choisir le bouton de votre choix pour les déclencheurs, je vais cliquer sur le signe plus ici. Et je veux juste que cette action d'accroupissement se déclenche chaque fois que j'appuie sur le bouton. Parce que si vous ne l' ajoutez pas en appuyant ici, cela fonctionnera très rapidement plusieurs fois par seconde. Tout comme le mouvement ici, si vous n'ajoutez aucun déclencheur, il fonctionnera simplement en continu. Cependant, cela ne se déclenchera qu'une seule fois lorsque vous appuierez dessus. Et cela ne fait que rendre le code plus optimisé. Non seulement il est pressé, mais je souhaite également cliquer ici et sélectionner Release. Parce que je veux m'accroupir lorsque je relâche mon bouton, qu'il soit enfoncé ou relâché OK, allons-y et sauvegardons ça maintenant. Fermons-le. Revenons-en maintenant au joueur. Et à l'intérieur du lecteur, ouvrons la base de joueurs. Encore une fois, cliquez avec le bouton droit de la souris, recherchez IA crouch ou quel que soit le nom que vous voulez donner à l'action de saisie. Sélectionnez l'événement ici. Maintenant, dans la valeur de l'action, vous devez faire glisser le pointeur d'ici, écrire une branche et la connecter au déclencheur. Le vrai jeu se jouera chaque fois que vous appuierez sur le bouton. Si je fais simplement glisser le pointeur d' ici et que j'écris une chaîne d'impression et que j'écris simplement enfoncée. Maintenant, il est toujours agréable d'ajouter des chaînes d'impression si vous déboguez le code Si vous avez une époque dans votre code, est très, très bien de simplement écrire des chaînes d'impression sur tout le code, par exemple en les insérant ici au milieu du code, voir si elles fonctionnent, etc. C'est toujours agréable de débugger à l' aide de chaînes d'impression. Nous pouvons maintenant déboguer la Syrie et voir si cela fonctionne. Si j'appuie dessus, il doit être écrit « pressé ». Si je le publie, il devrait simplement indiquer « publié ». Si je compile, maintenant, si je clique sur Play, si je clique sur Control, juste une fois, et si je lâche prise, que c'est sorti. Vous pouvez consulter le communiqué de presse. Communiqué de presse OK. Maintenant, cela fonctionne correctement. Nous pouvons donc les supprimer pour le moment, et nous pouvons passer à la leçon suivante. 30. 3.19 Fonction d'accroupi multijoueur: Très bien, alors allons-y et accroupissons-nous. Maintenant, pour vous accroupir, vous devez cliquer sur le composant de mouvement du personnage Tout d'abord, recherchez simplement accroupi et vous devez cliquer sur celui-ci appelé can crouch Si ce n'est pas coché, vous ne pouvez pas vraiment vous accroupir et rien ne se passera N'oubliez pas d'accéder au composant de mouvement du personnage, de rechercher accroupi et de sélectionner celui-ci, accroupi OK, maintenant cliquons à nouveau sur ce T. Maintenant, pour ce qui est de l' accroupissement, nous pouvons simplement faire glisser le pointeur ici et dire accroupissement Cela fonctionnera parfaitement pour un seul joueur. Cependant, nous travaillons avec le mode multijoueur, nous devons donc le faire fonctionner via un serveur. Maintenant, dans Honorable Engine, vous avez ce qu'on appelle un client et un serveur. Si vous cliquez ici et que vous définissez le nombre ou le nombre de joueurs sur deux, et en mode Ith, vous le configurez pour qu'il joue en tant que serveur d'écoute. Si vous cliquez sur jouer ici, vous pouvez voir que deux fenêtres s' ouvriront et que nous travaillons maintenant avec le mode multijoueur. Maintenant, dans Honorable Engine, vous avez le serveur et le client. Maintenant, le serveur est le vrai jeu. Et qu'est-ce que cela signifie ? Le serveur a l' autorité du jeu. Cela signifie que le serveur peut faire ce qu' il veut. Par exemple, disons que dans le jeu de tir à multiplicateur, j'ai un pistolet et que je tire mes balles sur ce client Maintenant, sur le client, je peux tirer sur les taches, je peux toucher le client Cependant, le client, lorsque je tire l'arme avec le client, est maintenant sur le serveur. Ce code pour tirer avec l'arme. Cela va passer par le serveur, puis le serveur va renvoyer ces informations au client et lui dire, d' accord, vous êtes autorisé à tirer. Pourquoi fait-il cela ? Et c' est en fait pour empêcher la triche. Maintenant, le serveur, encore une fois, est le vrai jeu. Cela signifie que tous les clients ici sont connectés au serveur. Le serveur peut voir le jeu tel qu'il est, par exemple, où se tiennent les joueurs, ce qu'ils tirent, quelles armes ils tiennent. Cependant, pour les clients, nous devons en fait leur envoyer toutes ces informations, du serveur au client. Par exemple, si quelqu' un pille une arme, disons que nous avons plusieurs clients Et recouvrons cet argent plus tard. Mais disons que nous avons, par exemple, quatre joueurs. Et on clique sur Play. Et ils s'ouvrent tous sur mon deuxième écran. Alors laisse-moi juste le glisser ici. Maintenant, disons que je suis ici, le serveur, et que tous ces clients jouent avec moi. Disons que ce client ici en face de moi va piller une arme Maintenant, l'arme que ce client va piller, je dois envoyer cette information Par exemple, si vous pillez un AK ou un pistolet, utilisez Agle par exemple Je dois envoyer ces informations depuis le serveur à tous les clients. Parce que si vous n'envoyez pas les informations, seul le serveur peut voir que vous avez pillé un deagle et les autres clients ne peuvent pas voir que vous détenez un Si vous n'envoyez pas ces informations des serveurs aux clients, cela ne fonctionnera pas. C'est pourquoi nous disons que le serveur est le vrai jeu, il a l'autorité du jeu et que toutes les informations sont contenues ici sur le serveur. Et le serveur doit envoyer des informations importantes aux clients. Par exemple, si l'un des clients tire une balle, ce client va dire : «  Je vais tirer une balle ». Et il va envoyer ces informations au serveur. Maintenant, le serveur va vérifier si ce client possède réellement des puces ? Parce que nous essayons d' empêcher la triche. Il va renvoyer ces informations au serveur. Le serveur va vérifier, est-ce que ce client possède des puces ? Ensuite, le service va peut-être dire, oui, ce client a vraiment des balles Ensuite, il renverra ces informations au client, puis il dira, d'accord, vous pouvez tirer. Maintenant, vous avez des balles et le client peut tirer. C'est ainsi que nous procédons ici dans la relation client-serveur, le serveur dispose de toutes les informations et le client reçoit et envoie simplement des informations afin d' empêcher la triche Bien, cette séance de groupe est terminée. Vous pouvez voir qu'ils discutent en groupe, arrêtons-nous d'ici. Nous avons maintenant cette ère ici, très, très simple. C'est juste dire d'accéder, sans essayer de lire ceci, d' obtenir le sous-système de lecteur local Et c'est en fait là-haut. Si vous cliquez simplement ici, vous arrivez ici, il est simplement indiqué que l'axe est nul. En essayant de lire cette propriété ici, la seule chose que nous devons faire est de simplement la faire glisser depuis celle-ci et de dire si elle est valide. Et allez-y, associez celui-ci au point d'interrogation. Nous nous assurons simplement que le contrôle du joueur est valide. Et s'il est valide, nous pouvons continuer et exécuter ce code. L'époque à laquelle vous arrivez ici est due au fait qu'il essaie d'exécuter le code. Lorsque le contrôle du lecteur n' est pas encore valide, vous recevrez un message d'erreur indiquant « aucun accès ». Ce que signifie axis none, c' est qu'il essaie lire la variable que vous essayez d'exécuter. Cependant, accès, cette variable est vide. Je ne vois pas de quoi tu parles. Fermons-le. Jouons à nouveau. Vous pouvez voir si je joue juste ici et que ce type est tombé par terre, parce qu'ils apparaissent tous les uns sur les autres Et vous pouvez voir que cette époque est révolue. Bien, allons-y avant que la vidéo ne soit trop longue. Allons ici dans le code accroupi. Ici, dans le code crouch, je veux d' abord créer une fonction Créons une fonction ici. Si vous cliquez sur le bouton plus cette fonction, je l'appellerai accroupi J'écris généralement devant le nom de mes fonctions afin de pouvoir les rechercher plus tard très rapidement. Là-haut. Si je les ajoute également ici, je peux voir qu'il s'agit d'un. Si je passe à nouveau au graphique des événements, je peux faire glisser cette fonction ici et en supprimer deux. Connectez l'un au vrai et connectez l'autre au faux. Ce que nous voulons faire, c'est ajouter un lingot. C'est parce que nous voulons nous accroupir ici et nous voulons nous accroupir Je vais cliquer sur cette fonction dans les entrées, je vais cliquer sur le signe plus et ajouter ce lingot appelé u. Comme vous pouvez le voir, vous pouvez ajouter un B devant les variables d' investissement et elles n' apparaîtront pas Cela se fait généralement en C plus plus. Vous pourrez les rechercher plus facilement ultérieurement. L'écriture d'un B ne sera pas affichée dans le nom si vous faites cela pour les bullins Maintenant, pour ce qui est de l'accroupissement, je vais cocher celle-ci. Je veux donc m'accroupir ici lorsque j'essaie de m'accroupir avec mon bouton de commande et lorsque je relâche le bouton que je veux relâcher, cela est dit faux cela est Maintenant, si nous passons à cette fonction d'accroupissement, cela va peut-être devenir un peu difficile Et vous devez vous entraîner un peu à l'intérieur de cette fonction. Nous pouvons maintenant cliquer avec le bouton droit sur ce crouch et je vais simplement le promouvoir en tant que variable locale et l'appeler Crouch Maintenant, ce qu'est une variable locale, elle est simplement contenue dans cette fonction. Vous voyez si je vais sur le graphique des événements, cette fonction ou cette variable n'est pas là. Et si je reviens à la fonction, vous pouvez voir que j'ai la variable locale, Crouch local Cette variable n'est en fait utilisée qu' à l'intérieur d'ici et elle n'est pas utilisée à l'extérieur. Maintenant, avant de faire quoi que ce soit, je voudrais faire traîner les choses à partir de là et dire que Switch a autorité. Ce commutateur a autorité. Vous pouvez voir qu'il possède deux épingles d'exécution. Le premier est l'autorité et l'autre la télécommande. Souvenez-vous que je vous ai dit que le serveur avait l'autorité. L'autorité signifie simplement que c'est le serveur qui exécute le code. Remote signifie que c'est le client qui exécute le code. Comme je vous l'ai déjà dit, le client doit exécuter le code via le serveur et vérifier si ce qu'il fait est légal avant nous puissions transmettre le code au serveur pour empêcher la triche Mais pour l'instant, faisons-le via le serveur. Le serveur peut simplement exécuter le code sans aucun problème, car le serveur a l' autorité sur le jeu. Donc, ce que nous voulons faire, c'est vérifier ici si c' est vrai ou faux, parce que nous l'avons défini ici sur vrai ou faux. Et ce lingot définira cette variable ici. Je vais donc prendre cette variable locale faire glisser d'ici et écrire une branche, demander si c'est vrai ou faux et la connecter à l'autorité ici. Maintenant, vous pouvez soit le faire de cette façon, soit vous pouvez le faire de cette façon. C'est très bien. Même chose. Je veux juste rester un peu plus organisée. Je le connecte donc de cette façon. Si l'accroupissement est réglé sur true, je veux m'accroupir comme ça Si ce n'est pas vrai, je veux m'accroupir. Recherchez Crouch comme ça. Très facile. Je vais également créer des variables que j' utiliserai plus tard dans le plan d'animation Créez une nouvelle variable ici, un nouveau lingot appelé crouch Ensuite, vous pouvez prendre celui-ci, faire glisser d' ici et le régler sur true. Faites-le glisser ici et réglez-le en erreur. Nous allons l'utiliser plus tard dans le plan d'animation, afin de pouvoir changer d'animation Le serveur est maintenant terminé. Vous pouvez voir si je clique sur jouer maintenant, je joue en tant que serveur et je cours ici. Je clique sur le bouton de contrôle. Vous pouvez voir que la vitesse de déplacement diminue. En fait, vous êtes accroupi. Cependant, l'animation n' étant pas encore branchée, vous ne pouvez pas voir l'animation accroupie Maintenant, cela fonctionne réellement. Maintenant, pour le client, ce que nous devons faire, d'abord exécuter ce code sur le serveur pour est d'abord exécuter ce code sur le serveur pour vérifier si le joueur triche ou non Revenons au graphique des événements. Cliquez avec le bouton droit de la souris et recherchez un événement personnalisé. Créons un événement personnalisé. Appelons celui-ci SRV pour serveur. Et je l'appellerai accroupi. Parce que maintenant je veux le faire passer par le serveur. À l'intérieur de cet événement, cliquons dessus. Et maintenant, vous pouvez voir des répliques. Ce que vous devez faire est de cliquer ici, de l'exécuter sur le serveur, puis de cliquer sur Fiable. Nous organisons maintenant cet événement ici via le serveur. Reprenons cette position accroupie et connectons-la simplement Et associez ce harcèlement à ici. Et il créera automatiquement cette variable à l'intérieur de cet événement. Maintenant, nous sommes en train de le faire passer par le serveur. Ce que nous devons faire, c'est revenir à la fonction ici depuis la télécommande. Nous devons partir de là et rechercher l' événement d'accroupissement du serveur que nous venons Maintenant, pour cette entrée, il suffit de la connecter ici, créer un nœud de route arrière juste pour rester un peu organisé. Maintenant, il passe par le serveur. Une fois qu'il a été exécuté sur le serveur, il peut désormais exécuter ce code avec le serveur. OK, c'était ça. Nous pouvons maintenant compiler, et cela devrait très bien fonctionner. Si je clique sur jouer, je suis maintenant le serveur et je clique sur le contrôle. Vous pouvez voir que je suis accroupi, je me déplace lentement. Même chose pour le client. Je peux me déplacer et je peux cliquer sur le bouton de contrôle. Et moi aussi, je bouge lentement. Comme vous pouvez le voir sur le serveur, je me déplace également lentement. Cela signifie qu'il fonctionne correctement. Les deux travaillent lentement. Juste pour le parcourir très, très rapidement, cela peut être un peu confus au départ. Nous avons créé cette fonction d'accroupissement Nous avons ajouté le lingot pour qu'il soit accroupi ou accroupi lorsque nous appuyons sur le bouton ou que nous le relâchons Dans cette fonction, nous n'avons essentiellement que le lingot qui définit cette variable locale Ensuite, nous avons le commutateur, l'autorité vérifie si c'est le serveur sur lequel nous jouons actuellement à As ou le client, si c'est le serveur, vous pouvez simplement exécuter le code. Maintenant, si tu es accroupi, nous allons nous accroupir Si vous n'êtes pas accroupi, nous allons nous accroupir en fonction de la valeur que vous avez définie ici. Maintenant, si vous jouez en tant que client, vous devez d'abord passer par le serveur et vérifier auprès du serveur quelle est la valeur que vous avez ici. Il va donc passer par le serveur. En fonction de la valeur que vous avez branchée, il va prendre cette valeur et s' accroupir ou s'accroupir également sur le client 31. Plan d'animation accroupi 3.20: Maintenant que le personnage accroupi fonctionne dans le plan, allons-y et faisons-le dans le plan d'animation Passons au dossier Blueprints, animations du lecteur com Passons maintenant au plan d'animation. Maintenant, à l'intérieur d'ici, vous pouvez revenir au graphique d'animation ici. Vous pouvez cliquer sur votre machine à états. À l'intérieur d'ici, nous devons créer un nouvel État. Faisons grève à partir d' ici et à droite. Ou cliquez sur cet État ici. Accroupissons-nous à droite Maintenant nous allons nous accroupir Tu n'es pas obligée de venir ici. Vous pouvez également simplement le faire glisser ici sur le côté ou vers le haut. J'aimerais juste le faire glisser ici. Pour l'accroupissement. J' imagine juste que je suis accroupi, en train de descendre ici. Ensuite, nous pouvons double-cliquer sur cet état accroupi vers la droite Nous l'avons fait accroupir sans arme. Nous pouvons faire glisser cet espace de lentille dans le graphique, puis nous pouvons le connecter. N'oubliez pas que nous avons déjà défini la direction et la vitesse du mouvement, nous pouvons donc les faire glisser et les connecter ici. Alors compilons. Nous recevons maintenant une erreur ou un avertissement car nous n' avons pas effectué la transition. Revenons ici dans le graphique d'animation, vous pouvez revenir à votre machine à états. Et à l'intérieur d'ici, vous voyez maintenant ce cercle. Et ce cercle est une règle de transition. Tu dois raconter ton jeu. Quand souhaitez-vous passer du veille au mode accroupi Vous devez lui donner une transition. Maintenant, si vous double-cliquez dessus ici, vous pouvez voir qu'il s'agit de la transition, le lingot. Nous devons donc lui donner une transition Et pour ce faire, vous devez d' abord accéder au graphique des événements et créer du code avant de pouvoir lui donner une transition. Il faut savoir quand le joueur est accroupi. Maintenant, si vous revenez dans notre base de joueurs, vous revenez ici dans notre fonction accroupi Si vous ne cliquez pas ici. Nous avons créé celui-ci appelé Crouch. Ce lingot, n' oubliez pas que ce n'est pas le local que nous avons fabriqué C'est cette variable haussière globale que nous avons créée. Nous pouvons utiliser celui-ci pour savoir si le joueur est accroupi ou non et nous pouvons l'utiliser ici dans le plan d' animation Nous devons d'abord obtenir la référence au joueur. le moment, il s'agit d'un pion de joueur, mais nous avons besoin d'une référence à la base de joueurs , car nous devons maintenant utiliser ce lingot Revenons ici et revenons au dossier Interfaces. Cliquez avec le bouton droit sur Blueprint et créons une nouvelle interface Blueprint Appelons celui-ci dans la base de couches parce que nous voulons faire référence à la base de joueurs. Ouvrons-le. Et ici, dans cette interface de plan, comme pour la manette du joueur, si vous ne vous en souvenez pas, vous pouvez continuer à regarder l'interface de la manette du joueur Quand nous sommes arrivés ici, c'est en fait la même chose. Vous pouvez cliquer ici, cliquer sur deux pour changer le nom et dire get player pour obtenir la référence du joueur. Vous pouvez également simplement l'appeler get get player base reference. C'est pareil. Ensuite, vous pouvez cliquer sur cette fonction ici dans la sortie. Allez-y et créez une nouvelle variable. N'oubliez pas qu'ici, vous devez sélectionner Eva à laquelle vous essayez de faire référence. Nous essayons de faire référence à la base de joueurs de BP. Allez-y, sélectionnez-le. Laisse-moi juste appeler ça un joueur. Je peux compiler maintenant. Et en allant à la base de joueurs. Pour accéder à la classe, en fait dans les valeurs par défaut de la classe, les paramètres de classe se en fait dans les valeurs par défaut de la classe, trouvent ici, dans les interfaces, cliquez sur Ajouter et recherchez la base de joueurs T. Celui-ci se compile et vous verrez cette interface. N'oubliez pas que si vous ne le voyez pas, même si vous l'avez ajouté, vous devez le compiler dans l' interface avant de pouvoir le voir. Il est très important de cliquer sur le bouton Obtenir la référence du joueur. Et ici, nous pouvons à nouveau faire glisser et écrire « self » comme avant. Parce que n'oubliez pas que nous faisons partie de la base de joueurs. Nous disons simplement que cette variable correspond à cette base de joueurs. Maintenant, nous pouvons aller au. Compilons d'abord. Nous pouvons maintenant passer au plan d'animation. Et ici, nous avons déjà le pion du joueur. Au lieu de simplement faire glisser le pointeur d'ici, permettez-moi de créer une nouvelle variable Je vais juste le faire glisser ici placer et cliquer sur Obtenir. Et je vais juste l'utiliser ici au lieu de le faire glisser d'ici Je pense que cela aura l'air un peu désordonné lorsque les lignes seront au-dessus de tout le code Permettez-moi de le prendre ici comme un nouveau et de dire layer ref. Nous avons maintenant ce get player ref. Allons-y et connectons-le. Nous pouvons maintenant utiliser la variable. Maintenant, si vous faites glisser le pointeur d' ici et accroupissez-vous vers la droite. En fait, c'est un petit truc que je veux te montrer. Si vous avez raison et que vous souhaitez utiliser la variable bullion, les variables se trouvent toujours ici. Vous pouvez voir que c'est la variable d' accroupissement dont nous avons besoin. Cependant, si vous ne le voyez pas, vous pouvez toujours créer un espace et écrire variable VAR pour variable et vous pourrez voir toutes les variables. Juste une petite astuce pour le retrouver rapidement. Obtenir cette variable d'accroupissement que nous avons créée. Je peux maintenant cliquer avec le bouton droit sur cette variable promue en variable à l'intérieur du plan d'animation Et je vais juste l'appeler, il est accroupi comme ça Ou vous pouvez simplement appeler accroupi de la même manière. Allez-y, connectez-le et cliquez sur Compiler. OK, maintenant nous nous accroupissons. Nous en prenons la valeur ici dans la base de joueurs. Donc, si c'est vrai ou faux, nous prenons cette valeur et la mettons dans cette variable. Nous pouvons maintenant utiliser cette variable pour la règle de transition. Si je reviens au graphe d'animation, à ma machine à états et à cette règle de transition, vous pouvez continuer et cliquer dessus. Maintenant, il vous demande, quand dois-je passer de la course inactive à la position accroupie ? Et on peut le faire glisser d'ici et le brancher ici. Lorsque nous sommes accroupis, c'est vrai, alors nous voulons aller de l' avant et faire Cependant, revenons en arrière. Nous devons cliquer dessus et faire glisser le pointeur à partir d'ici. Et branchez-le ici également. Parce qu'à un moment donné, nous devons passer de l'accroupi au mode veille, en cliquant sur la deuxième règle de transition C'est revenir de la position accroupie à la course. Je vais le faire glisser et ici nous pouvons écrire N B et celui-ci appelé N lingot En gros, ce que nous voulons dire , c'est que si l'accroupissement est faux, nous voulons revenir mode course parce que nous ne sommes plus accroupis Ce sera faux si les evalu ne sont pas accroupis, car nous l'avons configuré ici pour qu'il tombe dans la base de joueurs Allons-y et compilons. Et maintenant, vous pouvez voir que toutes les erreurs ont disparu. Voyons maintenant s'il nous manque quelque chose. Ici, nous avons tout intégré dans la direction et la vitesse du mouvement Essayons-le en fait. Cliquons sur Play. Et je vais cliquer sur, en fait je suis bloqué ici en tant que joueur. Permettez-moi de cliquer à nouveau sur Play. Maintenant je marche. En tant que joueur, je vais garder le contrôle pour m'accroupir. Et vous pouvez voir que je suis accroupi. Cela fonctionne. Mais vous pouvez voir sur mes autres écrans ne suis pas accroupi. Cela s'explique par le fait que nous travaillons désormais en mode multiplicateur. Vous pouvez voir que je suis accroupi en tant que serveur, les autres ne le voient pas. Je suis accroupi. Cependant, si je prends ce client ici et que je m'accroupis, vous pouvez voir que le serveur peut voir que je suis accroupi comme ça si je suis accroupi en tant que client, mais si je suis accroupi en tant que serveur, je suis accroupi Cependant, les clients ne peuvent pas voir que je suis accroupi. Et n'oubliez pas que dans la leçon précédente, je vous ai dit que nous travaillions en multijoueur. Et le serveur doit renvoyer les informations au client et lui dire, hé, je suis accroupi maintenant, de mettre à jour mon animation Le serveur doit envoyer ces informations, sinon il ne pourra pas voir ce que je fais. C'est ce que nous allons faire dans la prochaine leçon avec la variable réplication. 32. 3.21 Réplication variable: C'est vrai. Allons-y et réparons la position accroupie. Avant cela, je vais cliquer ici et sélectionner deux joueurs. Parce que je ne veux pas charger trop de joueurs tout le temps. Si je clique sur Play, vous pouvez voir ici comme avant, si je suis accroupi sur le serveur, le client ne peut pas voir Je suis accroupi, je, je suis accroupi sur le client. Le serveur peut voir sur le serveur lui-même que je suis accroupi. N'oubliez pas, comme avant, que nous devons envoyer des informations au client et lui dire que je suis accroupi en ce moment C'est très facile à faire. Donc, si vous vous rendez dans une base de joueurs accroupie, c'est essentiellement ce qui ne va pas dans le plan d'animation en ce moment Si nous revenons aux règles de transition, ces règles de transition sont tirées de ces lingots. Ce lingot contrôle si nous sommes accroupis ou non ici La variable, ces informations à l'intérieur d'ici, doivent être envoyées au client Si vous cliquez dessus, vous pouvez voir les variables peuvent également être répliquées, pas seulement les événements, vous pouvez voir l'événement Nous l'avons déjà répliqué pour l'exécuter sur le serveur, mais les variables peuvent également être répliquées Si vous cliquez sur cette variable, vous pouvez voir que la réplication est définie ici sur none. Mais nous devons envoyer ces informations au client. Le client dispose également des informations si nous sommes accroupis ou non en cliquant ici et en les configurant pour les reproduire Et il y aura le symbole ici parce qu'il est reproduit. Maintenant, je peux cliquer sur Compiler. Maintenant, il est très important de savoir que les variables ne peuvent être répliquées que via le serveur Vous ne pouvez jamais prendre de variable ici. Par exemple, si je suis sur le client ici et que je le colle comme ça, vous ne pourrez jamais le faire. Il ne peut pas être répliqué via le client, variables ne peuvent être répliquées que sur le serveur Il est très important de se rappeler que vous ne pouvez pas définir une variable et la répliquer via le client, n'arrivera jamais Ici, vous pouvez voir qu' il fonctionne via le serveur parce que nous avons l'autorité. Il traverse le serveur et se réplique aussi bien que la télécommande Il fonctionne en fait sur le serveur parce qu'il passe d'abord par le serveur, puis nous répliquons cette variable C'était donc en fait la seule chose que nous devions faire, suffisait de cliquer dessus et de le configurer pour le reproduire Maintenant, si nous pouvions nous plaindre, comme vous pouvez le voir, je suis le serveur. Maintenant, si je le maximise un peu. Vous pouvez donc voir que si je suis accroupi en tant que serveur, je suis maintenant accroupi à la fois sur le client et sur le Et si je suis le client et que je suis accroupi également, je suis accroupi sur le client et sur le serveur Parfois, il est également agréable de cliquer ici, passer en mode Net et de jouer en tant que deux clients. Alors vas-y et joue. C'est toujours agréable de le tester dans les deux sens. Donc en tant que serveur et client, mais aussi en tant que client et client pour voir s'ils peuvent réellement se voir. Si je m'accroupis sur le client, l'autre client peut également me voir Cela fonctionne et revenons en arrière et changeons-le pour jouer en tant que serveur d'écoute. Pour l'instant, allons-y sauvegardons tout et passons à la leçon suivante. 33. 3.22 Lissage de l'animation: Quand je joue au jeu, vous pouvez voir que mon animation n' est pas vraiment fluide. Donc, si je me promène, vous pouvez voir les transitions très rapidement comme lorsque je m'accroupis ici, cela se produit tout simplement Tout d'un coup, je peux vraiment atténuer un peu les choses et leur donner une belle apparence. Et ce n'est en fait qu'un seul ajustement que nous devons faire. Si vous allez dans le lecteur et que vous cliquez sur les animations. Et vous cliquez, par exemple, sur ce blend space run. Vous avez celui-ci ici qui s'appelle Weight Speed. Si vous le mettez sur quelque chose de très bas, comme un, par exemple. Et tu peux cliquer sur jouer et tu peux voir ce qui se passe. Vous pouvez voir si je commence à marcher ou à courir, vous pouvez voir la transition vers cette animation de course à pied. Si je m'arrête, ça passe d'une course à l'autre, ça fait une transition. Vous pouvez voir maintenant que c'est très fluide lorsque je cours et que je m'arrête. Nous devons donc le mettre à un chiffre qui semble bon, sans trop lisser Si vous augmentez ce nombre, ce sera moins fluide. Habituellement, quelque chose autour de 56 est vraiment bon. Cinq en ce moment, c'est beaucoup mieux qu'avant. Si vous le mettez à quelque chose comme trois, cette vitesse de poids, mettons-le à trois et cliquons sur jouer. Parfois, je n'aime pas trop le souligner parce que le personnage se sent lourd quand je me promène. Mais vous pouvez constater que la transition est aujourd'hui bien plus importante qu'auparavant Je pense que trois c'est bien trop bas. Nous pouvons donc en essayer quatre et cliquer sur jouer. Ensuite, nous pourrons courir et voir ce qui se passe. Quatre, c'est encore trop lourd. Je pense que cinq était un bon chiffre. Ou pour le lisser , si vous vous contentez de courir comme ça, ça a l'air Peut-être même 5,5 je n'aime pas que ce soit trop bas ici, 5,5 je n'aime pas que le personnage soit trop lourd. Faisons-le avec les autres. Cliquons sur l'accroupissement, mettons la vitesse du poids à 5,5 et cliquons sur la marche, mettons également la vitesse du poids à 5,5 Allons-y et cliquons sur Fichier et Enregistrer tout. Cliquons sur Play. Et vous pouvez voir maintenant que je cours ou que je suis accroupi, tout se lisse En fait, vous pouvez voir beaucoup plus la différence lorsque vous êtes accroupi Je pense que si je répétais le fait de s'accroupir à zéro. Et si je clique sur Play, vous pouvez voir les transitions très rapides. Quand je suis accroupi, c'est presque anormal. Si je le mets sur 5.5, que je sauvegarde et que je clique sur jouer. Maintenant, quand je m'accroupis et que je fais ça, vous pouvez voir que c'est beaucoup plus fluide qu'avant Cela ne semble pas anormal. Juste un tout petit ajustement qui peut améliorer considérablement l'apparence de vos animations considérablement l'apparence de vos animations lorsque vous les lissez. 34. 3.23 Promenade multijoueur: Nous sommes maintenant prêts à marcher. Maintenant, marcher est la même chose que s'accroupir. Si nous revenons au joueur et à la base de joueurs, c'est en fait le même processus que celui que nous avons fait ici avec le accroupi Essaie de le faire seul si tu peux, et essaie de voir jusqu'où tu peux aller sans mon aide. C'est un très bel exercice si vous voulez continuer avec moi, allons-y et continuons. Je vais procéder à la saisie et en créer une nouvelle. Passons à Input et cliquez sur Input Action. Appelons celui-ci. Je marche. Et allons-y à l'intérieur d'ici. À l'intérieur, on n'a pas vraiment besoin de faire quoi que ce soit. Passons au contexte de mappage des entrées ici. Cliquons sur le signe plus et ajoutons-le ici en tant que promenade. Pour marcher, je vais maintenir la touche Shift enfoncée, cliquer sur celle-ci, cliquer sur Shift sur mon clavier. En ce qui concerne les déclencheurs, je vais cliquer ici, deux avantages, et le premier est enfoncé et le second est relâché Ce bouton se déclenche chaque fois que j'appuie dessus pour marcher et chaque fois que je le relâche pour arrêter de marcher. Maintenant, allons-y et économisons ici. Et revenons à la base de joueurs ici. Je vais écrire, cliquer et écrire une promenade et sélectionner une action de saisie nouvellement créée. Maintenant, comme avant, sortons de ce lingot et écrivons une branche à partir du vrai Nous allons marcher parce que c' est à ce moment-là que nous avons appuyé sur Shift. Lorsque nous relâcherons le shift, nous arrêterons de marcher ici à partir du faux. Créons une nouvelle fonction comme avant. Je vais appeler ça une promenade. Revenons au graphique des événements. Je vais faire glisser cette promenade ici et la relier ici. Et faites-le glisser à nouveau. Et connectez-le ici. Encore une fois, comme avant, nous avons besoin d'un lingot pour marcher ou arrêter de marcher Je vais compiler et cliquer sur l'entrée et appeler celle-ci B walk Maintenant, pour ce lingot, je vais le régler sur vrai quand je veux marcher, et je vais le régler sur le fait qu'il tombe quand j'arrête de marcher Maintenant, comme avant, je veux le faire passer par le serveur lorsque je suis le client. Je vais donc cliquer avec le bouton droit de la souris ici, disons Server Walk. Et n'oubliez pas de configurer les répliques pour qu'elles s'exécutent sur le serveur et soient fiables Maintenant, allons-y et faisons cette promenade connectée, et prenons cette entrée pour le lingot et ajoutons-la l'événement pour qu'il crée automatiquement cette variable ici OK, la majorité est terminée. Passons à la fonction de marche à l'intérieur d'ici. Faisons un clic droit sur celui-ci et faisons-en une variable locale. Et celui-ci, nous pouvons l' appeler Walk Local. Allez-y, faites glisser le pointeur à partir d'ici et dites que Switch a autorité. Maintenant, comme avant, nous voulons d'abord exécuter le code via le serveur. Si nous sommes le client, glissez d' ici et dites « Server Walk », celui que nous venons de créer, et maintenant nous le faisons d'abord passer par le serveur. N'oubliez pas de le prendre et de le connecter au Walk, double-cliquez pour faire un nœud rond et rendre un peu plus organisé. Maintenant, prenons cette variable de marche locale et déposons-la ici. D'ici, à droite, une succursale et laissez-nous la connecter. Parce que nous devons nous demander si c'est vrai ou faux ? Parce que si c'est vrai, nous voulons marcher. S'il s'agit de chutes, nous voulons arrêter de marcher. Nous voulons peut-être commencer à courir. Allez-y et connectez tout ce dont il a besoin pour ressembler à ceci. À partir de là, ce que nous voulons faire, c'est que vous pouvez voir dans la composante de mouvement du personnage que nous avons ce qu'on appelle la vitesse de marche maximale. C'est la même chose que courir. Je ne sais pas pourquoi on l' appelle vitesse de marche, mais c'est aussi la vitesse de course pour celui-ci. C'est ce que nous voulons ajuster lorsque nous voulons marcher et ne pas marcher. Ce que nous devons faire, c'est prendre cette composante de mouvement du personnage et partir de là et dire définir la vitesse de marche maximale. C'est ce que nous voulons ajuster. Nous voulons le connecter ici. Bien sûr, il n'est pas vraiment nécessaire qu'il soit élevé. Si vous passez à la composante de mouvement du personnage en ce moment, la vitesse de course est de 600. Lorsque nous voulons marcher, nous devons le réduire à un nombre inférieur. En fait, je peux simplement cliquer avec le bouton droit sur celui-ci, le promouvoir en variable. Je vais juste appeler ça une vitesse de marche. Je n'aime pas avoir de tels chiffres statiques. Compilons et cliquons sur cette variable de vitesse de marche et définissons-la sur quelque chose comme, définissons-la simplement sur 100 ou simplement 200 pour le moment, un nombre aléatoire. Nous allons le changer plus tard lorsque nous ne marcherons plus. Allons-y, collons-le ici. Promutons-en à nouveau en variable et appelons-la, par exemple, une vitesse de course. Va le poser ici et relie-le aux chutes. Lorsque nous ne marcherons plus, nous allons rétablir notre vitesse de course. Et cliquez sur la vitesse de course. N'oubliez pas de définir la valeur par défaut. Allez-y et compilez Tout d'abord, il vous demande de compiler le plan Allez-y, compilez et réglez-le sur 600, comme par défaut. Et maintenant, nous courons à nouveau. Maintenant, comme avant, j'ai besoin d'un lingot à utiliser dans mon plan d'animation Je vais fabriquer un nouveau lingot ici, Bullet Walk. Maintenant, je peux prendre ce pull in et le régler sur true lorsque je marche. Et je le copie/colle ici. Et mets-le sur false quand je ne marche pas. N'oubliez pas que cela doit être répliqué afin que le client sache si c'est vrai ou faux pour que le plan d'animation puisse être poursuivi et configurez-le pour le répliquer également Cela étant terminé, nous avons terminé et nous devons passer au plan d'animation Mais essayons-le. Cliquons sur jouer. Et si je clique sur Shift, tu peux voir que je marche maintenant. Je marche lentement. L'animation que nous devons corriger dans la leçon suivante. Mais comme vous pouvez le constater, si je relâche ma marche, je peux courir à nouveau. C'est très, très cool. Allons-y et faisons le plan d'animation. 35. Plan d'animation de marche 3.24: maintenant au plan d'animation, passons à l'animation du joueur et ouvrons notre plan d'animation Maintenant, à l'intérieur d'ici, souvenez-vous de l'intérieur de la machine à états du graphe d'animation, glissons à partir d'ici et créons un autre état. Appelons ça une promenade. Maintenant, pour celui-ci, double-cliquons dessus et ouvrons-le. Comme avant, nous avons créé cet espace Walk Blend. Allons-y et connectons-le ici. Et faisons glisser la direction du mouvement et branchons-la ainsi que la variable de vitesse de déplacement. Et branchez-le également. Allons-y, cliquons et compilons maintenant. Retournons ici. Comme vous pouvez le constater, tout comme avant définir la règle de transition, nous devons d'abord accéder au graphique des événements et récupérer le lingot que nous venons de fabriquer auparavant à partir de la même interface ici Nous pouvons faire glisser et dire « variable de marche ». Nous pouvons obtenir ce lingot avec celui-ci. Nous pouvons écrire click et le transformer en variable et l'appeler, par exemple, c'est marcher. On peut dire que c'est marcher. Allons-y et connectons-le. Double-cliquez dessus pour créer une note de redirection, organisez-la, juste comme ça Compilons et revenons au mouvement ici. maintenant à la règle de transition, nous passons maintenant de la course à la marche On peut le traîner, c'est entrer ici, juste comme ça. Si nous marchons, nous voulons passer de la course à la marche. Allons-y et compilons. Revenons-y encore une fois. Nous devons le faire glisser d'un point à un autre, car nous voulons maintenant passer de la marche à la course à pied. Si nous ne marchons plus, faites-le glisser, prenez-le et dites harcèlement si vous ne marchez plus, ce qui signifie que ce harcèlement ambulant sera faux, alors nous voulons recommencer à courir. Sortez, cliquez et compilez. Maintenant, cela va fonctionner. Si vous cliquez sur Play et que vous pouvez cliquer sur le shift, vous pouvez voir comment je marche. Et tout fonctionne à merveille. Tout fonctionne. Vous pouvez tester l'animation si quelque chose ne va pas avec l'animation. Vous avez probablement mal défini l'espace de fusion. Mais vous pouvez voir que tout fonctionne dans tous les sens. Cependant, il y a un problème en ce moment. Si vous cliquez sur accroupi et que vous cliquez sur le bouton de marche en même temps, il ne marche plus, il ne fait pas de transition Cela est dû au fait que vous devez également faire glisser le pointeur de cette page vers celle-ci pour créer des règles de transition. Si vous êtes accroupi et que vous voulez commencer à marcher, je vais simplement le faire glisser un peu pour qu'il y ait plus d'espace et plus d'organisation Maintenant, allez-y et cliquez sur cette règle de transition. Que devrait-il se passer ? Quand dois-je passer de la marche à l'accroupissement ? Vous pouvez prendre ça en marchant et le ramener ici, comme avant le harcèlement. Si je ne marche pas, nous sommes en train de passer de la marche à l'accroupissement Nous ne marchons donc plus. Je ne marche plus, mais je suis accroupi. Si l'accroupissement est vrai, mais que courir est faux, nous devons faire glisser le pointeur à partir d'ici et dire : sélectionnez ce lingot, allez-y et connectez-les Si vous ne marchez plus et que vous êtes accroupi, allez-y et appliquez cette règle de transition Revenons ici et partons d'ici, de l'accroupissement à la marche comme ça, et double-cliquons dessus Maintenant, quand devriez-vous passer de l' accroupissement à la marche ? Si je ne suis plus accroupi, je prends celui-ci. Si je ne suis plus accroupi, juste comme ça, je marche Je veux passer à la marche. Si je ne suis plus accroupi mais que je marche, je veux faire la transition Si je clique sur jouer maintenant, tu peux voir si je m'accroupis Si je maintiens le quart de travail pour marcher et que je relâche le fait de m'accroupir, vous pouvez voir que je marche Nous pouvons également passer de la marche à l'accroupissement. Cependant, vous pouvez constater qu'il y a toujours une petite erreur. Vous pouvez voir si je m'accroupis, si je me tiens debout, déplace pour marcher et si je vois que je marche Mais si je garde le contrôle pour m'accroupir, vous pouvez voir que ma vitesse de déplacement est légèrement plus élevée parce que je suis accroupi en ce moment Il faut prendre de la vitesse en position accroupie. C'est quelque chose à faire à l'intérieur de notre joueur Dans la base de joueurs ici, nous avons parlé de vitesse de course et de vitesse de marche. Nous appliquons automatiquement cette vitesse de marche ici chaque fois que nous marchons, même si nous sommes accroupis C'est une petite époque et je voudrais vous présenter plus tard les énumérations Et nous pouvons rendre ce système beaucoup plus intelligent, mais pour le moment, tout fonctionne. Et passons à la leçon suivante. 36. 3.25 Saut multijoueur: Fais le saut. Allons-y, dans le dossier des plans, passez à la saisie du joueur Allons-y et effectuons une action de saisie. Tout comme avant. Vous pouvez cliquer ici avec le bouton droit de la souris, accéder à section Entrée et créer une action de saisie. Appelons ça un saut à l'intérieur d'ici. Nous n'avons pas vraiment besoin de faire quoi que ce soit, arrêtons l'action de saisie. Passons plutôt au contexte du mappage des entrées, minimisons tout cela afin de voir ce que nous faisons. Cliquons sur le signe plus haut et ajoutons le saut. Si vous recherchez jump et que vous sélectionnez l' action de saisie que vous venez d'effectuer. En ce qui concerne les déclencheurs, comme précédemment, je vais cliquer sur le signe plus ici et je vais sélectionner la presse. Chaque fois que j'appuie, choisissons la barre d'espace. Je peux donc cliquer ici et cliquer sur la barre d'espace. Ainsi, chaque fois que je clique sur la barre d'espace, cette action de saisie est déclenchée. Maintenant que cela a été ajouté, vous pouvez continuer et cliquer sur Enregistrer. Fermons-le et passons à la base de joueurs. À l'intérieur de la base de joueurs où se trouvent tous nos mouvements dans le graphique des événements, vous pouvez cliquer avec le bouton droit de la souris et rechercher un saut, puis sélectionner cet événement de saut. Maintenant, pour cet événement de saut, nous voulons simplement faire glisser le pointeur d'ici et sauter vers la droite. Ensuite, vous pouvez sélectionner cette fonction appelée saut. Maintenant, pour que cela fonctionne, cela fonctionne déjà, comme vous pouvez le voir ici. Nous avons fait tout cela en marchant et en nous accroupissant, mais le saut dans le moteur Unreal est déjà reproduit et Vous n'avez donc pas vraiment besoin de faire plus que cela. Vous pouvez voir si je compile maintenant et si je clique sur jouer et que vous pouvez cliquer sur la barre d'espace, vous pouvez voir que je saute en ce moment. L'animation n'est pas correcte car nous n'avons rien défini dans le plan d'animation Mais comme vous pouvez le voir ici, si je saute en tant que client, cela fonctionne et si je passe en tant que serveur, cela fonctionne également. Jump inside of Wheel Engine est déjà multijoueur. En fait, vous n'avez pas besoin de faire plus que cela. Cependant, avant cela, je veux juste m'assurer que le joueur ne peut pas envoyer de spam le bouton de saut alors qu' il est déjà dans le saut. Parce que vous pouvez voir ici, si je fais glisser le pointeur d' ici et que j'écris une chaîne d'impression. C'est toujours agréable d'utiliser une chaîne d'impression pour déboguer afin de pouvoir compiler et cliquer sur Play Vous pouvez voir si je ne fais que spammer mon bouton Space. Je peux spammer le saut même si je suis en l'air. Pour résoudre ce problème, juste pour l'optimiser, nous pouvons utiliser cette composante de mouvement du personnage que nous pouvons faire glisser d'ici et dire qu'elle nous pouvons utiliser cette composante de mouvement du personnage tombe. Cela indique essentiellement si le joueur est en l'air ou non. Nous pouvons prendre ça ici et maintenant je vais dire non pour des lingots Ce que nous voulons dire, c'est que nous voulons juste sauter chaque fois que mon personnage ne tombe pas. Cela signifie que le personnage n'est pas en l'air et donc j'ai envie de sauter. Si le personnage est en l' air, je ne veux pas sauter. On peut le faire glisser d'ici, le prendre et en faire une branche. Nous pouvons l'éloigner un peu afin d'avoir plus d'espace pour travailler et le connecter ici. Ce que nous voulons dire, c'est que si mon personnage ne tombe pas, c'est-à-dire que mon personnage n' est pas en train de sauter, nous voulons aller de l'avant et sauter. Si vous compilez, que vous cliquez sur Play et que vous spammez le bouton de saut, en fait, écrivons une chaîne d'impression ici pour que vous puissiez voir ce qui se passe. Compilons, sauvegardons et jouons. Si je fais passer mon bouton Espace, vous pouvez voir que je ne peux le spammer que lorsque j' atterrisse au sol. Il ne se déclenche qu'une seule fois. Cela rend le jeu plus optimisé, juste pour le rendre un peu plus propre ici. Ce que vous pouvez faire, c'est facultatif, bien sûr, mais ce que vous pouvez faire, c'est passer sur ces nœuds et écrire « click and say collapse  » dans une fonction. Maintenant, cette fonction que vous pouvez appeler, par exemple, ne saute pas. Au lieu de le faire avec les entrées ici, des épingles d'exécution. Celui-ci permet essentiellement d'obtenir des informations si vous double-cliquez sur cette fonction ici, si vous double-cliquez dessus et que vous y entrez. Et je vais juste organiser ça un petit peu. Vous pouvez voir que nous recevons juste quelques informations. Nous ne définissons aucune nouvelle information, nous cherchons simplement à savoir si le joueur tombe ou non. Au lieu d'avoir ces épingles d'exécution, cela n'a pas vraiment de sens pour les fonctions qui obtiennent simplement des informations. Nous pouvons cliquer sur la fonction et sélectionner pure. Pure signifie simplement qu'il s'agit d'une fonction qui obtient des informations. Nous n'avons pas besoin de l' exécuter dans le code car nous ne définissons rien de nouveau ici. Nous pouvons simplement les assembler. Et maintenant vous dites que si le joueur ne saute pas, vous pouvez continuer et sauter. Et vous pouvez voir que vous pouvez rendre les choses un peu plus propres si vous les réduisez à des fonctions. Vous pouvez donc cliquer sur Compiler et jouer, et simplement le tester. Et tout fonctionne la fois sur le client et sur le serveur. Et allons-y et élaborons le plan d'animation. 37. Plan d'animation de saut 3.26: Fais l'animation. Passons aux animations. Et à l'intérieur du plan d'animation du joueur. Maintenant, à l'intérieur d'ici, je vais cliquer ici , cliquer avec le bouton droit de la souris et fermer les onglets sur la droite, juste pour que ce soit plus propre. Encore une fois, je vais ouvrir le graphique d'animation. Ouvrez la machine à états que nous avons créée ici. Pour le saut, nous avons besoin de trois états. Pour le premier, vous pouvez faire glisser le pointeur d' ici et créer un nouvel état. Je vais appeler celui-ci Jump Start. Ensuite, vous pouvez faire glisser le pointeur à partir d'ici et créer un nouvel état appelé jump loop ou jump air. Et vous pouvez faire glisser le pointeur à partir de celui-ci et créer un troisième état appelé jump end. Maintenant, pour ce qui est du jump end, vous pouvez le reconnecter au mode inactif. Nous avons maintenant trois états et nous devons y ajouter les animations. La façon dont cela va fonctionner, c'est que lorsque je saute, j'ai une animation de démarrage. Si je clique dessus et que je cherche simplement « jump here » dans mes animations, vous avez celle-ci intitulée Jump Start Unarmed Assurez-vous simplement que c' est celui qui n'est pas armé. Cliquez dessus et faites-le glisser ici et connectez-le. Si vous voulez voir à quoi ressemble l'animation, vous pouvez toujours double-cliquer dessus. Et voilà à quoi ça ressemble. Nous avons une première animation de saut que nous allons suivre avant de passer à l'animation où nous sommes en l'air. Retournons ici. Maintenant que nous avons connecté, revenons en arrière, cliquons sur le jump air et prenons celui-ci appelé Jump A unarmed Et mettez-le ici pour le dernier. Revenons au point de départ. Faisons le saut sans armes. Si je peux le trouver, celui-ci sautera la terre ferme sans arme. Nous pouvons le prendre, le connecter et continuer à compiler, d'accord. Maintenant, comme avant, nous devons définir ces règles de transition, cliquons sur la première. La première, en gros, lorsque nous sommes en l'air, comme nous l'avons fait ici dans la base de joueurs, si vous revenez en arrière comme nous l'avons fait ici pour le saut, si le joueur tombe, cela signifie que nous sommes en l'air. Cela signifie que nous voulons vraiment sauter. Nous devons d'abord entrer dans le graphique des événements et coder qu'ici, en tant que joueur, comme vous l' avez fait dans la base de joueurs, vous pouvez faire glisser le pointeur à partir de celui-ci et obtenir la composante de mouvement du personnage. Ensuite, à partir de la composante de mouvement du personnage vous pouvez le faire glisser et dire qu'il tombe. Si nous sommes en baisse, vous pouvez cliquer dessus avec le bouton droit de la souris et variable et vous pouvez dire que celle-ci est dans l'air. Cela signifie que nous sommes sur le point de franchir le pas. Vous pouvez également l'appeler is jump si vous voulez avancer et compiler Now à l'intérieur du graphe d'animation. Revenons-en au saut ici. Cette règle de transition. Supposons que c'est dans les airs et connecté. Maintenant que nous sommes transférés, je reviens ici. Nous passons au démarrage dès que nous sommes dans les airs Chaque fois que nous cliquons sur ce bouton d' espace ici. Du début au saut, nous pouvons cliquer dessus. La fonction que nous voulons utiliser ici s'appelle le temps restant. Si vous cliquez avec le bouton droit de la souris et recherchez le temps restant, celui-ci est appelé ratio de temps restant. Assurez-vous simplement que c'est un ratio. Vous pouvez faire glisser le pointeur et dire moins, moins qu'ici, puis vous pouvez le connecter. Ce que nous voulons dire ici, c'est que nous voulons passer d'une animation de démarrage à une animation de saut, une animation chaque fois que le temps restant est inférieur au nombre que vous avez indiqué ici. Par exemple, si je branche 0.5 et que je compile, continuons et je pourrai vous montrer plus tard ce que cela fait. Revenons donc ici pour le saut ici. Si je clique sur la règle de transition entre le jump air et le jump end, mais celle-ci, nous allons atterrir chaque fois que nous ne serons plus en l'air. Parce que vous pouvez imaginer que le joueur saute puis il atterrit à nouveau sur le sol. Lorsque le joueur atterrit au sol, nous voulons jouer à cette animation de saut lorsque le joueur n' est plus en l'air. Nous pouvons donc obtenir cela, disons pas des lingots, et nous pouvons connecter cela Lorsque le joueur n'est plus en l'air, nous voulons passer à l'animation du jump end. Maintenant, pour celui-ci, comme avant, nous voulons écrire «   cliquer » et rechercher ratio de temps restant pour le terrain de saut lorsqu'il est inférieur à un nombre que nous avons saisi ici. Ensuite, nous voulons arrêter l'animation du jump end et revenir à la phase d'ajout. Pour celui-ci, je vais écrire à nouveau 0.5 et je vais compiler. Maintenant, nous pouvons l'essayer et voir ce qui se passe si vous cliquez sur play et que vous maximisez cela ici. Quand je cours et que je saute, vous pouvez voir que j'ai une animation de démarrage. J'ai également une animation Jump Land. Vous pouvez le voir plus clairement si je réduis ce chiffre à un niveau très bas. Si je reviens à celui-ci également et que je le place à quelque chose de très bas, vous pouvez voir les transitions. Si je clique sur play jump, il y a une animation jump start. Et il possède une animation Jump Land. Et voyez que l' animation de Jump Land est plus visible. Maintenant, il semble que le joueur glisse sur le sol lorsqu'il atterrit. C'est ainsi que vous pouvez le contrôler ici pour le ratio de temps restant. Si vous cliquez dessus, plus vous le placez haut, plus l'animation s'interrompra rapidement. Si vous le mettez très bas, vous pouvez voir que l'animation ne s'arrête pas rapidement. Et on dirait que le joueur glisse. Cependant, si vous le placez à quelque chose de très haut, par exemple 0,9 si vous sautez, vous pouvez voir que le joueur ne glisse plus. L'animation du saut s' arrêtera beaucoup plus rapidement. Lorsque ce nombre est plus élevé, il vous suffit de vous asseoir ici et d'ajuster ce nombre ainsi que ce nombre. Pour démarrer, il vous suffit cliquer plusieurs fois sur Play, d' essayer de sauter, de voir ce qui fonctionne pour vous, voir ce qui vous convient le mieux et d' essayer d'ajuster ces chiffres. J'essaie de contourner cela, et le chiffre qui me convient le mieux pour le départ est 0,8. Si je reviens pour le saut, c'est 0,9. C'est correct. Cliquons donc sur Play et voyons à quoi cela ressemble. Maintenant, si nous sautons, vous pouvez voir à quoi cela ressemble. Vous pouvez toujours les ajuster un peu plus si vous le souhaitez. Mais je pense que c'est un bon point de départ pour le saut. Maintenant, ce que tu peux faire aussi. Vous pouvez voir ici si je clique sur jouer, que je me promène touche Shift enfoncée pour me déplacer et que je clique sur Sauter. L'animation ne fonctionne pas. C'est parce que, souvenez-vous que vous devez faire la transition après la marche. Vous n'avez pas encore de transition à faire glisser entre la marche et le point de départ. À partir d'ici, vous pouvez voir cette règle de transition comme avant. Tout comme vous l'avez fait ici pour le ralenti, vous utilisez le lingot Is in Air Vous devez cliquer ici et utiliser la même chose. Si vous êtes en l'air, vous pouvez passer de la marche au saut. Maintenant, je ne sais pas si je veux passer de l' accroupissement au saut, mais vous pouvez ajouter ce mécanisme à votre jeu, mais je ne veux pas l'ajouter pour le moment Je ne pense pas que je vais l' avoir comme ça. Vous pouvez donc cliquer sur jouer maintenant, et vous pouvez marcher en appuyant sur Shift, vous pouvez cliquer sur l'espace. Et vous pouvez désormais également le voir passer à l'animation du saut lorsque vous marchez. 38. 3.27 Introduction aux énumérations: le moment, je voudrais changer quelque chose avec le mouvement ici. Vous pouvez voir si je clique sur Shift et que je marche et si je garde le contrôle, vous pouvez voir que je ne peux pas vraiment m' accroupir pendant que je maintiens vous pouvez voir que je ne peux pas vraiment le shift Si je maintiens la touche Shift pour marcher et que je le contrôle en même temps, je ne suis pas vraiment accroupie Je dois appuyer sur Shift , puis je dois lâcher Shift, puis appuyer sur C. Je n'aime pas vraiment ça. J'aime, par exemple, si vous cliquez sur Crow, vous appuyez sur Shift en même temps, cela marchera ici comme ça Mais il ne le fait pas pour le moment. Je dois relâcher le bouton pour pouvoir marcher. Et je dois relâcher le bouton de marche. Et puis cliquez sur «   Accroupi » avant que je puisse m'accroupir. Et je n'ai pas vraiment envie de le faire. Allons-y, corrigeons ce problème et rendons le système un peu plus avancé afin qu'il puisse accepter de telles entrées. Ce que nous allons utiliser pour cela, ce sont des énumérations. Dans ces leçons, je veux simplement vous présenter les énumérations Vous pouvez retourner dans le dossier des plans et cliquer ici avec le bouton droit de la souris pour créer un nouveau dossier et appeler celui-ci enoms ou C'est à vous de décider. Vous pouvez cliquer avec le bouton droit sur ce dossier, définir une nouvelle couleur et simplement utiliser la même couleur qu' auparavant à l'intérieur de ce dossier. Cliquez avec le bouton droit de la souris, accédez au Blueprint et sélectionnons celui-ci appelé énumération Allez-y, créez-le, et je l'appellerai comme préfixe et je vais l' appeler Movement States Et vous pouvez l' ouvrir et vous pouvez voir une énumération n'est en fait qu'une liste d'éléments Vous pouvez cliquer ici pour ajouter un article. Si je clique ici quelques fois, vous pouvez voir qu' une énumération n'est qu'une liste d'éléments que vous pouvez créer Il peut s'agir d'une liste de n'importe quoi, par exemple une liste de produits alimentaires, une liste d'armes, une liste d'états du mouvement Comme nous ne faisons ici qu'une liste de tout ce que vous souhaitez. Il peut également s'agir d'une liste d'objets que vous pouvez récupérer ou d'une liste des parties que vous avez dans votre jeu Tout ce dont vous pouvez faire une liste, vous pouvez le créer ici. En cliquant sur ces icônes, vous pouvez supprimer les éléments de la liste. Pour le premier, nous allons simplement faire une liste des états de mouvement. Le premier état de mouvement que nous avons est la course à pied. Ensuite, vous pouvez cliquer à nouveau ici. Ensuite, nous avons la marche à pied. Maintenant, il n'est pas vraiment nécessaire que ce soit dans un ordre précis. Vous pouvez, par exemple, courir d'abord et/ou marcher d'abord et ainsi de suite. Mais à l'heure actuelle, nous avons la course à pied et la marche, et nous avons aussi le fait accroupir et vous pouvez continuer à économiser C'est très, très simple et énumération n'est qu' une liste d'éléments Dans ce cas, nous créons une liste des états du mouvement, et nous les utiliserons dans la leçon suivante pour rendre le système un peu plus avancé pour le mouvement. 39. 3.28 Changer les variables de mouvement en enums: Maintenant que nous avons créé l'énumération, cliquons sur le lecteur Allons à l'intérieur de la base de joueurs. Revenons maintenant au graphique des événements ici. Et je vais faire glisser cet onglet sur le côté. Il a donc un peu plus de structure comme celle-ci pour le premier. Par exemple, pour l'accroupissement, passons à la fonction accroupi À l'intérieur, vous pouvez voir que nous sommes accroupis et que nous mettons ce lingot sur C au lieu de nous accroupir. Nous allons rendre ce système un peu plus avancé afin qu'il puisse prendre plusieurs entrées. Allons-y et supprimons ces lingots pour le moment. Je vais le faire glisser vers le bas pour avoir plus d'espace pour créer une nouvelle variable. Cette variable, nous allons l'appeler état de mouvement pour le type de variable. Au lieu de simplement créer ces variables par défaut, vous pouvez également créer des variables de tout ce qui se trouve dans le jeu. Par exemple, vous pouvez créer une variable à partir de l' énumération que nous venons Si vous recherchez simplement les états de mouvement, vous pouvez voir ici que c'est l'énumération que j'ai faite Assurez-vous simplement de rechercher le nom du fichier tel que vous l'avez écrit . États du mouvement. Vous pouvez voir ici que si je reviens à l'énumération, cela s'appelle les états de mouvement Maintenant, je l'ai en tant que variable et je peux cliquer et compiler. Vous voyez, si je regarde ici la valeur par défaut, vous pouvez définir l'élément de liste ici pour l'énumération Vous pouvez le régler sur l'un de ces états si vous courez, si vous marchez, si vous êtes accroupi, etc. Vous pouvez cliquer et le faire glisser ici et écrire set. Vous pouvez également consulter l' énumération ici. Vous pouvez le définir sur l'un de ces éléments de liste. Vous pouvez voir que c'est très bien et nous allons également l'utiliser plus tard pour les widgets. Lorsque nous créons l'interface utilisateur, nous pouvons créer une liste des interfaces utilisateur. Par exemple, menu principal, menu pause, menu d'échappement. Nous pouvons créer l'interface utilisateur principale du jeu. Ainsi, vous pouvez faire une liste de tout ce qu'il est vraiment utile d'utiliser ici. Au lieu de simplement l'avoir comme ça en tant que variable standard, je veux lui donner plusieurs valeurs. Vous pouvez voir si je me suis connecté, si je veux marcher, au lieu de simplement m'accroupir, vous allez régler cette variable sur Marcher à la place Cependant, ce sera comme avant, il n'y a pas vraiment de changement. Vous le configurez simplement pour qu'il marche et non pour qu'il marche. Et vous le réglez pour qu'il soit accroupi et non accroupi. Maintenant, je veux qu'il ait plusieurs entrées. Ce que tu veux faire. Au lieu de cela, je veux cliquer dessus, sur le type ici de quel type de variable il doit s'agir. Et je vais sélectionner un tableau au lieu d' une seule variable. Maintenant qu'un tableau est comparé à une seule variable ou à une seule variable, vous ne pouvez le définir que sur une seule valeur. Par exemple, si je le définis sur Walking over in the walking, cela remplacera la valeur que j'ai définie ici Pour ce qui est de l'accroupissement du tableau, vous pouvez l'imaginer comme une boîte contenant plusieurs entrées. Vous pouvez voir si je compile. Et lorsque vous le changez en tableau et que vous cliquez sur ce bouton plus ici, vous pouvez voir que vous pouvez avoir plusieurs entrées. Vous pouvez avoir la course à pied, la marche, le fait de s'accroupir en même temps, vous pouvez l'imaginer comme une boîte. Et vous mettez toutes ces valeurs dans la boîte. Cependant, si vous n'avez qu'une seule variable standard, il s'agit d'un élément que vous pouvez régler pour marcher, vous accroupir, etc. Mais pour les tableaux, encore une fois, vous pouvez l'imaginer comme une boîte. Vous mettez essentiellement tous ces objets dans votre boîte, et toutes ces valeurs sont stockées pour vous. Une autre utilité d'un tableau est, par exemple, quels articles avez-vous dans votre inventaire ? Par exemple, vous pouvez avoir un sac, vous pouvez avoir un bouclier, etc. Vous pouvez donc avoir plusieurs objets dans votre inventaire. Vous pouvez voir que les tableaux sont très intéressants, ou si vous avez plusieurs éléments que vous souhaitez stocker pour le moment, supprimons tout ici Et compilons pour les accroupis. Faisons-le glisser accroupi ici. Ce que nous voulons utiliser, c'est que si vous faites glisser, vous pouvez dire définir un élément de tableau pour les tableaux Si vous ne connaissez pas toutes ces fonctions, vous pouvez simplement les faire glisser à partir d'ici et écrire un tableau. Je le fais parfois, s' il y a quelque chose que j' oublie ou que je ne sais pas, vous pouvez écrire un tableau. Et vous pouvez voir, vous pouvez voir toutes les fonctions du tableau. Il peut effacer, il peut trouver un article que vous demandez s'il en contient un. Vous pouvez trouver un article. Vous pouvez obtenir un article spécifique. Vous pouvez demander si ce tableau est vide et vous pouvez en faire quelque chose. Vous pouvez obtenir la longueur du tableau. Vous pouvez voir que nous avons de nombreuses fonctions que vous pouvez utiliser pour le tableau. Celui que nous allons utiliser s' appelle set array element. Nous allons définir un article. Maintenant, vous pouvez également utiliser celui-ci si vous glissez et écrivez un, par exemple, écrivez ajouter ici. Et tu peux écrire le mot accroupi. Lorsque nous sommes accroupis, nous allons y ajouter l'élément accroupi Cependant, celui-ci fonctionne très bien en mode solo, mais j'ai beaucoup de problèmes en multijoueur. Parfois, cela ne s'ajoute pas et j' essaie de déboguer mon code pendant des heures, et c'est en fait juste celui-ci qui bogue Il n'y a aucun problème avec votre code. Celui-ci est vraiment mauvais à utiliser en multijoueur, il contient beaucoup de bugs, donc je vais le supprimer et utiliser celui-ci. Si vous souhaitez ajouter des éléments, utilisez plutôt cet élément du tableau sit pour le connecter. Ce que je veux régler, c'est quand je vais m'accroupir, je veux mettre l' objet en position accroupie Je vais essentiellement faire ce que je fais ici par le biais du code. Lorsque je clique sur accroupi, j'ajoute ce croup à mon tableau OK, allez-y et assurez-vous avoir supprimé toutes les valeurs par défaut pour le moment. Nous sommes donc en train de régler l'accroupissement. Maintenant, pour ce qui est de l'index, il vous demande simplement où vous voulez régler l'accroupissement. Si vous cliquez sur le tableau et que vous cliquez sur le signe plus, vous pouvez voir que vous avez un numéro d'index. Et si je clique à nouveau sur le signe plus, vous verrez que vous avez un autre numéro d'index. Les tableaux commencent à l'index zéro, et plus vous ajoutez d'éléments, plus ils s'incrémentent Il s'agira de l'index 1, l'index 2, de l'index 345, etc. Cela commence donc à l'indice zéro. Cela ne commence pas à l'index 1. Il est très important de le savoir maintenant pour l'index au lieu de simplement l'avoir car cela posera problème. Parce que si nous prenons et le copiers-collons dans la marche, nous réglons également la marche à l'index zéro. Vous pouvez voir ici que cela se chevauchera si je marche, disons, disons que je suis accroupi ici J'appuie sur le bouton accroupi et je vais supprimer tous les autres. Je vais supprimer celui-ci ainsi que celui-ci. En ce moment, je suis accroupi. Cela a ajouté l'accroupissement à mon indice zéro. Maintenant, si je clique sur la marche en même temps, elle va superposer mon accroupissement ici, la valeur d'accroupissement, car elle va la régler sur l'index zéro au lieu de superposer Ce que vous pouvez faire, c'est en tirer dernier index. Il va examiner quel est votre dernier numéro d'index. À l'heure actuelle, mon dernier indice est zéro. Si j'ajoutais ces éléments, par exemple comme celui-ci, mon dernier index serait trois. Il va trouver le dernier indice que vous pouvez en tirer économiser des pertes et y ajouter un indice comme celui-ci. Ensuite, vous pouvez l' ajouter à l'index. Ce que vous dites essentiellement, c'est de trouver le dernier index numéro trois, par exemple , incrémenté d'un C'est ici que vous souhaitez ajouter cette nouvelle valeur. Vous ne retrouverez jamais vos anciens mouvements. Je vais tout supprimer. Compilez maintenant, cliquez sur Size to Fit, car cela permettra essentiellement faire de la place pour le nouvel état que vous allez ajouter. OK, maintenant nous l'avons ici. Maintenant, pour ce qui est de l' accroupissement, si nous ne voulons plus nous accroupir, vous pouvez passer à l'état accroupi et vous pouvez faire glisser le pointeur à partir d' ici et Et vous pouvez choisir celui-ci appelé Supprimer un élément et vous pouvez le connecter ici. Lorsque nous ne sommes plus accroupis, nous voulons simplement supprimer l' accroupissement de cet élément ou de ce tableau ici Lorsque nous sommes accroupis, nous ajoutons l'élément au tableau, au dernier index plus un, ce qui signifie que nous ne superposons pas le dernier élément que nous avons ajouté, qui peut être la marche ou la course, etc. Ensuite, lorsque nous ne sommes plus accroupis, nous voulons le supprimer de ce tableau parce que nous ne sommes plus accroupis OK, compilons. Copier-coller tout cela ici. Copiez-le et collez-le dans la marche. Je vais supprimer la vitesse de déplacement et la marche. Nous ajouterons la vitesse de déplacement ultérieurement. Rendez-le également plus intelligent. Nous allons supprimer tout cela. Collons ce code, connectons-le, et pour celui-ci, sélectionnons plutôt la marche. Si nous ne marchons plus, nous pouvons prendre ceci et dire supprimer l'objet comme avant et nous connecter. Et vous pouvez supprimer la marche. Et allez-y, organisez-le un peu plus. Bien, nous avons donc la marche, maintenant nous ajoutons la marche. Assurez-vous simplement d'avoir les bonnes valeurs pour la marche et pour l'accroupissement . Accroupi, accroupi Quand on est accroupis. Nous allons ajouter l'objet lorsque nous marcherons. Nous allons également ajouter l'article. Cependant, pour ce qui est de la course à pied, nous n'avons pas vraiment d'endroit où nous pouvons l' ajouter pour la course à pied. Ce que je veux faire, c'est juste l'ajouter par défaut. Si je clique sur l'état du mouvement, je veux cliquer sur le signe plus ici. Et je vais juste ajouter le running par défaut. Parce que lorsque je marche ou je ne suis pas accroupie ici et que je ne marche pas, je cours partout Je veux juste avoir cet état de mouvement par défaut. Lorsque je ne suis pas accroupi et que je ne marche pas, il fonctionne automatiquement Vous pouvez donc voir ici que lorsque je commencerai à marcher, cela ajoutera cette marche au dernier indice plus un, ce qui signifie zéro plus un. Cela ajoutera de la marche ici et cela ne recoupera jamais mon état de mouvement de course à pied. Maintenant que c'est terminé, nous en avons fini avec ce système. Vous pouvez voir que c'est un peu plus avancé, mais cela fonctionnera beaucoup mieux qu'avant. Et vous pouvez voir que lorsque nous faisons une énumération, nous pouvons réduire le nombre de variables que nous créons Parce que maintenant, pour vous accroupir, vous pouvez continuer et cliquer sur Supprimer Vous pouvez simplement le supprimer. Et aussi pour la marche. Maintenant, vous pouvez voir que nous n'avons qu' une seule variable pour l'accroupissement et pour la marche ultérieure Si vous souhaitez créer une variable de sprint pour votre jeu, vous pouvez continuer dans l'énumération, ajouter la variable de sprint, et pour le sprint à nouveau, comme avant, faire une fonction pour le sprint Comme l'accroupissement et la marche, vous pouvez ajouter le sprint comme ça 40. 3.29 Changer les règles de transition de l'animation: Maintenant que nous en avons fini avec ce système, compilons, sauvegardons tout. Terminons cela et passons plutôt au plan d'animation du joueur Maintenant, à l'intérieur d'ici, nous recevons quelques erreurs parce que nous avons supprimé le graphique d'événements accroupi et de marche dans le plan d'animation Vous pouvez simplement supprimer celles-ci , l'accroupissement et la marche, car nous n'en avons plus besoin. Vous pouvez compiler et vous pouvez voir que les erreurs ont disparu. Ce que nous voulons utiliser ici à la place, nous pouvons indiquer à partir d'ici et indiquer les états de mouvement que nous voulons utiliser ce tableau que nous avons créé. Allez-y, procurez-vous cette matrice. Vous pouvez écrire lick it promu au rang de variable et simplement l'appeler movement state ici dans le plan d'animation Allez-y, connectez-le. Et connectez le se trouve dans Er avec lui. Et allez-y, rendez-le un peu plus organisé. Maintenant, lorsque nous compilons, cela vous donne une erreur. Je ne sais pas ce qu'il veut vraiment ici. Si je le compile à nouveau, vous pouvez le voir disparaître. Je ne sais pas, c'était juste une erreur fortuite. Passons au graphique d' animation. À l'intérieur du graphique d'animation, entrons dans le vif du sujet. Nous voulons maintenant faire passer tous les états de mouvement du premier , du mode veille à la marche, par exemple. Vous pouvez cliquer ici en utilisant ce lingot que nous avons utilisé auparavant Allons-y et supprimons-le. Prenons cet état de mouvement. Maintenant, pour ce tableau, vous pouvez le prendre à partir d' ici et dire get. En gros, nous voulons juste marcher. N'oubliez pas que si je retourne voir le joueur juste pour l' expliquer un peu mieux. Au lieu du moment où nous marchons, nous ajoutons essentiellement l'élément de marche à ce tableau. Maintenant, pour le plan ici, le plan d'animation, nous voulons le faire marcher Nous ne savons pas vraiment à quel indice il se situe, car il se peut qu'il soit à l'indice zéro. C'est peut-être à l'index 1. N'oubliez pas qu'il ne peut jamais être à l'indice zéro, car à l'indice zéro, nous courons toujours. Il peut donc être à l'index un ou deux pour savoir de quoi il s'agit. Au lieu de simplement l'obtenir, vous pouvez faire glisser le pointeur depuis celui-ci et obtenir le dernier index. N'oubliez pas que nous avons utilisé celui-ci dans la leçon précédente, puis connectez-le ici. Nous avons maintenant le dernier index. N'oubliez pas que quel que soit le dernier index il s'agit du bouton actuel sur lequel vous appuyez. Si j'appuie sur la marche, mon dernier indice sera de marcher ici. Si vous obtenez ceci et que vous demandez «  get the last index » pour ce tableau, ce dernier index est égal. Vous pouvez donc écrire un signe égal et sélectionner cette énumération égale Si le dernier indice que vous avez obtenu à partir de ce tableau est égal à la marche, cela est vrai. Cela signifie que je marche. Parce que le dernier indice, s'il s'agit de la marche, cela signifie que j'appuie actuellement sur le bouton de marche et que je veux marcher. Je veux passer de l'inactivité à de passer à autre chose, puis revenir en arrière et passer à celle-ci. Nous passons de la marche au ralenti au lieu d'utiliser celui-ci, ce n'est pas marcher. Vous pouvez copier-coller le code que vous avez écrit auparavant et vous pouvez simplement le mettre en marche. Si le dernier indice est égal à course, cela signifie que nous n'appuyons pas sur la marche, car nous l'avons supprimée du tableau. Et nous n'appuyons pas non plus sur le fait d'être accroupi. Comme nous l'avons retiré du tableau, il ne nous reste que l'état en cours d'exécution. S'il est en cours d'exécution, alors nous pouvons continuer et ce sera correct. OK, allez-y et copiez-collez ceci sur chacun d'eux. C'était pour la promenade. Maintenant, pour que le inactif s'accroupisse, vous pouvez cliquer dessus Au lieu que celui-ci soit accroupi, vous pouvez le coller à nouveau. Sélectionnez accroupi, connectez-le. Revenez en arrière et du accroupi pour courir, encore une fois, supprimez ce passé, sélectionnez le running et connectez-le Vous pouvez voir que c'est beaucoup plus facile à utiliser en fait, mais celui-ci, en s'accroupissant pour marcher, nous pouvons tout supprimer Nous n'en avons pas besoin lorsque nous sommes accroupis pour marcher. Cela signifie que nous marchons. Nous pouvons sélectionner la marche. Et j'ai connecté la même chose de la marche à l'accroupissement. Cela signifie que nous sommes accroupis. Nous pouvons le sélectionner, sélectionner l' accroupissement et le connecter. Maintenant, nous les avons tous échangés . Nous les avons échangés. Et celui-ci est juste pour le saut. Nous n'avons pas vraiment besoin de changer quoi que ce soit ici. Compilons et cliquons sur jouer. Nous allons le tester. Vous pouvez voir en tant que joueur, je peux cliquer sur la commande, je peux m'accroupir Si vous maintenez la touche Maj enfoncée en même temps, vous pouvez voir que je peux maintenant marcher tout en maintenant le contrôle et la touche Maj en même temps. Si je relâche le quart de travail pour accroupir à nouveau, vous verrez que cela fonctionne Et si je lâche le contrôle, je suis en train de marcher ici, la vitesse de déplacement n' est pas correcte, et nous devrons corriger cela plus tard. Mais vous pouvez voir que je peux maintenant appuyer sur plusieurs boutons. Si je quitte mon quart de travail maintenant, je peux marcher normalement. Je peux à nouveau maintenir la touche Shift enfoncée tout en gardant le contrôle. Vous pouvez voir que nous pouvons maintenant maintenir les boutons enfoncés en même temps. Et il effectuera cette action au lieu d'avoir à relâcher le bouton, avant de pouvoir effectuer cette action. Très bien, alors testons-le également sur le client, juste pour nous assurer qu'il fonctionne en multijoueur. Pour le client, je peux m'accroupir, pour le serveur, je peux m' accroupir et ça ne marche plus comme avant Si vous vous souvenez de ce que j'ai dit, nous devons répliquer la variable pour qu'elle puisse fonctionner Donc, si nous revenons au joueur et que je clique sur l'état du mouvement, et que je clique sur Répliquer Et répliquez, compilez et cliquez sur Play en tant que sondage Encore une fois, si je m'accroupis, vous pouvez voir que cela fonctionne. Et si je marche, ça marche à nouveau. Nous pouvons également le tester pour deux clients juste pour nous en assurer. Jouez en tant que client et jouez. Nous avons maintenant deux clients. Si vous faites le mouvement, il fonctionne correctement. Encore une fois, pour fixer la vitesse de déplacement ultérieurement. Mais maintenant, vous pouvez voir que tout fonctionne correctement. 41. 3.30 Fixer la taille du joueur: Avant de continuer à fixer la vitesse de déplacement, nous devons fixer la taille du personnage. Parce qu'à l'heure actuelle, vous pouvez voir qu'en tant que personnage, si je me promène, je suis un tout petit personnage et nous devons l'agrandir. Je ne sais pas si c'est ma carte qui est très petite ou si ce sont ces personnages que j'ai importés du marché. Ils sont très petits. Quoi qu'il en soit, cela n'a pas vraiment d'importance. Ce que nous devons faire, c'est augmenter la taille des joueurs. Ce sera la solution la plus simple. Allons-y et cliquons sur la base de joueurs sur le maillage. N'oubliez pas que vous devez le faire dans la base de joueurs. Il l' appliquera automatiquement à la rencontre avec un terroriste, terroriste cliquant sur la base de joueurs. En cliquant sur ce personnage, j'ai essayé de tester un peu les tailles. J'ai juste essayé de l'étendre à quelques reprises pour voir ce qui est le mieux ici. Mais si vous cliquez sur le maillage et que vous cliquez sur ce verrou, vous pouvez voir que si vous écrivez simplement un nombre ici, le y et le z ne sont pas redimensionnés en même temps que le x. Ils ne sont pas vraiment mis à l'échelle de manière uniforme Vous pouvez cliquer sur ce cadenas. Cela signifie que si vous modifiez un numéro, il le changera pour tous. À l'extrême droite, 1.7 ici, par exemple. Et vous pouvez continuer et cliquer sur Compiler, et vous pouvez cliquer sur Play. Vous pouvez voir si je me promène maintenant, je suis très grand par rapport à l'environnement. Vous pouvez essayer différentes tailles. Essayez de parcourir votre environnement voir à quoi il ressemble. Je pense que c'est peut-être un peu trop grand. Je vais le réduire à 1.6 Allez-y, compilez et cliquez sur Play. Et essayez maintenant de vous promener dans l'environnement pour voir si votre taille est comparée à celle des boîtes. Vous pouvez même faire le tour d' ici et peut-être marcher sur cette rampe pour voir la taille et monter ici. Je pense que c'est bien mieux qu'avant. Je vais utiliser cette version 11.6 si nous avons des problèmes plus tard, nous pouvons toujours la modifier et la réparer plus tard Nous pouvons simplement changer le numéro ici. Cependant, je pense que c'est une bonne chose maintenant. Nous devons également réparer cette capsule de collision. Parce que si je cours maintenant, peut-être que je vais dans cette partie et que j'entre ici. Vous pouvez voir que je me chevauche avec tout. Et je peux sauter dans le mur. Et c'est parce que vous devez à nouveau augmenter la taille de cette capsule de collision. Si je clique ici et que je passe à la bonne vue, par exemple, je peux augmenter la moitié de la hauteur de la capsule, je peux cliquer sur le personnage. Déplacez le personnage vers le bas pour que le pied soit en bas. Ici, vous pouvez voir que je dois l' augmenter un peu plus. Donc, si je clique à nouveau sur la capsule de collision, augmentez-la, peut-être 150 environ. Et je peux cliquer à nouveau sur le personnage , le déplacer vers le bas. Il s'adapte beaucoup mieux qu'avant. Maintenant, il n'est pas vraiment nécessaire que ce soit précis. Nous allons créer un meilleur système plus tard. Mais en cliquant ici, assurez-vous que le pied est en bas. Ici, vous pouvez cliquer sur cette capsule de collision. Maintenant, vous devez probablement l'élargir. Vous pouvez cliquer, cliquer sur la vue de face. Maintenant, nous devons élargir un peu le rayon. Et je vais juste le rendre un peu plus large que ces bras pour qu'ils n' entrent pas en collision avec les objets Quelque chose comme ça, peut-être 60 exactement. Nous pouvons continuer et cliquer sur jouer. Maintenant, nous pouvons nous promener. C'est beaucoup plus précis qu'avant. Vous pouvez essayer d' entrer ici et vous verrez que cela ne vous le permettra pas. Nous avons une petite boîte. Si vous cliquez sur le contrôle, vous pouvez marcher jusqu'ici, mais je peux aussi quitter le contrôle et vous pouvez voir que je me chevauche maintenant Nous devrons régler ces petits problèmes plus tard Mais vous pouvez voir qu'en général tout fonctionne bien, la taille des caractères est bien meilleure qu'avant. Allons-y donc et continuons. 42. 3.31 Régler la vitesse de déplacement: Maintenant que nous avons amélioré notre système de mouvement, définissons la vitesse de déplacement. Fermons ça. Et je vais revenir au joueur de la base de joueurs. À l'intérieur, ce que je veux faire, c'est créer une nouvelle fonction. Cliquons sur le signe plus haut. Écrivons F, définissons la vitesse de déplacement pour cette fonction. Ce que je veux faire, c'est prendre cette composante de mouvement du personnage et définir la vitesse de marche maximale. C'est simplement ce que je veux faire maintenant. Je souhaite régler cette vitesse de marche maximale en fonction du fait que le joueur court , s'il marche ou s'il est accroupi Maintenant, la façon dont nous pouvons le faire est de nous diriger à partir de celui-ci et de dire « sélectionner ». Et vous pouvez voir celui-ci appelé select. C'est la première fois que nous utilisons celui-ci. Et celui-ci est vraiment très utile dans les jeux ou ici, en gros, dans tous les jeux que vous créez. Dans un vrai moteur plans vous permettent sélectionner une option en fonction de ce que vous branchez ici Imaginons, par exemple, que vous branchez une arme ici. Et selon l' arme que vous branchez, vous aurez, par exemple, la vitesse de tir ou nombre de balles que vous avez dans ce pistolet, etc. Note donc très utile à utiliser dans ce cas. Nous allons régler la vitesse de déplacement en fonction du fait que nous courons, que nous sommes accroupis ou que nous marchons. Nous avons accroupis ou que nous marchons. Nous avons à nouveau besoin de cette vitesse de déplacement Nous allons obtenir le dernier index comme avant. N'oubliez pas que le dernier index est le dernier bouton sur lequel nous avons appuyé. Faisons-le glisser à nouveau d'ici et disons obtenir une copie, et connectons celui-ci. OK, alors maintenant nous avons le dernier mouvement. Nous appuyons sur le clavier et faisons glisser le pointeur à partir de celui-ci maintenant plutôt qu'avant. Nous avons fait glisser le pointeur à partir de celui-ci, nous avons écrit égal à égal et nous l'avons fait comme ça maintenant à la sélection, nous allons simplement obtenir le dernier index et voir ce que le joueur pousse actuellement. Et on peut le tirer de là et le brancher ici. Et maintenant, vous pouvez voir la course, la marche et le fait de s'accroupir. Et si vous voyez cela, c'est parce qu'il s'agit simplement d'un extrait de cette énumération que nous avons écrite Si vous ajoutez d'autres éléments à cette énumération, vous ajouterez également d'autres options ici Quoi que vous ajoutiez à cette énumération, nous pouvons le voir très utile maintenant, chaque fois que vous courez, vous pouvez avoir cette variable de vitesse de course Vous pouvez le glisser et le brancher ici chaque fois que vous marchez, vous pouvez le brancher ici chaque fois que vous êtes accroupi Nous n'en avons pas encore vraiment. Il suffit de cliquer avec le bouton droit sur celui-ci, transformer en variable et de l'appeler vitesse d'accroupissement Allons-y et compilons maintenant. Pour l'instant, je n'ai pas vraiment de chiffres de mouvements précis, nous les ajusterons plus tard. Par exemple, pour courir, vous pouvez écrire 1 000 pour marcher, 500 pour s'accroupir, 150 C'est juste pour voir si cela fonctionne et si vous pouvez aller de l'avant et le rendre plus organisé. Bien, pour ce réglage de la vitesse de déplacement, ce que je veux faire, c'est revenir au graphique des événements. Et commençons par l'accroupissement. Pour le accroupissement, nous le faisons ici. Ensuite, nous devons prendre cette vitesse de déplacement définie et la régler ici. Ici aussi, nous devons définir la vitesse de déplacement, en la faisant glisser ici, définir la vitesse de déplacement, car lorsque nous ne sommes plus accroupis, encore une fois, nous devons obtenir le dernier index et voir s'il s'agit de courir, de marcher ou de s' Nous devons le faire également pour la marche. Faisons à nouveau glisser la vitesse de déplacement définie. Branchez-le. Et pareil ici, réglez la vitesse de déplacement. Maintenant, pour ce qui est de la course, peu importe, car si nous supprimons la marche et l'accroupissement, ce sera la course à pied comme dernier indice et cela prendra de la vitesse de course OK, cliquons sur Play testons-le et voyons si tout fonctionne. Je suis donc ici en tant que serveur. En fait, je cours ici pour courir. Vous devez également d'abord le modifier. Ici, par défaut, dans le composant de mouvement catal pour la vitesse de marche maximale Puisque j'ai écrit ici que la vitesse de marche maximale serait de 1 000 par défaut, écrivons également 1 000 ici pour le moment. Ils sont donc les mêmes ici pour la vitesse de marche, 500, très bien. Cliquons à nouveau sur jouer, testé. Maintenant je marche et c'est vraiment rapide. Nous allons ajuster cela plus tard. Crolick, passe à la marche. Vous pouvez voir que tout fonctionne accroupi et bouge en même temps. Vous voyez qu'il y a une erreur, accroupissez ou que vous appuyez sur accroupissement, puis que vous appuyez sur la marche Vous pouvez voir que le mouvement se fait toujours en position accroupie. La raison en est que lorsque vous êtes accroupi, vous écrivez ceci, vous avez celui-ci accroupi Vous ne vous accroupissez jamais à moins de retirer votre doigt du bouton d'accroupissement En fait, lorsque nous nous accroupissons et que nous marchons en même temps, nous sommes toujours dans cet état accroupi Nous devons en fait nous accroupir pour que la vitesse de déplacement soit correcte Revenons à la vitesse de déplacement définie. En fait, accroupissons-nous si nous sommes accroupis pour que cela ait l'air correct, ce que nous allons faire, c'est simplement le copier ici Et je vais l'étendre ici, le copier-coller. Ce que vous devez faire, c'est faire glisser le pointeur à partir de là et dire égal et nous devons voir si cela équivaut à vous accroupir Nous devons nous demander si le joueur est actuellement accroupi ou non. Si le joueur est actuellement accroupi, il suffit de réécrire cette position accroupie ici. Si le joueur est accroupi, c'est-à-dire si le dernier index marche réellement Même si le joueur appuie également sur le bouton d' accroupissement, mais que le dernier index marche, le joueur marche actuellement En fait, nous devons le connecter plus tard. Nous pouvons nous accroupir. Lorsque nous retirons la marche, connectons-les ici. C'est le accroupi. Et nous voilà accroupis. Et on peut juste y aller et le brancher ici. Encore une fois, je vais juste cliquer et créer un nœud arrière ici et je vais brancher celui-ci ici. Oui, ça a l'air correct. Maintenant, si je m'accroupis, vais à nouveau m' accroupir Si je ne suis pas accroupi, disons que j'appuie sur le bouton de marche même temps que j' appuie sur le bouton accroupi, il va en fait s'accroupir il va en fait s' Ensuite, je vais appliquer cette vitesse de marche. Cependant, lorsque j'arrête de marcher et que j'appuie toujours sur le bouton d'accroupissement, vais simplement m'accroupir ici Cliquons sur Play pour voir. Cliquons sur Shift to Walk. Maintenant, vous pouvez voir si je clique sur accroupi et sur Shift en même temps, vous pouvez voir que la vitesse de déplacement s'ajuste correctement. Si je quitte à nouveau le quart de travail et que je m'accroupis, vous pouvez voir que les vitesses de mouvement se corrigent ici et qu'ils marchent Si je me déplace, que je m'accroupis puis que je me déplace, ou que je me déplace d'abord puis que je m'accroupis, vous pouvez voir que cela fonctionne également Notre vitesse de déplacement fonctionne correctement. Maintenant, ce que nous avons essentiellement fait, c'est que nous avons fait en sorte que cette fonction règle la vitesse de déplacement. Nous demandons maintenant si le joueur est accroupi ou non. Et si nous le faisons, c'est que si nous ne le faisons pas et que nous appuyons d' abord sur le bouton accroupi, nous allons appliquer cette fonction d'accroupissement Cependant, si vous appuyez toujours sur le bouton d'accroupissement puis sur le bouton de marche, c'est toujours parce que vous ne vous accroupissez jamais, ne laissez jamais ce bouton agir pour vous accroupir accroupissez jamais, ne laissez jamais ce bouton agir pour En gros, il appliquerait le mauvais mouvement même si j'ai également réglé le mouvement en fonction de la vitesse de marche. Nous demandons simplement si nous sommes accroupis ou non Si nous sommes accroupis, continuez simplement à nous accroupir. Si nous ne sommes pas accroupis, assurez-vous de le faire avant de faire tout cela Parce que si tu n'es pas accroupi, tu es toujours là Nous nous assurons simplement d' appliquer le bon mouvement. Maintenant que la vitesse de déplacement est terminée, nous pouvons tout enregistrer et passer à la leçon suivante. 43. Espace de mélange décalé de visée: Nous sommes maintenant prêts à créer l'Aim Offset. Pour que le joueur puisse créer le décalage de visée, revenons au dossier du joueur. À l'intérieur, revenons aux animations. Et faisons un clic droit ici, passez à l'animation. Nous avons maintenant ce que l' on appelle un décalage de visée, mais nous en avons également un plus simple appelé décalage de visée D. C'est la même chose que l'espace de fusion. Vous avez en fait ce qu'on appelle un espace de fusion. Un D pour celui-ci, je vais juste vous le montrer rapidement pour l'espace de mélange. Par exemple, vous pouvez le voir avant le mouvement à huit directions, mais un D consiste simplement à passer de marche à la course à pied dans un espace de mélange très simple. Maintenant, pour le décalage Am, permettez-moi de le supprimer à nouveau avec le bouton droit de la souris. Au lieu de faire le huitième mouvement, passons à l'héritage et utilisons le décalage de visée. Un D. Je vais sélectionner à nouveau mon squelette et l'appeler «   O stand », désarmé Double-cliquez sur celui-ci. Il s'agit du décalage Aim. Le décalage Aim, très, très basique. Notre objectif est simplement le centre où nous attendons avec impatience. Et le joueur regarde en bas. Et le joueur regarde vers le haut. Ce que nous devons faire, tout comme l'espace de fusion, nous avons un axe horizontal. C'est notre orientation. Nous pouvons écrire la direction. La valeur minimale pour la direction est -90. C'est lorsque nous regardons vers le bas, la valeur maximale est de 90, c'est lorsque nous recherchons la vitesse du poids vers le haut Je vais juste appliquer comme avant ce que nous avons fait avec les espaces de fusion. Je vais appliquer un peu de douceur pour que ça soit plus beau Nous sommes maintenant prêts à appliquer l'animation. Sauvegardons tout. Maintenant, vous pouvez voir que j'ai également importé pour vous les décalages de visée Si vous prenez l'un d'entre eux par exemple , faisons simplement celui-ci. Vous pouvez voir que lorsque j' essaie de le faire glisser, il est indiqué que le type d'animation additive n'est pas valide. Nous devons donc régler ce problème. Passons à la leçon suivante pour corriger ce type d'additif. 44. 4.02 Préparer les animations de décalage d'objectif: Avant de pouvoir utiliser nos offsets Aim, nous devons les préparer. Passons donc aux animations des actifs. Et c'est là que se trouvent toutes vos animations. N'oubliez pas que ce n'est pas dans les animations que je vous ai données. C'est à l'intérieur de ces éléments, des actifs et des animations que nous avons ciblé plus tôt. Par exemple, recherchons un décalage d'animation. Si vous écrivez simplement AO ici, vous verrez tous les décalages d'animation Vous pouvez maintenant cliquer sur l'un d' entre eux et ici vous pouvez voir celui-ci, par exemple. Voici le pistolet tourné vers l' avant, le pistolet accroupi au centre. Pour celui-ci, vous pouvez voir le type d'additif, c'est de cela qu'il parlait. Celui-ci, vous devez cliquer ici et configurer pour mailler l'espace. Ensuite, vous devez cliquer ici et dire image d'animation sélectionnée. Vous devez maintenant sélectionner l' idole pour cette animation. L'idole de cette animation est l'idole accroupie au pistolet, que nous pouvons rechercher ici Si vous recherchez juste une idole, celle-ci ici, Animation Crouch Idol Assurez-vous de le choisir pour votre squelette reciblé et non pour le pistolet Crouch Idol par défaut de Manqin Animation Ce serait le bon pour celui-ci. Allons-y et économisons maintenant pour celui-ci. Vous pouvez voir si je le ferme et je reviens aux animations de mes joueurs. Ouvre-le ici, tu peux voir si je reviens au pistolet à capteur, si je peux le trouver ici Celui-ci, ici. Pistolet à capteur d'accroupissement Maintenant, si je le fais glisser ici, vous pouvez voir qu'il fonctionne. Nous devons le faire avec chacun d'entre eux. Vous pouvez voir que les autres ne sont non plus valides pour le type d'additif. Permettez-moi de supprimer celui-ci pour le moment. Et nous devons le faire pour chacun d'entre eux. Maintenant, il existe un moyen plus simple de le faire. Si vous cliquez à nouveau sur les actifs, les animations, vous recherchez à nouveau l'AO. Vous pouvez maintenant cliquer sur le premier, Hold Shift. Cliquez sur le dernier, vous pouvez écrire sur Accéder aux actions sur les actifs, puis sur Modifier en bloc via la matrice de propriétés. À l'intérieur d'ici, vous pouvez modifier les paramètres de chacun d'entre eux en même temps. Une astuce très pratique pour le faire. Ici, vous pouvez voir que vous pouvez également modifier d'autres paramètres tels que la compression, l'animation. Vous pouvez modifier ce genre de choses, mais pour l'instant, nous nous intéressons uniquement aux paramètres additifs présents ici. Voyons ici le type d'animation additive. Vous pouvez cliquer ici et le configurer pour mailler l'espace pour chacun d'entre eux. Pour chacun d'entre eux, vous pouvez cliquer ici et les régler sur le cadre d'animation sélectionné. Maintenant, pour ce qui est de l'animation de la pose de base, elle ne peut pas être la même pour tous car certains d'entre eux ont un pistolet, un fusil, etc. Alors fermons tout. Maintenant que les paramètres de base sont définis, nous pouvons d'abord les enregistrer. Maintenant, ce que nous pouvons faire, par exemple, commençons par le pistolet accroupi En cliquant sur celui-ci. Je clique également sur ce accroupi vers le bas et sur ce pistolet accroupi Nous n'en avons que trois pour chaque pistolet, centre vers le bas et vers le haut. Nous pouvons maintenant cliquer dessus ici, cliquer droit de la souris sur Acid Actions modifiées en bloc via une matrice de propriétés. Encore une fois, nous pouvons passer aux paramètres additifs. Cliquez sur ce bouton ici, sur ces carrés ici. Nous devons trouver l'animation inactive de ce pistolet Grouch Nous pouvons voir que c'est le pistolet accroupi. Nous devons trouver le moteur inutilisé. Pour le pistolet Crouch Idle. Maintenant c'est correct. Fermons-le. Nous devons le faire également pour le fusil ici. Cliquez également sur la position accroupie du fusil, accroupie du fusil et la position accroupie du fusil Cliquez avec le bouton droit sur Actions Bulk Edd via la matrice de propriétés. Accédez aux paramètres de l'additif. Cliquez sur les carrés. Maintenant, nous devons trouver le accroupi. Pour le fusil accroupi au ralenti, utilisez le fusil ici. Ferme-le à nouveau. Vous pouvez voir que c'est exactement la même méthode, mais nous devons le faire plusieurs fois. Maintenant, c'est pour ceux qui ne sont pas armés. Celui-ci. Celui-ci et celui-ci. Cliquez avec le bouton droit de la souris, édition groupée via les paramètres additifs de la matrice de propriétés . Cliquez ici, puis recherchez « idle ». Maintenant, nous devons trouver l' accroupi pour les oisifs, désarmés, comme ça Je vais donc faire la même chose pour le stand également. Et je vois que celui-ci porte un faux nom. Je vais donc simplement le renommer avant de continuer. Celui-ci s'appelle AO, stand down unarmed. Au lieu de cela, je vais maintenant l' appliquer à la position debout, comme si je m' accroupissais Et je vais passer à autre chose. heure actuelle, je les ai tous préparés pour que vous puissiez voir si vous recherchez simplement l'un d'entre eux, par exemple le fusil à support AO, vous pouvez cliquer dessus et vous pouvez voir que vous l'avez appliqué le fusil Animation Idol. Assurez-vous simplement d'appliquer la bonne animation inactive, sinon elle ne sera pas correcte. Je l'ai donc fait pour toutes les personnes debout ici, ainsi que pour les accroupissements Maintenant, sauvegardons tout et passons à la leçon suivante. 45. 4.03 Ajouter de l'animation au décalage de objectifs: Créons maintenant le décalage Am pour les mouvements non armés Passons aux plans. Et je vais à nouveau revenir au dossier des animations. En fait, faisons-le d'abord pour le stand. Avant de passer aux autres, cliquons désarmés sur ce stand à l'intérieur d'ici N'oubliez pas que nous avons suivi la direction et que nous avons fait en sorte que le poids soit fluide ici Maintenant, ce que nous pouvons faire, c'est rechercher AO pour celui-ci. Maintenant, c'est le stand désarmé. J'ai besoin d'un mouvement désarmé. Le stand commence donc d'ici à ici. J'ai besoin du centre. D'abord, prenons le centre sans armes Celui-ci clique, glisse-le et maintient la touche Maj enfoncée, puis il s'enclenchera ici. Maintenant, pour le -90 dans la direction dans laquelle il regarde vers le bas, nous avons besoin de celui-ci appelé stand signifie que cliquer, glisser et maintenir la touche Maj enfoncée pour l'insérer dans ce coin Ensuite, pour le mouvement vers le haut, tenez-vous debout, désarmé, maintenez la touche Shift enfoncée et branchez-la ici Maintenant, lorsque vous cliquez sur Ctrl et déplacez votre souris, vous pouvez voir que le décalage de l' animation agit . Ça a l'air super. Nous pouvons toujours ajuster la distance qu'il regarde vers le bas et la distance qu'il regarde vers le haut plus tard si nous le voulons, si nous trouvons cela un peu ridicule. Nous pouvons donc toujours le faire comme ça au lieu de cela. Nous pourrons toujours l' ajuster ultérieurement. Mais pour l'instant, sauvegardons tout. Cela fonctionne maintenant, faisons-le pour les autres. En fait, je vais juste cliquer avec le bouton droit sur celui-ci et le dupliquer. Et appelons-le grognon. Pour ce qui est de la marche, c'est en fait la même chose que de se tenir debout. Nous n'en avons pas vraiment besoin pour marcher. Maintenant que nous l'avons dupliqué, double-cliquons dessus Permettez-moi de supprimer celui-ci pour le moment. Maintenant, c'est l'accroupissement. Cherchons ici l'accroupi, le bras central accroupi, le bras accroupi vers le bas et le bras accroupi vers le Maintenant, vous pouvez voir que cela fonctionne également. OK, allons-y et sauvegardons tout maintenant. Nous allons le faire plus tard pour le pistolet accroupi, le fusil, etc., mais pour le moment nous n'en avons pas vraiment besoin Allons-y maintenant. Avant de pouvoir appliquer ces décalages d'animation, nous devons calculer la direction de visée Nous devons savoir dans quelle direction le joueur vise, si c'est vers le haut ou vers le bas. Et c'est ce que nous allons faire dans la prochaine leçon. 46. 4.04 Fixer la direction de l'objectif: Bien, il est maintenant temps de calculer la direction de visée. Et on peut le faire très simplement en allant voir le joueur. maintenant à la base de joueurs qui se trouve à l'intérieur d'ici, créons une nouvelle fonction. Créons une nouvelle fonction appelée calculer la direction de visée. Pour cette fonction, laissez-moi simplement la compiler et revenons au graphe des événements. L'endroit où je veux le placer est le plus logique pour cet événement de look. C'est là que nous contrôlons le mouvement de la souris lorsque nous sommes en jeu. Ce serait plus logique de le mettre ici. En fait, après celui-ci, laissez-moi simplement le faire glisser, calculer une direction et le brancher ici. Maintenant, ce que nous voulons faire c'est définir un flottant appelé direction de visée. Créons un nouveau flotteur appelé direction de visée. Et transformons-le en variable flottante. Oups, entier. Faites flotter, compilez et enregistrez. Maintenant, à l'intérieur de ça, prenons cette direction de visée. Nous voulons simplement le configurer. Maintenant, souvenez-vous de ce que j'ai déjà dit, en multijoueur, il jamais possible de définir une variable pour un client. Vous devez être sur le serveur pour définir une variable, puis la configurer pour la répliquer Vous devez configurer celui-ci pour le reproduire, car les clients doivent savoir dans quelle direction les autres joueurs visent Les animations sont mises à jour correctement pour tous les clients connectés. Le serveur doit répliquer ces informations aux clients Sinon, les clients ne pourront pas voir dans quelle direction visent tous les joueurs. Et ils auront juste hâte. Et c'est comme si rien ne se passait lorsque vous définissez des variables et que vous les mettez pour les répliquer Vous ne pouvez jamais définir et répliquer des variables via le client, devez passer par le serveur Maintenant, vous pouvez voir si j'écris une chaîne d'impression à partir de ceci. Je vais maintenant vous donner une astuce pour savoir quand vous êtes sur le serveur et quand vous êtes sur le client. heure actuelle, il devrait imprimer une chaîne automatiquement lorsque je déplace ma souris, car je l'ai connectée ici et elle sera connectée ici si je compile maintenant, je clique sur play et je déplace ma souris. Lorsque je déplace ma souris, je suis sur le client. Vous pouvez également voir que je joue en tant que client ici afin que le client puisse réellement exécuter ce code. Lorsque le client est en mesure d'imprimer du code, cela signifie que le code que vous êtes en train d'écrire est également exécuté sur le client. Vous pouvez voir que lorsque je joue en tant que serveur, c'est en fait le deuxième client. Maintenant, permettez-moi de le modifier ici pour jouer en tant que serveur d'écoute. Permettez-moi plutôt de cliquer sur Play. Maintenant, je joue en tant que serveur et vous pouvez voir que c'est le serveur imprime la chaîne à l'écran lorsque je joue en tant que client. Laisse-moi rejouer et prendre ce client. Vous pouvez maintenant voir que le code est en cours d'impression en tant que client. Lorsque vous pouvez également imprimer une chaîne via le client, cela signifie que ce code est exécuté à la fois par le serveur et par le client, et non par le serveur seul. Lorsque nous devons définir cette variable, nous devons nous assurer que nous l' exécutons sur le serveur. Ce que nous pouvons faire, encore une fois, comme avant, c'est prendre ça et dire que Switch a autorité. Nous nous assurons de ne l'exécuter que sur le client du serveur. Vous devez toujours exécuter le code. Si vous êtes le client, vous devez d'abord passer par le serveur. Revenons au graphique des événements. Je vais juste retourner ici. Nous allons organiser cela plus tard. Ici, nous pouvons écrire un événement personnalisé, puis l'exécuter via le serveur. Et je vais l'appeler Calculer une direction. Et laissez-nous l'exécuter sur le serveur en toute fiabilité. Et je vais le prendre pour calculer une direction et le relier à ici. Allez-y et compilez maintenant, revenons au calcul d'une direction. Et lançons ce serveur, calculons la direction de visée ici. Ensuite, nous pouvons continuer le code. Lorsque vous êtes le client, vous allez passer par le serveur et l'exécuter. Et cela garantira qu'en tant que client, vous ne pourrez jamais exécuter celui-ci seul. Il doit passer par le serveur. OK, maintenant pour ce qui est de la direction de visée, nous pouvons calculer cette liste cliquant avec le bouton droit de la souris et en disant «   contrôler la rotation ». Nous allons maintenant connaître la rotation de la manette du joueur. Ensuite, nous pouvons dire get Acta rotation. Nous avons la rotation pour le contrôleur du joueur et nous avons la rotation pour l'acteur. Maintenant, ce que nous pouvons faire pour trouver un point central, nous devons trouver ce point central afin de savoir où le joueur vise. Nous pouvons prendre cela et dire delta et choisir celui-ci appelé rotateur delta Vous pouvez le brancher, c'est par le biais de la rotation de la manette du joueur et de la rotation de l'acteur. Il va trouver un point médian grâce à ce rotateur delta Maintenant, disons-le ici, rotateurs. Lorsque vous cassez un rotateur, vous pouvez voir le X, le Y et le Z. Vous pouvez aussi simplement le faire Si vous écrivez, cliquez ici et dites split struct pin, c'est en fait la même chose J'aimerais juste me séparer ici. Je vais donc écrire break, Break rotator. Et je peux voir le XY et le Z pour la direction de visée, nous avons besoin du y, du Y. Vous pouvez le prendre et le brancher ici. Maintenant, vous calculez correctement la direction de visée. Vous pouvez continuer, tout compiler et tout enregistrer. Nous sommes maintenant prêts à l'appliquer au plan d'animation et à faire en sorte que notre lecteur utilisant le offset Am fonctionne 47. 4.05 Ajouter le décalage de visée: Allons-y maintenant et ajoutons le décalage de visée au plan d'animation Retournez dans le dossier des animations et ouvrez le plan d'animation du joueur Ici, je vais revenir au graphique d'animation. Et à partir de là, déconnectons tout cela. Je vais vous montrer un truc avec celui-ci. Pour cette machine à états, vous pouvez en fait faire glisser et dire Cache, puis cliquer sur celle-ci. Enregistrer en cache Permettez-moi d'appeler celui-ci Unarmed Movement Cached. fait, il prend juste le moyen de locomotion, toute cette machine à états, et il l'enregistre dans ce cache Il le sauvegarde à l'intérieur d'ici. Au lieu de prendre celui-ci, nous pouvons simplement utiliser le cache. Mettons-le ici. Au lieu de l'utiliser à nouveau, cliquons avec le bouton droit de la souris et disons mouvement non armé Vous pouvez voir que vous pouvez utiliser celui-ci. J'ai utilisé le cache pour les mouvements non armés ici. Vous pouvez maintenant utiliser celui-ci au lieu de celui-ci ici. Cliquez avec le bouton droit de la souris et recherchez AO. Permettez-moi de me rappeler comment je l'ai appelé. Utilisons ce stand de 10 sans armes. Cherchons O, Stand unarmed, et assurons-nous que c'est bien ça. Joueur offset à 01h00 Joueur décalé, tenez-vous armé. Exactement comme nous l'avons appelé ici. Nous l'avons appelé le bras de stand AO. Allons-y et associons cela au poteau de base, le mouvement non armé au décalage de l'animation désarmée Allons-y et connectons-le ici. En ce qui concerne la direction du but. N'oubliez pas que nous l'avons déjà calculé. Nous devons accéder au graphique des événements , faire glisser le pointeur hors du joueur et rechercher la direction de visée. Celui-ci, ici. Promouvons-le à nouveau en variable ici à l'intérieur du plan et appelons-le une direction Connectons-le ici à la fin de, du graphique. Et permettez-moi double-cliquer pour le rendre un peu plus agréable. Très bien, compilons. Maintenant, je peux revenir au graphique d'animation. Et à l'intérieur d'ici, la direction dans laquelle je prends cette direction de visée , je la branche ici Et maintenant, compilons. Maintenant, lorsque nous cliquons sur jouer, voyons si cela fonctionne. Et vous pouvez voir que cela fonctionne. Maintenant, si je regarde vers le bas et si je regarde vers le haut, cela fonctionne réellement. 48. 4.06 Ajouter la caméra du joueur à la tête: Maintenant, lorsque nous jouons au jeu, vous pouvez voir que la caméra flotte et qu' elle ne suit pas vraiment la tête lorsque nous regardons de haut en bas. Pour ce faire, revenons ici. Ajoutons la caméra à la tête du personnage. Pour ce faire, nous devons trouver le squelette de notre personnage dès maintenant. Il se trouve à l' intérieur du marché, dans le personnage militaire Silva, et c'est le squelette que nous avons utilisé jusqu'à présent. Permettez-moi de double-cliquer dessus ici. À l'intérieur de ce squelette, trouvons l'os de la tête. Vous pouvez simplement aller ici et essayer de rechercher l'os de la tête, et vous verrez qu'il est ici. Vous pouvez également simplement le rechercher ici. Une troisième méthode consiste à cliquer sur le personnage en haut. Accédez à Bones et accédez à All Hierarchy. Cela vous montrera tous les atouts du personnage. Vous pouvez simplement cliquer sur l'os de la tête. Et vous pouvez voir qu'il sera également sélectionné ici. Je veux cliquer à nouveau sur le personnage et accéder à Bones. Et sélectionnez-le uniquement pour que je puisse à nouveau retirer ces os. Maintenant que vous avez sélectionné l'os de la tête, allons-y, cliquez avec le bouton droit de la souris ici pour créer une alvéole. Ajoutez un socket pour un socket. Est-ce que c'est juste un support vide que vous pouvez utiliser pour y attacher des objets. Dans ce cas, nous allons utiliser ce support pour fixer notre appareil photo à la tête. Vous pouvez également imaginer que vous pouvez également l'utiliser pour les armes. Par exemple, si vous voulez attacher un AK 47 sur le côté du personnage, vous pouvez toujours ajouter un socket sur le côté du personnage ici, peut-être au niveau de la hanche. Ensuite, vous pouvez également attacher l'arme à travers une douille. Mais pour l'instant, nous allons simplement ajouter un appareil photo. Corrigons cet os de la tête, puis cliquez sur Ajouter une douille. Et laissez-moi cliquer dessus et cliquer sur deux de mon clavier pour le renommer Et laissez-moi l'appeler pour prise et appareil photo. OK, cette caméra à prise, nous l'avons maintenant, allons-y et perdons tout. Revenons maintenant au plan. Allez dans le joueur et allez dans la base de joueurs. OK, à l'intérieur d'ici. Revenons à la fenêtre d'affichage. Et maintenant, nous voulons fixer ce ressort à la tête ou à la prise de caméra que nous venons de créer ici, dans les prises, vous pouvez le voir dans le panneau des détails, lorsque vous sélectionnez le ressort, vous pouvez voir la section du support et vous pouvez également voir qu'il n'est attaché à rien correctement. Maintenant, si nous cliquons sur ce dossier, vous pouvez maintenant voir le socket. Maintenant, si vous ne le voyez pas, c' est parce que vous n'avez pas ce ressort à l'intérieur de ce composant de maillage. Si je le fais glisser à l'extérieur d' ici comme ça, vous pouvez voir si je clique sur ce dossier, maintenant rien ne se passe. Vous pouvez voir que vous devez insérer le bras à ressort dans le personnage. C'est un enfant de ce maillage. Avant de pouvoir réellement cliquer ici et voir tout cela, vous pouvez également cliquer sur le terroriste du condo, par exemple. Lorsque vous cliquez sur l' antiterroriste, vous ne pouvez pas vraiment cliquer ici sur le ressort correspondant à l' antiterroriste, vous devez le faire par l'intermédiaire du parent Donc, dans la base de joueurs, c'est possible. Vous aurez le bras à ressort à l'intérieur de la maille. Ensuite, pour le bras à ressort, nous pouvons cliquer ici puis sélectionner la caméra. N'oubliez pas que si vous n' avez rien dans le maillage, par exemple ici vous n'en avez aucun, si vous l' avez effacé et qu'aucun personnage n' est debout ici, vous ne trouverez pas non plus le socket ici. C'est pourquoi, dans la base de joueurs, nous avons besoin d'un personnage à l'intérieur, car nous devons cliquer ici puis l'ajouter à un socket. Cliquez sur cet appareil photo. Maintenant, la caméra est attachée au personnage. Vous pouvez voir qu'il bouge réellement avec le mouvement de la tête. Il est en fait attaché. Maintenant , c'est plus réaliste. Maintenant, il flotte. Cliquons sur le ressort pour obtenir la longueur du bras cible. Je vais écrire zéro, puisqu'il s'agit d'un jeu à la première personne. Ensuite, pour l'emplacement et la rotation, il suffit de cliquer sur ces flèches pour réinitialiser également l'emplacement et la rotation. Vous pouvez continuer, tout compiler et tout enregistrer. Allons-y, cliquons sur Play pour voir à quoi cela ressemble. Vous pouvez voir que nous sommes dans la tête du personnage en ce moment, mais quand je regarde vers le bas et que je regarde vers le haut, vous pouvez voir qu'il suit la tête. Maintenant, quand je reste immobile et que je regarde comme devant moi, vous pouvez voir qu'il suit également la tête. La caméra bouge légèrement de la même manière lorsque je cours. Il bouge en fait avec le même mouvement que la tête. OK, maintenant il est attaché à notre lecteur. Revenons en arrière et essayons maintenant de régler le socket. Si vous ouvrez à nouveau le squelette, je reviens au personnage militaire Silva, ouvre le squelette. Et à l'intérieur d'ici, cliquons sur le socket de la caméra. Et je vais juste aller devant et essayer de régler la prise. Vous pouvez voir que pour le socket, lorsque vous l'avez sélectionné, vous avez également son emplacement relatif. Vous pouvez cliquer et faire glisser le pointeur ici. Et j'essaie juste de l' ajuster près des yeux parce que la caméra est proche des yeux du personnage de façon réaliste proche des yeux du personnage de Peut-être dix dans le X et dans le Y et le Z. Tout va bien pour le moment Laisse-moi, allons-y et rejouons pour voir à quoi ça ressemble. Nous sommes maintenant dans la tête du personnage. Si nous regardons vers le bas, si nous regardons vers le haut, tout semble bien. Cependant, la tête du personnage fait obstacle. Je peux aussi voir que les côtés du personnage gênent. Laisse-moi vraiment y retourner. Laisse-moi juste pousser la caméra légèrement vers l'avant. Si vous cliquez dessus et que vous le faites glisser, vous pouvez voir que vous faites glisser la caméra vers l'avant. Cependant, je ne veux pas trop le faire glisser vers l'avant. Je vais juste écrire cinq au lieu de zéro. Laisse-moi essayer de rejouer. Ça a l'air mieux. Maintenant, cependant, nous pouvons encore voir des parties de la tête. Le fait est que nous ne pouvons pas voir le corps intérieur de notre personnage ici. Tout se présente bien. Cependant, la tête nous gêne. Passons à la leçon suivante et retirons la tête de ce personnage. Seul l'ennemi peut voir votre tête, mais vous, en tant que joueur, ne pouvez pas voir la tête, c'est comme ça à l'intérieur de la caméra. Passons à la leçon suivante et faisons-le. 49. 4.07 Cacher la tête du modèle du joueur: Pour masquer la tête du personnage au joueur, vous pouvez revenir sur le joueur. Et ouvrons la base de joueurs. Ce que nous voulons faire, c'est retirer cette tête pour moi en tant que joueur. Cependant, lorsque je joue mon personnage, les ennemis peuvent toujours voir ma tête au-dessus d'ici. La raison pour laquelle je retire la tête pour moi c'est parce que lorsque je suis le personnage à la première personne, j'ai l'appareil photo. C'est en fait dans ma tête, c'est vrai, et je ne veux pas tout voir, ce n'est pas nécessaire. Enlevons maintenant la tête du joueur qui joue le personnage. Passons au graphique du van à l'intérieur d'ici. Faisons-le ici au début. Jouez. Lorsque nous commençons à jouer au jeu ici, vous pouvez cliquer avec le bouton droit de la souris et vous avez une fonction appelée masquer ou par nom. Masquez l'os par son nom. Et sélectionnez-le. Et il va créer automatiquement cette variable de maillage pour vous. Cette variable provient simplement de cette variable de maillage. Vous pouvez simplement cliquer dessus et le faire glisser. C'est le même. OK, alors allons-y et connectons-le. Maintenant, il vous demande quel os essayez-vous de cacher ? Maintenant, si vous revenez à votre squelette, vous essayez de cacher l'os de la tête. Il suffit de cliquer dessus pour voir qu'il s'appelle « tête ». Vous devez l'écrire exactement comme il est écrit ici. Il tient compte des majuscules. Tu dois l'écrire exactement tel qu'il est ici. Si j'écris une tête comme ça et que je clique sur Compiler, et si je clique sur Plate pour jouer au jeu, tu peux voir que la tête a disparu pour moi. Et je peux aussi le voir sur mon ombre. Vous pouvez voir qu'il n'y a plus de tête. Et en fait, ça a l' air mieux. Maintenant, en tant que personnage à la première personne que je peux parcourir, tout va bien, rien ne va. Oui, c'est incroyable. Cependant, pour ce qui est du côté du personnage, je peux le voir, je pense que c'est la radio du personnage qui apparaît réellement pour que nous puissions régler le problème. Vous pouvez toujours retourner voir le joueur ici si vous avez encore quelque chose à voir pour votre personnage. Et cliquez sur le support de l'appareil photo. Ensuite, vous pouvez cliquer à nouveau sur le Y et l'augmenter légèrement jusqu'à ce qu'il ne bogue plus. Si vous l'augmentez simplement à quelque chose comme dix et que vous cliquez sur jouer. Et si je regarde vers le bas et que je marche sur le côté, vous pouvez voir que je ne peux plus voir la radio. Cependant, ne l'augmentez pas trop , car si vous l' augmentez trop vers l'avant, la caméra traverse en fait les murs. Si je clique sur Jouer maintenant, je vois qu'il traverse les murs parce que je l' ai trop augmenté N'augmentez pas trop celui-ci. Peut-être qu'au lieu de cinq, je veux en essayer six et voir si cela résout mon problème. Si je me promène et que je vois encore légèrement la radio, je peux l'augmenter à sept. Au lieu de cela, essayez de cliquer à nouveau sur Play. Essayez de jouer avec la valeur minimale pour voir si cela résout le problème. Je vois que sept est le chiffre qu'il me faut, et tout va bien. Cependant, vous pouvez voir mon ombre, il me manque la tête. Nous devons donc également résoudre ce problème. Passons à la leçon suivante et corrigeons tout cela. 50. 4.08 Ajouter un maillage à la troisième personne: OK, maintenant réparons la tête manquante dans l'ombre. Allons-y donc et passons à la base de joueurs. Laissez-moi entrer dans le vif du sujet façon dont nous pouvons résoudre ce problème est ajouter un autre maillage à la troisième personne. Si vous cliquez sur le maillage, que vous allez Ajouter et que vous recherchez un maillage squelettique. Maintenant, si vous ne savez pas ce qu'est un maillage squelettique, si vous êtes nouveau ici, il s'agit simplement d'un modèle en trois D qui est animé en ce moment. Par exemple, le maillage de votre personnage est animé. Ce maillage, si vous maintenez la souris dessus, indique que le composant de maillage squelettique est simplement un modèle en trois D animé. Il s'agit d'un maillage squelettique. Allez-y et créez-le à nouveau. Appelons cela un personnage à la troisième personne, ou un maillage à la troisième personne, à l'intérieur d'ici. Ce que nous voulons faire, encore une fois, sélectionner le personnage et nous devons sélectionner ce style, un homme comme celui-ci. Ensuite, nous devons sélectionner le plan d'animation ici. Lecteur de plans d'animation. Maintenant, vous pouvez voir qu'il s'anime exactement comme notre maillage ici Ce que nous voulons vraiment faire, c'est ce personnage. Nous ne voulons pas que notre propre joueur voie celui-ci. Si vous cliquez sur jouer, vous pouvez maintenant voir que la tête est revenue. Si la tête est en arrière, c'est parce que nous avons maintenant ce maillage que nous voyons dans le jeu, mais nous avons aussi ce maillage. ce maillage à la troisième personne, nous ne voulons pas vraiment que les gens le voient parce que je l'ajoute simplement pour voir mon ombre sur le sol et la corriger par rapport à l'autre. Pour masquer cela à tous les joueurs, nous pouvons cliquer sur ce maillage à la troisième personne. Ensuite, nous pouvons descendre et essayer d'accéder aux paramètres de rendu. Vous pouvez voir que dans les paramètres de rendu, vous pouvez cliquer sur Hidden in Game. Maintenant, il est caché dans le jeu. Si vous cliquez sur jouer, vous pouvez voir que la tête n'est plus là. Cependant, mon ombre a également disparu. Il faut que je répare ça aussi. Si vous cliquez à nouveau sur le maillage à la troisième personne et que vous recherchez une ombre, vous obtenez celui-ci appelé Ombre cachée. Je peux voir l'ombre de mon objet caché, mon maillage caché à la troisième personne. Si vous cliquez sur Hidden Shadow, vous compilez. Vous pouvez cliquer sur Play. Mon personnage est caché. Cependant, je peux également voir l' ombre sur le sol maintenant. Maintenant, cela fonctionne correctement. Maintenant c'est réglé. Et revenons en arrière, juste pour nous assurer qu'il n'y ait aucune collision ce personnage, car nous ne voulons pas que avec ce personnage, car nous ne voulons pas que ce modèle de personnage entre en collision avec le maillage ci-dessus En cliquant sur ce maillage à la troisième personne, je passe simplement aux paramètres de collision et je m'assure qu' il est écrit « peut être utilisé », je vais dire non ici. Et assurez-vous de ne pas avoir généré d'événements de chevauchement sur. Et assurez-vous qu' aucune collision n' est prédéfinie. Compilons le tout. Sauvegardons tout et passons à la leçon suivante. 51. 4.09 Lissage de la caméra et des FPS: Lorsque nous jouons au jeu, il y a une légère jambe, je ne suis peut-être pas sûre que vous pouvez le remarquer pour le moment, mais si vous vous contentez de courir et essayer de déplacer la souris de haut en bas, parfois l' impression d'être un peu lent. Afin de corriger cette rotation, vous pouvez essayer de fermer ce jeu dès maintenant. Accédez au joueur et à l'intérieur, vous pouvez cliquer sur le ressort. Si vous cliquez sur le ressort, vous pouvez activer celui-ci ici sous celui appelé Activer la rotation de la caméra Le. Cela facilitera la rotation de votre caméra. Si vous jouez et que vous pouvez sentir que c'est le cas, cela semble un peu lent. Vous pouvez vraiment vous sentir lent lorsque j'essaie de faire pivoter mon appareil photo Pour résoudre ce problème, vous pouvez activer la rotation du pied de la caméra, ce qui facilitera la rotation de la Vous pouvez entendre le pied de rotation de la caméra, vous pouvez essayer de définir un chiffre. Si vous le réglez très, très haut, vous pouvez voir à quoi il ressemble. Il ne se passe pas grand-chose ici. Si vous le mettez sur un et que vous essayez de rejouer, vous pouvez voir maintenant que c'est très fluide comme ça. C'est bien trop. Vous pouvez voir qu'il essaie de lisser la caméra. C' est bien trop. Je dois l'augmenter à environ dix et vous pourrez essayer de voir à quoi cela ressemble. Cependant, si vous le mettez trop bas, vous verrez qu'il est lisse, mais qu'il semble un peu lent et que cela donnera probablement le mal des transports à certaines personnes Laissez-moi le mettre sur quelque chose comme 30. Au lieu de cela, je compile et j'essaie de faire une rotation. Je veux juste que ça soit naturel. C'est toujours un jeu de tir à la première personne et nous ne voulons pas le mettre trop haut ou trop bas ici, peut-être plutôt le mettre sur 40. Essaie juste de continuer à jouer à nouveau. Essayez d'augmenter le nombre. Essayez de regarder autour de vous et de voir ce que vous ressentez. Ça fait encore un peu l'effet, peut-être quelque chose comme 60. Et je vais essayer de regarder autour de moi. C'est beaucoup plus naturel, comme dans un jeu de tir à la première personne. Essayons d'ajuster ce chiffre ici. Vous ne voulez pas que ce soit trop bas, sinon la caméra semblera très lente et d'accord, c'est réglé. Passons maintenant à la fenêtre ou modifions-le, et passons aux paramètres du projet à l'intérieur d'ici. Si vous recherchez une fréquence d'images fluide, vous avez ce que l'on appelle une fréquence d'images fluide. Vous devez l'activer pour votre jeu si vous souhaitez le publier ailleurs, par exemple sur Steam ou pour un ami. La raison pour laquelle c'est une erreur que j'ai commise lorsque j'ai sorti Fm tail sur Steam. Si vous n'avez pas cette limite, si elle n'est pas activée, le joueur qui joue à votre jeu exécutera votre jeu au maximum d'images par seconde. Cela dépend de la carte graphique dont ils disposent. S'ils en ont un très, très bon, peut-être que votre jeu tournera à 800 images par seconde et qu'il utilisera en fait beaucoup de ressources pour leur ordinateur. Vous pouvez probablement entendre l'ordinateur émettre beaucoup de son à cause des ventilateurs parce que la carte graphique fonctionne trop. Vous devez l'activer pour empêcher le jeu fonctionner et d'utiliser toutes les ressources du joueur. Allez-y et utilisez cette fréquence d'images fluide. Au minimum, je vais juste le mettre à 30 images par seconde comme maximum. D'habitude, je le mets à 60 images par seconde. Pour les autres jeux, cependant, il s'agit d'un jeu de tir à la première personne, vous avez besoin de plus d'images par seconde. Je vais peut-être le mettre à 200 comme image maximale par seconde. Je pense que 200 c'est bien. Je ne pense pas que tu aies besoin de plus que ça. Fermons ça et sauvegardons tout. Passons à la leçon suivante. 52. 5.01 Réglage de la vitesse de déplacement: Nous sommes maintenant prêts à ajuster la vitesse de déplacement. Vous pouvez voir que lorsque vous cliquez sur jouer, cela tourne bien trop vite. Donc, si vous lancez un jeu, vous pouvez essayer d'avoir une idée de la vitesse à laquelle vous souhaitez courir dans votre jeu. Maintenant, pour moi, c' est bien trop rapide. Cela dépend vraiment du jeu que vous créez. Maintenant, si vous créez un jeu rapide, cette course pourrait même être trop lente pour vous Pour moi, je suis juste en train de créer quelque chose qui ressemble à Counterstrike Pas vraiment à 100 %, mais quelque chose comme ça. Je vais réduire légèrement cette vitesse de déplacement. Je pense que c'est bien trop rapide. Je peux aller ici dans ma base de joueurs, dans le volet personnage. Ensuite, je peux diminuer ma vitesse maximale de marche. Maintenant, je vais le réduire à quelque chose comme 700. J'essaie de jouer plusieurs fois et j'essaie d' ajuster ce chiffre. Ensuite, vous devez cliquer à nouveau sur Play. Et juste pour courir ici et essayer de voir ce que l'on ressent. Maintenant, continue juste à jouer. Essayez d'augmenter ou de diminuer le nombre de vitesses et voyez à quoi cela ressemble. Je pense que c'est bon pour moi. Peut-être que je peux réellement l' augmenter à 750 et essayer de rejouer. Je pense que 750 est le chiffre qu'il faut utiliser. OK, donc lorsque vous êtes trop occupé avec celui-ci, vous pouvez également vous rappeler que vous avez également ces variables flottantes pour la vitesse. Permettez-moi simplement de cliquer et de faire glisser ceci vers le haut, pour qu' ils soient ensemble. Vous pouvez également cliquer sur cette vitesse de course et la régler sur 750. Continuez et compilez maintenant. Pour la vitesse de marche, je vais la régler à environ 400. Et pour la vitesse d'accroupissement , environ 200. Encore une fois, j'ai essayé de jouer à mes jeux plusieurs fois. Je connais ces chiffres. Vous devez, encore une fois, régler la vitesse de marche sur quelque chose. Ensuite, vous devez cliquer sur Play. Ensuite, vous devez cliquer sur Shift to Walk et essayer de voir si cette vitesse de marche vous convient. Ou si vous voulez que ce soit un peu plus rapide. Essayez simplement de jouer à votre jeu encore et encore et essayez d' ajuster ces chiffres. Maintenant, si je joue à mon jeu, si je cours et que j'essaie de me faire une idée de sa rapidité, si je clique sur Shift pour me déplacer, je trouve que c'est beau aussi. Et si je clique sur le bouton de commande et que j'essaie de voir à quoi cela ressemble, je pense que cette vitesse me convient également. OK, alors allons-y et fermons tout cela maintenant que la vitesse de déplacement a été ajustée. Et ajustons également la vitesse de l'animation dans la leçon suivante. 53. 5.02 Réglage de la vitesse de l'animation: Lorsque nous ajustons la vitesse de déplacement, nous devons également ajuster la vitesse d' animation, sinon cela aura l'air incorrect. Si nous cliquons à nouveau sur le joueur et cliquons sur la base de joueurs. Ici, je veux ajouter de la longueur au Spring. Encore une fois, comme avant. La raison en est que je veux voir mon animation de course et voir à quelle vitesse ils courent. Vous pouvez voir que nous sommes en train de courir. Ça a vraiment l'air bien. Vous pouvez voir qu'il suit le sol. Parfois, vos animations pour le personnage lorsque vous courez sont trop rapides et trop lentes. Vous devez également ajuster la vitesse de course. Vous pouvez voir qu'il y a une collision ici. Pour une raison ou une autre, je pense que c'est mon ciel. Si je clique sur ce ciel ici et que je l'éloigne, pour une raison ou une autre, il y a une collision. Mais ce n'est que le ciel là-haut et peu importe où il se trouve, nous allons juste le mettre ici. OK, pour la vitesse de l'animation, ce que vous devez faire, c'est passer aux animations. Ensuite, vous pouvez définir les animations à l'intérieur des espaces de fusion que nous avons créés précédemment. Permettez-moi de commencer par l'espace Run Blend. Et à l'intérieur d'ici, si vous descendez et que vous pouvez voir tous ces mélanges. Maintenant, toutes ces animations que vous avez ajoutées ici sous forme de points, vous pouvez également les voir ici. Maintenant, d'abord, ce que je veux faire, c'est augmenter ma vitesse de prise de poids. Parce que la vitesse du poids, souvenez-vous, est le lissage des animations Je pense que parfois ça glisse un peu trop. Peut-être si je l'augmente à nouveau à 6,5 au lieu de 9,5. N'oubliez pas que, comme avant, lorsque vous l'augmentez, cela donne moins de fluidité à l'animation Je voulais juste avoir l' air plus naturel. Je vais ouvrir les autres. Pour les autres, je vais également régler la vitesse du poids à 6,5. 6,5 pour la promenade également. Je vais régler la vitesse du poids à 6,5. OK, c'est réglé. Sauvegardons tout. Bien, avant de faire quoi que ce soit, tu peux aussi monter ici et penser à changer d'axe vertical. Valeur maximale ici. N'oubliez pas que c'était la vitesse de déplacement pendant la course. La vitesse de déplacement actuelle de mon jeu est de 750. D'habitude, je le mets à environ la moitié. Je vais plutôt mettre celui-ci à 350. Vous pouvez voir que lorsque vous le placez à quelque chose de plus élevé, il est maintenant appliqué ici, 350. Cependant, mes animations fonctionnent toujours à 300. Je dois cliquer ici, faire glisser et maintenir la touche Shift enfoncée, puis la replacer ici, puis cliquer sur Maintenir la touche Maj pour la capturer à nouveau et la placer ici. Rien de nouveau. Nous l'avons déjà fait. Il suffit de faire glisser toutes ces animations jusqu'à 350, et elles s' exécutent maintenant à cette vitesse. OK, alors faisons-le avec les autres. Ouvrons la position accroupie. Je me suis accroupi à une vitesse de 200. Si vous ouvrez le joueur et que la vitesse d' accroupissement se trouve à l'intérieur de la base de joueurs, je la règle sur 200, donc je peux m' accroupir et je peux mettre celui-ci à environ 100 Cependant, vous pouvez voir que si je le mets à quelque chose de plus bas, cela me donnera beaucoup d' erreurs et toutes mes animations auront disparu. Cela est dû au fait que toutes ces animations sont supprimées. Ici, je vais cliquer sur le contrôle Z pour les ramener tous. Ils sont là. N'oubliez pas de tous les diminuer avant de commencer à jouer avec ces chiffres afin qu'ils ne soient pas supprimés. Je les ai déposés ici. Permettez-moi de réduire ce nombre à 100 maintenant. Et maintenant, vous pouvez tous les prendre et les ajouter ici à la vitesse maximale. J'aurais aimé qu'il y ait une fonctionnalité permettant de tous les prendre et de les déplacer vers le haut en même temps. Je ne pense pas qu'il y en ait. En fait, maintenant, pour la vitesse de marche, elle est fixée à 400. Je vais le mettre à 200, revenir à la vitesse d'animation, et je vais le mettre à 200 à la place, pour la vitesse, je vais les déplacer à nouveau vers le haut. Bien, maintenant que c'est réglé, sauvegardons tout. Revenons maintenant à l'essentiel pour ce qui est de la vitesse de l'animation. Commençons par la course en avant. Je vais commencer par la course en avant. Et la raison pour laquelle je le fais, c'est parce que lorsque ce sera correct, je m'appliquerai aux autres. Le running forward est mon premier ici. Courez en avant sans armes. Et vous pouvez cliquer sur la petite flèche pour voir les paramètres de l'échelle tarifaire. Si je l'augmente à environ trois et que je les maximise tous pour une raison ou une autre, c'est la voie à suivre Si je le mets à trois et que je clique sur Play, vous pouvez voir que la vitesse de mon animation est vraiment très rapide. Vous devez maintenant ajuster la vitesse de l'animation en fonction de votre mouvement, si pour le moment, une est la vitesse par défaut. Si je disais 1.1, juste un peu plus vite. Et si je clique sur jouer, et que vous pouvez voir à quoi cela ressemble, maintenant, la course sur les côtés ne fonctionne pas car il ne s'agit que du run forward que nous avons ajusté. Voilà à quoi ça ressemble. Pour moi Je pense que 1,1 sur l'échelle des taux semble une bonne chose. En fait, je veux l'appliquer aux autres. Ce que vous pouvez faire, c'est maintenir la touche Maj enfoncée et cliquer avec le bouton droit de la souris. Cela copiera ceci. Ou vous pouvez simplement cliquer avec le bouton droit de la souris et copier. Mais vous pouvez voir que Shift et le bouton droit de la souris le copieront également. Alors je ne veux pas le faire pour l'animation inactive. Les animations inactives, je veux juste qu' elles ne fassent qu'une, comme d'habitude. Encore plus de problème pour l'animation en cours d'exécution. L'avant droit court ici. Je vais maintenir la touche Maj enfoncée et cliquer avec le bouton gauche de la souris pour le coller. Encore une fois, vous pouvez également simplement cliquer avec le bouton droit de la souris et le coller. Mais vous pouvez voir que le raccourci est Shift et cliquez avec le bouton gauche de la souris. Je vais également le coller sur toutes les autres animations, afin qu'elles soient appliquées comme ça. Allons-y et cliquons sur Enregistrer. Cliquons sur Play. Maintenant, vous pouvez également voir à quoi cela ressemble pour tous les autres côtés. Ça a l'air un peu mieux. Et si nous l' augmentons, c'est pour qu' il ne ressemble pas un peu à ce qu'il était avant. Bien, maintenant que c'est fait, laissez-moi le fermer. Vous devez également le faire pour vous accroupir. Tu dois jouer ici. Essayez de vous accroupir et essayez de vous accroupir, voyez à quoi cela ressemble Peut-être encore une fois, nous devons augmenter légèrement la vitesse de l'animation car vous pouvez voir qu'elle semble glisser parce que la vitesse de l'animation est bien trop faible. Vous devez donc y retourner, passer à l'animation, vous accroupir en avant Je vais le remettre en version 1.1, comme pour ma course à pied, juste pour voir à quoi cela ressemble. Et si je m'accroupis et que j' essaie de marcher sur le côté, il nous en faut peut-être un peu plus ici 1.3 Cliquez plutôt sur jouer Essayez de vous accroupir et de voir à quoi cela ressemble. Mettez-le sur quelque chose comme 1.1 , puis vous pouvez cliquer sur Play. Alors tu te souviendras que ce n' est que pour les accroupis en avant Cela ne fonctionne pas si vous courez vers les sites ou si vous vous accroupissez devant les sites accroupis en avant, et je peux voir à quoi cela ressemble Peut-être qu'il glisse encore légèrement. Si je le mets plutôt sur 1.2, je clique sur jouer et je m'accroupis en avant Je pense que ça s'annonce bien mieux. Essayons, en fait 1.2 Ce que je vais faire, c'est que je vais à nouveau le copier et le coller sur toutes mes autres animations qui ne sont pas inactives. Les animations inactives ne m'intéressent pas. Je les ai au rythme d'un. C'est très bien Et pour les autres animations, je vais le mettre en 1.2 comme ça pour enregistrer. Ensuite, jouons et voyons à quoi ça ressemble. Si je marche aussi sur les côtés, il glisse toujours. En fait, je dois peut-être l' augmenter à 1,3. Laisse-moi vraiment y retourner. Ici, vous pouvez voir que cela prend du temps. Tu dois le tester. Si je le mets à 1.3, je le copie et je le colle sur toutes les autres animations. Tout comme avant. Je continue et je clique à nouveau sur jouer. Laisse-moi voir à quoi ça ressemble maintenant. Maintenant c'est beaucoup moins, vous pouvez voir que c'est beaucoup plus beau qu'avant. Nous pouvons continuer à ajuster ces vitesses de déplacement et ces animations et voir à quoi elles ressemblent. Lorsque vous êtes satisfait, vous pouvez maintenant passer à la marche, faire la même chose, continuer et cliquer sur Jouer, maintenir la touche Maj enfoncée, Essayer de vous déplacer. Tu glisses beaucoup trop en ce moment. Passez au mouvement vers l'avant. Je vais voir si je peux le trouver ici. Si je monte en avant, celui-ci ici, Animation. Avancez. Si je le mets à 1,3 cliquez sur Play, je maintiens la touche Shift enfoncée et j'essaie de me déplacer. Et il continue de glisser légèrement. Si je le mets plutôt à 1,5, maintiens la touche Maj enfoncée et que j' essaie de me déplacer, vous verrez que la marche est beaucoup plus belle. Je ne suis pas en train de me balader. Vous pouvez soit régler la vitesse de déplacement pour la marche, soit ajuster les animations en fonction de la vitesse de déplacement. Je pense que 1,5 me convient. Je vais le copier sur toutes les autres animations qui ne sont pas inactives, comme celle-ci et au verso. Et maintenant, vous pouvez voir que c'est inactif, donc je ne vais pas le copier ici. OK, cliquez sur jouer, et maintenant vous pouvez maintenir la touche Maj déplacer et essayer de marcher sur le côté. Ça a l'air bien mieux. Si vous pensez que c'est trop rapide, vous pouvez toujours réduire la vitesse de déplacement ou la vitesse d'animation. C'est très bien Encore une fois, cela dépend vraiment du jeu que vous créez. Je pense que c'est bon pour moi. Et je peux toujours venir ici et ajuster plus tard si je ne suis pas satisfait. Parfois, lorsque je ferme mon jeu et que je me connecte le lendemain, je trouve que quelque chose semble stupide et je change les choses, essaie de modifier la vitesse de déplacement et la vitesse d'animation, etc. Mais pour le moment, ça me semble bon. Je dois donc le fermer maintenant et nous laisser tout enregistrer. Passons à la leçon suivante. 54. 5.03 Fixer le mur de la caméra: Nous devons maintenant régler le problème de la caméra. Si je retourne vers le joueur et que je règle le ressort à la longueur du bras de zéro, juste pour revenir au mode première personne et que je joue, vous pouvez voir si je m'approche d'un objet et si je regarde vers le bas, parfois il passe à travers le mur comme ça, comme vous pouvez le voir ici. Et je peux regarder à travers le mur, et les gens vont probablement en abuser et tricher dans le jeu pour voir ce qu'il y a derrière le mur afin d'y remédier Il y a deux moyens. La première consiste à aller sur le marché, à aller voir le joueur et trouver le squelette du joueur. Maintenant, cela dépend de votre socket. abord, le socket que vous avez ajouté, vous pouvez voir que j'ai mis ma valeur Y à sept, si vous la mettez à zéro, par exemple. Et si vous cliquez sur Play, vous pouvez voir que vous repoussez la caméra. Et tu peux voir une plus grande partie de ton corps, juste comme ça. Vous pouvez essayer de repousser votre appareil photo, peut-être qu'au lieu de zéro, vous pouvez le réduire de cinq. Vous pouvez voir à quel point vous pouvez repousser votre appareil photo sans le faire mal paraître. Vous pouvez donc voir moins cinq. Je commence par : vous pouvez voir le cou ou la tête de mon personnage, presque là où la tête a disparu et ça n'a pas vraiment l'air bien. Moins cinq, c'est beaucoup trop. Je le remettrais à zéro, par exemple, et j' essaierais de rejouer. Le problème avec ce personnage, c'est qu'il a une radio. Vous pouvez voir la radio sur le lecteur ici. En fait, c'est un peu ennuyeux de se retrouver devant le personnage ou la caméra comme ça . Maintenant, s'il s'agit d'un personnage personnalisé que vous avez conçu, vous pouvez le stabiliser un peu plus pour qu'il ne passe pas par la caméra. Et si tel était le cas, cette position de la prise serait en fait bien meilleure. Parce que vous pouvez voir le corps et qu'il est beau comme ça. Cependant, la radio est un peu embêtante pour ce personnage, alors je vais encore une fois avancer. C'est la raison pour laquelle nous l'avons portée à sept, car à sept heures, nous ne pouvons pas voir la radio et tout va bien. OK, comment pouvons-nous résoudre ce problème maintenant ? Nous ne pouvons plus vraiment jouer avec le socket car il est placé du mieux que nous pouvons. L'autre point est que vous pouvez accéder à la base de joueurs et à la fenêtre d'affichage ici, dans la base de joueurs, vous pouvez cliquer sur le composant Capsule Composant de la capsule. Vous pouvez voir si vous l'augmentez, le rayon de la capsule jusqu'à quelque chose d'extrême, par exemple 150. Et si vous cliquez sur Jouer, vous pouvez voir que vous entrez collision beaucoup plus rapidement contre les murs. Et tu ne peux pas te diriger facilement vers les murs. Vous pouvez le voir ici. Il est désormais impossible de marcher et de voir à travers les murs. Cependant, il est un peu irréaliste placer trop haut, car vous ne pouvez pas vraiment approcher des murs et vous vous retrouvez bloqué Vous serez également bloqué ici. Si vous vous rendez sur cette rampe, je pense que vous pouvez voir que vous ne pouvez pas la franchir parce que composant de votre capsule est bien trop haut et que vous ne pouvez pas la traverser. OK, augmentez ce composant de la capsule. Une taille qui vous convient parfaitement et qui élimine le clip mural, tout en restant petite 70, par exemple. Essayons-le. Passons à travers le mur ici. Regardez en bas, regardez la taille. C'est peut-être sympa. Cela fonctionne en fait, passons à celui-ci. Parfois, je peux voir à travers les murs. Parfois, si je marche dedans, je dois l'augmenter légèrement, car le fait continuer à traverser les murs peut le porter à 75. Ensuite, testez à nouveau et voyez à quoi cela ressemble. Oui, peut-être que 75 fonctionne en fait. Ça fait un peu mal parfois. OK, donc je vais mettre un 280. C'est ma décision finale ici. Alors compilons et maintenant c'est à 80. Oui, si je regarde vers le bas, je regarde vers le haut, je regarde sur les côtés. Je ne peux pas voir à travers le mur. Et je peux toujours m'approcher du mur comme ça. Et voyons si nous pouvons monter les rampes ici. Si je monte la rampe et que cela fonctionne, même si je suis près du mur de la rampe ici, je peux toujours monter la rampe. OK. C'était une solution facile si vous allez ici. Maintenant, ça pose un petit problème car l'espace est vraiment étroit. Ce que vous pouvez faire pour régler ce problème dès maintenant, c'est que vous pouvez toujours venir ici et vous pouvez passer à dix Et enfilez-le. Alors en fait, vitesse de mon appareil photo est bien trop élevée. Je vais le diminuer. Vous pouvez cliquer sur cet objet ici et simplement le déplacer sur le côté. Modifiez peut-être un peu le design de la carte pour que cela ne se renverse pas. Maintenant, si vous avez besoin d'un système de collision très, très complexe, cela nécessite en fait un travail bien trop avancé pour ce cours. Ici, vous pouvez le faire avec des plans. Cependant, il faut beaucoup de code pour que cela fonctionne, et ce sera vraiment avancé par rapport à ce cours. Vous pouvez réessayer de monter ici pour voir si cela fonctionne. Regarde si tout va bien. Et vous pouvez voir que tout fonctionne bien également. Très bien, voici comment on répare la caméra. Je perce à nouveau les murs. Si ça se coupe un jour, tu peux toujours y aller. Reprenez peut-être la position la prise ici, cela vous aidera. Ou si vous pouvez venir ici et augmenter légèrement ce composant de la capsule pour qu'elle ne soit pas épuisée. Mais attention à ne pas trop l' augmenter. 55. 5.04 Fixer le crouch de saut: C'est vrai. Maintenant, si je joue au jeu, vous pouvez voir quand je saute, en fait, quand je saute et j' appuie sur le bouton accroupi en même temps, vous pouvez voir que je peux le spammer ici Quand je saute et que je continue à m'accroupir, la caméra se coupe comme ça Vous pouvez l'avoir comme mécanisme si vous le souhaitez pour votre jeu. Certaines personnes aiment ce genre de choses, par exemple. Vous pouvez sauter, vous pouvez essayer de vous accroupir et vous pouvez regarder par-dessus le mur en vous disant que c'est peut-être un mécanicien Cependant, je trouve que c'est un peu trop et je ne veux pas vraiment que ce mécanisme soit là quand il se clipse comme ça. Si je continue à m'accroupir, revenons au joueur, à la base de joueurs qui se trouve à l'intérieur d'ici Passons à la logique de l'accroupissement. Celui-ci, ici. Dans la logique de l' accroupissement, je veux m'assurer que le joueur ne saute pas Tu ne peux pas t'accroupir quand tu sautes. Si nous prenons celui-ci, souvenez-vous que nous avons déjà fait en sorte que cette fonction ne saute pas. La seule chose que nous avons faite ici, c'est de prendre la composante de mouvement du personnage et lui demander si le personnage tombe ou non. Si le joueur ne tombe pas, cela signifie qu'il n'est pas en l'air, ce qui signifie qu'il ne saute pas. OK, on peut le prendre, on peut créer une branche. Si le joueur ne saute pas, nous pouvons nous accroupir Il y a un léger problème en ce moment si nous sautons et que j' appuie sur accroupi Parce que tu vois, je ne peux que m' accroupir par terre. Cependant, si je saute et que je m'accroupis, lorsque j'atterrisse, je ne m'accroupis pas Je dois vraiment m'accroupir chaque fois que je saute et que je clique sur accroupi, il devrait s' accroupir automatiquement lorsque Et nous devons régler ce problème ici. Je vais m'en éloigner et retarder le code de quelque chose de vraiment très petit. Peut-être que 0,05 après le délai, nous pourrons revenir en arrière et rejouer ce code. Ce que cela fait, c'est simplement que si vous êtes en train de sauter, vous ne pouvez pas vous accroupir, alors ce sera faux Il va poursuivre et retarder le code, puis il reviendra et vous demandera à nouveau si vous sautez ou non. Il ne cesse de vérifier si vous sautez ou non. Et lorsque vous atterrissez au sol que le bouton d' accroupissement est toujours enfoncé, il avance et s'accroupit Vous pouvez l'essayer, voir si cela fonctionne ou quelque chose comme ça. Bugs, vous pouvez sauter ici, accroupir, vous accroupir, un œil, atterrir Cela fonctionne vraiment. Maintenant, si vous le mettez trop haut, cela vous semblera un peu lent, car lorsque vous sautez, cela prend un peu de temps Avant de vous accroupir, vous pouvez faire en sorte qu'il soit beaucoup mieux de vous accroupir ici Si vous le réduisez beaucoup, le temps de réponse sera beaucoup plus long. Si vous sautez, cliquez et vous accroupissez, vous pouvez le voir s' accroupir immédiatement Je n'aime pas trop le dire , car souvenez-vous que plus vous le mettez bas, plus ce code sera exécuté plusieurs fois. Il va fonctionner autant de fois par seconde pour essayer de vérifier si vous sautez ou non. Pour celui-ci, je vais juste le mettre à 0,05 à la place. Pour vérifier combien de fois cela s'exécute, vous pouvez toujours utiliser ce navigateur et dire 1/0 0,05. Ensuite, vous pouvez voir ce code maintenant, s'exécute 20 fois par seconde Et vous pouvez voir qu'il fonctionne de nombreuses fois. Si vous le mettez à 0,01, il s'exécute 100 fois par seconde. Je n'aime pas le dire trop bas. 0,05 est un bon chiffre. Fermons ça. OK, maintenant ça marche. Maintenant, le problème est là. Pour l'accroupissement. Il va en fait exécuter le code d'accroupissement même si je ne suis plus accroupi. Vous pouvez voir si je fais glisser le pointeur ici et que je dis «  imprimer la chaîne » et que j'imprime simplement un simple message à l'écran pour voir si ce code est en cours d'exécution ou non compilé. Cliquons sur Play. Tu peux voir si je saute, si je tiens, si je m'accroupis, et je vais lâcher prise. Donc, quand j'atterrirai, il va vraiment s'accroupir. Je saute, je m'accroupis et je lâche prise. Il va exécuter le code d'accroupissement même si je n'en ai pas vraiment besoin, parce que je ne me suis pas encore accroupi pour le faire ou pour le réparer Nous pouvons prendre l' état du mouvement faire glisser à partir de celui-ci et nous pouvons dire qu'il contient un élément. S'il contient l'objet accroupi, alors nous voulons continuer et nous accroupir Lorsque nous relâchons le bouton, frappons ici. En fait, il suffit de le faire glisser ici. Faisons une branche et connectons-la, juste comme ça. OK, j'organise ça un peu, d'accord ? Donc, ce que nous faisons ici, c'est nous demander si nous sommes dans le coup ou non. Et si nous ne sommes pas en train de sauter, nous pouvons avancer et nous accroupir si nous sommes au sol Cependant, si nous sommes dans le saut en l'air, cela va continuer à se revérifier chaque fois que nous atterrirons Et quand nous atterrirons, il va passer par ce code, puis il va demander avez-vous relâché le bouton ou avez-vous appuyé sur le bouton ? Si vous appuyez sur le bouton, vous allez vous accroupir automatiquement Si vous appuyez toujours sur le bouton d'accroupissement, si vous l'avez relâché, il va d' si vous l'avez relâché, il va d'abord vérifier si vous êtes réellement accroupi. Si ce tableau d'états de mouvement contient l'élément d' accroupissement, et si ce n'est pas le cas, alors ne faites rien car nous ne sommes pas Il est logique d'exécuter ce code. Cependant, s'il contient le bouton accroupi et que vous relâchez le bouton, il va s'accroupir Essayons d'y jouer maintenant. Et sautons et cliquons sur accroupissement. Cela aide. Si je saute, que je clique sur accroupi et que je lâche prise, vous pouvez voir que le code ne fonctionne plus et qu'il est entièrement optimisé Compilons maintenant. Tout fonctionne ici. Quand je saute et que je spam mon bouton accroupi, ça ne marchera pas Ce n'est que lorsque j' atterrisse ici en l'air que je ne peux pas envoyer de spam sur mon bouton d'accroupissement 56. 5.05 Correction des bugs restants de crouch: OK, la dernière chose que je voudrais corriger pour le fait d'être accroupi, c'est que vous pouvez voir si je passe sur un bord ou un rebord Et je m'accroupis ici, je vais jusqu'à ce bord et je m'éloigne du bord Vous pouvez voir que le personnage est bloqué ici dans les airs. Vous pouvez voir tous les arêtes qui le font réellement. Si je monte ici, c' est bien trop haut. Je monte ici, je m' accroupis et j'ai envie de tomber. Vous pouvez voir que je suis en fait sur le bord du gouffre. Et oui, ça a l'air bizarre. Fermons-le. Passons à la base de joueurs. Et si vous cliquez sur le composant de mouvement du personnage et que vous recherchez accroupi, celui-ci s'appelle Can walk off ledges Lorsque vous êtes accroupi, cliquez dessus , compilez et cliquez sur jouer Maintenant, vous pouvez voir quand cela se produit, si vous vous accroupissez ici et si vous sautez, il tombera de ce bord C'est la seule chose que nous devions faire, une solution très, très simple. Passons à la leçon suivante. 57. 5.06 Préparer le SFX Footsteps: Il est maintenant temps d'ajouter des effets sonores de au personnage afin qu'il sonne mieux dans le jeu et qu' il ne soit pas trop silencieux. Allons-y et créons un nouveau dossier. Allons-y dans le dossier de contenu. Faisons un clic droit, accédons à un nouveau dossier, appelons-le audio. À l'intérieur de ce dossier, je vais également écrire click and create a new folder. Je vais appeler cela des effets sonores à l'intérieur de ce dossier. Allons-y et importons les effets sonores maintenant. Encore une fois, dans les documents que j' ai téléchargés pour vous sur ce site Web, vous verrez beaucoup plus d'articles. Par exemple, dans l' interface utilisateur ou dans l'audio, vous verrez beaucoup plus d'éléments que ce que vous voyez ici parce que je n'arrête pas d'en ajouter. Pendant que je développe ce cours. Vous verrez peut-être encore plus de choses que ce que vous voyez ici en ce moment. Ne vous inquiétez pas, ne vous y trompez pas trop, je continue d'ajouter des éléments pendant que je développe ce cours. heure actuelle, ce que nous devons utiliser, ce sont les pas, l'effet sonore des pas 1-6. Vous pouvez donc cliquer sur tout cela et les faire glisser dans le panneau ici, le navigateur de contenu, les lâcher prise, et ils seront ajoutés Ce que vous devez faire, c'est cliquer avec le bouton droit de la souris sur Go et, ici, dans l' audio, créer un son. Lorsque vous produisez un son, vous pouvez l'appeler, appelons-le des pas. Maintenant, une autre façon de créer un son est de simplement cliquer avec le bouton droit sur l'un d'entre eux et de cliquer sur Create Que. La troisième option consiste à les sélectionner toutes et créer un seul que qui les téléchargera également dans un seul que, ce que nous voulons faire. Mais vous pouvez également simplement cliquer avec le bouton droit de la souris pour accéder à l'audio et créer le son. Différentes options s'offrent à vous. Passons à l'intérieur de cette file d'attente audio. Laisse-moi juste l' agrandir un peu pour qu'on puisse voir. Ce que nous pouvons faire maintenant, c'est prendre tout cela. Cliquez sur le premier , tout le quart de travail, cliquez sur le dernier et cliquez et faites-les glisser dans le signal sonore ce qui ajoutera tous les effets sonores des pas au signal sonore Maintenant, à l'intérieur, ce que vous pouvez faire, c'est que nous voulons jouer ces pas au hasard. Il doit choisir au hasard lequel jouer, juste pour que nous ayons une certaine variété. Ce que vous devez faire est d'écrire, de cliquer et de rechercher au hasard. Ensuite, vous trouvez cette note aléatoire. D'ailleurs, pour les signaux sonores, vous pouvez écrire click. Et vous pouvez voir que vous avez ces nœuds comme dans Blueprint Cependant, pas comme dans Blueprint. Vous pouvez voir que vous n' avez pas beaucoup de nœuds, mais vous pouvez également faire des choses intéressantes avec eux, même si vous n'en avez pas beaucoup. Maintenant, pour celui-ci, nous allons utiliser le random, et il va jouer l'un de ces effets sonores au hasard. Connectons-le. Faisons-les glisser et connectons-les ici. Et cliquons dessus . De plus, quelques fois que nous avons ces entrées, nous pouvons les brancher comme ça. Branchez-les tous. La sortie que nous branchons sur la sortie. Organisons-le un peu. Ce que vous pouvez faire maintenant, c'est cliquer sur Pl Q pour voir ce qu'il fait. Et vous pouvez voir qu'il émet un son au hasard. Il choisit simplement l'un d'entre eux. Maintenant, je pense que c'est bien trop silencieux. Nous pouvons passer au multiplicateur de volume et augmenter l'effet sonore des pas pour le mettre à 1,2 par exemple Ou tu peux le mettre à trois. Vous pouvez voir que cela augmente le son, peut-être 1,2. Je ne veux pas qu'il soit trop élevé pour ce cours, car je vous parle aussi et vous pouvez entendre ma voix. Si c'est trop fort, ce sera probablement trop ennuyeux. Peut-être un pour moi, tu peux l'augmenter un peu plus. L'un d'eux est peut-être encore trop silencieux. Mais pour ce cours, je vais m'en tenir à un. Je pense que vous pouvez également m'entendre lorsque je me rappelle le cours. OK, nous avons pris les mesures nécessaires et tout est prêt. Et vous pouvez également le jouer ici pour voir à quoi il ressemble. Maintenant, si vous voulez également plus de variété, vous pouvez utiliser ce qu' on appelle un modulateur Si vous cliquez avec le bouton droit de la souris et recherchez un modulateur ici, je vais simplement utiliser un son pour vous le démontrer Si je prends ce son et que je le connecte à la sortie, vous verrez que si vous jouez maintenant, son est un peu différent. Si vous cliquez sur le modulateur et que vous diminuez le pitch à 0,9 et augmentez le pitch maximum à 1,1, il y a une grande différence Il va produire une variété de sons avec des hauteurs différentes. Si vous cliquez sur Play now, vous pouvez entendre que le son est un peu différent à chaque fois que vous pouvez utiliser un modulateur pour augmenter ou diminuer la tonalité de manière aléatoire Vous pouvez également le connecter ici. Si je le reconnecte, vous pouvez le connecter ici pour créer un peu de variété. Maintenant, au lieu de 0,9, je vais m'en tenir à 0,95, mais pour le pitch max, je peux m'en tenir à un Quelque chose comme ça. Vous obtenez un son différent à chaque fois que vous jouez. OK, sauvegardons tout. Fermons-le et passons à la leçon suivante. 58. 5.07 Minuterie par événement: Maintenant, il faut ajouter l'effet sonore des pas de pas. Si vous l'avez déjà fait, vous savez que vous pouvez accéder aux actifs et aux animations. Et à l'intérieur d'une animation, par exemple, celle-ci ici, n'importe quelle animation aléatoire. En fait, l'accroupissement est probablement la course que nous devons trouver. Par exemple, celui-ci. Vous savez que vous pouvez entrer ici, cliquer avec le bouton droit de la souris, ajouter les notificateurs, puis créer un effet sonore Lorsque vous faites cela, vous sélectionnez un effet sonore ici dans la file d'attente audio, et vous cliquez simplement sur Play. Vous pouvez voir que cela fonctionne réellement. Et vous pouvez copier cet effet sonore, le coller, essayer de le combiner avec les traces de pas, juste comme ça. Quelque chose comme ça, par exemple. Juste comme ça. Cela fonctionnera également dans le jeu lorsque vous jouerez au jeu. Cependant, je l'ai fait et je voulais l'enregistrer pour vous. Cependant, cela se produit un peu parce que lorsque vous courez, le son est parfois émis deux fois. Comme vous l'avez également sur l'autre animation, vous devez l'appliquer à toutes les animations exécutées lorsque vous passez de l' animation de l'arrière au premier plan ou de l'arrière à droite à l'arrière gauche. Parfois, il place le son deux fois à la fois. Ça a l'air un peu bogué. Je n'aime pas vraiment cette méthode, alors j'en ai essayé une autre. Alors fermons-le et essayons ce qu' on appelle un chronomètre par événement. Dans cette leçon, je veux juste vous expliquer ce qu'est ce chronomètre par événement, car nous allons en fait l' utiliser plus d'une fois. Et c'est un concept et une fonction très importants au sein du plan directeur Passons au joueur, passons à la base de joueurs. Maintenant, pour ce qui est de la course à pied, je voudrais peut-être en parler ici, dans le cadre de l'épreuve de mouvement qui aura le plus de sens. Prenons tout cela, et je vais en fait le baisser légèrement pour pouvoir travailler ici sans aucune restriction. Passons ici à la fin du code de mouvement, puis faisons glisser le pointeur à partir de là et écrivons le chronomètre par événement. Et nous pouvons continuer et sélectionner celui-ci appelé chronomètre par événement. Tu peux aussi écrire, et tu peux voir ce que tu peux faire. Vous avez une minuterie par événement, minuterie par nom de fonction. C'est presque la même chose que l'événement, mais vous pouvez voir de quoi il s'agit. Après avoir compris ce qu'est le réglage du chronomètre par événement, sélectionnons le réglage du chronomètre par événement. Maintenant, pour cet événement, nous devons ajouter un événement personnalisé ici. Vous pouvez voir cette entrée que vous devez diriger à partir d' ici et vous devez écrire des événements personnalisés. Ensuite, vous devez donner un nom à votre événement personnalisé. Par exemple, je vais simplement l' appeler play footsteps, sound effects, play footstep sound effect Maintenant, il vous demande ici, quelle heure voulez-vous faire une boucle ? Par exemple, augmentons de 0,5. Maintenant, je vais sélectionner ici que ce chronomètre est en boucle Et je vais juste cliquer à nouveau sur cette flèche. OK, maintenant c'est un chronomètre en boucle. Et ça va tourner en boucle toutes les 0,5 seconde. Si je pars d'ici et que j'imprime une corde, et que je peux cliquer sur jouer ici, vous devriez voir que nous courons ici. Et j'arrête mon code, vous pouvez voir qu'il s'exécute toutes les 0,5 secondes. Vous pouvez voir qu'il imprime le bonjour toutes les 0,5 secondes. Tu peux mieux voir ça si je change juste la couleur. Par exemple, pour ce qui est de la durée, au lieu de 2 secondes, je l'ai fixée à 50 secondes. Je clique sur jouer, je bouge et je m'arrête. Il va exécuter le code. Tu vois, toutes les 0,5 secondes, il va dire bonjour. Si vous le posez, vous pouvez voir toutes les 0,2 secondes qu'il va dire bonjour, comme vous pouvez le voir ici. Nous pouvons donc utiliser ce minuteur pour exécuter du code. Dans ce cas, nous allons l'utiliser pour reproduire en boucle les effets sonores des pas lorsque vous courez, il va jouer les effets sonores OK, pour ce chronomètre, il faudra à un moment donné arrêter le chronomètre. Sinon, cela va tourner en boucle pour toujours et votre code se bloquera à un moment donné parce que vous en avez généré trop d' instances Faisons donc un clic droit pour le transformer en variable. Appelons cela des étapes de 1 pied. Cela influe sur le temps ou sur la manipulation. C'est ce qu'on appelle une poignée. Si vous maintenez la souris dessus, cela s'appelle une structure de poignée temporelle. D'habitude, je dis «   time » ou « handle » à la fin. Les pas, le son, les effets, le temps ou la poignée. Maintenant que nous l'aurons plus tard, ce que nous pouvons faire, c'est prendre cela et dire clair et invalider le chronomètre C'est à ce moment que nous voulons arrêter ce chronomètre. À un moment donné, nous pouvons aller de l'avant et utiliser ce chronomètre clair et invalidé Mais pour l'instant, supprimons-le simplement. Oui, c'était en fait pour cette leçon. Permettez-moi simplement de changer celui-ci en quelque chose comme 0,5 pour commencer. Parce que n'oubliez pas qu'un chronomètre dure ce nombre de secondes. Ainsi, par exemple, si vous avez 0,1, il fonctionnera dix fois par seconde. Vous pouvez imaginer que vous ne voulez pas associer cela à quelque chose comme ça, car imaginez combien de fois cela va se reproduire. Si je dis bonjour, que je clique sur jouer, que je cours et que je m'arrête, vous pouvez voir que c'est du spam. Ce code, vous pouvez le voir, mon jeu plante en fait et il est très lent Ne fais pas ça, c' est vraiment nul. J'aime m'en tenir au minimum, à la valeur minimale. Si je dois vraiment aller très bas, c'est 0,3 ou peut-être 0,2 dans de rares cas. Mais d'habitude, j'essaie de rester à 0,50 0,40 0,6 C'est si j'ai vraiment besoin de l'exécuter Souvent, encore une fois, comme je l'ai déjà dit, vous pouvez toujours accéder à votre navigateur Internet et vous pouvez dire, par exemple, 1/0 0,01 Ensuite, vous pouvez voir combien de fois il s'exécute D'habitude, je n'aime pas y aller plus de 60 fois par seconde. J'écris, par exemple, si vous écrivez 0,03, cela fonctionne 33 fois par seconde Et parfois c'est bon, ne t'inquiète pas. Cela est parfois nécessaire et vous saurez quand vous en aurez besoin. Quand tu peux rester éveillé comme ça, c'est beaucoup mieux. Cela exécute le code 16 fois. Vous pouvez voir 0,03 Vous exécutez le code presque ou même le double du temps que 0,06. Essayez de rester le plus haut possible ici , car ce sera vraiment optimisé pour moi en ce moment pour les Exécutons-le simplement pendant 0,5 seconde, deux fois par seconde. Et nous pouvons toujours l' ajuster plus tard lorsque nous en avons besoin. Supprimons celui-ci. Compilons tout et passons à la leçon suivante. 59. 5.08 Réplication multicast: OK, alors nous y revoilà. Maintenant, très important, nous sommes en mode multijoueur. Nous ne pouvons pas simplement aller ici faire glisser le pointeur à partir d'ici et dire play Sound par exemple. Il suffit de dire Play Sound. Vous pouvez jouer le son en deux D, qui est généralement utilisé pour les éléments de l' interface utilisateur lorsque vous cliquez sur un bouton. Et vous pouvez émettre du son à un endroit, par exemple pour les traces de pas. Et vous pouvez simplement sélectionner le son. Et vous pouvez voir que si je clique sur Play, je cours, le son sera comme vous pouvez le voir ici. Maintenant, cela ne fonctionne pas vraiment en multijoueur. Le client n'entendra pas le son, car encore une fois, souvenez-vous que nous devons répliquer les éléments aux clients depuis la liste des serveurs Maintenant, cela fonctionnerait en solo, mais non en multijoueur. Maintenant, pour le multijoueur, nous devons utiliser une multidiffusion. Ce qu'est un multicast, créons-le ici et je vais vous l' expliquer Faisons un clic droit et créons un événement personnalisé. Cet événement personnalisé, je vais d'abord appeler le serveur. Faisons-le passer par le serveur. Traces de serveurs, effets sonores. OK, cliquons ici dans les répliques, lançons le serveur de manière fiable Maintenant, faisons un clic droit ici et créons un nouvel événement personnalisé. Appelons-le MC pour multicast. Et encore une fois, jouez des effets sonores pour celui-ci, cliquez sur le Replicate Et maintenant, nous allons également choisir la multidiffusion et la fiabilité Ce qu'est un multicast, vous pouvez l'imaginer, il le reproduit, peu importe ce que vous écrivez ici, à tous les clients Tous ces articles que vous écrivez ici à tous les clients coûtent cher . Pour le multicast, il ne peut fonctionner que via le serveur. Vous ne pouvez pas venir ici et dire « effets sonores de pas de multidiffusion parce que celui-ci, vous pouvez le voir, indique que si le serveur ne passe que par le serveur, vous ne pouvez pas le diffuser via le client On ne peut pas faire ça. C'est pourquoi nous devons d' abord le faire glisser à partir d'ici et le faire passer par le serveur, avec des effets sonores de pas Ensuite, depuis le serveur, nous pouvons faire glisser et dire des effets sonores de pas en multidiffusion Et cela fonctionnera parfaitement, vous devez donc d'abord le faire passer par le serveur, depuis le serveur, vous pouvez ensuite le multidiffuser OK, une autre explication de la multidiffusion que vous devez comprendre est que la multidiffusion est généralement utilisée pour des effets temporaires Par exemple, si vous jouez un effet sonore parce que vous vous souvenez de la multidiffusion, si un joueur se connecte à votre jeu et que vous avez écrit un code en multidiffusion, le joueur connecté ne pourra pas voir ce C'est là qu' intervient Rep Notify . Et cela viendra plus tard. Ne t'en fais pas pour le moment. Mais vous pouvez voir ici si je clique sur une variable, si j'ai réellement une variable, si je vais vous voir accroupi par exemple, et que je clique sur mon état de mouvement Vous pouvez le voir dans le répliqué, j'ai aussi quelque chose appelé une notification de représentant qui arrivera Mais si nous y retournons et que nous revenons ici pour la multidiffusion, code que vous écrivez ici ne sera pas vu par le joueur connecté à moins qu'il ne soit rejoué Si je me connecte simplement au jeu et qu'il émet effet sonore continu, je ne peux pas l'entendre à moins que le joueur ne s'arrête puis ne redémarre. Et placez ce code pendant que je suis connecté au serveur, il jouera correctement pour la multidiffusion Il est très important que vous fassiez quelque chose que le joueur connecté n'a pas vraiment besoin d'entendre ou de voir, à moins qu'il ne soit rejoué, par exemple. Maintenant, pour cet effet sonore de pas, nous pouvons jouer ici, ainsi que certains effets visuels, par exemple des feux d'artifice Et si vous ouvrez un coffre et que ce coffre produit des effets visuels dorés, il doit également être diffusé en multidiffusion Le représentant ici, si je clique sur l'une de mes variables. doit être utilisé chaque fois que vous avez besoin du lecteur connecté pour voir ce changement. Supposons par exemple que le joueur tienne, par exemple, un AK ou un pistolet, un deagle Dans ce cas, il est très important que le joueur connecté besoin de voir la bonne arme sur les mains du joueur. L'arme que vous ne manipulez pas vraiment dans une multidiffusion car le joueur connecté verra la mauvaise arme sur le joueur Certains jeux coûtent beaucoup d'argent car ils utilisent la multidiffusion pour tout Encore une fois, je l'utilise généralement pour effets sonores et visuels qui n'ont pas besoin d'être présents tout le temps. Par exemple, vous pouvez voir si vous avez un feu de signalisation qui passe du rouge au jaune au vert. Ce feu de signalisation comme cette couleur, je le ferais probablement à l'intérieur d'un représentant, avertirait parce que cette couleur doit être correctement visible pour le joueur connecté Le joueur connecté doit voir s'il est jaune ou rouge et ne pas continuer à le voir vert jusqu'à ce qu'il change à nouveau. Pour les effets visuels temporaires, par exemple, feux d'artifice qui disparaissent au bout de 3 secondes et qui se rapportent n'ont pas besoin de figurer dans une notification qui doit être diffusée en multidiffusion Tout ce qui est temporaire et que le joueur connecté n'a pas besoin de voir immédiatement, vous devez le faire ici. N'oubliez pas que ce code doit être exécuté à nouveau pour que le joueur connecté puisse le voir. OK, allons-y et jouons le son ici. Faisons glisser le pointeur à partir d'ici et disons « jouer le son sur place ». C'est ainsi que l'on émet un son. Vous devez indiquer où vous voulez jouer le son. N'oubliez pas que nous codons à l'intérieur du lecteur. Je peux juste faire glisser le pointeur d'ici et dire « trouvez l'acteur ». Je vais obtenir la position de ce joueur. Maintenant, ce son sera diffusé où que se trouve ce lecteur. Nous devons maintenant sélectionner quel son. Nous allons sélectionner les traces. Maintenant, si je clique sur jouer et que je cours, je m'arrête. Vous pouvez entendre le bruit des pas. Vous pouvez également l'entendre ici sur l'autre joueur. Si j'ouvre l'autre lecteur, je peux également entendre le son. Cela vient du client. Maintenant ça marche, d'accord ? Vous pouvez entendre qu'il fonctionne tout le temps, même si je ne cours pas. Et nous devons également résoudre ce problème dans la prochaine leçon. Mais pour le moment, nous savons que cet effet sonore fonctionne réellement. Encore une fois, la multidiffusion ne peut être exécutée que via le serveur. Vous ne pouvez pas exécuter une multidiffusion via le client, mais via le serveur, et depuis le serveur, vous pouvez effectuer une multidiffusion vers effets sonores ou visuels temporaires qui n'ont pas besoin d'apparaître comme un lecteur connecté. Par exemple, feu d'artifice ou une balle que vous venez de tirer et elle disparaîtra. Mais par exemple, le pistolet que le joueur tient est très important pour le joueur connecté. Cela ira donc à l'intérieur d'un représentant, prévenez. Ne vous inquiétez pas, nous le ferons plus tard. Pour l'instant, nous n'en avons pas beaucoup. Nous n'avons que l'effet sonore. Mais nous aurons de nombreux exemples tout au long de ce cours. OK, pour arrêter l'effet sonore chaque fois que nous nous arrêtons ici en fin de compte. C'est à chaque fois que nous relâchons les touches de mouvement. Ce que nous pouvons faire, c'est repartir sur les traces. Nous pouvons effacer et invalider le chronomètre par poignée. Cela empêchera ce chronomètre de fonctionner. Nous pouvons continuer et le connecter, juste comme ça, nous pouvons compiler et essayons d'y jouer maintenant. Si nous courons et que je m'arrête ici, vous n'entendrez rien quand vous courez. La raison pour laquelle vous ne pouvez pas entendre tout cela, c'est parce que cela continue de fonctionner comme ça très vite. Il n'atteint jamais ce chronomètre avant le début du deuxième mouvement. Il continue de fonctionner comme ça. Cela lui donne une pause pour passer en revue et régler cette minuterie. Nous allons corriger ce problème, mais vous pouvez voir ici que lorsque vous l'ajoutez, le minuteur ne produit plus l' effet sonore parce que nous nous arrêtons. Il efface le chronomètre juste pour s'assurer qu' il ne se décharge pas. Nous pouvons toujours prendre cette poignée de pas, nous pouvons faire glisser et dire valide et nous pouvons utiliser, celle-ci est un chronomètre valide Si c'est valide, nous pouvons créer une branche et nous pouvons effacer ce chronomètre comme ça. OK ? Assurez-vous que ce minuteur est valide, puis effacez-le pour le rendre plus propre. Vous pouvez toujours prendre une autre instance de cette variable et la brancher ici. Et vous pouvez continuer à organiser davantage cette fosse. Nous avons maintenant ce code. OK, compilons et dans la leçon suivante, rendons cela moins embrouillé et exécutons ce code chaque fois que nous l'exécutons 60. 5.09 Footsteps SFX: OK, tout d'abord, ce que je dois faire, c'est fabriquer un lingot, le traîner de côté. Et fabriquons un nouveau lingot appelé Playing Footsteps Effects Jouer l'effet sonore des pas. Et je l'ai juste mal orthographié. Juste comme ça, en jouant l' effet sonore de pas de pas, faisons-le glisser et définissons-le true chaque fois que nous jouons les effets sonores. Avant de faire cela, prenons-le et créons une branche. Tout d'abord, nous allons demander si nous jouons les effets sonores ou non. Juste pour le rendre plus lisible, je vais tirer de ceci et écrire pas linlion, juste comme ça Lorsque nous ne jouons pas les effets sonores, je veux jouer les effets sonores. Nous n'avons pas besoin d'exécuter les effets sonores des pieds lorsque nous les exécutons déjà. Si nous ne jouons pas les effets sonores des pas, nous pouvons continuer et jouer les effets sonores comme ça N'oubliez pas que vous devez le régler sur les défauts. À un moment donné, lorsque nous arrêterons le chronomètre et que nous arrêterons les effets sonores, je mettrai ce paramètre sur false. Résumons, voyons si cela fonctionne ou s'il faut en faire plus. Maintenant, vous pouvez réellement voir que cela fonctionne lorsque vous courez, qu'il fonctionne lorsque vous vous arrêtez, qu'il s'arrête également. OK, génial. Maintenant, il fonctionne bien trop lentement. Alors peut-être devriez-vous réduire ce nombre à 0,5 ou quatre. Et tu peux recommencer à jouer. C'est peut-être bien trop rapide. En fait, je vais écrire 0,42. Je pense qu'il faut y jouer plusieurs fois. Essayez de tester votre jeu. Je pense que c'est bon. Vous pourrez toujours l'ajuster plus tard si vous avez de l'argent avec cela. Mais je pense que ce chiffre me convient pour le moment. Maintenant, cela fonctionne correctement. Cependant, vous aurez quelques bugs. Vous verrez si vous cliquez sur Play et que je cours partout, vous pouvez voir si vous tombez sur quelque chose. Placez également l'effet sonore. Il s'agit d'un petit bogue que vous devez corriger. Pour celui-ci, vous pouvez utiliser la vélocité du joueur, car si je le frappe, déplaçons le tout ici. Vous pouvez donc réellement avoir de la place pour travailler. Si vous cliquez avec le bouton droit de la souris et que vous dites « obtenir la vélocité », il s' agit de la vitesse du joueur Vous la prenez et vous cassez, vous cassez ce vecteur. Ainsi, vous pouvez à nouveau voir le X, le Y et le Z. Vous pouvez également simplement cliquer avec le bouton droit de la souris et diviser l'épingle de la structure. C'est pareil. Cependant, j'aime décomposer le vecteur juste pour l'avoir ici. Maintenant, juste pour le voir, imprimons une chaîne. Vous pouvez simplement imprimer la vélocité x, par exemple, et vous pouvez voir ce qu'elle indique. J'ai l'habitude de le faire parfois lorsque je fais appel à un nouveau mécanicien. J'utilise beaucoup la chaîne d'impression pour voir ce qu'elle fait. Vous pouvez cliquer sur W pour vous déplacer, et vous pouvez voir la vélocité augmenter. La vitesse de ton personnage augmente à chaque fois que je me déplace. OK. Juste comme ça. Et il en va de même pour le X et le Y. Vous pouvez donc le voir augmenter à chaque fois que vous vous déplacez Ce que nous pouvons faire pour produire les effets sonores lorsque vous entrez dans des objets, je ne veux pas jouer le son. Partons de là et disons si cette vitesse est supérieure, par exemple, à 100 ou si elle est inférieure à 100. Parce que n'oubliez pas que si vous revenez en arrière, ce sera un chiffre négatif s'il est également inférieur à 100. Ou faisons-le également pour le y. Copiez-collez ceci et connectez-le simplement ici. S'il est inférieur ou supérieur, ou inférieur à 100 ici. Partons de là. Nous n'avons pas besoin d' utiliser des lingots car n signifie que tout cela doit être vrai Nous pouvons en tirer parti et utiliser un lingot d'or si l'une d'entre elles est vraie, nous ne voulons pas émettre le son parce que nous sommes trop lents Cliquons sur le signe plus ici et ajoutons-les tous. Ce que nous disons, c'est que si la vélocité du x est supérieure à 100, ou si elle est inférieure à 100, ou si c'est ceci, alors nous voulons émettre le son que nous pouvons faire glisser d'ici et écrire une branche. Ensuite, à partir de cette branche, nous pouvons continuer et la connecter. Juste comme ça, nous pouvons connecter le code. Maintenant, le code ne sera joué que lorsque nous nous déplaçons à cette vitesse. Cliquons sur jouer. Et je me déplace. Je m'arrête et je passe à quelque chose ici. Tu vois, ça joue toujours. Et je pense que c'est parce que ce n'est pas assez haut ici. Si nous écrivons, par exemple, c'est en fait parce que celui-ci l'est, le plus bas est également faux. Faisons-le d'abord plus haut, faisons-en 250. Et là, je dois écrire moins de -250 C'était une erreur de ma part. Laissez-moi écrire 250 et c'est inférieur à -250 En fait, le son est toujours émis si je me lance dans des objets, et c'est parce que je ne l'ai pas mis ici sur le faux Quand c'est faux, vous pouvez voir si c'est vrai, l'effet sonore va se produire. Mais si je continue d'appuyer sur le bouton , ce sera faux. Nous ne faisons vraiment rien. Cela n'arrêtera l'effet sonore que lorsque je relâcherai le bouton. Ce que nous devons faire, c'est le faire glisser vers le bas. Et nous devons également insérer cette fausse information ici. Il arrête donc le chronomètre chaque fois que c'est faux. Cliquons sur jouer maintenant et entrons dans le vif du sujet. Et vous pouvez voir maintenant qu'il ne joue pas le son. Quand je marche un peu, vous pouvez voir que le son commence à émettre. Vous pouvez toujours ajuster ce nombre. Si vous le baissez, le son sera diffusé beaucoup plus rapidement lorsque vous entrez dans des objets. Mais pour le moment, c' est bon pour moi. Et tu peux toujours aller de l'avant et organiser ça un peu plus, d'accord ? Donc quelque chose comme ça. J'ai juste mis les notes de route lues pour qu'elles soient un peu plus lisibles. Juste comme ça, OK. Maintenant, ce que nous devons faire, c'est d'autres facteurs. Maintenant, le facteur suivant est que vous pouvez voir si je monte ici, me laisse vraiment sauter d'ici et si je saute, cela émet également du son en l'air. Ce que nous devons faire, c'est prendre, celui-ci ne saute pas, donc nous assurer que le joueur ne saute pas. Sinon, nous ne voulons pas jouer les effets sonores. Frappons-le avec la rame et le lingot droit. Si c'est vrai, si vous ne sautez pas, nous pouvons jouer les effets sonores. Cela doit également être une condition. En fait, attaquons-les. Oui, un peu par ici. Permettez-moi d'étendre tout cela plus loin. Maintenant, le saut fonctionne. La deuxième chose est que nous voulons également nous assurer que nous courons réellement et non pas que nous marchons. Et vous pouvez voir ici que si je joue d'abord à courir et que je marche, je jouerai aussi, en courant. Je ne sais pas si je l'ai , je n'en ai pas, en fait. Nous pouvons prendre cet état de mouvement et nous pouvons faire glisser le pointeur à partir d'ici et dire « obtenir une copie » à nouveau. Nous pouvons essayer de vérifier quel est le dernier indice. S'il court, cela signifie que nous appuyons sur le bouton de course en ce moment et que nous ne marchons pas ou que nous ne nous accroupissons Si cela équivaut à une exécution, alors nous pouvons continuer et faire ce code comme ça. Nous pouvons le faire comme ça. Maintenant, pour le rendre plus propre, je vais sélectionner tout ce clic droit et le réduire à une fonction que je vais appeler ainsi, la fonction est en cours d'exécution. Il s'agit simplement de vérifier si le joueur court ou non. J'en fais une pure fonction. Allons ici et organisons cela un peu plus dans la fonction, juste comme ça. Ici, nous vérifions simplement si le joueur court ou non. Donc celui-ci fonctionne, donc nous nous assurons que le joueur fonctionne, sinon nous ne voulons pas jouer les effets sonores des pas OK, allons-y et jouons ici. Et réessaie. Je joue en ce moment. J'arrête. Si je cours, si je maintiens ma touche pour marcher, je ne vais pas jouer. Si je lâche prise, c'est génial. Maintenant ça marche, d'accord. Il y a un petit problème en ce moment. Vous pouvez voir que si je cours un peu, cela ne produira pas vraiment d'effet sonore à moins que je ne cours un peu plus. Ce que vous devez savoir ici pour le chronomètre par événement, c'est le temps qu'il vous faut ici pour exécuter pour exécuter ce code fit five par exemple. Et je clique sur Play. Il ne va pas lire ce code instantanément. Il va attendre 5 secondes avant de fonctionner. La première instance de ce code passe 5 secondes avant qu'il ne commence réellement à émettre les effets sonores des pas Comme vous pouvez le voir ici, il vient d'être joué, l' effet sonore du pas est de 0,42. Nous devons jouer l'effet sonore juste avant qu'il ne soit joué , juste une fois Nous pouvons le faire ici. Chaque fois que nous allons commencer à jouer les effets sonores. Je peux continuer et me rappeler que vous ne pouvez pas lancer le multicast directement depuis le client. Vous devez également l'exécuter via le serveur. C'est pourquoi je peux partir d'ici et écrire d' abord les effets sonores de la pièce Ensuite, il diffusera la multidiffusion. Après cela, je vais jouer l' effet sonore de pas de pas de suite. Au bout de 0,42 seconde, ce code commencera à tourner en boucle Parce que si je ne le fais pas, il faudra attendre 0,42 seconde avant de commencer à exécuter tout cela C'est pourquoi nous avons un petit retard. Si vous cliquez sur « Je peux jouer maintenant », vous pouvez le voir jouer tout de suite , donc c'est beaucoup mieux. Maintenant, ce que vous pouvez faire si vous ne voulez pas le jouer tout de suite. Si vous voulez retarder légèrement votre effet sonore, ce que vous pouvez faire, vous pouvez également cliquer ici et prendre secondes écoulées ou les secondes de déclenchement Les deux fonctionnent. Permettez-moi simplement d'utiliser celle qui s'appelle Trigger Seconds. Ce que vous pouvez faire, c'est que vous pouvez faire glisser à partir d'ici, imprimons simplement une chaîne. J'aime imprimer des chaînes pour que vous puissiez voir ce que nous faisons. Connectons cette chaîne d'impression au code et connectons simplement ce déclencheur quelques secondes à la chaîne d'impression. Jouons. Vous pouvez voir quand je tiens ma clé, cela ne compte que les secondes pendant lesquelles je la tiens. Par exemple, non seulement ma touche, aussi tous mes mouvements peuvent indiquer que je bouge, mais ils comptent. Si je relâche mes mouvements, ils recommencent depuis le début. Cela ne compte que les secondes pendant lesquelles vous avez appuyé sur les boutons de mouvement. Mais ce que vous pouvez faire, c'est suivre à partir de cela et dire que si les secondes de déclenchement sont supérieures 0,3, par exemple, nous voulons continuer et courir. Permettez-moi d'ajouter une autre condition ici. Nous avons beaucoup de condition 1 ici. Au final, nous avons de nombreuses conditions. Branchons-le et cliquons sur Play. Cela fonctionne, mais maintenant, au bout 0,3 seconde, il va lire le code. Maintenant, si vous le montez plus haut, il y jouera bien plus tard. Au bout de 2 secondes, si vous cliquez sur Play et que vous exécutez au bout de 2 secondes, le code sera lu. C'est le cas si vous voulez le retarder un peu. Si vous ne voulez pas reproduire l' effet sonore en cours instantanément, vous pouvez avoir un petit délai, peut-être 0,4 au lieu de 0,5, et le jeu sera beaucoup plus rapide. Vous pouvez voir que l'effet sonore ne se produit pas chaque fois que vous le faites. Si vous cliquez simplement rapidement sur la touche, mais si vous cliquez un peu plus, l'effet sonore sera activé. Je pense que je vais le mettre à 0,3 Je pense qu' il joue bien trop tard. Si tu fais ça, ça ne marchera pas. Cependant, si vous appuyez un peu plus dessus, l'effet sonore sera activé. OK. Maintenant, cela fonctionne parfaitement. Allez-y, organisez le code. Si vous souhaitez supprimer l'une des épingles du Ou, par exemple, vous pouvez écrire, cliquer et retirer l'épingle. Allez-y, organisez le code. Maintenant, tout est organisé et vous pouvez voir le code ici, juste au cas où vous auriez oublié quelque chose. J'ai également mis en ligne ce projet final pour vous, afin que vous puissiez le suivre. Allons-y et compilons. Sauvegardons tout, et passons à la leçon suivante. 61. 6.01 Placer les points d'apparition: OK, maintenant que le mouvement est terminé, nous avons bien sûr encore besoin du mouvement du pistolet et du mouvement du fusil, mais nous nous concentrerons là-dessus plus tard Pour l'instant, passons à l'apparition du joueur pour l'apparition du joueur Commençons par placer des points d'apparition pour le joueur ici dans le dossier Cliquez avec le bouton droit de la souris pour créer un nouveau dossier. Appelons celui-ci Span Points Encore une fois, cliquons avec le bouton droit sur ce dossier. Je vais régler la couleur de celui-ci. Encore une fois, à l'intérieur de ce dossier. Faisons maintenant un clic droit pour obtenir des points d'apparition Les joueurs doivent commencer pour qu' ils puissent réellement commencer le niveau Cependant, au lieu de le créer à partir d'ici, parce que celui-ci n'est actuellement créé qu'à partir de là, les joueurs commencent. Cependant, nous avons besoin de points d'apparition qui sont en fait des plans Au lieu de faire celui-ci, supprimons-le. Les joueurs commencent par le niveau Si vous voulez vous assurer qu'il n'y aura pas plus de joueurs partants dans votre niveau, vous pouvez toujours simplement entrer ici dans le plan et rechercher les joueurs de départ Et tu peux voir qu'il n'y a rien ici. Je vais cliquer sur le X en haut pour en créer un nouveau. Faisons maintenant un clic droit pour accéder au cours Blueprint. Au lieu de sélectionner l'un d'entre eux ici, vous pouvez cliquer sur cette petite flèche, pouvez réellement voir, vous pouvez créer des plans de presque tout Une caméra, un feuillage, et même le joueur démarre et ainsi de suite. Vous pouvez donc voir que vous avez 682 objets que vous pouvez rechercher, par exemple une sauvegarde, lorsque vous allez créer un jeu dans lequel vous sauvegardez, déchargez, etc. Il y a donc beaucoup de choses à l'intérieur. Pour l'instant, il suffit que les joueurs commencent. Si vous recherchez un nom de joueur, vous pouvez le voir ici. Celui-ci s'appelle Players Start. Sélectionnez celui-ci. Allez-y et cliquez sur Sélectionner. Appelons-le BP spawns. Je passe à la sauvegarde automatique pour une raison quelconque. Appelons-la base de points de spawn BP. Nous avons, nous avons un plan de base, tout comme le joueur. Si vous revenez au joueur, nous avons une base de joueurs. Et à partir de ce joueur, nous avons créé les deux. Maintenant, je n'ai pas vraiment expliqué à quoi ils servent, car nous n'avons vraiment rien à voir dans les plans du terrorisme et de la lutte contre le terrorisme Et celui-ci, nous devrons le corriger plus tard. Mais maintenant, vous pouvez voir ici qu'ils sont vides, les enfants de la base de joueurs. N'oubliez pas que ce sont les plans pour enfants de la base de joueurs Vous pouvez également voir que si vous maintenez la souris dessus, vous pouvez voir que la classe parent est la base de joueurs. Nous allons expliquer dans cette section comment ils sont utilisés. Revenons maintenant à la somme des points. Maintenant que nous avons un point d'apparition de base, cliquons dessus avec le bouton droit de la Créez une classe de plans pour enfants. Appelons cela le point d'origine des terroristes de BP. Cliquez à nouveau avec le bouton droit sur cette base de points de scie et créons une autre clause de plan enfant Appelons cela le point d'origine des terroristes de BP. OK, nous avons un point d'origine antiterroriste et un point d' origine terroriste. Maintenant, allons-y et plaçons-les à l'intérieur du niveau. Prenons d'abord le contre-terrorisme et plaçons-le dans le niveau quelque part, par exemple ici. Et vous pouvez à nouveau cliquer sur E pour le faire pivoter et vous pouvez le faire pivoter. Juste comme ça. Vous pouvez voir que vous avez cette flèche bleue et c'est là que le joueur regarde. Comme vous pouvez voir si je clique sur jouer, le joueur regarde maintenant dans cette direction. Si je le fais pivoter de cette façon et que je joue, le joueur tourne dans cette direction. Donc, pour nous assurer qu'ils regardent dans la bonne direction, allons-y et faisons en sorte qu'ils pointent dans cette direction comme ceci. OK ? Maintenant, vous pouvez toujours ajuster les points de liaison plus tard, mais pour l'instant, je vais simplement les placer là où je pense qu'ils seraient les plus optimaux. Ainsi, par exemple, sur la terrasse du comptoir, vous pouvez toujours maintenir la touche Alt enfoncée et faire glisser le pointeur pour la copier. Et vous pouvez placer celui-ci ici par exemple. Et j'ai l'habitude de les placer derrière la défense ici, parce que si vous les placez ici, ils peuvent s' entretuer tout de suite. J'ai l'habitude de les mettre derrière le mur pour qu'ils ne soient pas tués tout de suite. Vous pouvez simplement en placer deux. C'est un troisième et c'est le quatrième. OK ? Juste comme ça. Vous pouvez même en placer un ici, mais je ne veux pas en faire apparaître quelqu'un ici, en fait Je veux juste les faire apparaître ici. Encore une fois, pour ce qui est de votre jeu, tout dépend de vous. Vous pouvez choisir l'endroit où vous souhaitez faire apparaître vos joueurs selon vos préférences OK, je les ai fait apparaître ici. Permettez-moi de faire la même chose ici pour le terroriste. Permettez-moi de prendre cela en compte et de le placer quelque part ici. Encore une fois, j'essaie de les placer du mieux que je peux derrière le mur. Maintenez Alton, faites glisser pour copier et je vais en placer un ici Maintenant, il est écrit, oh, j' ai le sélecteur de couleur. Pour une raison ou une autre, je n'ai aucune idée de ce que je viens de presser. En cliquant ici et en le faisant glisser à nouveau ici. Maintenez votre place quelque part ici et maintenez la touche Alt enfoncée. Faites glisser et placez le dernier ici. Je vais juste regarder sur le côté, voir à quoi ils ressemblent. Je peux tous les sélectionner en maintenant la touche Ctrl enfoncée et en cliquant dessus. Je peux juste les rapprocher légèrement du mur. C'est parce que je veux vraiment placer des armes derrière ces joueurs ou derrière ces spawns OK. Quelque chose comme ça. Je trouve que ça a l'air bien. Vous pouvez ajuster ces points d' apparition comme vous le souhaitez, mais je trouve que cela a l'air génial Maintenant, les points d' apparition des terroristes sont placés, et les points d'apparition de la lutte contre le terrorisme sont également placés Allons-y, sauvegardons tout et passons à autre chose. 62. 6.02 Stocker des informations sur les points d'apparition: Maintenant que nous avons placé tous ces points fils, passons en revue et stockons toutes les informations. Maintenant, je le fais habituellement en mode jeu car c'est le mode de jeu qui choisit les règles du jeu. Maintenant que vous travaillez en mode multijoueur, il est très important de savoir que le code que vous écrivez ici dans le mode de jeu ne s'exécute sur le serveur que si vous êtes le joueur et disons à l'intérieur du joueur, vous essayez ici depuis le mouvement, vous essayez ici depuis le mouvement car souvenez-vous que lorsque vous lancez le mouvement vous lancez le code tant que joueur ou en tant que client. Et en tant que serveur, vous pouvez toujours voir sous quel nom vous lancez. Si vous faites simplement glisser le pointeur d'ici et écrivez une chaîne d'impression. Maintenant, n'oubliez pas qu'une chaîne d'impression est très puissante à utiliser. Et si vous compilez et cliquez sur Play. Et maintenant, quand je déménage, vous pouvez voir qu'il est écrit « serveur ». Et quand je déménage en tant que client, c'est le client qui me dit bonjour. Cela signifie que ce code est exécuté par le serveur et le client et non par le serveur seul. Maintenant, permettez-moi de le connecter. Permettez-moi de prendre un autre exemple. Quelque chose qui ne passe que par le serveur. Par exemple, si je m'accroupis et que je joue ici depuis l'autorité par exemple, je peux compiler Cliquez sur Play, et quand je marche en tant que serveur, rien ne s'imprime. Et en fait, lorsque je clique sur jouer, je marche en tant que serveur. Je vais vraiment m'accroupir. C'est la touche d'accroupissement Si je m'accroupis, tu peux dire bonjour. Cependant, si je joue en tant que client et que je m'accroupis, vous pouvez voir que le serveur dit bonjour Ce n'est pas le client qui dit bonjour car ce code ne s'exécute que sur le serveur. Maintenant, pour le mode jeu, vous ne pouvez pas accéder au code ici depuis un client. Il n'a pas accès au mode jeu. Si vous voulez écrire ici du code auquel vous devez accéder depuis le client, ce n'est pas possible, alors vous ne devez pas l'écrire en mode jeu. Générez des points. Très important à savoir, c'est toujours le serveur qui fait apparaître les choses dans le monde. C'est parce que nous essayons d'éviter de tricher. Nous laissons toujours le serveur gérer le spawning. Par exemple, faire apparaître les joueurs qui font apparaître une arme dans le niveau lorsque le joueur la laisse tomber le niveau lorsque le joueur la laisse tomber de l'inventaire, etc. Le spawning est toujours géré via le mode de jeu. Pour les points d'apparition, nous pouvons les écrire ici. Supprimons tout cela pour le moment. Écrivons « click » à l'intérieur des événements. Si vous cliquez sur un événement, par exemple, et que vous cliquez sur un jeu, vous pouvez voir ce que l'on appelle «  post login ». Vous pouvez également simplement écrire « cliquer » et «   écrire » après la connexion. Et cet événement en mode multijoueur. Chaque fois que le joueur se connecte à votre carte, il se connecte à votre serveur. Dépublier la connexion, c'est comme commencer une partie. Chaque fois que le joueur se connecte à votre serveur, quelque chose se passe. OK ? Donc, ce que nous voulons faire habituellement ici, c'est créer une nouvelle variable. Créez une nouvelle variable, vous pouvez voir la nouvelle entrée du joueur. Voici une manette de joueur, vous pouvez donc stocker la manette du joueur lorsqu' il se connecte et vous pourrez l'utiliser plus tard. Il s'agit d'une information très utile. Écrivons joueurs connectés et le type est contrôleur de joueur, puis sélectionnons celui-ci, Référence d' objet du contrôleur de joueur . Et compilons. Puisque nous voulons stocker toutes les commandes du joueur lorsqu'il se connecte, nous devons en faire un tableau. N'oubliez pas qu'il s'agit d'une variable unique, vous ne pouvez stocker qu'une seule information. Cependant, dans un tableau, c'est comme une boîte. Vous pouvez placer toutes les commandes du joueur dans cette boîte et vous pourrez l'utiliser ultérieurement. Prenons celui-ci, suivons à partir d'ici et disons Ad. Nous pouvons ajouter cette manette de joueur dans cette case ici avec toutes les commandes du joueur avec les joueurs connectés ici. Au lieu d'utiliser cette annonce, évitez simplement la case que j'ai l' habitude de supprimer à partir d'ici et d'utiliser celle-ci appelée ajouter unique. Vous ne pouvez avoir qu'une seule instance de cette manette de joueur à l'intérieur, juste au cas où le joueur se reconnecterait ou quelque chose comme ça Nous n'avons pas deux manettes de jeu de ce type dans le tableau. Ajoutez Unique. Il suffit d'ajouter une instance de ce contrôleur de joueur à l'intérieur d'ici. Et ensuite pour stocker les informations relatives aux points de liaison. Maintenant, pour obtenir quoi que ce soit, c'est très, très important. Lorsque vous programmez habituellement dans le cadre de mes cours, je veux que vous prêtiez attention aux outils que j'utilise. Il est parfois important que nous programmions un jeu de tir à la première personne ou un jeu en deux D. Parfois, il est plus important de faire attention aux nœuds que j'utilise. Et imaginez comment vous pouvez l'utiliser autrement dans un jeu RPG lorsque vous collectez des pièces, etc. Pour stocker ou récupérer tout ce qui se trouve à l'intérieur de votre niveau qui existe à l'intérieur de votre niveau, nous devons utiliser un nœud appelé Get Actor of class. Si vous cliquez ici avec le bouton droit de la souris et que vous dites « Get Actor of class », vous pouvez voir que vous pouvez maintenant obtenir tout ce qui se trouve dans votre niveau. Par exemple, les joueurs commencent que nous utilisons. Si vous recherchez Players Start, vous pouvez le constater. Vous pouvez le voir ici également, puisque cela ne s'appelle pas Players Start, ce n'est pas faux. Cependant, vous pouvez également obtenir, si vous allez aux points d'apparition, vous pouvez obtenir la base des points d'apparition Maintenant que nous l'avons dans le plan, si vous recherchez simplement la base de points, vous pouvez la voir Trouvez un acteur de classe. Vous n'en trouverez qu'une depuis le niveau. Nous avons également un autre nœud appelé get all actors of class. Non seulement nous obtenons un point, nous obtenons également tous les points d'apparition. En fait, je veux juste les séparer. Vous pouvez simplement rechercher une base de points d'envergure ajouter et l' appeler points d'Espagne. Cependant, je vais déjà les séparer d'ici. Je vais chercher les points d'origine des terroristes de Cada . Point d'apparition. Assurez-vous que c'est le point d'origine que vous sélectionnez ici. Je vais cliquer ici avec le bouton droit de la souris, en faire une variable et l'appeler Cada terrorist spawn points Maintenant, je les ai dans cette variable de tableau. OK, ensuite nous pouvons encore une fois dire «   trouvez tous les acteurs de classe », « nous pouvons obtenir les points d'apparition des terroristes » Maintenant, si vous pouvez trouver un point de spa terroriste, laissez-nous le reconnecter ici. Permettez-moi de cliquer avec le bouton droit sur celui-ci, promouvoir en tant que variable et de le qualifier de points d'apparition terroristes . Il s'agit d'obtenir tous les acteurs de la classe des points d'apparition en terrasse, c' est-à-dire tous ceux ici Il reçoit les quatre et nous les stockons maintenant dans ce tableau. Bien, maintenant que nous l' avons stockée, encore une fois, vous pouvez toujours essayer d'imprimer une chaîne si vous le souhaitez, cliquez avec le bouton droit sur Imprimer une chaîne comme ceci. Vous pouvez essayer d'obtenir celui-ci par exemple, le récupérer correctement et d'en obtenir une copie. Encore une fois, si vous ne vous souvenez pas des fonctions d'un tableau, vous pouvez simplement rechercher un tableau et vous pouvez voir toutes les fonctions que vous pouvez utiliser ici. Par exemple, vous pouvez dire obtenir, si je peux le trouver ici, celui-ci ici et vous pouvez le connecter . Vous obtenez maintenant le point pour l'Espagne à l'indice zéro. Et si vous jouez, vous pouvez voir que cela s'appelle Terrorist Spin Point comme ça. Si vous obtenez le point de spin à l'indice un dans ce tableau, il s'appelle spin 0,2. Si vous obtenez le point de spin à l'indice deux, il s'appelle Spin 0,3. Vous pouvez voir ce tableau contient en fait tous les points d'Espagne. Très utile, encore une fois pour utiliser des chaînes d' épingle lorsque vous souhaitez déboguer votre jeu, vous souhaitez simplement voir ce que cette variable, par exemple, stocke réellement Allons-y, compilons, sauvegardons tout, et passons à autre chose. 63. 6.03 Importer les ressources de l'interface utilisateur: Maintenant que les informations relatives aux points espagnols sont stockées, nous sommes prêts à créer une interface utilisateur avant de terminer le spawning Allons-y et importons l'interface utilisateur dans les documents de coûts que je vous ai fournis sur ce site Web, vous pouvez y accéder et la télécharger à nouveau. Si vous ne l'avez pas déjà téléchargé, vous pouvez accéder au dossier de l'interface utilisateur. Ici, j'ai des boutons pour vous, des icônes et des images. Maintenant, si vous cliquez sur les boutons, laissez-moi d'abord entrer dans le moteur. Et laissez-moi créer un dossier d'interface utilisateur. Faisons un clic droit sur le dossier de contenu. Je vais créer un nouveau dossier appelé I à l'intérieur d'ici. Faisons un clic droit et créons un nouveau dossier. Et je vais l'appeler, par exemple, des boutons. Je vais en créer un nouveau appelé icons. Je vais en créer un nouveau qui s'appellera Images. Commençons par le dossier des boutons. Permettez-moi de consulter mon matériel de cours. Prenez tous les boutons ici, cliquez dessus et faites-les glisser dans votre navigateur de punt. Juste comme ça, vous pouvez tous les voir importés avec Awesome. Maintenant, si vous ouvrez simplement l'un d'entre eux, vous verrez qu'ils sont importants et que tout est correct. Pour les améliorer un peu et pour ne pas les rendre flous ou éviter toute erreur dans le jeu, vous devez remplacer le groupe de textures par UI Vous devez également modifier les paramètres de compression l'interface utilisateur 2 D. Ensuite, il sait qu'il s'agit d'un élément de l'interface utilisateur et qu'il n' y a rien de flou ou de ligne blanche derrière cette interface utilisateur, etc. Et en fait, vous devez le faire pour chacun d'entre eux. Maintenant, je vais vous montrer un truc. Nous l'avons déjà utilisé. Et si vous les sélectionnez toutes, vous pouvez écrire Click Go to Asset Actions et Modifier en bloc via Property Matrix. C'est ce que nous avons fait avec les animations. Si vous vous en souvenez, vous pouvez également le faire avec les éléments de l'interface utilisateur à l'intérieur d'ici. Cliquez sur la compression ici. Assurez-vous que les paramètres de compression les intègrent dans une interface utilisateur. Deux D, laissez-moi voir quel est l'autre, je pense que c'est dans le niveau de détail ici. Un groupe sélectionne celui-ci et l'intègre à l'interface utilisateur. Maintenant, vous l'avez changé pour chacun d' entre eux et nous n'avons pas besoin de le faire pour chacun d'entre eux. Maintenant, vous pouvez voir si vous cliquez sur l'un d'entre eux, par exemple, vous pouvez voir que c'est l'interface utilisateur et l'interface utilisateur deux, géniales. Tout semble bon. Allons-y et cliquons sur Fichier et Enregistrer. Revenons aux supports de cours. Revenons aux icônes Maintenant, vous verrez peut-être plus d'icônes que ce que vous pouvez voir ici sur mon écran. Encore une fois, c'est parce que j'ai l'habitude mettre des icônes au fur et à mesure que je développe ce cours. Plus tard, j'ajouterai d'autres icônes, mais dans votre exemple ou dans le contenu de votre matériel pédagogique, vous verrez probablement d'autres icônes. Ne vous y trompez pas, nous les utiliserons plus tard. Mais pour l'instant, je n' ai que ces deux-là. Et je vais aller sur mes icônes et je vais les faire glisser ici. Et encore une fois, comme avant, cliquez dessus, transformez-le dans une interface utilisateur et dans une interface utilisateur deux D. Je vais aussi le faire pour l'autre, interface utilisateur deux D. OK, elles sont donc prêtes. Revenons maintenant aux images. Et permettez-moi d'ouvrir mes documents de dépenses. Revenons aux images. Permettez-moi de tous les importer ici. Et parfois, cela en fera une carte normale, comme vous pouvez le voir ici. Celles-ci ont été importées sous forme cartes normales et je ne le veux pas. Et cliquez sur Revert, Inverser et revenir en arrière, cela n'en fera pas une carte normale, alors allez-y et cliquez à nouveau sur la première, sélectionnez la dernière , cliquez avec le bouton droit Accédez à Asset Actions et modifiez en bloc via la matrice de propriétés. Ouvrez la sélection de compression ici dans les paramètres de compression. Sélectionnez l'interface utilisateur, deux D dans le niveau de détail dans le groupe de textures, sélectionnez l'interface utilisateur. Fermons tout et sauvegardons tout. Maintenant que tout est prêt, passons à la leçon suivante. 64. 6.04 Importer une police personnalisée: Très bien, maintenant que nous avons ajouté l'interface utilisateur, nous avons également besoin d'un fonds que nous pouvons utiliser. Du texte, du texte personnalisé, et vous pouvez le trouver si vous écrivez Google Funds, c'est vraiment agréable à utiliser car ils sont gratuits et contiennent beaucoup de fonds intéressants. Si vous entrez dans les fonds Google et que vous cliquez dessus, cela fait partie des fonds que vous souhaitez utiliser dans votre jeu. Ce que je fais habituellement, c'est ici par catégories, je supprime généralement l'affichage, l' écriture manuscrite et le monospace Encore une fois, cela dépend du style que vous souhaitez pour votre jeu. En ce qui concerne le nombre de styles, j'aime généralement les fonds qui proposent beaucoup de styles parce que je sais qu'ils ont une belle apparence dans le jeu. Par exemple, nous pouvons utiliser Roboto ou Open Sense. Ou vous pouvez également utiliser, par exemple, quelque chose comme Rubic. Je pense que je vais réutiliser Rubic. Choisissez ce que vous voulez, peu importe. Je vais choisir Rubic puis cliquer sur Download Family Il va le télécharger pour vous. Je peux cliquer dessus et l'ouvrir. Et ici, vous pouvez voir tous les fonds statiques, en cliquant sur les fonds statiques, et voici tous les fonds, d'accord ? Ce que je vais faire, c'est minimiser tout ce qui se trouve sur mon bureau. Je vais d'abord les mettre ici car il s'agit d'un dossier et vous devez d'abord l'extraire. Parce que si vous essayez d'importer des éléments depuis un dossier Sip, il ne vous le permettra pas, il vous donnera cette erreur ici. Encore une fois, je vais minimiser cela. En général, vous n'avez pas vraiment besoin de fonds très légers comme celui-ci. La lumière rubis, parce qu'elle est vraiment difficile à voir dans le jeu, j'ai l'habitude de choisir les plus audacieuses. Rubrique, en gras, très gras. Choisissons également le semi-gras, il existe un médium normal. Je vais prendre le format moyen et simplement cliquer dessus et les faire glisser sur votre bureau pour les extraire. Maintenant, je vais fermer ça. Maintenant que nous avons ces fonds, nous pouvons revenir à Unreal Engine et me permettre de créer un nouveau dossier ici, dans le dossier de l'interface utilisateur Permettez-moi de cliquer avec le bouton droit de la souris et de créer un nouveau dossier appelé funds Go in out of here. Et je vais les glisser dans mon dossier de fonds. Et je vais vous demander si vous souhaitez créer un nouvel actif de fonds à l'aide de ces fonds importés ? Je vais cliquer et postuler à tous les D. Oui, je veux que tu le fasses. Cela va créer un fonds pour vous. Allez-y, sauvegardez tout. Et maintenant, vous pouvez réellement utiliser ce fonds si vous accédez à une interface utilisateur que nous créerons à l'avenir. Vous pouvez remplacer le fonds l'un de ces fonds afin de découvrir un moyen très, très simple de l'ajouter. OK ? Maintenant que nous avons ajouté des fonds dans le moteur, allons-y et je vais vous présenter les plans de Widgit 65. 6.05 Introduction aux plans de widget: Allons-y maintenant et créons un plan de widget. Les plans du widget sont essentiellement l'interface utilisateur présente dans Unreal Engine Donc, si vous cliquez avec le bouton droit de la souris, accédez à l'interface utilisateur et créez un plan de widget Mais ensuite, créez-le et sélectionnez-le. Ici, là-haut, le widget utilisateur. Et appelons-le simplement WB. Et je vais l'appeler sélection d'équipe, parce que nous sommes en train de créer une sélection d' équipes dans laquelle vous pouvez choisir d'être le terroriste ou l'antiterroriste Ouvrons ce widget, Blueprint. À l'intérieur de ce widget. Plan directeur Cela ressemble presque au visualiseur de plans avec lequel nous avons travaillé Vous pouvez écrire, cliquer à l'intérieur d'ici et vous déplacer vers la gauche. Vous pouvez voir tous les éléments que vous pouvez ajouter à l'intérieur de la palette. Par exemple, nous pouvons ajouter des images, des boutons, des bordures, des curseurs, du texte, etc. Nous travaillerons beaucoup sur tout cela. Il existe également une hiérarchie. Par exemple, si vous cliquez et faites glisser ce bouton dans cette hiérarchie, vous pouvez voir ici que ce bouton a été ajouté. Cela semble très étrange en ce moment, mais nous avons ajouté un bouton à notre sélection Steam, Widgit Blueprint Encore une fois, vous pouvez compiler pour vous assurer qu' il n'y a aucune erreur, comme dans Blueprint Et vous pouvez jouer au jeu pendant le test et voir votre jeu. Cependant, nous n'avons pas vraiment affiché cette interface utilisateur dans le niveau, vous ne pouvez donc rien voir dans le jeu, d'accord. Et à droite, vous avez un panneau de détails. Si vous cliquez sur le bouton par exemple, vous pouvez voir que vous pouvez modifier certaines choses à propos de ce bouton. Vous pouvez modifier le style, la couleur et vous pouvez également modifier d'autres paramètres. Nous allons travailler avec eux dès maintenant. Le plan de Wiga est divisé en deux sections. Vous avez le concepteur en ce moment, vous concevez l'interface utilisateur. Et puis vous avez le graphique où vous codez les boutons et ainsi de suite. Voici tout le code, le plan ou l'interface utilisateur. Par exemple, ici dans le graphique, vous pouvez coder Par exemple, si vous cliquez sur ce bouton, que devrait-il se passer ? Cela se fait ici dans le code où vous concevez, ici vous codez les fonctionnalités de l'interface utilisateur. OK, allons-y et supprimons ceci. Et la raison pour laquelle cela semble si étrange, c'est parce que vous devez d'abord ajouter ce qu' on appelle un canevas. Si vous recherchez un canevas, vous pouvez d'abord cliquer dessus et le faire glisser dans la hiérarchie. Et maintenant tu peux voir que tu as un canevas. Lorsque vous avez un canevas maintenant, vous pouvez y ajouter des éléments. D'habitude, je ne clique pas sur ces listes, mais si vous êtes nouveau ici, vous pouvez cliquer sur chacune d'entre elles. Essayez de lire ce que vous pouvez réellement faire ici. C'est vraiment bien. Cependant, si vous êtes nouveau ici, je recherche généralement simplement des éléments. Vous vous y habituerez beaucoup car nous allons en fait beaucoup travailler avec cela Les mêmes éléments que nous utilisons encore et encore, vous vous y familiariserez très bien. Par exemple, vous pouvez rechercher un bouton, le cliquer et le faire glisser dans le canevas. Et vous pouvez voir que lorsque vous l' ajoutez dans le canevas, il est également ajouté dans la hiérarchie. Tout ce que vous voyez à l'intérieur de cette hiérarchie se trouve également à l'intérieur de votre concepteur. Ici, dans le canevas, par exemple, vous pouvez cliquer sur ce bouton et le redimensionner Ou ici, dans le panneau des détails, vous pouvez également le redimensionner ici en taille x et en taille Y. Par exemple, vous pouvez rechercher une image, vous pouvez également y faire glisser une image . Vous pouvez le redimensionner Cliquez sur l'image, cliquez sur le pinceau, et vous pouvez modifier cette image. Par exemple, vous pouvez le transformer en, importons en fait des icônes. Si je recherche ICO et que je sélectionne l'une des icônes, vous pouvez voir ici que l'icône importée et que vous pouvez jouer avec elle. Vous pouvez également cliquer sur Size To Content. Cela le dimensionnera en fait à la taille que vous avez ici dans la taille de l'image. Vous pouvez également l'augmenter ou le diminuer. Habituellement, lorsque vous cliquez sur ces petites flèches, par défaut est la même résolution que vous avez importée par défaut est la même que celle que vous avez importée Pour une raison ou une autre, cela ne fonctionne pas pour moi en ce moment. Je ne sais pas s'il s'agit d'un bogue dans vrai moteur ou quoi que ce soit d'autre, mais cela fonctionne généralement, mais il devrait en fait le redimensionner à la taille sous laquelle vous avez importé Et comme vous pouvez le constater, les dimensions de cette icône sont de 256 x 256. Il devrait donc être 256 comme celui-ci. J'appuie ici, mais pour une raison ou une autre, je ne le fais pas. Mais il s'agit en fait de la taille d'origine de cette image ici, et si vous cliquez sur Taille pour consentir, elle est redimensionnée à celle-ci ici OK, donc tu peux juste jouer. Nous avons le bouton, nous avons une image, et vous pouvez également simplement cliquer sur chacun d'entre eux. En fait, peu importe si vous éliminez tout d'ici. Il suffit de cliquer dessus, d'essayer de voir si vous y ajoutez une valeur. Vérifiez que vous pouvez réellement déplacer ce curseur. Et vous pouvez cliquer, par exemple, sur Editor Input. Par exemple, du texte modifiable. Vous pouvez le placer ici et voir ce qui se passe. Vous pouvez écrire quelque chose à l'intérieur de ce texte et simplement jouer ici. C'est vraiment amusant jeter un coup d'œil à ce qu'il y a à l'intérieur. Et je vais cliquer et cliquer sur mon bouton Supprimer et tout supprimer pour le moment. Et je vais également supprimer le panneau du canevas. Allez-y, compilez, sauvegardez tout. Passons à la leçon suivante. 66. 6.06 Afficher l'interface utilisateur de sélection d'équipe: Passons maintenant à l'affichage de l'interface utilisateur avant de la concevoir réellement pour afficher l'interface utilisateur. Habituellement, lorsque nous travaillons avec l'interface utilisateur, nous le faisons à l'intérieur du contrôleur du joueur. C'est ici que nous contrôlons l'interface utilisateur située à l'intérieur de la manette du joueur. Passons au graphique des événements ici. Ce que nous faisons habituellement en mode solo, prendre ceci et de dire « créer des widgets », juste comme ça. Créez un widget, puis sélectionnez le widget, par exemple, sélection d'équipes WB Et puis nous l'ajoutons généralement à la fenêtre d'affichage, juste comme ça Ensuite, nous pouvons cliquer sur Play, et nous sommes heureux de pouvoir voir l'interface utilisateur. Et quand je clique sur Escape, vous voyez que j'ai une ère. Et c'est parce que nous sommes maintenant en multijoueur afin d'afficher l'interface utilisateur et que nous pouvons réellement voir quelque chose. Revenons d'abord à l'interface utilisateur. Permettez-moi d'ajouter à nouveau un canevas, permettez-moi d'ajouter une image aléatoire car je veux vraiment voir si elle est ajoutée à la fenêtre d'affichage ou non Je vais donc simplement ajouter cette image étrange ici à mon interface utilisateur. Et je clique sur Play, et vous pouvez voir cela s'affiche réellement sur mon écran, à la fois sur le client et sur le serveur. En fait, j'affiche l'interface utilisateur en ce moment. Cependant, si je clique ici, si je clique sur Escape, vous pouvez voir que seuls les contrôleurs de joueurs locaux peuvent être assignés aux widgets. N'oubliez pas que lorsque nous travaillons avec l'interface utilisateur, nous n'avons pas vraiment besoin de l' exécuter via le serveur. C'est parce que chaque joueur possède sa propre interface utilisateur. Ce n'est pas comme une arme que vous avez dans jeu où vous devez la faire passer par le serveur, puis le serveur doit reproduire ces informations aux clients et leur dire que vous avez une arme posée au sol C'est différent pour l'interface utilisateur, chaque joueur a sa propre interface utilisateur. Ce n'est pas comme si cela passait par le serveur et que le serveur mettait à jour son interface utilisateur. Ce n'est pas comme ça que ça se passe. Cela se produit par chaque joueur sa propre interface utilisateur. Il ne passe pas par le serveur. Lorsque vous travaillez avec l'interface utilisateur, vous devez l'exécuter via le client. N'oubliez pas que chaque fois que vous avez une interface utilisateur, vous devez l'exécuter via le client. Supprimons tout cela pour le moment. Ce que je vais faire, c'est cliquer avec le bouton droit de la souris et créer un nouvel événement personnalisé ici, dans la manette du joueur. Appelons celui-ci un widget d' affichage et de masquage. En gros, ce que ce widget ou cet événement va faire c'est afficher ou masquer le widget, selon ce que vous lui demandez de faire. Il faut maintenant lui donner deux paramètres. Quel widget va-t-il afficher ou masquer ? Et est-ce qu'il va le montrer ou le cacher ? Ici, laissez-moi juste nom de ce taureau pour montrer que ce sera vrai ou faux. Si c'est faux, l'interface utilisateur sera masquée. Si c'est vrai, l' interface utilisateur s'affichera. Nous pouvons utiliser ce taureau ici. Cependant, pour le second, nous devons lui dire de quel widget nous parlons. Nous devons faire une énumération. Minimisons cela. Accédez au dossier Blueprints to enumerations N'oubliez pas que nous avons créé celui-ci appelé Movement States plus tôt. Maintenant, cliquons avec le bouton droit de la souris et créons-en un nouveau. Accédez au plan et à l'énumération. Appelons cela des widgets de jeu. Nous pouvons faire une liste de tous les widgets de jeu dont nous disposons. Pour celui-ci, permettez-moi d'ajouter un nouvel énumérateur, un élément de liste. Permettez-moi d'appeler cela la sélection d'équipe, car pour le moment, nous voulons créer le widget de sélection d'équipe. Vous pourrez également en créer un ultérieurement. Par exemple, le Mau I, qui est en fait le principal responsable de votre santé, etc. Vous pouvez également en créer un nouveau appelé menu Escape lorsque vous en avez un, etc., mais pour l'instant je vais les supprimer. Je n'ai que la sélection de l'équipe. Économisons maintenant dans le cadre de notre loi sur le contrôle des joueurs. Cliquons à nouveau sur notre événement. Changons ce type en E. Nous l'avons appelé widgets de jeu. Et c'est celle-ci, cette énumération. Allez-y, appelez-le Widgets. Et nous l'avons ici. Alors compilons maintenant. Comme vous pouvez le voir, si j'écris, commencez, jouez et créez l'événement Begin Play. Si je fais glisser le pointeur d'ici et que j'appelle cet événement, affiche le widget de masquage. Afficher masquer le widget, vous pouvez voir maintenant que je peux sélectionner de quel widget ou de quel widget je parle. Ensuite, je peux choisir si je veux le masquer, ce qui signifie que l'émission est fausse. Ou si je veux montrer l'interface utilisateur. Et nous pouvons exécuter le code ici. OK, très, très cool. Continuons maintenant le code. Je vous ai dit que cela doit être exécuté sur le client, donc toute l'interface utilisateur que vous créez doit passer par le client. Faisons donc un clic droit et créons un nouvel événement personnalisé. Appelons-le CL pour le client, show hide widgets. Et laissez-nous le faire passer par le client et de manière fiable, tout comme ici, nous avons besoin des deux entrées. Créons les deux entrées. Le premier s'appelle widgets et celui-ci a déjà été sélectionné. Le second s'appelle show the bullion. Afficher ou masquer. Et choisissons le type de lingot. Nous devons le faire passer par ici. Choisissez également le CL, affichez, masquez les widgets ici. Nous connectons donc l'événement client ici. Et allez-y, connectez-les ensemble. OK, donc ce qui se passe en ce moment, c'est au début du jeu. Lorsque vous commencerez à jouer, je vais afficher instantanément l'interface de sélection des équipes. Je vais donc cocher cette case et je vais montrer l'interface utilisateur de sélection des équipes. Lorsque je fais cela ici au début de la partie, le code va passer par ici. Il va donc mettre ces informations dans celle du client. Maintenant, ces informations sont publiées ici et nous pouvons les utiliser comme bon nous semble. Maintenant, je vais faire glisser ce taureau et écrire une branche parce que je veux savoir, je vais afficher l'interface utilisateur ou est-ce que je vais la masquer ? Est-ce faux ou est-ce vrai ? C'est ce que je demande en ce moment. Maintenant, si c'est le cas, créons une nouvelle fonction. Créons cette fonction appelée show widgets. Créons-en un autre appelé Hyde Widgets. Encore une fois, cliquez dessus et ajoutez une nouvelle entrée du widget de type A. L'énumération que nous avons faite auparavant et que nous appelons widget est à nouveau compilée car nous avons besoin de savoir quel Widgit nous parlons dans le widget Hyde Créez une nouvelle entrée et appelez-la widget. Encore une fois, assurez-vous que ce type est également un widget de jeu. Bien, revenons au graphique. Faisons glisser les fonctions que nous venons de créer. Ils sont toujours vides. Il n'y a rien dedans. Mais pour l'instant, ajoutons-les ici. OK, afficher le widget de masquage. Si c'est vrai, nous devons afficher le widget. Celui-ci, je peux le connecter. S'il est faux, nous devons masquer le widget, et nous pouvons le sélectionner ici. Maintenant, de quel widget parle-t-on ? Ces informations que nous avons ici, parce que nous les avons configurées ici, nous pouvons les connecter aux entrées que nous venons de créer pour celles qui sont ici. Ces informations entrent maintenant dans la fonction. Maintenant, nous l'avons ici, et nous pouvons faire ce que nous voulons. Quel est notre objectif ici ? Pour afficher un widget, nous devons utiliser le nœud appelé create widgit. Nous devons utiliser celui-ci ici. Ensuite, nous devons sélectionner de quel widget nous parlons. Celui-ci par exemple, ici, comme vous pouvez le voir pour l'énumération, nous pourrions avoir beaucoup d'articles Nous devons savoir quelle est la valeur de cette énumération. Pour ce faire, il suffit de glisser le pointeur d'ici et de rechercher Switch Et nous avons celui-ci appelé Switch on enumeration. Allez-y, sélectionnez-le. Et maintenant, il va vous donner une épingle d'exécution, en fonction des éléments de la liste dont vous disposez. Par exemple, si je reviens à mon énumération et disons que j'ai un MenUI et un menu d'échappement, juste comme ça, par exemple Allez-y, sauvegardez-le. Et revenons à la manette du joueur. Maintenant, vous pouvez voir que je reçois des épingles d'exécution, en fonction des éléments de ma liste, peu importe ce que vous avez configuré ici. Donc, si je reviens en arrière, tout ce que vous sélectionnez ici va passer par cet événement, le placer dans celui du client et continuer le code, mettre dans la fonction. Il sait maintenant que vous parlez la sélection de l'équipe parce que vous l'avez sélectionnée ici. Il va donc exécuter le code à l'intérieur de la sélection du joueur. Il ne va pas exécuter le code écrit ici. Et il ne va pas exécuter le code écrit ici. Je n'exécuterai le code écrit ici que parce que vous avez défini la valeur pour la sélection de l'équipe. Il va juste le faire par cette épingle d'exécution pour le moment. C'est ainsi que nous procédons. Supprimons-les simplement pour le moment. Nous n'en avons pas vraiment besoin, nous avons juste besoin de la sélection de l'équipe. Allez-y, enregistrez-le et compilez-le également. OK, pour créer ou afficher un widget, créez le widget. Sélectionnez celui que vous souhaitez afficher. Ensuite, cliquons dessus avec le bouton droit de la souris et promouvons-le en variable. Comme elle est très utile avec la variable, nous pourrons l'utiliser ultérieurement pour exécuter des événements. C'est ce que je vais appeler WB selection. Maintenant que vous avez créé l'interface utilisateur, si vous cliquez sur Play, rien ne s'affichera vraiment. En effet, il ne suffit pas de créer l'interface utilisateur. Vous devez également faire glisser le pointeur à partir d' ici et dire Ajouter à la fenêtre d'affichage. Il est maintenant ajouté à la fenêtre d'affichage. Maintenant, si vous cliquez sur Play, vous pouvez voir qu'il est ajouté à la fenêtre d'affichage et que vous n'avez aucune erreur lorsque vous cliquez sur le bouton Escape OK, ça a l'air bien. Maintenant, pour m'assurer que vous ne continuez pas ajouter à votre fenêtre d'affichage sans aucune raison, permettez-moi de simplement me déconnecter ici et de le déplacer. Permettez-moi de prendre cette variable, de la faire glisser ici, cliquer avec le bouton droit de la souris et de la convertir en un get validé, puis de la connecter. Maintenant, si cette variable n' est pas valide, c' Maintenant, si cette variable n' est pas valide, est-à-dire que nous n'avons pas encore créé cette variable, le programme ou le moteur irréel ne sait pas vraiment de quoi vous parlez avec cette variable parce que vous n'y avez mis aucune information Cela signifie que nous n'avons pas encore exécuté ce code. S'il n'est pas valide , créez l'interface utilisateur. Toutefois, si elle est valide, si cette variable contient déjà le widget. Nous avons donc déjà exécuté ce code. Nous ne voulons pas vraiment le réexécuter, nous voulons juste l' ajouter à la fenêtre d'affichage, comme ça, d'accord ? Cela évite donc de créer l'interface utilisateur encore et encore. Si ce n'est pas valide, créez l' interface utilisateur, puis ajoutez-la à la fenêtre d'affichage si c' est valide . Cependant, allez-y et ajoutez-le simplement à la fenêtre d'affichage Allons-y, compilons et sauvegardons tout. Maintenant, pour le widget de masquage, c'est pareil. Partons d'ici et disons activer l'énumération. Prenons cette variable. Maintenant que nous l'avons créée, cliquons avec le bouton droit de la souris sur Convertir en un get validé. Allez-y, connectez-le. Maintenant, si c'est valide, c'est-à-dire que nous voulons vraiment le cacher. Maintenant, partons d'ici et disons supprimer de Parent. C'est ainsi que vous supprimez l' interface utilisateur de votre Viewport. Supprimer du parent, s'il est valide, allez-y, supprimez-le, car nous voulons le masquer. Maintenant, si vous compilez et cliquez sur Play, vous pouvez voir la fenêtre d'affichage Dans la fenêtre d'affichage, vous avez ajouté l'interface utilisateur. Si vous continuez dans le graphique des événements de contrôle des joueurs, si vous supprimez simplement l'émission, parce que maintenant elle est en fait, alors qu'elle est fausse, elle va passer par ici et par ici. Et il va afficher faux parce que vous l' avez défini sur faux. Cela signifie qu'il va aller de l'avant et masquer l'interface utilisateur, le widget. Et il sait de quel widget vous parlez, car il introduit ces informations ici. Et cela va masquer l'interface utilisateur de sélection des équipes. Comme vous pouvez le voir ici, lorsque je joue, je ne vois pas l'interface de sélection des équipes. Mais pour l'instant, nous voulons montrer l'interface utilisateur à l'avance pour la sélection de l'équipe. Allez-y, cliquez sur Afficher. Maintenant, cela devrait fonctionner parfaitement. Maintenant, si vous voulez que cela soit plus organisé, vous pouvez toujours cliquer et créer des épingles d'exécution, ou vous pouvez les sélectionner toutes. Cliquez sur C sur votre clavier et appelez-le, par exemple, Show Hide UI, etc. Alors allez-y et restez organisé. Mais pour l'instant, allons-y , compilons, sauvegardons tout, et passons à autre chose. 67. Taille d'interface utilisateur dynamique pour toutes les tailles d'écran: Maintenant, avant de commencer à concevoir l'interface utilisateur, il est très important de savoir à quoi ressemble l'interface utilisateur sur les autres écrans, non seulement sur votre écran, mais aussi sur le mien. Si vous concevez votre jeu, vous devez savoir à quoi il ressemble sur mon écran, qui est un moniteur d'une résolution de quatre K. Et aussi sur un écran d'ordinateur portable et ainsi de suite. Il faut donc le redimensionner correctement. Apprenons-le avant de concevoir, car ce sera plus tard si vous le concevez mal. Passons par exemple au plan du widget. Allons-y et ajoutons du texte. Ce sera le moyen le plus simple de le voir. ajoute un écran de texte et disons que je redimensionne quelque chose comme ça, peu importe Maintenant que vous l'avez dans l'interface utilisateur, allons-y et compilons. Et allez-y, cliquez sur Plate. Voilà à quoi ça ressemble sur mon écran. Et d'habitude, je reprends simplement plan de mon widget et je commence mon jeu ici Et d'habitude, j' essaie juste de le comparer. Allez-y, ouvrez votre jeu ici. Je vais le minimiser légèrement, et j'essaie de voir à quoi cela ressemble dans le jeu. Voilà à quoi ça ressemble vraiment. Si je le compare à ici, il semble un peu plus grand ici, il ressemble en fait à ceci. Lorsque je zoome et dézoome, vous pouvez réellement voir le zoom vers le haut ici. heure actuelle, j'ai zoomé plus trois, et maintenant cela semble correct Avec un zoom plus trois, cela semble correct. Maintenant, cela peut sembler un peu étrange de résoudre ce problème. Maintenant, montez ici dans la taille de l'écran. Habituellement, ce que vous voulez faire, c'est ce que vous voulez, dans l'interface utilisateur, sur le plus petit écran possible. Si vous voulez le concevoir pour les jeux mobiles, vous devez cliquer sur la taille de l'écran, accéder aux téléphones, puis sélectionner le téléphone. Vous souhaitez le concevoir pour le plus petit écran. Pour le moment, je veux juste créer un jeu vidéo. Je vais cliquer ici. D'habitude, je le conçois pour les ordinateurs portables. Ces ordinateurs portables génériques de 14, 15 pouces. Je ne vais pas le faire maintenant. J'ai un moniteur 4K. Je peux le sélectionner et le concevoir ici. Cependant, cela ressemblera peut-être à ceci sur votre écran si vous avez un moniteur One K, etc. Il est très important de le concevoir correctement. Tout d'abord, cliquez sur la taille de l'écran. Et je vais sélectionner la taille générique de l'ordinateur portable. heure actuelle, si je zoome et que c'est un à un comme celui-ci ici à la taille d'un ordinateur portable , en ce moment, je le regarde et je vois à quoi il ressemble. Si j'ouvre ce jeu en ce moment sur mon ordinateur portable, c'est la taille du texte Par exemple, sur ordinateur portable, cliquons sur ce fonds. Cliquez sur le fonds, et je fais la taille, par exemple, 30. Voilà à quoi ça ressemble maintenant sur l'ordinateur portable. Mais si je joue, maintenant c' est à ça que ça ressemble. Sur mon écran 4K, vous pouvez voir qu'il y a une différence. Voici l'ordinateur portable. C'est moi. Je le vois beaucoup plus grand sur le mien que sur l'ordinateur portable. Si cela ne vous plaît pas, si parfois l'interface utilisateur devient trop grande sur les grands écrans, vous pouvez cliquer sur ce bouton ici. Vous pouvez voir ici la mise à l'échelle de l'interface utilisateur. Les ordinateurs portables génériques sont ici. Comme vous pouvez le constater, c' est la résolution. Je suis en train de le concevoir pour ces ordinateurs portables. ce moment, j'ai un moniteur 4K, et il est en fait ici. Vous pouvez le voir sur un écran 4K, je l'augmente de 3,8 %. Il est 3,8 % plus grand que ce qu'est un ordinateur portable. Maintenant, si vous ne voulez pas l'augmenter autant, vous pouvez sélectionner cette résolution. Au lieu de passer à huit, je vais le réduire à quatre, par exemple. Maintenant, vous pouvez voir que cela n' augmentera pas autant par rapport à avant. Maintenant, si je clique sur Play, il est en fait plus petit qu'avant. Si je reviens en arrière, cliquez ici, laissez-moi simplement l'augmenter à environ 18, afin que vous puissiez réellement voir quelque chose d'extrême. Si je clique sur Play, vous pouvez le voir maintenant il est très grand. D'habitude, ce que j'aime, c'est que si je suis satisfait de la taille de l'ordinateur portable, j'essaie de le redimensionner. Je suis donc également satisfait de mon moniteur à quatre K. Habituellement, il est d'environ 2,5 dans la mise à l'échelle. Je n'aime pas trop y aller. Vous pouvez cliquer sur ces boutons. Ça, c'est sur ton écran comme ça. Je vais juste faire un léger zoom arrière. Peut-être qu'il suffit de cliquer sur, je vais légèrement dézoomer pour que ça soit plus beau. Permettez-moi de cliquer sur Play Now, je trouve que ça a l'air sympa. Si j'ai besoin de le redimensionner davantage, je le redimensionnerai Mais je trouve que ça a l'air sympa. Vous pouvez le comparer maintenant, et il a presque la même apparence. Je vais essayer de le concevoir à l'échelle de 2,5, mais encore une fois, allez-y et jouez avec. Il suffit de le redimensionner à la hausse ou à la baisse, en fonction de son apparence sur votre écran par rapport à l'écran d'un ordinateur portable. OK, quand tu seras satisfait, fermons tout et enregistrons tout. Passons à la leçon suivante. 68. 6.08 Créer l'interface utilisateur de sélection d'équipe: Maintenant que nous affichons l'interface utilisateur à l'écran et que nous avons la bonne taille, passons à la conception de l'interface utilisateur. Clôturons le jeu. Passons au dossier de l'interface utilisateur. Et ici, à l'intérieur du widget de sélection des équipes, un plan. Supprimons maintenant ceci ici. La seule chose que nous avons pour le moment est le panneau en toile. Encore une fois, si vous ne l'avez pas encore ajouté, parcourez la palette et recherchez Canvas. Et allez-y, ajoutez-le à votre widget, votre plan. La toile est très importante. Vous devez l'ajouter avant de faire quoi que ce soit. Ce que nous voulons concevoir, c'est la sélection de l'équipe. C'est un extrait de mon autre projet. J'aimerais vous montrer l'interface utilisateur afin que vous sachiez ce que vous concevez. C'est ce que nous voulons concevoir. Chaque fois que vous commencez à concevoir une interface utilisateur, vous devez imaginer ce que vous voulez concevoir, car ce sera beaucoup plus facile pour vous. C'est ce que nous allons concevoir. Allons ici. La première chose que nous voulons faire, décomposer l'interface utilisateur. Si je le reprends ici pour toi, tu devras le décomposer. Comme vous pouvez le voir ici, nous avons un arrière-plan surmonté d'un texte. Lorsque vous avez deux objets l'un au-dessus de l'autre, vous devez utiliser celui-ci appelé superposition Lorsque vous superposez des éléments les uns sur les autres, lorsque vous avez un objet au-dessus d'un objet, imaginez qu'une superposition le fasse glisser ici. Cherchons une image, l'arrière-plan, et placons-la également ici, et placons-la également ici, à l'intérieur de la superposition. Juste comme ça. Faisons-le simplement glisser au milieu du canevas pour voir ce que nous faisons, il suffit de redimensionner cette superposition pour remplir cette Vous pouvez voir qu'il est très petit. Pour afficher cette image sur l'ensemble de l'écran, vous devez l'aligner horizontalement et verticalement, cliquer ici pour remplir, horizontalement et verticalement, cela remplit toute la superposition Peu importe la taille de votre superposition, votre image remplira le tout Nous voulons le remplir avec le fond. Maintenant, l'arrière-plan, vous pouvez cliquer ici pour l'image, et dans le pinceau ici, cliquez sur l'image et vous pouvez rechercher, je crois que je l'ai appelé panneau. Et ce panneau bleu. Encore une fois, c'est à vous de décider ce que vous voulez utiliser. Tu peux utiliser une autre couleur, mais je choisis juste le bleu. Et c'est ici. OK. Neral Engine, pour que les choses ne soient pas floues comme ça et pour qu'elles s'étirent correctement, faut le changer au lieu d'une image, il faut le transformer en boîte Maintenant, avant de le faire, laissez-moi vous montrer comment cela fonctionne. Si je vais dans les images de l'interface utilisateur et que je recherche le panneau, vous pouvez voir si je passe la souris dessus, il s'agit en fait d'une très petite image. C'est 68 pixels par 68 pixels. Si vous l'ouvrez, c'est en fait sa taille lorsque je l'ai conçu dans Photoshop. Vous pouvez le faire très grand tout en restant beau dans Unreal Engine Si vous ajoutez simplement l'image, peignez les dessins dans un cadre, puis modifiez la marge à 0,5 comme si vous cliquiez sur celui-ci. Ici, vous supprimez ces lignes en pointillés. J'aimerais le faire pour voir mon interface utilisateur sans que rien ne soit gênant Et voici ce que vous pouvez voir. Même s'il s'agit d'une petite image, il vous suffit maintenant de cliquer sur la superposition étirer et d'en faire autre chose sans qu' elle soit floue Fonctionnalité vraiment cool dans Unreal Engine. Vous n'avez pas à concevoir chaque bouton, vous pouvez simplement concevoir la base, puis vous pouvez concevoir les boutons eux-mêmes à l'intérieur d'ici. C'est dans ce contexte que nous avons choisi l'équipe. Maintenant, en ce qui concerne la sélection de l'équipe, nous avons également, si je le fais glisser ici, encore une fois, du texte en dessous. Nous avons ces boutons. Nous avons ce qu'on appelle une boîte verticale. Si vous allez ici et que vous recherchez vertical, vous verrez cette case verticale. Je vais l'ajouter à la superposition. Maintenant, dans la case verticale, nous avons du texte en haut comme titre. Comme vous pouvez le voir ici, nous avons également ces boutons. Avant d'ajouter ces boutons, vous devez également les décomposer. Vous avez en fait une boîte horizontale. Ils sont alignés horizontalement les uns par rapport aux autres. Si je cherche une case horizontale, cette case horizontale, tu dois placer dans la case verticale. Nous avons le titre, nous avons le titre ici. Et puis nous avons la case horizontale où nous ajoutons les deux boutons. OK, celui-ci est là. Le titre doit en fait être placé au milieu. Je vais cliquer sur le texte, l' aligner ici horizontalement au milieu. Et vous pouvez voir que rien ne se passe quand je l'aligne au milieu. Parfois, lorsque vous faites cela dans une interface utilisateur, ne vous y trompez pas, vous devez également regarder le parent. Peu importe que le texte soit aligné comme ça ou le cadre vertical ne soit pas aligné non plus. Vous pouvez voir le cadre vertical lorsque vous cliquez sur l'un d'entre eux. Ici, vous pouvez voir que la boîte verticale n'est en fait que cette section. Ce n'est pas le cas. Si vous alignez ce texte ici, ici et ici, vous n'avez que de l'espace. Ça ne remplit pas tout. En cliquant sur la case verticale, je dois la remplir ici sur cette superposition en cliquant sur l'alignement horizontal et l'alignement vertical Maintenant tu peux voir que c'est le cas. Remplissage à l'horizontale et à la verticale. OK, maintenant quand j'aligne le texte, ça devrait fonctionner. Prêtez toujours attention au parent là-haut, à la façon dont il est aligné. Parce que s'il est aligné comme ça, ce texte n' arrivera jamais ici. Allez-y et alignez-les horizontalement comme ceci. Maintenant, pour donner plus d' espace aux bords, nous pouvons cliquer sur la case verticale et pousser ici dans le rembourrage ou sur la gauche En fait, vous pouvez également écrire un nombre ici, par exemple 50 ou 102030 Vous pouvez voir que vous pouvez le pousser depuis les bords 50, 60, etc. Et si vous voulez le pousser spécifiquement dans les directions, par exemple, je mettrai 55 vers la gauche et 45 vers le haut. Pas autant que la gauche et la droite. La droite est 55 et le bas 45 également. Quelque chose comme ça. N'oubliez pas que je suis en zoom plus deux. La taille réelle ressemble à ceci. Faites simplement attention au zoom que vous utilisez car il se peut que vous soyez trop zoomé Voici à quoi cela ressemble en ce moment. Je pense que l'espacement entre les bords est bon pour le moment. Ce que vous pouvez faire, c'est aller de l'avant et continuer notre conception. Ensuite, nous pouvons tout styliser. Cliquons sur la case horizontale. Maintenant, pour la case horizontale, nous avons ces deux boutons. Encore une fois, nous superposons un bouton. Au-dessus se trouve une image et nous avons également du texte. Encore une fois, vous devez utiliser une superposition, sinon vous ne pouvez pas superposer des objets les uns sur les À l'intérieur de la boîte horizontale, nous avons une superposition. À l'intérieur de cette superposition, nous avons un bouton, puis nous avons une image, qui est l'icône du bouton Nous avons également du texte. Si je recherche du texte et que je l'ajoute ici, nous avons le bouton, l' image et du texte. En cliquant sur cette superposition, en fait, sur cette case horizontale, encore une fois, nous devons la remplir ici. Vous pouvez donc voir que même si je l'aligne horizontalement et verticalement, il ne s'aligne pas Et c'est parce que vous devez cliquer sur Remplir, et cela va tout remplir. En cliquant sur ce bouton, allons-y et ajoutons quelque chose à ce bouton. Cliquez sur le bouton, allez dans le style, cliquez sur Normal en haut, puis sélectionnez le bouton. Je vais sélectionner le bouton rouge. Et d'habitude j'appelle les boutons BTN. Vous pouvez essayer de rechercher le bouton que vous souhaitez utiliser. Encore une fois, c'est facultatif, c'est à vous de décider. Cependant, ce que je veux utiliser, c'est celui-ci appelé Button Red, je crois, ou Button Square Red, comme celui-ci. Et je vais le choisir ici. Ce que vous pouvez faire, encore une fois, c'est teinter. Je vais cliquer sur la teinte, et je vais la mettre en blanc, car je ne veux pas de teinte grise sur mon bouton. C'est en fait la vraie couleur. Si vous la mettez en blanc ici, la boîte arrondie, je vais la remplacer par une boîte, une boîte normale. Encore une fois, la marge, comme je vous l'ai déjà dit, fixez-la à 0,5 et elle aura l'air normale. Voyons maintenant si nous avons d'autres choses à modifier et non Si vous souhaitez copier ce paramètre sur le survol, vous n'avez pas à faire tout cela À nouveau, maintenez la touche Maj enfoncée et cliquez avec le bouton droit Ou encore une fois, vous pouvez simplement cliquer avec le bouton droit de la souris et copier. Mais vous pouvez maintenir la touche Shift et le bouton droit de la souris enfoncés pour le copier, et le bouton Shift et le bouton gauche de la souris pour le coller également pour ces deux. N'oubliez pas de cliquer sur le pointeur. Et n'oubliez pas non plus de remplacer celui survolé par le hoard Et cliquez sur celui pressé pour appuyer sur celui-ci. OK. Nous devons peut-être aussi ajuster la taille de l'image, mais nous le ferons plus tard. Pour l'instant, sur celui-ci, vous pouvez voir qu'il est très étiré. Donc, ce que je vais faire, cliquer sur la superposition, puis sur Remplir Cela remplit donc le tout. Alors permettez-moi de le copier à nouveau. En cliquant sur cette superposition, je vais cliquer sur Control D, et cela copiera l'autre bouton Je peux donc voir à quoi cela ressemble si j' ai deux boutons. Maintenant, j'ai ces deux superpositions, et mettons une entretoise entre elles, cherchons une entretoise et ajoutons-les entre ces deux Et puis ajoutons de l'espace entre ces deux superpositions. Il s'agit de l'axe X et de l'axe Y. Et nous avons besoin d'espace sur l'axe X. Laissez-moi écrire quelque chose comme 50. Maintenant, vous pouvez voir qu'il y a de la place. Passons maintenant à ce texte. Je veux que ce soit en bas de ce bouton ici. En cliquant sur le texte, je vais l' aligner sur le bouton ici et également au milieu. Et pareil avec cet alignement en bas et au milieu horizontalement. Bon, passons maintenant aux boutons. Je ne veux pas qu'ils soient étirés comme ça. En cliquant sur l'un des boutons, au lieu de l'aligner verticalement, je vais cliquer en bas ici C'est pareil ici. Cliquez sur le bas. Alignez verticalement, comme ça. Au lieu de l'aligner verticalement, contrôlons-le nous-mêmes Cliquez sur le bouton, vous pouvez cliquer sur la taille de l'image. Ici, c'est le Y qui augmente vers le haut et vers le bas. Vous pouvez augmenter le Y pour le bouton, et vous pouvez choisir sa taille pour celui-ci et celui-ci, environ 160. Pour l'instant, 160. Ajoutons les icônes avant décider de leur taille. Je vais recommencer pour l'image, c'est-à-dire l'aligner au milieu Faisons-le pour les deux. Cliquons sur les deux. Cliquez sur un ancien contrôle, cliquez sur le suivant. Alignons-les à nouveau au milieu et en bas. Pour les pousser à nouveau vers le haut, nous pouvons utiliser le rembourrage en les poussant de bas en haut. Vous pouvez donc les pousser, par exemple, 40, quelque chose comme ça, 50, 60. Vous pouvez voir que vous pouvez les faire monter d'environ 40. Permettez-moi d'abord de changer l'icône. Cliquez sur l'image et changeons l'icône. Si vous recherchez ICO pour celui-ci, je vais sélectionner le compteur ou le terroriste. Pour celui-ci, je vais choisir le contre-terroriste. Ici, nous pouvons voir qu'ils sont très petits pour une raison quelconque. Encore une fois, ces boutons ne fonctionnent pas, je dois donc ajouter la taille manuellement. Si vous allez simplement ici, et que vous cliquez sur Si je descends dans l'interface utilisateur pour accéder aux icônes, si vous maintenez la souris sur ces icônes, vous pouvez voir les dimensions. La taille réelle est de 256 pixels sur 256 pixels. Si vous pouvez cliquer dessus, si vous écrivez 256 par 256, c'est en fait la taille réelle de l'icône. Cependant, c'est beaucoup trop important. Mais sachez que si vous l' augmentez au-delà de sa taille maximale, il deviendra en fait flou. Ne passez pas en revue ça. Ce que je vais faire, c'est peut-être faire 150 x 150. Et il en va de même pour le contre-terroriste, de taille 150 x 150. OK. Quelque chose comme ça. Maintenant, pour contrôler la distance entre ces boutons vers le haut et vers le bas, vous pouvez cliquer sur la case verticale, en fait sur la superposition elle-même. Ensuite, vous pouvez simplement redimensionner le cadre vertical. Ensuite, choisissez à quelle distance ces boutons doivent être comparés vers le haut et vers le bas par rapport au titre. En cliquant également sur ce texte. Je veux styliser ces textes. N'oubliez pas que nous avons ajouté des fonds provenant de Google Funds, The Rubic Nous pouvons toujours cliquer sur le texte, cliquer sur la famille de polices, puis choisir l'un des styles rubiques Pour celui-ci, je vais juste choisir le rubic bold. Ensuite, je vais régler la taille un peu plus petite, peut-être quelque chose comme 22. Je vais plutôt ajouter un aperçu au texte. Si vous les sélectionnez à nouveau, accédez aux paramètres du plan. Je vais régler la taille sur quelque chose comme, vous pouvez essayer 1234, je pense que trois, c'est bien ici. Et puis changez également la couleur. Je vais changer de couleur en cliquant sur la couleur du contour, puis en utilisant le sélecteur de couleur Alors je vais choisir une couleur foncée, peut-être celle-ci. Allez-y, cliquez dessus et il choisira cette couleur. Vous venez de sélectionner. OK, pour le texte, si vous voulez le pousser vers le bas, vous pouvez toujours essayer ce bas ici, par exemple. Moins deux, moins cinq. Vous pouvez voir que vous pouvez les faire glisser vers le bas. Si vous écrivez un nombre plus, vous l' augmentez. Quelque chose comme ça. Vous pouvez également utiliser celui-ci ici, la traduction, si je peux le trouver ici, la transformation. Et puis la traduction, vous pouvez la traduire dans le y. Si vous en écrivez deux ici, par exemple 56, vous pouvez également le déplacer vers le haut ou vers le bas dans la traduction, car celui-ci peut être quelque chose, deux c'est bien. Nous l'avons juste légèrement abaissée. OK. Je vais également styliser ce texte Cliquez dessus. Allez-y et sélectionnez le Ruby Bold. Celui-ci, j'en ai fait 22. J'en fais 24 parce que c'est un titre. Ensuite, allez-y et sélectionnez les paramètres du plan. Je vais le mettre à trois, comme les autres. Pour la couleur du contour, je vais peut-être choisir cette couleur foncée ou celle-ci, je vais choisir cette couleur foncée et continuer et cliquer sur. OK. Maintenant, vous pouvez simplement continuer et modifier le texte. Par exemple, sélectionnez une équipe pour celui-ci. Je vais écrire Terri pour l'autre, je vais écrire Terrorist OK, pour le daterrist. En fait, je veux changer le bouton. Vous pouvez cliquer dessus, modifier ce bouton. Je vais passer au carré, je pense au vert carré. Et allez-y, sélectionnez le vert carré. Juste comme ça. Encore une fois, comme avant. Vous pouvez le copier par-dessus les autres, vous pouvez cliquer sur le texte, cliquer sur la couleur du contour. Prenez le sélecteur de couleur et sélectionnez celui-ci à la place. OK, je pense que ça a l'air bien mieux qu'avant. OK, voyons maintenant ce qui ne va pas. Maintenant, si vous cliquez sur Play, c'est toujours agréable de compiler. Cliquez sur Play pour voir ce qui se passe. l'heure actuelle, vous pouvez voir que l'interface utilisateur ou le widget de sélection Steam se trouvent en haut de l'image et non au milieu. Vous pouvez voir si vous cliquez sur le canevas, il se trouve réellement ici. Si vous faites simplement glisser cette superposition vers le bas, par exemple, en bas à droite, et que vous cliquez sur Play, vous pouvez voir qu'elle se trouve au milieu Cela n'a vraiment aucun sens. Il devrait être ici, parce que je viens de le placer ici. Il s'agit d'un concept très important que vous devez comprendre pour comprendre ces points d'ancrage. Ils sont très importants en ce moment. Ce qui se passe, c'est que vous avez le point d'ancrage ici. Si je clique sur Play, j'essaie de maximiser l'écran ici, vous pouvez voir que cette interface utilisateur est en train de s'afficher. Vers cette extrémité de l'écran, ici, il sera poussé vers le haut. C'est parce que votre point d'ancrage est là-haut. Ça ne va pas rester ici comme tu le souhaites. Il faut changer le point d'ancrage. N'oubliez pas de toujours le faire pour votre interface utilisateur. En cliquant sur la superposition, vous devez changer le point d'ancrage en cliquant ici Comme vous pouvez le voir ici, seul le parent possède un point d'ancrage. Tous les autres n' ont pas de point d'ancrage, seulement le point parent. En cliquant dessus, continuez, cliquez sur Ancrages, puis sélectionnez l'endroit où vous souhaitez l'aligner. Pour cette interface utilisateur. Je veux l'aligner au milieu, en sélectionnant le point d'ancrage central au milieu de l' écran comme ceci. Ensuite, pour la position, je vais écrire 00 pour l' aligner au centre. Mais comme vous pouvez le constater, il ne s'aligne pas au centre. En fait, on en est arrivé là. C'est là qu'il faut jouer avec l'alignement. Si vous augmentez simplement celui-ci, vous pouvez voir que vous l' augmentez correctement. Il est au milieu, à la position 00. Maintenant, pour celui-ci, vous devez écrire le nombre exact à la place. 0,50 0,5 Vous pouvez voir ici si vous écrivez zéro dans l'alignement, il s'agit de l'alignement en x. Cela va s'aligner de cette façon. Si vous écrivez 0,5 , c'est au milieu. Si vous en écrivez un, il passe de l'autre côté de l'alignement. Vous pouvez soit écrire 00 point 5.1 Vous avez ces options. Je vais écrire 0,5 par 0,5 car cela l' alignera au milieu et à la position 00. Maintenant, vous pouvez voir qu'il est directement au milieu. Et si je compile et que je joue, ça devrait être au milieu. Peu importe la taille de mon écran, il restera au milieu de l'écran. OK. Le prochain problème que nous avons en ce moment est que la souris n'apparaît pas vraiment, et nous le ferons plus tard. Nous allons régler ce problème. Cependant, si j'essaie de passer ma souris sur les boutons, ils sont en fait en train de boguer Et je dois arranger ça. En effet, si vous cliquez sur le bouton et que vous cliquez sur le bouton normal, vous avez réglé la taille de l'image sur 32 x 160. Cependant, pour le survol, la taille de l'image est toujours très faible Vous devez copier la taille de l'image à partir de la taille normale, basant sur le survol et sur le fait que vous les avez toutes pressées. Et faites de même pour le vert. Copiez-le, en vous basant également sur la taille de l'image survolée et sur la taille de l'image survolée et sur la taille de l'image pressée Allons-y et compilons, d'accord. Cliquez sur jouer. Maintenant, encore une fois, si je passe ma souris dessus, vous pouvez voir que je peux passer ma souris sur le Cependant, lorsque je place ma souris sur l'image, je ne peux pas vraiment survoler le bouton, et l'image et le texte bloquent en fait le bouton. Réglons ça. Cliquez sur les images, elles sont toutes ici. Et le texte aussi. Vous devez trouver celui-ci appelé visibilité. Et vous devez le régler sur Non testable. Et cela signifie que les images et les textes ne sont que de la décoration. Je ne veux pas que ma souris interagisse avec eux. Je choisis celui-ci non testable, ce qui garantira qu' ils n'interagissent pas avec ma souris Maintenant, lorsque je clique sur jouer et que j'essaie de survoler le bouton, vous pouvez voir qu'il survole également même si je survole l'icône et le texte OK, c'était donc tout pour le CI. La dernière chose que je veux faire est de rendre l'arrière-plan flou car, comme vous pouvez le voir, tout semble correct Cependant, j'aime aussi que mon arrière-plan soit flou. C'est désormais optionnel. Je l'enlèverai peut-être plus tard. Mais pour l'instant, cherchons flou et mettons-le ici en arrière-plan, donc par-dessus la superposition extérieure à Pour celui-ci, encore une fois, pensez à changer le point d'ancrage. Je veux que ce flou remplisse tout l'écran. Comme vous pouvez le constater, pour ce flou, vous pouvez modifier l'intensité du flou Donc quelque chose comme 50 , comme vous pouvez le voir ici. Mais je veux qu'il remplisse tout l'écran. Ce que vous devez faire, c'est cliquer à nouveau sur le point d'ancrage , puis remplir tout l'écran. Juste comme ça. Et changez le décalage en 0000, juste comme ça. Maintenant, il va remplir tout cet écran. Et si vous cliquez sur Play, l'écran est flou. Maintenant, pour ce qui est de la quantité de flou, je vais en fait la réduire à environ dix C'est parce que vous pouvez également voir l'effet d'arrière-plan, vraiment cool, lorsque vous sélectionnez l'équipe. Lorsque vous rejoignez le jeu, vous pouvez voir les autres joueurs jouer pendant que vous sélectionnez l'équipe. OK, maintenant que nous avons terminé, sauvegardez tout et passons à la leçon suivante. 69. 6.09 Effets sonores Button: Maintenant, allons-y et ajoutons des effets sonores aux boutons. Et pour ce faire, passons au coût des matériaux. Et à l'intérieur, passons à l'audio. Et j'ai ces effets sonores pour toi. Le bouton survole et le bouton est enfoncé. Passons également au dossier audio, au moteur et aux effets sonores. Et faisons-les simplement glisser dans le navigateur de contenu. Maintenant, faisons un clic droit sur le bouton, survolons, Créer. Et je vais l'appeler, alors survolez le bouton. Pour l'autre, appuyez sur le bouton droit de la souris sur Create Q et appelons-le Sound Button en appuyant sur le bouton. Passons en revue les deux. Le survol et le pressage. Permettez-moi de réduire le son à 0,25 . Cela convient à la presse Permettez-moi de le mettre à 0,4 peut-être. Oui, ça a l'air bien. OK, sauvegardons tout à nouveau. Comme je vous l'ai déjà dit, nous pouvons voir si vous jouez le son. Si tu veux que ce soit différent. Chaque fois que vous pouvez ajouter un modulateur et le connecter ici, vous le pouvez J'aimerais changer la tonalité de 0,9 à 1,1. Cela sonne différemment chaque fois que vous pouvez faire la même chose ici. Je vais copier le modulateur. Je vais le coller ici et le connecter ici également. Maintenant, cela sonne différemment à chaque fois, lorsque vous survolez les boutons OK, génial. Allez-y et enregistrez tout. Maintenant, pour ajouter les effets sonores, revenons à l'interface utilisateur. Ouvrez le widget, le plan, cliquez sur le bouton. Ensuite, ici, vous voyez les options pressées. Son Vous pouvez continuer et le modifier en appuyant sur le bouton pour le survol Son Vous pouvez le remplacer par le bouton, survolez. Même chose pour l'autre. Vous pouvez remplacer le bouton enfoncé par pression sur le bouton et celui survolé par le pointeur sur le bouton et celui survolé par le pointeur sur le bouton . Allez-y, compilez. Et maintenant, lorsque vous cliquez sur Play et que vous passez la souris dessus, si vous appuyez sur OK, vous pouvez voir que cela fonctionne Cependant, vous pouvez voir que j'ai vraiment un dollar ici, donc je dois changer le dollar vert. Le vert survolait et le vert était pressé. En fait, je veux utiliser l' autre, le plus grand. Je crois que j'en ai une grande. Celui-ci est bien meilleur pour moi. En fait, je vais le copier. Choisissez la version surlignée et pressée de celui-ci. Je vais cliquer sur le texte et sélectionner le sélecteur de couleur Et sélectionnez plutôt celui-ci. Je trouve que ça a l'air beaucoup mieux. OK, pour le son, je dois en fait réduire l'effet sonore du survol, je trouve ça un peu ennuyeux Permettez-moi de le changer à 0,15 à la place. Jouez. Et maintenant, testons-le. Cela fonctionne ici. OK, maintenant ils fonctionnent. Et vous avez aussi des sons sur les boutons. 70. 6.10 Comment faire apparaître des acteurs: Maintenant, allons-y et faisons apparaître le joueur. Et avant cela, examinons l'étendue des paramètres du monde. Passons en fait aux plans. Cliquez sur le mode de jeu pour accéder au mode de jeu. N'oubliez pas que dans les paramètres par défaut de la classe, nous avons défini la classe par défaut pour qu'elle apparaisse en tant que contre-terroriste Allons-y et clarifions-le pour le moment. Et avant de faire quoi que ce soit d'autre, passons aux plans et ouvrons la lutte contre le terrorisme pour nous assurer qu'ils sont corrects Si j'ouvre la fenêtre d'affichage ici, assurant simplement que le maillage à la troisième personne est le même que le maillage, et je pense qu'il y a un bogue dans le terroriste Donc, si je l'ouvre et que vous voyez qu'il y a un insecte, le maillage est le terroriste. C'est exact. Et pour ce qui est du maillage de la troisième personne, nous devons le remplacer par le terroriste masculin, puis par ce maillage ici. OK. Il suffit de s'assurer que l'appareil photo est incorrect pour une raison quelconque et c'est en fait parce que nous avons besoin du support pour l'appareil photo du support pour l'appareil photo ici et du support parent. Parce que n'oubliez pas que le terroriste utilise un autre squelette. Si je vais au marché, celui-ci, le personnage argenté utilise ce squelette, les militaires le font, le terroriste utilise ce squelette. Je vais ouvrir ce squelette au terroriste. Va vers la tête. Je vais également cliquer avec le bouton droit de la souris et ajouter un socket pour celui-ci. Je vais changer le nom en caméra, tout comme l' autre que je vais enregistrer. Et maintenant, nous devons le positionner de la même manière que l'autre. Je vais ouvrir le personnage Silver Skeleton. Je vais cliquer sur ce socket. Je vais juste maintenir la touche Maj enfoncée et cliquer avec le bouton droit de la souris pour copier ces paramètres. Ensuite, je vais passer à la section terroriste, maintenir la touche Maj enfoncée et cliquer avec le bouton gauche de la souris sur celle-ci pour la placer dans la même position, continuer et tout enregistrer. Maintenant, vous devriez voir si vous revenez voir le terroriste, il a automatiquement placé la caméra là-haut parce que le bras à ressort est en fait fixé à la prise de la caméra. OK, sauvegardons tout. Maintenant, cela semble correct. Encore une fois pour le mode jeu. Dans les classes par défaut, nous devons supprimer le pan par défaut, le définir sur Non, car c'est désormais au joueur de choisir s'il veut apparaître tant que terroriste ou contre-terroriste OK, fermons-le. Assurez-vous également dans les paramètres mondiaux, si vous cliquez ici, que cette classe de panoramique par défaut est également définie sur non. OK, maintenant si tu cliques sur jouer, tu peux te voir apparaître dans une zone aléatoire. Et c'est très bien. C'est intentionnel. Alors maintenant, nous n'apparaissons pas en tant que personnage. Nous devons le sélectionner nous-mêmes. OK, pour faire apparaître des joueurs, nous devons le faire dans le contrôleur du joueur, le contrôleur du joueur, à l'intérieur d'ici Nous nous occupons de l'interface utilisateur comme nous l'avons fait ici, mais nous nous occupons également de la création d'objets et de personnages, etc. Chaque fois que vous générez quelque chose, vous devez accéder à l'interface utilisateur du contrôleur du joueur et l'apparition se fait à l'intérieur du contrôleur du joueur Ouvrons le Player Controller. Et à l'intérieur d'ici, en fait, je veux, cette fois, travailler à reculons parce que vous comprendrez beaucoup mieux cela en ce qui concerne le frai. Très, très important. Nous voulons organiser un événement, il n'est pas nécessaire qu'il se trouve à l'intérieur de la manette du joueur. Vous pouvez organiser l'événement depuis le joueur ou depuis n'importe quel autre endroit. Vous avez donc un premier événement que vous souhaitez organiser. Ensuite, cet événement doit passer par le mode jeu. Parce que n'oubliez pas que le mode jeu ne fonctionne que sur le serveur. Le client ne peut pas communiquer avec le mode de jeu. Donc, l'apparition d' objets et de joueurs. Nous parcourons en fait le mode jeu pour nous assurer que le client ne triche pas Le serveur vérifie donc toujours si ce que vous faites est légal ou non. Ensuite, à partir de ce mode de jeu, si tout va bien, vous allez accéder à la manette du joueur et faire apparaître cet objet ou ce personnage La réapparition finale se fait toujours à l'intérieur du Controller. Comme nous n'avons pas de personnage pour le moment et que nous voulons vraiment le faire apparaître, commençons cet événement depuis la manette du joueur En fait, je veux travailler à reculons. Le dernier événement que nous voulons atteindre est que si vous écrivez, cliquez et écrivez un événement personnalisé et que vous faites Saw Player, nous appelons ce joueur de création d' événements personnalisés un joueur Vous faites glisser le pointeur d'ici et dites «   spawn actor from class ». C'est la fonction qui est utilisée pour faire apparaître des objets dans le monde entier. Maintenant, pour celui-ci, au lieu de simplement sélectionner ce que nous voulons faire apparaître, nous allons laisser le joueur décider Je vais simplement faire glisser cette entrée ou cette épingle ici dans l'événement et cette variable sera automatiquement créée pour moi Et je vais faire de même pour la transformation du spawn Maintenant, pour ce cours, je vais simplement sélectionner une équipe ou l'appeler équipe parce que c'est soit un antiterroriste soit un terroriste qui va apparaître Le joueur sélectionne l'équipe, puis elle apparaîtra à un moment donné lors de la collision. Je dois la configurer pour essayer d'ajuster l'emplacement, mais assurez-vous simplement de toujours faire apparaître ce OK. C'est toujours agréable d'avoir une variable de ce joueur. Faisons un clic droit, faisons la promotion d'une variable et appelons-la pion joueur, d'accord ? C'est la dernière étape que nous voulons atteindre. Nous voulons, par exemple, organiser un événement appelé Select Team. Ensuite, cette équipe sélectionnée passera par le mode de jeu. Et le mode de jeu va revenir dans la manette du joueur et lancer ce joueur qui apparaît si tout va bien et que nous voulons apparaître dans le monde OK, sauvegardons tout maintenant, passons au mode jeu. Dans le mode jeu, nous voulons lancer ce spawn player En fait, je travaille à reculons, en ce moment je travaille à reculons Ce spawn player doit être exécuté à l'intérieur d'ici. Pour ce faire, créons un nouvel événement personnalisé. Et appelons cette requête un joueur spawn, nous demandons de faire apparaître le joueur pour celle-ci Encore une fois, je souhaite organiser cet événement. Nous n'avons pas vraiment de référence à notre manette Player. Ajoutons-le à celui-ci. Je clique simplement sur le et je recherche mon PC. Je crois que ça s'appelle PC Counterstrike. Celui-ci. Allez-y et sélectionnez votre manette de jeu. Et je vais l'appeler Player Controller, on peut le faire glisser à partir d'ici maintenant. Et puis comment l'avons-nous appelé, Spawn Player. Je fais glisser le pointeur d'ici et je dis Spawn player, puis je le sélectionne OK, alors maintenant tu t' en occupes. Nous pouvons maintenant voir que vous devez définir l'équipe et la transformation du spawn Pour ce qui est de l'équipe, encore une fois, sera déterminée chaque fois que le joueur appuiera sur ce bouton. Donc, celui-ci va revenir entièrement à la pression sur le bouton. Je vais donc simplement cliquer et faire glisser ceci ici également. Maintenant, pour ce qui est de la transformation d'apparition, nous devons déterminer où dans le monde nous voulons faire apparaître les joueurs, et c'est en plus des points d' apparition que nous avons créés Passons donc à la leçon suivante et écrivons la logique de cela. 71. 6.11 Lieu d'apparition des joueurs: Bien, nous devons maintenant déterminer où nous voulons faire apparaître les joueurs Et n'oubliez pas que nous avons déjà placé les points d'apparition ici pour le terroriste et le contre-terroriste, et que nous avons déjà stocké ces points d'apparition dans ces tableaux Allons-y et prenons les apparition de la lutte contre le terrorisme et les points d'apparition du terrorisme. Partons d'ici et écrivons au hasard. Nous avons donc une fonction appelée élément du tableau aléatoire Nous allons donc simplement faire apparaître le joueur à l'un de ces points d' Espagne au hasard, puis sélectionner l'un de ces points d'Espagne au hasard Ensuite, nous allons prendre le point de vue de l'Espagne et dire « get act transform ». OK, fais la même chose ici. Nous allons écrire au hasard puis obtenir la transformation. Nous avons maintenant l'emplacement, la rotation et l'échelle des acteurs . Vous pouvez voir que si vous cliquez ici avec le bouton droit de la souris et que vous divisez la structure, vous pouvez voir le point d'apparition qu' elle a sélectionné au hasard Vous avez l'emplacement de ce point de scie, vous en avez la rotation et vous en avez également l'échelle. Je vais recombiner l' épingle de la structure parce que je veux vraiment la transformer Maintenant, ce que vous pouvez faire, très cool, c'est que vous pouvez faire glisser le pointeur hors de cette équipe, et maintenant vous pouvez dire égal comme ça et le sélectionner ici. Si cette équipe sélectionnée est égale, par exemple, à Counter Terrorist, sélectionnons celle-ci BP Counter Terrorist. Si le joueur a sélectionné le contre-terrorisme, ce que nous pouvons faire ici, c'est faire glisser le pointeur à partir d'ici et dire « sélectionnez, utilisez celui-ci ». En fait, utilisons celui-ci appelé select transform. Mais vous pouvez également utiliser celui-ci appelé select. Ensuite, vous pouvez simplement le placer ici et utiliser ce qui est faux ou correct. Au fait, c'est la même chose, la transformation de sélection. Cela nous donne déjà un lingot. Utilisons simplement celui-ci. Allons-y et connectons-le. Maintenant, ce qu' il dit ici, connectons-le ici. Cela signifie que si l'équipe qui a été sélectionnée est capable de lutter contre le terrorisme, si c'est vrai, allez-y et choisissez A. Si c'est faux, allez-y et choisissez B. est ce qu'il dit. S'il est vrai que j'ai sélectionné la lutte contre le terrorisme, je dois prendre les points antiterroristes ici, puis je dois les connecter à A. Parce que c'est vrai, j'ai sélectionné la lutte contre le terrorisme. Je vais prendre les points de repère de la lutte contre le terrorisme et intégrer la transformation ici. Cependant, s'il est faux, c'est le terroriste que le joueur a sélectionné et l'a placé ici. Si vous avez plusieurs équipes pour votre jeu de tir, vous devez utiliser celle-ci appelée select car celle-ci ne vous donne en fait que l' option entre deux. Celui-ci vous donne l' option de plus de deux, comme vous l'avez vu précédemment. Si vous insérez une énumération ici, elle vous donnera les options de toutes les énumérations que vous avez sélectionnées Maintenant, supprimons simplement celui-ci. Concentrons-nous là-dessus pour l'équipe, je vais le reconnecter ici Je ne sais pas pourquoi il s'est déconnecté. Et allons-y et organisons un peu plus les choses. Très bien, maintenant, il va falloir faire apparaître ce joueur au hasard vers l'un de ces points, selon qu' hasard vers l'un de ces points, selon il sélectionne Contre le terrorisme ou le terrorisme Comme vous pouvez le constater ici, pour ces événements, je ne sélectionne plus jamais Exécuter sur le serveur Souvenez-vous que le mode de jeu ne fonctionne que sur le serveur. Vous n'avez pas besoin de l'exécuter sur le serveur ou sur le client. Et d'ailleurs, vous ne pouvez jamais exécuter sur le client en mode jeu, car là encore, il ne fonctionne que sur le serveur. Vous n'avez pas vraiment besoin de le reproduire ici. Il s'exécutera automatiquement sur le serveur ainsi qu'ici dans le contrôle du joueur. Vous pouvez le voir ici. Ou remarquez que je ne l'ai pas non plus exécuté sur le serveur. Souvenez-vous de ce que j'ai déjà dit, c'est toujours le serveur qui fait apparaître les choses dans le monde En réalité, il devrait s' agir d'une exécution sur serveur. Cependant, n'oubliez pas que vous venez du mode jeu. Le mode de jeu ne fonctionne que sur le serveur et il exécute ce spawn player Il est automatiquement toujours présent sur le serveur. Cela ne vient jamais du client. Cela vient du mode de jeu qui est exécuté depuis le serveur. Celui-ci sera donc toujours exécuté sur le serveur, vous n'avez donc pas vraiment besoin de le reproduire également OK, maintenant, si je reviens au mode jeu, nous avons maintenant cette demande de spawn player Et cela vient en fait de la manette de jeu. Donc, si je reviens ici, je clique avec le bouton droit de la souris et je crée un événement personnalisé. Et appelons-la Select Team. Nous avons presque terminé. Sélectionnez l'équipe. Et je veux aussi en faire fonctionner un autre sur le serveur appelé Server Select Team. Et celui-ci fonctionne sur un serveur fiable. D'accord, nous allons maintenant sélectionner une équipe. Lorsque nous cliquons sur l'interface utilisateur, pour cette équipe de sélection, je souhaite lancer l'équipe de sélection du serveur. Maintenant, il va passer par le serveur. Pour celui-ci, je vais lancer le mode jeu. L'un d'eux s'appelle Request Spawn Player. Maintenant, je ne peux pas lancer le Request Spawn Player car, comme vous pouvez le voir ici, je n'ai pas d'interface de plan pour mon mode de jeu et je n' ai aucune référence à celle-ci Passons donc à la leçon suivante et créons une interface de modèle pour le mode de jeu. 72. Interface de plan du mode jeu 6.12: Très bien, alors allons-y et créons une interface de plan pour le mode de jeu. Maintenant, vous pouvez le faire vous-même parce que nous l'avons fait tant de fois. Maintenant, si vous ne vous en souvenez pas, allez-y et suivez-moi ici dans cette leçon. Allons-y dans le dossier Blueprint interfaces. Cliquez avec le bouton droit de la souris, accédez à Blueprint et sélectionnez l'interface Blueprint Allez-y, appelez-le et je passe en mode. Accédez à cette interface de plan. Appelons cette fonction, trouvons la référence du mode de jeu à l'intérieur d'ici. Créons une sortie. Vous devez sélectionner ce à quoi vous essayez de faire référence. J'essaie de faire référence à mon mode de jeu appelé GM, je crois. Contre-attaque. Si je clique à nouveau ici, c'est vrai, Counterstrike Sélectionnez mon mode de jeu , puis appelez-le mode jeu. OK, maintenant on en a fini avec ça. N'oubliez pas de tout compiler. Revenons à notre mode de jeu dans le mode de jeu Blueprint. À l'intérieur d'ici, cliquons sur les paramètres de la classe, accédons aux interfaces, puis sélectionnons accédons aux interfaces, puis sélectionnons l'interface que vous venez de créer en mode jeu. Double-cliquez maintenant sur l'interface. Et à l'intérieur d'ici, écrivons l'autoréférence. Nous avons maintenant défini ce mode de jeu. Allez-y, compilez et enregistrez tout. Nous pouvons maintenant accéder à la manette du joueur et je peux commencer à jouer. En fait, allons-y, disons et cliquez avec le bouton droit de la souris ici pour lancer le mode de jeu. À partir de là, nous pouvons dire « obtenir référence au mode de jeu » que nous venons de créer. Et c'est un message car il provient d'une interface de plan Et allez-y, connectez-vous. Maintenant, pour celui-ci, vous pouvez maintenant cliquer avec le bouton droit de la souris et le transformer en variable et l'appeler mode jeu. Nous avons maintenant une référence à notre mode de jeu. Maintenant que nous avons une référence à notre mode de jeu, nous pouvons prendre ce mode de jeu et dire que si je reviens à mon mode de jeu et que je me rappelle comment je l'ai appelé, et si je reviens ici, nous l'avons appelé Request Spawn Player Maintenant, nous pouvons directement depuis ce mode de jeu et dire «  Request Spawn Player », juste comme ça Bon, maintenant nous pouvons l' utiliser dans la prochaine leçon. Allons-y, compilons et sauvegardons tout, et passons à autre chose. 73. 6.13 Terminer la logique de sélection d'équipe: OK, maintenant allons-y et finissons la logique. Maintenant, connectons cette requête événement spawn player depuis le mode jeu nous permet de le connecter à celui du serveur Maintenant, si vous connectez celui-ci ici, vous aurez également une ère si vous le connectez ici. Et puis pour ce mode de jeu, disons que vous avez branché cette cible ici Il s'agit de la référence du mode de jeu. Si vous le faites ici, si vous l'exécutez, il s' agit de la référence du mode de jeu. Si vous l'exécutez à partir d'ici, arriverez à une époque où il est indiqué que cette variable de mode de jeu n'existe pas. Je ne vois pas de quoi tu parles. Cela se produit si vous l'exécutez sur le client. N'oubliez pas que le mode de jeu ne peut communiquer qu' avec le serveur. Si vous essayez d'exécuter la variable du mode de jeu via le client, cela vous donnera une époque et vous indiquera époque et vous indiquera je ne sais pas quelle est cette variable. N'oubliez pas d'exécuter également ce mode de jeu via le serveur. Supprimons cette variable. Permettez-moi de reconnecter mon mode de jeu, juste comme ça. Maintenant, je dois connecter ma manette de jeu Select. N'oubliez pas que nous sommes déjà dans la manette du joueur, faites glisser à partir d'ici et écrivez elle-même l'équipe que vous devez sélectionner. Encore une fois, nous voulons le faire via l'interface utilisateur ici. Ce que je vais faire, c'est simplement le faire glisser dans l'événement, faire glisser également dans l' événement, et le compiler. Maintenant, ce que nous pouvons faire maintenant, que vous pouvez prendre cet événement et l'exécuter via l'interface utilisateur. Si j'ouvre mon widget, mon plan, je clique sur mon bouton. Pour celui-ci, changeons le nom Si vous cliquez sur le bouton, je l'appellerai BTN Terrace. Rendez-le variable, car si vous ne l'avez pas en tant que variable dans le graphique, vous allez coder la fonctionnalité de ce bouton. Vous pouvez voir que vous n'avez aucune variable. Si vous le mettez à, vous pouvez maintenant le voir comme une variable ici. Et vous pouvez créer des événements grâce à elle. Assurez-vous que le nombre de cases à cocher est variable. Faites de même pour la lutte contre le terrorisme. Disons que c'est un terroriste BT N. Faisons en sorte que ce soit variable. Allez-y, compilez et enregistrez tout. Passons maintenant au graphique. Pour celui-ci, je vais tout supprimer. Pour l'instant, je vais d'abord cliquer sur le Terris, par exemple Et maintenant, nous avons ces événements. Nous pouvons sélectionner celui-ci en un clic. Que doit-il se passer lorsque je clique sur le bouton Terris ? Ce que je veux faire, c'est que lorsque je clique, je veux lancer cette équipe de sélection. J'ai besoin d'une référence à la manette Player. Donc, de la façon dont vous le faites très, très facilement dans l'interface utilisateur, vous pouvez écrire, cliquer et dire « devenir propriétaire ». Et vous pouvez voir que vous avez deux choses ici. Vous pouvez soit devenir propriétaire du joueur ce qui vous permettra d'obtenir la manette du joueur. Et vous pouvez devenir propriétaire du joueur Pon. Cela permettra d'obtenir le joueur P au lieu de la manette du joueur. À l'heure actuelle, nous avons besoin de la manette du joueur. Je vais m'occuper de devenir propriétaire du joueur. Encore une fois, nous nous souvenons déjà d' avoir une interface de plan pour le contrôleur du joueur où nous pouvons faire glisser le pointeur et dire « obtenir la référence du contrôleur du joueur Allez-y, connectez-vous. Nous pouvons maintenant organiser cet événement appelé Select Team et continuer à le sélectionner. Vous devez maintenant préciser quelle est l'équipe. C'est le terroriste parce que nous avons cliqué sur le bouton terroriste. Allez-y, recherchez le terroriste de BP et compilez pour le contre-terroriste. Allez-y et cliquez dessus. Allez-y et cliquez ici. Je vais juste copier-coller le tout. Tu peux le réécrire si tu veux t'entraîner davantage. Maintenant, sélectionnons le compteur place ou celui-ci. Allons-y et compilons. Maintenant, pour vous expliquer ce qui se passe réellement , c'est si je clique sur le bouton terroriste. Il va maintenant passer par les commandes du joueur et sélectionner l'événement par équipe. Ça va passer par ici. N'oubliez pas que celui-ci s'exécute à la fois sur le client et sur le serveur. Nous l'exécutons via le client ici , puis nous l'exécutons d'abord sur le serveur. Lorsque nous l'exécutons sur le serveur, nous communiquons désormais avec le mode jeu. Nous allons passer en revue le mode jeu et demander au mode de jeu nous sommes réellement autorisés à le créer ? Et nous allons passer en revue tout cela et créer le contrôle du joueur Ça va aller ici. N'oubliez pas qu'il sait quoi générer , car nous les avons définis ici dans l'interface utilisateur, nous avons défini l'équipe ici Elle va transmettre cette valeur à l'équipe sélectionnée, elle va la transmettre ici, la connecter ici, la faire passer en mode jeu ici. Ensuite, il va l'exécuter dans le spawn player ici. Et il sait quelle est la valeur parce que nous lui avons indiqué ce que c' est et il sait également où faire apparaître le joueur OK, maintenant allons-y et cliquons sur jouer. Et si je sélectionne l'un d'entre eux, par exemple, le terroriste, vous pouvez voir qu'il ne se passe rien en ce moment. Passons à la leçon suivante et finissons-en. 74. 6.14 Apparaître le joueur: Bien, il y a donc une dernière chose à faire pour faire apparaître le joueur. Et nous devons posséder le joueur. Si vous cliquez dessus, vous faites apparaître le joueur Mais vous ne pouvez pas voir le joueur dans le niveau car vous devez également le posséder. Si vous faites glisser le pointeur depuis l'écran, n'oubliez pas que nous avons déjà créé une interface pour la base de joueurs Vous pouvez donc faire glisser le pointeur depuis l'affichage et dire « obtenir la référence du joueur ». Nous avons déjà créé cette interface de plan, et vous pouvez désormais le faire glisser depuis le lecteur Vous devez posséder le joueur pour pouvoir le contrôler. Allez-y, compilez tout maintenant, et cliquons sur Play. Si vous cliquez sur le terroriste maintenant, vous pouvez voir que vous pouvez réellement posséder ce contre-terroriste. Cependant, l'interface utilisateur est toujours devant nous et nous devons la supprimer. L'interface utilisateur est exécutée via le client. Lorsque vous travaillez avec l'interface utilisateur, vous travaillez à l'intérieur du client. Maintenant, au lieu de le faire ici, cliquons avec le bouton droit de la souris et créons un nouvel événement personnalisé. Et passez-le par le biais du client. Spawn player, je vais juste l' appeler client spawn Je sais que c'est lié à celui-ci. Je vais cliquer dessus. Allez-y et continuez à avoir un client fiable. Passons-en en revue ici également. Cl Spawn Player pour celui-ci ici en ce moment Je veux juste me rappeler que nous l'appelons show hide widget. Nous pouvons donc descendre ici et dire Afficher masquer le widget et le sélectionner ici. Nous pouvons maintenant sélectionner l'équipe sélectionnée, et celle-ci est décochée Maintenant, il va masquer l'interface utilisateur pour les joueurs. Allons-y, compilons et cliquons sur Play. Et choisissons, par exemple, le Counter Terrorist. Maintenant, vous pouvez voir que nous sommes à l'intérieur. Maintenant, vous pouvez voir que je ne peux pas déplacer mon personnage. Et je peux aussi voir la tête de mon personnage. Souvenez-vous que nous avons effectivement retiré la tête. Il s'agit d'un bug. Si nous allons voir le joueur, et je veux juste vérifier mon code si vous cliquez sur la base de joueurs, si vous allez sur le graphique des événements, il montre ma tête. N'oubliez pas qu'au début du jeu, on enlève la tête, on ne peut pas non plus contrôler le joueur. Je pense que ce code, le code de mouvement et le fait de cacher la tête ne fonctionnent pas. Parce que si je joue et que je clique, vous pouvez voir ma tête, ce code ne fonctionne pas. Celui-ci ne fonctionne pas non plus parce que je ne peux pas vraiment déplacer mon personnage. Je crois que c'est parce que vous pouvez simplement imprimer une chaîne ici. Imprimer à nouveau une chaîne, imprimer une chaîne est vraiment puissant. Il devrait dire bonjour ici. Si c'est le cas, je sais que mon code s'exécute ici. Si je clique sur mes foulques, tu peux voir qu'il ne dit pas bonjour Mais si je le connecte au non valide. Donc, si je le déconnecte, que le mets comme non valide, juste comme ça. Et je peux le reconnecter à nouveau. Je clique sur Play, et maintenant il me dit bonjour. Cela signifie en fait que ce n'est pas valide. Maintenant, en multijoueur, vous devez savoir que vous devez laisser un peu de temps au joueur pour qu' il apparaisse, car ce n'est pas comme un mode solo Ils mettent un certain temps à apparaître sur le serveur ou à se connecter au serveur Vous devez donc en tirer un trait et, disons, retarder. Parfois, cela résout réellement le problème. Si j'ajoutais juste un délai et pas vraiment un gros délai, juste de 0,01 donc très, très faible et compilais. Et maintenant, si je clique sur Play, sélectionne le Counter Terrorist. Maintenant, vous pouvez voir que je peux déplacer mon personnage et que j'ai perdu la tête également. En fait, la seule chose dont nous avions besoin ici était d' ajouter ce délai. Parce que lorsque vous vous connectez au réseau sur le serveur, vous devez disposer d'un très petit délai pour que le joueur se connecte réellement et exécute ensuite ce code. Très bien, maintenant, comme vous pouvez le voir ici, tout fonctionne très bien. Cependant, vous pouvez voir que la souris disparaît à chaque fois que je clique sur l'écran Et c'est embêtant, je dois sélectionner mon autre écran avant pouvoir réellement cliquer sur les boutons. Et je dois cliquer ici avant de pouvoir jouer. Vous pouvez donc voir que je dois cliquer, ou même minimiser cela. Maintenant, je peux cliquer sur l'interface utilisateur. Et je dois cliquer à nouveau sur l'écran avant de pouvoir déplacer mon personnage avec la souris. Nous devons donc régler ce problème. Et c'est ce que nous devons faire dans la leçon suivante avec ce on appelle un mode de saisie que nous devons définir. Passons à la leçon suivante. 75. 6.15 Réglage du mode d'entrée: Très bien, maintenant allons-y et ouvrons notre manette de jeu. Donc, si vous ouvrez le contrôleur du joueur, comme vous pouvez le voir lorsque je clique sur jouer, je ne peux pas voir ma souris et je ne peux rien appuyer sur quoi que ce soit. Si je vais sur la manette du joueur et que je clique sur la classe par défaut, je peux sélectionner celle appelée chaussures Si je compile et que je joue, maintenant vous pouvez voir que je peux voir le curseur de ma souris. Cependant, parfois, lorsque j'entre dans le jeu, je n'arrive pas à survoler mes boutons Et c'est là qu'intervient le mode de saisie défini. Ici, dans la manette du joueur. Commençons par là, dès le début. Jouez et disons définir le mode de saisie. Vous avez ces différents types. Vous pouvez régler le mode de saisie sur UI uniquement, sur jeu uniquement ou sur jeu et interface utilisateur. heure actuelle, lorsque nous nous connectons au serveur, nous voulons simplement qu'il soit accessible à l'interface utilisateur. Parce que nous voulons simplement nous concentrer sur la sélection de notre équipe et sélectionner l'équipe. On s'en fout du jeu pour le moment, je vais me suffire. Ensuite, nous devons spécifier le contrôleur du joueur. N'oubliez pas que nous sommes déjà sous le contrôle du joueur, donc je vais faire glisser le pointeur à partir d'ici et dire « soi ». Ensuite, pour que nous puissions nous concentrer sur le widget, nous n'avons rien à faire ici. Et tout se présente bien. Alors allons-y et compilons. Et maintenant, lorsque je clique sur Play, ne me concentre plus sur mon jeu. Et je peux aller de l'avant et faire tout cela. Maintenant, lorsque le joueur apparaît, vous devez également changer le mode de saisie. Parce que lorsque nous entrons dans le jeu, vous pouvez voir que je ne peux plus bouger parce que pour le moment, votre mode de saisie est réglé sur l'interface utilisateur uniquement, vous devez donc également le modifier. Allons ici. Et n'oubliez pas qu'en fait, si vous montez ici et que vous voyez l'icône, vous pouvez maintenir la souris dessus Vous pouvez voir que celle-ci est en haut, vous pouvez voir qu'elle indique « client uniquement ». Il ne fonctionne que sur le client. Allons ici. Lorsque nous faisons apparaître le joueur, envoyons-le au client. Joueur Spawn. Faisons glisser le pointeur à partir d'ici et disons définir le mode de saisie. Pour le moment, nous n'avons besoin du jeu que parce que nous sommes dans le jeu. Nous voulons nous déplacer. Peu nous importe l'interface utilisateur, la manette du joueur, disons « self », comme avant. C'est ce qui devrait être le cas. Compilons et jouons. Maintenant, je sélectionne Counter Terrace, par exemple, et maintenant je suis à l'intérieur. Mais comme tu peux le voir, je peux toujours voir ma souris. Faisons glisser le pointeur à partir d' ici et disons souris. Vous avez cet événement ici. Le lingot appelé set show mouseursa. Je vais le régler pour qu'il tombe ici. Vous pouvez toujours le définir sur true par défaut, si vous le souhaitez, vous pouvez le copier. Et vous pouvez le coller ici brancher et le régler sur true. Maintenant, nous l'avons déjà fait en le définissant sur true par défaut, mais juste pour vous assurer qu'il est visible, au cas où vous feriez quelque chose dans le futur, vous pouvez l'avoir. Mais pour l'instant, ce n'est en fait pas nécessaire. Mais en fait, laissons-le être ici. Cliquons sur Play by Select, No terrorist. Vous pouvez voir que ma souris disparaît et que tout fonctionne parfaitement. Très bien, alors fermons tout. N'oubliez pas de sauvegarder votre partie et passons à autre chose. 76. 6.16 Placer une caméra de spectateur: heure actuelle, lorsque vous cliquez sur Play, vous pouvez voir que cela commence à un moment aléatoire. Et en fait, je veux commencer par un endroit sympa où vous pouvez voir tous les joueurs dès que vous vous connectez. Ce sera vraiment chouette. Ce que vous pouvez faire, c'est simplement installer une caméra ici, par exemple. Permettez-moi de placer d'abord mon appareil photo. Par exemple, je veux placer ma caméra comme ça ici et je peux voir l'ensemble du niveau ainsi que les joueurs. Maintenant que vous êtes satisfait de la position de votre caméra, vous pouvez cliquer ici sur la fenêtre d'affichage, puis cliquer sur celle-ci Créez une caméra ici, puis sélectionnez Caméra. Cela créera automatiquement un acteur de caméra. Maintenant, si je clique sur la caméra, elle a été créée ici. Pour m'assurer de ne pas déplacer la caméra ici par erreur, je vais écrire click and transform puis sélectionner Lock Movement selected. Maintenant, lorsque vous cliquez dessus et que vous sélectionnez l'outil de déplacement, vous pouvez voir qu'il n'est pas là. Je ne peux pas vraiment le déplacer par erreur. Maintenant, il a bloqué le mouvement pour celui-ci. OK, je vais renommer celle-ci et l'appeler caméra spectateur. Laissez-nous économiser. heure actuelle, ce que nous pouvons faire, c'est accéder à la manette du joueur et nous souvenir de ce que j'ai dit tout accéder à la manette du joueur à l'heure. Si vous voulez faire référence à quelque chose qui se trouve dans le monde, essayez de vous rappeler quelle fonction nous utilisons réellement. Je vais vous donner une petite seconde pour réfléchir à la fonction que nous pouvons utiliser ici pour obtenir la référence de cet appareil photo ici. Passons maintenant à la manette du joueur. Ce que nous pouvons faire, c'est définir cette vue chaque fois que le joueur se connecte. En fait, je vais le faire ici au début de Play. Ce que vous pouvez faire, c'est que je vais juste le faire ici après le mode, je vais le faire glisser. Et puis à partir de là, dites «   acte de classe » à Floss. Il s'agit de la fonction que vous devez utiliser. Sélectionnez ensuite l'appareil photo. Si je recherche une caméra, vous pouvez continuer et sélectionner la caméra. C'est une caméra, nous la prenons à notre niveau. Maintenant, ce que nous pouvons faire, c'est utiliser cette fonction appelée Set View Target, Blend. Set View Target with blend va définir la vue de votre caméra lorsque vous vous connectez. Maintenant, il vous demande quelle est la vue. La vue est juste cette caméra que nous avons créée. Allez-y, connectez-vous. C'était en fait ça. Choisissons-les ici. Allez-y, compilez, sauvegardez tout. Cliquons sur Play. Et maintenant, vous pouvez voir que nous commençons ici. Et je peux voir ce niveau. Ça a l'air cool si les joueurs jouent et que je peux sélectionner mon équipe et voir les joueurs en arrière-plan. Lorsque vous cliquez sur un terroriste, par exemple, vous continuez et vous apparaissez à l'intérieur du niveau Et tout fonctionne bien pour l'autre. Si je deviens un antiterroriste, je passe et vous pouvez voir qu'ils peuvent se voir À l'heure actuelle, vous pouvez voir qu'il y a un bogue. Réparons réellement à ça. La tête disparaît lorsque je considère le client comme le serveur, si je quitte ici, cela me montre une époque et c'est peut-être à cause de celle-ci Il est dit que Axis n' essaie pas de lire cette époque ici, vous pouvez essayer de le réparer vous-même maintenant avant de me suivre juste pour vous entraîner. Axis non signifie qu'il essaie de lire cette valeur appelée sous-système get local player Si je clique ici, c'est le sous-système get local player Il essaie de lire cette valeur mais il indique access none, qui signifie que je ne peux obtenir aucune information à partir de celle-ci. Supprimons simplement ça. Il est toujours agréable de le supprimer et de dire que ce est valide que lorsque c'est valide. Nous allons exécuter ce code, connectons-le également ici. Chaque fois que le contrôleur du joueur est valide ainsi que cette entrée améliorée, elle est valide, alors nous voulons réexécuter le code. Il suffit de double-cliquer ici sur le nœud de redirection. Allez-y et faites cette compilation organisée. Cliquons sur jouer pour voir ce qu'il fait. Maintenant, allez-y et sélectionnez des terroristes pour celui-ci, par exemple. Nous allons passer au milieu et sélectionner l'autre. Nous allons sélectionner le contre-terroriste. Laissez-moi voir l' autre gars ici et voir s'ils se voient. Et maintenant vous pouvez voir que c'est réparé. C'était juste un problème lié à cette époque que nous avions avant. Maintenant, si vous voulez le tester, vous pouvez y jouer en tant que client. Vous pouvez y jouer, par exemple, à trois joueurs. Ouvrons tous ces trois acteurs. Je vais juste minimiser cette grande taille pour le moment et les agrandir légèrement. Juste comme ça pour celui-ci, créons un contre-terroriste Et pour l'autre, créons un contre-terroriste. Pour le troisième, créons un terroriste. Laisse-moi passer au milieu. Pour celui-ci, je vais également passer au milieu. Et pour l'autre aussi. Maintenant, vous pouvez voir qu'ils fonctionnent parfaitement. Tout le monde peut voir tout le monde. Et les animations, on peut les voir s'accroupir, celle-ci aussi, les effets sonores fonctionnent, et tout est prêt Allons-y, sauvegardons tout, et passons à autre chose. 77. Espaces de mélange de pistolet: Nous sommes maintenant prêts à travailler avec les armes et à les placer également dans le niveau. Cependant, avant cela, faisons les animations sur les fusils et les pistolets car elles nous manquent pour le moment Finissons-en avant de travailler sur les armes, car à ce moment-là, nous aurons toutes les animations et tout sera beaucoup plus facile pour nous. Revenons donc au dossier des plans, cliquez sur le lecteur et revenons au dossier des animations ici Ce que je veux faire pour cette leçon, c'est créer les espaces de mélange des pistolets Comme ceux-là, mais les pistolets sont maintenant disponibles si vous voulez les créer vous-même. C'est donc un bon exercice et ensuite vous pourrez voir ce que je fais. Mais vous devriez maintenant savoir comment procéder. Parce que c'est en fait la même chose que ceux qui s'accroupissent sans armes , courent sans armes et marchent également sans Si vous voulez suivre, cliquez ici avec le bouton droit de la souris. Passons ici dans l'animation et sélectionnons l'espace de fusion pour celle-ci. Encore une fois, sélectionnez notre style squelette, un homme, et appelez-le blend space. Appelons ça un pistolet accroupi. Créons-le d'abord. Double-cliquez ici. Pour l'axe horizontal, c'est le sens du mouvement pour l'axe vertical, c'est la vitesse de déplacement. Pour le sens du mouvement, il passe de moins 180 à 180. Et puis nous avons huit déficiences parce que nous avons un mouvement à huit voies Quant à la vitesse de déplacement actuelle, elle dépend du fait que nous sommes accroupis, que nous marchons ou que nous courons Revenons maintenant à... je peux vraiment le faire ici, sur la droite. Retournons en position accroupie pour ceux qui ne sont pas armés. Je veux voir quelle était la vitesse de déplacement. Voilà, il y en a 100, donc je vais régler la même chose ici pour le pistolet, 100 Enfin, pour ce qui est de la vitesse du poids, nous l'avons fixée à 6,5. Si vous vous souvenez, si vous ne le faites pas, vous pouvez cliquer sur le accroupi, vous pouvez descendre Et puis vous pouvez voir la vitesse du poids, nous l'avons réglée à 6,5. Fais la même chose pour celui-ci, pour qu'ils soient pareils. Et avant de faire quoi que ce soit, je vais l'enregistrer cliquer dessus avec le bouton droit de la souris et le dupliquer. C'est parce que je n'ai pas à faire tout cela encore et encore. Et celui-ci s' appelle Run Pistol. Ensuite, je vais le dupliquer à nouveau et cela s' appellera S walk pistol Je vais ouvrir le pistolet de course. Il ne nous reste plus qu'à modifier la vitesse de déplacement. Je pense que c'est 350 et si vous ne vous en souvenez plus, cliquez sur le bouton non armé Pour la course, tu vois, c'est 350. En position accroupie ou accroupie, le pistolet de course, vous devez également le mettre à 350 OK. Et vérifions le pistolet Celui-ci, je crois, c'est 200 sur le dessin. Oui, c'est 200. Mettons donc également le nombre de marches de un à 200 et sauvegardons tout. Maintenant, vous pouvez voir que lorsque je l'ai dupliqué, je n'ai pas à faire tout cela encore et encore. Maintenant, ils sont tous prêts. OK. Commençons par celui du pistolet Cherchons la position accroupie ou je peux juste chercher un pistolet C'est beaucoup plus facile. Ensuite, je pourrai jeter un œil à l'accroupi ici Tout comme avant. Il faut d'abord avoir le moteur inactif. Voyons voir, accroupissez-vous au ralenti, encore une fois, maintenez la touche Shift enfoncée et branchez-les ici Juste comme ça. Et pareil l'autre côté, juste comme ça. OK, voici le mouvement vers l'avant comme vous pouvez le voir ici. Ensuite, vous avez l' avant gauche jusqu'ici, puis l'avant droit jusqu'ici. Alors tu as le gauche ici et tu as le droit ici. Ensuite, vous avez le dos gauche et le dos droit, puis vous avez le dos des deux côtés. Et je peux activer les étiquettes pour que vous puissiez également voir comment je les place. Mais vous pouvez maintenir le bouton de commande enfoncé et déplacer votre souris juste pour vérifier si tout va bien. Tout semble bon. Je vais le sauvegarder et le fermer. Maintenant, je peux ouvrir le pistolet de course. Je vais chercher le pistolet inactif et utiliser celui-ci appelé pistolet inactif et le remettre en place Maintenez la touche Shift enfoncée et placez-les toutes. Maintenant que vous les aurez placés, cherchons un pistolet et je trouverai ceux qui fonctionnent. Lancez celui-ci, les pistolets dont nous avons besoin maintenant, si je peux les trouver ici, le pistolet de devant Ensuite, nous avons besoin de l'avant gauche, puis de l'avant droit. Ensuite, nous avons besoin de la gauche, de la droite, et nous avons besoin de l'arrière gauche, de l'arrière droit. Nous avons également besoin du soutien des deux côtés. Encore une fois, maintenez la touche de contrôle juste pour voir à quoi cela ressemble. Tout a l'air bien. OK. Nous pouvons le fermer. Ouvrons maintenant le dernier, le pistolet de marche. Encore une fois, je vais trouver l'inutilisé. Prenez le pistolet à vide et replacez-le ici. Alors cherchons un pistolet. Maintenant, nous devons trouver la promenade sur ce front de promenade, placer ici comme ça. Ensuite, nous avons besoin de la gauche, de l'avant, de la droite. Ensuite, nous avons besoin de la gauche et de la droite ici, revenir à gauche, de revenir à droite. Ensuite, nous avons besoin des deux sites. Encore une fois, je peux activer ces étiquettes pour que vous puissiez les voir et que je puisse garder le contrôle. Déplace ma souris juste pour voir à quoi ça ressemble et tout va bien. Maintenant, nous pouvons tout sauver. Et c'était tout pour le pistolet, une fois. Passons à la leçon suivante et passons au fusil. 78. Espaces de mélange de fusils: Pour le fusil. Encore une fois, vous pouvez essayer de le faire vous-même maintenant que nous avons également fabriqué le pistolet Mais allons-y et faisons-le ensemble si cela vous pose encore des difficultés. Cliquons ici avec le bouton droit de la souris. Passons à l'animation. Allons dans Blend Space et sélectionnons notre squelette. Encore une fois, appelons-le S. Appelons-le Rifle. Passons à celui-ci. Appelez l'horizontale. Direction du mouvement. L'axe vertical. Vitesse de déplacement. La direction va de moins 180 à 180. Avec huit divisions de grille, la vitesse du poids est 6,5. Quant à la vitesse de déplacement, il s'agit de l'accroupissement Il est donc fixé à 100. C'est exact. Fermons-le à nouveau. Je vais le reproduire et l'appeler « fusil Un ». Et je vais le dupliquer à nouveau. Appelons ça un fusil à marche unique. Je vais ouvrir le fusil de course et changer la vitesse de déplacement à 350. Oui, nous n'avons pas besoin de changer quoi que ce soit d'autre. Ouvrons le Walk Rifle ici. Passons la vitesse de déplacement à 200 comme les autres. Et sauvegardons tout et fermons-le. OK, pour le fusil. Commençons par l'accroupissement. Pour l'accroupi, je vais chercher un fusil, puis je vais trouver le fusil inactif et le placer ici. Et allez-y, replacez-les, jusqu'ici. Très bien, quand c'est fait, trouvez le fusil accroupi et placez-le ici Parfois, je tiens juste le contrôle pour vérifier si cette animation que j'ai importée pour vous est correcte. D'habitude, je garde le contrôle et je vérifie simplement si c'est correct. Je ne me trompe pas sur ce cours. Maintenant, nous avons cette façade. OK, donc nous avons l'avant gauche, nous avons l'avant droit, puis nous avons le côté gauche accroupi gauche et accroupi à droite également Ensuite, nous avons l'arrière gauche et l'arrière droit. Ensuite, nous avons également des allers-retours. Oups, je dois le recopier comme ça à nouveau. Gardez le contrôle, vérifiez si tout est correct, tout semble correct. Fermons ça. Passons à nouveau au fusil. Je recherche Idle. Et je prends ce fusil inutilisé et je le place ici. Et replacez-le, jusqu'en bas. Une fois cela fait, allez-y et recherchez un fusil. Maintenant, je trouve le fusil Run Forward une fois et je trouve le fusil Run Forward qui semble correct. Et mettons-le à l' avant, à gauche, à l'avant, à droite. Et puis il y a la gauche et la droite. Et nous avons le dos gauche et l'arrière droit, et nous avons le dos des deux côtés. Et je vais garder le contrôle, vérifier si tout va bien. Cela semble correct. Fermons-le. Le dernier est le Walk Rifle. Encore une fois, je vais chercher le moteur inutilisé, le faire glisser vers le bas du fusil et le placer jusqu'ici. Encore une fois, allons-y et cherchons un fusil. Et maintenant, il nous faut celle qui marche. Passons à la marche à suivre. Placez-le ici et vérifions-le. C'est exact. Puis à l'avant, à gauche. Avant à droite, et nous avons la gauche. Nous en avons les droits. Ensuite, nous avons les Bcrights. Nous avons également du dos des deux côtés. Je vais contrôler, encore une fois, juste pour vérifier si tout semble correct et si tout semble correct. Sauvegardons tout. Fermons-le. Et maintenant, le fusil et les pistolets sont terminés. Passons à la leçon suivante et faisons le décalage de visée. 79. 7.03 Décalage de la cible du pistolet: Maintenant, allons-y et effectuons le décalage de visée. Maintenant, vous l'avez déjà fait. Encore une fois, essaie de le faire sans moi. C'est une bonne pratique. Et si vous ne vous en souvenez pas, allons-y et faisons-le ensemble. Cliquons ici avec le bouton droit de la souris, passons à Animation et passons à Legacy. Et sélectionnez-les, Offset one D, laissez-nous sélectionner le personnage. Appelons-le O pour un décalage. Et accroupissons-nous. Et appelons-le un pistolet. Et double-cliquons dessus. Pour celui-ci, l' axe horizontal est la direction. Vous pouvez également simplement cliquer sur l'autre pour voir ce que vous avez fait. Alors tu fais la même chose. Ce n'est pas vraiment bien de faire différentes choses sur un même jeu. C'est donc toujours agréable de faire la même chose. Si vous l'avez appelé direction ici, essayez de l'appeler direction ici également, au lieu de déplacer la direction et ainsi de suite. Essayez donc de faire la même chose. Vous avez donc de la constance dans votre jeu -90 Et je pense que les lacunes restent les mêmes Tout se présente bien. La vitesse de poids que j'ai fixée à 5,5 , je vais cliquer sur le pistolet et également la mettre à 5,5 Je vais tout enregistrer maintenant. Cherchons l'offset du pistolet accroupi. Si je cherche un pistolet et que je descends sur le décalage Am, ce sont ceux qui sont accroupis Celui du centre, je vais maintenir la touche Shift enfoncée et la placer ici en bas. Ensuite, nous avons le feu vert et je vais garder le contrôle pour voir si tout va bien. C'est très bien. Fermons-le. Je vais cliquer avec le bouton droit sur Animation Legacy Am. Offset 1. D. Sélectionnez votre squelette et appelez ce pistolet à 10 positions. Ouvrons-le à nouveau. Appelez cela direction allant de -90 à 95,5 pour ce qui est de la vitesse du poids Et cherchons à nouveau un pistolet. Cette fois, c'est le pistolet sur support, celui du centre que je vais mettre au centre Ensuite, il y a le bas, puis il y a le haut. Et vous pouvez également voir l' étiquette ici. Nous avons le bas, nous avons le haut. Tout se présente bien. Sauvegardons tout, et passons à la leçon suivante. 80. 7.04 Compensations de visée des fusils: OK, il ne nous manque plus que le fusil. Visez à nouveau en décalant, essayez de le faire seul pour vous entraîner. Et si vous ne vous en souvenez pas encore, allons-y et faisons-le ensemble. Cliquez avec le bouton droit sur Animation. Sélectionnez Legacy et visez un décalage d'un D. Et choisissons notre squelette et appelons ça, appelons-le fusil accroupi Pour celui-ci, je vais double-cliquer, appeler ça direction pour la valeur minimale -90 Pour la valeur maximale, c'est 90 La vitesse du poids est de 5,5. Cherchons le fusil cette fois pour le compenser. C'est celui qui est accroupi. Nous avons besoin d'un décalage en position accroupie. Je vais attaquer ce centre et le mettre ici. Ensuite, il y a le bas, puis il y a le haut. Ça a l'air sympa ici. Maintenant, l'animation elle-même semble étrange. Je veux dire, il est vraiment tordu et ça a l'air tellement bizarre. Mais ce ne sont que des animations comme si ce n'était pas de ta faute, que nous ne faisions rien de mal. C'est juste l'animation qui est faite comme ça. Maintenant, si j'avais de meilleures animations, je vous les donnerais. Malheureusement, je n'ai pas vraiment de meilleures animations. Peut-être qu'à l'avenir, quelqu'un fera tout sur mesure. Mais pour le moment, c'est le mieux que nous puissions faire. Tout va bien. Maintenant, fermons-le. Et cliquez à nouveau avec le bouton droit de la souris. Allez dans Animation et héritage, on vous dit de sélectionner le squelette. Appelez-le fusil AO Stand Rifle. Double-cliquez ici et appelons-le direction. Ensuite, pour la valeur minimale -90 pour le maximum 90, pour le poids, vitesse 5,5 Et cherchons le fusil et ensuite nous pouvons sélectionner le fusil sur support, c'est le centre Ensuite, il y a le down. Ensuite, nous avons l'ancienne commande pour vérifier si tout est correct et si tout va bien. OK, sauvegardons tout. Fermons-le. Et maintenant, nous avons également un objectif décalé. Passons à autre chose dans la leçon suivante. 81. 7.05 Mélanger les poses de Bool: Nous sommes maintenant prêts à revenir au plan d'animation et à y travailler Cliquons sur le dossier Animations du lecteur et ouvrons le plan d'animation Maintenant, à l'intérieur d'ici, je veux que vous cliquiez sur le graphique d'animation. Nous sommes donc à l'intérieur d' ici. Comme vous pouvez le constater, nous avons déjà utilisé le décalage pour le support. Cependant, nous avons également utilisé l'autre option, le décalage de visée, pour l'accroupissement Nous n'avons utilisé que celui-ci pour le stand. Lorsque nous sommes accroupis, nous n'utilisons pas le bon décalage de visée. Pour ce faire. Cliquez avec le bouton droit de la souris et recherchez accroupi. Ce lecteur offset, moment nous sommes dans le, je vais juste les copier dans leur direction. Et copiez celui-ci au fur et à mesure que nous le branchons. Maintenant, c'est ce que nous avons. Mais le problème moment, c'est que je ne peux pas le brancher ici, car comme vous pouvez le voir, qu'une seule entrée. Nous devons trouver quelque chose qui réunisse ces deux éléments. La façon dont nous pouvons le faire est de cliquer avec le bouton droit de la souris et de rechercher des poses de mélange. Vous pouvez voir que nous pouvons mélanger ces deux poses en fonction de nombreux facteurs. Vous pouvez tous les voir. Cependant, ce dont nous avons besoin, c'est de mélanger les poses par un Vous pouvez voir qu'il existe ce que l' on appelle les poses de mélange par taureau. Cela vous permet de mélanger les poses à l' aide d'un lingot Si vous avez un lingot qui est vrai, il utilisera cette pose Si c'est faux, il va utiliser cette pose. Nous devons lui donner un lingot. Le lingot que nous voulons utiliser est vérifier si le joueur est accroupi ou non Si le joueur est accroupi, nous allons utiliser le décalage de visée pour l'accroupissement Si le joueur n'est pas accroupi, nous allons utiliser le décalage pour le stand Allons-y et découvrons que le lingot ici, si nous l'avons déjà fait maintenant, est accroupi et marche N'oubliez pas que nous les avons précédemment supprimés d'ici. Ils ne sont en fait pas utilisés pour le moment et ils se trompent. Supprimons le Is accroupissement et marche. N'oubliez pas que nous les avons changés avec l'état de mouvement ici. Attaquons celui-ci. Et partons d'ici et disons «   obtenez-en une copie ». Et maintenant, vous pouvez faire glisser le pointeur d' ici et dire dernier index, puis nous pouvons le brancher. Nous sommes en train de vérifier si le joueur appuie actuellement sur le bouton accroupi Nous pouvons faire glisser le pointeur à partir de là et dire égal si le dernier indice est égal à accroupi, ce qui signifie que le joueur est en train appuyer sur le bouton d'accroupissement, puis nous pouvons continuer et nous accroupir puis nous pouvons continuer et nous Maintenant, nous allons le brancher si c'est vrai, c' est-à-dire que le joueur est accroupi, nous voulons utiliser celui-ci où le décalage de visée est accroupi Cependant, si le joueur n' est pas accroupi, nous voulons utiliser celui-ci avec le support Allez-y, compilez-les et branchez-les ici. Compilez tout. Et je vais juste tout déplacer ici et les organiser. C'est bon, donc tout est organisé maintenant. Vous pouvez maintenant essayer de vérifier si cela fonctionne. Vous pouvez donc cliquer sur l'état du mouvement. Vous pouvez ajouter un tableau ici, ajouter un élément au tableau. Et vous pouvez simplement le mettre en position accroupie. Et tu peux voir à quoi ça ressemble. Alors maintenant, vous pouvez voir que cela fonctionne. Parce que si je le mets sur accroupi, c'est qu'il est accroupi. Si je le mets sur autre chose, il passe à l'autre. Maintenant, vous pouvez voir qu'il change, qu'il fonctionne correctement. N'oubliez pas de continuer et de le supprimer pour le moment. D'accord. Cela fonctionne donc correctement. C'est ainsi que vous mélangez les poses grâce à ce que l'on appelle les poses mixtes par intimidation. D'accord. Nous en avons donc un autre que nous devrons utiliser plus tard, car celui-ci n'est qu'un mouvement non armé Nous avons également besoin du mouvement du pistolet et du mouvement du fusil Vous pouvez donc voir que cela devient un peu plus complexe parce que nous devons créer tout cela pour le pistolet et le fusil Nous en avons besoin d'un autre appelé blend poses by enumeration. Mais pour l'instant, passons à la leçon suivante et découvrons le sujet. 82. 7.06 Mélanger les poses par Enum: Très bien, nous y revoilà. Cette fois, nous voulons utiliser celui-ci appelé blend poses by enumeration Si vous écrivez, cliquez et écrivez des poses de fusion ou des poses de fusion, vous verrez toutes celles qui commencent un E. En commençant par un E, il s'agit en fait d'une énumération Et ce ne sont que des énumérations créées par défaut dans le moteur Unreal Maintenant, créons plutôt notre propre énumération, permettez-moi de minimiser tout cela Allons à l'Enos. Permettez-moi de cliquer avec le bouton droit sur ce dossier, d' accéder à Blueprint et de créer une nouvelle liste d'énumération Mais appelons-le type d'arme. Allons-y et entrons dans l'énumération. Et vous pouvez désormais ajouter les types d'armes dont nous disposons. Nous avons le pistolet et le fusil, mais nous avons aussi ceux qui ne sont pas armés car j'ai également besoin de mouvements désarmés Je vais donc faire en sorte que les personnes soient désarmées pour commencer. Et nous pouvons en fabriquer un pour le pistolet et un pour le fusil Encore une fois, l'ordre dans lequel ils se trouvent n'a pas d'importance. Que ce soit comme ça, que vous les ayez créés ou comme ça, peu importe. C'est-à-dire cela ne veut vraiment rien dire. OK. Je vais juste en faire un pistolet ou un fusil non armés Allez-y et économisez, voici les armes dont nous disposons. Si vous avez d'autres armes, vous pouvez les ajouter. Mais pour l'instant, sauvegardons tout. Entrons dans le vif du sujet. Nous pouvons maintenant cliquer avec le bouton droit de la souris et rechercher des poses de mélange. Ensuite, vous pouvez rechercher l' énumération que vous venez de faire, le type d'arme, nous pouvons rechercher le type d'arme Et c'est ici. Et vous pouvez désormais le sélectionner. Maintenant tu l'as ici. Vous pouvez désormais mélanger les poses grâce à cette énumération Nous pouvons cliquer avec le bouton droit sur cette pose par défaut, puis vous pouvez sélectionner et ajouter une épingle pour les personnes désarmées et autres . Cliquez avec le bouton droit, sélectionnez le pistolet, cliquez avec le bouton droit de la souris, sélectionnez le fusil Vous avez maintenant des épingles pour tous les mouvements que vous avez, sorte que vous pouvez intégrer le mouvement non armé, le mouvement du pistolet et le mouvement du fusil Et vous devez insérer l' énumération pour pouvoir la modifier en conséquence OK, vas-y, sauvegarde tout. Maintenant, ce que nous devons faire ici, c'est revenir au joueur, car maintenant nous devons vraiment savoir ce que le joueur est équipé en ce moment Parce que si vous équipez un fusil, nous devons changer votre pose pour une carabine Si je vais dans la base de joueurs et que j' ajoute simplement une nouvelle variable que nous utiliserons plus tard, je vais appeler cela une arme équipée. Je vais faire de ce type variable le type d'arme. Nous utiliserons cette arme équipée plus tard lorsque nous définirons l'arme que le joueur a équipée. Et sauvegardons tout. Je pense que celui-ci sera reproduit plus tard. Maintenant, laissez-nous le reproduire afin que les autres puissent réellement voir de quelle arme vous êtes équipé Et revenons au plan d'animation. Accédez au graphique de l'événement à l'intérieur d'ici. N'oubliez pas que nous avons déjà la référence du joueur. Nous pouvons donc faire glisser le pointeur à partir d' ici, rechercher une arme équipée et obtenir cette variable. Maintenant, ce que nous pouvons faire, c'est faire clic droit pour en faire une variable, en l'appelant également arme équipée Allez-y, connectez-le. Je vais cliquer ici pour créer un nœud de reroutage, juste pour que les choses soient un peu plus organisées. Bien, maintenant que nous l'avons , allez-y et compilez. Revenons maintenant au graphique d'animation. Maintenant, nous pouvons brancher cette arme équipée ici, et nous laisser compiler. Maintenant, pour la pose par défaut, vous devez avoir une pose par défaut. D'habitude, ce que je fais, c'est intégrer le mouvement désarmé dans la pose par défaut Pour ceux qui ne sont pas armés, il faut brancher le même appareil. Cependant, vous ne pouvez pas vraiment le brancher deux fois comme ça. Vous devez en fait le copier-coller. Maintenant, pour que cela soit plus organisé, je veux vraiment me déconnecter. C'est pourquoi il est si agréable de prendre notes sur le cache, car vous n'avez pas à tout copier-coller. Ce que nous pouvons faire, c'est simplement le placer ici. Ensuite, je vais renommer celui-ci Unarmed Movement Je vais juste l'appeler Unarmed State Machine. Cache de machine à états non armé. N'oubliez pas que celle-ci s'appelait une machine d'État, une machine État non armée mise en cache Ils sont correctement branchés ici. Pour celui-ci, je vais faire glisser et dire cache et nouvelle pose du cache de sauvegarde. Pour celui-ci, je vais parler de mouvement non armé parce que c' est maintenant le mouvement non armé qui inclut également les décalages de visée Maintenant, nous pouvons simplement l' emporter ici et l'utiliser ici si vous recherchez un mouvement de bras, et non le mouvement désarmé de la machine d'État mis en cache Et maintenant, vous pouvez voir à quel point c'est facile et organisé. Nous n'avons pas vraiment besoin de copier tout cela et de le brancher ici encore et encore. Maintenant, nous pouvons simplement le copier-coller et l' utiliser également comme pose désarmée Maintenant, pour le pistolet et le fusil, nous devons les fabriquer Faisons-le simplement glisser, branchez-le ici, allez-y et compilez-le. Donc, ce que je peux faire maintenant, c'est cliquer sur l'arme d'équipement. Et disons que dans le jeu j'ai pris un fusil. Vous pouvez donc voir que cela change. Cependant, nous n'avons pas vraiment branché quoi que ce soit. Et c'est ce que dit cette note. Cela veut dire que la pose du pistolet et du fusil a été ignorée parce que rien n'est branché ici Mais comme vous pouvez le constater, cela fonctionne réellement. Et si vous le repassez en mode non armé, il revient au mouvement non armé Maintenant, ce qui nous manque, c'est qu'il nous manque le pistolet et les machines à fusils. Passons donc à la leçon suivante et faisons les plans d'animation des pistolets 83. Plan d'animation au pistolet 7.07: Bonjour et bon retour. Nous sommes maintenant prêts à passer à la machine à pistolets. Maintenant, nous avons ceux qui ne sont pas armés. Je vais le copier. Allez-y, cliquez sur Copier et contrôlez C et contrôlez à nouveau V. Et maintenant, nous l'avons. Je vais appuyer sur F deux pour renommer et je vais appeler cela mouvement du pistolet Maintenant, je vais entrer dans cette machine à états et ne pas oublier de modifier tous les mouvements au ralenti. Allons-y et changeons ça pour celui-ci. Si vous recherchez simplement un pistolet, n' avez pas déjà besoin de chercher Mets-les ici en bas. Et nous avons le pistolet utilisé. Faites-le glisser ici. Allez-y, supprimez celui-ci. Et tenez compte de la direction et de la vitesse du mouvement. Et allez-y, branchez-le. Retournez à la promenade, maintenant à la promenade. Supprimons-le. Cherchons le pistolet de randonnée ici. Assurez-vous simplement de faire glisser le pointeur dans le bon espace de fusion que vous avez créé et compilé. Maintenant, revenons en arrière et accroupissons-nous maintenant. Allez-y, supprimez celui-ci et pour le pistolet accroupi , faites-le glisser et inscrivez sens et la vitesse du mouvement Allez-y, branchez-le également. Compilez, revenez en arrière maintenant, nous les avons tous. Je ne pense pas que nous ayons besoin de changer quoi que ce soit en ce qui concerne les règles de transition, et ce n'est pas le cas en fait. Tout est correct maintenant. Maintenant, pour le saut, il faut continuer. Maintenant que le saut commence, cherchons le saut. Je dois utiliser celui pour le pistolet. Celui-ci est un pistolet Jump Start. Allez-y, supprimez celui-ci et branchez-le. Allons en l'air et voici le saut : un pistolet, supprimez celui-ci, branchez le Le dernier est un pistolet jump end et jump end, celui-ci est là et branchez-le également N'oubliez pas de modifier la règle de transition pour celle-ci, car elle indique toujours de démarrer sans arme Nous devons rechercher le rapport temporel et sélectionner celui du pistolet Et il sait automatiquement qu'il s'agit du pistolet parce que nous avons bloqué l'animation sur l'autre. Nous l'avons corrigé. Alors allez-y et sélectionnez celui-ci, le ratio et le pistolet. Et allez-y, supprimez celui-ci et branchez celui-ci à la place. N'oubliez pas que nous l' avons également ici. Double-cliquez à nouveau sur celui-ci, recherchez le temps restant pour le pistolet Jump End Supprimez celui-ci et ajoutez-le. Maintenant, compilez, sauvegardez tout. Laissez-nous faire ici, vérifiez simplement s'il y a quelque chose que nous avons oublié. Je ne pense pas que nous ayons plus rien ici. Maintenant que nous avons le mouvement du pistolet, nous pouvons faire glisser le pointeur d'ici et répéter « cache ». Nous pouvons appeler celui-ci Pistol State Machine haché , juste comme ça Et maintenant, il y a le mouvement du pistolet. 84. Plan d'animation de fusil 7.08: C'est vrai. La dernière chose qui nous manque, c'est le mouvement du fusil. Alors allons-y et copions le pistolet, ici Ted. Et renommons-le en Rifle Movements. Permettez-moi de revenir sur ce point. Double-cliquez plutôt sur le bouton inactif pour ce pistolet à usage unique. Permettez-moi simplement de supprimer tout cela. Descendez, je vais juste chercher un fusil qui sera beaucoup plus facile ici. Nous ne voyons que les espaces de mélange des fusils. C'est le fusil Un. Allez-y, inscrivez le sens et la vitesse du mouvement et branchez-le également. Revenons à la promenade. Et laissez-moi supprimer celui-ci. Branchez l' espace de mixage pour la promenade ou pour le fusil. Verrouillez-les. Juste comme ça. Même chose pour le accroupi. Allez-y, prenez celui qui est accroupi. Verrouillez-les encore une fois, comme ça. Même chose pour le saut. Démarrez, je vais chercher Jump et trouver celui qui correspond au fusil. Fusil Jump Start, celui-ci. Supprimez l'ancien. Placez-en un nouveau. Maintenant, pareil pour le saut. R, sélectionnez le saut, un fusil. Branchez ça. Il en va de même pour le jump end. Prenez un fusil Jump End et supprimez celui-ci. Branchez ça. N'oubliez pas de modifier à nouveau la règle de transition ici pour le ratio de temps de départ restant pour le fusil de démarrage. Allez-y, supprimez l'ancien. Sélectionnez celui-ci, et pareil pour celui-ci. Règle de transition, ratio du temps restant pour le fusil de saut. Supprimez l'ancien. Placez celui-ci à la place. Allez-y, compilez, sauvegardez tout. Et je pense que nous en avons terminé avec celui-ci également. Il suffit de vérifier rapidement, je pense que tout va bien. Revenons au graphique d' animation. Et à l'intérieur d'ici, frappons et disons cache à nouveau. Et renommez celui-ci en Rifle State Machine. D'accord, tu peux l'organiser un peu plus si tu le souhaites, mais pour le moment, tout est terminé. Allons-y et sauvegardons tout. N'oubliez pas de compiler également et de passer à autre chose. 85. 7.09 Finaliser le plan d'animation: OK, maintenant il est temps d'en finir. Il ne nous reste plus grand-chose, alors allons-y et finissons tout cela. Ce que nous devons faire maintenant, c'est également ajouter les décalages de visée Commençons par celui du pistolet. Je vais juste le traîner. Prends le pistolet ici. Nous devons maintenant utiliser cette pose de cache. Faisons un clic droit et recherchons le cache du pistolet. Prends celui-ci, le pistolet State Machine est en cache et utilise-le. Maintenant, nous devons faire la même chose ici. Nous devons cliquer avec le bouton droit de la souris et rechercher AO Rauch. Cherchez celui qui a le pistolet Am Offset Player Crouch Pistol Am Offset Player Crouch Allez-y et branchez-le également ici pour la direction de visée. Je peux simplement copier-coller cette variable. C'est maintenant correct. Je vais utiliser pour eux un pistolet à support offset. Prenez celui avec le lecteur Am Offset. Branchez dans le sens de visée, allez-y, prenez la même pose en cache et branchez-la également ici Vous en avez maintenant un pour le pistolet accroupi et un pour le pistolet debout, comme avant Utilisez ce mélange de poses de Bool. En fait, je vais juste copier tout ça. Nous n'avons pas vraiment besoin de l' écrire encore et encore. Alors vas-y et prends ça. Mettons celui-ci en position accroupie, c'est en fait toujours correct Branchons simplement le vrai. Si nous sommes accroupis, nous allons utiliser celui-ci. Si nous ne sommes pas accroupis, nous allons utiliser celui-ci. Allez-y, compilez. Et maintenant, je vais juste organiser ça un peu plus tard. instant, je veux juste le brancher parce que ceux-ci vont devenir un peu plus grands, tout comme celui-ci ici. Ce que je vais faire, c'est prendre ceci et enregistrer une nouvelle pose en cache, comme avant que vous ne l' appeliez unun movement Je vais l'appeler mouvement du pistolet, juste comme ça Et allez-y, branchez-les ici. Maintenant, je vais l'organiser comme avant. OK. Maintenant, c'est organisé. J'ai juste essayé de tout organiser. Et maintenant, nous avons le fusil ici. Nous pouvons simplement le déplacer vers le bas pour le moment. En fait, je vais déplacer le mouvement désarmé au-dessus du pistolet, comme ça Essayez d'être aussi organisé que possible, car lorsque vous créez un grand jeu, cela va être vraiment compliqué car vous aurez tellement de choses à faire Et c'est toujours agréable d'essayer de rester organisé pour la dernière fois, qu' agisse du pistolet ou du fusil Encore une fois, comme avant, je vais cliquer avec le bouton droit de la souris pour rechercher AO Rauch et choisir celui qui correspond au fusil Et encore une fois, tenez-vous debout et choisissez à nouveau celui qui convient au fusil. Maintenant, nous pouvons prendre la mitrailleuse d' État, la machine d'État mise en cache, la brancher ici, prendre la direction et la brancher ici Nous pouvons maintenant le coller également ici. Branchez-le sur ces entrées. Maintenant, tout va bien. Encore une fois, comme avant, je vais tout copier. Le mélange qui fait peur à ceux d'ici aussi. Allez-y, collez-le. Connectez le accroupi. Si vous êtes accroupi, c'est ce que vous faites Si vous n'êtes pas accroupi, vous êtes le faire, c'est correct Et nous pouvons faire glisser le pointeur d'ici et répéter « Cache ». Nous pouvons enregistrer une nouvelle pose de cache et appeler ce mouvement de fusil «   Caché en cache » comme ça OK, tout semble correct. Et laissez-nous compiler. Et je vais réorganiser ça comme avant. Elle est désormais organisée. Et je vais prendre tout ça et le placer juste sous celui du pistolet, comme ça ici OK ? Essayez de le faire le mieux possible. Maintenant, nous l'avons ici. Nous avons celui pour les désarmés, nous avons celui pour le pistolet, et nous avons aussi celui pour le Ce que nous pouvons faire maintenant, c'est tout compiler et tout enregistrer pour nous assurer que rien ne tombe en panne avec le pistolet Maintenant, nous pouvons faire glisser et dire que nous pouvons utiliser. Maintenant, celui-ci utilise simplement le mouvement, car à partir du mouvement, nous déterminons si nous devons utiliser le accroupi ou le support À partir de cette recherche de cache, n'oubliez pas de sélectionner le mouvement du pistolet mis en cache, et non le mouvement de la machine à états Ensuite, pour le fusil, nous pouvons faire glisser et rechercher à nouveau le cache. Et choisissez le seul mouvement de fusil mis en cache. Allez-y, organisez-le du mieux que vous le pouvez. Je vais également le faire légèrement glisser vers le bas. Ça a l'air un peu mieux, peut-être quelque chose comme ça. Et maintenant, compilons. Et maintenant, vous pouvez voir que la note a disparu parce que nous avons tout branché Et si je clique sur l'arme équipée et change en pistolet, elle fonctionne Si je le change en fusil, il fonctionne. Si je le repasse à Unarmed, cela fonctionne également. Désormais, vous pouvez également modifier le temps de mélange si vous le souhaitez. Nous pouvons donc voir si vous les augmentez toutes et si vous essayez de les changer Maintenant si vous passez au pistolet et au fusil, vous pouvez voir les choses changer instantanément Ce que vous pouvez faire, vous pouvez également augmenter cette durée. Par exemple, je peux le porter à deux. Il se mélangera en fait beaucoup plus lentement. Je me souviens de compiler, sinon cela ne fonctionnera pas. Compilez puis passez au pistolet. Vous pouvez maintenant voir qu'il faut beaucoup de temps avant que ces poses ne changent . Tu peux essayer de jouer avec ça. Par exemple, 0,0 0,3 peut aller de deux à l'extrême. Laissez-nous compiler et sélectionnons le fusil à pistolet. C'est peut-être beaucoup mieux. Je pense que c'est encore trop lent. 0,20 0,20 0,2 Laissez-nous compiler. Laissez-nous sélectionner le pistolet à fusil non armé. Il suffit de compiler, en s'assurant que cela fonctionne correctement. Je pense que c'est beaucoup mieux. 0,2 au lieu de 0,1, c'est beaucoup mieux. Maintenant, vous pouvez voir que nous en avons terminé avec le mouvement, et peut-être que nous pouvons placer celui-ci ici au milieu. C'est le dernier. Et maintenant, tout fonctionne. Nous pouvons donc toujours changer cette arme équipée plus tard dans notre base de joueurs lorsque nous pillons des armes Et il définira automatiquement dans le graphique des événements cette variable et elle changera dans le graphique d'animation. Mais pour l'instant, pour ce qui est de l'arme équipée, je vais simplement la placer sur un arme par défaut, tout compiler, tout enregistrer, et nous sommes maintenant prêts à passer à autre chose. 86. 8.01 Importer les armes: Allons-y maintenant et importons les ressources en armes. Pour cela, revenez au lanceur Epic Games. Et à l'intérieur d'ici, allons au marché. Sur le marché, passons à Parcourir et à Weapons In Weapons Vous devez cliquer sur les options gratuites pour que nous puissions obtenir des ressources gratuites que nous pourrons utiliser pour le cours. J'ai téléchargé celui-ci appelé FPS Weapon Bundle. Si vous cliquez dessus, continuez et cliquez sur Télécharger. Si vous ne l'avez pas encore téléchargé, vous pouvez cliquer sur Ajouter au projet. Une fois le téléchargement terminé, cliquez sur Afficher tous les projets, puis sélectionnez notre propre projet, Counterstrike Et allez-y, sélectionnez la version compatible avec la dernière version, celle-ci. Peu importe que cette version avec laquelle elle est compatible, cela ne nous posera aucun problème. Allez-y, sélectionnez-le et accédez à Ajouter au projet. Cela va ajouter cela à un projet. Et cela peut prendre un certain temps. Si c'est la première fois que tu le fais, je vais y retourner. Je vais télécharger celui-ci également car ce pack ne contient aucun pistolet Et je veux aussi fabriquer un pistolet, bien sûr. Vous savez donc tirer avec des pistolets et ainsi de suite Il ne s'agit donc pas que de fusils. Cliquons sur celui-ci. Et téléchargeons à nouveau celui-ci. Armes militaires Doc. Allez-y, téléchargez-le. Vous pouvez également utiliser celui-ci, argent militaire à la place, mais je vais juste utiliser celui-ci. Allez-y, téléchargez-le et ajoutez-le à nouveau au projet, cliquez sur Afficher tous les projets, sélectionnez notre projet et sélectionnez la dernière version. Et ajouter au projet également. Ensuite, vous pourrez voir qu'une fois que c'est terminé et que je pourrai le fermer, vous pouvez voir à l'intérieur de notre projet que nous avons maintenant le bundle d'armes FPS et nous avons également le document sur les armes militaires. Et avant de faire quoi que ce soit, je vais les sélectionner tous les deux , puis les faire glisser dans le dossier Marketplace. Et sélectionnez Déplacer ici. Et celui-ci va prendre un certain temps, donc je vais passer à autre chose jusqu'à ce qu' il soit terminé. C'est bon. Maintenant qu'ils ont été déplacés, et comme vous pouvez le voir, dans le dossier Marketplace, j'ai maintenant le dock des armes militaires et le pack d'armes FPS. Mais comme vous pouvez le voir à l'extérieur, j'ai toujours ce dossier de bundle d'armes FPS. Et cela pourrait aussi vous arriver . Vous pouvez voir qu'ils sont vides et si j'appuie sur Supprimer sur mon clavier et que je sélectionne Supprimer, cela ne sera pas supprimé. Et cela se produit parfois dans un vrai moteur. Donc, ce que je fais, j' enregistre généralement le projet et je le ferme. Ensuite, j'ouvre le fichier de projet, pour qu'il se trouve à l'intérieur, le Counter Strike. Ensuite, j'ouvre le dossier de contenu , puis je supprime ce bundle FPS. Assurez-vous donc que tous les fichiers se trouvent déjà sur le marché. Vous pouvez donc voir ici que le bundle FPS est vide et qu'il n'y a rien dedans. Je ne sais pas pourquoi il ne supprime pas pour une raison quelconque. Alors allons-y et supprimons ce dossier. Ensuite, je peux aller de l'avant dans la bibliothèque et exécuter à nouveau mon projet. Et il devrait être supprimé maintenant, comme vous pouvez le voir ici, une fois que je suis de nouveau dans mon projet, le dossier disparaît parce que nous venons de le supprimer. Et dans le dossier Marketplace, nous avons le pack d'armes FPS et le document sur les armes militaires. 87. 8.02 Paramétrer l'arme: Maintenant que nous avons importé les armes, allons-y et installons-les. Cliquez ici avec le bouton droit de la souris dans le dossier Blueprint. Créons un nouveau dossier, nous appellerons armes. Faisons un clic droit sur celui-ci et définissons une nouvelle couleur pour ce dossier. Encore une fois, ouvrons ce dossier, cliquez avec le bouton droit de la souris, accédez à la classe Blueprint Pour celui-ci, nous allons simplement créer un acte simple. Parce qu'une arme n' est qu'un Ta statique présent dans le monde. Ce n'est pas un pion ou un personnage que vous pouvez contrôler. Et ce n'est pas un de ceux-là non plus, c'est juste un acteur. Appelons cela une base d'armes BP . Encore une fois, je vais créer une classe de base. Et à partir de celui-ci, nous pouvons écrire, cliquer et sélectionner Create Child Blueprint Class Pour celui-ci, je vais fabriquer un AK 47, donc nous pouvons l'appeler PK 47 Ensuite, vous pouvez cliquer à nouveau avec le bouton droit de la souris et créer une classe de plan enfant pour celle-ci Appelons-le BP M41. Voilà l'autre arme. Le dernier est un pistolet. Nous pouvons cliquer avec le bouton droit de la souris sur Créer une classe de plan pour enfants et l'appeler pistolet BP Allons-y et sauvegardons tout. Ouvrons d'abord la base d'armes, car nous devons d'abord travailler à l'intérieur. Ici, nous avons besoin d'un nouveau composant. Le composant dont nous avons besoin est soit un maillage statique, soit un maillage squelettique, car nous devons ajouter le modèle à trois D pour l'arme. Maintenant, si vous cliquez dessus et recherchez un maillage, nous avons soit le maillage squelettique, soit le maillage statique. Si vous ne savez pas, la différence est que le maillage statique n'est qu'un modèle statique en trois D sans aucune animation. Et nous avons un maillage squelettique qui est un modèle en trois D avec des animations. Si vous y retournez, en fait, nous devons vérifier ici les armes du marché, ce qu'elles proposent, comme si vous ouvriez le pack d'armes du FPS, vous ouvriez les armes et vous ouvriez les mailles Et ouvrons celui-ci K pour sept. Et vous pouvez voir que c' est un maillage squelettique. Si vous voyez cette ligne rose ou si vous pouvez également regarder en bas, cela indique un maillage squelettique. Nous devons en fait l'ajouter sous forme de maillage squelettique. Nous pouvons également consulter l'autre dossier pour nous assurer que document sur les armes militaires ouvre armes et qu'il se présente également sous forme de maillages squelettiques Vous pouvez voir ici qu'ils ont des animations. Ils ont des animations de rechargement, des animations de tournage, etc. Ces armes ont des animations. Si nous revenons à la base d'armes qui se trouve à l'intérieur d'ici, cliquons sur Ad et cherchons un maillage squelettique. Et sélectionnez-le ici. Et appelons-ça une arme. Maintenant, pour cette arme, nous avons également besoin d'une sphère de collision. Parce que nous devons interagir avec l'arme. Par exemple, si elle est enfouie dans le sol, nous devons aller chercher cette arme et la piller C'est pourquoi nous avons besoin d'une sphère de collision afin de pouvoir entrer en collision avec elle et effectuer certaines actions Si vous recherchez simplement une collision, nous pouvons voir que nous pouvons faire une collision entre une boîte, une collision avec capsule ou une collision avec une sphère. Maintenant, ils sont identiques, c'est juste la forme qui est différente. Je vais donc simplement sélectionner une collision de sphères pour celle-ci. Et je vais agrandir un peu le rayon de cette sphère . Maintenant, cela n'a pas d'importance pour le moment, car nous allons l'ajuster plus tard. Lorsque nous essayons les armes à l'intérieur du niveau, nous pouvons déterminer à quelle distance le joueur peut piller l'arme, etc. C'est ainsi que vous le contrôlez ici. Mais pour l'instant, je vais juste le mettre à un nombre aléatoire et continuer à tout enregistrer. Fermons maintenant la base d'armes et passons aux plans pour enfants Si tu ouvres des armes. Et ouvrons l'AK 47 ici. Maintenant, pour ce qui est de l'arme, si vous cliquez dessus, sélectionnons le maillage squelettique. Si vous recherchez simplement, je ne sais pas pourquoi il s'appelle KA 47, mais vous pouvez le rechercher trouver et sélectionner celui-ci. Et ouvrons le second. Et tu peux cliquer sur l'arme, ouvrir celle-ci ici et rechercher R quatre. Vous pouvez le sélectionner ici, puis ouvrir le dernier, le pistolet, cliquer sur l'arme puis sélectionner ou simplement rechercher un pistolet et sélectionner celui-ci Maintenant, vous pouvez voir que toutes les armes sont à l'intérieur. Allez-y et compilez tous les plans. Mais comme vous pouvez le voir ici, ils tournent tous dans cette direction. C'est en fait la mauvaise direction, car dans Unreal Engine, l'axe X est l'axe avant Et vous pouvez voir ici que le point de pivot rouge est l'axe avant. Les armes doivent tourner dans cette direction. Ici, ils prennent tous le mauvais chemin. Comme vous pouvez le constater, nous devons tous les tourner au lieu de les tourner un par un comme ça. Et nous devons aller ici et le transformer également. Faisons autre chose en fait. N'oubliez pas que nous avons une base d'armes qui est la classe de plan parent Tout ce que vous ferez ici s' appliquera à tous les enfants. Si vous cliquez sur l' arme, que vous prenez l'outil de rotation et que vous le faites pivoter de -90 degrés, vous pouvez procéder à la compilation Regardez maintenant le pistolet M quatre, l'AK. Ils tournent tous dans le bon sens, maintenant c'est dans la bonne direction qu'ils devraient tourner. Allez-y, sauvegardez tout. Je crois que c'était pour tout. Maintenant que c'est fait, faisons-les simplement glisser dans le niveau et voyons à quoi ils ressemblent. Je vais juste les séparer un peu. Je vais tous les sélectionner , puis les déplacer vers le haut dans le niveau. Encore une fois, vous pouvez cliquer sur G pour masquer toutes les icônes, et vous pouvez y jeter un œil et tout s'annonce bien. Pour l'instant, allez-y sauvegardez tout, et passons à autre chose. 88. 8.03 Physique habilitée: Comme vous pouvez le voir ici, lorsque je clique sur jouer, toutes les armes flottent. Si j'y vais, ils sont vraiment du côté des terroristes. Si je clique sur jouer et que je sélectionne des terroristes, nous pouvons voir que toutes les armes flottent. Nous voulons qu'ils tombent par terre. Au lieu de les faire flotter comme ça. Nous devons activer la physique. Si nous revenons au plan et avant cela, je vais réduire le nombre de joueurs que j'espionne sur le serveur de leçons OK, passons aux armes, ouvrons la base d'armes. À l'intérieur, tu cliques sur l'arme. Vous pouvez voir quelque chose appelé Simuler la physique ici sous Physique Simuler la physique. Cependant, pour une raison quelconque, je ne peux pas sélectionner et je ne sais pas pourquoi. Mais ce que vous pouvez faire, c'est simplement supprimer ces événements pour le moment. Dans le Begin Play, faisons-le ici. Prenons l'arme. Faisons glisser le pointeur à partir d'ici. Si vous écrivez simplement le même nom que que vous pouvez voir ici, vous cliquez sur Arme. Cela s'appelle Simulate Physics. Si vous faites glisser le pointeur d'ici et que vous écrivez simplement Simulate, vous pouvez voir qu'il s'agit de celui-ci appelé Set Simulate Physics. Si vous le sélectionnez ici, que vous le connectez et que vous le réglez sur true pour qu'il simule la physique et que vous continuiez à compiler cela ne fonctionne toujours pas car la collision est fausse Si vous cliquez sur l'arme et que vous descendez jusqu'à la collision, vous pouvez voir qu'il n'y a pas de collision. Si vous cliquez sur jouer maintenant et que vous sélectionnez le terroriste, vous pouvez voir qu'il ne tombe pas encore. Ils volent toujours dans les airs. Fermons-le et pour la collision, changeons-le en personnalisé. Pour l'instant, je vais juste cliquer sur Ignorer la collision pour tout ignorer pour le moment. Je vais ici pour éviter toute collision. Allez-y et sélectionnez uniquement la physique. Nous voulons juste de la physique. Ce que signifie une requête. Cela signifie si nous pouvons interagir avec l'arme ou non. Nous n'en avons pas vraiment besoin car notre sphère de collision n'est en fait qu'une requête. C'est comme si nous étions en collision ici. Nous sommes en train d'agir avec cette sphère de collision. Il s'agit d'une collision et vous pouvez interagir avec elle sans avoir recours à la physique. Mais pour ce qui est de l'arme, je ne le veux pas, car nous avons déjà la sphère de collision pour celle-ci, nous voulons simplement activer la physique. Alors je vais tout ignorer. Cependant, vous devez bloquer la statique et la dynamique du monde car c'est le sol maintenant. Si vous ignorez tout, vous pouvez voir si je clique sur jouer maintenant et que je sélectionne le terroriste, les armes ont disparu. C'est parce que tu n'as pas bloqué le sol. Ils tombent par terre. Nous devons bloquer le terrain, le monde statique et dynamique. Allez-y, compilez cliquez sur jouer et sélectionnez des terroristes. Encore une fois, je vais les prendre tous et les avoir ici plutôt comme ça. Il suffit de les placer au milieu pour que je puisse les voir plus rapidement. Si je clique sur jouer, si je passe à Terrorist, vous pouvez voir qu'ils sont maintenant bloqués par le sol et qu'ils tombent par terre, d'accord. Maintenant, vous pouvez également voir que si je les croise en tant que terroriste ou en tant que pion, rien ne se passe vraiment et c' est parce que je ne suis pas en collision avec Maintenant, si vous voulez que le pion entre en collision avec eux, je ne vais pas le faire dans le cadre de ce projet Toutefois, si vous le souhaitez, vous pouvez également choisir que étang que vous contrôlez les bloquera également. Cela signifie que vous pouvez désormais interagir avec eux en tant que pion afin que nous puissions les percuter et que la collision fonctionne également Vous pouvez également le faire si vous le souhaitez. Cependant, pour ce projet, je ne vais pas vraiment le faire, je vais l'ignorer pour le moment. Maintenant, la physique est activée, et nous simulons la physique pour toutes les armes Allons-y, compilons et sauvegardons tout, et passons à autre chose. 89. 8.04 Acteurs de réplication: Auparavant, nous répliquions les variables, mais vous pouvez également répliquer les acteurs du plan Et nous devons le faire pour qu'ils apparaissent correctement pour tous les clients. Si vous ouvrez la base d'armes et que vous trouvez ici les valeurs par défaut de la classe, vous pouvez voir qu'elle est également appelée répliques Et vous devez sélectionner cette option si vous souhaitez montrer les informations correctes du serveur à tous les clients affichant ces armes, ainsi que le mouvement des armes, etc. Vous devez donc appuyer sur les répliques. Cela fonctionne donc en multiplicateur. Vous devez également reproduire le mouvement, pour vous assurer qu'il gêne pas non plus C'est la seule chose que vous deviez faire parfois, si vous l'oubliez, parfois vous créez du code et vous vous rendez compte que cela ne fonctionne pas pour les clients et vous ne savez pas pourquoi cela fonctionne. Donc, mais c'est parce que vous devez également intégrer un acteur que vous créez, par exemple, c' est la base d'armes. Et vous devez sélectionner des répliques ainsi que reproduire le mouvement Cela fonctionne pour le multijoueur. Allez-y, sauvegardez tout. Comme vous pouvez le constater, puisqu'il s'agit du plan pour les parents, il est également reproduit désormais pour tous les enfants Allez-y, sauvegardez tout, et passons à autre chose. 90. 8.05 Chevauchement d'arme: Nous sommes maintenant prêts à organiser certains événements lorsque nous utilisons l'arme. Pour mieux voir les choses, vous pouvez ouvrir la base d'armes pour le moment Si vous cliquez sur la sphère, vous pouvez cliquer sur ce jeu caché. Tu peux le supprimer. Et si vous compilez, vous pouvez voir la sphère de collision dans le jeu. C'est agréable à voir ici. Vous pouvez voir à quelle distance vous pouvez interagir avec l'arme. Vous pouvez toujours l'agrandir ou réduire en fonction du jeu que vous créez. Mais c'est toujours agréable de voir l'intérieur d'ici. Faisons quelques événements d'interaction. Ce que nous voulons faire ici, dans la base d'armes, cliquer sur la collision de sphères en bas. Si vous allez ici dans le panneau de détails, vous pouvez voir celui-ci intitulé Component Begin Overlap. Si vous cliquez sur le signe plus, l' événement sera créé pour vous. Maintenant, il indique ce qui doit se passer chaque fois que vous vous retrouvez face à cette collision de sphères ? Pour celui-ci, je dois d'abord vérifier si c'est le joueur qui entre en collision avec lui Parce que si vous avez des ennemis qui courent partout ou si quelque chose d'autre entre en collision avec eux, cela déclenchera ce code Je veux m'assurer que seul le joueur peut interagir avec celui-ci. L'autre acteur est celui qui interagit avec cette sphère de collision. Je peux directement depuis cet autre acteur et dire que l'acteur a un tag, puis je peux sélectionner cette fonction ici. Et ce que dit cette fonction , c'est que si l'acteur qui interagit avec cette collision de sphères possède cette balise spécifique, je peux lancer le code. Je peux créer une succursale ici. Si c'est vrai, le joueur possède ce tag que nous sommes sur le point d'écrire. Les événements peuvent déclencher ici le tag que nous devons écrire ici. Nous devons attribuer un tag au joueur. Si vous rouvrez simplement le joueur, la base de joueurs ici, à l'intérieur d' ici dans la classe par défaut Si vous recherchez un tag dans le panneau de détails, vous pouvez voir celui-ci sous acteur. Ce n'est pas sous étiquette. Tu dois t'assurer que c'est sous-acteur. Et vous pouvez voir les tags. C'est ce qu'on appelle Actor Has Tag. Il faut que ce soit sous la direction de l'acteur. Si vous cliquez sur la clause, je peux simplement l'appeler un joueur. Nous avons maintenant ajouté une balise ici pour cette clause de plan. Nous avons ajouté le tag player. Ce que nous pouvons faire, c'est aller à la base d'armes et simplement demander si cet acteur a le tag player. Si c'est le cas, nous pouvons désactiver ces fonctions. Maintenant, cela n'est vrai que pour les joueurs de la base de joueurs. Ils ont le tag player. Et cela s'appliquera à la fois au terroriste et au contre-terroriste, car encore une fois, il s'agit de la clause directrice principale Ouvrons ici. Maintenant , en cas de collision ou de chevauchement de composants, vous devez toujours vous assurer faire passer par le serveur pour éviter toute triche À partir de là, glisser-dire, switch a autorité , puis nous pouvons écrire le code à partir de cette autorité ici, savoir le serveur. Assurez-vous toujours que vous exécutez ce code via le serveur. Parce que si vous ne le faites pas, disons que le client est là et qu' il triche d'une manière ou d'une autre, qu'il a téléchargé un logiciel, qu'il peut réellement interagir avec l'arme même s'il est là à la faire exécuter sur le serveur Le serveur vérifie si le joueur interagit réellement avec lui ou non. OK, avec cet autre acteur, ce que nous pouvons faire, c'est aussi faire glisser. Maintenant, nous savons que c'est le joueur et maintenant nous le faisons passer par le serveur. Nous pouvons faire glisser le pointeur à partir d'ici et dire « obtenir la référence du joueur », car n'oubliez pas que c'est le joueur qui interagit avec lui. Et nous avons également fait en sorte que le joueur F soit accessible depuis l'interface. Plus tôt, nous avons la référence des joueurs, nous pouvons donc procéder à la connexion. Double-cliquez ici pour rediriger les notes et les rendre plus propres Juste comme ça, Dieu et compilez. Et maintenant, nous pouvons réellement interagir avec elle. Maintenant, pour voir si c'est correct, vous pouvez faire glisser le pointeur d'ici et écrire une chaîne d'impression. Vous pouvez peut-être y connecter ce lecteur . Allez-y et voyez si c'est une bonne idée. Si vous cliquez sur jouer et que vous sélectionnez le terroriste, ne sommes donc pas de l' autre côté de la carte. Maintenant, si je vais ici et que j'interagis avec lui, vous devriez voir qu'il est écrit ici, BP Terrorist. Maintenant, c'est exact, nous interagissons avec lui. Tout fonctionne, alors allez-y , supprimez-le pour le moment, compilez et passons à autre chose. 91. 8.06 Réglage du type d'arme: Cependant, avant de continuer, je dois ajouter le type d'arme à chaque arme. Et c'est agréable à utiliser plus tard, car il est toujours bon de savoir si l'arme que vous pillez est un fusil ou un pistolet Nous en aurons besoin plus tard pour l'inventaire, afin de ne pas piller plusieurs fusils, plusieurs pistolets, Vous pouvez bien sûr le faire dans votre propre jeu, mais aussi vérifier, par exemple, que votre propre jeu, mais aussi vérifier, par exemple, vous ne pouvez pas piller trois fusils et autres objets de ce genre Vous devez donc savoir si c'est un fusil ou un pistolet que vous êtes en train de piller, car pour le moment, nous n'avons aucune idée de ce que nous pillons, nous interagissons simplement avec Ce que nous pouvons faire, c'est ici , dans la base d'armes. En fait, avant de le faire, passons aux énumérations Et nous avons déjà celui-ci appelé type d'arme, en fait, nous avons déjà celui-ci. Revenons à la base d'armes et ajoutons-la ici. Cliquez sur le signe plus dans les variables et écrivez simplement le type d'arme ici. Pour le type de variable que vous pouvez rechercher par type d'arme, voici notre énumération Sortez, sélectionnez-le, cliquez compilez et enregistrez le tout. Ce qui est cool, c' est que vous l'avez ajouté à la base d'armes, qui est la classe mère de ces plans d'armes est vraiment bien, c'est que si vous ouvrez l'AK 47 maintenant et que vous cliquez sur les valeurs par défaut de la classe, vous pouvez maintenant voir le type d'arme variable et sélectionner de quel type d'arme il s'agit Si vous ajoutez des variables à la classe parent, elles sont utilisables dans les classes pour enfants. Vous pouvez voir maintenant si j' ouvre le 44 ou le pistolet, je clique sur les valeurs par défaut de la classe, je peux voir les variables de la classe parente Tout ce que vous ajoutez ici peut également être appliqué à tous les enfants. Maintenant, en cliquant sur l'AK, je peux sélectionner le type d'arme qui doit être un fusil. Je peux compiler maintenant. Je peux également passer aux quatre sélectionner le type d'arme qui doit être un fusil. Si j'ouvre le pistolet, je passe à la classe par défaut, je clique ici et je sélectionne le pistolet en fonction du type d' Allez-y et compilez tous ces plans. Maintenant, nous pouvons les sauver. Oui, maintenant nous savons quel est le type d'arme pour chacun d'entre eux. C'est un pistolet, c'est un fusil. Et c'est aussi un fusil. Et nous devons le faire pour savoir ce que nous sommes en train de piller. 92. 8.07 Vérifier si le joueur a l'arme: Créons maintenant un inventaire des armes pour le joueur et vérifions si le joueur possède déjà l'arme. Parce que ce que j'essaie de faire, c'est si le joueur interagit avec l'arme, il doit vérifier s' possède déjà l'arme ou non Si le joueur possède déjà l'arme, il ne peut pas la récupérer Cela ne leur permettra de piller le fusil que s'ils n'en ont pas déjà un Et ils vont piller le pistolet s' ils n'en ont pas déjà un Allons-y dans la base de joueurs et à l'intérieur d'ici, cliquons sur le signe plus. Je vais créer une nouvelle variable appelée Inventaire des armes. Ici, nous cherchons simplement le type d'arme ou la base d'armes, car nous devons ajouter les armes à cet inventaire, elles doivent correspondre au type de base d'armes. Et allez-y et sélectionnez la référence de l'objet. Maintenant, puisqu'il s'agit d'un inventaire, permettez-moi de cliquer sur le X ici. Comme il s'agit d'un inventaire, nous devons le remplacer par une variable unique par un tableau. N'oubliez pas qu'un tableau est comme une boîte dans laquelle vous ajoutez des éléments. Nous devons ajouter les différentes armes que vous avez pillées. Tu peux voir si je clique sur le signe plus. Maintenant, je ne peux pas sélectionner car il s'agit de la classe parent. Et nous ne pouvons pas vraiment simplement ajouter des éléments ici automatiquement. Mais vous pouvez voir que vous pouvez ajouter le fusil et le pistolet pendant le jeu Vous pouvez ajouter plusieurs armes dans cet inventaire. Mais pour nous, nous voulons ajouter, par exemple, un fusil et un pistolet Et tu peux avoir un fusil de chasse et ainsi de suite pour ton jeu. Mais pour l'instant, nous n'avons que le fusil et le pistolet. Allez-y et supprimez-le pour le moment. C'était juste un exemple. Revenons à la base de joueurs. Maintenant, à partir de la base de joueurs, puisque nous avons déjà la référence, nous pouvons faire glisser le pointeur d'ici et rechercher l'inventaire des armes et nous pouvons obtenir ce tableau. Maintenant, pour ce tableau, nous voulons parcourir l'ensemble de l' inventaire et vérifier si le joueur possède un fusil que nous pouvons tirer d'ici et dire pour chaque boucle avec frein. Et vous pouvez continuer et sélectionner cela. Vous pouvez maintenant voir les armes pendant cette rotation, si vous maintenez la souris dessus. Il s'agit désormais d'un élément unique. C'est la base d'armes BP. Il va prendre toutes les armes contient, parcourir le code, parcourir ce tableau, et vous pourrez en faire quelque chose. Maintenant, nous essayons de vérifier si le joueur possède déjà l' arme avec laquelle il essaie d'interagir. Ce que nous devons faire, c'est prendre chacune des armes de l' inventaire que nous devons emporter d' ici et vérifier leur type d'arme. N'oubliez pas que vous venez de créer ce type d'arme, vous pouvez donc l'appeler ici. Maintenant, il parcourt chacun d'eux en boucle. Vous choisissez le type d'arme, vous demandez simplement ici, faisant glisser le pointeur et en disant « égal », si le type d'arme figurant dans votre inventaire est même que le type d'arme que vous essayez de piller Et nous pouvons créer une branche, si c'est correct, alors vous ne pouvez pas piller l'arme Nous devons le faire plus tard pour que vous ne puissiez pas piller l'arme. Cependant, s'il est faux, nous pouvons réellement le piller C'est comme ça que tu le fais. Nous devons maintenant reproduire celui-ci, car le client a également besoin de voir ces informations, type d'arme que vous possédez Je vais sélectionner le répliquer. Allez-y, compilez et enregistrez tout. Maintenant, vous pouvez voir ici que nous faisons l' inventaire des armes. Nous essayons de vérifier si le joueur possède déjà l' arme. Nous prenons le type d'arme dont l'arme se trouve dans l'inventaire. Et nous vérifions si ce type d'arme est le même que celui que nous essayons de piller Si c'est exact, nous ne pouvons pas piller l'arme car nous l'avons déjà dans l'inventaire Si c'est faux, nous pouvons piller l'arme. Ok, celui-ci avec break, on pourra l'utiliser plus tard. Je peux expliquer ce que cela signifie, mais pour le moment, nous pouvons tout enregistrer et passer à la leçon suivante. 93. 8.08 Piller l'arme: Maintenant, allons-y et permettons au joueur de piller l'arme Maintenant, nous avons vérifié que l' arme est dans l'inventaire. Si c'est vrai, allons-y d'abord dans la base de joueurs et fabriquons un nouveau lingot, que j' appellerai arme à butin Je vais le changer en lingot. Modifions-le en une variable unique au lieu d'un tableau. Compilons. Maintenant, celui-ci sera vrai si le joueur parvient à piller l'arme Et ce sera faux si le joueur ne le peut pas. Ce que je vais faire, c'est le mettre par défaut. Le joueur peut donc piller l'arme par défaut, sauf si nous trouvons ici dans l'inventaire que le joueur possède déjà une arme par défaut Allez-y et réglez-le sur true. Sauvegardons tout et allons à la base d'armes maintenant. Maintenant, ce que nous pouvons faire, c'est nous séparer à nouveau de ce joueur et rechercher des lingots d'armes qui peuvent être Nous allons le configurer ici. Si nous trouvons cette arme que nous essayons de piller, si nous la trouvons dans l'inventaire, nous la retrouverons défectueuse C'est vrai par défaut, mais nous allons régler les erreurs pour que le joueur ne puisse pas récupérer l'arme si nous la trouvons réellement dans l'inventaire Cette boucle ne le trouve pas dans l'inventaire du joueur, c'est juste une faute pour tous les objets qu'il recherche. À la fin, lorsque la boucle est terminée, celle-ci est toujours vraie. Si nous n'avons trouvé aucune arme, c'est toujours vrai. Nous pouvons donc aller de l'avant et piller l'arme que nous pouvons emporter dans celui-ci Encore une fois, je peux chercher une arme à butin. Selon que cela est vrai ou faux, nous pouvons effectuer certaines actions ici une fois que c'est terminé. Tout d'abord, il va juste parcourir les objets en boucle. Ensuite, nous allons vérifier si cette arme capable de piller est désormais fausse ou vraie Maintenant, je vais organiser ça un peu. Je vais ajouter un nœud rocheux arrière ici et le brancher ici. Au lieu de cela, si c'est vrai, si le joueur peut réellement piller l'arme, allons-y dans la base de joueurs et descendons ici Je vais écrire click et créer un nouvel événement personnalisé. Appelons à nouveau cela une arme à lot unique. Je vais juste le faire passer par le serveur. Assurez-vous simplement qu'il fonctionne déjà sur le serveur. Parce que tu te souviens que tu le fais passer par l'autorité. Il est déjà en cours d' exécution sur le serveur. Cependant, j'aimerais juste le faire cette façon pour rester constant. Vous pouvez simplement en écrire un pour ce serveur tout de suite. Vous n'êtes pas obligé de le faire car nous sommes déjà en train de parcourir le serveur pour vous. Vous pouvez simplement utiliser celui-ci si vous le souhaitez, mais j'aime juste rester cohérent avec mon code. Je vais le faire passer par le serveur ici. Encore une fois, je vais faire glisser le pointeur de celui-ci et passer par le serveur comme ceci. Alors je vais écrire mon code ici. Encore une fois, vous pouvez simplement écrire un code ici si vous le souhaitez, mais à l'avenir, si vous ne l'exécutez pas via le serveur, vous devrez le faire par ici. Maintenant, nous l'avons écrit. Maintenant, ce que nous voulons faire lorsque nous pillons l'arme, nous voulons simplement ajouter cette arme pillée à l'inventaire Nous prenons cet inventaire d'armes et nous disons «   set array element ». Parce que nous voulons l'ajouter à l'inventaire, il vous demande à quel index souhaitez-vous l'ajouter ? Je veux juste l'ajouter à n' importe quel index disponible. Je vais donc partir d'ici et dire longueur, puis je vais l'ajouter ici. Rappelez-vous maintenant que les tableaux commencent à partir de l'indice zéro, puis ils vont à 123 et ainsi de suite Si vous faites glisser le pointeur d'ici et que vous dites «  dernier index pour le moment », le dernier index est trois, ou ce tableau ici. Si vous prenez ce dernier index et que vous le branchez ici, vous allez en fait remplacer l' arme qui se trouve dans l'index de trois Si vous voulez utiliser le dernier index, vous devez prendre le dernier index et dire plus un. Vous trouvez le dernier index, puis vous ajoutez la nouvelle arme ici dans l'index quatre, laquelle vous pouvez vous connecter ici. Maintenant, une meilleure méthode pour le faire consiste simplement à trouver la longueur. La longueur est de 1234. Il va en fait l' ajouter à l'index de quatre. Nous n'avons pas besoin de faire ça ici. C'est pourquoi j'utilise la longueur. Il va en produire quatre. Et vous pouvez également le voir si vous écrivez simplement une chaîne d'impression et que vous la connectez ici, c'est toujours agréable d'ajouter des chaînes d'impression. Si vous voulez vérifier les valeurs de ce que vous faites, je vais l'ajouter à cet index. Maintenant, quel article voulons-nous ajouter ? C'est l'arme que nous voulons ajouter. Maintenant, nous n'avons pas vraiment de référence à l'arme. Laissez-nous le faire. Cliquez sur Perte sur cet événement ici. Et cherchons une base d'armes. Et sélectionnons-le ici et appelons-le une arme. Vous pouvez également l'appeler arme pillée si vous souhaitez vous armer. Ensuite, je vais m'en occuper à partir de là et l' intégrer à cet événement. Et maintenant, nous pouvons l'utiliser ici, dans la base d'armes. S'il est vrai qu'il y a beaucoup d'armes, nous voulons l' emporter ici depuis la base de joueurs et rechercher un lot d'armes. C'est ainsi que nous l'avons appelé. Allez-y, sélectionnez-le et vous pouvez maintenant le connecter à nouveau ici Je vais cliquer pour créer des notes réécrites afin de le rendre un peu plus lisible. Juste comme ça. Maintenant, il va vous demander quelle est cette arme ? Quelle en est la variable ? Maintenant, selon votre définition, souvenez-vous que vous êtes à l'intérieur de la base d'armes si vous vous contentez de frapper et écrire self, car c' est l'arme avec laquelle vous interagissez. Si vous interagissez avec celui-ci ici, il sait que c'est le 41 parce que c'est celui avec lequel vous interagissez. Et si vous écrivez self comme référence, il sait que cette arme est en fait la seule clause type ici Si on dit que l'arme est fausse, elle peut en récupérer une. Cela signifie donc que vous ne pouvez pas piller l'arme, car à un moment donné l' arme a été trouvée dans l'inventaire et vous ne pouvez pas la piller Maintenant, s'il trouve l'arme dans l'inventaire, par exemple, au premier index, il l'a effectivement trouvée. Et cela n'a aucun sens de parcourir toutes les autres armes, car l' arme a déjà été trouvée et vous ne pouvez pas la piller Quoi qu'il en soit, voici ce que c'est, ce que signifie cette pause. Je veux briser la boucle. Je ne veux plus parcourir ce tableau. Quand je trouve l'arme dans l'inventaire je peux faire tomber l'arme à butin En fait, je veux le faire glisser et le mettre en pause. Je peux maintenant double-cliquer et prendre des notes pour faciliter la lecture. Ce que je veux dire, c'est que lorsque vous trouvez cette arme dans l'inventaire, allez-y et rompez la boucle. Parce que cela n'a aucun sens de parcourir tous les objets alors que je les ai déjà trouvés et que je ne peux pas le piller de toute façon Donc ça va se casser et ça peut piller, l' arme est prête à tomber Vous n'allez donc rien piller car nous n'avons aucun code ici Mais n'oubliez pas que vous devez à nouveau régler celui-ci sur true car c'est vrai. Par défaut, cela doit être vrai. Cela disparaîtra la prochaine fois que vous interagirez avec une arme. Ce sera faux par défaut car vous n'avez pas oublié de le définir sur vrai. Par défaut, ce sera faux. Et même si vous pouvez piller une arme, même si elle n'a rien trouvé, celle-ci sera fausse La prochaine fois que tu prendras une arme. N'oubliez pas de le faire glisser à nouveau et de rechercher à nouveau si vous pouvez perdre une arme et set, puis n'oubliez pas de le régler à nouveau sur vrai. Par défaut, chaque fois que vous interagissez à nouveau avec une arme dans le futur, vous pouvez la définir, mais vous pouvez également la récupérer si vous ne l'avez pas dans l'inventaire Je peux aussi simplement cliquer et faire glisser ceci ici, ça va en fait être beaucoup plus beau. Quelque chose comme ça. Alors maintenant, cela devrait être vrai, vous pouvez tout recompiler. N'oubliez pas que si vous l'avez fait comme moi, allez-y, dans la base de joueurs et dans l'inventaire, je vais supprimer toutes celles que je viens de pour démontrer que l'inventaire des armes par défaut ne devrait rien contenir. Allez-y, sauvegardez tout. Et maintenant, pour cette arme, prenons-la ici, organisons-la un peu mieux. Et maintenant, ce que vous pouvez faire maintenant, c'est connecter cette arme car nous avons définie ici comme l'autoréférence. Maintenant tu peux la prendre, cette arme va passer par ici et elle va être ajoutée à l'inventaire. Encore une fois, double-cliquez pour prendre des notes sur l'itinéraire arrière. Vous êtes en train de le piller et de l'ajouter à l'inventaire. Et allez-y, sélectionnez la taille qui vous convient. Il va s'assurer de l'ajouter à ce tableau. Allez-y, compilez. Et maintenant, cela devrait fonctionner correctement pour le tester. Pour vous en assurer, continuez, faites glisser le pointeur à partir d'ici et écrivez une chaîne d'impression. Et tu peux toujours prendre celui-ci, collons-le ici. Et faisons glisser et disons «   gets » pour en obtenir une copie. Et nous pouvons toujours obtenir l' indice zéro parce que c'est le cas, souvenez-vous que dans les tableaux, cela commence par l'indice zéro Nous obtenons l' indice zéro et nous nous assurons que nous pillons réellement l'arme Ceci. Et ajoutez-le à la ficelle pour qu'il connaisse le nom de l'arme. Maintenant, nous allons imprimer le nom de l'arme que nous avons pillée sur l'écran, puis tout compiler et sauvegarder Et assurons-nous que tout fonctionne. Cliquons sur jouer. Sélectionnez des terroristes et si j'entre ici il y aura AK 47, comme vous pouvez le voir ici. Maintenant, le numéro n'a plus vraiment d'importance, c'est juste le numéro de ce plan Nous pouvons prendre celui-ci. Maintenant, vous pouvez voir que je ne peux pas interagir avec elle car j'ai déjà un fusil dans mon inventaire. Donc maintenant, si je rejoue, que je sélectionne le terroriste et que je passe par le 41, le 41 s'affiche à l'écran ci-dessus. Maintenant, si je regarde le pistolet, comme vous pouvez le voir pour le K, il n'imprime rien parce que j'ai déjà un fusil qui fonctionne correctement Maintenant, si je passe par le pistolet, il devrait l'imprimer. Et vous pouvez voir qu'il imprime mais qu'il imprime le mauvais nom. Et n'oubliez pas que pour la chaîne d'impression, nous n'imprimons que l'index zéro, donc il ne s'agit que du 41. Il suffit de le régler fort sur l'index 1 et il imprimera le pistolet Maintenant, si vous voulez imprimer tout le contenu de cet inventaire pour voir ce qu'il contient, faites toujours glisser le pointeur d'ici et dites que pour chaque boucle, vous allez parcourir l'ensemble de ce tableau et vous pouvez connecter la boucle. Ensuite, vous pouvez sélectionner chacun des noms uniques de l' élément qui se trouve à l'intérieur d'ici et vous pouvez l'imprimer sous forme de chaîne. Je peux aller chercher l'AK par exemple. Ensuite, vous pouvez voir qu'il l' imprime à l'écran. Je peux passer au pistolet et maintenant il va imprimer à la fois l'AK et le pistolet à l'écran Il fonctionne comme il est censé le faire. Sauvegardons tout et passons à la suivante. 94. 8.09 Créer la prise d'arme: Avant de pouvoir attacher l' arme aux mains du joueur, nous devons créer un support. N'oubliez pas que nous avons créé un socket plus tôt. Lorsque nous avons créé la caméra du joueur et que nous l'avons fixée à la tête du joueur, nous avons dû ajouter un autre support fixer l'arme à la main du joueur. Passons au dossier Marketplace et passons au personnage militaire Silva pour découvrir ce squelette ici. N'oubliez pas que c'est l'appareil photo, c'est le support pour l' appareil photo que nous avons ajouté plus tôt. Maintenant, ce que nous devons faire, c'est ajouter un support pour la main du joueur afin qu'il puisse tenir l'arme dans la main, n'est-ce pas ? C'est là que vous avez l'habitude de tenir une arme. L'avoir sur la main droite. Pour la main, c'est vrai, je peux cliquer avec le bouton droit de la souris et ajouter une prise ici. Je vais cliquer sur deux pour le renommer. Et je vais l'appeler Rifle. Maintenant, je vais ajouter une douille pour un fusil et une douille pour le pistolet Maintenant, j'ai essayé tout à l'heure d'en ajouter un pour l'arme. Arme et je pourrais y ajouter le pistolet et le fusil. Cependant, la position dans la main est différente. Il vaut mieux en ajouter un pour le fusil et un pour le pistolet Ça a l'air bien mieux de choisir un fusil S. Allons-y et ajoutons une animation d'aperçu afin que nous puissions réellement voir à quoi cela ressemble si je cherche simplement fusil et que je cherche l'un d'entre eux. Par exemple, l' animation Idle Rifle. Je vais suspendre cette animation jusqu'à la première image juste pour qu'elle soit immobile et qu'elle ne bouge pas. Et je peux régler la prise. En cliquant sur le fusil à douille, je peux maintenant cliquer avec le bouton droit de la souris pour ajouter un aperçu D. Ajoutons , par exemple, le 41, ou il s'appelle R quatre, en fait ici et sélectionnons-le. Nous pouvons maintenant le prévisualiser et ajuster le socket. Alors allez-y et cliquez sur le socket. Et allez-y et sélectionnez l'outil de rotation. Et maintenant, vous pouvez le faire pivoter de 90 degrés de cette façon. Et j'essaie juste de l'ajuster à la main pour qu' il soit plus beau. Je vais réduire la vitesse de mon appareil photo. C'est bien trop rapide. Maintenant, vous pouvez voir la seule erreur ici, vous pouvez essayer de régler la prise. heure actuelle, la seule erreur de ce personnage est qu' il tient le fusil comme ça. Ça a l'air bizarre parce qu'il va tirer en avant ici. Si je suis debout devant lui, il tire en l'air alors qu'il est censé me tirer dessus . C'est un peu faux du côté de l'animation. Tu ne peux vraiment rien y faire. Essayons de le faire du mieux que nous pouvons. Cette rotation devrait en fait être comme si elle devait aller de l'avant. Nous allons supprimer le cliquetis associé à la rotation. Et j'essaie de faire en sorte qu'il soit orienté le mieux possible vers l'avant. Vous pouvez également passer à la bonne vue. En fait, allez à la vue de face. Pour la vue de face, vous pouvez encore une fois faire pivoter l'arme du mieux que vous le pouvez. C'est ici. Il vaut peut-être mieux voir comment il vise l'avenir de cette façon. Vous pouvez revenir à la perspective et y jeter un coup d'œil, vous assurer qu'il vise l'avenir et tout va bien, peut-être, quelque chose comme ça. Ensuite, vous pouvez le déplacer vers le haut, essayer de le placer dans la main du personnage, quelque chose comme ça. Essayez simplement de le placer correctement dans la main du personnage. Par exemple, avoir ce déclencheur ici, en s'assurant qu'il ne passe pas entre ses doigts comme ça ici. J'essaie de le faire avancer un peu, tout en l'ayant toujours dans la main du joueur. Maintenant, tu ne peux pas vraiment le faire parfaitement. S'il s'agissait d'un projet sérieux, les personnages devraient être conçus de manière à ce qu'ils tiennent correctement cette arme. L'arme et le personnage vont de pair. Par exemple, dans Counterstrike, ils le conçoivent comme ça Cependant, ici pour celui-ci, il ne s'agit que d'un personnage aléatoire, animation aléatoire. Avec des armes aléatoires. Vous ne pouvez pas vous attendre à ce que cela soit faisable à 100 %. Nous essayons juste de l' adapter du mieux que nous pouvons. Maintenant, celui-ci a l'air bien. Tout se présente très bien. Je peux juste essayer de le faire reculer un peu, juste comme ça. Tout se présente très bien. Il tient l'arme maintenant. Et vous pouvez voir si je l'anime, ça va ressembler à ça. Ça a l'air génial. Vous devez maintenant le tester avec l'autre fusil. Juste pour m'en assurer, je vais cliquer avec le bouton droit sur celui-ci et supprimer tous les actifs attachés. Je vais cliquer à nouveau avec le bouton droit de la souris lors de la révision. Maintenant, permettez-moi d'ajouter le KA pour sept. Permettez-moi d'ajouter l'AK. Vous pouvez voir que l'AK se faufile légèrement Ce que je vais faire, c'est le déplacer vers le haut autant que possible sans le faire réserver quelque chose comme ça. Maintenant, ça va se passer un peu, mais peu importe, comme si on ne pouvait pas vraiment y faire grand-chose. Ces armes ne sont pas conçues pour ces animations. Nous ne pouvons pas être précis à 100 %. Mais quelque chose comme ça ici. Et encore une fois, je peux sélectionner le fusil, sucer correctement pour le déplacer le plus possible vers le bas sans le faire paraître bogué, quelque chose comme ça C'est peut-être le mieux que je puisse faire. Si vous cliquez avec le bouton droit supprimer la ressource attachée, cliquez à nouveau avec le bouton droit de la souris. Ajoutez l'AR Four comme aperçu juste pour vous assurer à quoi il ressemble. C'est un peu plus haut. Mais c'est le mieux que nous puissions faire pour cette arme. Comme si on ne pouvait pas vraiment le placer mieux parce que ça va aussi être un bug pour l'AK. Nous pouvons maintenant regarder à travers la glace de ce personnage et nous assurer que la rotation est correcte. Je pense qu'il a légèrement tourné dans le mauvais sens. Je vais cliquer à nouveau sur le support maintenir enfoncé puis le faire pivoter dans cette direction ici. Je pense que c'est un peu incliné, peut-être. Quelque chose comme ça. Et ça a l'air bien mieux. OK, c'était ça. Ça oui, tout va bien. Maintenant, juste pour m'en assurer, je vais à nouveau cliquer dessus avec le bouton droit de la souris. Retirez-le. Je vais faire un clic droit sur l'AA 47 comme la dernière fois juste pour m'assurer que tout est correct. Maintenant, ce que nous pouvons faire, c'est que nous pouvons toujours le faire glisser un peu plus de cette façon. Il ne s'agit pas d'un bogue ici à travers le manche. Quelque chose comme ça. Ok, ça a l'air mieux maintenant, tout va bien. Maintenant, vous pouvez toujours l'ajuster légèrement vers le haut ou vers le bas. Je trouve que ça a l'air bien. Maintenant, sauvegardons tout. Maintenant, vous devez vous rappeler de l'ajouter également à l'autre squelette, mais ajoutons d'abord le pistolet Avant cela, passons maintenant à l'aperçu. Ou pas des aperçus. Aperçu de l'animation. Et cherchons un pistolet maintenant, prenons l'une des animations du pistolet Et je vais juste sélectionner cette idole à pistolet ici. Posons-le lors de la première animation. Maintenant, pour celui-ci, je vais supprimer tous les actifs attachés. Faisons un clic droit sur la main et ajoutons un nouveau socket. Et je vais appeler ça un pistolet. En fait, un pistolet. Nous savons que c'est une prise. Maintenant, pour celui-ci, cliquez avec le bouton droit de la souris et ajoutons le pistolet comme ressource attachée Si nous ajoutons simplement notre pistolet comme avant, tournons la douille Je vais ajouter cet outil de capture sur rotation de 90 degrés faire pivoter de cette façon afin qu'il pointe vers l'avant, vous pouvez toujours revenir à la vue de face Allez-y et zoomez. Sélectionnez le pistolet ou la prise ici et retirez le fermoir. Je vais le faire pivoter légèrement vers le bas pour qu'il vise correctement. Et passez à la vue en perspective. Vérifiez si tout va bien. Essayez du mieux que vous pouvez de le faire viser vers l'avant. Et nous pourrons toujours l' ajuster plus tard. Mettons-le maintenant dans la main du joueur. Comme ça, comme ça, peut-être comme ça. Encore une fois, essayez de placer le doigt sur la gâchette du mieux que vous le pouvez. Donc, encore une fois, quelque chose comme ça , nous pouvons toujours l' ajuster plus tard. Ce n'est pas vraiment un problème. Si quelque chose est un peu foiré, vous pouvez voir que la rotation est un peu perturbée. Il est trop incliné Je vais, encore une fois, le faire pivoter de cette façon, afin qu'il ne soit pas incliné comme ça. Je pense que c'est une bonne chose. Nous pourrons toujours l'ajuster plus tard. Essayons maintenant de le déplacer du mieux que nous pouvons entre les mains du joueur. Je pense que quelque chose comme ça a l'air bien. Je pense que je vais le déplacer légèrement vers le haut, juste comme ça. OK, maintenant il tient l' arme et il la tire vers l'avant. Nous pouvons toujours essayer de le prévisualiser. Vous pouvez essayer de prévisualiser avec d'autres animations si vous le souhaitez. Par exemple, si je cherche un pistolet et que je prends le feu, vous pouvez voir à quoi cela ressemble Ça a l'air bien. Maintenant, allons-y et sauvegardons tout. Maintenant, tu dois les copier. Cliquez avec le bouton droit de la souris pour supprimer tous les actifs joints. Vous devez également les copier sur l'autre squelette. Je vais donc prendre ce socket, cliquer avec le bouton droit de la souris ici et copier le socket sélectionné. Ou vous pouvez cliquer sur le contrôle C. Accédez à l'autre squelette, le document militaire. Cliquez sur la main droite et contrôlez V pour le coller. Passons également à l'autre squelette. Copiez celui du fusil et cliquez sur Ctrl V pour le coller également ici. Celui-ci en a aussi. Maintenant, le contre-terroriste et le terroriste devraient tous deux fonctionner dès maintenant. OK, c'était donc tout pour les prises. Passons à la leçon suivante. 95. 8.10 Créer les socles restants: Créons maintenant les sockets restants. Revenons donc au squelette du personnage Silver. Je veux ajouter le fusil à l'arrière du personnage si celui-ci tient déjà le pistolet Nous ne voulons donc pas ajouter le pistolet dans la main du personnage qui tient déjà une arme. Allons-y Imaginons par exemple l'animation du pistolet. Il suffit de sélectionner l'un d'entre eux. Il suffit de sélectionner celui-ci. Inactivez-le à nouveau. Je vais le mettre en pause à la première image. Je vais ajouter une prise ici, à l'arrière, pour le fusil. Je vais ajouter le fusil à l' arrière s'ils ne le tiennent pas. Si vous ne savez pas quel os utiliser, vous pouvez toujours cliquer sur Character Bones puis afficher toute la hiérarchie. Ensuite, vous pouvez essayer de choisir le meilleur os que vous pouvez voir ici sur le lecteur qui convient. Par exemple, vous pouvez choisir la colonne vertébrale deux ou vous pouvez choisir la colonne vertébrale trois. Je pense que je vais choisir la colonne vertébrale 3. Vous pouvez choisir la colonne vertébrale trois. Cliquez avec le bouton droit. Ajoutez un socket. Je vais appeler celle-ci une arme. L'arme sera là, à l'arrière. Faisons un nouveau clic droit, ajoutons un maillage d'aperçu et ajoutons simplement les K appelés KA 47. En fait, sélectionnons celui-ci. Faisons simplement pivoter cette arme. Je vais maintenir ou sélectionner cet outil de capture et je vais le faire pivoter de 90 degrés. De cette façon, je vais le déplacer vers l' extérieur et essayer de placer l'arme comme bon vous semble Il n'y a pas vraiment de réponse à ce qui est correct ou non. Quel que soit le jeu que vous essayez de jouer, essayez de le faire à votre façon, selon votre style. Vous pouvez toujours le faire glisser vers l'arrière du personnage si vous le souhaitez. Vous pouvez toujours l'incliner comme ça pour le rendre plus beau et le placer sur le dos du personnage du mieux que vous le pouvez. Et peut-être quelque chose comme ça. Je pense que ça a l'air bien. Je peux le déplacer légèrement vers le haut. Je trouve que cela semble bien si vous jouez simplement une animation pour vous assurer que tout va bien et que tout fonctionne correctement. Si vous créez simplement une animation de course, par exemple, à l'avant droit, sans arme, vous pouvez sortir et jouer l'animation Et je peux cliquer sur les os des personnages. Et sélectionnez-le uniquement pour retirer tous les os afin que je puisse voir quoi il ressemble réellement. Et ça ressemble à ça. OK, tout semble correct. L'arme bouge également avec le corps. Je peux également sélectionner Supprimer la pièce jointe. Et je peux sélectionner l'AR Four juste pour voir à quoi il ressemblera s'ils le tiennent à la place. OK, tout va bien. Oui, c'est lié au joueur. Nous pouvons maintenant cliquer avec le bouton droit de la souris et supprimer toutes les pièces jointes. La deuxième chose que je veux ajouter maintenant, revenons à l'idole et sélectionnons l'une d'entre elles. Par exemple, l'idole en forme de pistolet que je vais placer devant Ce que je veux faire, c'est placer le pistolet sur le côté du personnage lorsqu'il tient le fusil Celui-ci était pour le fusil, l'autre pour le pistolet Mais là encore, vous pouvez cliquer sur les os du personnage dans toute la hiérarchie et vous pouvez sélectionner un os qui vous convient. Par exemple, celui-ci. C'est la cuisse. Nous allons le créer ici, la cuisse, cliquer avec le bouton droit de la souris, ajouter une prise et dire que celui-ci est une arme, juste comme ça. Allez-y et cliquez avec le bouton droit sur celui-ci. Joignez une ressource de prévisualisation et sélectionnez le pistolet. Comme avant, je vais ajouter l'outil de capture et le faire pivoter de cette façon Par exemple, permettez-moi également de le faire avancer. Le pistolet, quand on le place ici de façon réaliste, va se trouver du côté opposé, quelque chose comme du côté opposé, quelque chose Au lieu de cela, je vais le faire pivoter si vous le souhaitez, vous pouvez le faire pivoter d'une manière ou d'une autre et essayer de le placer du mieux que vous le pouvez. réalité, s'il s'agissait d'un joueur conçu pour ce jeu, je ne placerais pas celui-ci ici il s'agissait d'un joueur conçu pour ce jeu, je ne placerais pas celui-ci Nous pourrions donc placer le pistolet ici. Mais nous pouvons essayer de le placer sous ce sac du mieux que nous pouvons et essayer de le déplacer un peu vers l'extérieur Nous pouvons également le déplacer ou le faire pivoter dans cette direction et essayer de le placer le mieux possible sur la cuisse du personnage. Je pense que ça a l'air bien. Maintenant, si vous sauvegardez tout et que vous essayez à nouveau de lancer l'animation. Sélectionnez l'un d'entre eux, par exemple, lancez le pistolet avant. Et si vous y jouez maintenant, vous pouvez le voir ici. Maintenant, personnage, je vais sélectionner des os. Sélectionnez uniquement pour que je puisse retirer les os. Et voici le pistolet quand tu cours avec. OK. Elle est attachée à la cuisse. Nous pouvons maintenant arrêter cette animation. Et je peux cliquer avec le bouton droit de la souris ou sur un autre pistolet, celui sur la cuisse. Si je peux le trouver ici, celui-ci en bas, je peux cliquer avec le bouton droit de la souris. Supprimez tous les actifs attachés. Et n'oubliez pas de le copier également pour l'autre squelette. Si je double-clique ici et que j'ouvre le document du personnage, j'ouvre également le squelette. Copions l'alvéole de la cuisse. Et je vais trouver la cuisse ici. Si je peux le trouver. Celui-ci contrôle V pour le coller. Je vais y retourner et je vais trouver la prise arrière. Ici, l'arme est remontée. Je vais copier celui-ci. Et encore une fois, pour la colonne vertébrale 3, je vais la coller et elle sera correcte pour celle-ci également. Sauvegardons tout et passons à la leçon suivante. 96. 8.11 Attacher une arme à la main: Maintenant que nous avons créé ces douilles, nous pouvons continuer et attacher l'arme à la main. Revenons à la base de joueurs. Dans la base de joueurs précédente, si vous vous en souvenez, nous avons déjà défini la logique de l'arme à butin ici Nous pouvons déjà obliger le joueur à s'équiper de l'arme. Ce que nous pouvons faire, c'est utiliser ce qu'on appelle attacher si vous recherchez simplement attacher, afin que vous puissiez utiliser l'un d' entre eux, par exemple, attacher à un acteur, ou acteur à un composant, etc. Vous pouvez donc simplement sélectionner l'un d'entre eux pour voir de quoi il s'agit. Vous êtes essentiellement là pour celui-ci, par exemple, vous associez un acteur à un composant. Par exemple, vous attachez l'acteur d'arme au composant maillé où vous sélectionnez le support auquel vous souhaitez l'ajouter. Par exemple, le pistolet. Ensuite, vous pouvez l'y accrocher et l' attacher à la main. Maintenant, au lieu de le faire, souvenez-vous que nous sommes dans un jeu multijoueur. Il ne s'agit pas d'un mode solo. S'il s'agissait d'un mode solo, nous pourrions simplement le faire ici sans tout ce serveur et ainsi de suite, et cela fonctionnerait. Cependant, comme nous sommes dans un jeu multijoueur, nous devons répliquer les informations du serveur vers le client Pour de tels changements visuels, vous devez utiliser ce que l' on appelle une notification de représentant Et nous ne l'avons pas encore utilisé. Si vous cliquez avec le bouton droit sur cette arme et que vous la promouvez au rang de variable, je vais simplement l' appeler arme pillée Maintenant, quatre variables. Collectons maintenant ou connectons d'abord celui-ci. Permettez-moi de double-cliquer. En fait, nous avons déjà un nœud de route arrière ici, donc je vais le faire glisser vers le bas. Double-cliquez sur celui-ci. Nous avons maintenant cette variable. Et si vous cliquez dessus maintenant, au lieu de le configurer pour qu'il soit répliqué, vous obtenez ce que l' on appelle une notification de représentant Et là où une notification de représentant indique que si vous avez des modifications visuelles dans votre jeu qui doivent être envoyées à tous les clients, vous devez utiliser une copie de notification de représentant Il n'est utilisé que pour des informations telles que les numéros qui seront envoyés au client. Auparavant, nous avions celui-ci appelé arme équipée, par exemple. Nous avons dit de reproduire celui-ci. Parce que le client doit savoir s' il s'agit d'informations variables, à quoi elles sont configurées, si elles sont réglées sur pistolet ou un fusil non armé Cependant, pour celui-ci, je vais faire un changement visuel. Il ne s'agit pas simplement de chiffres et d'informations comme le texte. Je dois mettre à jour l'arme. Il est donc attaché aux mains du joueur, il s'agit en fait d'une mise à jour visuelle. Cette arme va se téléporter les mains du joueur et elle va y rester J'ai donc un changement visuel à apporter, et c'est ici que vous sélectionnez une notification de représentant Maintenant, si vous vous en souvenez, nous utilisons également une multidiffusion. Donc, si je reviens sur les traces, nous utilisons celui-ci appelé multicast La multidiffusion envoie également des informations à tous les clients. Pourquoi utilisons-nous ce que l'on appelle une notification de représentant au lieu d'une multidiffusion ? Cependant, une notification de représentant est utilisée si vous avez modifications visuelles qui doivent être montrées à tous les joueurs, même à ceux qui ne sont pas encore connectés au serveur Supposons que quelqu'un se connecte au serveur, comme si j'allais ici et que je pille le 44 ou le 41 Quelqu'un se connecte à mon serveur 2 minutes plus tard. Si je fais ce code dans le cadre d'une multidiffusion, le joueur connecté ne pourra pas voir que je tiens ce 44 La multidiffusion n'est utilisable que pour des choses temporaires. Par exemple, des traces de pas ici et maintenant. Ou si je joue des feux d'artifice, des effets visuels qui disparaîtront au bout de 2 secondes. Les joueurs connectés ne le font pas, le joueur qui se connecte en ce moment n'a pas vraiment besoin de le savoir. Parce qu'il a probablement déjà disparu dans le niveau. Par exemple, l' effet visuel d'un représentant est utilisé pour les changements visuels qui doivent également être vus par quelqu'un qui va se connecter à votre jeu Dans 2 minutes, je veux voir les joueurs qui se connectent à mon jeu. Je veux qu'ils voient que je tiens maintenant le 41. Allons ici. Et cliquons dessus. Et cliquons sur Rep, Notify Allez-y, compilez. Et vous pouvez voir qu'elle a déjà été créée comme une fonction pour vous. C'est ce que l'on va appeler, donc tu vas piller l'arme Et celui-ci va être réglé. Chaque fois que cela va être défini et modifié en valeur, cette fonction sera automatiquement exécutée. Nous pouvons donc maintenant écrire le code à l'intérieur de cette fonction. Et quoi que nous écrivions ici, cela sera communiqué à tous les clients. OK, donc d'abord, avant de joindre quoi que ce soit, je voudrais prendre cette arme pillée que nous venons de piller , frapper ici et cherchons le maillage de l'arme Donc, si je vais en bas et que je sélectionne une arme. N'oubliez pas, cette arme est là. Si je reviens aux armes et que je sélectionne la base de l'arme, il s'agit du maillage squelettique de l'arme. Je vais sélectionner le maillage du squelette, car n'oubliez pas que nous simulons la physique Nous n'avons pas vraiment besoin de simuler la physique. Chaque fois que cette arme est entre les mains du joueur, nous devons en supprimer la physique. Ce que je dois faire, c'est d' abord faire glisser le pointeur à partir d' ici et dire définir la physique de simulation. Allons-y et connectons-le. Définissons-le comme faux. Nous n'avons pas vraiment besoin de simuler la physique lorsque c'est entre les mains du joueur. Ensuite, je dois également supprimer la collision, car lorsqu'elle est entre les mains du joueur, nous n'avons pas vraiment besoin entrer en collision avec quoi que ce soit Encore une fois, faites glisser le pointeur hors de cette arme, dites «  Set Collision », puis sélectionnez celle-ci. Activez Collision, et laissez-nous le connecter et pas de collision. Maintenant, il n'y a plus de collision entre les armes. Nous n'en avons pas vraiment besoin lorsque le joueur l' a entre les mains. Maintenant, n'oubliez pas que dans la base d'armes vous avez également la sphère ici. Vous devez également supprimer la collision. Sinon, les autres joueurs peuvent entrer en contact avec vous lorsque vous avez l'arme et ils peuvent récupérer l'arme de votre main Vous pouvez maintenant l'avoir en tant que fonctionnalité dans le jeu, mais pour celui-ci, laissez-nous le supprimer. Reprenons l'arme pillée. Et je vais faire glisser le pointeur à partir d'ici et chercher ma sphère de collision. Et c'est en bas ici. Et en fait, cela s'appelle collision, simplement appelé sphère. Et je vais le renommer en pollsionsphere, juste pour que ce soit plus évident Sphère de collision. Allez-y, compilez. Revenons ici et cherchons maintenant une sphère de pollution. Et laissez-moi aller en bas et le sélectionner ici. OK, comme avant, faites-le glisser ici et dites que définir la collision a activé celui-ci ici et laissez-nous le régler sur aucune collision. Maintenant, lorsque d'autres joueurs entrent dans cette sphère de collision, ils n'interagissent pas avec elle car il n'y a plus de collision ici. Je vais me rappeler de le fausser car nous n'avons pas besoin de simuler la physique. Les collisions d' armes ainsi que les collisions pour la sphère de collision. Maintenant, lorsque nous utilisons la fonction attach the, nous devons en fait faire quelque chose avant. Parce que lorsque je le faisais auparavant, il y avait un bug. Je jouais ici. Et j'ai attaché l'arme à ma main. Chaque fois que je tombais sur ces armes pour une raison ou une autre, même si je les attachais à ma main, même si je les attachais à ma main, elles restaient par terre et je ne comprenais pas. La raison en est la physique de simulation. Vous pouvez voir ici en bas qu'il est écrit : «  Notez que si ce composant est actuellement attaché à quelque chose, début de la simulation le détachera Cela signifie que lorsque je simule la physique ici, cela détachera réellement cette arme de la racine de scène par défaut heure actuelle, c'est comme si ces deux éléments n'étaient pas attachés, c'était distinct de celui-ci. En fait, je dois rattacher l'arme à la racine de scène par défaut. Faisons-le réellement. Prenons l'arme pillée si je fais glisser le pointeur d'ici et que je recherche la racine de scène par défaut, le même nom en bas, et que je la sélectionne Maintenant, ce que je veux utiliser, c'est attacher un composant à un composant. N'oubliez pas que ce sont des composants si vous les faites glisser d'ici et de Seach et que vous pouvez sélectionner celui-ci attaché au composant que j'essaie d'attacher Pas celui-ci en fait. J'essaie de fixer l'arme ici. Ensuite, il suffit de faire glisser un chiffon et de rechercher une arme, puis de revenir en bas, de sélectionner la variable J'essaie d'associer l'arme à l'itinéraire de scène par défaut. Ça ressemble encore une fois à ça. Allons-y et connectons-le. Nous devons maintenant sélectionner le socket. Le socket, nous n'avons vraiment rien. Nous connectons simplement l'arme à l'itinéraire de scène par défaut. Celui-ci convient à la règle de localisation. Tout cela doit être ciblé rapidement. Il s'y accroche comme ça, et maintenant ce sont les bons snaps et maintenant ce sont les bons snaps Allons-y et compilons. Et maintenant, tout devrait fonctionner correctement. Maintenant, si nous essayons d'attacher l'arme à la main du joueur, nous pouvons la faire glisser à partir d'ici. Maintenant, pour ce qui est de l'attache, nous essayons de joindre un acteur, cette base d'armes. J'essaie d'attacher un acteur à ce maillage, qui est un composant. Nous devons associer un acteur à un composant. Si je fais glisser le pointeur d'ici et que je dis «  attacher » et que vous pouvez rechercher un acteur par un composant, j'essaie de joindre l'acteur de l'arme pillée Si je fais juste un copier-coller ici sur le maillage ici, qui est un composant, le socket auquel nous essayons de l'ajouter ce moment est disons par exemple que nous l'appelions fusil. Essayons d'abord le fusil, et nous pourrons toujours utiliser le pistolet plus tard Encore une fois, atteignez la cible pour tous ces éléments. Allons-y, compilons et sauvegardons tout. Voyons comment cela fonctionne si je clique sur Compiler maintenant ou Jouer maintenant et que je sélectionne le terroriste. Maintenant, si je marche dans le fusil, tu peux voir qu'il est réellement entre mes mains. Vous pouvez le voir ici dans l'ombre. En fait, c'est entre mes mains. Maintenant, si je ne tiens pas l' animation du fusil, c'est parce que nous devons également mettre à jour l'équipement, l'arme équipée. N'oubliez pas que si je reviens au plan d'animation, cela fait déjà longtemps que nous l'avons fait Si je passe au lecteur, aux animations et au plan d'animation N'oubliez pas que nous modifierons ces animations ici en fonction de cette énumération d' armes équipées Celui-ci provient de l'arme équipée par le joueur. Nous devons modifier celui-ci pour que les animations changent. Ce que nous devons faire ici, c' est le faire rapidement. Si nous revenons au graphique du van, je peux cliquer avec le bouton droit de la souris et créer un nouvel événement personnalisé. Je peux appeler cela une arme équipée d'un ensemble unique. Encore une fois, je vais copier ce nom avec le bouton droit de la souris, créer un nouvel événement personnalisé, le faire passer par le serveur. Celui-ci fonctionne sur un serveur fiable. Je vais faire fonctionner le serveur cette arme normale définie par des événements . Maintenant, pour celui-ci, la seule chose qu'il fait est de placer cette arme équipée ici. Si vous le connectez comme ça. Et si nous le connectons comme ceci, encore une fois, la seule chose que fait cet événement est de définir cette variable ici comme nous le souhaitons, et nous l' utiliserons plus tard. Laissez-nous compiler maintenant. N'oubliez pas que vous ne pouvez définir des variables et les répliquer lorsqu' elles sont exécutées sur le serveur Tu ne peux pas utiliser celui-ci ici. Vous devez l'exécuter via le serveur avant pouvoir le configurer et le répliquer sur tous les clients OK, maintenant c'est fait. Double-cliquez sur cette variable. Encore une fois, vous pouvez ouvrir la fonction ici ou vous pouvez simplement double-cliquer ici et cela vous fera entrer ici. Maintenant, n'oubliez pas que nous devons configurer l'arme équipée pour que l'animation soit mise à jour. Si vous faites glisser le pointeur d' ici et recherchez l' arme équipée que nous venons de créer, nous devons sélectionner l'arme sur laquelle nous voulons la configurer. Ce que nous voulons faire, c' est ce que vous avez pillé. Souvenez-vous de ce type d'arme dans l'arme que vous avez fabriquée. Si vous prenez cette arme pillée vous la faites glisser d'ici et recherchez le type d'arme Vous savez maintenant s'il s'agit d'un fusil ou d'un pistolet par exemple, et il sait quelle animation utiliser Si vous le connectez ici, compilez. Cliquons sur jouer. Si vous sélectionnez le terroriste, juste pour qu'il apparaisse à côté Et si j'entre dans cet AK par exemple, il va maintenant changer l'animation en la bonne. Maintenant, si j'ouvre également le client, juste pour m'assurer que tout fonctionne. Si je joue en tant que serveur ici, et que je vais minimiser cela, je joue également en tant que client. J'ouvre donc la voie de la lutte contre le terrorisme pour celui-ci, et j'ouvre le champ du terrorisme pour celui-ci. Je vais aller voir le contre-terroriste pour voir si tout fonctionne correctement. Si je travaille sur ces quatre, vous pouvez voir que je les ai pillés Si je m'approche du joueur, il n'interagit pas avec ma sphère de collision car je l'ai réglée sur aucune collision. Et maintenant, pour ce qui est de l'autre, si j'entre dans cet AK, vous verrez qu'il est également pillé Je pense que je vais réduire la taille de l'AK. Peut-être que l'arme semble très grosse. Vous pouvez voir maintenant qu' il ne s'agit que de piller le fusil parce que maintenant, si je marche dans le pistolet, il le placera également sur la douille du Et ça a l'air bizarre comme ça. Et nous devrons changer cela plus tard. C'est ce que nous allons faire dans la prochaine leçon. Pour l'instant, nous l' avons joint et nous pouvons le rendre un peu plus complexe. Cela fonctionne donc également pour le pistolet. 97. 8.12 Attacher des armes à l'arrière: Très bien, rendons ce code un peu plus complexe au lieu de simplement le joindre directement. Maintenant, je dois demander si le joueur tient déjà une arme ou non. Si le joueur tient déjà une arme, je veux l'attacher au dos du personnage car il tient déjà une arme Nous ne voulons donc pas l' attacher à la main. Ce que je veux faire, c'est prendre cette arme équipée , la traîner d'ici et me demander si elle est égale ou égale à un art ? En ce moment, tu n'as pas d'armes ? Si c'est le cas, comme si vous ne teniez aucune arme, je voudrais en fait l'attacher à la main du joueur. Ce que je peux faire, c'est le connecter ici, ici. Au lieu de simplement le fixer à la douille du fusil, c'est peut-être un pistolet Ce que je peux faire, c'est faire glisser le pointeur d'ici et dire « sélectionnez celui-ci ». Nous avons déjà utilisé celui-ci, mais nous pouvons maintenant en voir un autre exemple. Nous devons maintenant sélectionner en fonction du type d'arme. Si c'est un pistolet, il utilisera le pistolet à douille. Si c'est un fusil, il utilisera un fusil à douille. Je vais copier à nouveau ce type d'arme et le connecter ici. Ou si le type d'arme est égal à non armé, nous n'avons pas vraiment besoin de faire quoi que ce soit Si c'est un pistolet, je veux l'attacher à un pistolet. C'est ce que nous appelons le socket. Si c'est un fusil, nous voulons l'attacher au fusil. Il sait maintenant quel support utiliser, en fonction du type d'arme et tout le reste est correct. Maintenant, déplaçons-le simplement ici. Cependant, si vous n'êtes pas désarmé, cela signifie que vous avez déjà une arme en main Copions tout cela à nouveau et maintenant, au lieu de dépendre maintenant du type d'arme, je vais soit, s'il s'agit d'un pistolet, ajouter à la cuisse de l'arme N'oubliez pas que c'est ce que nous appelons la douille de l'arme à cuisse. Si c'est un fusil maintenant, il va également l'utiliser. Cela va être connecté ici. Si c'est faux, je vais juste rapprocher tout cela. Maintenant, c'est mieux organisé et nous pouvons tout compiler et tout enregistrer. Nous ne voulons installer l'arme équipée que lorsque nous n'avons rien en main. Parce que si nous avons quelque chose en main, nous voulons simplement ajouter l'arme à l'arrière du personnage. Sauvegardons tout et cliquons sur jouer. Et si je sélectionne Terrorist ici, et que je marche jusqu'ici, laissez-moi simplement ouvrir laissez-moi simplement ouvrir celui-ci afin que nous puissions voir s'il fonctionne pour ce personnage en le maximisant un peu. Vous pouvez donc voir si je marche dans le fusil maintenant, vous pouvez voir que je le tiens dans ma main. Si j'entre dans le pistolet en ce moment, vous pouvez voir que le pistolet est tombé par terre Je veux vraiment régler ce problème. Et je crois que c'est ce maillage ici. Il est très fin, donc il tombe par terre. Réparons réellement à ça. Permettez-moi de prendre la case ici. Si j'y vais, rappelez-moi où je l'ai enregistrée, le dossier Super Grid, le pack de statistiques et les maillages. Et utilisons la boîte Super Grid pour le sol plutôt que pour l'avion. Je vais prendre cette boîte. En fait, je vais le à 100 pour le mouvement. Je vais d'abord placer cette boîte dans un endroit comme ici. Et redescendons-le sur le sol. Et je vais le repousser comme là où se trouve ce terrain, je vais juste le déplacer comme ça, je crois. Et ici. OK, maintenant c'est par terre. Maintenant, je vais le redimensionner de la même manière que pour le sol. Je vais juste faire de mon mieux. Permettez-moi d'abord de l' étendre . Permettez-moi de l'augmenter à 1010 pour le Z. Nous n'en avons pas vraiment besoin. Laisse-moi juste cliquer sur ce cadenas. Et laissez-moi en écrire un ici. Je vais cliquer sur le sol, en fait c'est plus bas, comme ça. Et je vais le prendre ici et de l'autre côté. OK, maintenant ça claque sur le sol. Et je vais cliquer sur le sol. Je vais maintenir la touche Maj enfoncée et cliquer avec le bouton droit de la souris pour le copier. 80, 81. Je vais cliquer sur ma case ici. Je vais maintenir la touche Maj enfoncée et cliquer avec le bouton gauche de la souris pour le coller. Et maintenant, cela devrait être correct. Maintenant, si je passe de l' autre côté juste pour vérifier s'il couvre le sol et c'est le cas, d'accord. Maintenant, ce que je vais faire, c'est sélectionner l'avion. Je clique juste quelques fois ici. Il va sélectionner le plan du super réseau. Je vais supprimer et copier ce matériel pour le conserver à nouveau. Cliquez sur l'oreille avec le bouton droit de la souris, déplacez le clic gauche pour coller ce sol ici. Et on dirait qu'avant. OK, sauvegardons tout. Et maintenant, si nous cliquons sur Play, il ne devrait pas tomber par terre. Le sol était assez fin et je qu'il y a du blanc qui tombe à travers le sol. Permettez-moi encore une fois de maximiser un peu cela. Maintenant, si je joue en tant que joueur, je dilue un M quatre et que je dilue une arme, elle devrait l'ajouter à la cuisse. Vous pouvez voir sur le côté de mon personnage, je peux maintenant voir l'arme. Génial. Maintenant, pour ce K, je peux piller aussi bien que l'autre joueur À l'heure actuelle, il a disparu. Vous pouvez voir que le client ne le voit pas sur le serveur. Vous pouvez voir que cela semble correct, car n'oubliez pas que le serveur a l'autorité et peut tout faire. Cependant, pour le joueur, c'est sur le dos. Comme vous pouvez le voir ici dans l'ombre, il y en a un, un problème de réplication, une valeur qui n'est pas dépassée. La seule chose que je puisse penser de cette arme équipée et désarmée, c'est celle-ci qui choisit de la mettre dans le dos ou dans la main La façon dont vous résolvez ce problème où vous ne pouvez pas voir l'arme lorsque vous la récupérez est Faisons-le d'une autre manière, l'arme équipée du set. La raison en est qu'il ne connaît pas vraiment cette valeur, car parfois, lorsque je joue en tant que client, cela place cette arme sur le dos du personnage. Vous pouvez le voir ici, au lieu de le piller. La raison pour laquelle il le place au dos du personnage est un problème de réplication. Pour une raison ou une autre, cela nous a équipés , c'est celui qui contrôle que nous devons être sur votre main ou que l'arme doit être sur votre dos. Pour une raison ou une autre, c'est parce que cette valeur d' arme équipée n'est pas armée comme si vous en aviez déjà une et que cela la place sur le dos du personnage plutôt que dans votre main. C'est en fait parce que nous faisons passer celui-ci par le biais de la notification du représentant Nous n'avons pas besoin de le faire car cela va bouleverser le jeu. Je vais le supprimer . Passons plutôt au graphique des événements. Exécutons-le ici sur le serveur. Parce que nous devons définir les valeurs par le biais du serveur plutôt que par le biais du représentant, notifiez, au lieu de simplement les modifier directement N'oubliez pas que vous ne devez installer l'arme équipée que lorsque vous êtes ici désarmé Chaque fois que vous n'êtes pas armé, vous devez régler l' arme équipée , car vous ne voulez pas la changer chaque fois que vous placez cette arme sur le dos Au lieu de cela, pour celui-ci, nous devons prendre l'arme équipée. Et encore une fois, nous devons nous demander si c'est équivalent à désarmé. Et laisse-moi juste déplacer ça. Assurez-vous de demander si vous n' êtes pas armé ou non ? Parce que nous voulons exécuter ce code uniquement si vous n'êtes pas armé. Si tu n'es pas armé, oui. Allons-y et je vais retarder le code avant que nous ne le fassions réellement. Et si je le fais, c'est parce que je donne une chance à ce représentant, notifie, de manquer de code N'oubliez pas qu'il utilisera cette variable d'arme équipée pour vérifier si vous n'êtes pas armé ou non Et cela sera bloqué. Si vous installez instantanément cette arme équipée et que vous changez ce type d'arme, nous faisons en sorte de le retarder un peu Assurez-vous que ce code est bien lu avant de modifier le type d'arme ou l'arme équipée ici. Ce délai doit être aussi faible que possible car cela peut sembler étrange si vous courez sans que l' animation ne s'applique. Mais essayons-le comme celui-ci avant de faire quoi que ce soit. Permettez-moi donc de cliquer sur jouer ici en tant que terroriste. Maintenant, je peux cliquer sur jouer et je peux entrer dans l'arme et voir si elle fonctionne. Maintenant, vous pouvez voir que cela fonctionne. Je dois y aller à quelques reprises juste pour m'assurer que cela fonctionne réellement, et maintenant vous pouvez voir qu' il ne fonctionne pas Je pense que cela a réglé le problème. Cependant, à l'avenir, si cela nous pose toujours un problème, nous essaierons de le résoudre. Mais je pense que c'est en fait corrigé maintenant et que cela ne nous pose aucun problème. OK. Essayons maintenant de réduire ce nombre, 0,05, ce qui est très faible Et nous pouvons essayer de jouer et de le réduire, mais cela fonctionnera quand même. Maintenant, vous pouvez voir qu' il fonctionne toujours. Si vous le réduisez trop, vous courez le risque que le code contenu dans la notification du représentant ne puisse pas être atteint à ce stade Avant de le faire, assurez-vous que c'est lent mais pas trop bas. Vous allez rencontrer des problèmes, mais comme vous pouvez le voir ici, tout fonctionne. Et assurez-vous simplement de commenter ce retard car si vous revenez trois mois plus tard, vous ne savez pas pourquoi vous l'avez fait. Assurez-vous de maintenir le bouton enfoncé, puis de cliquer sur C sur votre clavier pour ajouter un commentaire. Par exemple, vous pouvez, pour ce commentaire, assurer que l' arme est attachée à la main avant de changer l'état d'équipement du joueur. Juste comme ça. Vous pouvez même écrire que vous attendez que le représentant averti postule Allez-y, compilez et enregistrez tout. Et cela devrait fonctionner si vous cliquez sur Play. Maintenant, si vous entrez dans le pistolet, vous pouvez voir qu'il est en train de changer Si vous entrez dans celui-ci, c'est sur votre dos et je peux voir que tout fonctionne en ce moment. Un autre avantage que nous avons, le dernier, espérons-le, c'est que lorsque vous placez deux armes l'une sur l'autre, cela va être un peu confus parce que vous chevauchez deux sphères Je ne sais pas laquelle piller. Si vous vous plaignez maintenant, cela va s'arranger Et voici le client. Je les croise tous les deux, j'essaie de les croiser tous les deux comme ça. Vous pouvez voir qu'il tient en fait le pistolet et les quatre en même temps et c'est un peu confus Nous devons également réparer cet argent. C'est ce que nous allons faire dans la prochaine leçon. 98. 8.13 Chevaucher deux armes à la fois: Le problème auquel nous sommes confrontés en ce moment , c'est que si je tombe sur deux armes à la fois, cela disparaîtra parce que maintenant vous pouvez voir que je tiens le pistolet et le fusil en même temps C'est donc un bogue que nous avons actuellement et que nous devons corriger d'une manière ou d'une autre. Nous devons vérifier qu'il n'y a pas de chevauchement entre les deux armes et pas seulement une Parce qu'à l'heure actuelle, nous vérifions simplement s'il y a un chevauchement d'armes et nous ne vérifions pas si deux armes se chevauchent en même temps Pour résoudre ce problème, passons au joueur et ouvrons la base de joueurs qui se trouve à l'intérieur d'ici. À l'heure actuelle, nous avons cette arme à butin. Au lieu de simplement piller l'arme, je dois créer un nouveau tableau lequel je rassemble tous les éléments qui se chevauchent Ensuite, à cause de ces acteurs qui se chevauchent, ils pilleront les armes au lieu de les piller directement Prenons tout cela et ajoutons-le ici, puis cliquons avec le bouton droit de la souris pour créer un nouvel événement personnalisé. Je vais appeler cet événement un élément qui se chevauche. OK, avec celui-ci, encore une fois, je vais le faire passer par le serveur, le serveur personnalisé, et ajouter un élément superposé Et puis n'oubliez pas de l'exécuter sur le serveur et de l'exécuter de manière fiable. Et je vais exécuter ce serveur ici dans le cas normal, en ajoutant un élément superposé, juste comme ça Ce que nous devons faire, c'est créer un nouveau tableau appelé éléments superposés Encore une fois, il s'agit d'une base d'armes qui ne se chevauche en fait pas d'objets Il est probablement plus juste de parler d'armes superposées Et puis cliquez avec le bouton droit, ou cliquez simplement ici et recherchez la base d'armes. Allez-y, sélectionnez-le. Allons-y et sélectionnons à nouveau ce tableau. Maintenant, au lieu d'un objet qui se chevauche, il vaut probablement mieux l'appeler une arme superposée qui est plus précise afin de ne pas changer de style. Une arme superposée, juste comme ça. Et allez-y, prenez ce tableau. Ce que nous pouvons faire ici, c'est chaque fois que nous superposons un objet ou une arme, nous pouvons ajouter cette arme à cette gamme. Nous devons maintenant savoir quelle arme nous chevauchons à nouveau. Allez-y, ajoutez une variable, recherchez une base d'armes. Il suffit d'appeler cette arme unique et de la connecter également ici. Cela part de là chaque fois que nous nous recoupons , puis les informations sont là. Tout comme avant, ce que nous avons fait ici. Allez-y, prenez ceci et dites « set array element » et connectez-le. Il s'agit de l'élément que nous voulons ajouter à l'index. Encore une fois, c'est exactement ce que je vous ai dit tout à l'heure. Utilisons la longueur. À partir de cette recherche de longueur , il trouvera automatiquement le bon index. Il l'ajoutera pour aller de l'avant et organiser cela. Bien, ce que nous faisons simplement, c'est au lieu de piller instantanément l'arme depuis le sol, nous ajoutons cette arme superposée à cette gamme Ensuite, à partir de ce tableau, nous pouvons aller de l'avant et piller les armes Nous veillons à ce que toutes les armes superposées soient pillées d'ici Lorsque je superpose une arme, n'oubliez pas de lancer à nouveau cette arme à butin, sinon vous ne l'utiliserez pas En fait, revenons d'abord en arrière. Revenons maintenant à la base d'armes plutôt qu'à la base d'armes, plutôt qu'ici avec le code que nous avons écrit, au lieu de piller l'arme instantanément lorsque vous savez que vous pouvez la piller, ajoutez-la aux armes qui se chevauchent Permettez-moi de le supprimer. Cherchons ici auprès du joueur. N'oubliez pas que c'est le joueur de quilles. Prenons ceci et cherchons l'arme qui se chevauche dans les publicités. Allez-y, ajoutez-le ici. L'arme est elle-même comme ça et elle est compilée maintenant. Il va d'abord ajouter cette arme superposée à la gamme. Allons-y et utilisons l'arme du lot. Partons d' ici et cherchons une arme puissante. L'arme est là. En fait, nous n'en avons pas besoin car souvenez-vous que nous l'avons ajouté à ce tableau. Au lieu de simplement le prendre d'ici à ici, nous pouvons maintenant utiliser ce tableau ici. En fait, nous n'avons pas besoin de cette épingle. Si vous cliquez sur cette épingle, retirez-la. Cliquez également ici et supprimez-le, juste comme ça. Et pour que celui-ci le supprime, maintenez la touche Alt enfoncée et cliquez dessus pour le supprimer, ou vous pouvez cliquer ici et actualiser tous les nœuds qui supprimeront également ces épingles rouges. Maintenant tu es en train de piller l'arme. Ça va passer par ici. Maintenant, avant de l'ajouter directement, vérifions d'abord quelque chose. Prenons ces armes qui se chevauchent Tout d'abord, demandons-nous si elles sont vides ou non Parce que s'il est vide, nous ne voulons pas le piller. Partons d'ici et disons que c'est vide. Disons qu'il n'est pas vide. S'il n'est pas vide, nous allons vers O. Nous pouvons faire glisser le pointeur à partir d'ici. Et écris une branche, puis sors et connecte-toi. Maintenant, s'il n'est pas vide, nous allons le piller. Très bien, quelle est l' arme que nous sommes en train de piller, nous pouvons la traîner d'ici et dire « prenez » celle-ci Nous sommes simplement en train de récupérer le premier objet qui se trouve à l'intérieur de la gamme d'armes superposées, en obtenant juste celui de l'index, zéro. Donc, la première arme qui se trouve à l'intérieur d'ici, relions-la à l'arme superposée. Nous ajoutons maintenant cette arme à l'inventaire. Ensuite, il ira ici, ajoutera à l'inventaire, il le transformera en arme à butin Nous allons vérifier si nous ne sommes pas armés, si c'est le cas, nous allons installer l'arme équipée N'oubliez pas de supprimer l'arme superposée, celle que vous êtes en train d'ajouter en ce moment. N'oubliez pas de le supprimer du tableau, sinon il restera là pour toujours. Vous devez prendre ce tableau maintenant. Ensuite, peut-être pourrons-nous prendre les armes qui se chevauchent. Nous pouvons dire supprimer l'article et continuer à le connecter. Alors n'oubliez pas de prendre celui que vous venez d'ajouter. Vous pouvez plutôt le connecter ici. Encore une fois, double-cliquez pour créer un nœud de route arrière et mettez-le simplement à un autre niveau par rapport aux autres. Nous nous souvenons maintenant de le supprimer du tableau. Il restera ici pour toujours et vous aurez une boîte dans votre jeu. OK, maintenant nous supprimons cet article superposé de la liste parce que nous l'avons ajouté à l' inventaire et que tout est terminé. Nous l'avons donc supprimé. Rappelez-vous maintenant que cette fonction ici, cet événement ici, ne s' exécute qu'une seule fois, chaque fois que vous vous chevauchez. Il s'agit de l' événement organisé par le lot d'armes, comme vous pouvez le voir ici. Lorsque nous avons terminé, nous arrêtons le code. Et si vous aviez en fait dix armes dans les armes qui se chevauchent ? Tu dois continuer à utiliser ce lot d' armes jusqu'à ce qu'il soit vide. Et quand il est vide, il ne fait rien. Vous devez continuer à organiser cet événement pour vérifier si d' autres éléments se chevauchent Parce qu'il ne cesse de vérifier s' il est vide ou non pour l'exécuter. Encore une fois, ici, organisons un nouvel événement. Et je vais l'appeler, partir de là, un événement personnalisé. Appelons celui-ci, vérifiez s'il n'y a pas de chevauchement d'armes. Je vais vérifier s'il y a d'autres armes qui se chevauchent. Nous pouvons prendre celui-ci et l'utiliser ici. Vérifiez qu'il n'y a pas de chevauchement d'armes. Lorsque nous aurons fini d'ajouter l'arme, nous vérifierons s'il n'y a pas de chevauchement d'armes et nous recommencerons Ensuite, le code ici s'exécutera à nouveau et vérifiera s'il est vide ou non. S'il n'est pas vide, il va à nouveau prendre cette nouvelle arme. Continuez à les ajouter à l' inventaire autant que possible. Cependant, s'il est vide, nous n'allons rien faire. Très bien, nous avons un problème en ce moment : et si le joueur chevauche plusieurs armes ? Parce que chaque fois que vous entrez en collision avec une arme et que vous pouvez la piller, cela ne fait que s'ajouter à cette arme superposée Et il va le réexécuter même si nous sommes au milieu du code, ce qui perturbera le jeu à chaque fois que vous retrouverez quelque chose. Cela exécutera le tout et activera également tout cela. Mettons plutôt une barrière. Cela ne fonctionne qu'une seule fois. Et ce que vous pouvez faire, c'est faire glisser le pointeur d'ici et dire « faites une fois ». Ce nœud garantit qu'il n'est exécuté qu'une seule fois, même si je chevauche plusieurs armes. Il ne va pas répéter ce code ici. Il va en fait répéter ce code, il va y ajouter quelque chose. Mais cette partie du code ne sera pas répétée. En fait, il ne le fera qu'une seule fois. Et nous pouvons contrôler le moment où il doit recommencer. Nous ne voulons le faire qu'une seule fois, même si nous utilisons peut-être une centaine d'armes. Nous ne le faisons qu'une seule fois car souvenez-vous que nous faisons une boucle infinie jusqu'à ce que celle-ci ne soit plus vide et que nous arrêtions le code. Nous n'avons pas vraiment besoin de l'aimer d'ici non plus. OK, fais-le une fois. Quand pouvons-nous le réinitialiser ? La réinitialisation signifie que je ne vais exécuter ce code qu'une seule fois. Vous me dites quand je peux réinitialiser, afin que je puisse réexécuter ce code. La réinitialisation, faisons-la glisser à partir d'ici et créons un nouvel événement personnalisé. Disons qu'il peut à nouveau perdre une arme. Je peux à nouveau piller l'arme chaque fois que j'arrête de piller ici Lorsqu'il est vide, l'arme se chevauche. Chaque fois que ce champ est vide, nous pouvons le faire glisser à partir d'ici et dire « peut à nouveau piller l'arme Nous pouvons réexécuter ce code car il s'est arrêté. Et je vais faire un peu traîner à partir d' ici, faire de la place et organiser tout cela. Très bien, maintenant c' est mieux organisé. Alors allons-y, compilons, et compilons également ici, sauvegardons tout. Essayons maintenant de cliquer sur jouer et voir ce qui se passe. Sélectionnez Terroriste. En fait, je me permets de copier ces armes sur tous ces points pour ne pas avoir à courir à nouveau vers cet endroit. Il suffit de les copier quelques fois et de les placer. Sélectionnez un terroriste et allons-y maintenant, rien ne se passe. Nous avons probablement gagné de l'argent ici, en se chevauchant probablement Mais pour ce faire, vous pouvez faire glisser le pointeur depuis l'un d'entre eux, par exemple, si ce serveur se chevauche, et écrire une chaîne d'impression. C'est ainsi que vous pouvez déboguer votre code en cas de bogue. Je ne veux pas le supprimer de la vidéo car je veux également vous montrer comment déboguer Vous connectez cette chaîne d'impression et vous cliquez sur Play. Chaque fois qu'il imprime la chaîne, comme vous pouvez le voir, il imprime en fait la chaîne. Cela signifie que cette partie du code fonctionne. Il n'y a rien de mal ici. C'est en train de passer. Oui, je pense que c'est ici. J'ai oublié de m'adapter à cette taille. Essayons peut-être de le rejouer et de le tester. Et c'était là le problème. Je n'ai pas fait cette taille à ma taille. Et cela signifie que pour les tableaux, lorsque vous les créez, vous devez en fait faire glisser le pointeur à partir d'ici et dire redimensionner Ensuite, vous devez indiquer au moteur la taille de cette matrice. Par exemple, je vais lui donner 20 emplacements. Maintenant, avec ces 20 emplacements, je peux ajouter des objets. Vous devez le faire, par exemple, dans le jeu Begin ou quelque chose comme ça. Cependant, si la taille est adaptée, cela indique que vous pouvez créer automatiquement un nouvel emplacement. C'est très bien. La longueur de ce tableau ne me dérange pas. C'est ce que vous faites ici, taille adaptée, qui posait problème. Maintenant, si vous rencontrez des problèmes, encore une fois, faites glisser le pointeur d'ici, écrivez une chaîne d'impression, voyez si la chaîne s'imprime à l'écran. Si c'est le cas, il y a probablement autre chose qui ne va pas. Encore une fois, n'oubliez pas que vous pouvez également imprimer des valeurs pour voir si elles sont réellement ajoutées à cette gamme d'armes superposées, etc. Mais pour l'instant, cela semble fonctionner. Cliquons sur Play. Si vous voulez mieux le vérifier, vous pouvez également cliquer sur le ressort, par exemple, le faire 600. Juste pour que je puisse voir mon personnage. Essayons encore une fois de tirer au sort. Maintenant, vous pouvez voir que c'est sur mon arme ou sur ma main et mon dos. Je vais juste le faire plusieurs fois juste pour m'assurer que tout fonctionne correctement et que cela semble fonctionner. Vous pouvez donc voir que cela résout le problème, car à l'heure actuelle, tout cela continue de tourner en boucle Cela garantit qu'il passe par la gamme d'armes qui se chevauchent avant qu'il ne s'arrête et que nous puissions à nouveau les piller Il s'agit donc de s'assurer que tout est pillé. Et comme vous pouvez le constater, même si j' utilise plusieurs armes à la fois, cela fonctionne correctement. Le fusil est dans ma main et le pistolet sur le côté de ma jambe Hein ? Maintenant que nous en avons fini avec cette logique, allez-y, sauvegardez tout, et passons à la suivante. 99. 8.14 Créer la structure de l'arme: OK, avec ce jeu, je veux vous montrer tout ce que nous faisons lorsque nous développons un jeu, même s'il est avancé. Dans cette leçon, nous allons créer une structure d' arme. C'est bien mieux que de continuer à créer des variables pour les armes. Avant que cela ne devienne trop important, commençons à créer la structure. Maintenant, je peux essayer de te montrer et tu comprendras beaucoup de choses dans les plans Cliquez avec le bouton droit de la souris et créons un nouveau dossier. Appelons celui-ci Structures. Et cliquez à nouveau avec le bouton droit de la souris, définissez la couleur sur cette couleur ici, comme avant Inside of this folder. Cliquez avec le bouton droit de la souris et accédez à Blueprint. Nous avons ce qu'on appelle une structure. Cliquez dessus et je vais l'appeler ST comme préfixe pour la structure Appelons ça des informations sur les armes. Cette structure contient les informations relatives aux armes. Maintenant, lorsque vous ouvrez une structure, la seule chose que vous faites ici est d'ajouter des variables. Si vous ajoutez une variable, vous pouvez choisir le nom de cette variable . Vous pouvez choisir le type, comme ici dans le plan où vous créez une nouvelle variable Même chose. Maintenant, à l'intérieur de la structure, vous pouvez avoir toutes les informations sur les armes ici. Vous pouvez ajouter plusieurs variables ici et vous pouvez avoir toutes les informations sur l' arme à l'intérieur d'ici. Par exemple, à quelle vitesse l'arme peut-elle tirer, quel est le nom de l'arme et toutes ces choses que vous voulez. Par exemple, la miniature l'arme lorsque vous l' ajoutez à l'inventaire, devrait-elle coûter dans la boutique lorsque vous achetez l' Vous pouvez avoir une valeur de pièce ou une valeur de 1$, etc. Toutes les informations relatives à l' arme peuvent se trouver à l'intérieur. Ici, vous pouvez voir que vous pouvez rassembler toutes les variables à l'intérieur d'une structure. Il n'est pas nécessaire de créer 100 variables dans ce plan, elles le contiennent en fait à l'intérieur de la structure Allons-y et commençons à en créer un. Je vais tous les supprimer. Je vais appeler le premier nom. J'ai besoin d'un nom pour mon arme. Et je vais le remplacer par le type de chaîne parce que chaîne est juste un texte que nous pouvons écrire. Désormais très importante, la différence entre une chaîne et un texte peut être localisée ou traduite dans différentes langues. Par exemple, si je veux que mon jeu soit allemand, japonais ou chinois, je dois sélectionner du texte à l'avenir. Par exemple, si je veux traduire le nom de l'arme, si vous choisissez String, vous ne pourrez pas le traduire à l'avenir. Assurez-vous si vous voulez un jeu qui puisse être traduit, car vous souhaitez le traduire à l'avenir. Allez-y et sélectionnez du texte. Cependant, je vais sélectionner des noms d'armes à cordes, comme un AK 47 ou 44. Même si je le change dans différentes langues, il ne sera pas vraiment traduit. Je veux dire, comment s'appelle AK 47 dans différentes langues ? C'est le même nom. C'est pourquoi je choisis une chaîne plutôt qu'un texte, même si je souhaite traduire mon jeu dans la future chaîne du nom. N'oubliez pas que nous avons également ajouté ce type d'arme. Nous pouvons également avoir ce type d'arme à l'intérieur de la structure. Je peux juste l'appeler type, vous pouvez l'appeler type d'arme, c'est très bien. Appelez-le comme vous voulez pour le rendre plus visible pour vous ici. Modifions-le en type d'arme. N'oubliez pas que nous avons créé ce type d' arme d'énumération par exemple Nous pouvons également en ajouter une nouvelle et appeler une classe. Une classe est si vous recherchez base d'armes et que vous l'emmenez ici, sélectionnez cette classe, faites référence à une classe où vous pouvez créer une nouvelle arme à partir de celle-ci Peut-être en avons-nous besoin, peut-être pas. C'est toujours agréable d'avoir une classe, quel que soit le jeu que vous créez, car peut-être qu'à l' avenir, vous devrez réapparaître cette arme dans le monde C'est toujours agréable d'avoir ce cours ici. Nous avons maintenant une structure. Il est petit, mais il est beau et nous en avons créé un plus tard. Vous pouvez ajouter, par exemple, la vitesse de tir pour cette arme. Ensuite, vous pouvez sélectionner un flotteur indiquant la vitesse à laquelle il peut tirer. Plus tard, vous pourrez dire vitesse de rechargement et ainsi de suite. Vous pouvez donc voir que vous pouvez ajouter de nombreuses informations sur cette arme. Peut-être souhaitez-vous ajouter une valeur à la boutique ou description similaire, ou vous souhaitez ajouter une miniature à l'inventaire Vous pouvez ajouter beaucoup de choses. Mais pour l'instant, ajoutons-les. Et je vais en ajouter d'autres à la structure plus tard lorsque nous en aurons besoin. Maintenant que nous avons créé cette structure, nous pouvons passer à la création d'une table de données. Dans la prochaine leçon, je vais vous expliquer ce qu'est une table de données, mais pour l'instant, génial, vous avez créé une structure, et passons à autre chose. 100. 8.15 Créer la table de données d'arme: Dans cette leçon, nous allons créer un tableau de données sur les armes. Pour créer un tableau de données, vous devez être dans Google Drive ou Google Sheets, ou si vous avez Excel, vous pouvez également l'utiliser. J'utilise Google Sheets. Allez-y et créez un compte Google si vous n'en avez pas. Et puis, à l'intérieur d'ici, nous cliquons ici et nous nous dirigeons vers mon lecteur. À l'intérieur de votre lecteur, je viens de créer un dossier à l'intérieur pour qu'il reste structuré à l'intérieur d'ici. Lorsque vous êtes dans Google, vous pouvez écrire, cliquer, créer une nouvelle feuille Google. Cliquez ici, puis cela en fera un, et je vais appeler celui-ci ici, des tables de données. Je vais créer un espace ici, à l'intérieur d'ici. Je vais juste organiser ça un peu. Je vais cliquer sur Contrôle A pour tout sélectionner. Je vais cliquer ici, aligner son centre. Cliquez ici, alignez son centre. Cliquez ici, sélectionnez l'habillage de texte. Alors je vais changer de téléphone pour celui-ci. Ici, pour cette ligne, je vais cliquer sur cette ligne en gras. Encore une fois, contrôlez pour tout sélectionner. Je vais simplement élargir les choses comme ça, et ce n'est qu'une préférence. OK, maintenant nous sommes dans Google Sheets. Et ce qu'est une table de données, c'est que nous pouvons écrire toutes ces valeurs à partir d'une structure à l'intérieur d'une table de données. Ainsi, les personnes qui ne savent pas programmer peuvent réellement utiliser ce tableau de données et modifier les informations relatives à votre jeu, par exemple. Commençons par là et vous verrez ce que je veux dire. Nous avons créé cette structure ici avec la variable name. Ce que nous pouvons faire dans cette table de données pour écrire, vous devez écrire ces variables exactement comme vous les avez écrites. À l'intérieur d'une structure. Pour le nom, nous pouvons écrire le nom, puis nous avons le type, puis nous avons la classe. C'est ce que nous avons à l'intérieur d'une structure en ce moment, n'oubliez pas de l'écrire exactement comme vous l'avez écrit ici à l'intérieur de la structure. Sinon, vous obtiendrez une boîte, écrivez-la ici pour le nom de l'article. Par exemple, dans le premier cas, nous avons un AK 47 K 47. La prochaine, nous en avons une si vous voyez ici dans l'arme des plans, c'est ce que vous avez Et puis tu as un pistolet. Vous pouvez également lui donner un nom. Cependant, mon pistolet s' appelle pistolet. Je n'ai pas vraiment de nom pour ça. Vous devez maintenant écrire le type de cette arme. N'oubliez pas que dans l'énumération vous avez créé ce type d'arme À l'intérieur de la structure, vous pouvez également voir le type d' arme que vous avez sélectionné. Maintenant, pour ce type d'arme, vous devez l'écrire exactement comme les types d'armes que vous avez écrits ici. Sinon, vous obtiendrez une boîte à l'intérieur d'une table de données. Tu dois écrire les choses exactement comme tu l' as fait ici. Pour le type d'arme, nous pouvons avoir un fusil. Cet AK est un fusil, le quatre est un fusil. Le pistolet est simplement le type de pistolet comme celui-ci. Pour le cours, nous devons faire autre chose. Créons d'abord la table de données car je ne peux pas y faire référence à moins d' avoir la table de données à l'intérieur des plans Créons un nouveau dossier. Appelons celui-ci des tables de données à l'intérieur de ce dossier. Encore une fois, cliquez avec le bouton droit sur Définir la couleur dans ce dossier. Faisons un clic droit, je crois que c'est dans Michelaneous, pas dans Blueprint Le voici, le tableau de données. Allez-y et créez. Maintenant, il vous indique partir de quelle structure souhaitez-vous le créer ? Je veux le créer à partir des informations sur l'arme. Allez-y et cliquez. OK. Maintenant appelons-la table DT, et appelons-la encore Weapon Info. D'habitude, je l'appelle simplement de la même manière que la structure. Cependant, DT pour préfixe, car il s'agit d'une table de données. Si j'ouvre ce tableau de données, vous pouvez voir qu'il est vide pour le moment. Si vous cliquez sur le signe plus, un pur, vous ajoutez une nouvelle entrée pour le tableau de données. Vous pouvez le voir ici, vous pouvez lui donner un nom. Par exemple, AK 47. Je peux en faire un fusil et la classe est le BPAK 47 que nous avons créé Ici, vous pouvez voir que nous avons maintenant les informations au lieu d'un tableau de données, nous pouvons réellement extraire ces informations et les utiliser dans notre jeu. Laissez-nous le faire à partir de notre tableau de données ici à partir de Google Sheet. Je vais cliquer sur celle-ci, cette entrée que vous avez créée en ce moment, et sélectionner l'une d'entre elles au hasard. Par exemple, ce PPK 47. Ensuite, vous pouvez écrire, cliquer maintenant sur celui-ci et dire copier, car maintenant vous copiez cette référence. Ici, vous pouvez voir que c'est ainsi que nous devons l'écrire dans votre feuille Google. Nous l'avons déjà fait. Nous avons écrit le nom correctement ici, comme ceci. Nous avons écrit le type comme ce fusil, par exemple. Pour la classe, tu dois aussi l'écrire comme ça si je contrôle juste V à l'intérieur d'ici. N'oubliez pas d'écrire : Cliquez ici, copiez-le, contrôlez V. À l'intérieur d'ici. Je vais juste le consigner pour pouvoir réellement voir ce que je fais. Juste comme ça. OK, ici, c' est comme ça que tu fais. Maintenant, vous devez copier celui-ci et le coller dans les autres. N'oubliez pas qu'au lieu d' un AK 47, c'est 44. Vous devez donc l'écrire exactement comme référence. Je fais référence à ce PP 44. Je peux y retourner. Ce sont les bons dossiers, plans, armes. Et j'ai juste besoin de changer ce 1141. Le dernier est le pistolet appelé pistolet BP. J'écris aussi Pistol Pistol ici. OK. Maintenant, j'ai correctement cette information. Ce que je dois faire maintenant, c'est cliquer sur le fichier pour le télécharger et sélectionner CSV. C'est le format que nous devons utiliser. Maintenant, si j'ouvre mon dossier de téléchargements ici, appelons-le T pour table de données. Je vais l'appeler du même nom qu'ici, afin qu'il puisse être importé. N'oubliez pas d'appeler le même nom, ET Weapon Info. Vous pouvez maintenant cliquer dessus et le faire glisser ici. Si vous cliquez dessus et que vous le faites glisser ici, il est indiqué que le nom de colonne attendu est introuvable. Je ne sais pas comment je l' appelle. Je l'ai appelé par son nom. C'est parce que nous avons en fait besoin d'une colonne ici. Nous devons cliquer avec le bouton droit de la souris et ajouter une colonne à gauche et l'appeler ID. Pour une raison ou une autre, il crée un identifiant, nous en avons également besoin. Ce que je fais habituellement, c'est simplement copier tous les noms et les coller à l'intérieur d'ici. Il va en fait extraire des informations de l'identifiant. Et lorsque vous extrayez, par exemple, cet identifiant ici, il connaît le nom, le type, cette classe, etc. Il connaît donc toutes ces informations. En fait, vous avez d'abord besoin d'une pièce d'identité. Bien, essayons maintenant de le télécharger à nouveau au format CSV. Revenons à ici. Je vais copier ce nom. Je vais supprimer l'ancien. Et pour le nouveau, je vais le renommer comme ça. Et maintenant je peux le glisser ici. Maintenant, vous pouvez voir que cela fonctionne correctement. Nous avons donc besoin de cette pièce d'identité. Maintenant, vous pouvez voir que lorsque j'importe mon tableau de données, il remplit automatiquement toutes les informations. Donc, je clique sur le premier, vous pouvez voir qu'il contient le fusil AK 47 et qu'il est réglé sur le bon plan Et l'autre, par exemple en quatre par un, vous pouvez également voir les informations correctes, se trouve également ici. Vous pouvez donc voir à quel point c' est vraiment agréable pour les personnes qui ne savent pas programmer. En fait, ils peuvent simplement entrer ici, changer le type d'arme, ou ils peuvent changer le nom de l'arme. Et il ne vous reste plus qu'à cliquer sur le fichier. Téléchargez ce dossier ou fichier et faites-le simplement glisser dans votre jeu. Et cela changera toutes les valeurs. À l'intérieur, vous pouvez imaginer que vous pouvez avoir une valeur marchande et que l'arme peut coûter des pièces coûter des pièces si vous l'achetez au magasin. Et le game designer peut simplement venir ici et modifier toutes ces valeurs dans la feuille Excel. Vous pouvez même créer des formules à l'intérieur d'ici et calculer. Ensuite, vous pouvez simplement cliquer sur Télécharger et vous pouvez simplement le faire glisser ici et cela changera toutes les valeurs des pièces à l'intérieur d'ici. Vous n'êtes pas obligé de le faire à l'intérieur du moteur. C'est vraiment agréable d'utiliser un tableau de données, surtout pour les personnes qui ne savent pas programmer. Ils peuvent entrer ici et le modifier depuis le tableau de données, maintenant nous l'avons à l'intérieur d'ici. Ensuite, nous devons utiliser une bibliothèque de fonctions. Faisons-le dans la prochaine leçon. 101. 8.16 Utiliser la bibliothèque de fonctions: La dernière étape avant de pouvoir utiliser cette table de données consiste à créer une bibliothèque de fonctions. Une bibliothèque de fonctions , comme son nom l' indique, une bibliothèque et à l'intérieur de celle-ci se trouvent des fonctions. Il suffit de cliquer à nouveau avec le bouton droit de la souris ici pour créer un nouveau dossier. Je vais appeler ça des bibliothèques. Et changeons sa couleur à l'intérieur de ce dossier. Cliquez avec le bouton droit sur Accéder aux plans et utilisons celui-ci appelé bibliothèque de fonctions de plans Vous pouvez voir que nous avons déjà utilisé une vache modèle. Nous utilisons la bibliothèque de plans. Nous avons utilisé l'interface Blueprint. La bibliothèque de macros est identique à la bibliothèque de fonctions. Nous avons utilisé l'énumération et nous avons également utilisé la structure Vous pouvez voir que nous avons suivi la plupart de ces cours de plan directeur C'est vraiment sympa que tu aies traversé tout ça et que tu aies de l'expérience. Créons une bibliothèque de fonctions de plan. Et laissez-moi l'appeler bibliothèque de fonctions BP parce que je n'en ai qu' une dans mon jeu. Ouvrons cette bibliothèque de fonctions à l'intérieur d'une bibliothèque de fonctions. Vous pouvez créer des fonctions et vous pouvez les créer ici. L'avantage d'une bibliothèque de fonctions est que vous pouvez utiliser les fonctions de manière globale. Si je crée une fonction ici, laissez-moi simplement l'appeler, par exemple, aléatoire si je compile. Maintenant, si je passe au plan de mon joueur par exemple. Et j'écris click and say random, c'est comme ça que je l'ai appelé. Vous pouvez voir, je peux maintenant voir les fonctions d'une bibliothèque de fonctions. Peu importe où je l'écris. Si j'ouvre le mode jeu et que j'écris, laissez-moi sortir de celui-ci. En fait, laissez-moi accéder au graphique des événements et dire aléatoire. Vous pouvez voir, je peux voir la fonction à l'intérieur de la bibliothèque de fonctions. Quelle que soit la fonction que vous créez à l'intérieur d' ici, elle peut être vue globalement à travers tous les plans oubliez pas qu'il ne faut pas simplement fonctionner à l'intérieur d'ici sans raison, car cela nuit aux performances. Si cette bibliothèque est énorme, vous ne devriez l'utiliser que si vous avez une fonction utilisée dans de nombreux plans Par exemple, vous obtenez les informations sur les armes, vous pourriez les utiliser dans la base de joueurs. Vous pouvez l'utiliser en mode jeu. Vous pouvez l'utiliser dans la manette de jeu. Si vous avez une fonction que vous allez utiliser sur plusieurs plans, créez-la dans une bibliothèque de fonctions afin de une bibliothèque de fonctions afin ne pas avoir à créer la même fonction encore et encore dans chaque plan Mais les fonctions spécifiques ne les créent pas dans une bibliothèque de fonctions. Ceci est uniquement destiné aux fonctions que vous allez utiliser de nombreuses fois dans les plans Par exemple, pour celui-ci, nous allons l' appeler Get info. Nous obtenons des informations sur les armes. Je vais aussi cocher « pur », pur » donne simplement cette fonction verte. Si je compile et que vous pouvez voir si je vais dans la base de joueurs par exemple et que je dis « obtenir des informations sur les armes », vous pouvez voir que c'est vert. Et si c'est devenu vert, c' est parce que j'ai cliqué sur Pure. Et vous pouvez le voir ici. Cela ressemble en fait à ces fonctions vertes si vous en avez créé une. Celui-ci par exemple, pour celui-ci, nous achetons la manette, vous pouvez voir qu'elle est verte parce qu' elle reçoit simplement des informations. Si vous définissez des informations , vous avez besoin de ces épingles ici et elles sont bleues. Il s'agit de fonctions définies et de fonctions d'obtention. Ils obtiennent simplement des informations sans rien modifier. C'est ce que nous voulons faire. Nous voulons obtenir des informations sur nos armes. Nous l'avons réglé sur Pure parce que nous ne modifions rien à l'intérieur d'ici. La fonction principale que nous devons utiliser ici, si vous cliquez dessus avec le bouton droit de la souris, est encore la ligne du tableau de données. Celui-ci en bas, mais ligne de tableau de données. C'est la fonction principale que nous devons utiliser. Et nous devons sélectionner notre tableau de données. Nous devons donc obtenir des informations à partir des informations sur les armes T. Vous devez maintenant lui dire quelles informations souhaitez-vous en tirer ? Maintenant, cela doit être dynamique, en fonction de ce que vous faites dans le jeu. Allons-y, et je pourrai expliquer plus tard pour les informations sur les armes. Créons maintenant une variable et appelons-la nom de l'arme. Et je vais en faire une ficelle. Je vais prendre ça et dire remplacer. Et utilisez cette fonction appelée remplacer. Maintenant, si je l'utilise, c'est si dans votre tableau de données, vous avez un nom, par exemple, disons que vous avez une arme appelée quatre en un. Faisons semblant que c'est une arme. Vous avez des espaces entre votre nom pour l'identifiant. Désormais, lorsque vous créez quelque chose dans une table de données, les espaces sont supprimés. Si vous ouvrez la table de données, supposons que vous importez celle-ci dans l'espace 1 a. Si vous l'importez ici, cela supprimera l'espace et écrira simplement un A sans espace. Ce que je fais habituellement ici pour supprimer tous les espaces d'ici, lorsque vous les téléchargez, je prends le nom de l'arme ici dans le formulaire. J'appuie sur espace, assurez-vous d'ajouter un espace. Les deux peuvent simplement être vides. Rien à l' intérieur, c'est tout. Ce que cela fait simplement, c'est qu'il prend tous les espaces de ces noms. Disons que c'est celui-ci. Cela prend de l'espace et le remplace par rien, ce qui signifie que vous supprimez réellement l'espace comme ceci. Il trouvera ensuite l'identifiant correct dans cette table de données. Parce que cette table de données supprime automatiquement ces espaces lorsque vous les importez. Lorsque vous recherchez un nom comme dans cet espace, cela vous donnera une époque. Nous sommes en train de supprimer tous les espaces, et maintenant nous allons les connecter ici. Il va automatiquement convertir la chaîne en variable de nom. Ensuite, nous pouvons à partir d' ici et dire « retour ». Vous pouvez connecter cette sortie au retour et vous pouvez l'appeler « information sur l'arme ». OK, maintenant nous avons terminé et je dois vous expliquer tout le processus car cela peut être un peu confus. Ce que nous faisons ici maintenant, c'est que nous pouvons maintenant dire, par exemple, qu' ici, dans la base de joueurs, nous pouvons demander « obtenir des informations sur les armes ». Et nous pouvons appeler cette fonction que nous avons créée dans la bibliothèque de fonctions. Nous sommes en train de recevoir cette information. Maintenant, nous devons saisir le nom de l'arme. Imaginons, par exemple, que nous allons le faire dans la prochaine leçon. Mais disons par exemple que j' ai inséré le nom AK 47 Il va prendre ce nom. Il va entrer cette fonction dans la bibliothèque de fonctions. Il va prendre le nom ici, en supprimant tous les espaces, s'il y en a. Il va mettre l'AK 47 que j'ai écrit ici dans le nom de la ligne, ce qui signifie qu'il apparaît ici dans le nom, qu'il cherche l'AK 47, qu'il cherche celui-ci. Maintenant, il sait que nous parlons de cette ligne. Il connaît le nom, le type, la classe, etc. Vous pouvez donc faire glisser le pointeur à partir d' ici et dire « casser », vous pouvez « casser » des structures. Et maintenant, vous pouvez voir toutes les variables puisqu'il prend les informations de ce tableau de données, connaît maintenant le nom de l'AK 47, il sait de quel type d'arme il s'agit, de quelle classe il appartient, car il prend toutes ces informations de ce tableau de données. C'est ainsi que vous l'utilisez et maintenant nous devons créer des noms pour ces armes. Listez-le pour le moment. Compilons et sauvegardons, et passons à autre chose. 102. 8.17 Ajouter le nom de l'arme: Maintenant, ce que nous devons faire, c'est tout fermer. Revenons aux armes, et passons à la base d'armes. Maintenant, à l'intérieur d'ici, créons une nouvelle variable appelée nom de l'arme. Donnons-lui le type de chaîne. Ce n'est donc qu'un texto. Et si vous compilez, vous pouvez voir que vous pouvez maintenant écrire quelque chose ici pour le nom de l'arme. Puisque vous créez cette variable, n'oubliez pas que puisque vous l'avez créée dans la classe de plan parent, tous les enfants hériteront de cette Si vous ouvrez le Q 47, vous pouvez voir dans les paramètres de classe par défaut que vous pouvez désormais écrire un nom d'arme Vous pouvez le personnaliser pour chaque arme. Vous ajoutez maintenant la variable à l'intérieur de la base d'armes, puis vous pouvez modifier cette variable pour qu' elle soit spécifique à chaque enfant. Le nom de l'arme de l'AK 47 est simplement K 47 pour les quatre. Je peux le voir ici. Je n' ai pas besoin de cliquer ici. Le nom de l'arme pour les quatre est 41. Fermons-le également. Pour le pistolet, c' est juste un pistolet. En fait, je vais me souvenir compiler ici comme ça. Enregistrez tout. Vous avez maintenant écrit le nom de l'arme pour chacune d'elles. Nous avons besoin du nom de cette arme, extrayons les informations correctes du tableau de données, car si le nom de l'arme est pistolet, nous allons saisir le nom de l'arme et toutes ces informations seront extraites d'ici OK, fermons-le maintenant. Maintenant, ce que nous pouvons faire, par exemple, c'est aller voir le joueur. Passons au joueur. Je vais juste vous montrer que vous ne devriez pas vraiment suivre ici. En fait, je veux juste vous donner un exemple. Nous avons par exemple cette arme pillée. Je peux emporter cette arme pillée d'ici. Maintenant, je peux dire le nom et prendre cette variable du nom de l'arme. À partir de là, je peux encore dire des informations sur les armes. Il s'agit de la bibliothèque de fonctions. Maintenant, nous pouvons réellement le brancher. Disons que j'ai marché sur un AK 47. Je l'ai parcouru et maintenant je peux en extraire les informations en imprimant simplement une chaîne sur mon écran et en la connectant ici. Prenons ceci et disons «   cassons cette structure ». Imprimons simplement le nom de cette arme. Si je me contente d'accepter, je marche, en fait je dois choisir, donc si je choisis des terroristes et que je marche sur ce pistolet, il imprimera Si je le lis en quatre, il sera imprimé en 41. Vous pouvez donc voir qu'il extrait désormais correctement informations en fonction du nom de l'arme Permettez-moi de le supprimer pour le moment. N'oubliez pas que lorsque vous ajoutez cette variable à la classe parent, souvenez-vous que vous devez entrer dans chacun des enfants et en modifier la valeur. OK, allez-y, sauvegardez tout et passons à autre chose. 103. 8.18 Remplacer la variable WeaponType: Bien, dans cette leçon, je vais remplacer la variable type d'arme. Si nous allons à la base d'armes, souvenez-vous que nous avons créé ce type d'arme et que nous l' utilisons ici pour vérifier si le joueur possède déjà l'arme dans l' inventaire. Ce type d'arme, nous l'avons déjà fabriqué à l'intérieur de la structure. Si vous allez à la structure, souvenez-vous que nous avons créé ce type. Maintenant, nous n'avons plus besoin de ces variables supplémentaires. Nous pouvons en fait simplement utiliser notre structure pour le remplacer. Ce que nous pouvons faire maintenant, au lieu de tout cela, au lieu de prendre le type d'arme comme celui-ci, nous pouvons maintenant demander des informations sur les armes. On peut prendre ça ici, inscrire le nom comme ça. N'oubliez pas que nous sommes à l'intérieur de la base d'armes. Le nom est déjà là. Maintenant, pour connaître le type d'arme, il faut faire glisser le pointeur et dire «   break » et on peut le casser. Ce que vous pouvez faire, vous pouvez également écrire cliquez ici et dire split struct. Et tu peux les obtenir comme ça. Cependant, j'aime simplement écrire break et les avoir ici à la place. Maintenant, c'est juste la préférence. Je peux maintenant prendre ce type, c'est le type d'arme, et je peux le brancher ici. Maintenant, vous pouvez voir que c' est la même chose. Maintenant, je peux supprimer cette variable de type d'arme pour masquer les épingles que vous n'utilisez pas. Pour le rendre plus beau, vous pouvez cliquer dessus et appuyer sur masquer les épingles non connectées. Ça ressemble à ça. D'accord, je dois m'organiser un peu plus tard, mais laissez-le être là pour ce type d'arme. Ici, je m'éloigne de ça et je répète mon nom. Obtenez le nom de l'arme, obtenez des informations sur l'arme. Et ensuite tu pourras le casser. Ensuite, vous pouvez brancher le type ici, place, nous pouvons également le supprimer. Maintenant, vous pouvez voir que nous n' utilisons plus cette variable. Nous avons toutes les informations sur l'arme qu'il contient. OK, je vais organiser ça un peu. Très bien, maintenant c'est un peu plus organisé pour voir si vous avez d'autres références de ce type d'arme. Au lieu de le chercher, je sais que nous l'avons également utilisé dans la base de joueurs. Mais si vous ne vous en souvenez pas, disons que vous venez ici un mois plus tard et que vous ne vous souvenez pas où vous l'avez utilisé. Ailleurs, vous pouvez voir que si vous essayez de le supprimer maintenant, cela indique que le type d'arme variable est déjà utilisé. Tu veux le supprimer ? J'appuie sur « non », car nous l'utilisons toujours. Cliquez ici avec le bouton droit de la souris et dites « trouver des références ». Maintenant, ici en bas, il ne s'agit que de trouver les références dans ce plan Mais si vous cliquez sur cette petite icône, elle se retrouvera dans tous les plans Il va chercher dans tous les plans. Et vous pouvez voir qu'il est utilisé dans la base de joueurs de BP. Si vous double-cliquez sur la variable ici, cela nous amène et nous l'avons utilisée ici dans l'arme à butin où nous avons défini le type d'arme équipée Au lieu de recommencer, prenons cette arme pillée Disons de mettre une arme dedans. En fait, obtenez des informations sur les armes. Obtenez le nom, obtenez le nom de l'arme. Au lieu de faire tout cela encore et encore, je vais simplement passer à la base d'armes et je vais copier ceci et cela ici. Donc, les informations sur l'arme Git et la structure des freins. Donc je peux juste le coller ici et je peux brancher ici, c'est un peu plus rapide. Et vous pouvez maintenant brancher le type ici. Et vous pouvez le supprimer à nouveau pour essayer de le rendre aussi organisé que possible. Mais vous pouvez voir que c'est très long maintenant par rapport à avant. Cependant, encore une fois, vous avez toutes les informations contenues dans cette structure, elle sera donc beaucoup plus propre pour vous. Très bien, maintenant nous l' avons et ouvrons à nouveau mes références. Je vais double-cliquer sur celui-ci maintenant. Et je l'utilise ici lorsque je souhaite changer ou attacher l'acteur à mon composant de maillage. Encore une fois, comme avant. Copions tout cela parce que nous n' utilisions en fait que cette arme pillée Encore une fois, je vais y retourner, pillé des représentants et je vais le supprimer faire de l'espace au-delà de celui-ci , puis le connecter Et puis il suffit de les repousser. C'est pareil ici. Supprimez-les et connectez-les. Juste comme ça. OK, maintenant vous avez compilé, sauvegardez tout. Et ça devrait être tout ce que tu peux voir. Tu n'as pas d'autres références. C'était chacun d'entre eux. Si vous revenez maintenant à la base d'armes et que vous appuyez sur Supprimer, elle sera automatiquement supprimée car vous ne l'utilisez plus. Maintenant, vous pouvez voir que nous les avons tous remplacés. Les plans seront de plus en plus propres à l'avenir. Nous n'avons pas dix variables pour l'arme. Nous les avons tous à l'intérieur de notre fonction, de notre structure. Et à partir de cette structure, il prend ces informations de la table de données. Et nous pourrons toujours le rallonger plus tard. Mais pour l'instant, ce sont toutes les informations dont nous avons besoin. Maintenant, sauvegardons tout et passons à autre chose. 104. 8.19 Action d'entrée d'arme de lancement: OK, avant de passer à la fonctionnalité Lot, comme lorsque vous appuyez sur un bouton, par exemple. Si j'appuie sur E sur une arme au sol et que je la perds, je pense qu'il vaut mieux commencer par une arme larguée. Parce que si vous tenez une arme dans votre main, vous devez également la laisser tomber lorsque vous pillez l'autre Commençons par lâcher une arme avant récupérer avec une touche du clavier. Passons à l'entrée ici dans le dossier du lecteur. Cliquez avec le bouton droit de la souris sur Entrée. En fait, tu peux essayer de le faire toi-même si tu veux. C'est le bon moment pour faire de l'exercice. Nous en avons déjà fait beaucoup. Tu devrais être capable de le faire toi-même. Essaie de le faire toi-même. Si possible, essayez de créer une action de saisie ou de lâcher une arme. Et ajoutez-le au contexte de mappage d'entrée. Et ajoutez également l'événement à la base de joueurs. Maintenant faisons-le ensemble ici. Passons à droite sur Input et sélectionnons Input Action. Appelons ça une arme. Ouvrons-le. En fait, nous n'avons pas besoin de changer quoi que ce soit ici. Passons au contexte de cartographie. Ajoutons un nouveau mappage. Sélectionnons l'arme à larguer. Je vais lâcher l'arme avec la touche G de mon clavier, comme dans Counterstrike Vous pouvez maintenant utiliser tout ce qui convient au modificateur. Je vais cliquer sur Pressed, parce que vous devez appuyer sur le bouton et le code sera lu une fois qu'il ne l'aura pas dépassé. OK, maintenant nous l'avons. Fermons-le. Passons au joueur, à la base de joueurs. Et à l'intérieur d'ici, passons au graphique des événements. Ici, vous pouvez cliquer avec le bouton droit de la souris et réécrire le nom, comme vous l'avez fait avec l'arme saisie ou larguée. Cliquez avec le bouton droit de la souris et dites « lâchez une arme » et voici l' événement que vous devez utiliser. Nous pouvons maintenant coder la logique du drop weapon, enregistrer tout et passer à la suivante. 105. Logique de l'arme de largage: Très bien, alors allons-y avec la logique du largage d'armes. Nous devons maintenant savoir quelle arme souhaitez-vous retirer de l'inventaire. Maintenant, exécutons-le sur le serveur. Encore une fois, nous devons le faire passer par le serveur pour éviter la triche. Je vais donc créer un nouvel événement personnalisé appelé SRV Weapon Exécutons cela sur le serveur de manière fiable. Faisons fonctionner le serveur qui se trouve à l'intérieur d'ici. OK, donc quand j'appuierai sur la touche G pour lâcher mon arme, elle passe par cet événement personnalisé. Nous devons maintenant savoir quelle arme nous allons larguer. Nous lâchons l'arme que nous tenons entre nos mains. Nous devons savoir quelle est l'arme que nous tenons entre nos mains. À l'heure actuelle, il s'agit en fait de ce type d'arme équipée. Il sait si nous tenons un fusil, un pistolet ou si nous ne sommes pas armés pour cette arme équipée En fait, je vais le renommer pour qu'il sonne mieux. Ce n'est pas une arme équipée, c'est un type d'arme équipée. Nous devons également changer le nom ici. En fait, installez une arme équipée. C'est un type d'arme équipé. Je vais aussi le faire ici, définir le type d'arme équipée. Et il en va de même pour les variables. Ils sont appelés type d'arme équipée et type d'arme équipée. Type d'arme équipée. C'est plus correct qu'avant. Maintenant, nous savons déjà quel est le type d'arme équipée. Nous devons le trouver dans l'inventaire. Nous devons faire l'inventaire des armes. Et nous pouvons économiser pour chaque boucle avec pause. Et reconnectons-le ici. N'oubliez pas que nous avons créé ce nom lors de la dernière leçon. Prenons ceci et disons name variable et prenons ceci get weapon name. Nous avons maintenant le nom de l'arme de l'objet. L'arme est là. Ensuite, à partir de ce nom d'arme, obtenez à nouveau des informations sur l'arme. La structure ici, cassons-la. Ce qui nous intéresse, c' est que nous voulons obtenir le type d'arme dès maintenant à partir de l'inventaire que nous parcourons en boucle Si le type que nous examinons actuellement dans l'inventaire est égal, énumération égale, s'il est égal au type d'arme équipée, cela signifie que nous avons cette arme dans l'inventaire et que c'est celle que nous détenons correctement maintenant. Si c'est le cas, nous voulons lâcher cette arme dès maintenant. OK, si c'est le fait que l'arme que je recherche actuellement dans mon inventaire est la même que le type d'arme équipée actuellement. Cela signifie que cette arme est en fait celle que nous voulons retirer de l'inventaire. Si c'est correct, cliquons ici avec le bouton droit de la souris et transformons-le en variable. Je vais appeler ça une arme à larguer. Et nous pouvons maintenant le connecter à ici. Tout comme avant que vous ne fassiez de celui-ci où, voyons si nous pouvons le trouver. Tu as fabriqué cette arme à butin. Lorsque vous récupérez l' arme, vous supprimez la collision ici de la fonction de notification la même chose que nous devons faire ici avec l'arme larguant, parce que nous devons réactiver la physique Souvenez-vous que nous avons dû simuler la physique des armes dès le début. Nous devons en fait faire la même chose ici pour celui-ci. Ajoutons quelques notes de route arrière pour que cette arme puisse être larguée. Cliquons dessus et disons : compilons. Utilisons cette fonction dans la leçon suivante. Mais pour l'instant, continuons ici, nous lâchons l'arme. Et pensez également à le retirer de l'inventaire. Je vais prendre cet inventaire ici, le coller ici et dire « Supprimer l'article ». Supposons supprimer un article comme ça. Nous allons maintenant sélectionner l' élément que nous voulons supprimer. Il s'agit de cette arme ou de cet objet d'inventaire. Nous le retirons maintenant de l'inventaire, car si vous ne le faites pas, il est toujours dans l'inventaire. Si vous le laissez tomber par terre, nous ne devons pas oublier de mettre également à jour le type d'arme équipée. Faites glisser le pointeur à partir d'ici et dites «   définir, équiper, type d'arme ». Pour l'instant, réglons-le simplement sur désarmé. Nous pourrons le modifier plus tard si vous avez un pistolet ou quoi que ce soit d'autre en ce moment, lorsque vous lâchez l'arme, réglons-le simplement sur désarmé Et c'est tout. Maintenant, tu es en train de lâcher l'arme. Nous en avons maintenant terminé avec celui-ci. Cependant, nous devons encore créer cette fonction de représentation et de notification. Faisons-le dans la prochaine leçon. 106. 8.21 Notifier aux représentants de l'arme de largage: Bien, ouvrons l' arme pour faire perdre de la réputation, prévenir. Si vous ne vous souvenez pas de ce que nous avons fait, vous pouvez toujours revenir à l'arme évoquée Ici, vous avez supprimé la simulation physique, vous avez supprimé la collision pour l'arme parce que vous la tenez maintenant dans votre main et vous avez également supprimé la collision par sphère de collision. Vous pouvez en revanche, si nous revenons à notre arme lâchée, nous devons d'abord détacher l'arme de la main Parce que souvenez-vous que dans les armes pillées, vous les avez attachées au personnage Ce que nous devons faire d'abord, c'est prendre cette arme pour la lâcher. Nous devons dire détacher. Et vous pouvez sélectionner celui-ci. Détachez-vous de l'acteur. Maintenant tu es en train de détacher ce truc, cette arme à larguer à cet acteur. Conservons l'emplacement, rotation et l'échelle nécessaires pour que le monde reste là où il se trouve actuellement dans le monde. Il conserve simplement l' emplacement et ainsi de suite. Tout le contraire des armes pillées. Supposons que nous définissions d'abord la collision car nous ne pouvons pas simuler la physique. Si vous ne définissez pas correctement la collision, activons-la C'est en fait l'arme. Si vous revenez en arrière, si vous ne vous en souvenez pas, retournez toujours à la base d'armes, vérifiez ce qui doit entrer en collision. N'oubliez pas que c'est l'arme qui a besoin de cette collision ici. En fait, nous devons prendre ceci et prendre l'arme en premier, la variable d'arme, l'obtenir. Ensuite, nous pouvons dire définir la collision activée ici. Connectons-le. Souvenez-vous que la collision n' était qu'une question de physique. Nous n'avons pas besoin de requête pour ce maillage ici, uniquement en physique. Et nous devons également simuler la physique. Et c'est ce que nous faisons avec l'arme. N'oubliez pas que si vous revenez en arrière et que vous cliquez sur l'arme, c'est ici que vous simulez la physique. Il ne figure pas dans les valeurs par défaut de la classe. Il faut sortir de l'arme et dire simuler la physique. Et sélectionnez ce Dieu, connectez-le et activez la physique. Allez-y et prenez quelques notes de redirection pour le rendre plus agréable. OK, maintenant nous simulons la physique et certaines collisions sont également activées. Maintenant, n'oubliez pas que vous avez également désactivé la collision. Si je reviens à l'arme pillée, vous avez également désactivé la collision pour la sphère de collision, vous devez prendre celle-ci et vous devez prendre la variable sphère de collision Vous descendez en bas, prenez la sphère de collision, puis vous activez à nouveau une collision, puis vous sortez et vous la sélectionnez. Et oui, juste comme ça. Vous devez maintenant définir la collision sur requête uniquement, car la collision est en fait une requête uniquement pour la sphère de collision. Vous pouvez le voir ici. Requête uniquement, nous devons le configurer sur Query only. Je pense que c'est la seule chose que nous devions faire. Nous allons le tester. Voyons si tout fonctionne. Si nous avons une boîte à réparer, incarnons les terroristes. Maintenant, si je lance l'arme à haute voix, par exemple sur l'AK, et que je clique sur G , vous pouvez voir qu'elle tombe par terre. Juste comme ça. Génial. Jouons à la première personne, pour que je puisse mieux voir les choses. Je vais cliquer sur mon bras à ressort pour accéder à la base de joueurs et le mettre à zéro. Jouons à la première personne. Passons maintenant à ce K. Maintenant que je le tiens, j'appuie dessus pour le faire tomber. Maintenant, vous pouvez voir qu'il est au sol. Génial. Essayons de prendre celui-ci ici et de le déposer par terre. Maintenant, vous pouvez voir que nous avons un dollar. Je ne pense pas que ce soit invisible parce que vous ne pouvez pas le voir sur mon dos. Je me demande ce qui se passe. Prenons le printemps. Je vais le régler à 600 pour voir ce qui se passe. Et il ne s'agit en fait que du M quatre. Vous pouvez donc voir que le pistolet fonctionne correctement. Le K fonctionne également correctement. Il ne se passe rien d'autre que le M quatre. Je le charge correctement la première fois. Cependant, si je le laisse tomber et que je marche dedans, oh, il est en fait en dessous de moi. Tu peux le voir sur mes pieds. C'est là. Réparons rapidement à cela. Je pense que nous devons réinitialiser l'emplacement. Si vous allez voir le représentant, prévenez de l'arme pillée. Chaque fois que vous récupérez une arme, vous devez la réinitialiser, transformer. Faisons-le ici après avoir attaché le composant au composant racine. Ce que je peux faire ici, c'est prendre l'arme et je peux juste dire qu'elle est réinitialisée. Et vous pouvez voir ce on appelle réinitialisation, transformation relative. Cela va réinitialiser la transformation de cette arme ici, dans le plan Comme il ne suffit pas rattacher au composant racine, nous devons également en réinitialiser la transformation Compilons et jouons pour voir si cela résout notre problème. J'en prends quatre, je les laisse tomber. J'en prends encore quatre, et maintenant vous pouvez voir que cela fonctionne correctement. Si je reviens avec mon bras à ressort, mets-le à zéro. Incarnez un terroriste dès maintenant. Je peux maintenant le prendre en quatre et le laisser tomber. Je peux le reprendre. Je peux le laisser tomber. Vous pouvez voir maintenant qu'il fonctionne correctement. C'est un bon mécanicien qui doit d'abord sortir de la sphère de collision avant de pouvoir à nouveau piller. Parce que vous pouvez imaginer que si vous la laissez tomber et que vous n'avez pas cette fonctionnalité, vous continuez à piller l'arme Lorsque vous le déposez en dessous de vous, vous devez sortir et rentrer à nouveau et tout fonctionne parfaitement, d'accord. La dernière chose que nous avons également oubliée, ou que j'ai oubliée, c'est de rompre la boucle. Parce que si vous trouvez l'arme ici, nous devons vraiment rompre la boucle. Nous devons le prendre et le refaire jusqu' au bout pour le casser. Et double-cliquons pour rediriger les nœuds afin de leur donner une meilleure apparence Parce que maintenant, si nous trouvons l'arme, nous devons arrêter la boucle. Nous n'avons pas besoin d'en lire plus car nous avons déjà trouvé les résultats. Nous devons le sortir de la boucle. Cela le rendra plus optimisé. Maintenant compilons et cliquons sur Play. Et jouez le chara juste pour vérifier si tout fonctionne correctement. Maintenant, nous pouvons voir que tout fonctionne bien avec le pistolet également. Tout fonctionne bien également. Parfois, vous recevez une erreur si vous lâchez l'arme alors que vous n' avez rien ici. Au lieu de simplement lâcher l'arme, nous devons vérifier si vous en avez réellement une ou non. Nous devons prendre ce type d' arme équipée et nous demander si c' est équivalent à une arme non armée En fait, on peut dire que ce n' est pas égal ? Ce sera bien mieux. Si ce n'est pas égal à désarmé, vous pouvez lâcher l'arme S'il n'est pas armé, vous n'avez rien en main et cela n'a aucun sens de lâcher l'arme S'il n'est pas désarmé, vous pouvez lâcher l'arme, ce qui l'améliorera beaucoup Et retirez également une boîte que vous pourriez avoir plus tard si vous lâchez l'arme. Et vous pouvez voir maintenant que tout fonctionne comme prévu. Cependant, ne vous laissez pas trop tromper car essayons maintenant de le jouer en tant que client Maintenant, si je jouais en tant que client en tant que terroriste, maintenant si je tombe sur une arme, vous pouvez voir qu'elle est correctement localisée. Et si je clique sur G pour lâcher l'arme, d'accord, tout va bien. Cependant, si je vais le piller à nouveau, vous verrez que je tiens quelque chose et que je tiens réellement l'arme Cependant, il est toujours sur le terrain. Que se passe-t-il ? Ce bogue se produit parce que le représentant envoie des notifications Si je vais dans la base de joueurs, le représentant m'informe qu'il n'est appelé que si la valeur change Par exemple, ici, si je perds l'arme ici, disons que je fais allusion à l' arme. OK, sympa. J'ai défini cette variable, ce représentant indique qu'elle est réglée sur pistolet Maintenant, si je le laisse tomber, revenons au jeu. Si je le dépose ici, si j'alloue les quatre, d' accord, c'est sympa de le déposer Si je vais au pistolet, ça marche bien. Tu peux voir que je peux le faire. Cependant, je ne peux pas perdre deux fois la même arme. C'est le cas, mais quand j'entre dedans, vous pouvez voir que ça fonctionne et qu'il y a quelque chose de bizarre. En effet si c'est la même valeur qui est entrée ici que la dernière fois, elle n' appellera en fait pas de fonction de notification de représentation La fonction rep notify ne sera pas appelée s' il s'agit exactement de la même valeur que celle que vous avez saisie ici Et cela va avec tout. Par exemple, supposons que vous disposiez d'une variable vectorielle et que vous en définissiez une Supposons que vous définissiez l'emplacement de l'arme. Supposons que vous définissez l'emplacement de l'arme et que vous la fassiez passer par une notification de représentant Disons que l' emplacement de l'arme doit être 000 et que vous l'avez branchée ici Maintenant, la prochaine fois que vous l' exécuterez et que l'emplacement de l'arme sera exactement le même, de notification par les représentants ne sera pas cette fonction de notification par les représentants ne sera pas exécutée La fonction de notification par représentant ne s' exécute que si vous modifiez la valeur Supprimons celui-ci ici. Supprimons ce que nous venons de créer sur la position de l' arme représentative. Ce que nous devons faire ici, c'est changer cela. Faisons-le réellement dans la prochaine leçon. 107. 8.22 Réinitialiser la valeur Notify Rep: Très bien, réinitialisons maintenant la fonction de notification des représentants pour qu'elle fonctionne correctement. Donc, ce que nous pouvons faire ici maintenant, c'est vous qui utilisez cette arme larguée. Vous l'exécutez correctement. Maintenant, réinitialisons-le ici. Lorsque la boucle est terminée et que tout cela est terminé, redéfinissons cette valeur. Donc, la prochaine fois que nous le définirons, même s'il s' agit de la même valeur, il exécutera cette notification, car nous l'avons réinitialisée auparavant. Ici, ce que je dois faire, c'est lâcher cette arme. Allons prendre ça ici. C'est ici, l'arme à lâcher. Allons l'emporter ici. Laissez-nous nous connecter au complet. En fait, c'est la seule chose que vous devez faire si vous n'insérez rien dans cette valeur, cela supprimera toutes les informations qu'elle contient et réinitialisera cette variable ici. Ce que nous pouvons faire maintenant, c'est qu'il y aura un petit bogue, et vous le verrez probablement aussi. Maintenant, si nous cliquons sur Play, je prends ceci, je le laisse tomber, vous pouvez voir qu'il est maintenant en l'air. Nous le récupérons correctement. Cependant, il est toujours dans l'air. C'est vrai, laisse-moi juste fermer ça. C'est parce que vous exécutez toujours cette fonction ici. Et en même temps, vous réinitialisez cette variable. Nous devons en fait lui accorder un petit délai pour lui donner une chance de jouer à cette fonction de notification. Avant de le réinitialiser. Permettez-moi de retarder par quelque chose de très petit, comme 0,1, puis nous pourrons réinitialiser cette variable. Compilons, jouons et voyons ce qui se passe. Maintenant, si je joue le rôle d'un terroriste, je le prends et je le laisse tomber. Vérifiez que cela fonctionne correctement. Si je le récupère. Maintenant, il y a toujours une erreur et nous devons faire de même pour le luth. Maintenant, il est écrit que X n'essaie pas de lire la propriété de l'arme à lâcher de l'acteur. Maintenant, ce que nous devons faire ici, car lorsque nous l'exécutons, souvenez-vous que lorsque vous exécutez une fonction de notification de représentation, vous modifiez la valeur même si vous y mettez zéro Même si vous videz, vous modifiez toujours la valeur Et il gérera réellement tout cela. Encore une fois, la façon dont nous pouvons faire est de cliquer avec le bouton droit sur cette arme pour convertir en un get validé et connecter ici chaque fois qu'elle est valide. Nous pouvons continuer, connecter et exécuter ce code chaque fois qu' il n'est pas valide. Cela signifie qu'ici, chaque fois que nous ne branchons rien ici, cela le rend non valide et nous ne faisons rien s'il n'est pas valide. Compilons et voyons si cela résout réellement les problèmes. Avant de continuer, je peux le déposer ici, y entrer, et vous verrez qu'il est toujours invisible et que nous devons vider l'autre variable. Cependant, vous pouvez voir que nous n'avons aucune erreur, elles sont donc corrigées. Retournons en arrière. Passons maintenant aux armes pillées. Nous devons également réinitialiser celui-ci. N'oubliez pas que cette variable est également définie sur la même variable car vous pillez le pistolet encore et encore Maintenant, ce que nous pouvons faire ici, n'oubliez pas que celui-ci n'est pas vide Nous vérifions donc si la gamme d'armes qui se chevauchent est vide ou non. S'il est vide, on place à nouveau l'arme à butin, ici Encore une fois, je peux dire retarder de 0,1 seconde pour lui donner une chance de jouer. Chaque fois que c'est fait, je peux prendre cette arme pillée configurer comme ça et vider les valeurs qu'elle contient. N'oubliez pas d'y revenir et de vous assurer que cela est valide chaque fois que vous le faites Cliquez avec le bouton droit de la souris sur Convertir en un get validé, comme avant. Uniquement lorsqu'il est valide. Nous voulons exécuter le code car s'il n'est pas valide, nous ne voulons rien faire. Laissez-nous compiler, tout enregistrer. Permettez-moi de cliquer sur jouer maintenant, et cela devrait fonctionner. Si je joue le rôle d'un terroriste, je lâche l'arme, je pille à nouveau. Vous pouvez voir qu'il est correctement pillé. Si je le laisse tomber encore beaucoup, vous pouvez voir maintenant qu'il fonctionne parfaitement. C'est correct. Maintenant, il fonctionne en tant que client. Et si je joue au serveur d'écoute du jeu. Donc, si je joue en tant que serveur et en tant que client. Voici maintenant mon serveur. Je vais apparaître. Et voici mon client. Je vais aussi apparaître. J'ai fait allusion au pistolet en tant que client et vous pouvez le voir ici sur le serveur, et si le serveur perd K par exemple, vous pouvez le voir également Si je le laisse tomber, j'ai fait allusion, vous pouvez voir que vous pouvez le voir sur les deux écrans ici en tant que client, je peux supprimer ce lot, tout fonctionne correctement Si j'ai fait allusion à l'information, elle est également correcte OK. Tout est correct, ça a l'air bien. Maintenant, il y a un petit problème. Si je vais voir le joueur et que le joueur laisse tomber l'arme, vous pouvez voir que je tiens maintenant l'arme. Cependant, en tant que joueur, en tant que client, je ne vois rien. Mais en tant que serveur, vous pouvez le voir, je peux voir le K. Que se passe-t-il maintenant ? Vous pensez peut-être qu'il s'agit d'un problème de réplication, car en tant que serveur, je peux voir les informations correctes, mais en tant que client, je ne peux pas voir les informations correctes. Il s'agit peut-être d'un problème de réplication. Comme vous pouvez voir sur le sol, je peux vraiment voir l'arme. Il y a quelque chose qui ne va pas. Maintenant, je ne soupçonne aucun problème de réplication. En fait, je peux voir l' arme au sol. S'il s'agissait d'un problème de réplication, l'arme devrait être sur mon dos. Parce qu'alors il pense que j'ai déjà quelque chose en main et qu'il me poserait mon Ak sur le dos. Mais pour une raison étrange, l'arme est en fait au sol et la voici dans ma main. Le problème est très probablement que vous êtes en train de piller l'arme En tant qu'autre joueur, vous êtes en train de piller l'arme avant d'avoir eu l' occasion de jouer tout ce code dans l'arme larguée Faisons-le réellement dans la prochaine leçon. Réglons ce problème. 108. 8.23 Booléen de l'interaction avec les armes: Pour nous assurer que nous ne pouvons pas interagir avec cette arme tant qu'elle n'est pas terminée et qu' elle n'a pas été réinitialisée. Ensuite, nous voulons vraiment interagir avec l'arme, car à l' heure actuelle , les joueurs interagissent avec elle beaucoup trop vite. Allons à la base d'armes. Et à l'intérieur, je vais créer une nouvelle variable. Disons que cela peut être interagi. Transformons-en un lingot. Passons maintenant à la base de joueurs. Faisons en sorte que vous puissiez interagir avec lui par défaut. Si nous cliquons simplement sur ce lingot, je vais le définir sur true default. Ce que nous pouvons faire maintenant, c'est aller voir le joueur. Maintenant, je ne veux pas qu'il interagisse avec lui. Une fois que nous aurons trouvé cette arme et que nous voudrons la lâcher, je la retirerai. Nous avons maintenant cette arme. Je vais juste faire le double ici. Et à partir de là, je peux dire et être interagi avec moi et nous pouvons le définir comme faux Maintenant, nous n'avons pas besoin de le reproduire et la raison en est que nous le faisons simplement passer par le serveur Parfois, vous pensez que vous reproduisez des choses, parfois vous ne répliquez pas De quoi ai-je réellement besoin pour répliquer Si vous avez besoin de certaines variables que vous utilisez uniquement pendant les fonctions du serveur, pas nécessaire de les répliquer Vous définissez si cela peut être interagi avec ou non. Si vous utilisez ces informations dans les fonctions du serveur uniquement pour faire preuve logique et que les autres joueurs n'ont pas besoin de les connaître, vous n' avez pas besoin de les reproduire Cependant, si vous voulez autre chose, par exemple, quelle arme équipez-vous si vous l'utilisez, vous pouvez voir le type d'arme équipée ici En fait, je l'utilise ici où le client exécute également le code. Maintenant, si cela n'est pas reproduit, cela donnera une ère au client Cependant, il se peut que si je l'utilise ici où se trouve également le client, je doive le reproduire Mais comme je ne l'utilise que dans la logique du serveur, je n'ai pas besoin de le reproduire C'est comme un truc interne. Tu peux le sauvegarder maintenant. Maintenant, je ne peux plus interagir avec l'arme ici. Chaque fois que c'est terminé, je veux définir ma capacité d'interaction avec laquelle je peux interagir avec elle comme vraie Nous devons maintenant le définir avant celui-ci, car n'oubliez pas que vous supprimez la variable. Avant de supprimer la variable, nous devons l'utiliser. Supposons qu'il soit possible d'interagir avec cela. Et je vais le définir sur true car maintenant nous pouvons interagir avec elle et ensuite nous voulons supprimer cette variable. Vous ne voulez pas le faire ici car vous supprimez la variable, celle-ci ne serait donc pas valide. Maintenant, c'est le supprimer. Maintenant, ce que nous devons faire, c'est nous rendre à la base d'armes ici. Nous devons également écrire ici que si vous ne pouvez pas interagir avec elle, ne faites rien après l'autorité. Faisons la grève à partir d'ici. N'oubliez pas que nous n'avons pas reproduit cette variable. Si nous écrivons quelque chose ici, cela nous donnera une ère depuis que nous l'écrivons Une fois que le switch aura autorité, nous ne l'utiliserons donc que sur le serveur, alors tout ira bien, nous n'avons pas besoin de le reproduire Supposons qu'il soit possible d'interagir avec cela et créons une branche Disons, peut-on interagir avec cela ? Si c'est possible, lancez le code. Si ce n'est pas possible, je vais retarder le code de 0,1 seconde, disons. Ensuite, je vais recommencer. Je continue donc à parcourir ce code en boucle. En fait, je vais organiser ça un peu plus. Donc, en gros, ce que je fais ici , c'est parcourir le code en boucle pour m' assurer que je peux interagir avec mon arme avant de créer un code d'interaction Alors laissez-moi juste essayer de organiser ici, laissez-moi le préciser. Alors maintenant, ce que je dis essentiellement, c'est allez-y , jetez un œil et voyez s'il est possible d' interagir avec cela Si c'est possible, lancez le code à l' avance. Si ce n'est pas le cas, je vais boucler ou retarder le code de 0,1 seconde. Ensuite, je vais y retourner et vérifier s'il est possible d'interagir avec cela Je continue à le parcourir en boucle et j'attends cela soit vrai, car chaque fois que vous lâcherez l'arme, cela se produira très rapidement Vous ne remarquerez donc même pas celui-ci. Ne vous inquiétez pas, cela ne nuit pas aux performances car cela va se terminer très rapidement. Et ça ne va pas fonctionner plusieurs fois, parce que celui-ci va se réaliser très vite. Donc, celui-ci ne fonctionne pas plusieurs fois. Ne vous inquiétez donc pas pour ça. Essayons de cliquer sur jouer maintenant et de voir ce qui se passera si je joue alors que le terroriste maximise le jeu. Je pille quelque chose et je clique dessus, vous pouvez voir que je le pille instantanément Et c'est le problème que nous avons actuellement. Si je lâche l'arme très rapidement, je continue à la piller parce qu'elle va vraiment lâche l'arme très rapidement, je continue à la piller parce qu'elle va là et vérifie si je peux interagir avec elle Même si je suis le même joueur, le même joueur qui lâche l' arme peut interagir avec elle C'est donc quelque chose que nous devons corriger. Cependant, à l'heure actuelle, le code fonctionne. Nous ne pouvons interagir avec elle que chaque fois que cela est passé. Le fait qu'il soit invisible ne nous apporte donc aucune boîte. Passons donc à la leçon suivante. 109. 8.24 Supprimer l'interaction de Dropping Player: Très bien, nous devons maintenant écrire un peu de code ici avant que cela puisse fonctionner. Parce que nous voulons nous assurer que le joueur lâche l'arme en ce moment, nous voulons nous assurer que le joueur qui laisse tomber ces informations ne les pille Encore une fois, nous voulons juste que l' autre gars pille les informations. Nous ne voulons pas interagir avec elle tout de suite, sinon vous continuerez à la piller Nous devons définir l'arme larguée. Permettez-moi d'organiser un nouvel événement pour les clients. Et appelons ça une arme larguée en un seul set. Et faisons-le à nouveau passer par le serveur. Ensemble de serveurs abandonné. Nous devons ensuite l' exécuter sur le serveur en étant fiables et nous devons le faire fonctionner comme d'habitude ici, à savoir installer une arme larguée. OK, ici en bas, il suffit de définir cette variable. Je vais juste cliquer ici, ajouter une nouvelle variable. C'est juste la base d'armes parce que nous avons besoin de l'arme. Appelons ça une arme larguée. Connectons-le également ici. Pour celui-ci, transformons-le en variable et disons arme larguée. Maintenant, je ne pense pas que nous ayons besoin de le reproduire, car je pense que nous n'avons qu' à le faire passer par le serveur Mais je ne peux pas vraiment le déterminer pour le moment. Faisons le code et plus tard, si nous l'utilisons également dans le client, nous devrons le reproduire Pour l'instant, ne le répliquons pas. J'aime que les choses ne soient pas répliquées lorsqu'elles n'ont pas besoin d'être répliquées Car n'oubliez pas que plus vous reproduisez d' informations, plus votre jeu sera lent Parce que vous envoyez des informations du serveur au client. Plus vous envoyez d'informations, moins les performances diminuent. Veillez simplement à ce que les choses ne soient pas répliquées chaque fois que vous le pouvez. Nous avons maintenant cette arme larguée. Maintenant, lorsque vous pillez des objets ici, lorsque vous interagissez avec eux dans la base d'armes, nous devons nous assurer que vous ne pillez pas l'arme larguée Ce que je dois faire, c' est de la part du joueur, avant de faire tout ça, je peux le faire disparaître. Avant de faire tout cela, je peux prendre ça et dire abandonné. Nous prenons ça ici. Si l'arme lâchée est égale à moi, cette arme, j'essaie de la récupérer en ce moment Si c'est égal, ne faites rien. Si ce n'est pas égal, supprimons simplement ceci et disons « pas égal ». Ce sera mieux pour la lisibilité. Si l'arme larguée n' est pas égale à l'arme avec laquelle j' essaie d'interagir en ce moment, nous pouvons alors la piller Cependant, si c'est pareil, ne faites rien. À l'heure actuelle, nous n'avons pas défini l'arme larguée. Faisons-le réellement. Permettez-moi de dire ceci. Permettez-moi de revenir à la base de joueurs ici. Chaque fois que nous lâchons l'arme, définissons l' arme et définissons-la. Permettez-moi d'appeler cet événement ici. Placez une arme larguée, laissez-moi simplement l'appeler ici. Et l'arme larguée est simplement celle-ci. Vous pouvez simplement appeler celui-ci ici. Et rapprochons-nous les choses, comme avant. Compilons et sauvegardons tout. Très bien, maintenant nous pouvons l'essayer. Cliquons sur Jouer et incarnons un terroriste. Maintenant, si je pille quelque chose et que je le fais, vous pouvez voir que je n' interagis pas avec lui Le problème lié au largage de cette arme est toujours le même. Je ne pourrai donc plus jamais perdre cette arme. Nous devons le retirer à tout moment. Vous pouvez voir ici que chaque fois que je le charge et que je le laisse tomber, je reviens ici, vous pouvez voir que je ne peux pas le charger. Cependant, chaque fois que nous quittons cette sphère de collision, je dois réinitialiser cette variable d'arme larguée. Nous pouvons le faire à nouveau dans la base d'armes. N'oubliez pas que nous utilisons l'option « on component begin overlap ». Maintenant, ce que nous pouvons utiliser si vous cliquez nouveau sur la sphère de collision et que vous descendez, vous pouvez utiliser celle-ci pour le chevauchement des collisions. Vous pouvez maintenant l'utiliser pour supprimer la définition de l'arme larguée. Maintenant, ce que nous pouvons faire, c'est comme avant, copions. Cet acteur a un joueur technique parce que nous voulons nous assurer que c'est le joueur qui sort de cette sphère de collision. Connectons-le à nouveau. Switch l'a fait parce que nous voulons nous assurer que c'est le serveur qui gère tout cela pour empêcher la triche. La seule chose que nous voulons faire, c'est régler l'arme larguée de la même manière que réinitialiser la variable. Prenez ceci et dites «   obtenir des informations sur le joueur ». Ou obtenez une référence de joueur. En fait, pas d'informations, obtenez référence du joueur. Connectons-le. Appelons le set «   arme larguée » et réduisons-le à zéro. Nous sommes juste en train de réinitialiser la variable. C'est bon, c'est ici. Compilons et sauvegardons tout. Et essayons-le de se battre. Cliquez sur jouer et je place le terroriste. Maintenant, je rencontre le. En quatre, je le laisse tomber, je n'en ai plus, je tombe dessus. Maintenant, vous pouvez voir qu'il fonctionne parfaitement. Je ne le pille pas instantanément, je ne le pille que chaque fois que je quitte cette sphère d'interaction Et je le saisis à nouveau. Je peux piller l'arme. Essayons maintenant de cliquer sur jouer. Et jouez à deux. Maintenant, si je minimise ce client, c'est en fait le serveur. Jouons en tant que client et en tant que client. Je peux les piller en quatre. Le serveur a une belle apparence. Je peux le laisser tomber. Ça a l'air correct. Je peux le piller à nouveau. Ça a l'air correct. OK. Je peux essayer de te donner cette arme ici. Je vais le laisser tomber. Ce type le pille maintenant Je peux le laisser tomber auprès de ce type. Maintenant, je ne peux pas vraiment le piller. Parfois, ça bogue, vous pouvez voir parfois quand je le laisse tomber. Je ne le perds pas instantanément. C'est la sphère de collision, vous pouvez la voir ici. Je ne peux plus le piller. J'essaie d'y entrer. Je ne peux pas le piller ici en tant que serveur. Cela est dû au fait que l'autre joueur se tient debout dessus et c'est l'autre joueur qui se tient dessus qui subit la collision . Chaque fois que le nouveau joueur essaie de se connecter ou d'interagir avec lui, il ne fait rien. À l'heure actuelle, le problème avec ce chevauchement initial, c'est qu'il ne s'agit que d'un joueur. Si plusieurs joueurs se chevauchent dans cette sphère de collision, cela dérange un peu Nous devons également régler ce problème. Vous pouvez voir que nous avons beaucoup de choses à corriger et c'est tout simplement la nature des jeux. Vous avez toujours des problèmes à régler, mais c'est vraiment bien quand tout fonctionne et que tout est écrit. Passons maintenant à la leçon suivante et continuons à améliorer le code. 110. 8.25 Amélioration de l'interaction avec les joueurs d'arme: Très bien, bon retour. Améliorons maintenant ce code pour nous assurer que même si plusieurs joueurs interagissent avec la sphère de collision, il en tienne compte lorsque nous nous assurons de pouvoir interagir avec cette arme. Maintenant, au lieu de simplement le faire ici, permettez-moi de faire glisser ce code. Permettez-moi de le faire glisser vers le bas, puis laissez-moi le faire glisser de cette façon afin que nous ayons plus d' espace de travail. La façon dont vous interagissez avec plusieurs choses est d'écrire cliquer » et de dire « obtenir des acteurs qui se chevauchent Vous avez maintenant tous les acteurs qui se chevauchent. Je peux obtenir tous les joueurs qui se chevauchent. Ici, qui se chevauche, c'est la base de joueurs C'est la base de joueurs, ce qui signifie que tous les joueurs sont là pour ce match. Maintenant, je peux demander si la longueur est supérieure à un ou si la longueur est réellement d'un. Je peux en déduire que c'est long. Je peux demander si c' est plus d'un. Parce que s'il n'est pas supérieur à un, cela signifie qu'il n'y a qu'un seul joueur qui interagit avec lui. Il s'agit d'une information cruciale. S'il est supérieur à un, je peux faire quelque chose. Cependant, s'il n'est pas supérieur à un, je peux le prendre et obtenir le premier index, c'est-à-dire juste ce joueur, celui-ci. Et je peux maintenant le connecter à celui-ci. Au lieu de le prendre à cet autre acteur, je peux maintenant le prendre à ce joueur qui se chevauche Et je peux le connecter ici s'il est inférieur ou inférieur à un, ce qui signifie qu'un seul joueur interagit avec cette sphère de collision. Je peux placer ce joueur ici à partir de l'indice zéro, et je peux connecter ce joueur ici. OK, donc ça fonctionne parfaitement. Mais que se passe-t-il si nous avons plusieurs joueurs ? Pour le moment, je suis juste en train de vérifier s'il s'agit d'un joueur. Donc, si plusieurs joueurs se chevauchent dans cette sphère de collision, je dois les examiner Je peux dire que je peux prendre tous ces acteurs qui se chevauchent. Ou chaque boucle avec pause. Je veux m'assurer que celui qui a lâché l'arme n'interagit pas avec l'arme que j' ai au sol. Je peux le connecter Maintenant, je peux prendre à partir d'ici et dire «   obtenir la référence du joueur ». Maintenant, pour chacun de ces joueurs, je peux prendre l'arme lâchée. Je peux me demander si cette arme lâchée est destinée joueur que je suis en train de jouer en boucle au joueur que je suis en train de jouer en boucle en ce moment, n' est-elle pas égale ? En fait, nous écrivons simplement le même code qu'ici. Si elle n'est pas égale à l'arme que j' essaie de piller en ce moment, alors je peux continuer et piller l' Je passe en revue chaque joueur en boucle. J'essaie de trouver le joueur qui n'a pas encore lâché son arme. Si c'est vrai, permettez-moi de cliquer ici et de les promouvoir en tant que variable Et appelez ce joueur qui interagit. Laissez-moi le régler ici. Allez-y, configurez une prise de notes de redirection pour lui donner une bien meilleure apparence Maintenant que nous avons défini cette variable, ce que nous pouvons faire est maintenant complet. Lorsque je trouverai mon joueur en interaction, je veux la prendre et rompre la boucle. N'oubliez pas de toujours rompre la boucle pour ne pas avoir de boîte ici. Votre code sera également beaucoup plus optimisé car vous ne parcourez pas tout en boucle. Je casse le code, je brise la boucle. Maintenant, j'ai le joueur qui interagit. Ce que je peux faire maintenant. Nous devons maintenant parcourir l'inventaire. Parce que nous n'avons pas besoin de tout gérer ici. Nous l'avons déjà fait ici. Nous devons donc parcourir directement l'inventaire du joueur qui interagit. Au lieu de partir d'ici, il suffit que le joueur qui interagit maintenant parcoure ça ici, un joueur et vous parcourez ça ici. Ce que vous pouvez faire, c'est simplement cliquer avec le bouton droit sur celui-ci et en faire la promotion. Ou emportez-le simplement ici. Il s'agit du joueur qui interagit. Maintenant, s'il ne s'agit que d'un joueur et qu'il passe par là et qu'il l'exécute correctement, vous pouvez le faire. Au lieu de faire tout cela, vous pouvez toujours le prendre d' ici maintenant et le brancher ici pour que je puisse déplacer légèrement mon code afin qu'il ne soit pas trop foiré Juste comme ça. Maintenant, j' utilise juste ce lecteur interactif. Tu peux le prendre et le brancher ici. En fait, pas comme ça. Je ne sais pas pourquoi je l'ai réglé, le fais glisser, je le branche ici. Au lieu de partir directement de là, maintenant nous utilisons simplement ceci, cette variable que nous avons définie. En fait, je vais supprimer celui-ci et le connecter à chacun d'eux. Juste comme ça. Ou ce que tu peux faire. En fait, je vais l'utiliser plusieurs fois. Je vais utiliser le lecteur interactif ici. Je vais également le copier ici sur celui-ci. Et tu n'as pas besoin de celui-ci. Je peux juste le brancher directement, juste comme ça. Je peux aussi le brancher ici. Je remplace juste ces notes d'art arrière pour le rendre bien plus beau car celle-ci va être remplacée par celle-ci ici. Je vais supprimer les notes artistiques de l'arrière. Et le simple fait de le brancher ici donne une bien meilleure apparence qu'avant Maintenant, nous sommes en train de résoudre ce problème en boucle. Nous définissons le joueur qui interagit, et maintenant nous parcourons l'inventaire en boucle Très bien, maintenant je l' ai organisé. Maintenant, comme vous pouvez le voir, nous prenons la variable du joueur en interaction et nous l'exécutons dans le code. Nous nous assurons que c'est le joueur qui interagit qui peut interagir avec tout cela. Essayons ce code. Cliquons sur jouer. Et incarnons le terroriste, par exemple. Laissez-moi jouer le rôle du client. Encore une fois, sélectionnez Terroriste. Laisse-moi juste perdre quelque chose. Laisse-moi juste piller ce pistolet. Je vais voir le joueur, je vais le déposer au joueur. Le joueur doit le piller Je vais le déposer. Vous pouvez maintenant voir que ce joueur le pille. Je vais le déposer. Ce joueur le pille, je vais le récupérer. Maintenant, vous pouvez voir que cela fonctionne et que tout fonctionne bien. Si je le laisse tomber ici, je ne peux pas interagir avec lui à moins de sortir de cette sphère et d'y retourner. Cependant, même s' il est devant moi, ce type peut le piller sans problème Maintenant, vous pouvez voir que tout fonctionne correctement. Génial. Maintenant, cela ressemble plus un jeu qu'à un simple prototype. Nous nous rapprochons de notre objectif et vous pouvez voir que tout va bien C'est vraiment amusant à jouer et ce sera encore plus amusant maintenant si nous ajoutons le tournage, le rechargement, etc. Comme vous pouvez le constater, tout fonctionne bien. Si je remarque des boites dans le futur, je ferai des vidéos pour les éliminer. Ou vous pouvez toujours visiter Pixel Helmet.com ou visiter mon serveur Discord Si vous trouvez une boîte que je n'ai pas remarquée, je la répare toujours et je vous montre comment la réparer, mais pour l'instant, nous ne pouvons pas vraiment en voir une. Tout semble fonctionner parfaitement. Je vais améliorer le jeu plus tard. Par exemple, nous pouvons améliorer tout ce qui nous paraît mauvais. On dirait que c'est un débutant, on peut toujours les réparer. Ici, je le teste en tant que serveur et clients. Je peux aussi le déposer au client. Ils peuvent le déposer d'avant en arrière. Je peux le déposer par terre. L'autre joueur peut y entrer, le piller. Je peux le déposer ici en tant que serveur. Le client peut également le rencontrer et le piller. Vous pouvez voir que nous n'avons pas vraiment de box pour le moment et que tout fonctionnera parfaitement dans le futur. Encore une fois, vous pouvez visiter à nouveau mon site Web ou mon serveur Discord, Pixel Helmet.com, et je ferai en sorte que si cases apparaissent d'une manière ou d'une autre pendant le développement du jeu, nous pouvons toujours Mais pour l'instant, tout fonctionne. Tout est beau. Passons à la leçon suivante. 111. 8.26 Arme de pillage avec clé du clavier: Allons-y maintenant et ajoutons quelques touches du clavier pour récupérer les armes Avant cela, je souhaite augmenter la taille de mon interface utilisateur. Quelqu'un m'a dit qu'il est difficile de suivre quand mon UIIze est petit Si vous souhaitez également augmenter le vôtre, vous pouvez cliquer sur Outils, puis sur Debug, puis sur Widgit Reflector Je vais l'augmenter à 1.2. C'est peut-être plus facile à suivre pour vous. Vous pouvez voir que mon interface utilisateur est plus grande maintenant, faites-moi savoir si cela aide ou si je dois en revenir à une. fois cela fait, passons à la saisie et effectuons une nouvelle action de saisie, n'est-ce pas ? Encore une fois, vous pouvez le faire vous-même si vous le souhaitez. Nous en avons déjà fait beaucoup. Cliquons avec le bouton droit de la souris, passons à la saisie et passons à l'action de saisie. Appelons cela une arme à lot unique. Ensuite, pour celui-ci, passons à l' action de mappage des entrées. Je vais cliquer sur le signe plus en haut et descendre ici et ajouter ce lot d'action de saisie d' armes. Je vais appuyer sur ma touche Ekey pour récupérer l'arme. Ici, pour les déclencheurs, je vais le configurer pour appuyer, continuer, enregistrer, fermer. Revenons-en au joueur. OK, à l'intérieur d'ici. D'ailleurs, nous allons régler tout cela très bientôt dans le cadre de quelques leçons. Comme vous pouvez le constater, nous avons fait beaucoup de choses et nous devons également nous organiser un peu avant de continuer. Avant cela, descendons ici, cliquons avec le bouton droit de la souris et recherchons l'arme A lot. Et choisissez cet événement. OK. Ce que je veux faire, c'est que lorsque j'appuie sur mon EK, je veux perdre l' arme qui se trouve en dessous de moi. Ce que nous devons faire, c' est créer une nouvelle fonction car nous en avons déjà une ici. Laissez-moi voir ici. Nous avons déjà cette arme appelée Lot Weapon. Ce lot d'armes. N'oubliez pas que nous ajoutons une arme superposée à celle que nous appelons arme à butin En gros, ce n'est pas une arme à butin directe. C'est plutôt comme si nous demandions de piller une arme si nous trouvons une arme qui se chevauche Si je peux la retrouver ici, si je trouve une arme qui se chevauche, alors je pourrai la piller Créons un nouvel événement personnalisé. Et celle-ci, nous allons l' appeler Request Lot Weapon. Et faisons-le passer par le serveur de manière fiable. Et appelons-le ici lorsque nous appuyons sur la touche Ekey. Appelons SRV Request Lot Weapon. OK, donc nous allons d'abord vérifier si nos armes se chevauchent parce que nous ne voulons pas jouer le code. Si nous sommes là et que nous n' avons aucune arme sous nous, cela n'aurait aucun sens. Faisons un clic droit et disons-le. Des acteurs qui se chevauchent. Et passons celui-ci à la base d'armes. Nous veillons à ce qu'il y ait chevauchement avec une arme. Partons d'ici et disons que ce n'est pas vide de sens. Cela vérifie simplement qu'il s'agit bien une arme qui se chevauche. Au moins. Frappons ici , créons une branche, et connectons-la. Lorsque nous avons une arme ici, si elle n'est pas vide, cela signifie que nous sommes en train de chevaucher une arme Nous devons vérifier si nous avons déjà cette arme dans l'inventaire. Parce que si vous tenez déjà cette arme votre dos ou dans votre main, vous devez laisser tomber votre arme actuelle. Vous ne pouvez pas avoir deux pistolets à la fois et vous ne pouvez pas avoir deux fusils à Vous pouvez bien sûr le faire pour votre propre jeu, mais pour le jeu que nous sommes en train de créer, vous ne pouvez avoir qu' un seul fusil, pistolet, grenade ou couteau ou autre pour celui-ci Disons qu'ici, essayons de le trouver dans notre inventaire. N'oubliez pas que nous sommes déjà en train de faire tout cela. En fait, je vais juste prendre ça et tout copier ici. Je vais le copier ici et le coller ici parce que nous faisons l' inventaire, puis nous vérifions si nous avons déjà cette ici parce que nous faisons l' inventaire, puis vérifions si nous avons déjà arme dans ce type d' arme. Pour ce type d'arme ici, c'est simplement l'arme que nous chevauchons Je vais donc faire glisser le texte à partir d'ici et dire « oui ». Et ensuite, obtenons-en une copie. Et nous allons juste obtenir l'index d'un. Si plusieurs armes se chevauchent, nous obtenons simplement l'indice zéro et nous allons le vérifier ici OK, donc ce que nous devons faire, comme avant, nous devons tirer le nom de celui-ci. Nous ne pouvons pas vraiment dire le nom de l' arme pour le moment et obtenir cette variable, car celle-ci, si vous maintenez la souris dessus, n'est qu'une référence générale à un objet acteur. Tu te souviens de celui-ci ? Il s'agit du BP, objet basé sur une arme ou de la référence à l'objet. Donc, si vous n'avez qu' un général à référencer, vous devez d'abord en faire cette base d'armes. Pour celui-ci, nous devons obtenir la référence de l'arme. Je ne pense pas que nous l' ayons fait ici. Dans les interfaces que nous n'avons pas encore créées, obtenez la référence des armes. Encore une fois, essayez de le faire vous-même, car nous l'avons déjà fait, juste pour vous entraîner. Essayez de faire en sorte qu'une fonction obtienne une référence à une arme et essayez de l'utiliser ici. OK, si tu ne t'en souviens pas, faisons-le ensemble. Cliquez avec le bouton droit de la souris, accédez à Blueprint et choisissez l'interface Blueprint Appelons cela une base d'armes. Ouvrons-le. Disons obtenir l'arme F. Maintenant, compilons. Ici, vous devez sélectionner l' Eva à laquelle vous essayez de faire référence. J'essaie de faire référence à la base d'armes, de la sélectionner et de l'appeler arme. Compilons et sauvegardons tout. Retournons ici. Laisse-moi réfléchir aux armes, ouvrons la base d'armes. Passons maintenant aux paramètres de classe et ajoutons l'interface appelée Weapon Base. Allez-y et sélectionnez Compiler. Et maintenant, vous pouvez l' ouvrir ici dans les interfaces et vous pouvez suivre à partir d'ici et vous exprimer vous-même. Il s'agit d'une autoréférence. Nous avons maintenant défini cette variable. Maintenant, ce que nous pouvons faire, c'est revenir à la base de joueurs et là, nous pouvons faire glisser et dire, référence à l'arme. Nous avons maintenant une référence à cette base d'armes. Nous avons maintenant transformé cette référence générale à un acteur en une référence à une base d'armes ou à un objet. Ce que nous pouvons faire, c'est le faire glisser maintenant ici, le connecter comme avant. Disons par glisser-déposer, vous pouvez simplement copier-coller tout cela. Copions-le simplement. Nous n'avons pas besoin de l'écrire 100 fois. Allez-y, connectez-le. En fait, je vais faire glisser celui-ci en dessous et le connecter ici. Faisons glisser le pointeur à partir d'ici, créons une branche et connectons celle-ci. OK, donc juste avant que nous ne soyons trop confus, peut-être que ce que nous faisons ici, c'est que nous obtenons l'arme avec laquelle nous nous retrouvons Et maintenant, nous parcourons l'inventaire en boucle. Nous essayons de voir si nous avons déjà cette arme. Si je ne clique pas pour faire une note arrière afin que vous puissiez voir ce qui se passe. Ce que nous faisons, c'est parcourir l'inventaire en boucle et vérifier si nous avons déjà ce type d'arme dans notre inventaire Si nous avons ce type d'arme, nous devons d'abord la lâcher. Disons que je suis en train de piller un AK 47 et que j'ai déjà un M41 sur le dos Je dois abandonner ce 41. Nous devons donc lâcher notre arme. N'oubliez pas que nous avons déjà fabriqué cette arme larguée. C'est ce que nous appelons ça. Maintenant, nous n'avons pas besoin d'appeler cet événement d'ici. C'est parce que nous sommes en train de parcourir l'inventaire en boucle Nous n'avons pas besoin de le faire parce que nous le faisons déjà ici. Nous avons effectivement cette partie ici, mais ce dont nous avons besoin, c'est de cette partie où nous faisons sorte que le joueur ne puisse pas interagir avec l'arme. Et l'arme sera lâchée et ainsi de suite, et elle sera retirée de l'inventaire. En fait, nous avons également défini ce type d'arme. Nous avons besoin de tout cela, vous pouvez simplement le coller ici. Cependant, pour de bonnes pratiques de codage, au lieu de simplement le copier-coller, il vaut mieux le transformer en fonction afin que nous puissions l'utiliser à nouveau Allez-y, sur le serveur, lâchez votre arme sur celui-ci. Sélectionnez tout cela, sélectionnez-le simplement ici sans cette branche. Et cliquez avec le bouton droit sur Go pour réduire. Pour fonctionner, nous en faisons une fonction, appelons cette fonction drop weapon. Lâchez votre arme. Permettez-moi de double-cliquer ici pour créer un nœud arrière. Il s'agit d'un redouble pour cette broche d'entrée. En fait, si vous double-cliquez sur cette fonction, je vais juste la rendre un peu meilleure à regarder maintenant. Vous pouvez voir que c'est un peu foiré ici. Ça s'arrête là. Je vais voir si nous devons vraiment faire quelque chose. Après la vérité, il laisse tomber l'arme puis il revient en arrière et rompt la boucle. Ça a l'air bien. Nous n'avons pas vraiment besoin de faire quoi que ce soit ici. Très bien, maintenant ça a l'air beaucoup mieux. Compilons et sauvegardons maintenant pour cette épingle de saisie ici. Disons que c'est une arme à lâcher. OK, on fait tout ça comme avant et on arrête juste la boucle. Nous faisons juste la même chose qu'avant. Mais maintenant, nous en avons fait une fonction. Et nous pouvons désormais utiliser cette fonction. Si nous allons ici maintenant et que nous découvrons que nous l'avons dans notre inventaire, nous pouvons maintenant prendre cette arme. Maintenant, nous pouvons sélectionner. Quelle arme voulez-vous lâcher ? Je veux ajouter cette arme à mon inventaire que je viens de trouver. Je peux donc le tirer de là, le brancher ici. Je vais cliquer pour prendre des notes rock. Bon, passons maintenant à l'arme. La prochaine chose que nous devons faire est l'ajouter aux chevauchements ici Parce que lorsque nous l' ajoutons aux superpositions, souvenez-vous que nous l'ajoutons au tableau des superpositions , puis que nous commençons à piller l'arme C'est ce que nous devons appeler l'arme du chevauchement des publicités. Descendons ici et disons «   ajouter une arme superposée ». Et maintenant, nous devons sélectionner de quelle arme parlons-nous ? L'arme dont nous parlons est celle-ci. N'oubliez pas que ce n'est pas celui-ci. Parce que tu ne peux pas le faire glisser d' ici et le brancher ici. Cela ne fonctionnera pas car n'oubliez il s' agit simplement d'une référence d'objet acteur normale. Et celui-ci a besoin d'une référence à un objet de base d'arme. N'oubliez pas que vous l'avez déjà fait ici. Vous pouvez donc le faire glisser depuis celui-ci et le brancher ici. Encore une fois, double-cliquez pour rediriger les notes. Vous l'avez ici. N'oubliez pas que lorsque vous l'avez trouvé dans votre inventaire et que vous en avez terminé avec tout cela, pensez à le faire glisser depuis celui-ci et à interrompre la boucle pour ne pas continuer la boucle. Encore une fois, double-cliquez et prenez des notes ici également. Bien, avant d'en finir avec la boucle, souvenez-vous que lorsque vous lâchez une arme également, si vous allez ici pour larguer l'arme, vous avez ceci où vous la configurez pour qu'elle interagisse à nouveau et ainsi de suite Copions donc tout cela à nouveau, descendons ici et collons-le ici. Juste comme ça, parce que n' oubliez pas que vous utilisez cette arme larguée et qu' à l'intérieur, vous la fabriquez de telle sorte que vous ne puissiez pas interagir avec une arme. Vous devez donc faire en sorte de pouvoir interagir à nouveau. Et nous ajoutons cela pour le compléter. le moment, si vous cliquez sur jouer, nous pouvons sélectionner Terrorist. Allons courir partout, ramassons ces armes. Maintenant, si nous cliquons sur le K, vous pouvez voir que rien ne se passe vraiment en ce moment. Si je déménage et qu'il y a encore quelque chose qui cloche. Et nous avons également une erreur ici. Si je clique dessus, c'est juste que celui-ci est introuvable. Ne t'inquiète pas pour celui-ci. Cela est lié à autre chose que nous corrigerons plus tard. Mais pour l'instant, vous pouvez voir que j'ai lâché l'arme et que j'ai ajouté un couvercle à l'arme, mais pour une raison ou une autre, elle ne la ramasse pas. Au lieu de le supprimer de la vidéo et de vous donner la solution, je vais essayer de vous montrer comment je corrige habituellement les erreurs C'est un bon endroit pour le faire. Maintenant, nous lâchons l'arme. Nous savons donc que tout ce code fonctionne. Parce qu'il atteint le point où il vous laisse tomber l'arme. Mais quelque chose ne va pas ici à cause de l'ajout d'une arme superposée pour la première chose. Maintenant, lorsque vous débugez, vous devez ajouter une chaîne d'impression C'est ce que nous appelons cet événement ici. Permettez-moi simplement d'ajouter une chaîne d'impression ici. Recherchez une chaîne d'impression, sélectionnez-la et elle devrait dire bonjour ici. Quand j'ai fait allusion, j'ai choisi Terrace. Maintenant, je passe à l'AK. Laisse-moi, en fait, je n'ai pas pris celui-ci. Permettez-moi de cliquer ici. Vous pouvez voir dans le coin en haut qu'il est écrit « Bonjour ». Le code atteint correctement cette partie. Maintenant, je dois vérifier si c'est correct. Maintenant, je pense que celui-ci est faux. Mais nous le pouvons. Tout d'abord, je vais juste vérifier ici si celui-ci fonctionne réellement ou non. Cliquons sur Play. Sélectionnez Terroriste. Allez-y, sélectionnez-le ou récupérez-le. Cliquez ici sur l'AK et vous ne verrez rien d'imprimé. Maintenant, je sais que cette partie du code fonctionne, mais cette partie ne fonctionne pas. Il n'atteint jamais le point où il perd réellement son arme. Il y a quelque chose qui ne va pas avec cette partie du code. Peut-être qu'il ne s'ouvre jamais. Encore une fois cette note. Ça dit que je peux à nouveau perdre une arme. N'oubliez pas que celui-ci est un nœud et qu'il ne fait ce code qu'une seule fois jusqu'à ce que nous l'ouvrions ici, nous réinitialisions ce nœud. Il le fait encore une fois. Il y a encore quelque chose avec ce lot d'armes, peut encore une fois perdre une arme, c'est ce que nous appelons ici. Il y a quelque chose qui ne va pas avec cette partie. Peut-être que nous ne retirons pas correctement les objets de ces armes ovales. Ce que nous pouvons faire, c'est que nous pouvons toujours cliquer ici et imprimer la chaîne. Imprimons simplement une chaîne ici et voyons ce qui se passe si je clique sur Jouer maintenant et que je capture le terroriste. J'ai perdu tout ça. Maintenant, vous le voyez supprimé. Au lieu de faire tout cela, sortons simplement de cet indice. Nous savons vraiment ce que c'est. En supprimant le chevauchement qui apparaît, nous obtenons l'index et nous le supprimons Laissez-moi simplement le brancher ici, je peux vraiment voir ce que je suis en train de supprimer. Phyclicplaylutephld. Supprimez le pH. C'est ce qu'il fait, comme vous pouvez le voir ici. Si je pille le pistolet, il devrait le retirer, mais vous pouvez voir que rien n' C'est parce qu' il ne fait que retirer l'Inp, mais pas le pistolet Quelque chose ne va pas et ce que nous faisons mal ici, c'est qu'en ce moment , nous ne retirons ces objets que lorsque nous sommes désarmés. Si je clique sur Jouer et jouer maintenant, chaque fois que je suis désarmé, il se supprime correctement pour le moment Cependant, si je ne suis plus désarmé, il va exécuter ce code ici Et il n'exécutera jamais cette partie du code. Ce que nous devons faire ici, même si nous ne sommes pas désarmés, retirer tout ce que nous avons pillé après la première Si nous pillons les informations, nous ne sommes plus désarmés Lorsque nous pillons le pistolet, il fait fonctionner cette pièce et nous ne faisons rien En fait, ce que nous devons faire, c'est directement à partir d' ici et retirer le pistolet que nous avons pillé après l'info Alors allez-y et connectez-le à cette suppression. Et compilons maintenant. Cliquons sur Play pour voir si notre code fonctionne. Maintenant, si je pille celui-ci, maintenant si on passe à l'AK et si je clique sur E, tu peux voir qu'il fonctionne correctement. Si je vais voir celui-ci, j'ai en fait pillé le pistolet, il a été mis sur écoute C'est un problème que nous corrigerons dans la leçon suivante, mais pour l'instant, vous pouvez voir que les informations fonctionnent et que lorsque nous recouvrons le pistolet, nous devons résoudre ce problème et nous allons le faire Mais vous pouvez voir qu'il pille correctement les fusils, il n'y a plus rien de mal. C'est ce que nous avons fait en dessinant auparavant. Vous devez également ajouter quelques notes réécrites ici. Très bien, compilons. Ensuite, vous voyez, si nous appuyons sur E, je continue à spammer sur mon clavier et j'aime m'échapper Vous pouvez voir que nous avons une erreur ici et que le message «   Access n'essaie pas de lire la propriété, arme pillée Il y a une erreur ici et nous allons corriger cela dans la prochaine leçon. Ainsi que l'époque d'ici-bas que cela donne parfois. Pour l'instant, tout fonctionne, sauvegardons tout et passons à la leçon suivante. 112. 8.27 Régler correctement le type d'article équipé: OK. Avant de corriger l' accès, pas d'erreur. heure actuelle, ce que vous pouvez voir ici, c'est lorsque nous cliquons sur jouer et que nous pillons les informations et le pistolet Et lorsque je passe sur un pistolet et que j'appuie sur E, il passe en mode d'affichage du pistolet En effet, n'oubliez pas que dans le largage d'arme, nous avons défini que vous devez simplement passer en mode non armé chaque fois que vous lâchez l'arme Nous devons maintenant améliorer cela car lorsque vous tenez un fusil, nous ne voulons pas passer à un fusil non armé Ou lorsque vous changez d'arme sur votre dos, vous ne voulez pas passer à une arme non armée Ce que nous pouvons faire ici, c'est très simple, c'est prendre l'arme équipée. À l'heure actuelle, type d'arme équipée. Essayons de nous demander si c'est la même chose que ce que nous sommes en train de laisser tomber. Si le type d'arme équipé est le même que l'arme que nous larguons, cela signifie que nous devons nous adresser à une arme désarmée Cependant, si nous lâchons une arme que nous ne détenons pas en ce moment, nous ne devrions pas nous adresser à des personnes désarmées parce qu'elle était sur notre dos Et nous n'avons pas besoin de changer de type d'arme ici. Faisons glisser le pointeur à partir d' ici et disons égal. Prenons l'arme que nous sommes en train de lâcher en ce moment. Faisons glisser le pointeur à partir d'ici. Disons, par exemple, le nom de l'arme. Retrouvons le nom de l'arme. Dites « obtenir des informations sur les armes ». Celui-ci. Détruisons ça. le type ici et connectons-le. Et demandez si c'est pareil ici. Connectons cette branche et laissez-moi l'organiser. Maintenant, ce que nous demandons, c'est si l'arme que nous lâchons est du même type que celle que nous détenons en ce moment. Si c'est le cas, nous allons passer à des armes non armées. Si ce n'est pas le cas, nous n'allons rien faire. Nous n'allons pas changer. Compilons maintenant et voyons si cela fonctionne. Donc, si je vais ici, que je prends le fusil et que je clique sur le pistolet, vous pouvez voir tomber l'autre pistolet que je tenais en ce moment, il ne passe plus dans le mauvais état de mouvement Si je fais retentir celui-ci aussi, vous pouvez voir la même chose se produire, d'accord ? Maintenant, cela fonctionne et la seule chose à faire pour le moment, c'est d'avoir un Axis Non Era. Et c'est ce que nous allons faire. Nous allons résoudre ce problème dans la prochaine leçon. 113. 8.28 Correction de l'erreur "Accès à personne" de butin: OK, donc le problème en ce moment avec le non accès , c'est si nous essayons de spammer la clé. Si je continue à spammer la touche E pour piller une arme, cela me donne un accès intemporel. Si j'essaie juste ça ici. Si j'essaie de spammer la clé comme ça et que je clique sur Escape, parce que je vois que nous vivons cette ère où l'on parle d'accès, d'essai de lecture de la propriété, d'arme pillée Cet accès non signifie que cette variable est vide. Et c'est probablement parce que nous sommes en train de le réinitialiser ici. Et il n'a pas la possibilité de traiter l'intégralité du code avant que nous n'essayions à nouveau de le piller. Parce que si vous spammez la clé du butin, vous ne faites que spammer tout ce code ici Et il atteint ce point, puis il atteint également ce point en même temps et il indique «   aucun accès ». Cela devient confus. Ce que nous pouvons faire, c'est empêcher le joueur de piller chaque fois qu'il est en train de piller l'arme Si je vais ici et que je crée une nouvelle variable, appelons-la arme de pillage variable Compilez celui-ci lorsque nous pillons l'arme. Prenons ça et disons arme de pillage, définissons-la sur vrai Chaque fois qu'il aura fini de piller l'arme, nous pouvons la prendre et dire faux OK, cela empêche le joueur de spammer le code. Nous devons le faire ici lorsque nous appuyons sur la touche, nous devons dire au joueur que vous ne pouvez pas le faire chaque fois que vous pillez. Tirez d'ici et dites « pas de taureau ». Lorsque vous n'êtes pas en train de piller une arme, nous pouvons créer une branche et vous dire que vous pouvez maintenant demander un lot d'arme Lorsque celui-ci est réglé sur true ici, lorsqu'il commence à piller l'arme, vous ne pouvez rien faire Mais quand nous aurons fini de piller l'arme ici, vous pourrez demander à en piller une nouvelle Maintenant, celui-ci va vous poser un problème, et peut-être pouvez-vous déjà voir quel est le problème. Maintenant, si j'y vais en tant que client et que j'essaie de piller l'arme ici, vous verrez que cela me pose un problème En ce moment, si vous vous souvenez, nous sommes en multijoueur. Et celui-ci en ce moment, vous le configurez via le serveur et ici vous essayez d' utiliser cette variable sur le client. N'oubliez pas que vous pouvez glisser-écrire une chaîne d'impression pour voir si vous êtes sur le serveur ou sur le client. Si je joue ici en tant que serveur et que j'appuie, vous pouvez voir que j'imprime hello en tant que serveur. Mais si je joue ici en tant que client, maintenant je joue et j'appuie. Vous pouvez voir que je le spamme en tant que client. Je peux lire ce code via le serveur et le client. Cela signifie que nous sommes également concernés par le client. Lorsque nous sommes ici, vous utilisez la variable sur le client, mais vous la définissez sur le serveur. N'oubliez pas qu'en tant que serveur, vous devez répliquer les informations vers le client, sinon le client n'a aucune chance de savoir si c' est vrai ou faux Lorsque vous définissez quelque chose sur le serveur et que vous devez l'utiliser sur le client, vous devez répliquer ces informations sur le client. Compilons et sauvegardons. Alors maintenant, si je joue en tant que client et que je clique sur jouer, essayons-le ici en tant que terroriste. Reprenons les armes et passons à K. Je continue, tout fonctionne maintenant. OK, ça marche. Et je peux aussi changer mon pistolet à l'arrière et je peux aussi changer celui-ci Vous devez le faire si je spamme maintenant, si j'envoie du spam sur ma clé de lot, si vous le souhaitez, souhaitez, si vous le souhaitez Si vous ne voulez pas que le joueur change rapidement, vous pouvez définir un délai pour le pillage. Mais comme vous pouvez le voir ici, cela fonctionne correctement. Et si je clique sur Escape, vous pouvez voir que nous n'avons aucune erreur. C'est parce qu'il attend en fait que ce soit faux pour que le joueur ait à nouveau la chance de piller. Mais le joueur ne le remarque pas car le code s' exécute très vite. Mais maintenant, nous avons établi cette barrière et tout fonctionne correctement. Parfois, s'il est indiqué qu'il s'agit d'une erreur liée aux armes, vous essayez de les lâcher. Si tu essaies de jouer ici et que tu essaies de spammer la touche, j' appuie sur Escape. le moment, je ne me trompe pas, mais si vous trouvez une ère dans le futur, vous pouvez toujours la prendre. C'est l'époque que nous avons connue avant. Vous pouvez cliquer avec le bouton droit de la souris pour le convertir en un get validé, vous assurer qu'il est valide avant de faire tout cela. Oui, c'est ainsi que l'on se débarrasse de l'époque antérieure où l'on avait lâché l'arme. Vous pouvez voir que j' essaie de le spammer. Il ne se passe rien. Je pense que c'est réglé. Mais si vous rencontrez ce problème, vous pouvez toujours le faire. Compilons et sauvegardons tout. Pour l'instant Passons à la leçon suivante. 114. 8.29 Nettoyer le code: OK, donc avant de continuer, je veux que vous fassiez le ménage tout ce projet parce qu'il prend de l' ampleur et que nous devons corriger certaines choses. Si nous pouvons optimiser les choses et commenter certaines choses, il vaudrait mieux le faire maintenant que plus tard avant que cela ne devienne trop complexe. Donc, ce que je veux que vous fassiez, par exemple, vous pouvez aller jusqu'au point de départ. Jouez. Essayez de prendre des notes sur l'itinéraire arrière si ce n'est pas déjà fait. Et tu peux tout sélectionner. Cliquez sur C sur le clavier et vous pouvez, par exemple, écrire Begin, Play. C'est mieux que de ne rien avoir dans le code. Et tu peux cliquer dessus. Vous pouvez cliquer sur la couleur du commentaire, vous pouvez changer la couleur du commentaire en quelque chose. Par exemple, je peux choisir cette couleur bleu-violet. Je peux indiquer la saturation 20,75 et l' alpha 20,25 par exemple Essaie juste de le styliser du mieux que tu peux. De plus, par exemple, je peux plutôt porter le texte à 24, afin de pouvoir le lire beaucoup mieux lorsque je fais un zoom arrière Mais tu peux le voir ici. Et vous pouvez également enregistrer la couleur. Si vous cliquez ici et que vous pouvez cliquer et faire glisser ce bouton vers le haut, c'est sûr. Maintenant, lorsque vous commentez quelque chose ici, par exemple, laissez-moi simplement faire glisser tout cela et le déplacer vers le diesel, comme celui-ci. Je ne fais donc pas glisser tout cela vers le bas, par exemple. Vous pouvez commenter cette partie car elle est consacrée aux traces de pas. Ce que vous pouvez faire, c'est cliquer sur celui-ci, par exemple. Vous pouvez appeler Playing the Footsteps des effets sonores. Encore une fois, comme avant, je vais agrandir le devant. Et tu peux cliquer ici et cliquer sur cette couleur. Et cela s'appliquera automatiquement à tous les paramètres que vous avez définis ici. OK, donc je veux que tu commentes tout. Essayez de tout organiser autant que possible. Et à part cela, je vais faire les commentaires pendant mon temps libre, afin que vous n'ayez pas à me regarder faire des commentaires sur tout. Mais n'oubliez pas que vous pouvez faire des commentaires avec des commentaires. Vous avez celui-ci et disons que je voulais inclure le mouvement dans celui-ci. Vous pouvez donc toujours tout sélectionner avec le commentaire ici. Et vous pouvez faire un nouveau commentaire et, par exemple, appeler cela un mouvement. Vous avez donc un commentaire principal. Et vous pouvez même commenter petites choses à l'intérieur d'ici. Mais pour l'instant, je vais le faire pendant mon temps libre. Ce qui est plus important pour le moment, c'est de voir si nous pouvons améliorer le code d' une manière ou d'une autre. Nous le pouvons vraiment. Si nous allons ici, vous verrez que nous avons déjà utilisé celui-ci. plupart du temps, nous faisons l'inventaire , nous faisons une boucle et nous essayons de trouver cet objet dans l'inventaire. C'est ce que nous faisons depuis longtemps ici. Quelques fois. Nous pouvons également voir que nous le faisons ici. Nous parcourons donc l'inventaire en boucle et nous obtenons ce type d'objet Je crois que nous le faisons un autre endroit que je ne trouve pas pour le moment. Mais pour l'instant, transformons-en une fonction et ce sera bien mieux ce que nous pourrons faire. Copions-le pour le moment. Copions cette partie du code ici. Copions également celui-ci égal. Il suffit de le copier-coller ici. Nous pouvons en fait en faire une fonction. Ce que nous pouvons faire, c'est tout sélectionner. Clic droit En fait, vous ne pouvez pas en faire une fonction car nous avons une macro. Si vous dites « réduire » pour que la fonction fonctionne, cela indique une erreur et vous pouvez afficher le message. Et il dit qu'il ne peut avoir qu'une seule épingle d'exécution. Et vous pouvez voir que celui-ci comporte de nombreuses épingles d'exécution. Ce que vous pouvez faire, c'est cliquer avec le bouton droit de la souris et le réduire en macro. Pour cette macro, la différence entre une fonction et une macro réside simplement dans le fait qu'une macro peut avoir plusieurs pins d'exécution. Et les fonctions ne peuvent avoir qu' une seule entrée et une seule sortie, tandis que les macros peuvent avoir plusieurs pins d'exécution. Et vous pouvez voir ici que cette branche que nous utilisons est en fait une macro et elle possède plusieurs épingles d'exécution pour cette macro que nous venons de créer. Permettez-moi de cliquer ici et de cliquer sur deux. Appelons celui-ci M pour macro. Appelons-le « Trouver le type d'arme dans l'inventaire ». C'est simplement ce qu'il est en train de faire. Il essaie de trouver le type d'arme dans notre inventaire. Créons une nouvelle épingle d'exécution ici. Si vous écrivez simplement exécution, je pense exécuter. En fait, si vous cliquez ici, le type, si vous écrivez simplement exécuter, nous supprimerons le texte ici. C'est un secret pour l'écriture et l' exécution de macros . Connectons-le ici. Nous avons également besoin d'une épingle d'exécution pour le casser plus tard. Laissez-moi créer une nouvelle épingle d'exécution. Appelons cela une boucle de rupture. OK, maintenant nous l'avons. Laisse-moi connecter ça ici. Et nous avons également besoin d'une contribution pour celui-ci. Mettons celui-ci ici. Laisse-moi juste le déplacer une fois. Si je clique dessus et que je le fais glisser vers le haut, changeons le nom de celui-ci. Et celui-ci est le type d'arme à trouver, nous essayons de trouver ce type d'arme dans notre inventaire. Allez-y, double-cliquez dessus et prenez également quelques notes de redirection Très bien, ici dans la sortie, nous devons avoir tout cela à l'intérieur. Maintenant, prenons d'abord ce corps de boucle et plaçons-le ici. Et il est déjà écrit « loop body ». C'est exact. Prenons maintenant celui-ci et plaçons-le ici. Au lieu de la valeur de retour. Je dis qu'une arme a été trouvée et que nous pouvons créer une branche pour voir si c'est vrai ou faux. Maintenant, pour le reste, je vais brancher le fichier terminé. Oups, pas comme ça. Prendre ça, le brancher ici. Et je vais juste terminer la boucle de clarification Nous aurons également besoin de la référence à l' arme plus tard pour pouvoir en faire certaines choses. Et je vais le déplacer ici, appelons-le simplement arme maintenant. Peu importe qu'il soit déplacé ici, par exemple. Que je le déplace ici ou ici , cela n'a pas vraiment d'importance. Il s'agit simplement de rester propre avec le code. Mais j'aime bien qu' il en soit ainsi. Encore une fois, je vais double-cliquer dessus et prendre quelques notes de route ainsi que pour cette épingle d'exécution ici. OK, nous l'avons donc ici et laissez-nous compiler. Revenons maintenant au graphique du van. Et maintenant, vous pouvez voir que c'est la macro que nous avons créée. Maintenant, nous pouvons utiliser celui-ci à la place, des fouets. Si je zoome à nouveau pour cette arme larguée. Au lieu de le faire, nous sommes déjà en train de faire une boucle à l'intérieur d'ici Ce que je peux faire, c'est le supprimer et le brancher à la place. Permettez-moi de l'éloigner un peu pour que je puisse voir ce que je fais. Maintenant. Au lieu de faire tout cela, nous le faisons déjà. Supprimons également celui-ci. Ce type d'arme équipé. Nous pouvons le prendre et le brancher ici. Au lieu de cela. C'est-à-dire, n'oubliez pas que c'est ce que nous essayons de comparer avec notre inventaire. C'est la même chose qu'avant. Et si je connecte cette boucle et que je connecte cette branche à ici. Voyons voir maintenant, cette arme. C'est ce que nous devons utiliser pour l'arme larguée. Lorsque nous aurons trouvé l'arme, je supprimerai ces trois nœuds de route. Je vais le déplacer plus près d'ici. Et brisons la boucle après avoir lâché l'arme. Ce code est exactement comme avant. Il est en fait simplement optimisé. Nous n'avons rien fait de nouveau ici. Nous créons simplement cette macro pour la rendre plus belle et plus propre. Oui, quand la boucle sera terminée, connectons tout cela à nouveau, comme avant. Maintenant, vous pouvez voir que c'est beaucoup plus propre qu'avant. C'est ainsi que vous optimisez le code. Maintenant tu peux utiliser celui-ci. Permettez-moi de l'organiser un peu plus maintenant. Nous pouvons prendre ce type d'arme de recherche dans l'inventaire. Nous pouvons, voyons voir ici où nous essayons de retrouver l'article dans l'inventaire. Faisons-le traîner. Supprimons celui-ci. Et supprimez également celui-ci. Permettez-moi de le connecter pour le moment dans le corps de la boucle. Tout comme avant, nous sommes en train de connecter tout cela, nous l'avons déjà dans la macro. Je vais tout supprimer. Et celui-ci aussi. C'est dans ce cas que nous essayons de comparer ce type d'arme à partir des informations sur l'arme. Ce que nous pouvons réellement faire, même si cela semble un peu confus, nous pouvons le faire glisser et le remettre ici dans le type d'arme pour le retrouver, double-cliquer pour prendre des notes, juste pour le rendre plus beau. Ce que nous faisons est essentiellement la même chose qu'avant. Sans cette macro, nous cherchons simplement le type et nous le connectons pour le comparer au type d'arme figurant dans l'inventaire Il devrait faire la même chose. Laissez-moi jeter un coup d'œil ici. Ça passe par la succursale. N'oubliez pas que nous allons gérer cette succursale ici. Double-cliquez également sur ceux-ci pour prendre des notes d'itinéraire arrière pour celui-ci. Pour cette arme, l'arme pour la déposer provient de l'inventaire. Nous essayons donc de supprimer l' arme de l'inventaire afin que vous puissiez la faire glisser ici et la connecter. OK, maintenant tout est connecté. Et n'oubliez pas de rompre la boucle à partir d'ici. Encore une fois, faites glisser et rompez la boucle. Je veux juste voir si je me souviens vraiment de le faire aussi pour l' autre, et je l'ai fait. Allons-y, et je vais m' éloigner un peu plus loin. Ils ne se chevauchent pas, juste comme ça. OK, compilez et maintenant que la boucle est terminée, reconnectons celle-ci ici L'arme, nous essayons de la supprimer de l'inventaire. Et c'est l'arme que nous essayons de piller. Nous allons nous y superposer comme avant, mais nous venons de le rendre beaucoup plus propre qu'avant C'est donc toujours agréable de jouer au jeu et simplement tester et de voir si tout fonctionne comme prévu. Vous pouvez donc maintenant voir que cela fonctionne comme avant. Ouais. Donc, tout fonctionne. Il y a une petite erreur dans le code en ce moment, et c'est ici que nous essayons de demander à récupérer l'arme, comparer à l'inventaire, de trouver l'arme dans notre inventaire Si nous n'avons pas l' arme dans l'inventaire, nous nous retrouvons dans cette partie du code. Parce que si nous avons l' arme dans l'inventaire, l'arme que nous essayons de piller, nous essayons de faire tomber le fusil existant, par exemple Cependant, si nous n'avons pas de fusil, tout va s'arrêter là. Je vais plutôt le prendre et l' intégrer à la superposition, car nous voulons tout de même piller l'objet s' il ne se trouve pas dans notre inventaire Juste une petite correction à ce code, d'accord ? le reste, je ne vois pas vraiment d'autres choses que nous pouvons essayer d'améliorer. Mais si vous voulez transformer quelque chose en fonctions, par exemple celle-ci. Vous pouvez créer une ou plusieurs fonctions que vous voulez faire fonctionner et essayer de les nettoyer. Allez-y et faites-le maintenant. Cependant, je pense que c'est suffisant et je vais tout commenter. Ce que vous pouvez également faire, c'est classer toutes ces variables dans des catégories. Par exemple, pour ce qui est de la vitesse, vous pouvez écrire quelque chose dans la catégorie. Par exemple, les propriétés des couches, qui peuvent être une catégorie. Et vous pouvez voir qu'il est ajouté ici. Et vous pouvez également cliquer sur la vitesse de course. Cliquez sur Catégories et ajoutez-le aux propriétés du joueur. Il en va de même pour le accroupi. Maintenant, vous pouvez voir qu'ils appartiennent à une seule catégorie. Vous pouvez nettoyer toutes les variables comme ça. Vous pouvez également le faire avec les fonctions. Cependant, vous ne pouvez pas le faire avec les fonctions unrep, vous ne pouvez le faire qu'avec les autres fonctions que vous avez créées OK ? Cela étant dit, je vais tout commenter. Et n'oubliez pas que je vais vous remettre ce projet. Et vous pouvez le télécharger sur le site Web pour voir tout ce que j'ai fait, tous les commentaires, etc. Mais vous le verrez probablement aussi dans la prochaine leçon. Je vais commencer par tout commenter et je vous verrai dans la prochaine leçon. 115. 8.30 Correction d'un petit problème de réplication: OK, donc avant de continuer, revenons à la base de joueurs. Vous pouvez donc voir ici que j'ai nettoyé mon projet, j'ai tout mis en ordre, et la seule chose que j'ai faite a été de simplement créer des commentaires et d'organiser les choses un peu plus. Nous avons donc les mouvements de base du personnage ici , avec tout ce que nous avons fait avec le accroupissement, la marche, le saut, etc. Et ici, j'ai le pillage et le largage de l'arme, ou il y a les chevauchements, le pillage de l' arme, etc. Et j'ai également ajouté un commentaire pour celui-ci, assurez-vous que l' arme est attachée. le délai dont nous avons parlé plus tôt, il est toujours agréable d' écrire pourquoi vous modifiez ce délai afin qu'il ne semble pas aléatoire et que vous le supprimiez par erreur à l'avenir. OK, alors sauvegardons tout. Et pour le moment, avant de passer à la section suivante, nous avons un petit bug dont je me suis rendu compte. Si je clique sur « terroriste » ici et si j' essaie de piller deux objets, parfois ça marche Vous pouvez donc voir que j'ai pillé des objets ici. En fait, je vais cliquer sur le bras à ressort et passer à environ 500. Juste pour que je puisse voir ce qui se passe et que je puisse rejouer. Je dois le faire plusieurs fois et parfois vous vous rendrez compte que le joueur n'est pas en train de piller l'arme Je vais donc continuer à essayer de piller l'arme comme ça et voir si je peux en avoir l'argent. Ici. OK. J'ai donc essayé cela plusieurs fois et après 1 minute à essayer encore et encore, vous pouvez voir que cela fonctionne Je n'ai pas de pistolet en main. Si je le déplace rapidement pour que vous puissiez voir que ma main n'a pas de pistolet Le pistolet est au sol et je ne peux pas vraiment piller comme ça, il est en train de fonctionner. Cependant, il fonctionne sur le serveur. Donc, si je faisais jouer le serveur, je pense que nous jouerons en tant que deux clients. Vous pouvez donc voir qu' il s'agit du deuxième client. Je m'inscris en tant que deuxième et je regarde ce joueur. Je vois que ce joueur n'a pas de pistolet. Comme vous pouvez le voir ici, il n'a rien dans la main. Je ne vois pas le pistolet toujours au sol. Et je ne peux pas piller non plus sur celui-ci. Le bogue se produit parce qu'il s'agit simplement d'un problème de réplication. Si je clique sur G pour lâcher l'arme, vous pouvez voir qu'elle est réellement au sol. Si je reviens à pied et que je marche à nouveau vers l'avant, vous pouvez voir que je suis en train de piller le pistolet et maintenant je l'ai en main Il s'agit donc en fait d'un simple problème de réplication et je me suis rendu compte qu' il m'a fallu peut-être 1 heure ou 30 minutes pour essayer déboguer et de voir ce qui se passait parce que tout semblait correct Cependant, ce qui ne va pas en ce moment, c'est l'arme à butin Si tu marches sur les armes. Et ce que j'ai fait ici pour corriger ce bogue, c'est juste de passer rapidement sur deux armes. Comme quelque chose comme ça. Et j'essaie juste quelques fois et l'une des fois, vous aurez le virus, parfois l'une des armes ne fonctionne pas. Cela est en fait dû au fait que lorsque ce code est en cours d'exécution et que vous essayez de piller l'arme grâce à cette notification de représentant, parfois, si vous franchissez assez rapidement ou à un rythme correct, il supprimera votre arme pillée ici Et quand le suivant l'atteindra alors qu'il n'a rien, il ne sera plus valide. Et puis tout cela n' arrivera pas et vous serez évincé, puis vous pourrez voir que l' arme est au sol Mais si vous jouez en tant que serveur, vous pouvez voir que le client tient l'arme. Cependant, pour le client, il ne peut pas voir l'arme dans sa main. Ils ne peuvent le voir que sur le sol, même s'ils le tiennent réellement dans la main. Je savais qu'il s'agissait d'un problème de réplication parce que le serveur l'avait examiné correctement, mais le client a remarqué qu'il semblait être au sol alors qu' il devait être entre les mains. C'est en fait celui-ci. C'est ce qui rend tout cela étrange. Au lieu de supprimer la variable « arme pillée », tu te souviens de ce que nous avons fait ici ? Juste un petit tour d'horizon pour ne pas trop nous embrouiller, car nous avons beaucoup fait dans ce cours. Nous avons simplement pillé l'arme. Puis on passe par là, on pille l'arme. Nous sommes en train de vérifier si ces armes superposées ne sont pas vides. S'il n'est pas vide, nous pillons l'arme. Et après tout cela, nous allons le retirer de l'arme qui se chevauche Ensuite, nous vérifierons s'il y a d'autres armes superposées à piller, ce qui nous mènera jusqu'ici d'autres armes superposées à piller, ce qui nous mènera jusqu' En fait, laissez-moi voir où il se trouve. Il nous emmène ici, vérifie s'il y a des armes qui se chevauchent, puis essaie à nouveau de piller l'arme Encore une fois, il vérifie s'il est vide. Maintenant, il y a moins d'objets maintenant parce que nous avons retiré l'ancien ici. Maintenant, il fonctionne à nouveau. Disons que c' était juste le pistolet. Disons que c'était juste le pistolet et que nous l'avons retiré ici. Celui-ci devrait être vide maintenant. Et il dit que s'il n'est pas vide, ce sera faux parce qu' il est vide maintenant. Et puis il est dit : « Je peux à nouveau piller une arme ». Cela le retardera. Ici, il va le supprimer. N'oubliez pas que si nous avons supprimé une notification de représentant, c'est parce que vous récupérez la même arme encore et encore N'oubliez pas qu'une notification ne s' exécute pas si vous la mettez à jour avec la même valeur Si je l'ai mise à jour avec le même pistolet, ne fonctionnera pas en fait C'est l'inconvénient d'une notification de représentant. Si vous appliquez exactement la même valeur, elle ne sera pas exécutée. C'est pourquoi nous supprimons réellement la variable, puis nous pouvons l'exécuter à nouveau. OK, au lieu de le faire ici, juste une solution très simple, nous pouvons nous en occuper à partir d'ici. Laissez-nous simplement le coller quelque part par ici. Au lieu de cela, nous ne pouvons pas le coller ici, car nous l'utilisons en fait pour régler l'état de mouvement ou pour bloquer l'arme équipée. Nous pouvons l'ajouter ici avant de le supprimer de celui-ci. Ou vous pouvez également l'ajouter ici. Ça n'a pas d'importance. Je vais juste ajouter avant cela ici et vous pouvez le connecter. Ensuite, je vais réorganiser les choses, non ? J'ai donc également déplacé les commentaires. Nous l'avons ici maintenant, il est ici en bas à la place. Et nous pouvons en fait l' avoir ici parce que nous avons ce retard. Nous pouvons utiliser ce délai Nous ne remplaçons donc pas cette variable ici car nous avons en fait un délai Et ce code peut être lu avant que nous supprimions réellement la variable. Il est logique que ce soit ici. Et puis nous n'avons pas vraiment besoin de ce délai, de ce délai. Nous l'avons ajouté auparavant car nous voulions attendre que ce code soit joué. Cependant, pour celui-ci, supprimons-le simplement. Nous pouvons simplement reconnecter celui-ci. Juste comme ça. Oui, je pense que ça va tout régler. Alors, sauvegardons tout cela. Permettez-moi de cliquer, laissez-moi passer à jouer en tant que serveur d'écoute. Et je vais jouer à trois joueurs. J'essaie de rejouer et voir si je peux faire réapparaître ce livre. Bien, j'ai donc essayé environ 40 fois maintenant, rien ne se passe. Et cela semble avoir résolu le problème. Il s'agissait d'un problème de réplication. Tout fonctionne comme prévu. Maintenant, je vais juste cliquer sur le ressort et le mettre à zéro. Encore une fois, compilez tout. Passons à la leçon suivante. 116. Actions d'entrée pour la commutation d'arme: Il est maintenant temps de créer l'action de saisie pour changer d'arme et d'essayer de le faire vous-même. Essayez de créer une action d'entrée appelée arme principale et arme secondaire, et essayez de les ajouter vous-même. C'est ce que nous faisons depuis longtemps. C'est juste un beau défi. Et tu peux essayer de te lancer des défis. Et si vous ne vous en souvenez pas, allons-y et faisons-le ensemble. Cliquez ici avec le bouton droit de la souris et passons à la saisie et à l'action de saisie. Je vais le faire un peu plus rapidement qu' avant parce que nous savons ce que nous faisons actuellement. Arme principale. Essayons, cliquez à nouveau, passez à l'action Input Input et fabriquons l'arme secondaire. Passons au contexte de mappage des entrées. Et pour sortir d'ici, je clique deux fois parce que je dois ajouter deux mappages ici. Et je ne sais pas pourquoi cela ne me montre rien. En fait, je pense que je dois changer cela avant de pouvoir ajouter la seconde, une arme principale. Et je vais cliquer à nouveau sur le signe plus. Je ne sais pas pourquoi ils continuent de maximiser, c'est en fait un peu ennuyeux Je pense que vous pouvez appuyer ici. Oui, vous pouvez dire ici, réduire ou agrandir. Tout ce que vous pouvez faire disparaître, c'est tout. Je pense que ça marche peut-être. Une arme secondaire ? Oui, ils ont encore une fois maximisé sans aucune raison. Arme principale. Je vais cliquer sur ma touche pour obtenir mon arme principale , mon fusil. Et cliquez sur les deux touches pour récupérer mon pistolet. Comme déclencheur, je vais appuyer sur l'écriture parce que je ne veux y jouer qu'une seule fois. Lorsque je clique sur le bouton, je ne veux pas effectuer de mise à jour en permanence. Ces deux éléments sont donc ajoutés. Maintenant, sauvegardons tout, fermons-les. Passons au joueur. Passons à la base de joueurs. Et à l'intérieur d'ici, cliquons avec le bouton droit de la souris ici et disons IA arme principale. Et ici, disons une arme secondaire IA. Bon, maintenant nous avons ces deux événements. Et nous pouvons les utiliser pour obtenir notre fusil ou notre pistolet si nous en avons dans l'inventaire 117. 9.02 Logique de commutation d'arme: OK, donc pour le changement d'arme, allons-y d'abord. Je vais le retirer sur le côté car je n'en ai pas besoin d'abord. Il suffit de travailler avec l'arme principale. Alors allons-y à juste titre et créons un nouvel événement personnalisé. Et je vais parcourir le serveur et je vais l'appeler, appelons-le équiper une arme. Exécutons celui-ci sur le serveur de manière fiable. Lorsque nous appuyons sur une touche, par exemple la touche principale de l'arme, nous voulons équiper le fusil. Quand je fais quelque chose comme ça, j'essaie de réfléchir étape par étape. Ne pensez pas à deux ou trois pas d'avance, car vous serez confus. Et je vais aussi m'y perdre, une étape à la fois. Que devons-nous faire lorsque nous devons équiper l'arme ? Tout d'abord, si vous avez cette arme dans votre inventaire , comment vous y prenez-vous ? N'oubliez pas que nous avons fait en sorte que ce type d'arme soit trouvé dans l'inventaire. On peut le faire glisser ici. Ce que nous voulons trouver, c'est simplement le fusil. Parce que lorsque vous cliquez sur une touche, je peux faire glisser le pointeur d'ici et dire arme équipée d'un serveur. Lorsque nous cliquons dessus, nous voulons trouver le fusil. Maintenant, nous voulons d'abord nous assurer que nous n'avons pas déjà le fusil entre nos mains, sinon cela n'a pas vraiment de sens de le rééquiper. Je vais prendre ce que nous avons déjà équipé. Donc, le type d'arme équipée, je dois dire que s'il n' est pas équivalent à un fusil, alors nous pouvons organiser cet événement. Parce que si nous avons déjà équipé le fusil, cela n'aurait aucun sens de tout lancer, de le connecter ici. OK, donc ici en bas, partons de cette branche et créons une branche ici, ou créons une branche à partir de ce lingot Et chaque fois qu'il trouvera cette arme dans l'inventaire, donc chaque fois qu'il trouvera le fusil, je fabriquerai un lingot Et ce lingot s'appelle une arme trouvée dans l'inventaire. Et maintenant, nous pouvons prendre ceci ici et le définir comme vrai, juste comme ça. Et n'oubliez pas de briser la boucle comme ça. D'accord, maintenant nous savons que l'arme a été trouvée dans l'inventaire, ici, une fois terminée. Nous pouvons continuer le code ici. Nous cherchions juste l'article dans l'inventaire et maintenant nous l'avons trouvé. Je vais donc prendre cette astuce et m'assurer qu'elle n'est vraie que si c'est vrai. Nous allons exécuter du code. Si nous ne l'avons pas trouvé dans l'inventaire, nous n'avons pas vraiment besoin de faire quoi que ce soit. Ce que je dois faire, c'est équiper l'arme. Laissez-nous ici, nous pouvons simplement cliquer avec le bouton droit de la souris sur celui-ci. C'est l'arme que nous avons trouvée dans l'inventaire. Permettez-moi simplement de le promouvoir au rang de variable et de l'appeler arme d'équipement. Maintenant, qu'est-ce que cela signifie, doit-il être répliqué ou répété, notifié Tu peux essayer de répondre toi-même à la question. Et pourquoi devrait-il être reproduit, notifié ou répliqué ? Maintenant, je vais vous donner la réponse. Celui-ci doit être représenté, prévenu. Et n'oubliez pas, chaque fois que vous avez des changements visuels. Donc, à l'heure actuelle, le joueur va tenir le fusil dans la main, ce qui représente un changement visuel. Vous devez en faire une notification de représentant, afin de pouvoir informer tous les clients du changement visuel Alors allez-y et connectez-le ici. Et cliquez dessus et configurez-le pour qu'il soit notifié par un représentant. Et puis n'oubliez pas de changer de position. Parce qu'à l'heure actuelle, si vous cliquez dessus, vous vous équiperez d'une arme. Donc, pour le moment, cela n'est pas fait, et nous le ferons dans la prochaine leçon. Vous devez donc également vous rappeler de définir type d'arme que vous utilisez actuellement car souvenez-vous que nous l'avons créé ici. Celui-ci contrôle ce qui est joué dans votre plan d'animation Allons ici et disons, et vous pouvez le trouver ici, définissez le type d'arme équipée. Dans ce cas, le type d'arme doit être un fusil. De plus, vous devez définir ce paramètre sur Falls, car plus tard, lorsque nous le ferons, encore une fois, il sera défini sur true. N'oubliez pas de le définir sur « tombe ici », nous devons également réinitialiser cette variable. Nous devons le régler sur falls chaque fois que nous avons terminé le code, la prochaine fois qu'il sera entré, il exécutera le code correctement, sinon il sera automatiquement vrai. Et il exécutera ce code même s'il ne va pas bien. Et je voudrais également réinitialiser cette variable, car une fois que nous aurons fait tout cela, oubliez pas que nous devons réinitialiser la notification du représentant pour qu'elle ne s'éteigne pas Et nous pouvons prendre cette arme équipée et la réinitialiser ici avant de tout terminer. Et peut-être devons-nous ajouter un délai ici afin de donner au représentant le temps de jouer Mais vérifions-le plus tard. Je ne suis pas fan de l' ajout de délais aléatoires. Je n'ajoute des retards que lorsque nous en avons réellement besoin, car les retards sont une bonne chose. Celui-ci ne sera pas remarqué. C'est 0,05 Aucun humain ne le remarquera jamais, mais nous n'avons pas vraiment besoin d'en ajouter un si nous n'en avons pas vraiment besoin OK, donc la deuxième chose dont nous avons besoin ici, c'est si vous tenez déjà une arme à la main. Ainsi, par exemple, si vous tenez déjà un pistolet, vous devez le dééquiper En fait, nous devons également nous dééquiper. Je dois donc demander si le joueur est armé ou non. Parce que le joueur tient peut-être un pistolet en ce moment , nous pillons le fusil, nous appuyons sur la touche du fusil et nous avons déjà un pistolet équipé Ensuite, nous devons d'abord dééquiper le pistolet. À partir de là, je vais le déconnecter, et le faire glisser un peu vers le bas. Ensuite, nous pouvons prendre ce type d'arme équipée et nous demander si c' est équivalent à une arme non armée Créons une branche ici et connectons-la à nouveau ici. Si c'est égal à désarmé, nous allons simplement exécuter le code que nous avons créé plus tôt Cependant, s'il n'est pas désarmé, nous voulons dééquiper l' arme que nous détenons Encore une fois, trouvez l'arme dans l'inventaire dont nous parlons. De quelle arme parle-t-on ? Nous parlons de l' arme équipée dont nous disposons actuellement. C'est peut-être le pistolet en ce moment. Ensuite, lorsque vous l'avez trouvé, nous créons une branche comme avant. Lorsque vous l'aurez trouvée, transformons-la en variable et appelons-la arme non équipée . Et laissez-nous le transmettre à un représentant, prévenir et le connecter ici Prenez des notes sur l'itinéraire arrière. Et puis quand tout sera terminé, parce qu'en ce moment vous exécutez ce code et vous êtes en train de démonter l'arme Mais tu devras t'équiper de cette arme par la suite. Donc, dans la version complète, vous devez le relancer ici. Permettez-moi de le traîner ici pour faire de la place et le rendre beaucoup plus beau. Et on peut le traîner ici. OK, donc quelque chose comme ça a l'air bien mieux. Nous vérifions si nous ne sommes pas armés ou non. Si nous ne sommes pas armés, nous allons équiper l'arme instantanément. Si nous sommes armés d'un pistolet, par exemple, nous allons le déséquiper N'oubliez pas de rompre la boucle. J'ai oublié de le brancher ici. Brisons également la boucle. Une fois que nous aurons rompu la boucle, et qu'elle sera terminée, nous équiperons l'arme, les personnes non équipées et l'équipement C'est ce que nous ferons dans la prochaine leçon. Mais pensez également à réinitialiser l' arme non équipée afin de ne pas avoir de boîte plus tard dans le jeu Oui, c'était tout pour la logique en ce moment, nous ne pouvons pas vraiment le tester parce que le représentant n'est pas vraiment prévenu Passons à la leçon suivante et travaillons dessus. 118. 9.03 Équiper et unifier RepNotify: Très bien, alors avertira le représentant de l'équipement non équipé. Ce sera très facile car nous l'avons déjà fait. Si nous passons à l'arme à butin ou à l' arme pillée, si vous allez voir le représentant, signalez l'arme pillée Si vous entrez ici, souvenez-vous que nous avons fait tout cela en désactivant la collision, etc. Donc, lorsque vous avez déjà l' arme dans l'inventaire, nous avons déjà supprimé la physique, nous avons déjà supprimé la collision, et nous avons fait tout cela. Nous n'avons donc pas vraiment besoin de tout recommencer. Tu l'as déjà fait quand tu as pillé l'arme. La seule chose que nous devons faire est donc de l'équiper de notre dos. Donc, celui-ci ici, attachez l'acteur à l'une de ces prises. Donc, dupliquons simplement ce code ici. Je vais copier et passer à mon arme d'équipement et je vais la coller ici. Bien, pour celui-ci, ce n' est pas l'arme pillée Je vais les supprimer. C'est notre arme équipée, donc je vais la traîner et la brancher ici. Et je vais brancher celui-ci ici. OK encore une fois, je vais le reprendre ici, cliquer avec le bouton droit de la souris et dire convertir en un get validé. Je m'assure que ma variable est valide avant de faire tout cela, avant de l'attacher. N'oubliez pas qu'en ce moment votre arme équipée, celle-ci ici en ce moment, est attachée à votre dos. Par exemple, votre AK 47 avant que vous ne le teniez dans la main, il est attaché au dos du personnage. Tout d'abord, vous devez le détacher de cette ancienne prise Tu dois le faire glisser d'ici et dire « détacher de l'acteur ». Nous allons d'abord le détacher par l'arrière. Et nous pouvons conserver notre position face au monde sur chacun d'entre eux. Après l'avoir détaché de l'arrière, nous pouvons continuer. Je vais en fait supprimer ce nœud de route. Je vais le connecter directement ici. Et nous pouvons le décomposer pour le rendre un peu plus beau ici. Et puis celui-ci, vous pouvez le supprimer et vous pouvez le connecter ici si vous le souhaitez. C'est juste pour le rendre un peu plus beau, quelque chose comme ça. Laisse-moi juste les rapprocher. OK, nous l'avons ici. Il s'agit du code équipé pour les personnes non équipées. Vous l'avez peut-être déjà deviné. Nous devons utiliser l'arme du Let pour la lâcher. Nous avons déjà fait tout cela et nous ne sommes pas tombés dans le drop. Passons à l'arme pillée. Nous avons besoin de ce code ici où vous posez votre pistolet, par exemple, sur votre cuisse lorsque vous avez sorti le fusil Copions simplement tout cela ici où vous le mettrez sur le dos ou sur la cuisse. Passons à l' arme non équipée, comme avant. Collons celui-ci. Et laissez-moi plutôt prendre l'arme non équipée et la brancher ici Permettez-moi de supprimer celui-ci. Permettez-moi de le reprendre, accord, convertissez en une connexion validée. En fait, supprimons simplement celui-ci et connectons-le ici à la place. Avant cela, détachons-nous encore une fois de l'acteur. Et nous allons garder la position par rapport au monde et la détacher de l'acteur. Ensuite, nous allons le connecter ici. N'oubliez pas non plus que nous utilisons une arme non équipée, juste comme ça OK, vas-y comme avant. Déplacez-le vers le bas. Et rapprochez-le pour qu'il soit un peu plus beau. Quelque chose comme ça. Et allons-y, compilons et sauvegardons tout. OK, maintenant nous en avons fini avec eux et nous pouvons continuer et cliquer sur Play pour voir si cela fonctionne réellement ou si nous avons créé des livres. Et allons-y et cliquons sur jouer. Laissez-moi jouer le rôle du contre-terroriste en tant que serveur. En fait, incarnons le terroriste. Parce que les armes sont là en ce moment. Il n'y a qu'une seule touche qui fonctionne. Je dois donc éluer le fusil comme deuxième arme. Maintenant, si je clique sur l'un d'eux, vous pouvez voir que je suis en train de sélectionner mon fusil. Et si je spamme une touche, souvenez-vous que nous ne pouvons pas envoyer de spam la touche unique si je la ferme pour que je puisse vous la montrer, car ici, trouvons le graphique des événements. En fait, je vais fermer tout ça. Je vais donc le déplacer ici, cliquer avec le bouton droit de la souris, fermer les onglets vers la droite. C'est donc un peu mieux de regarder ici. N'oubliez pas que nous avons fabriqué ce lingot pour ne pas envoyer spam à la clé du fusil, car si nous avons déjà le fusil, nous n'exécuterons pas ce code C'est également une bonne chose pour l'optimisation. Ainsi, vous n'exécutez pas de code inutilement. Tout fonctionne très bien, et si nous trouvons une boîte, nous pouvons toujours la réparer. Cependant, tout fonctionne. La prochaine chose que nous devons faire est l'arme secondaire, et c'est ce que nous allons faire dans la leçon suivante. 119. 9.04 Équiper une arme auxiliaire: Passons maintenant à l'arme secondaire. Vous pouvez continuer, copier tout cela et créer un nouvel événement. Et il suffit de copier-coller tout cela et de le remplacer par un pistolet Cependant, ce ne serait pas vraiment une bonne pratique de codage. Maintenant, souvenez-vous que j' essaie de vous apprendre le meilleur code et que nous pourrions le copier-coller ici, et cela fonctionnerait parfaitement. Cependant, lorsque je vois quelque chose en train de copier-coller, lorsque je vois du code qui doit être copié et que la seule chose que je dois changer est une valeur, par exemple, celle d'un fusil à J'essaie toujours de chasser. J'ai juste cet événement et je peux réutiliser au lieu de le copier-coller à nouveau. Oui, nous pouvons essayer de réfléchir par vous-même, comment pouvons-nous également utiliser cet événement ici ? Cela fonctionne vraiment ici et ici. Sans avoir à copier-coller tout cela, que devons-nous faire maintenant ? Nous pouvons publier cette vidéo et vous pourrez revenir. Maintenant, je vais vous donner la réponse. Au lieu de l'avoir sous forme de variable statique, nous pouvons la rendre dynamique. Nous pouvons l'intégrer ici, dans cet événement. C'est le type d'arme à trouver. Je crois vraiment que nous avons besoin, oui, de celui-ci aussi. Lorsque nous changeons d'arme, d'animation, celle-ci doit également être intégrée à celle-ci. Double-cliquez sur celui-ci et redirigeons les notes. Très bien, maintenant nous l'avons branché ici. Ce que nous pouvons faire, c'est ici avec l'arme principale, nous pouvons simplement la remplacer par un fusil ici au lieu d'en bas. Ce que nous pouvons faire ici, je vais juste copier-coller tout ça. Et collez-le ici. Je vais le connecter maintenant à la place du fusil. Maintenant, l' arme secondaire est un pistolet. Donc, si nous n'avons pas de pistolet déjà équipé, nous pouvons organiser cet événement Et celui-ci, je vais le changer en pistolet maintenant. Il va avoir cette valeur branchée ici et maintenant il va rechercher un pistolet OK, alors maintenant, très facilement, nous avons terminé cette leçon. Tu peux cliquer sur jouer, je peux cliquer sur un terroriste et je peux piller ces deux armes Je peux cliquer sur l'un d'eux pour avoir mon fusil. Je peux cliquer sur deux pour avoir mon pistolet. Maintenant, vous pouvez voir que nous pouvons passer d'une arme à l'autre sans aucun problème. Et nous n'avons même pas copié tout cela. Nous venons de réutiliser le même. 120. 9.05 Créer des montages d'animation: OK, donc ce que j' aimerais faire maintenant que je trouve que c'est un peu bon marché en ce moment. Parce que nous pouvons changer d'arme comme ça. Et ce serait cool si nous avions une animation lorsque nous changeons d'arme. Si vous avez déjà joué à Counter Strike, lorsque vous changez d'arme, cela recharge en quelque sorte l'arme avant que vous ne puissiez l'utiliser Faisons quelque chose comme ça et pour cette leçon, c'est très simple. Nous allons simplement créer des animations ou des montages d'animation Cliquons sur les actifs. N'oubliez pas que ce n'est pas l'animation, ce ne sont pas les anciennes. Ce sont les atouts. C'est notre personnage. Assurez-vous simplement que c'est notre personnage. Au lieu d'ici, je vais simplement rechercher reload car nous avons des animations de rechargement que nous utiliserons Maintenant, je n'ai pas d'animations spécifiques pour sortir ton arme. Vous l'avez probablement fait si vous avez un projet sérieux et que vous souhaitez réaliser quelque chose comme celui-ci. Cependant, pour celui-ci, utilisons simplement l' animation de rechargement lorsque nous sortons notre arme Et cela vaut également pour les bonnes pratiques. Faisons d'abord un clic droit sur le pistolet. Par exemple, allez à la rubrique Créer et créer un montage d'animation. Avec le montage d'animation, nous pouvons ajouter quelque chose comme recharger des animations, des animations tir au pistolet, etc. sans perturber notre animation en cours d' exécution Et cliquez sur le montage d'animation, appelons-le anion pour montage d'animation et appelons-le pistolet de rechargement Faisons de même pour le fusil, cliquez avec le bouton droit de la souris, allez créer un montage d'animation. Et appelez-le fusil à recharge. Et si vous l'ouvrez maintenant, vous pouvez voir que nous avons un montage d'animation. Et nous avons certaines choses que nous pouvons faire ici. Et nous allons en fait utiliser cette partie ici pour créer un mouvement du haut du corps. Ainsi, lorsque nous courons, nous pouvons avoir cette autre animation, cette animation de rechargement, sans arrêter notre animation en cours d'exécution Nous pouvons donc avoir deux animations à la fois et c'est pourquoi nous avons créé ce montage d'animation. 121. 9.06 Ajuster le plan d'animation: OK, avant que les montages d' puissent fonctionner sur votre animation, vous devez faire quelque chose dans le plan d'animation Passons au lecteur et ouvrons le plan d'animation Et n'oubliez pas que c'est ce que nous avons fait ici jusqu'à présent. Ce que vous devez faire, c'est effectuer un mouvement du haut du corps, comme vous pouvez le voir ici. Si je reviens à mes animations et que je cherche mon animation, je jette un coup d' œil à mes montages d'animation Maintenant, si je clique sur l'un d'entre eux, je peux voir ici qu'il utilise un emplacement appelé slot par défaut. Et nous devons en fait utiliser le haut du corps à la place. Ici, dans le gestionnaire de machines à sous de l'animation. Cliquons sur un emplacement, appelons-le simplement haut du corps, parce que je ne veux déplacer le haut du corps que lorsque je recharge tout en laissant mon personnage courir partout Tu peux courir, recharger haut du corps et nous laisser le sauver Et maintenant, tu verras si tu passes aussi au pistolet. Ici, dans le gestionnaire de machines à sous, vous avez le haut du corps. Vous avez cet emplacement chaque fois que vous le créez sur l'un d'entre eux, le fusil l'a et le pistolet aussi OK, vous devez cliquer sur l'emplacement ici au lieu de l'emplacement par défaut. Cliquons maintenant ici pour le nom du slot et changez-le en haut du corps. Il en va de même pour le pistolet, donc tous les deux cliquent ici, le nom de la machine à sous et remplacez-le par le haut du corps Maintenant, vous pouvez voir que l' animation ne joue pas car nous sommes les seuls savoir qu'il s'agit du haut du corps. Nous n'avons pas vraiment indiqué au moteur neuronal ce qu'est le haut du corps pour le moment. C'est ce que nous devons faire. Passons au plan d'animation qui se trouve ici. Nous devons utiliser une fonction appelée Layered Blend her Bone. Cette couche permet de mélanger ses os par défaut. Prenons d'abord le pistolet Copions ceci. Le mouvement du pistolet est mis en cache, et placons-le ici Ce qu'il faut mélanger, c'est essayer de le copier-coller à nouveau. Et nous devons faire glisser le pointeur ici et rechercher l'emplacement par défaut. Vous pouvez voir ici que nous avons cet emplacement par défaut. Cependant, ce n'est pas ce que nous voulons utiliser pour le moment. Nous voulons utiliser, si vous cliquez ici, que vous souhaitez le remplacer par le haut du corps. Maintenant, nous utilisons celui-ci à la place. Et tu peux sortir et le connecter ici. Chaque fois que nous jouerons notre montage d' animation, il se mélange entre les deux. Nous avons ce mélange ici. Cliquons dessus ici. Et cliquons sur la configuration de la couche. Cliquez ici et cliquez sur le signe plus. Cliquez sur la flèche ici. Maintenant, nous sommes à l'intérieur. Ce que nous essayons de faire maintenant, c'est de dire à Unreal Engine ce qu' est le haut du corps, car à l'heure actuelle, Unreal Engine ne connaît pas vraiment le haut du Tu dois lui donner un nom osseux. Si vous ouvrez le squelette ou le personnage et que vous cliquez sur les os du personnage et sur toute la hiérarchie, vous pouvez voir l'os du personnage que nous voulons indiquer au haut du corps. Où est-ce que ça commence ? Habituellement , dans la plupart des cas, cela commence ici à la colonne vertébrale 01. Parfois, ça a l'air mieux quand ça commence à partir de la colonne vertébrale 02. Dans ce cas, essayons d' utiliser le Spine 01. Vous devez revenir en arrière et l'écrire exactement comme on l' appelle ici, nous l'appellerons Spine 01. Et la profondeur du mélange en est une. Et aussi la rotation de l'espace maillé, le mélange est dit vrai. Compilons et supprimons-le d'ici. Et connectons plutôt ceci. Juste comme ça, je vais copier-coller tout ça et supprimer le pistolet Et au lieu de cela, reprenez le fusil et branchez-le ici également. Allons-y, connectons également le fusil et supprimons l'ancien. Je vais le déplacer vers le bas et organiser un peu plus les choses. Donc quelque chose comme ça ici. Alors je pourrai le déplacer ici comme avant. Et maintenant, nous en avons fini avec cela. Si je clique sur Peut compiler, vous pouvez voir mon personnage est en train de bouger maintenant. Maintenant, si nous jouons nos montages d'animation, tout devrait fonctionner parfaitement N'oubliez pas de le changer. Ici, dans votre montage d'animation, pensez à le remplacer par le haut du corps. Et n'oubliez pas qu'en ce qui concerne le haut du corps, pour le mélange en couches par os , pensez à indiquer de quel os vous souhaitez effectuer le mélange. Très, très important. Sauvegardez tout, et passons à autre chose. 122. 9.07 Equip Animation Multicast: Allons-y et faisons en sorte que cela fonctionne. Revenons au joueur et ouvrons la base de joueurs ici. Jouons notre montage d'animation. Ce que vous devez faire, c'est prendre ce maillage que nous avons et vous pouvez le faire glisser à partir d'ici et rechercher un montage d'animation. Et puis vous pouvez le voir ici. Jouez au montage d'animation. Bon, maintenant nous devons sélectionner quel montage il s'agit. Je vais le rendre dynamique comme celui-ci. Ce que nous pouvons faire, c'est nous rappeler que celui-ci est un effet temporaire. Au lieu d'utiliser un représentant, notifiez, souvenez-vous qu'un joueur qui ne s'est pas encore connecté à votre serveur voit une notification de représentant Et s'ils se connectent, par exemple, 10 minutes plus tard, ils peuvent voir votre arme équipée. Cependant, l'animation, comme celle de rechargement lorsque vous prenez une arme et qu'ils peuvent assister à un rechargement, n'a pas vraiment besoin de s'afficher pour les joueurs non connectés car il s'agit simplement d'une animation qui disparaît au bout d'une qui disparaît au bout Les gens ne seront pas vraiment désolés s'ils ne peuvent pas voir cette animation lorsqu'ils se connectent, car elle disparaîtra au bout d'une seconde de toute façon. Je vais donc plutôt ajouter à une multidiffusion. Une multidiffusion. N'oubliez pas que seuls les joueurs connectés peuvent le voir. Et les joueurs non connectés, s'ils se connectent en même temps que vous rechargez, ils ne peuvent pas le voir tant que vous ne le rechargez Laissez-nous organiser un nouvel événement client Appelez ça le multicast. Appelons-le Equip Weapon, car j'ai l'habitude l' appeler du même nom que celui du serveur. Laissez-nous l'exécuter en multidiffusion de manière fiable, et connectons-le ici pour la multidiffusion Selon que nous tenons un pistolet ou un fusil, nous voulons jouer l'animation correspondante Tout comme ce que nous avons fait ici. Je vais créer une nouvelle variable correspond au type d'arme , comme là-haut. Sélectionné. Faisons la même chose ici. Je vais juste m'équiper. Je vais juste l' appeler pour m'équiper. En fait, je vais l'appeler de la même façon ici. Au lieu de trouver, de s' équiper comme ce type d'arme à équiper. OK, tout a l'air bien. Nous pouvons maintenant faire glisser le pointeur d'ici et dire «  sélectionner » et « utiliser ce nœud de sélection ». Ensuite, nous pouvons connecter celui-ci ici. Il va maintenant sélectionner l'animation en fonction de cette valeur d'énumération Si c'est le pistolet, je vais sélectionner et le jouer Montage d'animation. Si c'est le fusil, je vais jouer au fusil Animation Montage. Maintenant, il va jouer en fonction de ce que nous avons sélectionné ici pour le fusil ou ici pour le pistolet Permettez-moi de le déplacer en dessous des deux. En fait, je vais organiser ça un peu plus. Déplacer ceci, déplacer ceci au-dessus. Ils sont donc ensemble et celui-ci est en dessous d'eux. Et nous pouvons également déplacer celui-ci vers le haut, juste comme ça. OK, maintenant nous l'avons et maintenant nous devons l'ajouter au code. Je vais donc simplement l'ajouter ici. Juste après avoir changé notre état de mouvement, je veux jouer mon animation de rechargement Et nous l'avons appelée arme MC Equip. Et n'oubliez pas que les multidiffusions ne peuvent être exécutées que lors d'événements liés au serveur. Il s'agit d'un événement de serveur. N'oubliez pas que c'est très important, la multidiffusion ne peut pas fonctionner ici. Vous ne pouvez donc pas appeler un multicast ici. C'est faux. Vous devez le faire passer par le serveur. Discutons-les et disons arme MC Equip. Connectons-le ici. Et associons-y ce type d'arme pour qu'il soit correct lorsqu'il est joué. Et compilons maintenant. Maintenant, nous pouvons continuer et cliquer sur Play pour voir si tout fonctionne ou si nous avons une boîte. Si je clique sur jouer, que je sélectionne des terroristes et que je les sélectionne ici, maintenant je clique sur l'un d'eux , vous pouvez voir que je joue l'animation de rechargement Si je clique sur deux, je recharge également. Voyons maintenant si cela correspond à notre course à pied. Si je cours et que je clique ici, vous pouvez voir que je cours réellement et que je recharge Si je clique sur la commande et que je recharge, voyez, si je clique simplement sur le bras à ressort et que je le porte à 500 pour que nous puissions vraiment voir à quoi il ressemble, je clique sur Play Et si nous les prenons maintenant, faisons-le maintenant. Si je change, vous pouvez voir que je suis accroupi et que je recharge Cela fonctionne maintenant. Tout fonctionne correctement. Génial. Maintenant, je clique sur le bras à ressort, mets à nouveau la longueur du bras cible à zéro, et tout fonctionne. Maintenant, nous devons également l' ajouter ailleurs. Parce que lorsque nous récupérons l' arme par terre, elle ne joue pas pour le moment Chaque fois que vous pillez les objets ou que vous vous trouvez dans le lot, des armes, chaque fois que vous récupérez l'objet ici chaque fois que vous récupérez l'objet Lorsque nous définissons le type d'arme équipée du lot, nous devons également jouer à l'animation. C'est donc correct. Laisse-moi juste déplacer ça un peu plus loin. Et appelons-le à nouveau arme MC Equip. Et ajoutons le type d'arme , quel qu'il soit. C'est celui-ci. Allez-y et créez un nœud de route arrière, et maintenant nous l'avons correct ici. Nous allons donc organiser les choses un peu plus comme ça. OK, donc maintenant il est également à l'intérieur d' ici dans l'arme à butin Et maintenant, cliquons sur jouer. Maintenant, chaque fois que je pille mon arme, elle joue cette animation avant que je puisse tirer avec mon arme C'est ainsi que vous pouvez également ajouter des animations à vos armes. Vous pouvez les ajouter par le biais montages d'animation et vous pouvez également effectuer un mouvement du haut du corps pendant les montages d'animation, afin de ne pas perturber votre animation de course pendant que vous faites tout cela OK, c'était donc tout pour le moment. Sauvegardons tout et passons à la suivante. 123. 9.08 Paramétrer le widget d'affichage des armes: Il est maintenant temps de créer le widget d'affichage des armes. Allons-y donc. Dans l'interface utilisateur, comme avant de créer la sélection de l'équipe, cliquez maintenant avec le bouton droit de la souris comme avant de créer la sélection de l'équipe, , accédez à l'interface utilisateur et créez un autre widget, Blueprint Maintenant, pour celui-ci, encore une fois, c'est le widget utilisateur que nous allons sélectionner. Et appelons-le B. Je vais l'appeler principal. Ce sera l' interface utilisateur principale que nous aurons. Nous n'avons pas créé de NuWi principal pour le jeu. Dans le Nei principal, vous pouvez également voir vos armes. Ouvrons celui-ci. N'oubliez pas que chaque fois que vous commencez sur le plan d' un widget, vous devez d'abord utiliser le canevas, en y ajoutant un canevas Et pour le moment, nous sommes prêts à le concevoir ici. Cependant, nous n'avons toujours pas importé les icônes. Alors laisse-moi tout enregistrer. Fermons ça. Et je veux que vous examiniez le matériel pédagogique que je vous ai donné, que vous passiez aux icônes de l'interface utilisateur, et je vous ai donné ces icônes. Alors allez-y et sélectionnez à nouveau toutes les icônes des armes à feu. Vous pouvez voir différents éléments dans ce matériel de cours en fonction de la date à laquelle vous le téléchargez. Parce que pour le moment, j'ajoute juste plus de choses au fur et à mesure de ce cours. Il y a peut-être plus d'icônes que ce que vous pouvez voir ici en ce moment. Ayez ces trois icônes. Pour l'instant, passons au dossier des icônes. Permettez-moi de cliquer et de les faire glisser ici. Encore une fois, comme nous l'avons fait avec les autres, souvenez-vous que nous avons changé le groupe de textures en UI et les paramètres de compression interface utilisateur deux D. Faisons-le également avec ces trois éléments. Vous pouvez maintenant cliquer dessus et les configurer individuellement. Cependant, vous pouvez simplement cliquer sur l'un d'eux ou maintenir la touche Ctrl pour sélectionner les trois. Cliquez avec le bouton droit de la souris, puis accédez à Asset. Action, modification en bloc via la matrice de propriétés. N'oubliez pas que c'est ainsi que vous les modifiez tous en même temps. C'est quelque chose que nous avons déjà fait. Nous allons de l'avant et cliquons dessus. En ce qui concerne la compression, je le crois, étant donné qu'en dehors des paramètres de compression, il s'agit deux interfaces utilisateur, deux D, et le niveau de détail, vous pouvez le définir d'un monde à l'autre. Maintenant, nous pouvons le fermer et tout enregistrer. Très bien, alors maintenant, lorsque nous entrons dans l' interface utilisateur et dans l'interface utilisateur principale, et si, par exemple, nous ajoutons une image à l'écran, vous cliquez dessus ici pour que l'image trouve l'image, trouvons les icônes que nous avons ajoutées. Et ici, vous pouvez voir les icônes que nous avons. Très bien, passons donc à la leçon suivante où nous concevons ce plan de widget Pour l'instant, supprimons simplement celui-ci. Gardons ce canevas parce que nous en avons besoin. Et compilez, sauvegardez tout, et passons à autre chose. 124. 9.09 Créer l'interface utilisateur de l'affichage des armes: Bien, ce que nous voulons faire maintenant avec l'affichage des armes, c'est comme dans Counterstrike, où vous pouvez voir ici le côté, que vous avez l' arme, puis que vous avez la touche du clavier sur laquelle vous devez appuyer pour voir cette arme Donc, juste comme ça, nous allons faire la même chose, et l'interface utilisateur sera plus visible chaque fois que vous aurez sélectionné cette arme par rapport aux autres, etc., donc juste un petit effet. OK, pour l'instant, permettez-moi de terminer et nous allons créer cette interface utilisateur d'affichage d'armes très simple. Maintenant, lorsque vous concevez quelque chose comme ça, vous devez penser aux boîtes que vous souhaitez ajouter. Nous avons donc la boîte horizontale et la boîte verticale. abord, nous avons besoin d'une boîte verticale car les armes sont superposées. Choisissons une boîte verticale. Placez-le ici. Redimensionnons-le d'une manière ou d'une autre pour que je puisse le faire glisser Et je vais le traîner quelque part ici. Encore une fois, n'oubliez pas de changer le point d'ancrage, sinon ce sera faux sur l'écran ici. En cliquant sur le point d'ancrage, le plaçant en bas à droite. Et aussi pour la position, je vais écrire 00 pour voir où elle se trouve à l'écran. Et vous pouvez voir qu'il est en dehors de l'écran. N'oubliez pas que vous pouvez ajuster cela dans l'alignement. Si j'écris 0,5 ici, vous pouvez voir qu'il se trouve maintenant au milieu Et si j'en écris un, il s' enclenche de l'autre côté, et pour Y, si t 0,5, il s'enclenche au milieu Et si j'en écris une, elle passe à l'autre coin. Maintenant, même en position 00, il se trouve à l'intérieur de notre toile, et c'est ce que nous voulons pour les positions x et y. Je peux lui donner quelque chose comme -30 ici et -30 ici, juste pour l' éloigner Il n'est pas en haut de l'écran. Voici le bord de l'écran. OK, compilons. Maintenant, ce que nous devons faire, c'est avoir une arme et la touche du clavier. À côté, nous avons en fait besoin d'une boîte horizontale. Maintenant, une boîte horizontale à l'intérieur de la boîte verticale. Et maintenant, nous pouvons ajouter l'image de l'arme ainsi que le texte de la touche du clavier. Ajoutez-les ici. Permettez-moi de cliquer sur le texte, et écrivons-en un pour le moment. Il s'agit de la touche du clavier. Ensuite, vous pouvez cliquer sur l'image. Laissez-moi simplement sélectionner l'image. Si je recherche l'icône AK 47 par exemple, et que je voulais une taille plus grande, au lieu de 32 x 32, peut-être que nous pouvons écrire quelque chose comme 130 par 130. N'oubliez pas qu'avant de le concevoir correctement, pensez à cliquer sur la taille de l'écran. Accédez aux ordinateurs portables, par exemple, et sélectionnez le bloc-notes générique de 14 à 15 ans. C'est exactement ce que je vous ai montré auparavant avec le widget de sélection des équipes. Cela permet de dimensionner correctement cette interface utilisateur sur tous les appareils. Chaque fois que je suis au zoom un par un, voici à quoi ça va ressembler sur l'ordinateur portable, voici à quoi ça ressemble. Maintenant, vous pouvez voir si vous cliquez sur ce bouton ici, je supprime les tirets. Je le fais habituellement pour voir à quoi cela ressemble sans toutes ces lignes. Je pense que c'est assez grand pour un ordinateur portable. Compilons. N'oubliez pas que nous l'avons redimensionné à mon écran. Par exemple, j'ai un moniteur 4K, et nous l'avons redimensionné en cliquant sur cette petite icône Ensuite, nous avons sélectionné ici le montant que nous voulions augmenter. Je crois qu'il y en avait huit auparavant. Il s'est donc développé très rapidement. Je l'ai mis à 2,5 Oui. Maintenant, cliquons sur ce numéro. Je vais l'aligner verticalement au milieu. Je pense que c'est en train de cliquer sur cette case horizontale. En fait, ce que je vais faire, c'est cliquer sur la case verticale. Et en cliquant sur Size To Content, la taille de la case verticale sera simplement calculée par rapport au contenu qu'elle contient. Ce que nous pouvons faire, par exemple, c'est pour le cadre horizontal , je peux contrôler D, et cela le copiera au-delà de celui-ci ici. Si vous contrôlez simplement D pour le copier ou le dupliquer, vous pouvez voir qu'il colle les armes ici et cela semble correct J'ai juste besoin de deux d'entre eux. Je n'en ai pas besoin d'autant. Je vais d'abord cliquer sur le chiffre. En fait, je vais supprimer celui-ci. Je vais juste styliser l' un d'entre eux et je pourrai le copier-coller Je vais cliquer sur ce numéro. Je vais remplacer le fonds par quelque chose. Nous avons importé du rubis. Je pense que Simy Bold sera parfait pour celui-ci. Nous pouvons toujours le tester pour la taille. Je pense que 22, c'est peut-être mieux. 22, il nous faut un espace entre les deux. Montez ici, recherchez un espaceur et placez-le entre l'image et le texte Ensuite, vous pouvez mettre un peu d'espace entre eux. Par exemple, si j'en fais 20, quelque chose comme ça. Ou vous pouvez le faire encore plus s'il est trop petit. Je pense que c'est bon pour le moment. Maintenant, vous pouvez cliquer sur cette case horizontale de contrôle D pour la dupliquer. Et maintenant que vous l'avez, par exemple, pour celui-ci, vous pouvez le transformer en pistolet Maintenant, cela n'a pas vraiment d' importance pour le moment, car nous allons le modifier de manière dynamique dans le jeu. Cet AK sera une arme. Si je vais voir le plan des armes, si je peux le trouver ici, l'arme ici, 44 Ce sera l' icône, ou celle-ci. Si vous en avez obtenu 44 au lieu d'un AK, ces images changeront de manière dynamique dans le jeu. Cela n'a pas vraiment d'importance, mais pour ces chiffres, c'est un, c'est deux. Et c'est ce que j'appuie sur le clavier pour ces armes soient équipées pour moi. D'accord, c'était donc tout pour le styliser. Vous pouvez voir que c'est très, très simple. C'est une interface utilisateur très simple, mais elle sera jolie dans le jeu. C'était donc tout pour le moment. Allez-y, compilez et sauvegardez tout, et passons à la suivante. 125. 9.10 Afficher l'interface utilisateur de l'affichage des armes: Nous allons maintenant afficher cette interface utilisateur à l'écran. Maintenant, vous pouvez le faire vous-même si vous voulez vous entraîner, car nous l'avons déjà fait. Essayez de comprendre comment vous pouvez l'afficher à l'écran. Après le widget de sélection des équipes. Chaque fois que nous sélectionnons l'équipe, je souhaite afficher cette interface utilisateur principale. Essaie de le découvrir toi-même. C'est un bon entraînement si vous ne vous en souvenez pas ou si vous avez besoin d'aide. Faisons-le ensemble. Laisse-moi fermer ça. d'abord, je dois consulter les plans. Accédez au contrôle du joueur. N'oubliez pas que dans le contrôle du joueur nous avons toute l'interface utilisateur dans laquelle nous avons créé cet événement « Afficher et masquer le widget ». Ici, je veux montrer mon widget principal. Maintenant que nous utilisons cette énumération, je dois l'ajouter à l'énumération Si je vais sur Enums, je clique sur les widgets du jeu À l'intérieur, j'ajoute un nouvel énumérateur et j'écris le nom ou non le nom Je vais le déplacer vers le haut juste pour qu'il reste plus propre. Ça n'a pas vraiment d'importance. Ensuite, je vais passer à la manette du joueur ici, comme avant. Cliquez avec le bouton droit de la souris pour créer des widgets. Ensuite, nous pouvons créer le widget principal. Nous pouvons le rechercher ici. Je vais cliquer avec le bouton droit de la souris pour en faire une variable et l'appeler WB main Nous allons maintenant faire glisser le pointeur à partir d'ici et ajouter à Viewport, comme ceci Maintenant, comme avant, je vais faire glisser ce fichier principal vers l'extérieur, à droite, le convertir en un get validé. Ensuite, lorsqu'il n'est pas valide, je souhaite créer le widget. Cependant, si nous l'avons déjà créé, je vais l' ajouter directement à la fenêtre d'affichage, comme avant Essaie de l'organiser. Lorsque vous avez terminé comme ça, vous pouvez continuer et compiler. Et n'oubliez pas d'accéder au widget de masquage à l'intérieur d'ici. Comme précédemment, prenons W dans un get validé, faisons glisser le pointeur à partir d' ici et disons supprimer de. N'oubliez pas non plus de le faire quand vous le souhaitez , peut-être un peu maintenant. Cela n'arrive pas vraiment trop avec le menu. On ne l'enlève pas trop. Cependant, dans un cas, par exemple, si vous avez une cinématique ou quelque chose comme ça, vous ne voulez pas afficher le menu C'est également ainsi que vous le supprimez. Revenons maintenant au graphique des événements. Après la sélection de l'équipe, souvenez-vous qu'ici, dans la manette du joueur en bas, nous avons fait apparaître ce joueur CL Nous faisons apparaître le joueur, nous masquons la sélection de l'équipe. Voici maintenant un bon endroit pour montrer le Maui. N'oubliez pas que l'interface utilisateur est côté client. Chaque fois que vous travaillez avec l'interface utilisateur, vous devez les exécuter sur le client ici. Ce que je fais habituellement, c'est que je recherche un événement client que nous avons déjà créé et que nous pouvons utiliser. Ce joueur CL spawn fonctionne sur le client, donc c'est vraiment un bon endroit pour montrer le Maui Je vais conduire ici et dire Afficher widget Masquer, comme nous l'avons appelé. Et je vais sélectionner le menu. Je vais cliquer sur Afficher et le connecter. Maintenant, juste un rappel, si vous avez oublié, il va sélectionner le Maui et il va sélectionner Afficher ici dans l'émission Masquer le widget. Il sait que c'est le menu. Il sait que ce bulletin est vrai. Donc ça va aller ici. Il sait que c'est vrai. Il va donc afficher le widget. Maintenant, il sait de quel widget il s'agit, car nous avons sélectionné le widget principal, allons entrer ici. Et il va exécuter ce code depuis le widget principal. Et il va ignorer celui-ci. Il ne fait que gérer celui-ci ici. Et nous allons ajouter le widget principal à la fenêtre d'affichage. Je ne pense donc pas qu'il nous manque quoi que ce soit. Allons-y, jouons et choisissons, par exemple, la lutte contre le terrorisme. Et puis vous pouvez voir que j'ai mon interface utilisateur principale. Si je maximise mon écran, j'ai l'interface utilisateur principale ici et je peux la voir sur mon écran. 126. 9.11 Coder la fonctionnalité d'affichage de l'arme: Codons maintenant les fonctionnalités de l'interface utilisateur d'affichage. Passons à l'interface utilisateur et ouvrons-la. Essentiellement, avant de commencer à coder l'interface utilisateur, il vous suffit de vous demander ce que vous essayez de faire. Ce que j'essaie de faire, c'est de changer cette image pour qu'elle corresponde à ce que je tiens. Je veux l'exposer et le retirer, selon que j'ai pillé l'arme ou non Commençons donc par le premier. Dans le premier cas, je vais juste changer le nom de l'image pour éviter toute confusion. Je vais l'appeler fusil IMG. Le prochain, je vais l'appeler pistolet IMG. Maintenant, pour les utiliser ici dans le graphique, vous pouvez voir que nous n' avons aucune variable. Il faut cliquer sur les deux. Sélectionnez les deux. Deux est variable, vous devez donc le prendre et le compiler. Et maintenant, nous pouvons voir que nous pouvons les utiliser comme variables à l'intérieur d'ici. Je vais tous les supprimer et nous laisser créer un événement personnalisé. Appelons cela simplement mettre à jour l'inventaire. Je mets à jour l'inventaire I à l'intérieur d'ici. En gros, ce que nous essayons de faire, c'est de prendre ce pistolet à images par exemple et ce fusil à image et nous essayons de définir le pinceau à partir de la texture Celui-ci définit le pinceau à partir de la texture, c'est simplement au moment où vous modifiez cette image. Nous voulons changer cette image selon que nous maintenons le K, les informations ou autre chose. Réglez le pinceau à partir de la texture et voici l' image que nous pouvons modifier. L'autre point est que nous essayons d'afficher ou de masquer cette icône selon que nous avons pillé l'arme ou non Encore une fois, dragon à partir de cette visibilité définie et sélectionnez celle-ci. Je vais copier-coller celui-ci ici, le copier et connecter également le fusil à image C'est ce que tu essaies de faire. Je suis en train de le copier-coller aussi comme ça. Ce sont les fonctions que nous allons simplement utiliser. C'est toujours agréable de le faire chaque fois que vous commencez quelque chose. Essayez de réfléchir à la principale chose que vous essayez de faire. Vous essayez de changer l'image en fonction de l' arme que vous avez pillée et vous essayez de régler la visibilité sur masquée ou non, selon que vous avez pillé cette arme ou OK, avec celui-là. Maintenant, tout dépend de l' arme que nous pillons. Est-ce un pistolet ou un fusil ? N'oubliez pas que nous avons déjà une variable pour cela et qu'il s'agit du type d'arme E. Nous l'utilisons beaucoup et appelons-le un type d'arme. OK, nous avons donc celui-ci et nous pouvons le faire glisser à partir de là et dire que Switch a autorité. Activez en fait l' énumération celle-ci. Maintenant, selon qu'il s'agit d'un pistolet, nous allons exécuter ce code Selon qu'il s'agit d'un fusil, nous allons exécuter ce code. Et je vais juste connecter tout cela ici, juste comme ça. Bon, maintenant pour les images, pour les textures. Au lieu de les placer ici, je vais simplement les cliquer et les faire glisser dans cet événement. Et je vais appeler ça un clou stupide. Nous pouvons également l'intégrer ici. OK, compilons maintenant. Laissez-nous tout sauver. Bien, la seule chose qui nous manque pour le moment , c'est la miniature de l'arme Car n'oubliez pas que nous n'avons pas ajouté miniature d'arme à l'infrastructure d' armes Nous devons donc le faire dans la prochaine leçon. Cependant, avant de terminer cela, nous devons également le rendre visible ou non. Désormais, la visibilité de l'arme sera visible chaque fois que vous l'aurez chargée. Toutefois, si vous ne l'avez pas encore chargé, il sera masqué. Pour ce faire, nous pouvons simplement vérifier si cette miniature d'image ou cette miniature d'arme est valide ou non Parce que, comme avant, si je reviens au joueur et à la base de joueurs, souvenez-vous de la façon dont nous pourrions supprimer variables comme celle-ci en ne leur attribuant aucune valeur et elles ne seront pas valides. Nous pouvons faire la même chose ici pour la miniature de l'image. Nous pouvons le mettre à zéro et il ne sera pas valide, ce qui signifie que nous avons lâché l'arme. Ce que nous pouvons faire, c'est faire glisser le pointeur d'ici et dire que c'est valide et que nous pouvons choisir que celui-ci est valide. Tout comme avant ou après avoir travaillé avec les notes sélectionnées, nous pouvons faire glisser le curseur à partir de celles-ci et dire « sélectionner et choisir celle-ci ». Maintenant, je peux connecter ce lingot à celui-ci ici. D'accord ? Si la miniature de l'arme n'est pas valide, valide est fausse, cela signifie que nous voulons qu'elle soit masquée Maintenant, pour cet autre, s'il est vrai, il est valide. Nous voulons qu'il ne soit pas testable. N'oubliez pas que l'option « non testable » signifie que le curseur de votre souris ne peut pas interagir avec cette image Nous n'avons pas vraiment besoin de le faire. Ce que nous devons faire, c'est cliquer dessus ici et garder le contrôle. Cliquez sur le second et réglez également la visibilité sur Non testable Visible signifie que votre souris peut réellement cliquer dessus et qu'elle bloquera tout ce qui se trouve derrière cela. Mais nous n'avons pas vraiment besoin de cliquer dessus. Je dois les configurer pour qu'ils ne soient pas testables. Et faites la même chose ici pour le texte. Réglez-les sur Non testable. Ici, dans la visibilité par défaut, je vais également sélectionner ces deux options et la visibilité masquée Nous n'avons pas vraiment besoin de les voir au début du jeu, nous n'avons aucune arme. Nous allons le régler pour qu'il ne soit pas testable chaque fois que nous pillons l'arme ici Fais la même chose ici. Nous demandons si c'est valide. Nous pouvons en fait simplement copier-coller celui-ci. Copiez-collez-le, branchez-le et branchez-le également ici. OK, j'ai donc créé quelques notes de route et organisé un peu le code. Voici le code, et c'est le code principal de notre inventaire, UI. Passons maintenant à la leçon suivante et créons cette miniature d'arme à l'intérieur de notre structure 127. 9.12 Ajouter une vignette d'arme à la structure: Ajoutons maintenant la miniature de l'arme à la structure. Revenons à nos structures et ouvrons les informations sur les armes. Et ajoutons une nouvelle variable et appelons-la une miniature ici Pour la miniature, le type est juste une image, donc c'est une texture deux D. C' est ainsi qu'on les appelle. Sortez et économisez. Fermons maintenant cette structure. Ajoutons-le également au tableau de données. Si vous ouvrez le tableau de données à partir de Google Sheets que nous avons créé précédemment et que vous ouvrez le tableau de données à l'intérieur d'ici, laissez-nous ajouter la variable à l'intérieur de la structure. Je vais juste mettre ici après le type, peut-être ici juste pour le rendre plus propre. Peu importe où vous le déplacez, mais maintenant je dois l'ajouter ici. Après le type, je dois ajouter la miniature. Si je regarde le type ici, je dois ajouter la miniature Je vais cliquer avec le bouton droit de la souris et ajouter une colonne à droite. Alors je vais appeler ça une miniature. N'oubliez pas de l'appeler du même nom que celui que vous lui avez donné ici. Nous avons maintenant besoin de leurs références. Si je le ferme, je passe à l'interface utilisateur. J'ouvre les icônes, maintenant je peux écrire, cliquer sur cet AK et copier la référence. Je peux retourner à mon tableau de données et le coller ici pour l'AK. Faites la même chose ici pour les informations, cliquez avec le bouton droit de la souris sur la référence pour copier la référence. Collez-le ici, cliquez avec le bouton droit de la souris pour copier la référence du pistolet. Et collez-le également ici. Maintenant, vous pouvez le télécharger sous forme de fichier CSV ici dans le dossier des téléchargements. Je vais renommer Weapon Info. Je vais copier celui-ci, l'ancien. Je vais le supprimer. Je vais coller le nom ici, DT Weapon info. N'oubliez pas que c'est le même nom que celui que nous lui avons donné ici dans nos tables de données. Et maintenant, nous pouvons cliquer et le faire glisser ici, et il est indiqué de le réimporter avec succès Si vous l'ouvrez, vous pouvez voir qu'il contient maintenant des icônes. OK, maintenant on peut le fermer. Passons maintenant au joueur et ouvrons la base de joueurs. sein de la base de joueurs, nous voulons mettre à jour l'interface utilisateur lorsque nous récupérons l'arme qui se trouve dans le lot d'armes Allons ici avec l'arme Servalote. Nous devons appeler cet événement de mise à jour de l'interface utilisateur dans un client. N'oubliez pas que l'interface utilisateur est située sur le site du client et que nous n'avons pas vraiment d'événements pour les clients en ce moment Ce que je vais faire, c'est cliquer avec le bouton droit de la souris ici et créer un nouvel événement personnalisé. Appelez-le CL pour le client, laissez-moi simplement l'appeler Update Inventory, UI par exemple. Et exécutez-le sur le client propriétaire et c'est fiable. Ce que nous voulons faire ici, c'est appeler notre B main. N'oubliez pas que c'est à l'intérieur de la manette du joueur, nous avons ce WB principal Et à l'intérieur du B main, nous pouvons trouver notre événement que nous avons créé plus tôt. Nous devons accéder à ce WB principal, qui se trouve à l'intérieur du contrôleur du joueur Essayez de voir si vous pouvez le faire vous-même et appelez cet événement ici. Il s'agit d'une bonne pratique pour communiquer entre les plans. Faisons-le ensemble. Maintenant, permettez-moi de cliquer avec le bouton droit de la souris et de dire «  get controller » pour obtenir le contrôleur correspondant à ce point spécifique. Ensuite, je peux faire glisser le pointeur à partir d'ici et dire «  get player controller reference », nous l'avons créé à partir de notre interface Blueprint Ensuite, je peux appeler ma variable principale WB. Ensuite, je peux faire glisser et mettre à jour l'inventaire. Je mets parfois à jour l'inventaire. Je le connecte au type d'arme. Je vais juste le faire glisser ici, ainsi que la miniature de l'arme Je l'ajoute juste à l'événement. Cela crée automatiquement une variable et je vais créer des nœuds de route. Maintenant que c'est fait, compilons et sauvegardons tout ici. Chaque fois que nous pillons une arme, je l'appelle. Une fois que je l'aurai équipée, après avoir changé de type d'équipement, je la repousse. Je vais aussi repousser ça. Je vais repousser ça. Ensuite, je vais appeler le CL, mettre à jour l' arme ou l'interface utilisateur de l'inventaire. Maintenant, au lieu de définir le type d'arme, sortons-la simplement de cette arme pillée Je vais cliquer et le faire glisser ici. Prenez également une note de redirection. Également pour la miniature de l'arme. Maintenant, nous l'avons dans notre tableau de données. Lorsque vous obtenez les informations sur l'arme, vous obtenez également les informations relatives à la miniature, que vous pouvez voir ici Si vous ne le voyez pas, pensez à le cocher ici. N'oubliez pas que nous cliquons sur Masquer épingles non connectées, et nous ne voyons que cela Maintenant, vous pouvez également cliquer sur le Spin pour afficher la miniature et nous pouvons la brancher Très bien, alors maintenant nous l'avons ici. Nous l'avons branché maintenant. Cela devrait fonctionner chaque fois que nous pillons une arme. Essayons-le simplement. Avant de continuer , cliquez sur jouer. Et lorsque nous cliquons sur Jouer en tant que terroriste. Je fais allusion à ce pistolet par exemple. Et vous pouvez voir que le pistolet apparaît maintenant ici, dans Mon interface utilisateur Quand je fais allusion au formulaire, il ne montre pas le P. Nous devons corriger celui-ci Il ne montre pas le pour le moment. C'est bizarre parce que ça devrait être le même code ici. Chaque fois que c'est le cas, infor, nous ne sommes plus désarmés Donc, ici, dans le butin d'armes en ce moment ou dans le lot, nous ne sommes pas désarmés Donc, en fait, il passe en revue cette partie du code ici et il ignore tout cela Nous devons réellement le reconnecter à un système correct. Je vais maintenir la touche Ctrl et Alt enfoncée pour le déconnecter. Alt. Cliquez, désolé. Alt et cliquez pour le déconnecter. Alors je vais le déplacer du faux ici. Je pense qu'il vaut mieux le connecter à ici. Connectons-le plutôt à ici, c'est plus correct et compilons maintenant et essayons de le jouer. Donc, si je joue à Select Terrorists, maintenant je prends un formulaire, puis je prends le pistolet et vous pouvez voir que les deux fonctionnent maintenant Nous devons corriger le problème qui fait que nous lâchons une arme et qu'elle doit maintenant être supprimée de notre interface utilisateur. Copions-le ici, et trouvons l'arme larguée. Maintenant, pour le code de l'arme Drops et l'arme Drop, je vais entrer ici. Maintenant, nous configurons l'arme larguée et nous la retirons de l'inventaire. Vous pouvez le faire ici ou ici. Ça n'a pas vraiment d'importance. Je vais juste le faire à l'intérieur d'ici. Je vais le coller. Et nous avons besoin de la miniature de l'arme. C'est donc l'arme à lâcher. Ce que je peux faire, c'est le prendre d'ici, arme après arme, et je peux le connecter ici, qu'il ait l'air plus propre. Je peux aussi le prendre. Je peux le répéter, nous sommes en train de tout faire ici. Au lieu de le copier-coller, utilisons simplement celui-ci. Laissez-moi le déplacer en arrière. Ensuite, je peux utiliser le type d'arme et la miniature Et structurons-le mieux pour celui-ci. Reconnectons-le Remontons-le en arrière. Comme avant, nous pouvons toujours créer un arrière. En fait, nous n'avons pas besoin de créer un nœud arrière. Nous pouvons simplement le placer comme ça ici pour la miniature de l'arme En fait, avant de cliquer sur jouer, ce n'est pas vraiment comme ça. N'oubliez pas que lorsque vous lâchez une arme, vous ne voulez pas créer une miniature, nous voulons la désactiver Ici, dans l'interface utilisateur, il est indiqué que ce n'est pas valide, et quand ce n'est pas le cas, il va masquer cette icône. Nous cliquons pour jouer et nous partons piller le pistolet Pillez le fusil. Et si nous lâchons le fusil, par exemple, vous pouvez voir qu'il est retiré de l'interface utilisateur. Si je laisse tomber le pistolet, il est maintenant retiré. Si je prends l'AK, vous pouvez voir qu'il affiche maintenant l'icône AK. Si je prends le pistolet, si je laisse tomber l'AK et que je récupère les informations, vous pouvez voir qu'il affiche maintenant l'icône d'informations Tout fonctionne donc comme prévu. Et c'est tout pour le moment. Donc, dans le prochain, nous pouvons essayer de le faire. Donc, chaque fois que vous avez sélectionné une arme. Donc, pour le moment, si j'ai sélectionné le pistolet, il devrait être entièrement visible Cependant, l'icône d'information devrait être à peine visible. Vous savez donc ce que vous avez sélectionné dans votre inventaire. 128. Opacité de l'interface utilisateur d'arme non équipée: Très bien, alors continuons le code ici. Ce que nous devons faire maintenant, c'est modifier l'opacité des images dans le concepteur Si vous cliquez sur l'un d'entre eux, par exemple l'AK, si vous cliquez sur la teinte, si vous cliquez sur la flèche et que vous voyez, vous pouvez modifier l'alpha rendre visible et non visible. C'est donc ce que nous voulons montrer chaque fois que nous avons sélectionné le pistolet Par exemple, je vais le refaire. Passons au graphique. On peut prendre le pistolet à images et on peut dire opacité. Si vous ne savez pas comment il s'appelle, recherchez simplement le mot et vous pourrez voir lequel est le mieux à utiliser. C'est quelque chose que j'utilise parfois. Si je crée un nouveau mécanisme, je peux simplement écrire le mot et essayer de sélectionner ce qui a du sens. Nous voulons définir l'opacité pour cette opacité du jeu d'images. Maintenant, cela dépend de l'arme équipée. arme équipée se trouve à l'intérieur de notre joueur, ce type d'arme équipée. Parce que celui-ci, pour le moment, nous ne pouvons pas l'utiliser. C'est juste l'arme que nous avons ramassée au sol. Ce n'est pas nécessairement l'arme que nous sommes en train d'équiper en ce moment Nous devons obtenir cette variable. Et pour y parvenir, encore une fois, nous devons communiquer avec le joueur. Dans l'interface utilisateur, nous avons quelque chose qui s'appelle Get Owning, Get Owning Player. Si vous voulez une référence à la manette du joueur, devenez propriétaire du joueur. Si vous voulez une référence au pan du joueur pour le I, nous voulons une référence au joueur Paw Je vais dire de posséder un pion de joueur. Ensuite, nous pouvons faire glisser le pointeur à partir d'ici et dire « obtenir la référence du joueur ». Parce que nous l' avons déjà créé dans une interface de plan Laissez-nous simplement le connecter après ceux qui sont ici. Peu importe lequel d'entre eux, il exécute le code, puis il continue de s'exécuter à partir d'ici. Nous voulons obtenir le type d' arme équipé, celui-ci. Encore une fois, comme avant. Je vais le déplacer et dire «  activer la connexion à l'énumération Maintenant, prenons-le. S'il s'agit d'un pistolet, nous voulons régler l'opacité sur une opacité entièrement visible Si c'est un fusil, copions-le sans celui-ci. Disons régler l'opacité s'il s'agit d'un fusil. Avec le pistolet. À l'heure actuelle, nous avons équipé le pistolet, le fusil aurait une visibilité de 0,25 Par exemple, l'opacité. Maintenant, nous pouvons le copier-coller ici et le connecter au fusil. Le pistolet vaut maintenant 0,25 et le fusil en est un. Maintenant que c'est terminé, nous pouvons tout compiler et tout enregistrer . Maintenant, cela devrait fonctionner. Il faut appeler celui-ci. Vous vous souvenez de cette interface utilisateur d'inventaire mise à jour En fait, nous ne l'appelons pas dans le cadre de notre événement où nous sélectionnons des armes ici. Lorsque nous sélectionnons l'arme principale et l'arme secondaire ici. Nous n'appelons pas l'événement où nous mettons à jour l'interface utilisateur de l'inventaire, nous devons également appeler celui-ci. Chaque fois que nous équipons des armes, celle-ci est mise à jour ici. que nous devons faire. Passons à la base de joueurs. Et laisse-moi juste déplacer ça. N'oubliez pas que nous sommes équipés d'une arme Serva. Chaque fois que nous passons à l'intérieur principal et secondaire d'ici. Après celui-ci, je vais appeler CL, mettre à jour l'arme I, je vais vérifier ici que le type d'arme que nous équipons est cet type deux que nous utilisons Je peux simplement le connecter ici et créer un nœud de reroutage pour le suivant. La miniature de l'arme est que nous pouvons l' obtenir à partir de cette variable d' arme, nous pouvons la faire glisser ici, obtenir le nom, rechercher une variable de nom, collecter comme avant, obtenir des informations sur l'arme, puis nous pouvons la faire glisser d'ici et la casser Ensuite, nous pouvons obtenir les informations ici. Nous avons le type d'arme et nous avons la miniature. Techniquement, vous pouvez également le brancher ici. Ça n'a pas vraiment d'importance. Je vais juste insérer la miniature. C'est très bien. Et je vais cliquer sur celui-ci et masquer les épingles non connectées Et maintenant c'est terminé. Je vais juste y aller plus près et tout va bien. Compilons, sauvegardons tout et testons-le. Flic se plaint maintenant de sélectionner des terroristes et je peux prendre le pistolet et les quatre Vous pouvez voir que le M quatre n'est pas aussi visible que le pistolet en ce moment Si je sélectionne le M quatre, il devient plus visible. Maintenant, je peux voir que je peux changer d'arme comme ça. Si je le laisse tomber et que je sélectionne l'AK ou que je récupère l'AK, je peux lâcher le pistolet Et maintenant, l'AK n'est visible car je ne l' ai pas équipé. Mais si je l'équipe, ça se verra. Vous pouvez maintenant voir comment cela fonctionne. C'est bien mieux qu'avant. Maintenant, nous pouvons réellement voir ce que nous avons équipé. C'est juste un design de jeu sympa, donc nous pouvons réellement apporter quelques modifications visuelles. OK, maintenant c'est terminé. Faisons quelques effets sonores. Les effets sonores lorsque nous changeons d' arme et que nous la rechargeons comme ça et chaque fois que nous lâchons l' arme au sol 129. 9.14 Ajouter des effets sonores: Allons-y maintenant et ajoutons les effets sonores équipés. Commençons par importer les effets sonores. Si nous examinons le dossier audio et les effets sonores qu'il contient, je vous en ai donné les informations sur les coûts. Si vous passez à l'audio et que vous allez ici et que vous trouvez le rechargement du fusil et le clip du fusil, rechargement du pistolet et le clip du pistolet, ces cinq effets sonores, ces cinq effets sonores cliquez dessus et faites-les glisser dans le navigateur de contenu situé à l'intérieur OK, donc une fois que vous les avez fait glisser, sélectionnons-les tous en maintenant enfoncés, en cliquant sur l'un d' entre eux, en maintenant la touche Maj enfoncée et en cliquant sur le dernier clic droit, et créons plusieurs repères Il va créer tous ces indices sonores pour vous. Maintenant, j'aimerais les renommer comme nous l'avons fait auparavant ici avec le S, le préfixe Allons-y et cliquons sur le premier. Je vais supprimer à partir de la fin. Je vais ajouter du sound Q au lieu d'effets. Je vais le faire avec les autres. Et je vais juste sauter un peu et les renommer ici. Maintenant, je les ai tous renommés. Avant de continuer, je vais simplement réduire le volume de chacune d'elles, car elles sont très fortes. Et pour ce cours, je ne veux pas qu'ils soient très bruyants car cela vous embêterait. C'est le son ici, et si je clique sur le suivant, réduis peut-être à quelque chose comme 0,30 0,3 Au fait, vous pouvez avoir des volumes Luda Cela sonnera bien mieux dans le jeu, mais je le fais juste pour mon cœur, que tu n'aies pas à écouter ces bruits forts Voici donc les rechargements et voici à quoi cela ressemble. OK, génial. Maintenant, laissez-moi le fermer, tout enregistrer. Passons maintenant aux actifs et aux animations et trouvons ces animations. N'oubliez pas qu'il ne s' agit pas de ces anciennes animations, mais de nos propres animations. Si je cherche des montages maintenant, nous pouvons les ouvrir tous les deux Le montage d'animation de fusil et le montage d'animation de pistolet que nous avons créés précédemment. OK, cool. Dans le montage d'animation, vous pouvez ajouter des effets sonores ne pas avoir à le faire dans le code. Ici, dans le nœud de F, nous avons cette barre ici, celle-ci. Vous pouvez le renommer si vous le souhaitez en cliquant dessus Cliquez sur deux sur le clavier. Ou cliquez simplement dessus et appelez-le effets sonores ou quelque chose comme ça. Ça n'a pas vraiment d'importance. Et ici, cliquez avec le bouton droit de la souris et ajoutons une notification, puis jouons Sound. Maintenant, cliquons dessus et nous pouvons maintenant choisir le son que nous voulons jouer. à quoi nous voulons jouer pour le premier s'appelle pistolet clip Nous voulons choisir ce clip parce que vous pouvez le voir ici, nous voulons placer le son chaque fois qu'il recharge ici, chaque fois qu'il sort le clip du pistolet clip parce que vous pouvez le voir ici, nous voulons placer le son chaque fois qu'il recharge ici, chaque fois qu'il sort le clip du Maintenant, ce que j'ai découvert, c'est qu' il vaut mieux ajouter le son avant qu'il ne le fasse, car cela semble retardé. Si vous placez le son là où il sort le clip et que vous pouvez essayer de l'écouter, le son est un peu retardé. Ce que j'aime faire, c'est l'ajouter avant qu'il ne le fasse réellement. Peut-être quelque chose comme par ici. OK. Ça a l'air bien. Maintenant, la prochaine est que je n'ai pas besoin d'effets sonores pour le clip du pistolet, nous devons en fait ajouter le même Vous pouvez cliquer ici, contrôler C puis contrôler V ici. Voyons quand nous voulons y jouer. Peut-être quelque chose comme ici. Ensuite, le dernier est le rechargement du pistolet. Et je pense que je vais l' ajouter quelque part par ici. Cliquez avec le bouton droit sur Ajouter, notifier le jeu. Son Cliquez dessus et trouvez le pistolet qui se recharge. Je pense que si vous recherchez rechargez, vous trouverez celui que je vous ai donné Rechargez le pistolet. Et d'ailleurs, vous pouvez voir beaucoup d'effets sonores ici. Et cela est dû au fait que vous avez déjà importé des effets sonores depuis le marché. Lorsque vous avez importé toutes ces armes, des effets sonores se trouvent en fait dans ces dossiers d'armes. Vous pouvez essayer d'en utiliser certains si vous le souhaitez. Tu n'es pas obligée d'utiliser celui que je t'ai donné. Vous pouvez rechercher une recharge de pistolet. C'est celui que je t'ai donné. C'est le son. Vous pouvez cliquer sur l'espace pour l'écouter. OK. Pour que cela paraisse un peu plus intéressant, vous pouvez entendre le clip entrer et sortir. Ou découpez-le et accrochez-le. Ils ont le même son. OK ? Ce n'est pas vraiment intéressant. Allons-y, changeons-le et rendons-le plus intéressant. Si vous accédez à l'audio et aux effets sonores et que vous cliquez dessus, cliquez dessus. Mais cliquons sur le clip du pistolet et dupliquons-le Si je trouve le bouton ici, dupliquez-le. Appelons-le Pistol Clip In. Renommons celui-ci en Pistol Clip Out. Cliquons sur le clip du pistolet ici pour le faire sonner différemment Je pense que nous l'avons déjà utilisé dans le cadre du cours. Mais vous pouvez utiliser celui-ci appelé modulateur. Et avec un modulateur, vous pouvez modifier la hauteur du son Et de cette façon, vous pouvez le faire sonner différemment. Connectons-le ici. Mettons-les ensemble. Cliquez maintenant sur le modulateur. Je vais changer celui-ci à 1,3 dans le pitch. Ça va sonner plus haut que l'autre. Si vous essayez d'y jouer , voici à quoi cela ressemble. Si vous ouvrez l'autre, le clip sort maintenant, vous pouvez entendre la différence. OK, on peut cliquer sur l'espace ici pour l'écouter. En fait, je pense que oui, nous devons les remplacer ici au lieu de les couper. Je vais le changer pour le clipser et réessayer. OK, ça sonne beaucoup mieux qu'avant, alors allons-y et sauvegardons-le. Et nous devons faire de même pour l'autre. Si j'ouvre l'autre montage d' animation, et que vous pouvez le faire, d'ailleurs, depuis le navigateur de ressources, vous pouvez voir l'autre montage d' animation. Allez-y, ouvrez-le comme avant. Renommons celui-ci en effets sonores. Faisons un clic droit sur un endroit aléatoire ici et ajoutons une notification. Jouez. Son Cliquez sur le son. Allez-y et recherchez le fusil Lip, je crois qu'il s'appelle Rifle Clip out. Le premier est à nouveau découpé. Je vais le mettre en différé, peut-être que je le mets ici. Ensuite, le clip, je vais l'ajouter quelque part par ici Peut-être qu'en cliquant dessus avec le bouton droit de la souris, on passe au fusil. Pendant le rechargement, je vais peut-être jouer le rechargement quelque part Cliquez avec le bouton droit de la souris, Play. Son Cliquez dessus et recherchez une recharge de fusil. Allez-y, sélectionnez-le et essayons de voir à quoi cela ressemble. Cliquez ici Peut-être que celui-ci devrait arriver plus tôt car il semble retardé. Ça a l'air bien. Je l'aime bien maintenant. Et sauvegardons tout. Et c'était tout pour celui-ci. Cela devrait donc déjà fonctionner. Comme elles sont désormais appliquées aux animations, nous n'avons pas besoin d'ajouter quoi que ce soit au code. Donc, si nous allons ici et sélectionnons des terroristes. Et si je prenais juste un pistolet pour le moment. Ça a l'air sympa. Si je prends l'information et que je la sélectionne, cela sonne bien. OK. Génial Maintenant, ils sonnent bien. Bien sûr, nous allons le rendre beaucoup plus beau avec le rechargement, le clip, etc., mais pour l'instant, il ne s'agissait que des effets sonores et tout sonne bien, d'ailleurs Encore une fois, vous pouvez utiliser d'autres effets sonores fournis avec les autres armes que vous avez téléchargées sur le marché. Et c'est tout pour le moment. Alors sauvegardons tout et passons à la suivante. 130. 10.01 Créer l'interface utilisateur Crosshair: OK, alors allons-y et ajoutons la croix. Passons au dossier de l'interface utilisateur. Et ouvrons le dossier des icônes au lieu d'ici, comme avant Accédez à vos documents de coûts et j'ai inclus cette croix pour vous, au lieu d'icônes. Cliquez dessus et faites-le glisser dans le navigateur de contenu. Avant d'oublier, ouvrons-le et passons ici dans le groupe de textures. Changez-le en interface utilisateur, comme auparavant pour les paramètres de compression, changeons-le en interface utilisateur deux D, enregistrons-le, fermons-le. Maintenant, ce que nous voulons faire, passons à l'interface utilisateur. Cliquez ici avec le bouton droit de la souris et accédons à l'interface utilisateur, sélectionnez Wigid, Blueprint. Et choisissez l'utilisateur. Widgid. Tout cela, nous l'avons déjà fait. Appelons-le WB. Rosa. Ouvrons-le plutôt qu'ici. Quelle est la première chose que nous devons ajouter ? N'oubliez pas que c'est le canevas. Cherchons le canevas. Ajoutons-le. Et à l'intérieur, c'est très simple. Pour le Crossa, nous avons juste besoin d'une image. Nous avons juste besoin de la Crossa. Allons-y et changeons l'image en croix. Sélectionnez la croix, nous voulons qu'elle soit au milieu. Essaie de le faire toi-même. Nous l'avons déjà fait. Essayez de faire cette croix au milieu en position 00. Essaie de le faire. Continuons ensemble ce que tu veux faire ici. Tout d'abord, vous devez remplacer le point d'ancrage par le milieu. Ensuite, si vous écrivez 00 pour la position, vous pouvez la voir ancrée ici. En effet, pour l'alignement, vous devez également le définir sur 0,5 pour le Y. 0,5 juste comme ça pour le dimensionner correctement. Au lieu de changer la taille ici ou la taille ici, je veux dire, vous pouvez adapter cette taille au contenu, il sera ajusté à la taille de l'image que vous avez au lieu de la modifier ici. Compilons maintenant. Voilà à quoi ça ressemble maintenant. N'oubliez pas que vous devez également cliquer sur l'écran ici et pour les ordinateurs portables et le changer en générique, ce bloc-notes ici. Comme il ne s'agit que d'un croisement, nous n'avons pas vraiment besoin de toute cette toile ici C'est juste quelque chose qui se trouve au milieu de l'écran. Pour cette raison, nous pouvons cliquer sur Remplir l'écran et sélectionner Désiré. Cela va juste arriver à cette petite chose ici parce que nous voulons simplement la placer à l'écran. Nous ne voulons pas tout l'espace qui l'entoure. La sélection souhaitée ici serait correcte. Maintenant, si vous zoomez un par un, vous pouvez voir à quel point c'est petit. Nous devons augmenter l' image et peut-être quelque chose comme 80 par 80, juste beaucoup plus grande. Nous pourrons le tester dans le jeu plus tard pour voir s'il est grand ou petit. Maintenant, nous pouvons tout garder pour celui-ci. Je vais cliquer à nouveau dessus. Accédez à Visibilité, changez-le pour Non Testable. Et c'est parce que nous ne voulons pas que la souris interagisse avec elle. C'était tout pour tout. Sauvegardons ça. Fermons-le et passons au suivant. 131. 10.02 Afficher le Crosshair: Ajoutons maintenant la croix à l'écran. Et vous pouvez également essayer de le faire vous-même. Nous l'avons déjà fait. Si vous ne vous en souvenez pas, recommençons ensemble. Passons aux plans. Passons maintenant à la manette du joueur. C'est ici que se trouve l'ensemble de notre interface utilisateur dans le graphique des événements. Vous pouvez accéder à vos widgets à l'intérieur d'ici. Vous devez créer la valeur d'énumération correspondante. Si vous ouvrez simplement le dossier des plans, le dossier en et les widgets du jeu ils contiennent, comme avant Ajoutons un nouvel énumérateur. Appelons cela une croix. Allez-y et économisez. Revenons à la manette de jeu ici. Cliquez avec le bouton droit sur Créer des widgets ici, sélectionnez Créer des widgets, puis Cross. Cliquez dessus avec le bouton droit de la souris, faites-en une variable et appelez-la croix B. Allez-y et ajoutez-le à la fenêtre d'affichage. Ajoutez deux fenêtres d'affichage, juste comme ça. OK, comme avant, retirons cette variable croisée B. Faisons un clic droit et convertissons-le en un get validé. Connectons-le ici. S'il est valide, nous pouvons simplement l'ajouter directement à la fenêtre d'affichage. S'il n'est pas valide. Allons-y et créons-le d'abord avant de l'ajouter à la fenêtre d'affichage N'oubliez pas également de l'ajouter, voyons voir ici, au widget Hyde. Si vous cliquez sur Hyde Widgets vous le trouverez également ici. Si vous ne l'avez pas ouvert, vous pouvez prendre cette croix et la convertir correctement en un get validé. S'il est affiché à l'écran et que nous voulons le supprimer, nous pouvons le faire glisser et dire «   supprimer des parents ». Allez-y, organisez-le un peu plus comme ça. OK, sauvegardons tout et ajoutons-le maintenant à l'écran. Passons au graphique du van. Et je pense que le meilleur endroit pour l'ajouter est peut-être une fois que vous avez fait apparaître le joueur, vous avez masqué la sélection de l'équipe et que vous avez également affiché le widget principal Allons-y et montrons également la croix. Partons d' ici et disons « afficher et masquer le widget » et appelons cet événement que nous avons créé. Allez-y, sélectionnez la croix, puis sélectionnez Afficher. Cela devrait fonctionner maintenant compilez, jouons. Maintenant, jouons en tant que client par exemple, et sélectionnons Terroriste. Vous pouvez maintenant voir que j'ai la croix au milieu de mon écran Vous pouvez choisir d'en ajuster la taille si vous le souhaitez. Si vous allez simplement dans l'interface utilisateur et le Crosier, vous pouvez cliquer dessus et peut-être changer la taille en 60 ou 60 si vous pensez que c'est trop grand Et vous pouvez essayer de le rejouer et voir à quoi il ressemble. Peut-être que quelque chose comme ça est bien mieux qu'avant. OK, voici comment ajouter un crosier à l'écran, et passons au suivant 132. 10.03 Ajouter des propriétés d'arme à la structure: Avant de continuer, nous devons ajouter quelques propriétés à la structure. Passons maintenant à la structure ici, et ouvrons-la. La première chose que nous voulons ajouter aux informations sur les armes est la vitesse de tir. Nous en avons besoin. La prochaine chose que nous devons ajouter est le flash initial C'est l'effet visuel que nous voulons obtenir chaque fois que nous tirons avec l'arme. Le dernier est l'effet sonore, accord avec la vitesse de prise de vue. Changeons-le en float. Il s'agit simplement d'une valeur numérique pour le flash initial. Il s'agit d'un système de particules. Système de particules , effet visuel. Et allez-y, choisissez la référence de l'objet pour l'effet de prise de vue. Utilisons simplement le signal sonore. Nous utilisons ici des indices sonores pour la vitesse de prise de vue, mouche initiale et l'effet sonore Tout semble bon. Allons-y et sauvegardons-le. Ces variables que nous avons créées ici, nous les ajouterons ultérieurement à la table de données, mais pour l'instant nous avons terminé. Nous les avons ajoutés. Maintenant fermons-le, enregistrons tout et passons au suivant. 133. 10.04 Action et structure d'entrée d'arme de tir: Allons-y maintenant et créons une action de saisie appelée Shot Weapon. Et tu peux le refaire toi-même. Essayez de le faire par entraînement. Allons dans le lecteur et ouvrons le dossier de saisie. Faisons un clic droit, passons aux entrées et ajoutons une action de saisie. Disons que c'est une arme de chasse. Nous n'avons pas vraiment besoin de faire quoi que ce soit à l'intérieur. Ouvrons le contexte de mappage des entrées. Ajoutons un autre mappage. Il devrait être là, en bas. Sélectionnons-le et cherchons une arme de chasse. Allez-y, sélectionnez-le. Et pour la clé, nous allons simplement utiliser le bouton gauche de la souris. Nous n'avons vraiment besoin de rien ici. Fermons-le maintenant. Ouvrons la base de joueurs et l'intérieur d'ici. Je peux donc regarder maintenant et chercher une arme de chasse. Et allez-y, sélectionnez-le. Maintenant, avant de terminer, je vois ici l'arme d'équipement. Réparons réellement à ce problème. Maintenant que je me rends compte que pour l'arme d'équipement, nous avons cette animation de rechargement Ajoutons-le simplement à l'intérieur de notre structure. Si vous allez simplement dans la structure, que vous l'ouvrez et que vous recherchez ou que vous créez simplement une nouvelle variable et que vous l'appelez equip, quelque chose comme ça ou equipez une animation. Vous pouvez également écrire le tout , quelque chose comme ça. Equiper l'animation Pour celui-ci, ouvrons-le et cherchons n'importe quel montage. Nous allons utiliser une référence d'objet de montage d'animation pour l'animation de l'équipement. Je vais juste laisser les choses se ici. Sauvegardons tout. Passons maintenant à l'intérieur du code. Au lieu de le faire comme ça, ce que nous pouvons faire maintenant, c'est supprimer ceci, nous pouvons réellement supprimer celui-ci. Et nous pouvons utiliser ce montage pour le jouer directement ici. Et nous pouvons également supprimer celui-ci. Nous pouvons changer celui-ci pour équiper quelque chose comme ça ou équiper l'animation. Et faisons-le simplement glisser de plus près. Maintenant, ce que nous pouvons faire, c'est ici, partout où nous l'avons utilisé, si vous ne savez pas où vous l'avez utilisé, d'ailleurs, nous l'avons utilisé ici, mais si vous voulez toutes les références, vous pouvez écrire, cliquer ici et vous pouvez rechercher des références et vous pouvez réellement voir où nous les avons utilisées. Cliquons sur le premier. C'est juste celui-ci. Cliquons sur le suivant. C'est par ici. Nous pouvons continuer et cliquer sur Alt et cliquer ici pour le déconnecter. Je vais également supprimer ce nœud routier. Au lieu d'utiliser le type d'arme, c'est celle-ci, l'arme d'équipement. Et nous avons déjà la structure en panne, nous pouvons donc simplement cliquer dessus. Cache tout ici. Masquez les épingles non connectées Et je peux simplement cliquer sur cette animation d'équipement. Et je peux le prendre et le traîner ici. Maintenant, vous pouvez voir que nous avons une animation personnalisée pour toutes les armes. Donc, en fonction de ce que nous avons branché pour chaque arme, il faudra utiliser cette animation et la jouer Alors compilons et sauvegardons tout. Nous devons également le changer ici. Donc, si je le déconnecte simplement, je supprime ce nœud routier. Et avec cette structure, encore une fois, masquez les épingles non connectées Je vais montrer l'animation de l'équipement. Et je vais également l'ajouter ici. Très bien, maintenant nous avons corrigé ce problème et réorganisé pour l'animation de l'équipement Ce que nous pouvons faire, c'est simplement ajouter ces informations dans notre tableau de données. Allons-y et ouvrons le tableau de données ici. Je vais ouvrir le tableau de données. Je vais également ouvrir la structure afin voir quelles variables j'ai ajoutées ici. Pour les variables, laissez-moi les agrandir un peu et aller à cet endroit après le cours. Ici, nous avons ajouté la vitesse de prise de vue, nous avons également ajouté le flash initial et nous avons également ajouté un effet sonore de prise Et nous avons ajouté l'animation de l'équipement. Encore une fois, n'oubliez pas de les écrire exactement comme le nom que vous avez écrit ici. Passons maintenant à l'animation Quip, sauvegardons tout. Passons au navigateur ici et ouvrons les ressources. Animation. Recherchez ici un montage d'animation pour le pistolet. Faisons un clic droit et copions votre référence. Accédez au tableau de données du pistolet, qui est le dernier ici Passons sur le côté pour l'animation du quip. Je vais juste coller cette référence. Je vais cliquer avec le bouton droit pour la référence du fusil. Je vais le coller à la fois pour l'AK et pour les quatre. Au fait, vous pouvez faire la même chose ici. Et faisons-le simplement pour l'AK pour la vitesse de tir. Maintenant, nous devons tester cela dans le jeu, je n'en ai aucune idée. Écrivons simplement 0,1 pour la prochaine version 10.1, pour la troisième version 10.1, je ne sais pas, nous devons essayer cela dans le jeu. Nous n'en avons aucune idée pour le moment. En ce qui concerne le flash de bouche, ce que tu peux faire. Je pense que nous avons quelques flashs de bouche à l'intérieur de ce dossier où nous importons toutes les armes du marché Si vous recherchez simplement une muselière, vous pouvez voir cette muselière clignoter Je vais utiliser l'un d'entre eux, par exemple. Vous pouvez utiliser le. Éclair de bouche pour fusil d'assaut. Je vais cliquer dessus avec le bouton droit de la souris. Votre référence pour le fusil de l'AK. Je peux en coller un pour le M quatre. Je peux coller le même. Maintenant que vous pouvez voir pour chaque arme, vous pouvez en fait avoir un flash initial pour chacune d'elles. Ils peuvent en fait être uniques. Ils peuvent tous avoir des effets sonores uniques, ils peuvent tous avoir des animations uniques, des vitesses de prise de vue uniques, etc. Vous pouvez donc voir à quel point cette méthode est intéressante. C'est vraiment dynamique et il est très facile de le modifier. Si vous souhaitez un jour avoir un autre effet sonore, vous pouvez simplement venir ici et ajouter une autre référence. OK, pour celui du pistolet, bouche du pistolet clignote ici et nous pouvons cliquer avec le bouton droit sur Nous pouvons recopier la référence. Et nous pouvons le coller ici. ce qui concerne les effets sonores de tournage, nous ne les avons pas encore importés, En ce qui concerne les effets sonores de tournage, nous ne les avons pas encore importés, alors faisons-le pendant que nous le faisons ici. Ouvrons le dossier des matériaux de coûts. Revenons aux informations sur les coûts ici. Ce que je veux que tu importes, c'est le fusil AK 47. Je veux également que vous importiez les 41 coups de feu ainsi que le coup de pistolet Ce coup de pistolet. Passons au dossier audio sous forme d'effets. Permettez-moi de supprimer le mot de recherche et vous pourrez le cliquer et le faire glisser ici. Et comme avant, vous pouvez cliquer sur chacune d'entre elles. Cliquez avec le bouton droit de la souris pour créer plusieurs repères. Je vais tous les ouvrir ici. Réduisez le son ici à 0,3. Je pense que je veux les réduire encore davantage, car ils sont très forts et je ne veux pas qu'ils soient autorisés à participer à ce cours. 0,1 pour chacun d'entre eux. Et essayons juste d'y jouer. OK. Génial Tout sonne bien. Fermons-les tous. Maintenant, avant de copier les références, renommons-les. Je vais renommer celui-ci SC et supprimer le Q ici à la fin Je vais également le remplacer par le pistolet. Supprimons le Q et écrivons C au début. Le dernier pour l'AK. Encore une fois, supprimez Q et A.C jusqu'au début. maintenant aux références, Passons maintenant aux références, copions d'abord l'AK 47. Je vais copier la référence. Et puis ici, dans le tableau de données l'AK 47, qui est le premier, je peux le coller ici pour le M quatre. Si on peut le trouver ici. Voici les quatre ici. Faisons un clic droit sur Copier, référencer, coller. Et le dernier est le coup de pistolet. Copiez la référence et collez-la également ici. Maintenant allons-y, il s'agit en fait d'une sauvegarde automatique, alors téléchargeons-le ici avec le CSV. Maintenant, je vais le renommer. Copier le même nom ici pour les informations sur l'arme, supprimer l'ancien. Je renomme le nouveau , puis je vais revenir aux tables de données de mes plans Maintenant, je prends cette nouvelle table de données et je la branche OK ? Maintenant, toutes ces informations sont à l'intérieur d'ici. Vous pouvez continuer et vérifier que tout semble correct et que tout va bien. Nous pouvons aller de l'avant et tout sauver. Maintenant, il devrait y jouer automatiquement, car ici dans la base de joueurs. Maintenant, dans la base de joueurs pour l'arme d'équipement, nous avons maintenant cette animation d'équipement. Et il le joue désormais automatiquement. Parce que nous avons défini dans la structure ce que c'est, si nous y jouons maintenant et voyons ce qui se passe si nous sélectionnons un terroriste et que je vais le chercher, vous devriez voir qu' il joue réellement. Et pour le pistolet aussi. Désormais, au lieu de nous baser sur le type d'arme, toutes les informations que nous pouvons rendre uniques, nous pouvons les ajouter à cette structure d'arme. 134. 10.05 Créer le minuteur de tir d'arme: OK, alors maintenant allons-y et ouvrons la base de joueurs. Et à l'intérieur d'ici, revenons à l'événement où nous avons fabriqué l'arme à parachute. Pour commencer, créons le serveur un clic droit et créons un événement personnalisé. Et créons l'arme de tir du serveur à l'intérieur d'ici. Nous allons d'abord créer un chronomètre, placer sur des répliques sur le serveur et le rendre fiable pour le tournage Nous allons créer un chronomètre comme l'autre chronomètre que nous avons créé ici pour les pas où nous avons créé le chronomètre réglé par événement. C'est la même méthode que nous allons utiliser pour le tournage. Si nous descendons ici et que nous faisons glisser le pointeur à partir d'ici indiquons chronomètre par événement, puis que nous le sélectionnons. Ensuite, à partir de là, nous pouvons faire glisser et créer un nouvel événement personnalisé. Nous pouvons l'appeler Shot Weapon Loop. OK, la logique de l'arme de tir sera ici. N'oubliez pas de régler le chronomètre pour qu'il boucle, puis nous devons définir une heure. Maintenant, le temps que vous fixez ici dépend de la vitesse de tir de votre arme. Pour l'AK 47, par exemple, disons que c'est 0,1 pour un pistolet Ce sera peut-être le cas pour les pistolets Si vous ne voulez pas les faire tirer automatiquement, nous n'avons pas vraiment besoin de ce chronomètre Mais pour les armes automatiques, AK 47 et les informations dont ils ont besoin pour tirer avec un chronomètre. Parce que le code va boucler à cette vitesse puisque celui-ci correspond à la vitesse de l'arme. N'oubliez pas que dans la structure, si je reviens en arrière et que je l' ouvre, nous avons ajouté cette variable de vitesse de prise de vue. Nous pouvons vraiment l'utiliser pour nous connecter ici. En fonction de la vitesse de tir de votre arme, ce chronomètre changera l'heure. En fonction de cela, nous avons besoin d'une référence à l' arme, alors allons-y. Cliquons ici et créons une nouvelle variable. Et choisissez la base d'armes ici, parmi les différents types. Allez-y, sélectionnez-le. Appelons ça une arme. Il faut appeler celui-ci ici. Appelez ça une arme de tir sur serveur. Je peux l'épeler comme ça. Arme de chote du serveur. Nous devons maintenant définir l'arme. Maintenant, si vous compilez, vous pouvez voir que vous aurez une ère. Et il indique un nouveau paramètre. Même s'il est écrit arme là-haut, cela arrive parfois et il suffit de la supprimer et de la refaire. Vous pouvez également cliquer sur le fichier et actualiser toutes les notes. Et cela résoudra également ce problème. OK, nous avons besoin d'une définition de l'arme pour le moment. En fait, nous n' avons pas de variable ni d' arme parce que la seule chose que nous avons est que nous avons l'arme équipée, mais nous supprimons également le fait que nous avons une arme non équipée et que nous avons également perdu une arme Ici, nous avons l'arme pillée. Cependant, nous sommes également tête de cette variable d'armes pillées ici Nous n' avons vraiment aucune variable pour que l'arme reste constante. Créons-en simplement un. Passons à l'arme équipée ici. Lorsque nous équiperons cette arme, je vais simplement cliquer avec le bouton droit sur la même variable et la transformer en variable. Appelons cela une arme équipée. Celui-ci est une arme équipée. Nous sommes en train d'équiper l'arme. Et celle-ci est l'arme équipée. Et nous pouvons utiliser cette variable. Nous ne le supprimons pas. Cela changera à chaque fois que cela sera configuré. N'oubliez pas de cliquer sur cette variable et de la définir comme répliquée. Nous n'avons pas vraiment besoin de notifier quoi que ce soit de répliquer. Cela signifie simplement que nous envoyons simplement ces informations au client. Le client sait également quelle est cette variable. Je vais simplement tout sélectionner ici et le déplacer. Et en déplaçant cette variable ici. Nous avons maintenant cette variable à partir de laquelle nous pouvons travailler. OK, on peut descendre ici maintenant. Et nous pouvons prendre cette arme équipée et la brancher ici. Maintenant, c'est ce que nous avons. Compilons maintenant à partir de celui-ci. Nous pouvons faire glisser et dire que nous pouvons obtenir la variable name, puis nous pouvons obtenir des informations sur l'arme, les obtenir ici. Ensuite, retirons-le et arrêtons-le. Maintenant, nous pouvons utiliser la vitesse de prise de vue d' ici et la brancher ici. D'accord ? Cliquez donc dessus et masquez toutes les épingles non connectées OK, donc chaque fois que nous appuyons sur un bouton de notre souris, elle va tirer et tirer pendant ce chronomètre. Maintenant, nous devons également arrêter ce chronomètre à un moment donné. Cliquez donc avec le bouton droit de la souris sur ce manche promu au rang de variable et appelons-le un manche d'arme Shot. Et nous pouvons utiliser cette poignée pour arrêter le chronomètre Nous devons donc savoir quand nous tirons et quand nous ne tirons pas. Lorsque nous relâchons un bouton de la souris, ce déclencheur complet est activé et nous ne tirons plus avec l'arme. Ajoutons en fait une puce ici. Ajoutons-en un. Et appelons-le arme de chasse. Et je vais juste ajouter un B devant pour rester constant puisqu'il s'agit d'un lingot Et changez-le en lingot comme celui-ci. OK. Maintenant, vous pouvez faire glisser le pointeur d'ici et dire branche et la connecter si c'est vrai Si l'arme de tir est vraie, nous voulons aller de l'avant et tirer avec l'arme. Cependant, si nous ne voulons plus utiliser l'arme, prenons ce manche et disons que c'est valide. Si ce pseudo est valide, assurez-vous simplement que nous ne recevons aucune boîte, assurez-vous qu'elle est valide. Et créons une autre branche. S'il est valide, allez-y , prenez ce chronomètre dites « effacer » et invalidez le chronomètre par manche. Nous allons arrêter ce chronomètre ici dans ce code. Nous pouvons maintenant le copier-coller. Et pour terminer, lorsque nous relâchons un bouton de la souris, l'arme de tir prend la valeur fausse. Lorsque nous tirons avec l'arme, cela doit être vrai, lorsque c'est faux, lorsque nous arrêtons de tirer, on se demande si ce chronomètre est valide. Si c'est le cas, allez-y et arrêtez le chronomètre. Je vais juste réorganiser un peu les choses ici. heure actuelle, c'est fait, allons-y, testons-le et voyons si tout fonctionne. Allons-y et cliquons sur jouer ici pour le client. Par exemple, je vais sélectionner des terroristes. Allons-y et prenons quelque chose. Reprenons les informations dès maintenant. Essayons de tirer. En ce moment, j' essaie de tirer avec ma souris et rien ne se passe. Rien n'est imprimé à l'écran ici. Permettez-moi de l'annuler ici, nous aurons une ère. Cette époque parle d'accès. Aucun accès signifie simplement qu' il essaie de lire quelque chose dans cette variable d'arme, cette variable d'arme ici. Cependant, l'accès non signifie que cette variable est vide, elle n'a rien à lire. C'est en fait vrai, car nous n'avons défini l' arme équipée que dans le cadre de l' événement d'équipement d'arme. Et celui-ci ne se déclenche que lorsque nous changeons d'arme. Si je vais voir des terroristes et que je récupère quelque chose, je dois passer à une autre arme puis revenir en arrière avant que cette variable ne soit définie pour le moment Permettez-moi de tirer maintenant et de voir ce qui se passe et rien ne se passe. C'est en fait parce que nous l'exécutons plusieurs fois. Si je déconnecte ce faux, vous pouvez voir ici si je n'arrête pas le chronomètre, vous pouvez le voir plus clairement si je décroche simplement autre chose. Maintenant, si je tire avec l'arme, je tire en ce moment. Et si je lâche ma souris une seule fois, chaque fois que je lâche celle de ma souris, elle est en train d'imprimer. C'est ce que nous voulons. Nous voulons le faire imprimer chaque fois que nous appuyons sur le bouton de la souris, pas lorsque nous le lâchons. Cela est dû au fait que le chronomètre fonctionne ici très rapidement dans le code. Chaque fois que je tiens un bouton de la souris je n'ai jamais l' occasion de lire ce code. Cette partie, en fait, ne doit être faite qu'une seule fois. Permettez-moi simplement de reconnecter cela avec le vrai. Je vais faire un nœud. Chaque fois que je maintiens un bouton de ma souris enfoncé, il exécute ce code une fois, puis nous pouvons le réinitialiser quand nous le voulons. Je vais juste déplacer tout ça. Et celui-ci, je vais créer un nouvel événement personnalisé. Appelons celui-ci et tirons à nouveau. Quand pourrons-nous tourner à nouveau ? Nous pouvons tirer à nouveau. Chaque fois que nous arrêterons de tirer ici, je vais appeler ça, on peut tirer à nouveau. Et juste comme ça, c'est la seule chose que nous devions faire. Maintenant, essayons-le à nouveau. Compilons et testons-le. Laissez-moi sélectionner les terroristes. Laisse-moi juste récupérer les armes. Nous allons maintenant résoudre ce problème. Encore une fois, c'est un problème lié aux armes pillées ici. Je vais donc apporter une solution difficile dans un instant. Je veux juste voir si cela fonctionne ici et si nous pouvons aller de l'avant et régler ce problème. Donc, si je prends l'arme et que je maintiens un bouton de la souris enfoncé, vous pouvez maintenant voir qu'elle s'imprime correctement à l'écran. Et si je lâche celle de la souris, elle arrête d'imprimer. Et faisons-le également avec le fusil. Donc, si comme un terroriste, je prends le fusil, le pistolet et si je fais allers-retours pour régler la variable, je peux maintenant maintenir un bouton de la souris enfoncé et elle tire, et si je lâche prise, elle ne tire plus. OK, donc ce code ici fonctionne parfaitement. Maintenant, nous en avons terminé avec celui-ci, et je vais également supprimer cette chaîne d'impression. Allons ici et réglons ça. Avant de terminer, permettez-moi de le retirer d'ici. Nous allons juste faire une très bonne solution pour celui-ci. Il ne box plus jamais. Ici, dans les armes qui se chevauchent, c'est ce que vous essayez d'obtenir. Prenons celui-ci et disons : est-ce que cela correspond à la variable « arme pillée Nous essayons de vérifier si celui que nous sommes en train de piller est défini la même variable que celle que nous avons indiquée plus tôt Si c'est le cas, si c'est vrai, nous voulons supprimer l'ancienne variable. Laisse-moi juste déplacer ça ici. Nous voulons supprimer l' ancienne variable pillée. Ensuite, nous voulons exécuter la nouvelle variable. Cela étant verrouillé, nous vérifions simplement si ce que nous sommes en piller en ce moment est le même que ce que nous avons dit plus tôt Si c'est le cas, nous allons supprimer cette variable avant de définir la nouvelle. Ceci, assurez-vous de ne pas définir le même deux fois. Si ce n'est pas la même chose, si ce n'est pas le même objet, nous pillons Allez-y et exécutez le code sans le supprimer. D'accord, je vais organiser cela plus tard, mais voyons si cela fonctionne. Avant de l'essayer, connectons-le à nouveau. Nous y voilà. Supprimer l'article de l'inventaire. Je vais juste cliquer et le faire glisser pour revenir ici. Allez-y, compilez maintenant, essayons de cliquer sur Play et de sélectionner Terrorist pour voir si cela fonctionne. Si j'entre ici, vous verrez que cela fonctionne vraiment. OK, c'est comme ça je pense que c'est en fait une meilleure méthode pour le faire. Comme vous le voyez, il ne fonctionne plus. Ensuite, je remarque que les icônes sont fausses Déboguons simplement ceci. Revenons au widget principal, ouvrons-le et passons au graphique Je suis juste en train de voir ce qu'il y a là-haut, pourquoi ça fait ça. Pour le fusil, nous avons le fusil à image, le fusil à image. C'est exact ici. Pour l'arme équipée. Pour le pistolet, nous montrons le pistolet et nous cachons le Et pour le fusil, nous montrons le fusil et nous cachons le pistolet, l'opacité Cela semble correct. Il y a un problème le réglage du type d' arme équipée. Revenons-en au joueur. Il doit y avoir problème avec l'arme équipée. Pour l' arme équipée. Voyons voir ici, s'agit de l'interface utilisateur de mise à jour de l'inventaire. Nous définissons le type d'arme sur le type d'arme pour équiper le type d'arme à équiper. Nous l'avons défini ici lorsque nous appuyons sur le bouton. Lorsque nous appuyons sur Primary, nous passons au fusil, ce qui est correct. C'est notre fusil secondaire, nous le réglons sur pistolet Cela est également correct. Rien ne va vraiment mal ici. Alors quelque chose ne va pas lorsque nous faisons allusion à l'arme, lorsque nous faisons allusion à l'arme ici , à une arme de pillage, nous la réglons également, nous définissons également le type d'arme À celui auquel nous venons de faire allusion, qui est également correct Il n'y a en fait aucune erreur ici. Je pense qu'il y a peut-être une erreur dans le tableau de données. Si vous ouvrez la table de données, jetons un coup d'œil, le type de table de données est ici. Nous devons donc rechercher le type d'armes. Si nous avons écrit quelque chose de mal, fusil, fusil et pistolet En fait, ils sont tous corrects. Elles sont réglées correctement. OK. Rien ne va vraiment mal. Je ne vois aucune erreur. Peut-être qu'à l'heure actuelle, le problème est que nous définissons correctement le type d'arme équipée. Cependant, nous exécutons également ce code. Et cette partie du code ne se rend pas encore compte qu'elle a été définie à cette valeur. Si nous faisons juste un délai et que nous lui donnons la possibilité de le régler, juste pour voir si cela fonctionne, parce que je n' aime pas vraiment avoir un délai ici. Mais jetons un coup d'œil et voyons si cela résout réellement le problème. Si je pille les armes, je clique sur l'une d'elles. Si je clique sur deux, maintenant ça marche aussi. Vous pouvez donc voir que cela fonctionne réellement. Maintenant, si je clique sur 1.2, les icônes fonctionnent. Le problème, c'est que le type d'arme est correctement réglé. Cependant, vous exécutez également ce code très rapidement. Vous exécutez donc ce code avant que cela n'ait eu l'occasion de réellement changer. D'accord, pour résoudre ce problème, nous pouvons essayer d'ajouter un délai. Cependant, dans ce code, nous allons le faire dans notre WB main À l'intérieur de la fonction que nous avons créée plus tôt. C'est ici que nous avons défini l' opacité du fusil. Avant de définir l'opacité, vous pouvez essayer d'ajouter un délai et le délai, commencez par le rendre très petit, 0,01 et compilez . Et cliquons sur jouer. Et si cela fonctionne, c'est vraiment bien. Maintenant, je peux tout ramasser et voir que le pistolet est maintenant ramassé. Et je vais juste maximiser mon point de vue. Le pistolet est maintenant ramassé. Je peux cliquer sur 14. Cliquez sur deux pour le pistolet, vous voyez que parfois nous gagnons de l'argent Je passe à mon fusil, réglons-le sur 0,03. Au lieu de cela, compilons Cliquez sur jouer. Essayons encore une fois. Allons tout chercher. Cliquez sur le fusil, le pistolet Fusil, pistolet. Maintenant, tout semble fonctionner également. OK, donc ça marche. La version 0.03 résout donc le problème comme d'habitude. Et ce serait une solution vraiment très sympa et facile. OK, donc je sais que cela a été très confus ici, mais nous avons vraiment dû le faire parce que c' était tout le temps Donc, si jamais l'arme équipée gagne de l'argent ici, elle ne sera pas vraiment en panne pour le moment Donc je vais juste laisser faire. Cependant, s'il n'y a plus d'argent, comme ici, vous pouvez utiliser la même méthode en vérifiant si l'arme équipée se trouve ici. Vous pouvez toujours vérifier s'il est le même que le précédent que nous avons défini. Vous pouvez ensuite supprimer la variable , puis définir la nouvelle. Donc, au lieu de le faire selon l'ancienne méthode, je ne pense pas que cela va résoudre le problème car ici, nous vérifions si nous portons déjà un fusil, mais à l'avenir, nous pourrions avoir un bogue. Je n'en ai aucune idée pour le moment. Nous devons nous développer et voir. Mais c'est comme ça dans le développement de jeux vidéo. Vous rencontrez des bogues pendant la programmation et vous devez les corriger. La bonne chose pour un programmeur est simplement de savoir comment résoudre ces problèmes. Et vous voyez, nous venons d'ajouter un tyran et de vérifier si c' était pareil ou non, et nous résolvons ce problème de cette façon Vous verrez toujours quand vous développerez des jeux, même dans les grands studios. Mais il suffit de savoir comment les réparer et comment surmonter le problème. Essayons-le maintenant. Cliquons sur jouer juste avant terminer pour voir si tout fonctionne. Et si je sélectionne le terroriste, je récupère tout ce qui se trouve ici et je peux passer de l'un à l'autre. Si je laisse tomber les quatre, j'essaie juste de le faire tomber en ce moment, vous pouvez voir qu'il bogue également Nous devons donc ajouter un petit délai ici car il ne se rend pas compte que nous l'avons supprimé. Si je disais le délai à 0,05 et que je clique sur jouer. Et cliquez sur jouer ici. Et prenons une arme. Laissons-le tomber. Allons le chercher, le déposer, le déposer, le déposer. Tu vois, maintenant ça marche parfaitement et je peux passer de l'un à l'autre. J'essaie juste de tester le jeu pour voir s'il ne fonctionne pas. Maintenant, cela semble bien fonctionner. Nous avons dû subir ce petit retard imperceptible sinon le programme ne savait pas ce que nous faisions ici C'est bon de savoir qu' il en a aussi ici. Cela résout tous les problèmes que nous avons rencontrés avec la suppression de cette variable sans que nous voulions qu'elle la supprime avant d'exécuter le code. Tout fonctionne donc maintenant. Je vais réorganiser ça. Je vais le mettre ici et passer au suivant. 135. 10.06 Trace linéaire par canal: Dans cette leçon, nous allons créer une fonction ligne par canal. De cette façon, nous allons tirer la balle avec l'arme. Allons-y, cliquons sur le joueur et ouvrons la base de joueurs à l'intérieur d'ici. Passons au code que nous avons écrit auparavant. Au niveau de l'arme, c'est ici que nous voulons ajouter le tracé linéaire par canal. Mais avant cela, nous avons un peu d'argent avec l'arme équipée : chaque fois que je pille une arme, si je clique sur un terroriste, je perds quelque chose. Si je tire maintenant, ça ne me rapporte pas un dollar parce que je change d'arme. Cependant, si je ne change pas d'arme, donc si je prends directement celle-ci et que je commence à tirer, cela va me donner une erreur, car nous ne réglons l'arme équipée qu'à chaque fois, nous changeons donc si je prends directement celle-ci et que je commence à tirer, cela va me donner une erreur, car nous ne réglons l'arme équipée qu'à chaque fois, nous changeons en fait avec les touches de notre clavier. Copions cette arme équipée. Et montons là où nous chargeons l'arme dans l'arme pillée Et nous allons configurer l'arme équipée chaque fois que nous utiliserons ce code ici, chaque fois que nous ne serons pas armés, nous allons configurer l'arme équipée ici Après ce délai, voici. Allons-y et collons-le. Et connectons-le. Et je vais également déplacer tout cela pour que je puisse voir ici. Et je vais le connecter ici. Et puis passez de l'arme pillée à celle-ci. Encore une fois, vous pouvez lire des notes ici, prendre quelques-unes et les organiser. Cela devrait donc bien fonctionner maintenant. Maintenant, nous installons également l'arme équipée chaque fois que nous pillons ici OK. Je vais donc également le déplacer. Augmentez la taille du commentaire, quelque chose comme ceci. OK, donc c'est réglé maintenant. La prochaine chose que je veux faire, c'est ici avec les armes. Passons donc aux armes et ouvrons la base d'armes. Cachons maintenant ces sphères. Nous n'en avons plus vraiment besoin. Je vais cliquer sur la sphère de collision et la sélectionner à nouveau. Ici, caché dans le jeu. Et je vais le faire dans la base d'armes. C'est ce qu'il fait pour chacun d'entre eux. Si je sauvegarde maintenant, j'essaie de jouer au jeu juste pour vérifier si c'est corrigé. Et vous pouvez voir ici que c'est corrigé maintenant. OK ? Nous n'avons donc plus vraiment besoin de ces sphères, d'accord ? Allons-y et faisons le tracé de la ligne par canal. Passons donc au code que nous avons écrit auparavant ici. Commençons par le faire à partir d'ici. Chaque fois que nous bouclons le code, faisons-le glisser à partir d'ici et écrivons une trace de ligne par canal. Nous allons sélectionner cette fonction. Maintenant, cela semble complexe, mais il est en fait vraiment très facile de comprendre le tracé de la ligne par canal. Il a besoin d'un point de départ et d'un point d'arrivée. Le point de départ est l'endroit où vous vous trouvez en ce moment, et le point final est celui où je vise en ce moment. Avec les micros, voici ce que nous devons lui dire. La façon dont nous obtenons ces informations est si vous écrivez « cliquez » et que nous devons d'abord accéder à la manette du joueur. Maintenant, essaie de le faire toi-même. Si vous vous souvenez comment accéder à la manette du joueur, nous pouvons le faire ensemble. Maintenant, vous pouvez écrire get controller, vous pouvez obtenir le contrôleur de ce jeu comme avant, nous avons cette référence de manette de joueur à partir du visage. Vous pouvez maintenant faire glisser le pointeur à partir de là Si vous écrivez simplement caméra, nous voulons obtenir ce que l' on appelle un gestionnaire de caméras. Si vous parcourez tout cela, essayez de lire ce que nous avons. Celui-ci, procurez-vous le gestionnaire de caméra du joueur. Avec celui-ci, nous sommes en mesure d'atteindre exactement ce que nous visons avec nos ventes croisées. Pour obtenir ce gestionnaire de caméra, nous allons faire glisser le pointeur à partir de celui-ci et dire « obtenir l'emplacement de la caméra ». C'est notre position de départ. À l'heure actuelle, la position de départ est celle où je suis en ce moment, ici, debout en tant que joueur au milieu de mon écran. Maintenant, nous devons dire que l'emplacement final est celui que je vise avec Microsa La première façon de procéder est de faire glisser le curseur à partir de celui-ci et de dire « get at forward vector ». Nous sommes donc en train de définir la direction à suivre pour ce gestionnaire de caméra. Ensuite, nous prenons cela et nous le multiplions. La raison pour laquelle nous multiplions, commençons par changer cette épingle Nous n'avons pas besoin que ce soit un vecteur. Transformons-le en flotteur. Multiplions-le par quelque chose de vraiment gros. Par exemple, 20 000, quelque chose comme ça. La raison pour laquelle nous faisons cela est que nous obtenons le vecteur vers l'avant, donc la direction vers l'avant de cette caméra. Ensuite, nous multiplions ce chiffre par beaucoup parce que nous voulons qu'il atteigne la distance qui se trouve là, près du mur Nous sommes en train de le multiplier. Ensuite, nous devons dire « plus ». Nous ajoutons ici le point de départ. Nous ajoutons le point de départ avec cette ligne pour le point final. De cette façon, nous obtenons l'emplacement final. Vous pouvez imaginer que je suis debout en tant que joueur et que nous sommes en train de déterminer le point de départ. C'est là que je me trouve en ce moment. Et nous créons simplement une ligne et nous l' ajoutons au début. Et cela permettra d' le but que je vise en ce moment. Maintenant, c'est très difficile à comprendre en tant que débutant ou la première fois que vous le faites. Mais essayez de réfléchir à la façon dont cela a du sens. Maintenant, lorsque nous les ajoutons, ajoutons-les ici jusqu'à la fin. Et cela devrait suffire. Pensez donc également à connecter cette broche d'exécution. Et allez-y, redirigez vos notes. OK, maintenant ça devrait fonctionner ici. Maintenant, nous avons quelque chose appelé hits, et vous pouvez voir que c'est une épingle bleue. Et si vous l'avez déjà remarqué, nous avons déjà utilisé des épingles bleues parce que informations sur nos armes sont également des épingles bleues. Une épingle bleue signifie qu'il s'agit d'une structure avec des structures comme avant, nous pouvons faire glisser et dire casser, nous pouvons casser des structures, vous avez toutes ces informations que vous pouvez utiliser. Vous pouvez effectuer ce tracé linéaire par canal. Vous pouvez donc prendre la ligne que vous avez tracée ici et vous pouvez obtenir l'endroit où vous avez réellement atteint cette ligne. Vous pouvez trouver l'acteur que vous avez touché grâce à cette ligne de traçage par chaîne. Vous pouvez obtenir le temps, la distance, et beaucoup de choses ici, nous n'en avons pas vraiment besoin pour le moment. La seule chose à faire avant de le faire, c'est de sortir de ce lingot et d'en faire une branche Parce que nous ne voulons pas continuer notre code s'il n'est pas valide. Chaque fois que nous touchons quelque chose, nous voulons continuer le code. est toujours agréable d'avoir ça sinon vous aurez parfois une époque. Ensuite, nous avons ce problème de blocage. Chaque fois que nous touchons quelque chose avec cette ligne, nous voulons également continuer le code, créer une branche ici également. Nous voulons également nous assurer que c'est le joueur que nous touchons qui inflige des dégâts. Parce que nous ne voulons pas frapper un acteur au hasard avec un hit act, comme avant. Nous l'avons déjà fait. Supposons que l'acteur ait un tag, alors vous pouvez écrire joueur. N'oubliez pas que nous avons ajouté le tag player. Si vous ne vous en souvenez pas, vous pouvez cliquer sur, je crois que ce sont les paramètres par défaut de la classe Et si vous recherchez un tag, souvenez-vous que nous avons ajouté le tag player à l'acteur. L'acteur a un tag player. Nous l'avons pour tous les joueurs car nous l'avons ajouté à la base de joueurs. Maintenant, nous pouvons faire glisser le pointeur à partir de là et dire «  tirer » si nous touchons quelque chose. Nous avons donc un hit bloquant, l'acteur que nous avons touché est un joueur. Ensuite, nous voulons aller de l'avant et infliger des dégâts. OK, avec celui-ci. Tout d'abord, nous pouvons simplement écrire une chaîne d'impression pour voir si cela fonctionne réellement ici. Pour le débogage, vous pouvez en fait passer ce paramètre à persistant, car vous pourrez alors voir la ligne que vous êtes en train de filmer Et vous pouvez voir s'il fait réellement quelque chose de mal ou de bien. C'est aussi à ignorer par les acteurs. Tu ne veux pas te tuer ici. Ignorer le moi, c'est déjà possible, mais j' en ai parfois, quand je me développe à mon rythme, j'aime m' en éloigner et dire make. Vous pouvez maintenant créer un tableau , puis vous pouvez le faire glisser à partir d'ici et dire « self ». Maintenant, il va en fait ignorer ce joueur ici, les acteurs s'ignorer eux-mêmes. Et c'est déjà ce qu'il fait ici. Ce n'est peut-être pas nécessaire, mais j'aime bien l'avoir ici. Sûreté. Si vous souhaitez bloquer d'autres acteurs. Vous n'ignorez donc pas les autres acteurs. Donc tu ne peux pas les toucher. Vous pouvez toujours cliquer sur le signe plus et ajouter un autre acteur ici. Mais pour l'instant, permettez-moi de cliquer ici avec le bouton droit et de supprimer cet élément du tableau. OK, c'était tout pour le tracé des lignes. Et compilons. Et laissez-moi simplement cliquer sur jouer et voir ce qui se passe si je joue en tant que serveur et que je sélectionne des terroristes. Et je sélectionne, par exemple, une arme ici et je tire. Et il ne se passe rien en ce moment. Laissez-moi arrêter ici et laissez-moi voir pourquoi cela ne fonctionne pas. C'est en train de jouer, mais c'est en train de jouer. Un peu en retard. Si je réessaie et que je tiens juste ma souris, c'est en train de jouer. Vous pouvez voir qu'il est en train de créer les lignes. Où que je photographie, c'est en fait à cette distance que je photographie là-bas. Peu importe ce que je vise, mais il s'agit d'une réponse tardive. Et la raison pour laquelle c'est le cas, c' est que nous avons besoin d'une première dose ici. Parce que chaque fois que nous tournons, souvenez-vous de l'heure que vous avez définie ici pour le chronomètre, il faudra en fait ce temps avant qu'il ne soit joué. Par exemple, si j'en ai écrit trois ici pour mon chronomètre, que je compile et que je clique sur play, il s'écoule 3 secondes avant que le jeu ne démarre réellement. Maintenant, je tiens ma souris et vous pouvez voir bout de 3 secondes qu'elle va prendre la photo ici, à l'heure que vous avez fixée ici. Il va en fait attendre ce moment avant de commencer à tourner en boucle Pour résoudre ce problème, nous avons besoin d'un événement initial, comme le tournage, qui exécutera ce code une fois avant de l'exécuter ici. Et c'est ainsi que nous résolvons ce problème. Faisons ce qu'on appelle un premier coup d'arme. Permettez-moi de m'en tenir à cela et de créer un événement personnalisé. Je dois probablement déplacer tout cela afin que nous ayons un peu d'espace pour travailler sur cet événement ici. Je vais juste appeler ça les premiers coups d'arme. Celui-ci ne fonctionne qu'une seule fois pour s'assurer qu'il fonctionne avant que ce chronomètre par événement ne s' exécute ici après une fois. Cela ne sera exécuté qu'une seule fois. On peut donc parler du premier coup d'arme. Il ne tournera donc qu'une seule fois avant que nous ne commencions réellement le tournage. Nous n'avons donc aucun retard dans le tournage. Cliquons sur jouer maintenant. Et si je prends quelque chose et que je tire, vous pouvez le voir tirer. Il tire immédiatement. Nous n'avons plus besoin d' attendre quoi que ce soit maintenant. Cela fonctionne. Et fermons-le. Je crois que nous avons une erreur en ce moment. Si je n'ai rien et que j'essaie de tirer, vous pouvez voir que je peux prendre quelque chose et je reçois également une erreur. Si je clique dessus, cela indique qu' il y a une flèche avec celui-ci. Pour cela, nous pouvons faire quelque chose ici. Chaque fois que nous tirons avec l'arme, nous pouvons nous assurer que nous en avons réellement une. Pour ce faire, nous pouvons soit cliquer avec le bouton droit de la souris ici et le convertir en un get validé continuer et faire quelque chose comme ça. Nous pouvons également faire autre chose. Continuons cela et prenons ce type d'arme équipée et, à partir de là , disons que si cela n'est pas équivalent à une arme non armée, nous pouvons continuer à tirer parce que cela n'a pas vraiment de sens tirer chaque fois que nous ne sommes armés parce que nous n'avons pas d' Laissez-nous connecter cela. Plus tard, nous le ferons probablement si nous n'avons pas de MO. Lorsque nous ajoutons du MO, si nous n'avons pas de MO, nous ne voulons pas tirer non plus. Nous l'ajouterons plus tard chaque fois que nous ajouterons le MO au jeu. Très bien, en ce moment, nous tirons avec l'arme. Cependant, nous ne touchons pas le joueur. Si vous voyez ici, si je clique sur jouer, je prends le terroriste ici, je prends mon autre client et je sélectionne des terroristes, par exemple prenez une arme ici, laissez-moi simplement la prendre comme serveur. Si je tire en tant que serveur sur le joueur, cela touche le joueur. Cependant, rien ne se passe. Vous pouvez voir que chaque fois que je touche quelque chose, la ligne derrière devient verte. Cela signifie qu'il sait qu'il touche quelque chose. Cependant, nous lui avons dit que nous voulions réagir uniquement lorsque c'est le joueur que nous touchons. Chaque fois que ce n'est pas le joueur, il ne va pas vraiment faire quoi que ce soit, mais il sait qu' il touche quelque chose. Cependant, pour le joueur, il ne s'agit pas vraiment de toucher quoi que ce soit. Allons-y et ajustons les paramètres de collision pour le joueur lors de la prochaine leçon. 136. 10.07 Ajuster les paramètres de collision des joueurs: Très bien, bon retour. Allons-y et ajustons les paramètres du lecteur ici. Réglages de collision. Permettez-moi donc de cliquer sur le maillage. Et laissez-moi m'occuper des paramètres de collision. Chaque fois que nous touchons quelque chose, nous devons générer un événement de succès. Je vais activer l' événement Generate hit parce que nous en avons besoin également lorsque nous infligeons dégâts, de la santé et d'autres choses de ce genre, nous devons générer un événement hit. Et pour ce qui est de la collision ici, si vous regardez le tracé de la ligne, nous utilisons le canal de visibilité. Maintenant, pour les tracés linéaires, vous pouvez modifier cela. Si vous accédez aux paramètres du projet dès maintenant, nous n'allons pas les modifier car cela ne nous pose aucun problème. Mais à l'avenir, si nous avons un problème et que nous devons le changer, nous allons le changer. Mais pour l'instant, restons-en à la visibilité. Mais je vais juste vous montrer où vous pouvez le modifier au cas où dans les paramètres du projet. Si vous trouvez une collision, si je fais simplement défiler la page et que nous avons ce qu'on appelle une collision, nous avons ce que l' on appelle des canaux de traçage. Il s'agit d'un tracé linéaire. Vous pouvez en fait ajouter un nouveau canal au tracé de ligne , puis sélectionner le canal que vous avez créé. Vous pouvez également utiliser un canal personnalisé pour cela, mais pour l'instant, utilisons le canal de visibilité. Et si vous cliquez sur le maillage ici pour les préréglages de collision, je vais le changer en mode personnalisé Ensuite, pour la visibilité, nous allons dire bloquer parce nous utilisons le canal de visibilité. Maintenant, restons comme ça. Si nous avons un problème ultérieurement , nous pouvons le corriger. Laissez-nous tout compiler. heure actuelle, nous utilisons une collision précise parce que nous n'utilisons pas ce composant de capsule de collision, nous utilisons en fait ce maillage pour créer les événements frappants. Cliquons maintenant sur jouer et voyons s' il indique bonjour lorsque je tire sur le joueur. Si je prends cette arme ici comme l'autre, je vais sélectionner des terroristes. Je vais aller chercher celui-ci. Maintenant, c'est le client. Je vais tirer sur le joueur. À l'heure actuelle, rien ne se passe. Laissez-moi essayer de le faire sur le serveur. Si je clique sur le serveur, vous pouvez voir qu'il dit bonjour. Cependant, en ce qui concerne le client à l'heure actuelle, il ne dit rien pour résoudre ce problème. Comme il s'agit d'un mode multijoueur, le client ne sait pas vraiment quels sont les lieux de départ et d'arrivée. Comme vous pouvez le voir ici, le serveur sait ce que c'est. Cependant, pour le client d'ici, si j'essaie simplement de rejouer et de vous le montrer avant que nous ne réparions le problème, si je prends quelque chose et pour le client terroriste en tant que client, si c'est juste, disons que je tire ici sur ce mur. La course en ligne se fait automatiquement. Cela ne s'affichera pas vraiment sur le client, car n'oubliez pas que la course en ligne que vous faites se joue sur le serveur. La ligne persiste ici, la ligne de débogage ne s' affichera jamais sur le client qui est normal car Ce qui est normal car vous l'exécutez sur le serveur. Lorsque nous examinons également le serveur, vous pouvez voir que j'ai tiré sur ce mur. Cependant, pour le client, il semblerait que vous ayez tiré là-bas. Cela n'a cependant aucun sens de la part du serveur. Et je tire ici, je devrais bien le faire. Vous pouvez le voir ici, j'ai cliqué ici. Cependant, pour le client, ce n'est même pas là-bas. Le moyen de résoudre ce problème. Maintenant, c'est multijoueur, donc il ne le sait pas vraiment. Nous devons en fait intégrer cela plus loin dans l'événement. Commençons par ce point de départ. Finissons-en également ici. Nous devons déplacer ce code. Je vais déconnecter ce code ici. Et éloignons-nous de cela. Nous devons revenir au début. La raison pour laquelle nous le faisons est lorsque nous exécutons également ce code sur le client. Parce que nous ne sommes pas vraiment en train de régler quoi que ce soit. C'est très bien Si nous ne définissons rien , vous pouvez le jouer sur le client. Nous l'exécutons sur le fait que le client connaît également les emplacements de début et de fin et c' est ainsi que vous corrigez ce code. Allons-y et branchons-les ici. Maintenant, laisse-moi juste déplacer ça. Laisse-moi m'occuper de tout ça. Permettez-moi de rapprocher tout cela de celui-ci. Maintenant, il n'y a plus que ce code ici. Permettez-moi de créer des nœuds de redirection pour ces vecteurs. D'accord ? Quelque chose comme ça. Maintenant que c'est réglé, laissez-moi partir, laissez-moi prendre ce code et le déplacer vers le bas. Nous avons de la place là-haut. Maintenant, pour ce code, fois qu'il est valide, nous avons découvert que cette arme équipée est valide. Nous pouvons ensuite insérer ce code. Allons-y et branchons-le. Et retirons-le encore une fois. Branchons le début à celui-ci et la fin à celui-ci. Vous pouvez également simplement le déplacer vers le bas pour voir ce qui se passe. Et tu peux continuer et connecter ça si tu veux. Tu peux juste prendre tout ça. Vous pouvez cliquer avec le bouton droit de la souris et le réduire à une fonction. Et vous pouvez appeler cette fonction ou simplement la rendre plus descriptive. Obtenez une liste à puces pour tracer les emplacements, quelque chose comme ça. Puisque vous obtenez des informations sans rien définir, vous pouvez continuer et cliquer sur Pure car vous n'avez pas vraiment besoin de les parcourir. Et tu peux double-cliquer dessus. Allez-y et organisez également cette fonction. Assurez-vous que tout est connecté. Et ça devrait être bien de faire quelque chose comme ça. Vous l'avez déjà fait. Revenons maintenant au graphique et permettez-moi de tout rapprocher un peu plus. Vous pouvez voir qu'il est beaucoup plus simple d'en faire une fonction. Et renommons l'emplacement de départ de ces deux puces et l' emplacement de celui-ci. Maintenant que c'est fait, nous pouvons compiler pour celui-ci. Nous n'avons pas vraiment besoin de faire quoi que ce soit parce que nous allons arrêter ce tournage. Nous n'en avons pas vraiment besoin. C'est ce qui compte ici. OK, nous l'avons branché, et je pense que cela fonctionnera Maintenant, permettez-moi de le déplacer ici. Et cliquons sur Play. Essayons-le. Essayons-le maintenant en tant que client. Et laisse-moi prendre quelque chose. Permettez-moi également de l'essayer en tant que serveur. Je prends le, en tant que serveur. Maintenant, je peux tirer sur ce joueur. Et il dit bonjour ainsi qu'au client. Il devrait dire bonjour si je tire sur le joueur et si je tire sur le joueur, c'est en fait dire bonjour. Vous pouvez également voir sur le serveur que la ligne est correctement dessinée. En fait, ça m'a énervée aussi. Disons que sur le serveur, je photographie également ici en tant que client. Je suis en train de filmer ici. Vous voyez qu'il tire en fait avec précision. Maintenant, c'est réglé. Il sait maintenant où je suis en train de photographier. Maintenant, si je touche le lecteur, vous pouvez voir qu'il dit bonjour. Comme vous pouvez le voir à quel point c'est précis, si je touche le joueur ici, cela ne dit rien parce que je ne touche pas le maillage du joueur. Si je touche le joueur, par exemple, laissez-moi tirer sur le joueur. Vous pouvez voir qu'il dit bonjour. Laisse-moi tirer sur le joueur. Par exemple, ici , il est écrit « bonjour ». Si je tire sur le joueur ici, il dit bonjour. Je tire sur le joueur ici. Cela ne dit rien. C'est aussi très bon. Celui-ci touche le joueur ici parce que le maillage lui-même n'est en fait pas vraiment bon. Il s'incline, mais vous pouvez voir par exemple que si je joue le rôle d'un antiterroriste, c'est comme ça que se passent les mailles actuellement Si je joue juste en tant que contre-terroriste et que je maximise ce résultat, il devrait dire bonjour en tant que serveur. Si je photographie ici, tu peux voir bonjour. Le tracé de la ligne ne s' affiche pas car nous sommes sur le client. N'oubliez pas que si je photographie ici, par exemple, vous pouvez me voir dire bonjour. Si je photographie ici, ça dit bonjour. Vous pouvez voir que celui-ci est plus précis, ce maillage ici, par rapport à l'autre. C'est aussi la façon dont vous créez le maillage, sa précision , etc. Vous pouvez donc voir la différence. Je peux photographier ici et on dit bonjour, parce que c'est moi qui le tue. Cependant, si je photographie ici, ce n'est pas pour dire bonjour. C'est également très précis dans le cas de cette collision. 137. 10.08 Créer les prises flash de muselière: Avant de pouvoir ajouter l'effet visuel et les effets sonores pour le tournage, nous devons ajouter un support pour l'effet visuel du museau. Allons-y et faisons-le. Passons à l' arme que nous utilisons. Je dois trouver le squelette de l'arme. Le moyen le plus simple de le trouver, au lieu de simplement consulter les dossiers du marché. Tu peux ouvrir les armes, ouvrir le K pour l'AK. Cliquez sur l'arme puis sur cette petite icône. Cela vous redirigera automatiquement vers cette arme dans le navigateur de contenu. Maintenant, allez-y et ouvrez le squelette de l'arme. Et à l'intérieur d'ici, comme avant, nous devons ajouter un socket. Vous voyez déjà qu'il y a un socket ici. Permettez-moi de le renommer. Je vais le renommer et l'appeler comme préfixe. Et une muselière, on peut simplement l'appeler museau. C'est très bien. Ou nous pouvons l'appeler simplement muselière Passons aux autres et faisons-le également. Permettez-moi de revenir à l'arme , ouvrez les quatre, ouvrez le pistolet, cliquez sur le clic sur l'arme, cliquez sur cette petite icône, elle vous y mènera Puis ouvrez le squelette. Et pour le squelette ici, pour le flash de bouche, nous pouvons maintenant cliquer avec le bouton droit de la souris et dire «   ajoutez une chaussette » à nouveau, appelez-le museau nous pouvons maintenant cliquer avec le bouton droit de la souris et dire «  ajoutez une chaussette » à nouveau, appelez-le Il suffit de l'appeler de la même façon sur chacun d'entre eux. Une muselière pour celui-ci également. Je ne sais pas si nous devons le faire pivoter. Vous pouvez voir que celui-ci X est l'axe avant de celui-ci. Je pense qu'il faut le faire pivoter de cette façon. Essayons simplement de le faire. Permettez-moi de cliquer à nouveau dessus. Et je vais prendre une photo pour la rotation. Et je vais faire une rotation de 90 degrés. De cette façon, le X pointe réellement vers l'avant. OK, gardons ça et passons au pistolet. Ouvrons maintenant l'éditeur de plan complet. Accédez à l'arme et cliquez sur cette petite icône représentant le pistolet. Passons maintenant au pistolet, ouvrez le squelette ici pour que la bouche clignote. Il y en a un ici aussi. Pas d'éjection, la bouche clignote. Ce pack est plus avancé qu'avant, mais pour celui-ci, permettez-moi de le renommer à nouveau. Permettez-moi de l'appeler museau. Maintenant, nous avons un support pour chacun d'entre eux, et nous allons l' utiliser à l'intérieur de notre personnage pour ajouter des effets visuels à l'arme. 138. 10.09 Photographie VFX et SFX: Bien, revenons au joueur et ouvrons à nouveau la base de joueurs. Et maintenant, nous sommes prêts à ajouter les effets visuels et les effets sonores à l'intérieur d'ici. À l'intérieur d'ici, ce que nous devons faire, passer par une multidiffusion Encore une fois, parce que nous devons montrer les effets visuels à tout le monde ainsi que les effets sonores, nous devons passer par une multidiffusion Tout d'abord, créons simplement le multicast. Faisons un clic droit et disons « Événement personnalisé ». Pour cet événement personnalisé, appelons-le arme multicast. Maintenant, pour celui-ci, allons-y. Ne fonctionne pas sur serveur, mais fonctionne en multidiffusion et est fiable. Pour cela, la chose simple que nous voulons faire est de générer l'émetteur sur place Ou en fait, faisons apparaître l'émetteur attaché parce que nous allons l'attacher au socket Allez-y, vous avez vu l'émetteur attaché, puis nous devons sélectionner de quel émetteur parlons-nous ? Celui-là. Si nous examinons la structure et ouvrons la structure de l' arme, nous avons ce système de particules par flash initial que nous avons ajouté plus tôt à notre tableau de données Nous pouvons continuer et simplement le brancher . Nous allons nous en servir. Je vais le renommer en Shooting Visual Effects ou simplement en VFX Je vais juste l'appeler VFX. Et pour ce qui est de l'attachement au composant, je vais simplement le brancher ici aussi. Je vais déplacer celui-ci vers le haut. Et nous devons l' attacher à l'arme. Je vais l'appeler arme maintenant, celle-ci est l'os auquel nous devons l'attacher. L'os que nous avons appelé museau. Il suffit d'écrire le nom ici, Muzzle. Le nom du socket que vous avez créé. Ensuite, l'emplacement de cet effet que nous devons jouer maintenant pour cet émetteur. Si nous avons utilisé l' émetteur de spawn sur place, nous avions en fait besoin de l'emplacement pour cela Cependant, il ne s'agit que de l' emplacement dans le socket, et cela ne devrait être que 000. C'est très bien. Maintenant, nous devons également jouer un effet sonore Faites glisser le pointeur à partir d'ici et dites «   jouer le son à l'emplacement ». Maintenant, pour cet effet sonore, souvenez-vous également dans la structure que nous avons créé cet effet sonore de prise de vue. Il suffit de le brancher ici et nous l'ajouterons plus tard. Appelons cet effet sonore, l'emplacement de l' effet sonore, celui dont nous avons besoin. Mettons-le ici. Nous pouvons simplement dire l'emplacement. C'est très bien. Compilons et sauvegardons tout. Essayons de jouer ça ici. Avant de commencer la course en ligne, essayons de créer l'effet. Si je le retire, j'appellerai cette arme à parachute multicast ici Arme Mc Chute. Celui-ci doit être branché dessus aussi bien que celui-ci. Donc, ces deux événements. Nous devons maintenant intégrer toutes ces informations. L'arme que nous utilisons est cette arme ici. Si je fais glisser le pointeur à partir de là et que j'ai vraiment besoin trouver la variable arme, si je recherche simplement une variable d'arme et que j'obtiens le maillage statique ou le maillage squelettique lieu de celui que nous utilisons ici, nous pouvons cliquer et faire glisser cette variable ici. Et maintenant c'est branché. Maintenant, l'effet visuel dépend de ce que nous avons à l'intérieur de cette structure. Vous pouvez simplement l'utiliser ici, nous avons déjà appelé la structure. Vous pouvez cliquer dessus et cliquer sur l'épingle pour faire clignoter le museau Et vous pouvez le brancher et cliquer sur l'épingle pour obtenir l'effet sonore de prise de vue. Et vous pouvez également le brancher . Maintenant, pour ce qui est de l'emplacement, il suffit de trouver l' emplacement du support pour le flash initial, c'est là que nous voulons jouer l'effet sonore Vous pouvez également simplement obtenir l'emplacement du personnage ou agir comme un lieu. Personne ne remarquera que vous pouvez simplement dire « obtenir localisation de l' acteur » et l'utiliser. Et il jouera quel que soit votre acteur ou votre personnage et personne ne remarquera vraiment que cela ne vient pas du pistolet. Cependant, si vous voulez que cela provienne précisément du pistolet, vous pouvez simplement le prendre et dire « get socket location ». Vous pouvez le faire et vous pouvez écrire le museau de la prise vous pouvez le prendre et le brancher ici C'est également plus précis pour celui-ci. Très bien, j'ai donc créé des nœuds Smyroute, donc c'est un peu plus organisé maintenant Si je compile et enregistre tout, cela devrait fonctionner. Maintenant, ce début et cette fin, nous pouvons également en changer le nom. Donc, au lieu de le faire dans la leçon précédente, «   Bullet Location », je vais simplement l'appeler «   Bullet start location ». Et si l'on considère l'emplacement, c'est plutôt comme s'il était plus beau et nous pouvons le comprendre plus facilement. Cliquons maintenant sur jouer et voyons si cela va fonctionner. N'oubliez pas que si vous n'avez pas encore défini les informations de votre tableau de données, nous l'avons fait dans les leçons précédentes. Si vous ne l'avez pas configuré, vous devez placer le museau ici, en dehors du tableau de données Il sait quel effet sonore jouer et aussi quel fa il faut jouer. OK, sauvegardons tout et fermons-le. Allons-y et cliquons sur jouer ici en tant que serveur, je vais sélectionner Terrorist. Sélectionnez l'arme. Maintenant tu peux continuer et tirer. Vous devriez entendre l'effet sonore. Vous pouvez également voir que le flash de la bouche fonctionne également. OK. Génial en tant que client. Essayons ça aussi. Laisse-moi juste aller chercher quelque chose. Passons au K. Si je prends des photos, cela fonctionne également. Les deux fonctionnent. Le client et le serveur. Si je passe juste devant lui, tu y joues. Je peux voir le museau clignoter sur les deux. Si je le fais en tant que client, juste pour m'assurer que cela fonctionne également, je passe devant ici et je le photographie, et cela fonctionne également. OK, génial. Donc, les deux fonctionnent, et maintenant nous en avons fini avec le code. Donc, si vous revenez à la base de joueurs, nous avons simplement créé cette multidiffusion et nous l'avons ajoutée au serveur N'oubliez pas qu'une multidiffusion ne peut être exécutée que par le biais d'un événement serveur Nous l'exécutons via l'événement du serveur. Nous avons intégré toutes ces informations et maintenant elles fonctionnent Alors allez-y, sauvegardez tout, et passons à autre chose. 139. 10.10 Empêcher la prise de vue pendant Equip Anim: Le problème que nous avons actuellement, c'est que le joueur peut tirer tout en étant équipé de l'arme Si j'équipe cette arme, vous pouvez voir que je peux tirer pendant que je l'équipe Au fait, pour ce cours, je vais juste désactiver le son de l'arme pour que vous puissiez m'entendre lorsque je tire et que cela ne vous dérange pas. Je vais juste le désactiver de mon côté. Lorsque vous équipez l'arme, nous voulons désactiver le tir. Allons-y et faisons-le. Ajoutons d'abord un lingot. Disons que celui-ci est une arme d'équipement. Laissez-nous compiler maintenant. Nous devons régler cela par le biais d'un événement. Créons simplement un nouvel événement personnalisé. Événement personnalisé. Et disons que cet ensemble est une arme d'équipement. Allons-y et copions ce nom car je vais créer un autre événement personnalisé. Nous devons le faire passer par le serveur. Je vais l'appeler serveur au début. Et lancez celui-ci sur le serveur tout en étant fiable. OK, vous pouvez exécuter le serveur sur le serveur d'événements normal. Cet ensemble est une arme d' équipement, comme ici Ce que nous voulons simplement définir comme étant, vrai ou faux, selon la valeur que nous lui avons attribuée. Faisons simplement glisser ça ici. Et ajoutons-le également ici. OK, celui-ci. N'oubliez pas de la configurer pour qu'elle soit répliquée afin le client sache également quelle est cette variable Pour celui-ci, nous devons l' appeler par le code quelque part pour qu'il soit vrai ou faux. Commençons par ici. Nous avons ce montage de jeu chaque fois que nous équipons l'arme. Laisse-moi juste faire glisser celui-ci ici. Chaque fois que nous installons l'arme, chaque fois que c'est vrai, je fabrique une branche chaque fois que c'est vrai. Appelons cette arme d'équipement MC Equip. Ensuite, nous pouvons également définir cette animation d'équipement. Donc, ce que nous avons fait ici, nous avons le multicast et nous l'avons appelé sur le serveur Donc, ce que nous pouvons faire, c'est copier-coller ceci. Je me demande juste si nous devrions le faire glisser ici, puis le faire glisser ici, pour pouvoir simplement l'appeler ici. Et je crois que nous n'avons pas vraiment besoin de le faire, copions-le ici. Et laissez-moi simplement le déplacer vers le bas. Collons celui-ci ici. Et collons l' animation de l'équipement comme avant. Et cachons les épingles non connectées. Maintenant, chaque fois que nous équiperons l'arme, nous allons jouer à cette multidiffusion OK, maintenant que nous l'avons, compilons . Maintenant, ce que nous pouvons faire c'est utiliser cette arme équipée au lieu de celle-ci. Chaque fois que nous équipons une arme, cela devient réalité. Permettez-moi de le supprimer pour le moment et de masquer les épingles non connectées. Laissez-moi appeler le set qui équipe l'arme et connectons-la Et il va passer par le serveur, puis appeler le multicast chaque fois que celui-ci est vrai Ici, nous voulons équiper l'arme. Vous devez le mettre sur faux à un moment donné, sinon ce sera toujours vrai et vous ne pourrez pas tirer avec votre arme. Chaque fois que nous aurons fini de jouer ce montage d'animation, disons que le set est une arme à fouetter est faux Nous l'enlevons ici. D'accord ? Et puis, lorsque nous tirons avec l' arme ici, tirez avec l'arme. Nous voulons photographier chaque fois que nous ne sommes pas équipés. Allons prendre ça ici. C'est une arme d'équipement. Et c'est vrai, pas des lingots, puis faites glisser le pointeur d'ici et écrivez lingot Connectons-le ici. OK, donc nous ne pouvons pas tirer quand nous ne sommes pas armés et nous ne pouvons pas tirer tant que nous sommes encore en train d'équiper l'arme ici Très bien, laissez-nous compiler. Et je vais aussi y aller. Lorsque nous pillons l'arme, nous sommes également l'arme d'équipement Supprimons la multidiffusion à partir d'ici. Je vais faire la même chose. Tu peux juste aller ici. Si vous souhaitez le copier, collez-le ici, juste comme ça. Et cela devrait également jouer l'animation. Cela devrait régler le problème. Et je peux le supprimer ici. Je peux cacher les épingles non connectées au lieu d' utiliser l'arme équipée de celle-ci Parce que cette arme d'équipement n'est appelée qu' ici dans l'arme d'équipement. Cependant, nous n'avons pas vraiment l'arme équipée ici lorsque nous avons perdu l'arme. Il vaut peut-être mieux utiliser cette arme équipée. Il vaut mieux utiliser celui-ci. Alors laisse-moi voir ici. Armes équipées. Oui, nous l'avons déjà défini. C'est ce que nous appelons, peut-être que vous pouvez simplement le supprimer et me montrer une arme équipée, en utilisant celle-ci à la place. Cela devrait beaucoup mieux fonctionner. Compilons et sauvegardons. Essayons de jouer et de voir si nous avons une boîte ici. Laisse-moi jouer ici, le Terrist. Et essaie de tirer chaque fois que je pille l'arme, je ne peux pas. Et vous pouvez voir que je ne peux tirer que lorsque j'ai fini d'équiper l'arme Si je le laisse tomber à nouveau, que j'essaie de le piller et de tirer, je ne peux pas. Maintenant je peux, chaque fois que ça s'arrête ici. OK, essayons de le jouer en tant que client. Parce qu'il est également très important de voir si cela fonctionne en tant que client. Je vais juste écrire pour un joueur et jouer en tant que client. Je vais jouer ici et le tester. Prendre ceci, c' est pareil. Je ne peux pas vraiment tirer chaque fois que j'équipe mon arme. C'est ainsi que cela fonctionne et l'animation ne sera jouée que lorsque l'arme d'équipement sera réglée sur true. Et il le mettra en panne chaque fois que le montage de l'animation sera terminé. 140. 10.11 Créer l'interface utilisateur de la munition: Il est maintenant temps de concevoir l'interface utilisateur des MO afin d' ajouter des MO au jeu. Et pour ce faire, passons à l'interface utilisateur. Et concevons-le dans notre interface utilisateur principale. Parce que cela fait partie de l'interface utilisateur principale à l'intérieur d'ici. Je veux le concevoir juste sous l'arme ici. Par exemple, prenons cette boîte verticale, poussons-la simplement vers le haut dans le Y. J'ai donc un peu d'espace ici pour le faire Je veux concevoir quelque chose comme ça. J'aime vous montrer ce que je veux concevoir et vous devez le décomposer. Vous devez y jeter un œil, puis essayer décomposer et de voir ce que vous devez ajouter en tant qu'interface utilisateur. Par exemple, devez-vous ajouter une boîte horizontale ? Une boîte verticale ? Et que devez-vous ajouter ici ? abord, nous avons besoin d'une superposition, car je peux voir que nous avons du texte au-dessus d'une image en arrière-plan Et par conséquent, nous avons besoin de ce que l'on appelle une superposition. Commençons par là. Cherchons une superposition et collons-la ici dans le panneau du canevas, dans la zone verticale. Nous en avons terminé avec celui-ci. C'est une superposition en soi. Et je vais placer l' ancre sur le bouton, non ? Et puis si nous écrivons 00 comme position, nous pouvons voir qu'elle s'aligne ici pour l'alignement Nous devons écrire 11. Maintenant en position 00, il se trouve à l'intérieur de la toile. D'accord, nous avons d'abord besoin d'une image. Cherchons une image et collons-la dans la superposition. Cliquez sur l'image et remplissons la totalité de la superposition jusqu'à l'alignement horizontal Et l'alignement vertical remplit également. OK, en cliquant sur l'image, sélectionnons-la. Je crois que je l' ai appelé panel. Ouais. Si vous recherchez un panneau et que vous prenez ce membre du panneau d'images, s'il est étiré de cette façon, vous pouvez le rendre non étiré Si vous entendez dans les portes, vous la remplacez par une case et vous modifiez la marge à 0,5. OK, pensez également à effectuer un zoom arrière un par un. Vous pouvez réellement voir la taille réelle de cette boîte. Vous pouvez simplement le redimensionner. Pour le moment, ce n'est pas vraiment important. Ce que je veux faire, c'est cliquer sur la superposition et cliquer sur Size To Content Il sera en fait dimensionné en fonction du contenu contenu dans cette superposition Lorsque je clique sur l'image et que j'augmente la taille, vous pouvez maintenant voir que je peux augmenter la taille dans les deux sens. Vous pouvez simplement l'augmenter pour le moment. Nous devons d' abord concevoir l'intérieur avant de connaître réellement sa taille. Nous avons d'abord besoin d'une boîte horizontale parce que nous avons du texte, et à côté, nous avons une image. Cherchons une boîte horizontale et plaçons-la dans la superposition Prenons le cadre horizontal et alignons-le au milieu de l'image figurant ici sur la superposition Cherchons maintenant un texte. Prenez le texte, placez-le dans le cadre horizontal. Et prenez également une image et placez-la à l'intérieur de la boîte horizontale. OK, maintenant on peut cliquer sur le texte. Écrivons quelque chose. Par exemple, 30 sur 90. Vous avez 30 balles dans le chargeur en ce moment, puis 90 balles supplémentaires Maintenant, cela va changer dynamiquement dans le jeu, donc cela n'a pas vraiment d' importance pour le moment. En fait, je vais écrire quelque chose comme 100 ou 200, donc je sais que c'est un faux texte, et nous pourrons le configurer correctement plus tard. OK, pour celui-ci, c'est l'image à puces et nous ne l'avons pas encore importée. Passons aux actifs d'Assets. Passons à l'interface utilisateur et aux icônes à l'intérieur d'ici. Je vous ai donné l'intérieur du dossier dossier dans les icônes de l'interface utilisateur, cette puce ici, cliquez et faites-la glisser ici. Et n'oubliez pas de l'ouvrir d'abord et de changer le groupe de textures en UI. Et modifiez les paramètres de compression en fonction de l'interface utilisateur. Allons-y et économisons. Revenons à notre Nui Cherchons la puce , puis sélectionnons-la. OK. Je peux maintenant cliquer sur mon texte. Et laissez-moi simplement zoomer pour voir ce que je fais. Je vais changer celui-ci en rubic, semi-gras. En ce qui concerne le texte, je vais maintenant effectuer un zoom arrière de un à un pour voir réellement la taille de ce texte. Et je vais juste faire en sorte que ce soit 24 comme taille. OK, je vais cliquer sur l'icône en haut pour supprimer les tirets de cette puce. Je vais l'aligner au milieu, et je vais le réduire, peut-être 30 x 30. Au lieu de cela, voici à quoi cela ressemble. OK, j'ai besoin d'un peu d'espace entre les deux. Et cela peut être fait en recherchant un espaceur et en le plaçant entre le texte et l'image Faisons en sorte que le texte, ou l'espace ici, dix pixels dans le x. OK, nous l'avons ici. Vous pouvez maintenant compiler. Et ce que vous pouvez faire maintenant, c'est cliquer sur l'image et essayer de mieux la redimensionner Maintenant, vous avez le contenu à l'intérieur et essayez de le redimensionner comme vous le souhaitez OK, quand vous serez satisfait, je vais éloigner légèrement cette superposition de l'écran, depuis les bords de l'écran Peut-être -30 par -30 et maintenant c'est parfait. Alors compilons et sauvegardons le tout. Et je vais également sélectionner le texte, l'image et l'image en arrière-plan. Et réglez la visibilité sur une valeur testable pour que le curseur des miles ne puisse pas non testable pour que le curseur des miles plus interagir avec eux. OK, compilons et sauvegardons tout. Maintenant que c'est terminé, cliquons sur la case verticale en haut. Maintenant, nous pouvons le déplacer vers le bas. Tu peux le déplacer vers le bas, peut-être quelque chose comme ça. Et j'en suis satisfait. Nous avons les munitions et nous avons aussi les armes ici. OK, vous pouvez continuer à compiler, tout enregistrer et passer à la suivante. 141. 10.12 Réglage du montant initial de la munition pour arme: Laissez-nous maintenant définir la quantité de MO que vous avez dans chaque arme. Encore une fois, il faut revenir à la structure. Passons à la structure, informations sur les armes que nous avons créées. Créons deux nouvelles variables. Tout d'abord, nous devons savoir combien de MO vous avez dans un mag, maximum de MO de cette arme. Nous avons besoin de savoir combien de MO vous avez sous forme de balles supplémentaires. Vous pouvez donc voir ici dans l'interface utilisateur si je l'ouvre. Combien de MO avez-vous dans le magazine ? Et combien de MO avez-vous ? Des restes que vous pouvez recharger à partir de celui-ci. Je vais juste appeler Max Extra MO. Quel est le maximum que vous pouvez avoir à l'intérieur de cette arme ? Comme il ne s'agit que d'un nombre, c'est un nombre entier, ce n'est pas un nombre décimal Nous devons sélectionner un entier, juste un nombre ordinaire. Sans décimales, nous avons le maximum en ma et le maximum en MO supplémentaire. Je vais les déplacer ici et je pense que je vais les déplacer au-dessus de la vitesse de prise de vue, quelque chose comme ça. Maintenant, peu importe où vous les déplacez. J'aimerais juste rester propre comme ça. Une fois ceux-ci terminés, nous pouvons maintenant le fermer et nous n'oublions pas de mettre à jour dans le tableau de données. Si j'ouvre le tableau de données et à l'intérieur de mon tableau de données ici, nous devons l'écrire de la même manière que nous l'avons fait ici dans la structure. Si je retourne à la structure, je l'ouvre ici à l'intérieur de la structure. Maintenant, si je le compare simplement à ma table de données, j'ai maintenant besoin de ce MO en moi et du maximum MO supplémentaires après la variable de classe. Après celui-ci. Après le cours, je vais écrire cliquer » et dire « Insérer une colonne » à droite. Et je vais le faire encore une fois. Permettez-moi de maximiser cela pour que je puisse réellement voir ce que je fais. Nous pouvons simplement le réduire et écrire Max MO dans Mag. Vous pouvez même le copier , le coller ici. Et copiez-le. Et collez-le ici. OK, donc nous l'avons maintenant. Ensuite, vous devez définir la quantité de MO dont vous disposez. Donc, pour l'AK 47 par exemple, je peux en avoir 30 dans mon Meg et je peux avoir un maximum de 90 balles supplémentaires Mes informations peuvent avoir par exemple 2060 et mon pistolet par exemple, 12 balles et un maximum de 24 balles en tant que MO supplémentaire, quelque chose comme ça 2060 et mon pistolet par exemple, 12 balles et un maximum de 24 balles en tant que MO supplémentaire, quelque chose comme Allez-y et cliquez sur le fichier pour le télécharger et le télécharger sous forme de fichier CS afin que nous puissions le télécharger sur le moteur. Et encore une fois, comme avant, je vais supprimer l'ancien que nous avons créé. Et je vais le coller ici, le renommer à nouveau en DT Weapon Info Ensuite, à l'intérieur du moteur, passons aux tables de données. Et permettez-moi de cliquer et faire glisser ceci ici pour qu'il soit mis à jour. Et si vous l' ouvrez à nouveau, vous pouvez voir que toutes les valeurs ici sont mises à jour. OK, génial. Nous avons donc maintenant défini la quantité de MO. Cependant, lorsque nous jouons au jeu, le moteur ne connaît pas le montant initial car nous n'avons pas vraiment utilisé ces chiffres. C'est bon. Nous les avons écrits dans la structure et le tableau de données. Cependant, nous ne leur avons pas vraiment fixé quoi que ce soit pour le moment. Passons aux armes et faisons-le à l'intérieur de la base d'armes. La raison pour laquelle je le fais dans la base d'armes en ce moment et non dans le joueur, est parce que chaque fois que l'arme apparaît, c' est parce que chaque fois que l'arme apparaît, elle définit le nombre de MO qu'elle contient dans le chargeur et le nombre de MO supplémentaires, cela se fait automatiquement À l'intérieur d'ici, à l'intérieur d'ici. Faisons un clic droit et créons un nouvel événement personnalisé. Appelons cela un serveur. Nous allons donc le faire passer par le serveur. Et appelons-le arme initialisée. Il s'agit simplement d'un événement pour débutants qui se déroulera ici dès le début de la partie. Si vous appelez simplement l'arme initialisée par le serveur et que vous l'exécutez sur le serveur, de manière fiable, juste comme ça, compilez. Maintenant ce que nous voulons faire, c'est définir le MO supplémentaire actuel et également le MO dans le chargeur de l'arme Créons deux nouvelles variables et nous en aurons également besoin plus tard. Appelons celui-ci. Je dois changer le nom ici, MO in mag. Appelons l'autre M supplémentaire ici dans la structure. Si je reviens en arrière et que j'ouvre la structure, à l'intérieur de la structure, c'est le maximum de M in, c'est le maximum que nous pouvons avoir. C'est la version actuelle. Nous aurions pu éteindre notre arme et utiliser notre mode opératoire lorsque nous la lâchons au sol. Il n'y aura pas le maximum MO comme le MO du mag. Il aura ce MO actuel parce que le joueur en a utilisé une partie. Transformons-le également en intérieur. Permettez-moi de les faire glisser ici pour que nous puissions les configurer. Et n'oubliez pas que vous pouvez maintenir la touche Alts enfoncée sur votre clavier pour les régler directement de cette manière Connectons-les ici, connectons celui-ci. Et nous devons maintenant les définir en premier. Nous devons obtenir la variable ici, la structure. vous savez probablement déjà ce que nous devons faire, car nous l'avons fait 1 000 fois. Donc, vous obtenez le nom de l'arme, vous obtenez des informations sur l'arme, puis vous cassez cette structure. Et maintenant, vous avez le Max MO, le Meg et le Max Extra MO. Les Max M et Mag, je vais les régler sur les M et Meg actuels et le M supplémentaire, en les réglant sur le MO supplémentaire actuel. Et je vais cliquer sur Masquer les épingles non sélectionnées. Et juste comme ça, ce qui se passe, c'est que chaque fois que cette arme apparaît, cela commence, le jeu recommence Chaque fois que nous le lançons dans le monde, chaque fois que nous l'avons placé dans le monde, nous cliquons sur jouer Et ce jeu de départ va commencer tout de suite. Et chaque fois que cet endroit se trouve, il définira automatiquement le MO actuel et le Mac un Mo supplémentaire par rapport à ce que nous avons défini dans le tableau de données Indeed. C'est bon, alors c'est tout. C'était très, très simple. Et avec ces variables, vous devez cliquer dessus et cliquer sur répliqué. Et aussi pour celui-ci, cliquez sur répliqué. Parce que n'oubliez pas que nous fonctionnons sur le serveur. Et si nous ne les reproduisons pas, le client n'a aucune idée de la quantité de MO dont vous disposez Le client verra 00 MO si vous ne les avez pas répliqués. N'oubliez donc pas de les reproduire également. Les deux. Et passons à la suivante. 142. 10.13 Créer la logique de l'interface utilisateur des munitions: Passons maintenant à l' interface utilisateur et appliquons la logique qui s'y trouve. À l'intérieur de notre B main, nous avons créé cette interface utilisateur pour les puces Maintenant, cliquons sur ce texte. Et je vais le renommer en T Bullets ou MO. Appelons-le MO. Et compilons. Définissons-le également sur une variable. Parce que nous devons définir ce texte, en fonction de la quantité de MO dont nous disposons, nous devons en faire une variable. Nous pouvons donc le modifier avec du code à l'intérieur du graphique. À l'intérieur d'ici. Créons un nouvel événement personnalisé. Cliquez avec le bouton droit sur Événements personnalisés. Appelons cela une mise à jour MOI avec ceci. Au départ, ce que nous voulons simplement, c'est définir ce texte en fonction de la quantité de MO dont nous disposons. Faisons grève ici et disons « texte fixe ». C'est toujours agréable de se demander qu'est-ce que tu veux vraiment ? Qu'est-ce que tu essaies de faire ? C'est ce que je me demande habituellement lorsque j' essaie de coder quelque chose. Par exemple, celui-ci, qu'essayez-vous de faire ? Vous essayez de définir ce texte en fonction de la quantité de MO que vous avez actuellement dans le Meg, vous allez sur le graphique et vous prenez ceci par exemple. Vous pouvez écrire Set text parce que nous voulons définir le texte en fin de compte. Comment définissons-nous le texte ? Nous avons besoin de deux variables différentes. C'est quelque chose que nous avons déjà fait. Nous avons besoin du MO actuel sur Mac. Nous devons le savoir, car nous devons le définir ici et nous avons également besoin du MO supplémentaire actuel. Appelons-le. Cliquez ici et appelez-le Current extra MO. Remplaçons-les tous les deux en un entier. Ce sont les deux variables que nous devons connaître et avec lesquelles nous devons définir ce texte. Maintenant, vous pouvez voir que nous avons deux choses à régler. Nous n'avons pas qu'un seul chiffre, nous avons deux choses. Chaque fois que vous avez plusieurs éléments à l'intérieur d' une ligne de texte que vous devez modifier séparément, vous allez utiliser ce que l' on appelle un format de texte. Si vous faites glisser le pointeur d'ici et dites « formater le texte », vous devez immédiatement y penser lorsque vous avez deux choses à modifier à l'intérieur d'une ligne de texte, deux choses distinctes. Nous voulons modifier ce numéro et nous voulons modifier ce numéro. Chaque fois que nous rechargeons l'arme, nous devons formater le texte Parce que nous devons maintenant intégrer ces deux variables au format texte. Si vous écrivez un crochet pour commencer, appelons-le celui-ci Tu peux l'appeler comme tu veux. Je vais juste l'appeler du même nom qu' ici. MO actuel en mag. Ensuite, vous devez fermer les crochets. N'oubliez pas que c'est un support bouclé. Vous devez le formater de la même manière qu'ici. Parce que je veux l'espace ici et l'espace. Je vais cliquer ici et écrire space space. Parce que je voulais juste ressembler à ça. Vous pouvez choisir ce que vous voulez pour que cela ressemble à ça. Ensuite, vous devez ouvrir à nouveau les crochets, car je dois maintenant définir ma deuxième variable ici Celui-ci est, par exemple, le MO supplémentaire actuel, comme celui-ci. OK ? Nous avons maintenant ces deux variables et enregistrons maintenant ces deux variables. Il les connectera automatiquement ici et ici, ce qui signifie qu'il les mettra à jour séparément les uns des autres. Voici comment utiliser un format de texte. Si je le refais, par exemple, un autre exemple, vous pouvez l'utiliser par exemple, dans un jeu RPG, vous pourriez dire, par exemple, bonjour Ensuite, vous pouvez dire le nom du joueur. Parce que ça dit peut-être bonjour John, ou quelque chose comme ça. Je ne sais pas Quel que soit le nom de votre joueur , il indique bonjour. Et votre nom de joueur, comment allez-vous à cette heure de la journée, par exemple, par exemple, Bonjour, par exemple, John, comment allez-vous pour ce soir ? Peut-être que vous avez un système de jour et de nuit. Et dans le jeu, vous savez automatiquement si c'est le soir, le matin ou quelque chose comme ça, et vous pouvez l' intégrer à des variables. C'est ainsi que vous utilisez un texte formaté. Vous pouvez créer plusieurs variables, et il n'est pas nécessaire qu'il s'agisse d'entiers Il peut s'agir d'une ligne de texte, d'autre chose, d' une énumération, etc. Il est très, très utile d'utiliser ce format. OK, maintenant c'est terminé, et nous pouvons réellement l'utiliser pour intégrer ces variables. Compilons et sauvegardons tout, et passons au suivant. 143. Mettre à jour l'interface utilisateur des munitions: Il est maintenant temps de mettre à jour l'interface utilisateur en la quantité réelle que nous avons à l'intérieur des armes. Passons à la base de joueurs. Maintenant, à l'intérieur d'ici, créons un nouvel événement. Et regardons ici et créons un nouvel événement personnalisé. Appelez-le CL parce que nous travaillons avec UI et UI, du côté client. Appelons cela une mise à jour, MOU. Ce que nous devons faire, tout comme celui-ci, nous devons nous procurer le contrôleur et ainsi de suite. Maintenant, vous pouvez voir que nous essayons d'obtenir cette manette encore et encore. C'est plutôt agréable de le créer dans une variable, au lieu de le copier-coller tout le temps Passons au gameplay du joueur, où nous avons obtenu la manette. Faisons un clic droit et transformons ce contrôleur en variable et appelons-le contrôleur joueur. Je vais le déplacer un peu plus loin d'ici, puis je vais le placer ici. Chaque fois que ce contrôleur de joueur est valide, nous allons le définir comme variable. Oui, c'est bon. Et vous pouvez même double-cliquer ici pour rediriger les notes de cette manière OK, allez-y, compilez. Maintenant, ce que nous pouvons faire ici, c'est le supprimer, obtenir une manette, jouer à la manette, parce que nous l' avons déjà en tant que variable maintenant. Maintenant, c'est beaucoup plus facile à faire. Nous pouvons même nous en rapprocher, quelque chose comme ça. Maintenant tu peux vraiment faire la même chose ici. Nous pouvons prendre la manette. Exécutons ceci sur le client avant d'oublier de lancer le client propriétaire, Take Display Controller, get WB main Ensuite, vous pouvez appeler celle que nous avons appelée update MO Ui. OK, nous avons besoin de deux variables ici. Nous pouvons simplement les connecter à ce client. Dans le premier client. Permettez-moi de le déplacer un peu vers le bas, juste comme ça. OK, et maintenant nous avons celui-ci ici. Alors compilons et sauvegardons tout. Et celui-ci, nous devons l'appeler chaque fois que nous pillons l'arme. Alors laisse-moi monter ici. Chaque fois que nous pillons l'arme qui se trouve ici, récupérez une arme. Et si nous passons sur le côté, nous ne devons mettre à jour les balles que si nous ne sommes pas armés Parce que si j'ai un AK, il va parcourir ce code ici. Je veux la mettre à jour uniquement chaque fois que je pille l'arme pour la première fois. Parce que nous n'avons pas besoin de modifier la quantité de MO de l'autre arme. Cela va me retomber sur le dos parce que je ne l'ai pas équipé lorsque je ne suis pas armé Je veux mettre à jour mon MO ici. Nous devons à nouveau étendre le code. En fait, je vais m' éloigner un peu de ce code car nous continuons à étendre ce code. J'ai de l'espace pour travailler. Je peux emporter tout ça ici avec moi. Juste comme ça. Nous pouvons appeler update MY ce client celui que nous venons de créer. Ensuite, vous devez définir ici quel est votre MO actuel et supplémentaire. Nous avons déjà fabriqué cette arme à équipement variable. celui-ci, je vais juste cliquer dessus et masquer les épingles non connectées Cliquez dessus. Vous avez donc cette arme équipée, nous pouvons l'utiliser. L'arme équipée. N'oubliez pas que ce n'est pas une arme équipée, c'est l'arme équipée. Vous pouvez peut-être en changer le nom pour ne pas trop vous tromper en matière d'arme équipée. Et nous pouvons obtenir le MO actuel en mag. Nous pouvons également obtenir le MO supplémentaire actuel. Et on peut les brancher ici. Je peux en fait copier tout cela parce que nous pouvons copier-coller partout. Nous pouvons le copier-coller. Compilons, collons-le. Chaque fois que nous changeons d'arme. Chaque fois que je change d' arme dans la logique d'équipement des armes, encore une fois, nous mettons à jour l'interface utilisateur. Ensuite, je vais le déplacer, et je vais juste le coller ici. Collez-le selon cette logique. Et allons-y et connectons-le. Juste comme ça. OK, compilons tout maintenant. Essayons de voir ce qui se passe si nous cliquons sur jouer maintenant. Et maintenant, c'est le client qui joue. Je sélectionne Terroriste et je vais choisir quelque chose. Ensuite, vous pouvez voir que mon mode opératoire est en train de se mettre à jour. Maintenant, il indique 20.60. Si je prends le pistolet, il ne dit rien à moins que je ne passe au Ensuite, il met également à jour le MO. Si je laisse tomber ça maintenant, nous devons cacher la section MO parce que je n' ai aucune arme. Mais c'est ce que nous allons faire dans les prochaines leçons. Maintenant, nous pouvons voir ici que lorsque je récupère l'AK, il se mettra à jour correctement. Quand je changerai d'arme, elle sera également mise à jour correctement. OK, donc tout est correctement mis à jour. Et c'était tout pour cette leçon. C'est très simple. Et sauvegardons tout et passons à autre chose. 144. 10.15 Masquer l'interface utilisateur de la munition: OK, bon retour. Nous devons donc maintenant masquer le M UI chaque fois que nous n'en avons pas besoin. Permettez-moi d' ouvrir à nouveau l'interface utilisateur. Ouvrez le WB main et entrez dans le graphique ci-dessous, le mémorandum d' accord de mise à jour Je vais créer un autre événement personnalisé, et je vais appeler celui-ci un affichage comme ça. Pour celui-ci, ce que nous essayons de faire, encore une fois, demandez-vous ce que vous essayez de faire. J'essaie de cacher toute cette section. Chaque fois que je n'ai pas d'arme, je clique sur cette superposition Cela recouvre le tout ici. C'est le parent de tous ceux qui sont ici présents. Je vais renommer celui-ci en V M ou overlay. Permettez-moi de le définir en tant que variable afin que je puisse modifier cet encodage Permettez-moi de passer au graphique, prendre et de dire définir la visibilité. Je souhaite contrôler la visibilité de cette interface utilisateur. Nous pouvons faire glisser le pointeur et dire «  sélectionner » selon que nous voulons afficher ou masquer l'interface utilisateur. J'ai besoin d'un taureau ici. J'ai besoin d'un lingot appelé display. Si nous voulons afficher ou masquer l'interface utilisateur, nous pouvons continuer et la connecter à ici. Ce harcèlement est faux, ce qui signifie que nous ne voulons pas afficher l'interface utilisateur. Je veux le cacher. Chaque fois que cela est vrai ici, je souhaite afficher l'interface utilisateur. Je vais le configurer pour qu'il ne soit pas testable. Encore une fois, cela signifie qu'il est visible, mais que le curseur de votre souris ne peut pas interagir avec cette interface utilisateur ici. Et nous n'avons pas vraiment besoin d'interagir avec elle de toute façon. Compilons. Et maintenant c'est terminé. Maintenant, ce que nous pouvons faire, c'est revenir au joueur. Et au lieu de la base de joueurs, comme avant, cliquez avec le bouton droit de pour créer un nouvel affichage personnalisé, tout cela à nouveau. Prenons ce copier-coller et cherchons Display MI. Connectons-le. N'oubliez pas de l'exécuter sur le client propriétaire et de l'exécuter de manière fiable également. Permettez-moi de cliquer et de faire glisser cette variable ici. OK, c'était ça. Compilons maintenant. Laissez-nous choisir quand nous voulons afficher et masquer l'interface utilisateur. Je veux afficher mon interface utilisateur chaque fois que j'équipe l'arme ou que je la pille ici Afficher le mémorandum d'accord. Si je passe à mon arme préférée et que je vais juste ici et que je veux l' afficher juste après avoir mis à jour mon mode opératoire. Je ne veux pas l'afficher avant mettre à jour mon MO, sinon il aura l'air bogué Je souhaite mettre à jour le MO avant d'afficher l'interface utilisateur. Encore une fois, permettez-moi de faire disparaître tout cela. Encore une fois, comme ça, nous n'arrêtons pas de faire traîner les choses. Nous avons beaucoup de choses à faire ici, nous pouvons écrire un affichage CL ici et le connecter. Encore une fois, je vais l'éloigner un peu comme ça. Quelque chose comme ça. C'est toujours agréable de le dire, organisé. OK, alors affichons l'interface utilisateur ici. Encore une fois, chaque fois que nous ne sommes pas armés, parce que maintenant nous avons une arme Je souhaite afficher mon interface utilisateur. N'oubliez pas de cocher cette case ici. Compilons à nouveau. Nous en avons également besoin chaque fois que nous équipons l'arme. Si je vais chercher mon arme d'équipement, si je peux la trouver ici, équipez mon arme ici. Encore une fois, chaque fois que je mets à jour mon MO, je veux afficher mon interface utilisateur ou mon MO comme ça. OK, n'oubliez pas également de l'avoir coché ici également. Maintenant, nous devons masquer l' interface utilisateur chaque fois que nous déposons l'arme ici dans mon arme Drop Logic. Rappelons-nous que nous avons créé cette fonction précédemment, lâcher une arme. Allons-y. Masquons l'interface utilisateur juste avant celle-ci. Si je le fais glisser, je peux le coller. L'affichage MO UI va être, tombe ici, tombe sous le charme de l'affichage. Et nous pouvons masquer l'interface utilisateur chaque fois que nous lâchons l'arme. OK, compilons et sauvegardons tout. Testons-le et voyons s'il fonctionne réellement. Sélectionnons les terroristes. En fait, nous devons le masquer par défaut. Vous pouvez voir que c'est pour le moment et ce n'est pas ce que nous voulons. C'est donc le premier bogue. Passons à l'essentiel ici. Cliquons sur la superposition ici dans la visibilité. Réglons-le sur masqué par défaut et compilons. Et cliquons à nouveau sur jouer ici, dans le client, sélectionnez Terrace. le moment, nous ne pouvons pas le voir, mais lorsque nous prenons une arme, elle s'affiche avec le bon nombre de balles Si je le laisse tomber maintenant, il ne s'affichera plus. Je prends le pistolet, il va s' afficher , je prends l'AK Les puces ne seront pas mises à jour à moins que nous ne passions à l'AK Si je laisse tomber l'AK, il n'affichera rien. Vous pouvez voir maintenant que cela fonctionne correctement. Chaque fois que nous tiendrons une arme, nous la verrons chaque fois que nous changerons d'arme. Chaque fois que nous lâchons l'arme, nous cachons l'interface utilisateur, etc. Et essayons-le également sur le serveur, donc je ne sais pas si je joue également en tant que serveur. Donc, en cliquant ici, en jouant en tant que serveur, je jouerai en tant que deux numéros ou deux joueurs et sélectionnerons des terroristes. Nous allons également le tester ici sur le serveur. N'oubliez pas que vous devez le tester sur le client et sur le serveur pour savoir s' il fonctionne réellement sur les deux. Ici, j'ai aussi le client et vous pouvez sélectionner des terroristes. Et nous l'avons déjà testé sur le client. Tout fonctionne parfaitement. Ouais. Tout fonctionne, tout est beau, génial. Tout fonctionne. Nous n'avons ni argent, ni erreur, et c'est ainsi que nous procédons. Passons à la suivante. 145. 10.16 Comptabiliser des munitions: Alors maintenant, allons-y et calculons le MO, car pour le moment, chaque fois que nous tirons avec l'arme, donc si je la prends et que j'essaie de tirer, nous ne calculons pas vraiment le MO. Il en est toujours 20. Alors allons-y et faisons-le. Revenons à la base de joueurs pour calculer les balles N'oubliez pas que nous avons créé ce chronomètre ici. Si nous pouvons le trouver ici avec le tracé des lignes par canal et en diffusant l'effet visuel et l'effet sonore ici, nous voulons soustraire une balle à chaque fois que vous tirez Permettez-moi de déplacer ce tracé linéaire, car nous l'utiliserons plus tard lorsque nous appliquerons les dégâts aux joueurs. Mais pour l'instant, travaillons ici. Ce que je veux simplement faire, c'est prendre l'arme équipée que j'ai actuellement et mettre mon MO actuel dans mon chargeur. Ensuite, je veux juste en soustraire un, moins un. Ensuite, vous pouvez continuer et définir ce MO actuel en mag. MO actuel en mag. Et nous devons le configurer. Réglez le MO actuel en mag. Et si on en retire juste une, on soustrait une balle à chaque fois que l'on tire Maintenant, au lieu de simplement l' avoir comme ça, nous devons faire glisser le pointeur à partir de là et dire « clamper ». Ce que fait la pince, c'est qu'elle empêche notre valeur de descendre en dessous de zéro parce que nous ne voulons pas avoir moins une balle, moins deux balles, moins trois balles, etc. Nous fixons notre valeur minimale à zéro lorsque nous soustrayons ici. Nous empêchons d'atteindre moins une, moins deux balles, etc. Cela n'aurait aucun sens. Maintenant, le maximum pour celui-ci, nous pouvons simplement le prendre et dire que nous pouvons obtenir les puces actuelles , puis nous pouvons le définir ici Maintenant, celui-ci n'a plus d'importance. Nous pouvons même le régler sur 999. Ça n'a pas vraiment d'importance pour le moment. Mais je vais juste passer aux bonnes pratiques, aux bonnes pratiques de codage. Prenez les balles supplémentaires actuelles et fixez-les au maximum. OK, nous avons ce set maintenant. Permettez-moi également de créer des notes réécrites autour de celui-ci. Allons-y et connectons cette épingle d'exécution ici. Et connectons également la broche d'exécution ici. Ce que vous pouvez faire dans celui-ci, vous pouvez même cliquer avec le bouton droit de la souris et fonction ou le réduire en fonction. Appelons cette fonction tract MO de mag comme ceci. D'accord ? Maintenant, nous soustrayons et nous pouvons simplement le laisser là Désormais, au lieu d' avoir une seule puce, vous pouvez même le rendre dynamique à l'avenir. Si vous voulez tirer une balle et que vous voulez en soustraire deux au lieu d'une Vous pouvez même simplement le brancher ici et écrire MO pour le soustraire comme ça Laissez-moi simplement déplacer tout cela, ceci, et allez-y et compilez maintenant. Si nous revenons en arrière, vous pouvez voir que vous pouvez écrire nombre de balles que vous voulez soustraire pour mon jeu en ce moment, je veux juste en soustraire une. C'est très bien. Alors allons-y et prenons une note de séquence car nous allons recharger plus tard En fait, je vais déconnecter ce tracé linéaire et l' éloigner un peu ici. À partir de là, suivons et faisons la séquence. Et choisissez le nœud de séquence. Maintenant, avec la note de séquence, connectons les deux ici, à partir de la broche ici, à partir du zéro. Connectons-le ici. Ce qu'est une note de séquence, elle sert simplement à organiser votre code. Il ne fait rien d'autre que cela, il s'agit simplement d'organiser votre code. Nous allons d'abord faire l'effet ici et soustraire la puce Ensuite, nous allons tracer cette ligne. Je peux déplacer ce tracé linéaire ici. Je vais juste déplacer tout ça ici aussi, parce que ça a l'air un peu désordonné en ce moment Vous pouvez même les supprimer et les connecter directement ici. Et je vais le déplacer comme ça. D'accord ? Maintenant, ça a l'air beaucoup mieux. Et maintenant, nous pouvons le relier à ceci ici. Un nœud de séquence sert simplement à organiser votre code. Il va produire l' effet sonore et tout ça, soustraire la puce, puis nous allons créer le tracé de la ligne Ensuite, nous allons procéder au rechargement parce que nous devons vérifier si nous n'avons plus de balles Si c'est le cas, nous devons continuer et recharger. Allons-y et faisons-le dans la prochaine leçon. Ce ne sera pas très difficile, mais vous devez être éveillé pour cela. Pour l'instant, nous avons terminé, nous sommes en train de calculer les balles Nous pouvons même cliquer sur la plaque juste pour la tester pour bonnes raisons et voir si elle est sortie de la boîte. heure actuelle, nous devons mettre à jour l'interface utilisateur et faisons-le dans la fonction soustraire amo de mag Allons à l'intérieur d'ici et à l'intérieur d'ici. Partons de là et appelons la mise à jour CL MO I. C'est ce que nous avons créé plus tôt. Ensuite, nous pouvons prendre ce MO en mag, il y a juste celui-ci ici et l' autre, le MO supplémentaire. En fait, nous pouvons simplement prendre celui-ci et créer un nœud de reroutage ou simplement baisser ici et nous pouvons l'amener ici. OK, maintenant c'est fait. Compilons. Cliquons sur jouer. Testons en tant que client. Jouons maintenant. Je vais tirer avec mon arme. Cela fonctionne maintenant. Je vais aussi jouer en tant que serveur, en prenant l'arme et en tirant. Et ça marche. Le client et le serveur fonctionnent parfaitement. OK. Maintenant, c'est un calcul. Et passons à autre chose dans les prochaines leçons. Et tu peux voir, on peut tirer avec l'arme. Vous pouvez voir si je continue à tirer avec l'arme, je peux continuer à tirer chaque fois que je n'ai aucune balle Et cela s'explique par le fait que nous n'avons pas vraiment dit au moteur d' arrêter de tirer dès que nous sommes à zéro balle Et c'est ce que nous ferons dans les prochaines leçons. Mais nous devons d'abord calculer le MO et effectuer le rechargement Ensuite, nous pouvons ajouter toutes ces conditions. Mais pour l'instant, gardons-le tout. Tout fonctionne. Et passons à la suivante. 146. Animation d'arme de rechargement: Bonjour et bon retour. Nous sommes maintenant prêts à utiliser la fonctionnalité de rechargement. Maintenant, vous devez être très éveillé pour cette leçon, car elle sera peut-être longue également. Nous avons beaucoup de calculs à faire, vous devez donc vraiment faire attention ici. OK, faisons d'abord le rechargement. Allons-y et créons un événement personnalisé. Permettez-moi donc de cliquer avec le bouton droit de ici et de créer un nouvel événement personnalisé. Appelons ça une arme à rechargement de sets. Nous allons donc installer un taureau pour qu'il se recharge ou qu'il ne l'exécute pas réellement pour qu'il fonctionne sur le serveur. Fais-le, c'est tout. Ne pas exécuter sur le serveur, c'était une erreur, il suffit de configurer le rechargement de l'arme Événement normal, créons un serveur ici appelé set is reloading weapon Exécutons celui-ci sur le serveur, de manière fiable. Créons un nouveau bulling appelé rechargement, et allons-y, cliquez dessus Prenons ça et envoyons le taureau en train de recharger ici. N'oubliez pas de le configurer pour le répliquer car nous l'exécutons sur le serveur et le client doit savoir si nous le rechargeons ou non Ici, nous devons exécuter l' ensemble des événements du serveur pour recharger l'arme Allons-y et connectons cela ici également. OK, donc chaque fois que nous rechargeons, nous voulons jouer le montage pour le rechargement Permettez-moi de partir d' ici et de créer une branche. Et créons une branche ici. Et disons que si nous rechargeons , nous voulons jouer un montage Et n'oubliez pas le montage N dont nous avons besoin pour jouer en multidiffusion, car tous les clients besoin de voir ce changement visuel Le kit de multidiffusion permet de recharger l'arme. Maintenant, j'aimerais simplement l'appeler du même nom que les fonctions principales. Vous pouvez le nommer comme vous voulez et le faire passer par un multicast fiable ici Nous devons prendre le maillage, donc ce n'est pas les deux mais juste ce maillage ici. Et vous pouvez écrire un montage et vous pouvez le jouer comme avant. Ce montage à jouer, vous pouvez simplement le connecter ici. Appelons-le reload M. Jouons à cette multidiffusion ici. L'ensemble est en train de recharger l'arme. C'est la bonne. Ensuite, nous devons lui dire quel montage nous devons jouer. Maintenant, je ne pense pas que nous ayons d'animations. Parce que si nous allons juste ici, prenons l'un d'entre eux. Cette structure ici. Je le colle juste pour ne pas avoir à tout réécrire. Je peux prendre mon arme équipée et la brancher ici. OK, donc ici, dans la structure nous n'avons que l'animation de l'équipement. Nous n'avons pas d'animation de rechargement pour chaque arme, car chaque arme possède en réalité sa propre animation de rechargement Alors allons-y et ajoutons cela à la structure. Dans la structure, ouvrez-la et ajoutez l'animation de rechargement Laissez-nous le configurer, allez-y, recherchez-le et sélectionnez-le, comme ci-dessus Allons-y et sauvegardons tout. Je veux que vous ouvriez votre table de données. Parce qu'ici, dans le tableau de données, vous pouvez désormais écrire animation de rechargement Je peux copier toutes mes animations d'équipement ici. Parce que, comme je l'ai déjà dit, je n'ai pas d'animation d'équipement séparée. Mais comme vous pouvez le constater pour votre propre jeu maintenant, vous pouvez avoir une animation d'équipement, une animation séparée, et vous pouvez avoir une animation de rechargement séparée Tout cela peut être très bien personnalisé. Vous pouvez maintenant sortir et cliquer sur Fichier et télécharger, Télécharger au format CSV, puis vous pouvez le minimiser ici, accéder au dossier des tables de données. Et ici, comme avant, je vais supprimer mon ancien et renommer le nouveau, puis le faire glisser ici pour le mettre à jour Maintenant, je peux retourner dans ma base de joueurs à l'intérieur de ce montage pour jouer. Maintenant, il dit zéro sans aucune raison. Il vous suffit de cliquer sur Fichier et actualiser tous les nœuds comme ceci. Maintenant, je peux avoir mon animation de rechargement ici et vous pouvez la brancher OK, maintenant nous avons réglé le problème et nous devons également définir que le rechargement est faux à un moment donné Définissons que ce rechargement est faux. Et pour ce faire, nous pouvons simplement appeler à nouveau sur le serveur. N'oubliez pas que lorsque vous êtes en multidiffusion, vous pouvez revenir au serveur ici Une fois le rechargement terminé, nous pouvons dire que le serveur est en train de recharger Nous retournons sur le serveur et nous définissons le rechargement sur faux Nous pouvons réellement aller de l'avant, l' essayer et passer à la compilation. Et c'est tout pour celui-ci maintenant, nous ne pouvons pas vraiment le tester pour le moment car nous n' avons aucune fonctionnalité de rechargement Mais c'est ce que nous allons faire et nous allons calculer le rechargement et ainsi de suite ici Mais pour l'instant, l'animation de rechargement terminée. Passons à la compilation, sauvegardons le tout, et passons à la suivante 147. Fonctionnalité de rechargement de l'arme: Très bien, nous sommes maintenant prêts à calculer le nombre de balles lors du rechargement Et avant cela, ajoutons simplement que cet ensemble est en train de se recharger ici dans le code Avant de continuer, souvenez-vous que nous avons créé cette séquence. Donc, comme vous pouvez le voir ici, et nous tirons des balles, nous soustrayons une balle à chaque fois Cependant, à la fin, nous devons vérifier si nous avons d'autres balles Si ce n'est pas le cas, nous devons continuer et recharger. Ce que nous devons faire, c'est prendre cette arme équipée, et nous souvenir que j'ai ce mode opératoire actuel en moi. Nous pouvons nous demander si cela est égal à zéro. Si c'est égal à zéro, permettez-moi de créer une branche ici. Si c'est égal à zéro, prenons-le et connectons-le ici. Si ce chiffre est égal à zéro, disons que set est reload C'est vrai, Set is reloading, nous voulons le recharger chaque fois que nous n'avons plus Compilons. Cliquons sur jouer. Et voyons si cela fonctionne réellement. Je vais y aller et je vais tirer avec toutes mes armes. Je dois faire attention car je ne veux pas photographier en dessous parce que je n'ai pas créé les conditions pour cela. Si je tire à zéro, vous pouvez voir qu'il avance et se recharge, et c'est correct OK, donc l'animation est en train de jouer. Nous devons calculer le nombre de balles chaque fois que nous rechargeons Alors allons-y et faisons-le. Permettez-moi de supprimer cette multidiffusion car nous avons besoin du code ici Maintenant, vous devez être vraiment éveillé, car il y a beaucoup de calculs à faire lorsque nous calculons les balles OK, d'abord, ce que nous devons faire, c'est prendre l'arme équipée, nous devons découvrir les balles supplémentaires dont nous disposons Parce que si nous n' avons pas de balles supplémentaires, cela n'a pas vraiment de sens de les recharger Maintenant, la première chose que je voudrais demander est suivante : est-ce que le MO supplémentaire que nous avons dans cette arme est supérieur ou égal à ? Maintenant, laissez-moi le coller ici. Est-il supérieur ou égal au MO maximum du mag ? Maintenant, si nous posons des questions à ce sujet , c'est parce que disons que c'est l'AK, et que l'AK en a 30 ici dans le maximum M du mag si nous en avons plus que cela comme MO supplémentaire. Maintenant, allons-y et créons une branche. Et permettez-moi de relier cela ici. Si c'est vrai, nous pouvons simplement prendre cette arme équipée et obtenir le MO et le mag actuels. Et définissez ce MO actuel, et nous pouvons simplement le régler sur ce qui se trouve ici, sous forme de M dans le, si cela a du sens. Parce qu' ici, nous avons découvert que notre MO supplémentaire est supérieur ou égal à ce que nous pouvons avoir à l'intérieur du chargeur. Cela signifie que le magazine peut être plein. Nous sommes juste en train de remplir le magazine en entier, juste comme ça. Mais avant cela, je dois également calculer ce qu'il nous reste dans notre mode opératoire actuel, car nous devons le soustraire d'ici Prenons ce MO supplémentaire et disons moins. Que devons-nous soustraire d'ici ? Nous devons soustraire le montant que nous avons actuellement dans notre magazine Si je recherche simplement le MO actuel en mag cette année, nous devons soustraire le MO maximum en mag du M max actuel Donnons-nous simplement un exemple pour que cela ne soit pas trop confus. Cela peut sembler très déroutant. Par exemple, disons que mon maximum de MO en ce moment dans l'AK est de 30. Pour l'instant, je soustrais. Disons qu'il me reste 27 Mo. Dans mon magazine actuel, je n'ai tiré que trois balles. Maintenant, j'en ai 27 ici. 30, soit le maximum de -27, soit 33. Je vais en soustraire trois à mon MO supplémentaire si j'en avais 90, maintenant j'en ai 87 parce que je n'ai tiré que trois balles Maintenant, les calculs ont du sens pour celui-ci. Maintenant cette valeur, je dois définir mon M supplémentaire actuel ici. Au lieu de copier-coller ceci. En fait, je vais juste dessiner à partir d'ici et dire « M » supplémentaire. Nous pouvons lui attribuer cette valeur. Allons-y et faisons-le. Et allons-y et connectons cela également. Je vais prendre quelques notes de redirection et vous expliquer cela à nouveau, juste pour assurer que nous sommes sur la même longueur d'onde C'est bon. Maintenant, j'ai créé des notes rétrospectives et je les ai organisées. En fait, nous devons l'étendre un peu parce que je peux voir que nous gagnerons de l'argent plus tard, car nous nous demandons si le MO supplémentaire actuel est supérieur ou égal au MO. Et si c'est le cas, nous le réglons, nous réglons le MO actuel au maximum parce que nous en avons les moyens, parce que nous avons assez de balles Cependant, lorsqu'il nous reste cinq balles, disons qu'il nous reste cinq balles Donc, si j'ouvre simplement l'interface utilisateur pour que nous puissions mieux comprendre. Disons qu'il me reste cinq balles. Il me reste environ dix balles. Il ne va pas le régler sur 15, ce sera en fait une erreur ici. Ce que nous devons faire, c'est demander est le MO supplémentaire dont nous disposons actuellement, nous devons l'ajouter ici en plus du courant. Nous devons les ajouter tous les deux. Nous obtenons le M actuel plus ceux-ci ensemble. Si ceux-ci sont supérieurs ou égaux au maximum M en max, maintenant c'est correct et nous ne gagnons pas d'argent avec celui-ci. Je sais que vous devrez peut-être comprendre cela, comme vous pourriez avoir besoin de simplement publier cette vidéo et d' essayer de comprendre la logique qui sous-tend cela. Ce ne sont que de purs calculs. Vous pouvez même l'écrire sur du papier. C'est beaucoup mieux. Parfois, lorsque je crée une telle logique, je l'écris sur du papier, c'est devant moi, c'est beaucoup plus facile à comprendre. En gros, nous nous demandons simplement le MO supplémentaire que vous avez actuellement et le MO actuel sont en mag, sont-ils supérieurs ou égaux au nombre maximum de MO ? Si tel est le cas, ce serait faux car le total ne serait que 15 et le maximum sur Mac serait de 30. Ce serait donc faux. Et nous ferions quelque chose comme ça ici. Très bien, alors maintenant c'est correct. Souvenons-nous également que lorsque nous soustrayons ici et que nous réglons à nouveau le MO supplémentaire actuel, prenons une pince et veillons à ce qu'il ne descende pas en dessous de zéro Et connectons-le ici. Le maximum est juste ce MO supplémentaire. En fait, nous pouvons simplement prendre celui-ci ou vous pouvez simplement le copier-coller juste pour qu'il soit beaucoup plus beau et plus lisible comme celui-ci ici. Maintenant, quand c'est faux, et je vais juste déplacer ce passage, pour que ça ait l'air beaucoup mieux. Maintenant, quand c'est faux, ce que nous devons faire, c'est prendre cette arme obtenir le MO actuel dans Meg, et définir cette valeur. Ce que nous devons régler, c' est dire que c'était le cas comme cette année. Il nous reste cinq balles ici, il nous en reste dix ici. Il faut dire cinq plus dix, soit 15. Et nous devons régler cela sur le nombre actuel de balles. Nous devons simplement en parler ici. Nous devons indiquer les MO supplémentaires dont nous disposons actuellement, qui est de dix par exemple, plus les cinq qui sont de 15. Et nous devons le déposer ici. Et c'est fait chaque fois qu'il ne nous reste plus de balles Le M supplémentaire plus le MO actuel dans le mag, ils ne sont même pas supérieurs au MO maximum dans le mag. Ensuite, il suffit de prendre toutes les balles, les assembler et de les placer dans notre chargeur actuel. Quelque chose comme ça ici. OK, maintenant c'est réglé. Nous devons également nous assurer que le nombre supplémentaire de balles doit être réglé à zéro Maintenant que nous avons mis toutes les balles dans le chargeur, nous devons prendre ceci, nous devons en dire plus. Nous devons dire de régler le MO supplémentaire actuel à zéro. Maintenant, nous devons également penser à mettre à jour l'interface utilisateur. Permettez-moi de tout enregistrer et disons la mise à jour CL I. Connectons celle-ci ici, et connectons celle-ci ici. Nous devons mettre à jour l' interface utilisateur après ces événements. Permettez-moi de double-cliquer sur celui-ci. Fais en sorte que ça ressemble beaucoup plus à ça ici. Nous pouvons maintenant prendre, non, je vais juste le recopier ici. Maintenant que nous pouvons les brancher, branchons-les différemment ici. Tout d'abord, le MO actuel, en MO et en MO supplémentaire. Faites juste attention à ce que vous branchez ici. Compilons maintenant et sauvegardons, et maintenant essayons-le. Si j'ai écrit la logique ici à The Falls, c'est parce que j' attends la fin de cette animation avant permettre au joueur de régler correctement le nombre de balles Parce qu'en fait, je ne veux pas donner de balles au joueur pendant l'animation Je veux attendre la fin de l' animation. Quand il tombera, il jouera ce code ici. OK, vous pouvez donc voir que vous devez être un peu éveillé pour comprendre ce code ici. Encore une fois, n'hésitez pas à faire une pause, à y jeter un coup d'œil, prendre un papier et un stylo et à noter les valeurs. Essayez de faire le calcul et voyez si cela vous convient. Allons-y et cliquons sur Play. Incarnez un terroriste. Et laissez-moi prendre le M quatre par exemple. Permettez-moi de maximiser la fenêtre d'affichage. Maintenant, si je tire toutes mes balles, je peux toujours tirer Vous pouvez voir que ça bouge toujours. Je peux tirer chaque fois que je tiens ma souris. Nous n'avons pas encore réglé cette condition . Nous allons le faire plus tard. Mais si je lâche ma souris maintenant, vais la recharger et elle calculera correctement le nombre de balles si je continue comme ça Et il va se recharger à nouveau. Je vais faire le dernier ici. Je vais recharger à nouveau, et voici à quoi ça ressemble Vous pouvez voir les bugs ici à la fin. C'est parce que nous n'avons pas vraiment posé de conditions ici. Si je reviens ici et que je me permets prendre le code que nous avons écrit avec la séquence. Si je trouve juste la séquence ici, c'est la séquence que nous tournons. Ensuite, nous demandons ici si le Mo actuel en mag est égal à zéro. C'est la seule condition que nous demandons. Nous devons ajouter quelques conditions que cela ne se produise pas comme ça. Mais pour l'instant, sauvegardez tout, maintenant c'est correct, voici à quoi ressemble le code. Encore une fois, n'hésitez pas à y jeter un œil à nouveau, je sais que c'est confus. C'est le calcul le plus difficile que nous ayons fait jusqu'à présent pour le jeu, mais il ne l'est pas vraiment une fois écrit. Alors, sauvegardons tout et passons à la suivante. 148. 10.19 Situation de prise de vue: Très bien, bon retour. Maintenant, réglons les conditions de prise afin de ne pas tirer au hasard lorsque nous rechargeons et autres choses de ce genre Commençons donc par l'arme de tir. Je ne veux pas tirer avec mon arme chaque fois que je la recharge. heure actuelle, nous ne pouvons pas tirer avec l'arme lorsque nous ne sommes armés ou lorsque nous sommes encore en train de l'équiper De plus, je ne veux pas tirer mon arme chaque fois que je la recharge Chaque fois que le rechargement ici est faux. Donc, sans recharger, nous pouvons ajouter une épingle et l'ajouter ici Allez-y, compilez, d'accord, pour que cela soit réglé. Passons maintenant à cette partie de la séquence ici. Je ne veux pas tirer quand je n'ai aucune balle. Je dois l'écrire ici avant jouer l'effet et ainsi de suite. Je dois dire que si je n'ai aucune balle, ne m'intéresse pas de jouer à tout ça En fait, c'est exactement le même que celui-ci. En fait, je vais en faire une fonction puisque nous la réutilisons, réduire à une fonction et je vais appeler celle-ci is out of MO, la rendre pure parce que nous ne faisons que recevoir des informations Nous ne réglons rien lorsque le M Mac actuel est nul, cela signifie que nous n'avons plus de balles Si c'est pour le rechargement, si vous n'avez plus de MO, vous pouvez continuer et recharger C'est logique. Maintenant, pour celui-ci ici, collons-le. Écrivons n lingot et sélectionnons-le. Quand nous ne sommes pas à court de MO, nous voulons aller de l'avant et tirer. Si nous n'avons plus de MO, nous ne voulons pas également tirer pour le rechargement Prenons le rechargement et disons que si ce pas le cas, nous voulons aller de l'avant et tirer Si nous sommes en train de recharger, nous ne voulons pas aller de l'avant et tirer. C'est ce qui est dit en ce moment. Laisse-moi juste aller de l'avant et déplacer tout ça. Je pense que nous allons bientôt nettoyer l'ensemble du projet, car il redevient compliqué parce que nous écrivons beaucoup de code en ce moment Mais comme vous pouvez le voir ici, si nous ne sommes pas à court de MO et si nous ne rechargeons pas, nous pouvons alors tirer sur les armes ici Lorsque nous rechargeons l'arme, je ne veux pas la recharger deux fois en fait, puisqu'il s'agit d'une séquence, elle en tient simplement compte Et quand il arrive ici, il n'en tient pas compte. En fait, vous devez également l'ajouter ici. Lorsque vous ne rechargez pas, vous devez le recharger ici Nous ne voulons pas recharger encore et encore alors que nous sommes déjà en train de le recharger Et il y a aussi une autre condition maintenant lorsque je tire avec mon arme. Je veux également m' assurer que j' ai réellement des MO supplémentaires lorsque je recharge Parce que vous pouvez imaginer ici, par exemple, disons que j'ai 15 balles et que je n'en ai aucune comme balle supplémentaire En fait, si je recharge, si je les armes ou si je tire sur le MO et qu'il revient à zéro, il va vraiment se recharger Je dois ici demander si j'ai un MO supplémentaire. Pour recommencer, prenons l'arme rapide et disons « obtenez le MO supplémentaire actuel ». Si ce n'est pas égal à zéro, ce n'est pas égal à zéro, alors nous voulons aller de l'avant et faire tout cela. Permettez-moi de le connecter ici et de le connecter. Nous nous assurons simplement d'avoir réellement des MO supplémentaires. Avant de recharger, permettez-moi ce collapsus en fonction et de l'appeler à nouveau en tant que MO supplémentaire, pour le rendre pur Allez-y, mettons-le ici. Et emmenez-le ici aussi. Très bien, allons-y et compilons. Je crois que c'était ça. Il suffit de cliquer sur jouer. Et peut-être qu'il nous manque quelque chose. Nous devons essayer le jeu en cliquant sur jouer. Maintenant, je vais piller mes quatre et tirer avec mon arme Comme vous pouvez le voir ici, si je tiens juste ma souris, elle ne tirera plus, elle arrêtera de tirer. Alors je tiens ma souris. Il va arrêter de filmer automatiquement. Je continue juste à tirer ici, sans aucune balle. C'est également ce qu'il fait en ce moment. Pour une raison ou une autre, il ne calcule pas correctement. Quand je tire avec mon arme avec moins de 20 balles, elle est en train de s'éteindre. Je pense qu'il l'a fait également dans la leçon précédente. Permettez-moi de jeter un œil à ce qui ne va pas ici. Il doit y avoir quelque chose là-haut quand on soustrait la balle Parce que chaque fois que nous tournons, c'est ce qu'il fait. Il n'est pas là parce que nous sommes en train de le traverser et de tirer avec l'arme. Je pense que c'est quelque chose qui se trouve à l'intérieur d'ici. Nous prenons le MO dans le moins un, parce que nous en avons écrit un ici qui est défini ici. Et réglez sur le MO actuel dans son réglage sur la bonne variable ici. Celui-ci n'est pas le bon. Nous fixons le maximum au nombre de MO supplémentaires actuel. Si votre MO supplémentaire actuel est un, celui-ci sera en fait défini automatiquement sur un. Il y a là une erreur. Ce que nous devons faire, c'est ça, oui, prenons ça ici, disons name variable. Mettons-le ici. Trouvons des informations sur les armes. Obtenez les informations sur les armes comme avant. Décomposez-le et voici le mode opératoire actuel. Et prenons le Max MO et le mag et plaçons-les ici à la place. N'utilisons pas celui-ci, utilisons simplement celui-ci là-bas à la place. Permettez-moi de cliquer ici et de masquer les épingles non connectées. Et cela devrait parfaitement fonctionner. Maintenant, le bogue devrait être corrigé. Je crois que cela s'est également produit dans la leçon précédente. Donc, en cliquant sur Play, faisons-le maintenant. Je vais juste tirer sur toutes les balles. Et je vous montre que je suis en train de tirer les dernières balles, de les recharger et je Vous pouvez voir que c'est maintenant correct. Je ne peux plus tirer quand je suis à zéro balle et que tout fonctionne parfaitement Maintenant, je dois également vérifier cela pour le client. N'oubliez pas que vous devez vérifier le client, même s'il fonctionne sur le serveur, il se peut qu'il soit erroné. Quand je laisse tomber cette arme maintenant et que je la récupère, vous pouvez voir qu'elle contient le bon nombre de balles Quand il me restera dix balles, neuf, je pourrai les lâcher Je peux aller le chercher. Il contient le bon nombre de balles Si quelqu'un d' autre veut le piller maintenant, je dois également le tester avec le serveur Si je fais simplement apparaître le serveur ici, et que je les réduis tous les deux ici en tant que serveur, je peux lâcher l'arme au fur et à mesure que le client s'en va. Ici, en tant que serveur, je vais le récupérer. Et si je le maximise, c' est en fait le bon nombre de balles Si je tire en tant que serveur, il ne reste plus que quatre balles Ici, en tant que client, je peux aller le chercher et il ne me reste que quatre balles. OK. C'est exact. Tout semble fonctionner parfaitement. Et il le fait également pour l'AK. Essayons également de tirer quelques balles ici. Tout fonctionne bien. OK, nous avons réparé toute la boîte. À l'heure actuelle, tout fonctionne correctement. Faisons le rechargement avec la touche du clavier dans la leçon suivante 149. 10.20 Recharger l'arme avec la touche du clavier: Très bien, alors allons-y et rechargeons avec le clavier Allons-y comme avant, passons au lecteur et à la saisie. Et cliquez ici avec le bouton droit de la souris, passez à la saisie, effectuez une nouvelle action de saisie. Appelons ça une arme à rechargement. Et ouvrons celui-ci, en fait juste le contexte de mappage. Ajoutons un nouveau mappage. Allez en bas, sélectionnez celle qui permet de recharger l'arme, puis appuyez sur la touche R. Je vais le recharger avec la touche R du clavier, puis appuyer ici, on ne joue à ce jeu qu'une seule fois et il sera beaucoup plus optimisé OK, ici, avec le set, vous rechargez votre arme. Je vais juste le faire ci-dessus. Je recharge l'arme et je vais avoir cette action de saisie simplement lorsque nous appuyons sur la touche R, nous voulons juste dire que set is reloading est vrai Nous voulons juste recharger chaque fois que nous appuyons sur le bouton. Cependant, n'oubliez pas que vous avez besoin de certaines conditions car vous ne voulez pas simplement recharger Parce que pour le moment, si je joue, je peux simplement appuyer sur le R. Pour l'instant, par exemple, prenons ceci. Je peux juste appuyer sur R, même si j'ai des balles pleines. Je peux appuyer sur un R. Cela n'a aucun sens. Je peux réellement appuyer sur une touche rouge. Chaque fois que nous n'avons aucune arme équipée, je peux également appuyer sur R et cela nous donnera Bucky. Nous ne voulons pas le faire. abord, nous devons prendre ce type d'arme équipée et nous assurer qu' il n'est pas équivalent à une arme. Faisons glisser le pointeur d'ici et disons « pas égal à M nous assurer que ce n'est pas égal à D. D'accord, donc c'est la première chose à faire. Partons d'ici et disons lingot, car nous devons en ajouter deux. Ensuite, si nous sommes déjà en train de recharger, nous ne voulons pas appuyer sur Recharger, alors trouvons notre lingot en cours de rechargement et disons N bully Si nous ne rechargeons pas, nous pouvons procéder au rechargement ici. OK, alors ajoutons à nouveau une nouvelle épingle. La dernière chose que je veux demander , c'est si j'ai les balles pleines Par exemple, disons que j' en ai 30 sur 90, par exemple ici, comme l'AK, je ne veux pas le recharger parce que mon Mac est plein de puces Disons simplement : prenons cette arme équipée et obtenons le M actuel . Il suffit de copier-coller la structure. Je ne veux pas le réécrire. Collons cette structure ici pour l'arme. Laissez-moi simplement y connecter l'arme équipée. Nous allons maintenant nous demander si ce MO actuel est en mag, est-il égal au MO en Ma ? Parce que s'ils sont égaux, cela signifie que nous avons plein de MO dans notre Mac et que nous n'avons pas vraiment besoin de le recharger Je dis que c'est égal. Si le MO actuel n' est pas égal au MO maximum et à moi, alors nous pouvons procéder au rechargement Sinon, nous ne rechargerons pas. OK, laissez-moi juste le placer derrière tout ça comme ça et laissez-nous le connecter à une succursale et connectons-les ensemble. Maintenant, nous demandons, nous disons que si ce n'est pas le cas, si nous ne rechargeons pas et si nous n'avons pas déjà le nombre total de balles dans le mode opératoire actuel et moi, nous pouvons procéder au Essayons de le faire. Compilons, enregistrons tout et cliquons sur Plate. Si je clique sur R sur mon clavier, nous pouvons voir que je reçois une erreur. Permettez-moi de jeter un coup d'œil à ce qui se passe ici moment. C'est juste dire que c'est cette époque. Si j'écris du spam R ici et que je démissionne, cela me montrera à quelle époque l'arme équipée n' est plus valide. En fait, je dois d'abord l'avoir valide, laissez-moi simplement faire glisser le tout. Permettez-moi de prendre l'arme équipée, cliquer avec le bouton droit de la souris, de la convertir en arme validée. Laisse-moi connecter ça. Nous nous assurons que l'arme est valide avant de faire tout cela, car si nous n'avons rien pillé auparavant, si nous appuyons sur R, elle ne sera pas valide Maintenant, nous n'avons plus ce bogue. Passons maintenant à l'une des armes. Si j'appuie sur R, je vais maintenant recharger car j'ai un MO complet Mais si j'en tire un et que je le recharge, je peux continuer et le recharger comme ça Et il va calculer correctement le MO. Maintenant, vous pouvez voir qu'il devrait indiquer 39, c'est exact. Et si j'en tire quatre et que je les recharge, devrais dire 35 comme MO supplémentaire, correct Maintenant, chaque fois que je tire toutes mes balles, disons si le calcul est correct. Maintenant, je vais juste en photographier trois et les recharger. Il faudrait dire 12, c'est exact. Maintenant, disons que je recharge ici chaque fois que j'en ai cinq, disons simplement 170 C'est également exact. Maintenant, si je les photographie tous, ils ne se rechargeront pas Et si je clique sur R, maintenant il va se recharger Il y a cette dernière condition que nous devons vérifier. Nous devons vérifier s'il nous reste encore du temps. Cela a également un espace supplémentaire avant de pouvoir le recharger. Maintenant, toutes les boîtes sont réparées. Maintenant, nous ne pouvons pas non plus recharger lorsqu' il n'y a aucune balle dans les chargeurs supplémentaires. Je vais déplacer cette partie vers le bas. Je réorganiserai cela un peu plus tard lorsque nous aurons terminé avec la section Alors, sauvegardons tout et passons à la suivante. 150. 10.21 Recharger une arme sur le changement d'arme: OK, donc pour le moment nous voulons également recharger, chaque fois que nous changeons d'arme Maintenant, vous pouvez voir ici si je n'ai aucune balle et que je change d'arme, laissez-moi prendre rapidement un pistolet et le changer Maintenant, vous pouvez voir si je reviens en arrière, c'est l'animation du micro. Ce n'est pas le rechargement pour le moment. J'essaie de tirer mais je ne peux pas tirer. J'essaie de recharger mais je n'arrive pas à recharger. Cela est dû au fait qu'ici, lorsque nous rechargeons l'arme, nous configurons le rechargement pour qu' il soit vrai chaque fois que nous la rechargeons Cependant, si nous annulons l'animation, nous diffusons le montage d'animation. Cependant, nous ne sommes pas en train de le terminer. Ce paramètre ne sera jamais défini sur false. C'est pourquoi il est en train de se bloquer d' une manière ou d'une autre. Lorsque nous changeons d'arme, nous devons la régler sur false et la recharger automatiquement Nous pouvons réellement le faire avec l'arme équipée. Chaque fois que nous pillons une arme, nous définissons cet ensemble comme véritable arme d' équipement Nous le faisons également chaque fois que nous l'avons équipé manuellement. ne nous contentons pas de le ramasser, nous configurons également que cet ensemble est une arme équipée. N'oubliez pas que nous avons fait celui-ci ici. Permettez-moi de cliquer ici, Masquer les épingles non connectées. C'est ce que nous faisons ici. Chaque fois que nous installons l'arme équipée et que nous finissons de l' équiper Allons-y et faisons ce rechargement automatique chaque fois que nous en avons plus Supposons simplement que le rechargement soit faux, car nous devons le définir sur false chaque fois que le joueur change réellement arme pendant l'animation de rechargement Chaque fois que nous aurons fini d'équiper l'arme, nous réglerons automatiquement le rechargement Nous allons également recharger l'arme. Le set est en train de se recharger. Chaque fois que nous n' avons plus de MO, nous devons vérifier si le joueur n'a plus de MO et s'il a des MO supplémentaires ? Parce que si vous n' avez pas de MO supplémentaire, cela n'a aucun sens de le recharger Nous avons besoin de ces deux-là et nous devons également créer une succursale. Après cela, nous pouvons continuer et recharger. Avant cela, nous ne pouvons pas recharger, nous devons définir le rechargement pour qu'il soit vrai Si ce n'est pas le cas, nous n' allons pas recharger ou faire quoi que ce soit, assurerons simplement que le rechargement est réglé sur une baisse Parce que lorsque vous l'interrompez ici pendant le rechargement, lorsque vous interrompez le montage, vous ne le réglez jamais Falls et votre code va s'éteindre Maintenant que c'est réglé, essayons-le. Essayons de jouer ici en tant que terroristes. Je vais prendre les quatre et je vais tirer si je change d' arme maintenant. Maintenant, souvenez-vous que la première animation qu' il va jouer est l'animation d'équipement. Ce n'est pas le rechargement, alors il faut le recharger comme ça. Maintenant, il se recharge automatiquement chaque fois qu' il ne me reste plus de balle lorsque je l'échange. OK, comme vous pouvez le voir, maintenant je recharge. Je change d'arme et je la change à nouveau. Maintenant, je peux appuyer sur R et il se recharge réellement. Ça ne dérange pas, comme avant. Essayons-le. Essayons encore une fois. Si c'est le cas, nous n'avons aucune balle et je change d'arme, elle ne devrait pas se recharger et elle ne se recharge pas Maintenant, tout fonctionne parfaitement. 151. 10.22 Ajouter des tirs au pistolet: Jusqu'à présent, nous avons travaillé avec le fusil et maintenant allons-y et tirons au pistolet C'est très simple car nous avons déjà effectué la configuration. Passons à la base de joueurs à l'intérieur d'ici. Ce que nous faisons en ce moment , dans le domaine de l'arme de tir, lorsque nous tirons avec l'arme, nous jouons simplement, le chronomètre fait tourner le code en boucle et nous tirons avec le fusil Maintenant, lorsque nous voulons tirer avec un pistolet , nous ne voulons pas utiliser ce chronomètre parce que nous ne voulons pas tout faire tourner en boucle Nous voulons juste tirer un coup de feu parce que c'est un pistolet. Bien entendu, si vous avez un pistolet automatique, vous pouvez simplement réutiliser ce système car il s'agit d'un pistolet automatique Cependant, ce n'est qu' un pistolet et je veux juste tirer une balle Je ne veux pas lancer ce chronomètre. Ce que nous pouvons faire ici, c'est que nous pouvons réellement, à partir de celui-ci, vous pouvez prendre le type d'arme ici. Nous avons déjà le type d'arme. Ce que vous pouvez faire, c'est faire glisser le pointeur à partir d'ici et dire « activer l'énumération Nous pouvons voir avec quel type d'arme nous tirons actuellement. Tu peux sortir et te connecter. Lorsque nous tirons avec un fusil, nous voulons jouer à ce chronomètre. Lorsque nous tirons avec un pistolet, nous ne voulons rien faire, car souvenez-vous que nous tirons déjà une balle Nous exécutons déjà tout ce code ici. Nous sommes déjà en train de gérer tout cela ici avec ce premier tir d'arme, parce que nous l'avons appelé ici. En fait, tu as terminé, je crois. Cliquons sur jouer. C'était donc très simple, il suffit de cliquer, essayons-le pour le client ici. Maintenant, je peux voir ici que je ne peux plus tirer. Je ne tire qu'une seule balle. Je crois que c'est le cas. Parce que nous sommes en train de régler cela, nous pouvons tirer à nouveau. Nous sommes en train de fermer celui-ci. Nous exécutons ce code une fois et chaque fois que nous tirons une balle, nous n'en faisons pas plus. C'est parce qu'ici, lorsque c'est faux, souvenez-vous que nous avons déjà réglé l'arme de tir sur False. Pourquoi recommence-t-il cette photo ? Essayez d'y répondre vous-même si vous le pouvez. Sans mon aide. Maintenant, je peux te donner la réponse. Le problème pour le moment, c'est que nous n'entrons jamais dans ce chronomètre. Celui-ci ne sera jamais valide. Ici. Nous demandons si c' est valide ? Ce sera faux car nous n' avons jamais utilisé ce chronomètre. Maintenant, en faisant tourner le pistolet jusqu'ici depuis les chutes, vous devez le connecter pour pouvoir tirer à nouveau. Et je vais prendre quelques notes de Mirarte et maintenant ça devrait fonctionner. Si je compile maintenant, que je clique sur Play, que je sélectionne à nouveau Terrorist et que je prends mon pistolet Maintenant, vous pouvez voir que je peux tirer avec mon pistolet sans aucun problème et que tout fonctionne comme prévu 152. 10.23 Arrêter de photographier des effets visuels sur le changement d'arme: Mais maintenant, nous avons un problème. Si je joue en tant que serveur, par exemple, jouons réellement en tant que client. Si je joue en tant que client, vous pouvez le voir, essayez me regarder ici sur le serveur. Vous pouvez voir ici, vous pouvez voir quand je tire et que je change d'arme. Si je tire et que je change d'arme, je peux tirer avec l' arme encore au sol. Et le flash de bouche se trouve à côté de ma jambe. Et tu vois, ça a l'air très bizarre. Cat tire sur mon arme et change-la. Ça ressemble à ça et c'est comme si j'étais sur écoute. En fait, nous devons arrêter de tirer chaque fois que nous changeons d'arme parce que nous ne voulons pas le faire. Allons-y et fermons-le. La première chose que je veux faire dans l' arme chaude en ce moment, c'est annuler l'arme chaude chaque fois que nous relâchons le bouton de la souris Cependant, je souhaite également l'annuler chaque fois que ce n'est pas vrai. Chaque fois que nous rechargeons ou équipons une nouvelle arme, ou que nous passons à l'état désarmé, j'ai vraiment envie d'arrêter de tirer Copions celui-ci. Collez-le. Connectons-le à celui-ci. Ici, permettez-moi de m'éloigner un peu de ce point. Et voilà. Nous annulons l'arme de tir chaque fois que l'une d' entre elles n'est pas vraie Nous pouvons même cliquer sur jouer pour voir à quoi elle ressemble Encore une fois, je vais jouer en tant que client, et je vais regarder ici sur mon grand écran pour voir à quoi cela ressemble. Donc, si je me contente de tirer et de changer, maintenant ça s'arrête. Cependant, vous pouvez voir qu'il y a toujours un flash muzzle qui joue Quand je change, tu peux le voir au sol. Il ne s'enregistre pas trop vite. Si je tire et que je change, vous pouvez voir que le jeu est toujours en train de jouer, qu'une bouche clignote sur le sol qui semble toujours boguée dans le Nous devons donc régler ce problème. OK, faisons-le ici. Si nous trouvons que la bouche clignote, je vais tout nettoyer après cette section Nous devons le nettoyer avant de continuer pour qu'il soit plus facile de travailler avec le flash initial, c' est ici que je joue également l'effet sonore Pour le flash initial, je vais écrire click et promouvoir cet émetteur que nous créons en variable et appelons-le émetteur muzzle je vais écrire click et promouvoir cet émetteur que nous créons emitter Laissez-nous le connecter ici Encore une fois, je vais juste jouer le son juste pour voir à quoi ressemble le son également. Laissez-nous compiler, d'accord, maintenant nous avons ce flash initial Nous devons maintenant arrêter ce flash initial à un moment donné. Nous devons en trouver un au début du code. Quand pouvons-nous annuler ce flash initial à l' intérieur du code pour le rendre fou ? Peut-être lorsque nous équiperons l'arme. Si je vais juste ici et que nous essayons de trouver une arme d'équipement ici, lorsque nous changeons d'arme ici, nous ne le faisons pas vraiment. Parce qu'ici, pour l'arme équipée, vous essayez de rechercher l'arme dans l'inventaire. Si vous ne l'avez pas dans l'inventaire, si c'est faux, vous ne faites en fait rien. Cela n'a pas vraiment de sens d'arrêter le flash initial si vous n'avez rien dans l'inventaire et que vous ne changez pas arme ici dans l'arme Quip Je pense que je le ferai ici chaque fois que je trouverai l' arme dans mon inventaire car maintenant mon personnage passe à une autre arme ici. Je veux prendre mon émetteur de flash initial cliquer avec le bouton droit de la souris et dire convertir en un get validé Alors je vais le connecter ici. S'il est valide, laissez-moi simplement éloigner un peu tout ce code pour que je puisse travailler ici. Chaque fois que c'est valide, je vais faire glisser et dire détruire des composants, détruire un composant, puis continuer. Cependant, s'il n'est pas valide, je veux simplement continuer. Je ne veux rien détruire. S'il n'est pas valide, allez-y et continuez ce que vous avez fait auparavant. Allons-y et jetons un coup d'œil à la chair du museau. Ce que je vais faire, c'est l'emporter ici. Avant cela, nous pouvons également dire ici que vous ne pouvez pas le faire chaque fois que vous équipez l'arme Chaque fois que vous l'équipez ici. Lorsque nous disons qu'équiper une arme c'est équiper une arme, nous devons également arrêter de tirer Si je prends juste cette arme, si je peux la trouver ici, celle-ci. Et je peux le prendre et le placer ici. Et encore une fois, c'est vrai, ne vous connectez pas et je peux le connecter. Si vous n' équipez pas également l'arme , vous pouvez tirer Je vais copier tout cela et le coller juste avant l'emplacement de l'émetteur En fait, avant de faire tout ça, je vais vérifier si vous pouvez toujours le faire. C'est bon. Ce que nous devons également faire ici, je crois. Montons ici avec l' arme trouvée dans l'inventaire. Parce que lorsque vous trouvez une arme dans l'inventaire, n'avez plus envie de jouer à The Muzzle Flash ici. Nous pouvons également vérifier avant de jouer sur l'émetteur et nous pouvons l'éviter Nous pouvons prendre cette arme trouvée dans l'inventaire et la mettre ici, l'obtenir ici. De plus, je l'ai configuré pour le répliquer. Il n'a pas été reproduit. Je l'ai configuré pour le répliquer parce que souvenez-vous que nous sommes maintenant sur le client, que nous sommes en multidiffusion, et que cela est également utilisé par le Vous devez répliquer la variable pour que le client sache de quoi nous parlons Permettez-moi d'écrire un lingot Chaque fois qu'il n'est pas trouvé dans l'inventaire, nous pouvons tirer sur cet émetteur ou le jouer, il se trouve dans l' Je pense que c'est une bouée de sauvetage pour nous, car il s' agit de jouer très tôt chaque fois que nous changeons Il s'agit de la première variable qui est modifiée. Il détecte cela très tôt et il ne veut pas émettre le flash initial J'espère que nous devons constamment tester, car nous ne savons pas vraiment avant de tester Jouons en tant que serveur dès maintenant, jouons en tant que client. En tant que client , laisse-moi jouer. Maintenant, je vais jeter à nouveau un œil ici sur mon serveur. Si je photographie en tant que client et que je change, j'ai essayé de le faire plusieurs fois, c'est tout. Nous effectuons de nombreuses vérifications. Cela est nécessaire pour ne pas jouer cet effet de bogue. Maintenant, cela n' affecte pas vraiment le jeu, mais cela l' affecte toujours visuellement. n'affecte pas les dégâts ou quoi que ce soit d'autre, car ce n'est pas joué. Cela est arrêté très tôt. En fait, nous n' endommageons pas le joueur. N'oubliez pas que nous infligeons des dégâts aux joueurs après la course en ligne. C'est juste un bug visuel dont nous nous sommes débarrassés. Très bien, allons-y et compilons tout. Sauvegardons tout et passons au suivant. 153. Animation de prise de vue 10.24: Nous avons maintenant besoin d'une animation de tournage car pour le moment, le joueur est statique. Chaque fois que nous tournons , ajoutons une animation. Passons aux actifs et aux animations. Et voici toutes les animations que nous avons créées auparavant. Si vous recherchez simplement des pousses je pense qu'en fait cela s'appelle le feu. Si vous recherchez simplement le feu, vous pouvez voir un pistolet à incendie et un fusil à feu Ce sont les animations que nous pouvons utiliser pour ajouter chaque fois que le joueur tire avec l'arme. Pour ces deux-là, je vais les prendre tous les deux. Je ne pense pas que nous ayons besoin du C, peut-être que nous en aurons besoin plus tard. Je ne suis pas sûr pour le moment. Mais utilisons-les pour le moment. Et revenons-y si nous en avons besoin. Cliquez ici avec le bouton droit de la souris, Créer et créez un montage d'animation comme avant. Pour les deux, nous avons maintenant créé deux montages d'animation Je vais les renommer, supprimer le montage depuis la fin Au début, je vais l'appeler comme préfixe juste pour rester cohérent avec notre code actuel pour le moment Laisse-le et appelle-le 11 autre également. Si je cherche juste pour que je puisse voir les montages d'animation. Je peux d'abord appuyer sur le pistolet. Il s'agit d'un rechargement. Je clique sur le coup de pistolet, c'est celui-ci ici Et ce que nous pouvons faire ici encore, changer la fente située sur le haut du corps, comme nous l'avons fait auparavant. Nom de la machine à sous, haut du corps comme ça. Et fermons-le. Et ouvrons également le fusil. Remplacez-le sur le haut du corps, comme ceci. OK, et sauvegardez tout maintenant. Fermons-le. OK, ce que nous devons faire maintenant, jouer à cette animation. Chaque fois que nous tirons avec l'arme, nous devons à nouveau l'ajouter à notre structure. Revenons aux plans. Je vais supprimer ce mot de recherche pour que nous puissions voir. Je vais aller dans les structures et ouvrir les informations sur les armes. Ce que nous pouvons faire ici, c'est ajouter une variable appelée shoot animation pour celui-ci. Vous pouvez désormais avoir une animation de tir différente pour chaque arme. C'est vraiment cool. Tout est personnalisé dans cette animation de tournage de jeu. Et je vais l'avoir juste après le rechargement ou juste avant le rechargement Équipez, tirez, rechargez. OK, allons-y et compilons ou sauvegardons simplement ici. Ouvrons notre tableau de données. Encore une fois, ici à l'intérieur de notre tableau de données. Encore une fois, passons à l'animation de l'équipement. Permettez-moi d'en ajouter une nouvelle à droite et de l'appeler «   one shoot animation ». Nous pouvons maintenant minimiser cela ici dans le jeu. Et retrouvons notre montage. Si j'en cherche un et que je prends ce fusil à feu, recopiez la référence. Et permettez-moi de revenir au tableau de données. Collez-le pour les quatre AK et M, ce sont les deux premiers. Ensuite, je reviens en arrière et je copie la référence du premier montage d'animation. Copiez la référence, je reviens ici et je la colle pour le tir au pistolet. OK, c'était ça. Allons-y, cliquons sur le fichier, téléchargeons le fichier CSV. Ouvrons-le ici. Je vais encore une fois le renommer comme avant. Renommez-le en T Weapon Info Et j'en ai déjà un ici, donc je vais le copier. Supprimez-le ici, et renommez celui-ci. Revenons maintenant à notre jeu. Passons aux plans, aux tableaux de données à l'intérieur d'ici Encore une fois, je vais fermer ceci ici. Vous pouvez faire glisser ce tableau de données ici. Et maintenant, il est mis à jour. OK, passons au code maintenant et encodons-le dans la base de joueurs à l'intérieur d'ici chaque fois que nous tirons. En fait, c'est aussi là si nous éliminons tout cela. Nous allons donc jouer l'animation en même flash initial et l'effet sonore car il ne s'agit toujours que d'une animation Et nous devons y jouer en multidiffusion car tous les joueurs doivent voir cette animation Reprenons le maillage. Encore une fois, disons montage. Et nous pouvons jouer ce montage, et allons-y et connectons le tout. Et maintenant, ce que nous pouvons également faire ici pour que le montage fonctionne. Nous l'avons maintenant dans le tableau de données. Laisse-moi juste copier tout ça. Collez-le ici, et laissez-moi juste cacher épingles non connectées à l'arme Maintenant, nous n'avons pas vraiment de référence pour l'arme. Ce n'est pas la classe d'arme, c'est en fait juste le maillage de l'arme. Vous pouvez le voir ici. Si vous vous souvenez, si nous revenons à l'arme chaude, nous examinons ici le parachute du serveur, l'arme. Voici le maillage des armes. C'est le maillage squelettique. N'oubliez pas qu'il ne s'agit pas de la classe Blueprint elle-même. Il s'agit de la classe Blueprint. C'est le maillage squelettique. Et le maillage squelettique est celui que nous branchons sur l'arme ici Il s'agit en fait du maillage squelettique. Ce n'est pas la classe Blueprint elle-même. Nous avons besoin de la clause du plan directeur parce que ce n'est pas vraiment le maillage squelettique que nous avons mis en place ici. C'est celui-ci. Vous pouvez donc voir si je fais glisser le pointeur de haut en haut et que je le branche ici, vous pouvez voir que tout va bien. Ce que nous devons faire ici pour mieux l'optimiser. En fait, je vais le changer si nous cliquons sur la multidiffusion et si nous cliquons sur le Plus pour rechercher la base d'armes Et nous choisissons la base d'armes, nous allons juste la qualifier d'ancienne, afin que je puisse la renommer en arme Nous nous souvenons de compiler d'abord avant de pouvoir le faire. Maintenant ça s'appelle Weapon, et maintenant on peut continuer et le connecter ici. Maintenant, nous pouvons voir que cela fonctionne, d'accord. Maintenant, tout cela doit vraiment être là parce que j'ai déjà cette référence à l'arme. Vous pouvez maintenant obtenir toutes ces informations ici pour cet effet V que vous avez connecté ici. N'oubliez pas qu'il s'agit de la prise de vue, que vous avez l'effet sonore de la prise et que vous avez le flash initial Et vous pouvez connecter le flash initial à celui-ci ici. Et vous pouvez connecter l'effet sonore de prise de vue à celui-ci ici. Vous pouvez également connecter l'animation de tournage que nous venons de réaliser à ici. Vous n'avez pas vraiment besoin de l'arme, nous pouvons l' obtenir d'ici. Si vous faites simplement glisser le pointeur d'ici et recherchez une variable d'arme, il s'agit du maillage squelettique. Vous pouvez également le connecter ici. Alors je peux voir que tout cela ne sert à rien. Nous pouvons donc supprimer celui-ci, celui-ci et celui-ci, puis sortir et compiler. Nous avons eu beaucoup d'erreurs parce que maintenant nous ne les utilisons plus. Allons-y et supprimons tout cela. Nous allons en fait le supprimer en cliquant sur le bouton Alt du clavier. Et en cliquant ici, en cliquant ici, en cliquant ici. Et je vais supprimer ce nœud de redirection, les supprimer, cliquer ici, masquer les épingles non connectées Nous avons maintenant besoin d'une référence à l'arme. C'est cette arme là-haut. Je peux juste cliquer et faire glisser pour le moment. Je vais le rendre beaucoup plus propre plus tard. Donc compilons pour le moment. Maintenant, cette arme de tir est correcte. D'accord, nous n'avons pas vraiment plus de références maintenant pour savoir si j'ai plus de références à ce sujet ou non. Juste pour m'assurer que je ne suis pas en train de m'embêter, je peux écrire, cliquer et trouver des références Et vous pouvez voir que c'est ici ou ici. Je n'ai pas plus de références que celles-ci. OK, donc tout va bien maintenant. Et maintenant, nous avons également connecté l'animation du tournage. Et je ne veux pas y jouer une fois qu'il sera terminé, comme nous le faisions auparavant. Souvenez-vous des autres montages que nous avons créés précédemment. Par exemple, celui-ci. Nous jouons cet événement ici chaque fois que nous terminons le montage de l'animation. Maintenant, pour ce qui est de l'arme de tir, je veux juste y jouer et continuer mon code. Je ne veux pas attendre qu'il soit terminé pour jouer mon effet ici. C'est très bien. Laissez-nous tout compiler et enregistrer maintenant. Il devrait jouer l'animation. Si nous cliquons sur jouer, laissez-moi jouer sur le serveur tout de suite, et je sélectionne Terroriste. Je vais ici et je tire juste une balle. Vous pouvez voir qu'il joue réellement l'animation. Maintenant, nous avons un bug. Maintenant, si je regarde vers le bas, vous pouvez voir l'animation ici au centre de l'écran. Vous pouvez le voir se placer au centre de l'écran chaque fois que je photographie, ce qui est très étrange et nous devons également changer le fait que l' animation soit très lente. Je vais aller dans les actifs et rechercher à nouveau Anim One. Je vais ouvrir le pistolet ici pour le tournage de l'animation pour l'échelle des taux Alors, à quelle vitesse cette animation va-t-elle s'exécuter ? Je vais le remplacer par trois. Je pense que je veux tirer beaucoup plus vite. De plus, pour le fusil, je vais le remplacer par une échelle à trois taux. Il tire beaucoup plus vite. OK, maintenant réparons-le. En fait, cela affecte également le rechargement et je ne sais pas pourquoi je ne l'ai pas remarqué plus tôt Je pense que j'étais juste occupé parler, à enregistrer et à vous montrer. Mais si vous vous contentez de recharger, vous verrez qu'il s'agit de l' animation de rechargement que nous avons jusqu'à présent Cependant, il ne se recharge pas correctement parce que si je regarde vers le bas et que je le recharge, il regarde à nouveau au milieu et se recharge, comme dans le cas du problème de prise de vue que nous avons actuellement recharge, comme dans le cas du problème de prise de vue que nous avons OK, il faut régler ça maintenant. Permettez-moi de déconnecter à nouveau le son, juste pour que ce ne soit pas gênant dans ce cours. Permettez-moi de déconnecter le son de prise de vue et de compiler maintenant. Allons-y et ouvrons le plan d'animation. Parce que le problème est là en ce moment. Le problème, c'est que le plan d'animation est cette animation du haut du corps superposée par os. En fait, nous devons y jouer avant que le but ne soit décalé. Le décalage de visée, souvenez-vous, est le décalage où, en tant que joueur, je regarde de haut en bas avec mon arme et le mouvement comme celui-ci. Nous devons jouer cette animation du haut du corps avant que le but ne soit décalé pour qu'elle puisse se fondre. C'est le problème en ce moment, ce que je peux faire ici, allons-y. Commençons par un pistolet pour cette machine d'état mise en cache Permettez-moi de supprimer ce mouvement de pistolet pour le moment. Permettez-moi de prendre cette couche par os et de la coller ici. N'oubliez pas maintenant d'utiliser le cache de la machine à état du pistolet. Nous avons la machine d'État mise en cache. Si je peux le trouver, nous avons cette machine étatique en cache et nous avons également le mouvement lui-même. La machine d'État est mise en cache et les mouvements sont en cache ici. Nous utilisons la machine d'État en ce moment. Permettez-moi de le copier-coller ici également. C'est juste pour le pistolet et faisons-le aussi pour le fusil Permettez-moi de le supprimer, de le découper et de le coller ici. Permettez-moi de prendre cette machine d'État pour un fusil, souvenez-vous que c'est la machine d'État. Et copiez-le également ici. Et allez-y, connectez-le ici. OK, c'était ça en fait, copions-collons ça. Copions tout cela. Je vais le supprimer ici. Je vais le coller. Et je vais également le connecter ici. Faisons-le ici aussi. Copions la machine d'État Pistol One Pistol. Permettez-moi de le supprimer ici. Permettez-moi de le copier ou simplement de le connecter ici. Collez également connecté ici. Nous jouons maintenant le mélange en couches par os. Avant de jouer au décalage de visée, ce sera la bonne solution. Nous enregistrons maintenant tout cela dans le cache du mouvement du pistolet et dans le cache du mouvement du fusil Nous pouvons continuer ici comme avant, le bouton droit de la souris et en recherchant le cache. Vous pouvez connecter le mouvement du pistolet, cliquer avec le bouton droit de la souris, rechercher le cache Prenez le mouvement du fusil en cache et connectez-le maintenant C'est aussi beaucoup plus propre qu'avant et on peut les combiner comme ça. Et compilons et vérifions si cela fonctionne ou si nous avons une boîte dont nous devons nous occuper. Cliquez ici pour incarner le terroriste. Maintenant, quand je montre, si je regarde en bas, vous pouvez voir que cela fonctionne. Je tire aussi. Je tire au milieu. Cela fonctionne également pour le rechargement. Maintenant, nous pouvons réellement recharger pendant que nous regardons vers le bas. Il n'est pas nécessaire que cela aille jusqu'au milieu. Si je tire, je recharge, je peux le faire. Si je prends juste un, si j' ouvre cet autre gars, je jette un coup d'œil à ce type ici. Je peux donc voir l'animation. Je décroche le K, comme vous pouvez le voir ici, tirer. Je peux même recharger mes batteries en regardant ici. Ou si je regarde en bas, je peux aussi recharger. Je peux tirer. Et vous pouvez voir mon animation de tournage. Si je m'approche d'ici, vous pourrez voir mon animation de tournage. Et pareil ici, si je joue en tant que serveur. Vous jetez un œil ici en tant que client. Si je maximisais ça. Vous pouvez donc voir que je minimise un peu cela. Ici, je regarde le serveur et le serveur est en train de tourner. C'est aussi le cas, vous pouvez voir l'animation du tournage. Je peux aussi recharger d'ici. Je peux aussi recharger en regardant vers le bas. Maintenant, cela fonctionne bien et ils se mélangent. 154. 10.25 Out of Ammo SFX: Pour cette leçon, je veux vous montrer comment jouer un effet sonore lorsque vous n'avez plus de MO. Chaque fois que vous êtes hors de MO, vous entendez ce cliquetis provenant du fusil. Vous pouvez essayer de le mettre en œuvre vous-même, je crois que c'est possible, si vous y réfléchissez bien. Cependant, si vous n'êtes pas sûr, allons-y et faisons-le ensemble. Allons-y et ouvrons le lecteur chaque fois qu'il enregistre ici. Ouvrons la base de joueurs à l'intérieur d'ici. Encore une fois, nous devons utiliser cette multidiffusion. Cependant, je vais ajouter un tyran ici qui dit « n'en a pas ». Chaque fois que nous avons MO, nous pouvons jouer à tout cela. Si je fais simplement glisser et écrire une branche comme celle-ci ici, chaque fois que nous aurons MO, nous jouerons à tout cela comme nous le faisions auparavant. Cependant, si nous n'avons pas Mo, je veux jouer un autre effet sonore. Je veux prendre cette canette sonore juste d' ici et indiquer le lieu. Quel son souhaitez-vous jouer maintenant ? Nous devons l'ajouter à nouveau à la structure. Pour ce qui est de l'emplacement, nous l'avons déjà. Nous pouvons simplement le brancher ici et compiler maintenant pour la structure. Allons-y, ouvrons la structure et créons une nouvelle variable. Nous pouvons simplement appeler cela un effet sonore «   out of M ». Remplaçons-le en son, sélectionnons-le. Et allez-y et économisez. Je pense que je vais juste le déplacer là où il se trouve sous l'effet sonore de prise de vue. Tous les effets sonores sont réunis. Sauvegardons tout une fois de plus, ouvrons le tableau de données. Passons à droite ici, à la fin, après l'effet sonore du tournage. Je vais cliquer avec le bouton droit de la souris et en ajouter un à droite. Ensuite, nous pouvons dire : à partir de MSX et à l'intérieur d'ici, copions simplement la référence Pour le moment, nous n' avons aucune référence car nous n'avons encore rien importé. Passons au dossier audio ici. Ouvrez les effets sonores. Si vous vous rendez à la documentation pour la cause, j'ai inclus du son pour vous. Si vous ouvrez cet audio et que je l' ai inclus hors MO, si je l' agrandisse simplement avec M K 47, MO pour un et avec un pistolet MO Et sélectionnez les trois. Cliquez dessus et faites-les glisser dans le navigateur de contenu. À l'intérieur d'ici, sélectionnez les trois avec le bouton droit de la souris et créez plusieurs repères. Encore une fois, je vais tous les renommer juste pour rester cohérent, nous les renommons S C comme préfixe Je vais aussi le faire pour le pistolet ici. Faisons-le pour le dernier. Le dernier est le K 47. Appelons ça Sound at the beginning, juste comme ça. OK. Je vais ouvrir l'AK 4071. Je vais aussi ouvrir le pistolet et je vais ouvrir les quatre Je veux réduire le son car il est probablement très fort pour moi. Je vais également le mettre à 0,2 pour ne pas vous embêter sur ce cours. Alors maintenant je peux l'entendre. Voici les effets sonores de Out of MO. Fermons-le maintenant et copions les références. Cliquez avec le bouton droit sur la référence de copie AK. Je vais revenir à ma table de données pour le K, c'est la première. Pour le coller pour les quatre, cliquez avec le bouton droit sur la référence après le pistolet, cliquez avec le bouton droit sur la référence p et collez-la également ici Téléchargement de fichiers, téléchargement, CSV, comme avant. Ouvrez le dossier des téléchargements. Et à l'intérieur d'ici, je vais encore une fois supprimer l'ancien, le coller sur le nouveau, le renommer, accéder aux tables de données et faire glisser là où il est mis à jour, et nous laisser tout enregistrer Bien, revenons au joueur et ouvrons la base de joueurs. Maintenant, pour celui-ci, nous l'avons ici. Ce que nous pouvons faire, c'est utiliser ces effets sonores hors de portée de M. Je vais juste le ramener ici parce que nous n'avons pas vraiment besoin de le copier-coller. Encore une fois, je vais prendre des notes réécrites pour tout cela. En fait, il vaut mieux envisager une ou deux leçons ici. Ce que nous pouvons faire, c'est supprimer l'effet sonore MO, nous pouvons le faire glisser ici. Maintenant, l'effet sonore sera joué chaque fois que nous n'aurons pas de MO. Maintenant, nous n'avons pas complètement terminé car nous devons également définir quand nous avons MO ou non. Ici, dans l'arme de tir MC. Nous devons prendre cela, n'oubliez pas de le rendre vrai. C'est le code normal que nous avons. Et nous avons déjà MO ici chaque fois que nous tournons. Parce que nous cherchons essentiellement à savoir si nous sommes hors du MO ou non et à tout ça ici. Et ce sera correct. Maintenant, chaque fois que nous n'avons pas de MO, chaque fois que c'est réellement faux, essayons de créer du code ici. Permettez-moi de le déplacer légèrement vers le haut. Laissez-moi simplement copier-coller ceci. Permettez-moi également de le déplacer légèrement vers le bas, juste pour que nous ayons de l'espace de travail. Maintenant, pour celui-ci, connectons-nous ici. Nous devons trouver le code de l'arme Encore une fois, je vais casser la même arme d' ici, la faire glisser ici. Et pour le lieu, c'est le même endroit. Et pour le Mo, nous devons maintenant nous assurer d'avoir Mo, car nous ne voulons pas simplement y jouer chaque fois que nous allons ici. En gros, ce que vous voulez vérifier, nous voulons jouer ce son. Chaque fois que vous n'avez aucune balle, aucune balle dans le Mac et aucune balle dans les balles supplémentaires, nous pouvons réellement utiliser les puces supplémentaires Ici, je pense que nous avons déjà une fonction. Celui-ci contient des Mo supplémentaires, nous pouvons réellement utiliser celui-ci. Nous pouvons aller de l'avant et dire que si vous avez X Ramo, vous allez y jouer normalement Si vous n'avez pas Ramo, vous pouvez jouer un effet sonore chaque fois qu' un MO supplémentaire est faux, puis nous pouvons jouer cet effet sonore de prise D'où nous en sommes, tout devrait être réglé. Compilons et cliquons sur jouer. Ici, je veux jouer pendant que les terroristes continuent de tirer avec mes armes. Je vais continuer à filmer et sauter la vidéo. OK, maintenant j'en suis aux dernières balles. Et si je continue à tirer et que j'atteins zéro balle, je vais le jouer sans effet sonore Et vous pouvez entendre que je n'ai pas de balles. Si je passe simplement ici et que je joue les autres effets sonores, je vois que c'est normal. Parce que souvenez-vous, j'ai déconnecté l'effet sonore pour le tournage en ce moment. Si j'atteins zéro balle, vous pouvez entendre que je n'en ai aucune Voici donc comment nous pouvons procéder. Compilons et sauvegardons tout comme avant de continuer. Maintenant, je vais nettoyer tout ça avant de continuer parce que ça a l'air d'être un gâchis. Et c'est aussi comment suivre ce cours. Laisse-moi juste compiler pendant mon temps libre. Je vais juste organiser tout cela, donc c'est beaucoup mieux de le regarder. Allez-y, créez, redirigez des notes, créez des commentaires, etc. Je te verrai dans le prochain. 155. 10.26 Bullet Impact VFX et SFX: Très bien, donc tout va bien pour l'instant. Je pense qu'il nous manque des effets visuels et sonores lorsque la balle touche quelque chose. heure actuelle, lorsque nous jouons et que je prends, par exemple, les quatre et que j'essaie de filmer ici, maintenant je joue sur cette partie, mais nous ne voyons pas vraiment d'effet visuel sur la partie que nous jouons, et je pense qu'elle sera bien meilleure. Allons-y et ajoutons-le. Vous pouvez essayer de vous modifier vous-même parce que je pense que vous pouvez . Si vous essayez de réfléchir sérieusement , faisons-le ensemble. Allons ici, dans la base de joueurs. Tout comme avant, nous devons créer une multidiffusion. Nous pouvons maintenant l'intégrer ici et ajouter plus de variables, mais je pense que cela va devenir un peu compliqué. Nous devons donc en créer un nouveau. Comme vous pouvez le constater, je l'ai organisé ici, comme vous pouvez le voir, et je vais vous l' apprendre un peu. Nous avons ici le graphique des événements. Nous avons le mouvement de base du personnage que nous avons fait et terminé. Et cela fait longtemps que nous n'y avons pas vraiment touché . D'ailleurs, j'ai ajouté les fonctions à différents graphes. En effet, si vous créez une grande quantité de code dans un graphique, cela commence réellement à le faire, peut-être que vous pouvez déjà le sentir sur votre ordinateur. Ça commence à. Quand vous regardez autour de vous, ce que vous pouvez faire, par exemple, disons que je voulais m' accroupir spécifiquement sur un autre graphique Je contrôle simplement x pour le retourner ici, puis je contrôle x. Ensuite, je crée un nouveau graphe appelé, par exemple, accroupi C'est parce qu'un événement s' appelle accroupi. Donc je ne peux pas faire ça. Appelons-le simplement Crouch Events Graph ou quelque chose comme ça Alors à l'intérieur d'ici, maintenant je suis là. À l'intérieur du graphe accroupi, je peux contrôler V, et voilà, je suis accroupi Maintenant, pour certaines raisons, vous pouvez avoir des fonctions qui ne sont pas collées. Permettez-moi de cliquer sur le contrôle Z ici, contrôle Z, le contrôle Z jusqu'à ce qu'il soit là. Parfois, si vous copiez quelque chose, disons que je voulais copier cette partie, contrôler X, créer un nouveau graphique, appeler quelque chose de aléatoire, puis copier-coller. Maintenant, je peux voir que lorsque vous le collez, cela apparaît et indique que certaines références de fonctions n'ont pas pu être résolues dans le nouveau contexte. Aimeriez-vous les réparer ici ? Ensuite, tu peux choisir quelque chose. Cependant, vous ne voulez rien faire ici, cliquez simplement sur Confirmer. Lorsque vous cliquez sur Confirmer, vous pouvez voir que vous avez de nombreuses erreurs à corriger. Cependant, n' appuyez sur rien. Vous pouvez simplement cliquer sur Fichier, puis sur Actualiser tous les nœuds. Et cela arrangera tout pour toi. C'est ainsi que vous pouvez copier-coller le code d'un graphique à un autre. Je vais cliquer sur les commandes juste pour revenir à ce que j'avais avant, comme ça. C'est ce que j'ai fait. J'ai juste copié à partir d'ici et j'ai créé un nouveau graphique. J'en ai créé un appelé Lot Equip and Drop Weapon. Voici ma logique du lot et du largage d'armes. Et mon arme Equip Logic. J'ai également ajouté quelques commentaires pour vous. Lorsque je vous présente le projet final, vous pouvez essayer d'y jeter un coup d'œil et c'est bien mieux de le regarder que d'être désordonné. Comme vous pouvez le voir ici, c'est l'arme du lot et ainsi de suite. Oui, c'est tout. Le dernier graphique que j'ai fait est celui de l'arme à tirer et à recharger Dans celui-ci, nous avons la logique des armes de tir. Et j'essaie de l'organiser du mieux que je peux. Voici la multidiffusion de l' arme de tir, puis j'ai aussi l' arme à recharger Et voici la logique qui sous-tend cela. Il y a beaucoup d'obstacles à l'organisation, car il y a plusieurs graphiques d'événements. Nous avons le graphique normal des événements avec juste le mouvement. Vous ne pouvez pas renommer celui-ci, c'est celui par défaut, vous ne pouvez pas le renommer Cependant, j'ai créé les autres et je les ai renommés en Loot, Equip, and drop up in and shoot weapon here. Rechargez également. Il vaut mieux rester organisé et nous pourrons les retrouver beaucoup mieux plus tard. Je vais également créer des catégories pour toutes ces catégories, comme je vous l'ai montré dans la leçon précédente. Vous pouvez créer des catégories et les ajouter ici. C'est probablement une bonne chose de le faire pour toutes ces fonctions, ainsi que pour toutes vos fonctions. C'est fait, passons au tournage et rechargeons. Pendant le tournage et le rechargement, nous avons cette multidiffusion où nous faisons jouer l'émetteur avec le flash Cependant, créons-en un nouveau pour l'impact. Faisons un clic droit et créons de nouveaux événements personnalisés comme avant. Appelons celui-ci MC Bullet Impact. Faisons-le passer par le biais d'une multidiffusion et de manière fiable également. Maintenant, ce que nous devons savoir, c'est que nous avons bien sûr besoin de l'arme avec laquelle nous tirons. Nous avons également besoin du lieu de l'attaque. Où voulons-nous faire apparaître notre émetteur ? C'est ici que nous touchons le point de frappe de l'arme. C'est la base de l'arme. Allez-y, sélectionnez-le et compilez-le. OK, où veux-tu jouer à ça ? Nous voulons y jouer chaque fois que nous tournons. C'est la logique du tournage. Nous tirons d'abord avec l'arme, nous jouons l'effet, puis nous jouons le tracé de la ligne. Souvenez-vous du tracé linéaire Si je sélectionne le type de débogage pour qu'il soit persistant afin que vous puissiez voir la ligne, c'est la ligne lorsque nous tournons , c'est le tracé linéaire Il filme cette ligne. Nous savons maintenant où nous nous trouvons avec ce tracé linéaire après avoir réellement touché quelque chose. Voilà ce que cela signifie, bloquer coup une fois que nous avons réellement touché quelque chose. Nous voulons créer cet effet. Je vais donc simplement supprimer ce bonjour pour le moment. Jouons à ce MC Bullet Impact que nous venons de créer. heure actuelle, nous avons un petit problème car il s'agit d'un hit bloquant. Et ici, il est également dit que l'acteur à succès a le joueur technologique. heure actuelle, c'est uniquement en jouant à ce jeu pour les joueurs que nous devons résoudre ce problème. Au lieu de les combiner, je vais le supprimer. Prenons le point de blocage ici et connectons-le. Créons une branche et allons-y. Si c'est le joueur, tu peux faire quelque chose. Si ce n'est pas le joueur, vous pouvez faire autre chose. Donc, au lieu de simplement ajouter ici, nous devons jouer cet effet. Peu importe si c'est le joueur qui a été touché ou non, nous jouons simplement cet effet de toute façon. Parce que si vous heurtez un mur, vous allez produire cet effet. Si vous touchez le joueur, vous allez jouer cet effet. Mais nous n'avons pas vraiment besoin de le connecter après le joueur ici. Nous pouvons donc le connecter avant le joueur. Je vais juste lui donner un peu d'espace ici. Nous pouvons l'ajouter avant le joueur. Je pense que nous devons également savoir qui nous avons touché. Parce que si nous touchons le joueur, nous voulons jouer au sang au lieu de simplement jouer à un autocollant ou à une pierre que nous frappons ici Pour celui-ci, je vais en ajouter un nouveau. Disons que c'est le hit Actor. Pour l'acteur à succès, vous pouvez le voir ici. Maintenant, si vous ne savez pas quel type de variable vous devez ajouter, vous pouvez simplement vous rendre ici. Et cet acteur à succès. Si vous maintenez la souris dessus, il est écrit Actor Object Reference. Descendons ici, cliquons dessus et changez-la en référence à un objet acteur ici. Celui-ci, nous pouvons simplement le mettre au-dessus de celui-ci ici et le compiler. OK, maintenant nous avons également cette information. Maintenant, pour ce qui est de l'arme, tu dois la connecter. L'arme est là-haut, vous pouvez donc simplement cliquer dessus et la faire glisser ici. Et permettez-moi de créer quelques notes de route arrière pour rester organisé. OK, allons-y. Nous l'avons maintenant créé. C'est réglé. La prochaine étape est le hit. L'acteur à succès est juste cet endroit si vous cliquez sur la flèche, pour que vous puissiez voir toutes les valeurs, c'est l'endroit que nous avons atteint. Après un blocage, nous prenons cette localisation, nous l'appliquons à cette multidiffusion Minimisons encore une fois cela un peu, et nous y voilà. Je vais le connecter une fois de plus. Et une fois que nous avons touché le joueur, nous pouvons lui infliger des dégâts. Maintenant, ce que nous pouvons faire, oui, nous pouvons aller ici. Maintenant. Nous n'avons vraiment rien à faire là-bas. Faisons apparaître l'émetteur sur place. Nous allons faire apparaître un émetteur à un endroit. Nous allons également diffuser du son sur place. Maintenant, si vous voulez avoir des autocollants, si vous avez déjà joué à Counter Strike, vous savez que les autocollants apparaissent sur le mur. Si tu tires sur le mur. Je n'ai pas vraiment de décalcomanies dans ce cours. Cependant, si vous le souhaitez, vous pouvez à nouveau faire glisser à partir d'ici et dire «   spawn decal at location Cela va générer des décalcomanies. Les décalcomanies ne sont en fait que des images. Vous pouvez les faire apparaître sur le mur. Par exemple, si une balle touche une image, vous pouvez la faire apparaître à l'aide d'un autocollant situé sur place. Nous avons déjà l'emplacement ici pour l'emplacement, la taille de l'autocollant, vous pouvez en faire 111 par exemple, ou quoi que ce soit Ici, vous pouvez à nouveau sélectionner l'autocollant en fonction de son contenu dans la structure Vous pouvez ajouter les autocollants à la structure pour une arme spécifique, etc., mais je n'en ai pas vraiment, alors supprimons-les Ce sera facile pour vous une fois que nous aurons fait tout cela 100 fois. Supprimons-le. Maintenant, pour cet émetteur d'origine, nous avons besoin de l'émetteur, nous avons également besoin de l' Allons-y et faisons-le. Sauvegardons tout, minimisons cela. Passons maintenant à la structure. Ouvrez-le et ajoutons deux variables. Ajoutons-en un appelé Bullet Impact VFX. Je vais faire de la place ici, nous n'avons pas vraiment besoin de les assembler , Bullet Impact VFX Et je vais également en ajouter une autre, Bullet Impact. X, un pour l'effet sonore et un pour l'effet visuel. Pour l'effet visuel, il s'agit d'un système de particules. Et allez-y, sélectionnez-le. Pour le suivant, l' effet sonore est un signal sonore. Et Dieu, et choisissez-le également pour l'effet sonore. Je vais juste dire oui, juste après l'effet sonore du tournage. Donc, juste pour rester organisée et pour l'effet visuel, je vais simplement le déplacer juste après le clignotement initial Allez-y, sauvegardez tout. Et n'oubliez pas que nous devons maintenant l'ajouter à ce qu' on appelle le tableau de données. Allez-y et ouvrez votre tableau de données. Très bien, je suis là, dans ma table de données. Et maintenant, pour ce qui est de l'effet d'impact de la balle, c'est après le flash initial. Je vais ajouter une colonne à droite. Je vais l'appeler du même nom ici. Je peux simplement copier-coller ceci. Passons sur le côté et collons-le ici. Le suivant concerne également les effets d'impact de balle après les effets de tir ici. Ajoutez une colonne à droite et ajoutez-la ici. Nous avons maintenant besoin de références à. Maintenant, pour ceux-ci, j' utilise simplement ceux du marché. Au lieu de le rechercher dans le dossier, parce que je ne sais pas où il se trouve, il suffit de cliquer sur le dossier Marketplace et de rechercher Impact. Et puis vous pouvez les voir ici. Ce que je vais utiliser, c'est peut-être celui-ci appelé Stone Medium pour l'effet des particules d' impact. Cliquez avec le bouton droit de la souris et copiez la référence. Si je peux le trouver ici, copiez la référence et je pourrai la coller pour les effets de puce. Je vais juste le coller pour chacun d'entre eux. Je veux juste avoir le même effet visuel d' impact de balle que l'effet sonore. Maintenant, je crois que nous avons ici ce qu'on appelle l'impact du fusil. Je vais juste double-cliquer dessus et réduire le volume à 0,2 car je pense que c'est trop fort. C'est en fait celui du corps, c'est à ce moment que nous frappons le joueur. Ajoutons également cela pendant que nous sommes ajoutés. Ajoutons-en un pour le joueur. Ouvrons à nouveau la structure et ajoutons une nouvelle variable. Appelons cela impact de balle, impact de balle, effets de joueur pour l'autre. Ajoutons celui-ci pour l'effet sonore. Ajoutons-en un nouveau. C'est ce que l'on appelle Bullet Impact Player Sound Effect. Je pense que ce sera beaucoup plus intéressant de les avoir tous les deux. Cherchons à nouveau le système de particules. Allez-y et sélectionnez-le pour l'autre. Son Et il suffit de les déplacer à nouveau vers le haut pour obtenir un impact de balle , un effet visuel et un effet sonore. OK, maintenant ils y sont. Allons-y et ajoutons-les à nouveau au tableau de données. Ouvrez-le et créez une colonne ici à droite. Créez également une colonne ici à droite. Celui-ci copie-colle le nom, l'autre aussi, copaame Nous y voilà. Nous pouvons maintenant ajouter un nouvel effet visuel et un nouvel effet sonore. Revenons au dossier Marketplace , recherchez heat. Copions ce Body, nous réduisons simplement le bruit du clic droit. Copiez la référence et nous pouvons la coller pour l'effet sonore du Bullet Impact Player ici. Maintenant, nous avons besoin de celui où nous ne touchons pas le joueur. Je pense que cette carabine a une surface d'impact. Allez-y, réduisez le bruit à 0,2. Jouons-le et voyons de quoi il s'agit. OK, ça a l'air bien. Cliquons avec le bouton droit de la souris, copions la référence et collez-la ici. Maintenant, nous avons besoin d'un impact de balle. L'effet visuel du joueur en fait besoin d'un peu de sang. Lorsque nous touchons le joueur, je ne suis pas sûr qu'il en ait un ici. Peut-être que tu peux rechercher du sang. Nous n'en avons pas vraiment ici. Vous pouvez voir que nous n'en avons que des métalliques. Nous n'avons d'impact que sur la pierre et le bois. Cependant, copions simplement la version métallique pour le moment. Il faut un peu de temps pour entrer dans le système de particules ici et cela ne fait pas vraiment partie du cours. Ce sera un peu trop avancé, cela prendra du temps. Copions simplement l'étincelle ici. Spark Medium. Cliquons avec le bouton droit de la souris et copions la référence. Et vous pouvez également les coller ici dans l' effet visuel de celui-ci. Maintenant, si tu veux vraiment entrer ici et changer quelque chose, tu peux l'ouvrir. Vous pouvez peut-être cliquer sur Color over Live. Vous pouvez cliquer ici, ici, sur cette flèche et sur cette constante. Et tu peux essayer de jouer avec les couleurs. Vous pouvez toujours essayer de jouer avec. Rendez-le plus rouge pour que la couleur ici, au fil de la vie, vous puissiez jouer avec la couleur. Et avec les flèches ici, rends-le plus rouge, pour qu'il ressemble à du sang. Vous pouvez toujours le faire , ou vous pouvez également vous rendre sur le marché d'Epic Games et télécharger des systèmes d'articles sur le sang. Il y en a beaucoup sur le marché. Très bien, maintenant nous les avons ajoutés. Et revenons au tableau de données. Et maintenant, nous pouvons cliquer sur Fichier et télécharger et télécharger le fichier CSV, encore une fois ici dans mon dossier de téléchargement. Permettez-moi de renommer à nouveau cette table de données. Et laissez-moi accéder au dossier des tables de données. Permettez-moi de clore ceci pour le moment. Permettez-moi de faire glisser le tableau de données ici et de tout mettre à jour. OK, alors maintenant c'est verrouillé. Passons au joueur, à la base de joueurs. Et maintenant, nous allons simplement copier tout cela. Collez-le pour ne pas avoir à le réécrire. C'est exactement ce que nous avons fait par le passé. Faisons glisser l'arme, trouvons le nom de l'arme, informations sur l'arme à partir d'ici. Je vais juste cacher les épingles non connectées. Ce dont j'ai besoin dans celui-ci, c'est de l'impact de balle, l'effet impact de balle, du joueur d'effets, des effets d'impact de balle et du lecteur d'effets. J'en ai besoin ici. Ensuite, je pourrai procéder à l'effet des particules au lieu de me contenter du roi, par exemple, l' impact de la balle, les effets ici. Nous pouvons toujours demander si c'est le joueur que nous avons touché ou non. Parce que si c'est le joueur que nous avons touché, nous voulons jouer à celui-ci. Ce que nous pouvons faire, c'est nous inspirer de cet acteur à succès et dire ou non, mais juste l' acteur a un tag juste avant. Tout comme ce que nous avons fait ici quand nous avons touché le joueur ici. Nous demandons si l'acteur possède le tag player, afin de savoir si c'est le joueur. Nous pouvons faire la même chose ici, selon que l'acteur a le tag player ou non, alors nous savons que c'est le joueur que nous avons touché ou non. Ensuite, ce que nous pouvons faire, c'est prendre ceci et dire « sélectionner ». Et nous pouvons prendre le nœud sélectionné et le brancher ici. Faux, ce n'est pas le joueur alors nous voulons juste jouer cet effet si c'est le joueur, si c'est vrai, l'acteur a le tag player. Nous voulons jouer à cet effet de joueur. Maintenant, cela va produire un effet visuel selon que nous touchons le joueur ou non. OK, cool. Pour le lieu, c'est le lieu de frappe, pour l'échelle de rotation, tout est pareil. Rien n'a vraiment besoin d'être changé. Pour ce qui est de l'effet sonore, je vais faire de même à partir d'ici. Et dites « select » selon qu'il s'agit du joueur ou non. Voilà, celui-ci. Allez-y , connectez-le à nouveau. Si ce n'est pas l'effet sonore normal du lecteur, si c'est le lecteur, l' effet sonore du lecteur est identique à celui de l'endroit où il s'agit de l'endroit touché. Je vais juste ajouter quelques notes de redirection et organiser ce code ici J'ai ajouté quelques notes de redirection et je vais tout enregistrer maintenant Permettez-moi de monter ici et vérifier que je n'ai rien oublié Maintenant, nous avons ajouté cela, nous avons également ajouté l'effet visuel et l'effet sonore l'effet visuel et l'effet sonore ici dans le code chaque fois que nous tournons et que nous touchons quelque chose, nous allons jouer l'effet sonore et nous allons également jouer l'effet visuel. Et l'acteur à succès est bloqué. L'arme est également bloquée, et le lieu de frappe est également bloqué. Sauvegardons tout ici et essayons-le. Allons sélectionner des terroristes. Je vais sélectionner les quatre. Allez-y et tirez. Je peux entendre le son, si tu peux entendre le son. Génial. OK, permettez-moi de déconnecter cette partie du code pour l'arme de chasse. Je vais juste déconnecter la partie du code consacrée à l'arme chote n'entends que les impacts de la balle Je n'entends que les impacts de la balle juste pour voir si cela fonctionne correctement. Je vais juste faire le shooting d'AK ici. Maintenant, vous pouvez voir que je suis en train de tirer. J'en vois l'impact. J' entends le son aussi. Si c'est loin, je n' entends pas le son. Si c'est proche, vous pouvez voir qu'il se rapproche. Ça a l'air beaucoup mieux. Si vous voulez augmenter l'impact, vous pouvez toujours aller ici et augmenter l'échelle. Quelque chose d'un peu dingue. Vous pouvez vraiment voir la différence. L'échelle est désormais de dix. Je peux jouer, je peux filmer quelque chose. Et maintenant tu peux voir à quel point ça devient dingue. Maintenant, vous pouvez voir que l' effet semble mauvais parce qu'il est tellement amplifié. Cependant, je pense que le tête-à-tête, c'est bien. Si vous le souhaitez, vous pouvez toujours le faire 1,5 pour qu'il soit un peu plus grand si vous le souhaitez. Mais je pense que c'est bon pour le moment. Voilà à quoi ça ressemble. Supprimons maintenant cette ligne. Nous n'avons pas vraiment besoin de voir cette ligne de débogage, je peux donc appuyer sur aucune Je veux aussi l'essayer sur le client juste pour m'assurer qu'il fonctionne également sur le client , pour ensuite l' essayer sur le client. OK, sympa. Encore une fois, si vous souhaitez modifier la couleur de l'impact, vous pouvez toujours accéder au système de particules et cliquer sur la couleur. Et vous pouvez également changer la couleur pour cela. Mais maintenant, vous pouvez voir que cela fonctionne très bien, et cela fonctionne également là-bas. Cependant, nous ne pouvons pas vraiment le voir là-bas car il est très petit. C'est ici. Vous pouvez essayer, vous pouvez le voir ici. Génial. Ça a vraiment l'air bien. Sympa. OK, c'est terminé et je vais juste reconnecter cette partie , tout compiler et enregistrer. Nous avons maintenant l'effet de prise , l'effet visuel et l'effet sonore. Encore une fois, si vous souhaitez ajouter un autocollant comme Counterstrike, vous pouvez également frapper d'ici et dire Et vous pouvez faire apparaître un autocollant sur place, comme avant. Vous pouvez toujours sélectionner ici , sélectionner un nœud et connecter le lecteur. Si c'est le joueur que vous avez touché, vous ne voulez rien faire apparaître, vous pouvez le faire si c'est le joueur ou si ce n'est pas le joueur que vous avez touché Vous pouvez toujours lancer une balle sur le mur. Tu peux toujours le faire. Compilons et sauvegardons tout et passons au suivant. 156. 10.27 Propagation de balles: Maintenant, au lieu d'avoir toutes les balles touchées au milieu du curseur, maintenant vous pouvez voir si je tire quelque chose, il touche toujours au même endroit Au lieu de cela, vous pouvez en fait ajouter un bullet spread. Nous pouvons le faire comme dans Quinzaine par exemple. Si vous appuyez sur le curseur, il n'atteint pas vraiment le même endroit, 2047 Si tu continues à tirer. Pour ce faire, c'est vraiment très simple du point de vue des puces. Vous pouvez voir ici que nous créons ce tracé linéaire. Avant de le faire, prenons tout cela, copions-le et collons-le ici. Je pense que je le prouverai plus tard, car ici je ne veux pas tracer une ligne si je n'ai plus de MO, etc. Peut-être que je veux améliorer cela en supprimant réellement la séquence, car nous n'avons alors pas besoin de copier-coller ce code. Nous pouvons simplement ajouter cette partie juste après. Mais gardons-le pour le moment, comme ça et voyons où nous allons avec. L'emplacement final, ce que je veux en faire, je veux le rendre un peu aléatoire Emplacement de départ et d'arrivée. L'emplacement de départ convient au tracé de la ligne. Cependant, pour ce qui est de l'emplacement final, nous allons le rendre aléatoire. La course en ligne ne se déroule pas toujours au même endroit. La façon de le faire est très, très simple. Nous pouvons prendre cet emplacement final dès maintenant et nous pouvons le prendre et dire break vector. Maintenant, à partir de celui-ci, ce que nous pouvons faire, c'est simplement le déconnecter d'ici. Pour l'instant, supprimez celui-ci, car nous n'avons que celui-ci ici. Et vous pouvez simplement cliquer, glisser-coller ici. En fait, à cet endroit final, nous cassons le vecteur. Je peux donc voir les x, y et z, et je peux randomiser la valeur ici Ce que je veux faire, c'est utiliser celui-ci appelé random float in range. Maintenant, nous n'avons pas vraiment de vecteur aléatoire à portée, sinon je l'aurais utilisé. Mais nous avons une fonction appelée random float in range. Il va donc choisir un flottant aléatoire en fonction d'un nombre aléatoire, en fonction de ce que vous lui donnez comme valeur minimale et comme valeur maximale. D'ailleurs, c'est aussi ainsi que vous lancez un dé. Vous lancez un dé en écrivant ici, la valeur minimale des dés doit être un, la valeur maximale des dés doit être six. Ensuite, il lance une valeur aléatoire de 1 à 6 pour lancer les dés. Et on a l'impression d'avoir un chiffre ici. Nous allons le faire ici pour la valeur minimale. Nous voulons juste prendre ce x et dire, écrivons d' abord moins, disons 200. Essayons 200. Ensuite, le flottement maximum ici, disons plus 200. Il va prendre la position X, il va trouver un nombre aléatoire. Nous donnons ceci x -200 Prenez ceci x plus 200. Entre cette plage, vous allez trouver un nombre aléatoire avec ce nombre aléatoire que nous voulons transformer en vecteur. Prenons cette extrémité et disons vecteur pour pouvoir le reconstituer et sélectionner ce vecteur de création. Ensuite, nous pouvons le rebrancher sur le x ici. En gros, nous modifions simplement la valeur x et nous rebranchons dans le vecteur comme ceci Faisons de même pour l'autre. Je vais le copier-coller. Peut-être que vous pouvez également créer une fonction à partir de celle-ci, mais je pense que ce ne sera pas nécessaire. Ajoutons-le ici. Et ajoutez également le x ou le y et le Z. Branchons le Y. Branchons le Z comme ceci OK, maintenant c'est terminé et maintenant il va trouver une charge et une plage aléatoires. Et il va randomiser notre vecteur en fonction de la valeur aléatoire qu'il trouve ici Et permettez-moi d'ajouter quelques notes de redirection pour le rendre plus beau OK, alors c'est ici. C'était en fait ça. Nous avons donc terminé. C'était très, très facile. Refaisons le débogage et jouons juste pour voir à quoi cela ressemble Maintenant, en tant que terroriste, je peux tirer ma balle et vous pouvez voir quand j'ai tiré plusieurs fois. Il ne tirera pas au milieu du curseur, il trouvera un emplacement aléatoire, parfois au milieu, parfois à l'extérieur du curseur. Ce que vous pouvez voir, c'est qu'il ne filmer au même endroit encore et encore, c'est ainsi que vous pouvez randomiser le spread des puces Vous ne filmez pas au même endroit. Ce que vous pouvez faire si vous voulez un spread plus important, vous pouvez toujours augmenter ces chiffres à nouveau, si vous voulez l'améliorer, vous pouvez toujours à juste titre le promouvoir au rang de variable et connecter cette variable à chacune d'entre elles. Et vous pouvez simplement modifier une variable et elle les modifiera toutes en même temps. Cela vous fera gagner beaucoup de temps, mais je pense que je vais le maintenir à 200 si vous le souhaitez. Vous pouvez augmenter la portée des balles et elles toucheront au milieu. Mais comme vous pouvez le voir, si je touche de près, ce sera beaucoup plus facile à toucher. Cependant, si je frappe loin, il sera plus difficile d'atteindre la cible. Je ne suis pas toujours au milieu. Une méthode très simple pour le faire. Et sauvegardons tout, passons à la suivante. 157. 10.28 Placer correctement les armes: heure actuelle, je pense que nous en sommes au moment où nous pouvons simplement placer les armes, les armes que nous avons ici. Je vais juste tous les supprimer. Tu peux le faire rapidement. Vous pouvez cliquer ici, ancien shift, cliquer sur le dernier, supprimer, et je vais également supprimer celui-ci. Ce que vous pouvez faire maintenant, c'est que nous pouvons passer à des plans d'armes. Il vous suffit maintenant de les faire glisser et les placer autour du niveau, par exemple. Tu peux placer un AK ici si tu veux. Vous pouvez activer le snapping ici. Je pense que ce sera beaucoup de pouvoir placer l'AK et de le faire glisser un peu vers le haut pour qu'il ne soit pas au sol comme ça. Ce que tu peux faire, c'est que je voulais juste l'avoir à l'arrière. Je regarde juste à quelle distance nous sommes de ce mur. Peut-être que nous pouvons l'ajouter ici. En fait, permettez-moi de le faire glisser ici derrière couverture, de maintenir la touche Alt enfoncée et de faire glisser le pointeur pour le copier. Je pense que je vais augmenter celui-ci à 500 au lieu de maintenir la touche Alt enfoncée et de faire glisser le pointeur comme ça. Je pense que je vais le copier comme ça plusieurs fois. Ici, ici et ici. Faites-le simplement comme vous le souhaitez en fonction de votre niveau. Vous n'êtes pas vraiment obligé de suivre ici. Je le fais juste au hasard. Maintenant, nous l'avons. Peut-être que nous pouvons également en ajouter un ici. Maintenant, nous l'avons. Et ce que vous pouvez faire, c'est ajouter un quatre au milieu ici. Peut-être que je dois juste réduire à nouveau mon snapping à 100 ici, je pense que je vais l'ajouter au milieu Je dois plutôt le réduire à 50 ici. Et puis augmentons, remontons-le ici, augmentons-le encore à 100, augmentons-le jusqu'à l'autre. Mets-le à nouveau à 500, comme avant. Continuez à le faire glisser comme ça. Maintenant c'est entre le K ici, ici et ici. Et vas-y et continue comme ça. OK, maintenant nous l'avons et si vous regardez, ce que vous pouvez faire semble intéressant. Vous pouvez également placer le pistolet manière à le faire glisser dans le niveau Laissez-moi simplement le réduire à 100 à nouveau. Et placez le pistolet, poussez-le vers le haut comme avant, comme ça si vous le souhaitez, vous pouvez ajouter le pistolet pour qu'il ressemble à tout l'espace ici Si je l'augmente simplement à 50, vous pouvez ajouter le pistolet comme celui-ci dans toutes les cases Laisse-moi juste aller de l'avant et le faire. OK. Maintenant, j'ai placé les pistolets Maintenant, vous pouvez voir des pistolets jusqu'ici, le K et le quatre jusqu'ici, si vous le souhaitez En fait, je ne veux pas placer d'armes devant ici parce que c'est là que le joueur apparaît. Je peux même les déplacer un peu plus vers l'avant. Ils n'apparaissent donc pas au-dessus des armes. Je vais juste déplacer quelque chose ici. Nous devons également nous souvenir des points d'apparition de celui-ci. Allez-y et sélectionnez-les tous. Déplacez-les d'un pas vers l'avant comme ceci. De plus, pour ces armes, je veux toutes les sélectionner. Cliquez sur le premier, faites défiler Hold Shift vers le haut et cliquez sur le dernier. De plus, je dois sélectionner le boîtier Hold Control. Et je vais simplement les sélectionner toutes ici. Et cliquons sur l'outil de déplacement, maintenons la touche Alt enfoncée et faisons glisser le pointeur pour les copier toutes. Cliquez sur pour effectuer une rotation de 180 degrés. Permettez-moi de les maintenir ici et d'essayer de les mettre au même niveau. Il est donc normal que les deux parties vérifient si elles sont au même niveau et qu'elles le sont maintenant. Ce que je veux faire maintenant, c'est simplement les faire glisser l'autre côté et les placer quelque part, comme ici. Je pense que c'est également là que les choses se situent de l'autre côté. Ils sont tout près du mur. Ils sont également très proches du mur. Peut-être un autre comme celui-ci, nous devons les faire glisser de l'autre côté. C'est quelque chose ici. C'en est un de plus, je crois que c'est à couvert comme ça. Maintenant, les deux côtés sont identiques. Si vous cliquez sur Jouer maintenant, nous pourrons vendre Counter Terrorist. Maintenant, par exemple, vous pouvez voir qu'ils sont au sol. Nous pouvons prendre un pistolet et nous pouvons également choisir l'une des autres armes Et oui, maintenant tout fonctionne. Ce que vous pouvez faire au lieu de prendre d'abord un pistolet parce que c'est ennuyeux, peut-être que pour passer au fusil, vous pouvez le changer. Vous avez donc d'abord le fusil , puis les pistolets derrière. OK, donc maintenant que vous avez placé les armes, vous pouvez également les placer ici si vous le souhaitez. Vous pouvez placer, si vous fabriquez une autre arme, comme une arme spéciale, vous pouvez la placer ici. Vous devez donc monter cette rampe pour prendre cette arme. Ça va être cool aussi. OK, donc chaque fois que vous aurez placé vos armes, passons à la leçon suivante. 158. 11.01 Créer l'interface utilisateur Health & Armor: Très bien, nous en sommes maintenant à l'armure de santé et aux dégâts, et nous sommes prêts à créer l'interface utilisateur de santé et d'armure. Alors allons-y et passons à l'interface utilisateur. Et nous avons déjà notre interface utilisateur principale, alors ouvrons-la ici à gauche Je veux créer une interface utilisateur d' armure et de santé. OK, donc ce que je veux concevoir, je veux d'abord vous le montrer afin que vous puissiez le voir réellement. Je veux concevoir une interface utilisateur comme celle-ci. J'aime bien te le montrer. Donc c'est possible, nous sommes sur la même longueur d'onde ici et vous savez ce que vous faites. Nous sommes en train de faire celui-ci. Et c'est à ça que je voulais ressembler. Encore une fois, comme je vous l'ai déjà dit, essayez d'y jeter un coup d'œil, essayez de le décomposer. Donc, vous savez, si vous voulez créer des boîtes horizontales, des boîtes verticales, superpositions, comme nous l'avons fait auparavant, c'est ce que nous allons créer D'accord, nous avons d'abord besoin d'une superposition parce que nous avons un arrière-plan et quelque chose dessus Faisons-le glisser dans le panneau du canevas ici. Et maintenant, il est ajouté. Maintenant, cliquez dessus. Et pour le point d'ancrage, je vais le changer en bas à gauche et écrire 00 dans la position pour le placer ici dans le canevas pour l' aligner sur le y, écrire un, maintenant il est là-haut à la position 00. OK, pour celui-ci, nous voulons avoir une image, nous voulons avoir un arrière-plan , l'image ici. Je veux qu'il en soit de même qu'ici. Au lieu de simplement faire la même chose. Ce que je peux faire ici, c'est simplement maintenir la touche Maj enfoncée et cliquer avec le bouton droit de la souris pour le copier. Ou vous pouvez simplement cliquer avec le bouton droit de la souris et copier. Vous pouvez accéder à cette image touche Maj enfoncée et cliquer avec le bouton gauche de la souris pour la coller. Juste comme ça pour l'alignement, il suffit de remplir le tout pour la superposition Maintenant, je veux qu'il soit dimensionné en fonction d'un contenu comme celui-ci. Quelle que soit la taille de l'image que nous avons ici elle sera automatiquement redimensionnée avec celle-ci. Pour l'espace sur l'écran. Je voudrais l'éloigner un peu, 30 dans le X et -30 dans le Y. Nous avons un peu d'espace ici Ce n'est pas sur le bord du gouffre. OK, compilons maintenant. Voilà à quoi ça ressemble. Ajoutons maintenant la barre de santé. Ajoutons une boîte horizontale car nous voulons une icône et une barre de progression à côté. Ajoutons donc une boîte horizontale à cette superposition. Pour cette boîte horizontale. Ajoutons d'abord une image car nous voulons une icône. Ensuite, ajoutons la barre de progression. Cependant, n'oubliez pas que la barre de progression est surmontée de texte. Nous avons en fait besoin d'une superposition. Tout d'abord, cherchons une superposition et plaçons-la ici pour cette superposition Trouvons la barre de progression. Pour la barre de santé, nous utilisons une barre de progression, puis nous avons du texte dessus pour afficher le niveau de santé du joueur. OK, maintenant cela semble un peu confus pour cette superposition. Voyons ici que nous avons cette boîte horizontale pour cette barre de progression. En gros, je veux tout remplir dans cette superposition. Mettons-le juste au milieu. En cliquant sur le cadre horizontal, je vais l'aligner au milieu de l'image. Sélectionnons l'icône. Maintenant, nous n'avons pas d'icône pour le moment. Passons aux icônes. Je veux que vous consultiez les supports de cours. Si vous vous contentez de consulter le matériel pédagogique ici, je vais dans l'interface utilisateur pour accéder aux icônes et importe la santé sur l'icône en forme de cœur et sur l'icône en forme de bouclier. Cliquez et faites-les glisser ici. Ils sont maintenant importés. N'oubliez pas de cliquer dessus, de changer le groupe de textures en UI comme avant. Et les paramètres de compression l'interface utilisateur vont dans le même sens. Changez-le en UI et changez-le. Voyons ici l'interface utilisateur de T. Maintenant, nous pouvons passer à l'interface utilisateur. Nous pouvons cliquer sur l'image, rechercher CO ou icône. Cherchons simplement le cœur un sur le cœur. Sélectionnez-le. Vous pouvez maintenant voir des expositions. Et cela est dû à l'alignement. Je voulais juste l'avoir au centre comme ça. Et je vais en changer la taille à 45, 45 peut-être. En fait, changeons-le simplement à 40 par 40. Maintenant, pour cette barre de progression, cliquons dessus. Pour la barre de progression, vous pouvez voir ici que je peux augmenter ou diminuer le pourcentage. Et cela augmentera et diminuera la barre de progression. Maintenant, pour le style, nous avons besoin d'une image d'arrière-plan et d' une image de fond et d'une image de marque. Maintenant, pour le contexte, je veux juste cliquer ici. Et je pense que nous pouvons rechercher une zone de saisie. J'ai ici des boîtes de saisie que nous pouvons utiliser comme arrière-plan. Et nous pouvons simplement utiliser cette seule image, la barre de saisie étant foncée. Allez-y, sélectionnez-le. Tu te souviens de ce que j'ai déjà dit ? Remplacez-le en case et sélectionnez également 0,5 comme marge. Il s'étire donc correctement pour l'image Phil. Si vous recherchez simplement Phil, j'ai la barre de progression, Phil, pour vous. Permettez-moi simplement d'importer l'autre car je ne l'ai pas encore importé. Vous l'avez probablement déjà importé ici. Permettez-moi simplement de passer à mes anciens documents de coûts, à savoir les images. Et permettez-moi d'importer celui-ci rouge, rouge, Phil. Permettez-moi de l'importer ici. Cliquez dessus, modifiez I et modifiez cette interface utilisateur pour enregistrer. Et laisse-moi y retourner. Sélectionnons le remplissage rouge. Allez-y et sélectionnez celui-ci, également pour l'image de la marque. Vous pouvez simplement le copier. Collez-le ici. Rappelez-vous pour la marge ce que j'ai dit tout à l' heure, 0,5 pour la marge. Celui-ci passe à nouveau à la case et à 0,5 pour la marge. Maintenant, c'est corrigé et vous pouvez voir que la couleur n' est pas correcte. Il montre cette étrange couleur bleutée, bleu sarcelle. Ce n'est pas ce que nous voulons. Cela est dû au fait que le remplissage et l'opacité des couleurs sont de cette couleur bleu clair Vous êtes passé au blanc. Vous pouvez voir la bonne réponse sur ce que vous avez sélectionné ici. Laissez-nous compiler maintenant. Agrandissons-le un peu pour qu'il soit mieux adapté à l'image de marque. C'est ici que vous pouvez contrôler la taille. Si vous essayez de modifier la taille de l'image sur ceux-ci, cela ne fonctionnera pas. Permettez-moi de passer à la taille de l'image de marque et vous pouvez la modifier ici la taille de l'image de marque et vous pouvez la modifier Élargissons-le simplement. Par exemple, 350 Lee par exemple, 60 ici en hauteur. Voici à quoi cela ressemble maintenant, 350,60. Vous pouvez à nouveau copier la taille de l'image et la coller par-dessus les autres Vous pouvez cliquer sur le texte ici et l'aligner au milieu de cette barre de progression. Changeons le texte en rubic semi-gras, ce que nous avons utilisé jusqu'à présent Nous allons également changer cette taille à 20. Je le réduis, écrivons juste un nombre aléatoire pour le moment. Écrivons 76. Je veux juste écrire un chiffre que nous puissions voir ce que nous faisons. Nous allons changer cela plus tard de manière dynamique dans le jeu, mais voici à quoi cela ressemble en ce moment. Ajoutons un plan. Je vais en ajouter deux à la taille du contour , puis changer la couleur du contour. Par exemple, vous choisissez ce sélecteur de couleurs. Vous pouvez choisir une couleur ici. Je pense que je vais simplement choisir la couleur de fond de cette barre de progression. OK. Cliquez à nouveau dessus, et je vais également ajouter une ombre si vous écrivez 66 ici pour l'ombre par exemple. Vous pouvez donc le voir clairement et vous pouvez cliquer sur cette couleur d'ombre pour changer l'alpha en un. Il s'agit de l'ombre du texte. Pour ce qui est de l'ombre, je vais utiliser le décalage de trois par trois. Et je vais changer l' opacité à 0,5. Ce n'est pas trop visible quand on le regarde d'ici, il est beaucoup plus beau OK, ça a l'air sympa. Nous pouvons maintenant désactiver le contour en pointillés afin de voir à quoi il ressemble en ce moment Je pense que ce que nous pouvons faire maintenant, cliquer sur, voyons voir ici, sur la case horizontale. Et nous pouvons lui donner un peu d'espace. Ce que nous pouvons faire ici pour le rembourrage gauche et à droite, je vais le donner, par exemple, 30h30 . Voilà à quoi ça ressemble. Maintenant, on l' éloigne des côtés. En fait, je veux en donner plus. Cliquez à nouveau sur l' horizontale, 35 par 35, puis en haut et en bas. Je pense que je vais le donner d'ici 30 par 30. Voilà à quoi ça ressemble maintenant. OK, laissons un peu d' espace entre les icônes. Et cela se fait si nous recherchons un espaceur et le plaçons entre l'icône et la case horizontale. En fait, pas ici. Faisons-le glisser jusqu'ici. Entre l'image du cœur et la barre de progression. L'entretoise est là. Mettons le x, donnez-lui peut-être un espace de 15. Donnons-lui en fait plus d'espace. Je pense que nous pouvons lui donner plus d'espace pour l'entretoise, peut-être 20 à la place Je pense également que je vais lui donner plus d'espace ici pour la boîte horizontale ci-dessus. Au lieu de 35, je vais en donner à 40. gauche et la droite seront 40, et le haut et le bas seront 30. Voilà à quoi ça ressemble maintenant, a l'air sympa, on peut compiler maintenant. Copiez-collez ceci et modifions-le en tant qu'armure pour la boîte horizontale. Il suffit de cliquer ici et de cliquer sur Contrôle. Vous pouvez voir maintenant qu'ils sont les uns au-dessus des autres parce que nous avons en fait besoin d'une boîte verticale pour les placer les uns au-dessus des autres. Nous avons oublié de le faire. Cherchons une boîte verticale. Voyons juste ci-dessous l'image d'arrière-plan. N'oubliez pas qu'il s'agit de la superposition, l'image d'arrière-plan Ensuite, nous pouvons avoir la boîte verticale où nous avons la santé et l'armure. Mettons-les dans cette case verticale. Maintenant, en ce qui concerne la boîte horizontale, au lieu d'avoir le rembourrage à l'intérieur, vous pouvez voir qu'elle est ajoutée en double, car elle ajoute un rembourrage pour les deux. Copions simplement ceci. Je vais cliquer sur cette flèche pour la supprimer. Cliquez également sur la case horizontale ici. Supprimez-le, ajoutez-le plutôt pour la boîte verticale, le parent de ces deux. En cliquant ici, collez le rembourrage que vous aviez auparavant, et maintenant vous l'avez ici Ajoutons simplement à nouveau une entretoise entre les deux car ils sont trop rapprochés ici pour l'espacement C'est le Y. J'en ajouterai 15 pour l'icône. Modifions-le en bouclier d'icônes. Remplaçons-le par celui-ci pour la couleur du remplissage. Remplaçons-le en violet. Permettez-moi également de le copier-coller ici. Je pense que oui, tout devrait bien se passer pour le moment. Maintenant, si vous le souhaitez, vous pouvez également cliquer dessus. Par exemple, cette image. Cette image. Modifions-le en fonction de la visibilité de Hit Testable. Nous ne pouvons pas interagir avec elle, avec la souris, je crois celle-ci et celle-ci. Et nous pouvons également modifier la visibilité pour atteindre Testable. Oui, ça devrait être tout, juste pour que la souris n' interagisse pas avec eux. Si vous devez interagir à l'avenir, nous en changerons le nom ultérieurement lorsque nous en aurons besoin en tant que variables. Nous pouvons donc changer les noms ici, mais pour le moment c'est terminé. Voici à quoi ressemble notre volet santé. Si vous cliquez sur Plate pour voir à quoi cela ressemble, agrandissez l'écran. Voilà à quoi ça ressemble. Ça a l'air sympa. Nous avons donc maintenant la santé et l'armure et nous pouvons y ajouter des fonctionnalités. 159. 11.02 Appliquer des dommages: Maintenant que nous sommes en bonne santé, allons-y et infligeons quelques dégâts. Si nous allons dans la base de joueurs, nous avons maintenant ce projectile, ce tracé linéaire que nous sommes en train de tirer ici Ce que nous voulons dire, c'est que si l' acteur possède le joueur technique, nous voulons lui infliger des dégâts. Pour infliger des dégâts, il suffit faire glisser le pointeur d'ici et de dire « appliquer des dégâts ». Vous avez cette fonction et vous êtes très facile à utiliser, elle va l'éliminer. Nous avons encore de l'espace pour travailler. Ici, nous sommes en train d'infliger des dégâts. Vous devez maintenant préciser montant des dégâts que vous souhaitez infliger ? Supposons maintenant, par exemple, que nous ayons un nombre statique. Disons 20. Maintenant, nous devons également préciser qui est l'acteur endommagé. C'est le joueur. Nous sommes en train de trouver l'acteur à succès. Depuis l'acteur à succès, vous pouvez cliquer, faire glisser et le brancher. OK, maintenant nous avons l'acteur endommagé. Essayons-le et voyons si cela fonctionne pour tester et voir si cela fonctionne réellement. Allons-y et, en bas, provoquons n'importe quel événement dommageable. Maintenant, avant de parler des dégâts, je voudrais créer un nouveau graphique, afin de ne pas y mettre trop de choses . Tout cela va bien. Mais lorsque nous appliquons des dégâts, je veux passer à un autre événement ici ou à un autre graphique. Appelons celui-ci des points de vie, des armures de santé et des dégâts. Appelons ça comme ça. À l'intérieur d' ici, si vous cliquez avec le bouton droit de la souris et dites « Tout dommage ». Désormais, cet événement est joué chaque fois qu'un joueur subit des dégâts. Nous pouvons simplement essayer d'imprimer une chaîne à l'écran pour voir si cela fonctionne. Et faites glisser ces dégâts dans cette chaîne, cela affiche les dégâts que nous infligeons au joueur. Maintenant, si nous cliquons sur Jouer et sélectionnons Terrorist ici, puis Terris ici Si je prends simplement une arme et que j'essaie de tirer sur le joueur, vous pouvez voir qu'elle en affiche 20 à l'écran, car maintenant j'inflige 20 dégâts à ce joueur. OK, ce code fonctionne. Maintenant, si je reviens en arrière, au lieu d' infliger 20 dégâts comme un chiffre statique, repartons à l'intérieur d' une structure, ouvrons la structure qui se trouve à l'intérieur d'ici. Ajoutons deux variables. Ils sont à la fois un flotteur et un flotteur. maintenant à la première, comme nous voulons l'appeler, appelons-la blessure à la tête. Maintenant, ce que vous pouvez faire, vous pouvez le rendre très précis, par exemple, combien de dégâts devriez-vous faire lorsque vous vous cognez les jambes ? Combien de dégâts devriez-vous faire lorsque vous vous cognez les bras, etc. ? Mais pour que ce cours soit plus court, complexe ou plus court et simple, il devient plutôt très long pour ce cours, il suffit de le simplifier un peu. Je vais faire un dommage à la tête et un autre au corps. Dommages corporels, deux types de dommages. Cependant, je vais vous montrer comment vous pouvez faire le reste. Cela prend un peu plus de temps, mais le processus est le même. OK, maintenant nous l'avons à l'intérieur de notre structure. Maintenant, nous devons également l' ajouter à la table de données. Alors allez-y et ouvrez le tableau de données à l'intérieur d'ici. Maintenant, avant de le faire, je vais déplacer les dégâts ici, juste pour rester un peu plus organisée. Après le MO, je vais m'occuper des dommages à la tête et au corps ici. Maximisons-le après le maximum de MO. Permettez-moi d'ajouter deux colonnes à droite. La première est appelée lésion de la tête, la suivante est appelée lésion corporelle. Ensuite, vous devez spécifier l' ampleur des dégâts que vous infligez. Maintenant, disons par exemple que pour les dégâts à la tête, j'inflige 20 dégâts, je soustrais 20 Pour les dégâts corporels, je n'en fais que dix. Je vais faire de même. En fait, modifions-le simplement pour voir s' il y a une différence entre les quatre. Supposons que nous infligeons 15 dégâts et cinq dégâts, soit huit dégâts pour le pistolet, c'est beaucoup moins Dix dégâts par exemple. Et disons cinq dégâts ici. OK, vous pouvez donc ajuster cela comme vous le souhaitez. Téléchargez-le maintenant sous forme de fichier CSV et laissez-moi accéder à mon dossier de téléchargement à l'intérieur d'ici. Je vais le renommer à nouveau en T Weapon Info. Maintenant, à l'intérieur d'ici, passons encore une fois aux tables de données. Et permettez-moi de fermer ceci et d'importer le tableau de données ici. OK, maintenant que nous avons ces informations, sauvegardons tout. Maintenant, il se bloque parfois chaque fois que vous essayez de sauvegarder et que vous modifiez quelque chose à l'intérieur d'une structure. C'est normal, comme c'est souvent le cas . Lorsque vous modifiez cette structure et que vous ajoutez de nouvelles valeurs et des éléments de ce genre, elle se bloque généralement N'oubliez pas de sauvegarder votre travail. Assurez-vous, laissez-moi simplement ouvrir le tableau de données pour m'assurer que toutes mes valeurs sont connectées, comme avant et ce n'est pas Vous pouvez voir que c'est ici. Il se bloque parfois et vous devez le refaire ici Mais heureusement, nous n' avons pas grand-chose à faire, il suffit de le faire glisser vers le haut, puis je pourrai simplement faire glisser à nouveau le tableau de données ici. OK, sauvegardons maintenant tout et espérons-le, ne nous écrasons pas. Maintenant ça a marché. Ouvrons maintenant la base de joueurs. Dans le lecteur, ouvrez la base de joueurs. Essayons maintenant d' endommager la tête et le corps. Maintenant, ce que vous recherchez habituellement c'est si vous accédez aux actifs que vous avez importés pour le joueur. Ici, nous avons le squelette du joueur, le maillage squelettique du joueur. Mais nous avons également ce que l' on appelle un atout physique. C'est en fait là que vous frappez. Cet atout physique est l'endroit où vous frappez le joueur. Vous pouvez essayer d'ajuster cet actif physique. Vous pouvez agrandir ou réduire ces formes. Il s'agit en fait de votre boîte à succès. Vous pouvez développer le joueur comme vous pouvez créer des formes, en gros, il suffit de le tuer, de le réduire, etc. Mais pour le moment, pour ce des dégâts à la tête, nous allons nous attaquer à celui-ci. Permettez-moi de minimiser la vitesse de la caméra. Vous touchez cette forme ici et celle-ci s' appelle un coup. On les appelle essentiellement la forme du corps. Si je reviens ici, dans la base de joueurs. Maintenant, voici les résultats, si vous cliquez à nouveau sur la flèche. Revenons ici après les dégâts infligés. Je veux juste l'imprimer pour que tu puisses le voir. Je veux imprimer le nom du hit bone, le nom du hit bone, et le faire glisser ici. Et je vais juste minimiser cela une fois de plus. Nous imprimons maintenant le nom de Hit Bone. Nous pouvons voir ce qui se passe si vous cliquez sur Play Terrorist et si je clique sur Play Terrorist en tant que terroriste pour le ciel également. Tirons simplement sur Displayer. Si je tire sur la tête, ça le dit. Si je tire sur la jambe, c'est écrit cuisse. C'est, c'est le pied, non ? C'est la cuisse. Et voici la main, main droite, la main gauche, et ainsi de suite. Vous pouvez voir que nous photographions différentes parties du corps. Maintenant, juste pour rendre les choses un peu plus intéressantes pour nous, prenons simplement ce nom à succès. Ce que nous pouvons faire, c'est comme pour les énumérations, où vous pouvez activer l'énumération, vous pouvez activer le nom ici, activer le nom, car n' oubliez pas qu'il s'agit d'une variable de nom Activez le nom et vous pouvez simplement le brancher avant appliquer les dégâts et cliquer sur le signe plus pour le faire tourner. Vous devez maintenant spécifier le nom. Je m'appelle Head. Si vous revenez ici, vous verrez que ça s'appelle Head. Vous pouvez écrire Head puis le connecter à ici par défaut Je vais appliquer les dommages corporels par défaut, mais si c'est la tête, nous allons appliquer les dommages à la tête. Je vais juste le copier-coller. Et par défaut, je vais appliquer les dégâts corporels. Laissez-nous maintenant obtenir les informations ici. Si je copie simplement tout cela, informations sur notre arme ici et notre variable d'arme, je crois que c'est sur ce long document. En fait, c'est l' acteur à succès. C'est l'arme. Je le branche juste ici. Masquez les épingles non connectées. Je veux juste voir les dommages corporels, les dommages à la tête, et relier les dommages à la tête, les dommages corporels, et aussi pour l'acteur endommagé. N'oubliez pas de le reconnecter comme ça, d'accord ? Chaque fois que nous nous cognons la tête, nous lui faisons des dégâts. Chaque fois que nous heurtons le corps, nous lui faisons des dégâts. Il suffit de cliquer sur jouer et de voir ce qui se passe. Maintenant, si je joue à nouveau le rôle du terroriste et que je tire dans la tête, vous pouvez voir que cela fait 20 dégâts. Si je tire sur le corps, il fait dix dégâts. OK, donc maintenant nous avons un peu de dégâts par balle dans la tête. OK, génial. Cela fonctionne donc. Je vais juste minimiser cela. Et je vais également supprimer le débogage ici pour le plateau de ligne afin de ne pas voir les lignes rouges Et c'était tout pour ça. Encore une fois, vous pouvez créer un système plus complexe, mais pour que ce cours ne soit pas trop complexe, voici comment nous pouvons le faire. Nous endommageons la tête et le corps également. N'oubliez pas de définir les valeurs hors du tableau de données. Vous pouvez ajuster ces chiffres. Oui, allons-y et passons à la suivante. 160. 11.03 Structure d'information pour les joueurs: Très bien, nous allons maintenant ajouter les points de vie du joueur, l'armure , le montant et ainsi de suite. Mais avant cela, créons une structure de joueurs. Passons maintenant aux plans et aux structures. Et maintenant, au lieu des informations sur l'arme, cliquez avec le bouton droit sur Blueprint, puis ajoutons une nouvelle structure Et laissez-moi appeler cela une information sur une couche. Ouvrons-le. Maintenant, pour ce qui est des informations sur le joueur, ce que je veux ajouter, c'est quelle est la santé maximale que le joueur peut avoir ? Il s'agit d'un nombre flottant, pas d'un entier, car il est parfois calculé comme une décimale Et puis tu augmentes le nombre de points de santé. Ensuite, vous avez le Max Armor. N'oubliez pas que nous avons également l'armure dans le jeu. Je peux ajouter quelque chose à cela. N'oubliez pas que si vous accédez au joueur et à la base de joueurs, nous avons également des propriétés de fonctionnement. Nous avons la vitesse de marche, la vitesse de course, la vitesse d'accroupissement. Vous pouvez également l' avoir à l'intérieur d'ici. Nous n'avons pas besoin de variables distinctes ici. Ajoutez simplement la vitesse de course. J'ajoute la vitesse de marche, je peux aussi ajouter la vitesse d'accroupissement Comme ça. OK, maintenant nous l'avons. Ce que nous pouvons faire, nous pouvons les supprimer plus tard. Nous devons donc d'abord terminer cela avant de le supprimer. Tout ce que vous avez, c'est une valeur statique qui ne changera pas. Par exemple, quelle est la vitesse de course, de marche, de vitesse , de vitesse d'accroupissement Et ils ne changeront pas pendant le jeu. Si vous avez des nombres statiques, il est très agréable de les ajouter à l'intérieur d'une structure. Je pense que c'était ça à l'intérieur. Ce que nous pouvons faire, c'est d' aller de l'avant et de le sauvegarder. Sauvegardez tout. Passons à la suivante et créons le tableau de données. 161. Table de données d'information des joueurs: Très bien, je suis donc de retour aux tables de données. Maintenant, pour ce qui est de celui-ci, l' ancien, je vais appeler ici DT Weapon Info. Créons-en un nouveau. En fait, je vais juste le dupliquer pour ne pas avoir à tout réorganiser. Et je vais juste l' appeler DT Player Info. Il suffit de cliquer sur le contrôle A , puis de tout supprimer. OK, tout va bien ici. Revenons simplement à la structure et voyons ce que nous avons. Pas les informations sur l'arme, mais les informations sur le joueur à l'intérieur. Ce que nous avons d'abord. Maintenant, avant d'ajouter quoi que ce soit, vous devez avoir une colonne ID. C'est indiqué dans les informations sur les armes. N'oubliez pas que nous avons celui-ci appelé ID. Nous avons besoin d'un identifiant pour celui-ci, nous n'en avons pas vraiment besoin. Vous pouvez simplement appeler le nom, par exemple, vous pouvez l'appeler un. Disons-le simplement, car nous n'aurons qu' une seule ligne pour le joueur contenant toutes les informations. Nous n'avons pas besoin de plusieurs lignes ici. OK, pour le premier, nous avons le maximum de santé. Ensuite, nous avons l'armure, puis la vitesse de course. Ensuite, nous avons la vitesse de marche, puis la vitesse d'accroupissement OK, nous avons ces valeurs. Et permettez-moi de le réduire légèrement. Ce que vous pouvez faire maintenant, c'est pour l'identifiant, nous l'avons réglé sur un pour la santé maximale. Je vais le régler à 100 pour l' armure maximale de 100 ainsi que pour la vitesse de course. Maintenant, nous avons déjà défini ces deux valeurs par défaut. Si je vais voir le joueur, je clique sur la vitesse de course, elle est réglée sur 750. Pour l'instant, je vais le mettre à 750. Pour la vitesse de marche, je l'ai réglée sur 400, et pour la vitesse d'accroupissement, je l'ai réglée sur 200 Alors écrivons cela. Maintenant, nous sommes prêts. Cliquons sur le téléchargement du fichier TSV comme avant. Ouvrons-le ici et appelons-le «  info pour un joueur ». Fermons ça. Passons maintenant aux tableaux de données. Maintenant, avant de l'importer, je vais en créer un nouveau. Accédez à Divers et sélectionnez Table de données. Maintenant, sélectionnons les informations sur le joueur. Cliquez. OK. Appelons-le T Layer Info. C'est ici. Nous pouvons maintenant l'importer si vous cliquez dessus en faisant glisser le pointeur dès maintenant. Il a maintenant téléchargé toutes les valeurs. De plus, cela fonctionne maintenant et nous pouvons tout enregistrer. Maintenant, n'oubliez pas que lorsque nous devons utiliser cette table de données, nous devons créer une fonction dans la bibliothèque, comme avant. Créons une nouvelle fonction dans la bibliothèque. Nouvelle fonction, appelons celle-ci, pour obtenir des informations sur les joueurs, car c'est ce que nous devons faire. Copiez-collez simplement le truc ici. Copier-coller tout cela. Collez-le à l'intérieur d'ici. Connectez ceci comme ici. Et connectons-le ici. Au lieu des informations sur l'arme DT, nous avons besoin des informations sur le joueur DT et revenons. Faites-le glisser ici et appelez-le info. Laissez-nous tout compiler et enregistrer. N'oubliez pas non plus de le transformer en une fonction pure comme celle-ci. Parce que nous ne recevons que des informations, nous ne définissons pas d'informations. Essayons de l'utiliser juste pour voir si quelque chose ne va pas. Passons, par exemple, au joueur, à sa base. Disons que je voulais m'en servir. Ici, je peux dire à juste titre obtenir des informations sur les joueurs, et les voici. Vous pouvez maintenant obtenir les informations du joueur à partir de celui-ci. OK, pour le moment, nous n'avons pas vraiment de carte d'identité. Tout comme lorsque nous l'avons utilisé avec les armes. Comme si nous avions un nom d'arme. À partir du nom de l'arme, nous extrayons des valeurs pour la base de joueurs Nous n'avons en fait qu'une seule ligne de code ou une seule ligne dans le tableau de données, nous n'avons que cette ligne ici. Cela n'a pas vraiment de sens d'en écrire un à chaque fois pour extraire de cette ligne cet identifiant, car il restera le même tout le temps. Pour améliorer les choses, ce que nous pouvons faire, c' est simplement revenir ici dans les informations sur le joueur, puis nous pouvons simplement le déconnecter. Nous pouvons également simplement supprimer tout cela ici et supprimer cette variable d'ici. Maintenant, ce que vous pouvez faire c'est juste le nom de la ligne, il y en a toujours un. Définissez simplement le nom de la ligne sur un. Voilà, si je compile maintenant dans la base de joueurs, quand je dis informations sur le joueur, maintenant il obtient toujours ces informations sur le joueur. Nous n'avons donc pas vraiment besoin d' écrire quoi que ce soit ici et cela n'a pas vraiment de sens lorsque nous n'avons qu'une seule ligne. Quoi qu'il en soit, nous obtenons simplement les informations de la table de données à partir de cette première ligne. OK ? Nous avons maintenant ces informations et nous pouvons les utiliser. Sauvegardons tout et passons à la suivante. 162. 11.05 Régler la santé et l'armure de base: Très bien, nous sommes maintenant prêts à définir la santé de base. heure actuelle, lorsque nous arrivons dans le niveau, notre santé est essentiellement de 76 , car c'est ce que nous avons défini dans l'interface utilisateur Il s'agit simplement d'un nombre statique que nous avons défini ici par le biais de ce pourcentage. Cela n'a pas vraiment de sens. Allons-y et définissons la santé et l'armure de base chaque fois que nous apparaissons. Pour cela, ouvrons la base de joueurs, c'est parti. Passons au graphique des points de vie, de l' armure et des dégâts. Je souhaite organiser deux événements. Je veux créer le premier appelé Set Layer Health. Je veux créer l' autre qui s'appellera Set Layer Armor. Nous avons ces deux-là. Nous voulons également le faire passer par le serveur. Faisons-le passer par le serveur. Set Layer exécute également celui-ci sur le serveur. Définissez une armure de couche. Laissez-nous les exécuter à la fois sur le serveur et de manière fiable. Laissons exécuter le serveur ici, en faisant glisser et en disant « définir la couche » pour celui de l'armure Partons d'ici et disons couche serveur, définissons l'armure du joueur comme ceci. OK, maintenant je vais juste le déplacer vers le bas pour que nous ayons plus d'espace pour travailler. Ce que nous voulons faire, c'est simplement définir la variable de santé. Nous avons maintenant besoin de deux variables ici. Nous en avons besoin d'un appelé santé actuelle, car dans la structure, nous en avons créé un appelé santé maximale. Il s'agit de la santé maximale que le joueur peut avoir. Mais nous en avons également besoin pour notre état de santé actuel. À l'heure actuelle, nous avons la santé et l'armure actuelles, toutes deux pour la santé d'ici. Allons-y ici. Définissons l'état de santé de celui du serveur. Faites glisser cette épingle dans l' événement où elle en créera une. Et faites également glisser cette épingle plus loin dans cet événement. Celui-ci. N'oubliez pas que vous définissez la variable sur le serveur. Vous devez le faire répliquer. Le client peut également voir l'état de santé des autres joueurs. Vous devez également le faire pour ici. Allons chercher l'armure. Branchez-le et branchez-le ici. Branchez-le ici. Configurons celui-ci pour qu'il le reproduise également. Maintenant, nous l'avons. Ce que nous pouvons faire avec ça maintenant, c'est me laisser les réunir. Maintenant, je peux revenir au début de la pièce. C'est ici que je veux définir la santé de base des joueurs. Chaque fois que le joueur apparaît instantanément, c'est vous qui définissez sa santé ici À partir d' ici, je veux dire Set Health. Notre Set Player health est ce que nous appelons « Set Player Health ». Nous voulons également utiliser l'autre outil appelé Set Player Armor. Ensuite, nous devons spécifier quels sont la santé et l'armure actuelles. Il est plein lorsque vous apparaissez. Lorsque vous apparaissez, je veux vous demander d'obtenir des informations sur le joueur. On peut le casser ici. Ensuite, nous pouvons définir ici le maximum de santé de l'armure. Nous pouvons le faire comme ça. Mais je pense en fait que je vais créer deux fonctions différentes. Mais sur celui-ci, je vais cliquer avec le bouton droit de la souris et dire «  promouvoir une fonction » ou « réduire » en fonction. Appelons celui-ci, obtenons le maximum de santé du joueur et faisons-en une pure fonction. Au lieu de ce nom complètement fou, je vais juste dire Max Health. Allons à l'intérieur d'ici. Organisons-le un peu. Faisons-le aussi pour l' autre. Laissez-moi simplement copier-coller ceci. Excellente. Copiez-collez ceci. Permettez-moi de dupliquer celui-ci ici. Dupliquer. Appelons celui-ci Get Armor au lieu de. Je vais supprimer celui-ci. Appelez-le Max Armor. Pour un maximum de santé, déconnectons-le, passons en armure maximale et branchons-le ici. Maintenant, nous pouvons prendre ça, obtenir le joueur Max Armor et le brancher ici également. OK, c'est juste que ça a l'air un peu plus propre. Et maintenant, nous fixons le maximum de santé et d'armure des joueurs . Maintenant, si nous cliquons sur jouer, rien ne s' affichera pour le moment. Et vous l'avez peut-être déjà deviné, c' est parce que nous ne mettons pas vraiment à jour l'interface utilisateur pour le moment Nous ne faisons que définir ces variables et elles sont maintenant correctes. Cependant, nous n' allons jamais accéder à l'interface utilisateur pour le moment et mettre à jour ces valeurs ici. C'est ce que nous allons faire dans le prochain. 163. 11.06 Fonctionnalité de l'interface utilisateur Health & Armor: Me voici donc à l'intérieur du plan principal d'Uji. Et maintenant, allons-y et mettons à jour la santé et l'armure. Donc, la première chose à faire, est de les utiliser à l'intérieur du graphe d'événements. Pour ce faire, n'oubliez pas que nous en avons besoin en tant que variables. Cliquez sur le premier. C'est la partie du progrès en matière de santé. Je vais l'appeler santé juste pour la barre de progression. La prochaine fois, je vais l'appeler Armor. N'oubliez pas non plus de prendre cela comme variable. Nous pouvons donc les voir comme des variables ici à l'intérieur du graphique. Je peux les utiliser et nous pouvons les modifier. Cliquons également sur le texte. Le texte que nous devons également modifier. Le premier s'appelle Text Health, également variable. La suivante est appelée armure fixe à bras et est également variable. Maintenant, nous n'avons pas vraiment besoin de quoi que ce soit d'autre pour être une variable, est la seule chose que nous devons modifier. Compilons et passons au graphique. Je vais créer deux nouvelles fonctions, la première appelée update, update, health I. Je vais aussi créer l'autre appelée update, ou elles le sont presque, ou elles vont en fait suivre la même logique. Mais celui-ci est pour la santé, celui-ci est pour l'Ama. OK. Que devons-nous vraiment faire ? C'est toujours ce que vous devez vous demander lors de votre codage. Qu'est-ce que nous essayons de faire en ce moment ? Ce pourcentage est défini ici pour la barre de progression. OK, passons au graphique. Faisons ce progrès, faisons-le ici. Passons maintenant à la grève et disons le pourcentage, car c'est ce que nous voulons modifier ici. C'est un pourcentage défini, allons-y. C'est facile. Connectons-le. Il y a une chose que vous devez savoir à propos du pourcentage d'une barre de progression. Vous pouvez voir ici, ça va de 0 à 1 Il ne va pas de 0 il va de 0 à 11 c'est 100 % Ce que nous devons faire maintenant, obtenir l'état de santé actuel en utilisant un état de santé à courant flottant. Faisons de cette variable, cet état de santé actuel. Disons par exemple que j'ai 100 points de vie et que j'ai été endommagé au moins dix, et maintenant j'en ai 90. Si vous le branchez maintenant, la valeur sera de 90. Cela n'a aucun sens car la valeur maximale est de un. Même s' il vous reste environ un point de vie sur 100, la barre complète s'affichera car une seule est en fait la barre complète ici. Nous devons le diviser d'une manière ou d'une autre. En fait, nous avons également besoin de la santé maximale , de la santé actuelle, de la santé. Lorsque nous les divisons, si vous faites glisser le pointeur à partir de la santé actuelle pour diviser la santé maximale , par exemple, disons que vous avez 90 points de vie. Nous pouvons dire 90/100 car c'est votre santé maximale. Ce sera 0,9 Alors le 0,9 que nous branchons ici, ce sera correct car maintenant la barre de pourcentage sera quelque chose comme ça chaque fois que vous en perdez dix, d'accord ? Par exemple, supposons qu'il me reste 40 points de vie, 40/100, c'est 0,4 et cela se connectera ici Et la barre de progression sera à 0,4. Comme ça, elle sera correcte maintenant. OK, c'est réglé. Faisons la même chose ici. Nous avons l'armure actuelle et nous avons l'armure maximale. Ensuite, nous les divisons ici. Prenons la barre de progression l'armure et disons « set percent ». Allez-y, connectez-les ensemble. Maintenant connectons-le ici. Maintenant, nous sommes également en train de régler correctement l'armure. La prochaine chose que nous devons faire est également de définir le texte ici. Cliquons sur le texte. Voici ce texte Santé. Allons-y et disons Set Text. Voyons voir ici. Réglez le texte, c'est celui-ci. Et connectons-le maintenant. Définissez le texte. Faisons de même pour l'ensemble d'armures. Nous devons les mettre à jour tous les deux. Que doit contenir le texte ? Que devez-vous afficher ici ? C'est très simple. Juste cette variable, l'état de santé actuel. Si mon état de santé actuel est de 40, je souhaite afficher le chiffre 40 ici. Très facile. Partons de l'état de santé actuel, connectons-le ici. Et comme Unreal Engine convertira automatiquement la variable flottante en variable de texte et il la connectera simplement ici OK, très bien, très facile. Faisons la même chose ici. Brisons cette armure actuelle. Branchez-le. Et juste comme ça, c'est maintenant terminé. OK, c'était donc ça. Ceci met à jour maintenant l'armure et celui-ci met à jour la santé. Continuons dans le suivant. 164. 11.07 Mettre à jour l'interface utilisateur Health & Armor: OK, maintenant ce que nous devons faire, c'est mettre à jour l'état de santé du joueur. Passons maintenant à la santé. N'oubliez pas que dans la base de joueurs, dans le graphique des fourgonnettes, nous avons défini la santé et l'armure du joueur lorsqu'il apparaît, cela devrait être mis à jour Nous pouvons maintenant le mettre à jour lors d'un autre événement. Mais je pense qu'il vaut mieux le faire comme continuer le code ici. Et la santé, lorsque nous définissons la santé, nous définissons la variable et la répliquons Continuons simplement le code ici. Laisse-moi juste faire glisser celui-ci vers le bas. J'ai plus d'espace. Permettez-moi de créer un nouvel événement. N'oubliez pas que lorsque vous mettez à jour l'interface utilisateur, celle-ci passe par le client. L'interface utilisateur passe par le client. Tu le catals, fais-le ici. Nous devons créer un événement client appelé Set Player Health. Ensuite, vous devez l'exécuter en possédant un client fiable. Maintenant, ce que tu dois faire avec celui-ci, c'est de me laisser emporter tout ça ici. Nous avons déjà la référence principale de la Banque mondiale. N'oubliez pas que nous avons la manette du joueur ici. Et on peut intervenir comme ça. Ensuite, nous pouvons faire glisser le pointeur d' ici et dire update, je crois que nous l'avons appelé update health, celui-ci. Nous pouvons maintenant le connecter à l'événement comme ceci. Nous pouvons maintenant connecter l' état de santé ici, appelons l' événement client CL update ou CL set player health. Celui-ci pour l'état de santé actuel. Nous allons juste brancher celui-ci ici pour un maximum de santé. Nous avons déjà créé une fonction qui permet définir la santé maximale du joueur. Comme ça ici. OK, c'est entièrement fonctionnel. Faisons de même pour l'armure. Nous avons l'armure de joueur définie. Permettez-moi de le déplacer un peu vers le bas. Et créons un nouvel événement appelé L, Set armor. Exécutez-le via le client, de manière fiable. Ensuite, lancez le client ici, définissez l'armure du joueur. Celui-ci pour celui-ci, juste avant d'avoir besoin de la référence de la manette du joueur, vous avez besoin de B main. Ensuite, nous devons appeler l'armure de mise à jour y connect, connecter les variables à l'événement comme avant. Laissez-nous connecter l'armure actuelle ici. Pour obtenir le maximum d'armure, je vais activer la fonction, pour obtenir le maximum d'armure du joueur. N'oubliez pas que la fonction consiste simplement à obtenir les informations du joueur et à les prendre d'ici. Bien, revenons au graphique des événements, ici Santé et armure. Et maintenant, cela devrait fonctionner. Nous appelons cet événement, il va mettre à jour l'interface utilisateur, quel que soit le nom que nous appelons Set Player Armor ou Set Player Health. Cliquez sur Play. Maintenant, si je sélectionne Terris, vous pouvez voir qu'il est correctement réglé sur 100,100 . Ce qui se passe, c' est au début du jeu, nous réglons la N'oubliez pas la santé du joueur que vous avez définie dans votre tableau de données, cette santé maximale. Cela définit la santé du joueur. Il va se rendre ici pour cet événement en passant par le serveur. Le serveur va définir cette variable sur celle que vous avez branchée ici Ensuite, il va mettre à jour l'interface utilisateur, ces valeurs, car cela passe par le client pour mettre à jour l'interface utilisateur. Il passe par ici pour mettre à jour l'interface utilisateur de santé. Il faut les numéros auxquels vous vous êtes connecté. Il vous donne le pourcentage parce que vous les avez divisés. Et puis vous affichez également le texte correctement à l' écran grâce à celui-ci. C'était pour mettre à jour la santé et l'interface utilisateur, en fait, notre santé et notre armure. Et maintenant, nous pouvons également utiliser cet ensemble de points de vie et d'armure du joueur lorsque nous infligons des dégâts au joueur. 165. 11.08 Faire face à des dommages à la santé: Maintenant que nous en avons fini avec les points de vie et l'armure définis, infligeons les dégâts au joueur. Nous avons ici l'événement « any damage » que nous avons utilisé auparavant et nous l'avons simplement utilisé pour voir si nous infligeons réellement des dégâts au joueur. Nous avons vérifié que dans les leçons précédentes lorsque vous vous cognez la tête, vous faites des dégâts. Si vous heurtez le corps, vous lui infligez d'autres dégâts. Et nous pouvons voir qu'il est en train d'imprimer, donc il fonctionne réellement. Tous les dégâts fonctionnent ici. OK, très bien. Nous voulons donc maintenant infliger les dégâts réels ici chaque fois que vous infligez des dégâts, et cela provient des dégâts infligés. Donc, si vous revenez à la logique de tir utilisée ici pour la ligne de traçage, lorsque vous touchez le joueur, vous infligez ces dégâts. Si vous infligez des dégâts à un acteur, celui-ci se lancera automatiquement et déclenchera cet événement, si vous subissez des dégâts. Maintenant, quels que soient les dommages que vous subissez, il s'agit des dommages que vous avez appliqués ici, à l'intérieur des dommages infligés. Et nous avons indiqué que dans notre tableau de données, nous infligeons des dégâts au joueur, quel que soit le dommage. Ce que nous pouvons faire maintenant, prendre la santé actuelle du joueur. Nous pouvons dire, par exemple, qu'en ce moment, j'ai 100 ans de santé. Alors on peut dire 100 moins. Nous soustrayons 100 de moins, disons que les dégâts étaient de dix, ce sera 90 Nous devons à nouveau régler l'état de santé. Avant cela, j'aime avoir ce nœud de serrage. Je m'assure juste que nous ne descendons pas en dessous de zéro. Nous ne voulons pas avoir une santé de moins dix, par exemple. Nous fixons cette valeur à zéro pour qu'elle ne puisse plus descendre en dessous de zéro. Et au maximum, je vais juste faire glisser celui-ci, obtenir le maximum de santé du joueur et le brancher ici. Maintenant, il est serré. Ensuite, nous pouvons à nouveau régler l'état de santé. Réglons l'état de santé à cette valeur que nous avons. OK ? Ce qui se passe , c'est que vous infligez dix dégâts. Par exemple, il indiquera que l'état de santé actuel est de 100 moins dix, soit 90. Nous allons passer par là pour nous assurer de ne pas descendre en dessous de zéro. Et la valeur de 90 sera insérée ici. Maintenant, le nouveau point de santé que nous avons est en fait de 90. Maintenant, au lieu de définir cet état de santé comme ceci, cela fonctionnerait car si vous avez cette icône, cela signifie qu'elle s'exécute sur le serveur. Si vous maintenez la souris dessus, et en bas, il est écrit « autorité uniquement ». Cet événement se déclenche uniquement sur le serveur. Encore une fois, vous pouvez définir une variable ou il est correct définir des variables sur le serveur, puis de les répliquer. Cela fonctionnera parfaitement. Cependant, n'oubliez pas que nous avons déjà défini cet événement de santé des joueurs, qui met également à jour l'interface utilisateur pour nous, au lieu de simplement l' appeler à nouveau, et nous devons mettre à jour l'interface utilisateur. Si nous devions le faire de cette façon, nous devions le copier, coller ici et le faire comme ça. Au lieu de cela, nous avons déjà créé une fonction ou un événement ici. Disons définir la santé du joueur. Et nous pouvons simplement appeler cela comme nous venons de le créer. Et on peut le brancher ici. Il passera automatiquement par là et mettra également à jour l'interface utilisateur, parce que nous l'avons appelée ici, très bien. C'est bon, génial. Maintenant, il en va de même pour le décès, si l'état de santé actuel est égal à zéro et que nous pouvons créer une branche, si c'est vrai, nous voulons appeler événement de décès. C'est à ce moment que le joueur meurt, lorsque sa santé actuelle est nulle. Nous le ferons plus tard. Mais pour l'instant, nous avons tout cela connecté. OK, cliquons sur Play et voyons si cela fonctionne réellement ici. Si je prends juste une arme et que je tire sur le joueur, maintenant vous voyez que le joueur en a 90 points géniaux. Si je lui tire une balle dans la tête, il tire -20. Maintenant, j'ai 70 points de vie qui fonctionnent correctement. Essayons-le sur le serveur. Si le serveur tue le client, permettez-moi de le minimiser ici. Si le serveur tue le client, cela fonctionne également, génial. Si je pille comme une autre arme ici, elle fonctionne également. Très bien, cette logique fonctionne. Maintenant, allons-y et façonnons l' armure dans la leçon suivante. 166. 11.09 Infliger des dégâts à l'armure: OK, pour distribuer l'armure, nous allons essentiellement suivre la même méthode. Cependant, pour ce qui est de l'armure, je veux vraiment faire moins de points de vie au joueur si vous en avez déjà une. Je ne vais donc pas faire autant de dégâts à la santé, juste déplacer tout cela, comme ça. Et je veux d' abord fabriquer l'armure, en la retirant simplement. Bon, prenons l'armure actuelle pour le moment, elle est de 100 pour commencer. Ce que je veux dire, c'est qu' faut prendre cette armure et il faut prendre cette armure et la soustraire des dégâts Je ne veux pas le soustraire un par un. En fait, je veux le soustraire, cette valeur, les dégâts, si je le multiplie simplement par, disons 1,5, puis je veux appliquer les dégâts à l'armure L'armure sera endommagée bien plus rapidement que les points de vie actuels. Il ne sera pas endommagé comme son état de santé actuel. Il va être endommagé beaucoup plus rapidement parce que nous l' avons multiplié par 1,5. Je peux aussi simplement le faire glisser depuis celui-ci, il reste organisé comme ça ici. Génial Maintenant, avec cette soustraction, nous pouvons, encore une fois, comme avant, fixer le flotteur Nous veillons à ce qu'il ne descende pas en dessous de zéro. Le maximum est d'obtenir le maximum d'armure pour ce joueur et de le brancher. Et maintenant, définissons l'armure actuelle. Encore une fois, nous avons la fonction appelée set, set player armor. Et nous allons régler l'armure comme ceci. Et maintenant, c'est mis en œuvre, d'accord. Si vous jouez ici, nous pourrons simplement l'essayer. Vous pouvez voir ici que je suis le client qui tire sur le serveur. Nous sommes en train de perdre notre armure. Maintenant, il ne sert à rien d' avoir une armure si vous voulez perdre les points de vie qui vous font des dégâts de toute façon. Donc, pour le moment, cela n'a pas vraiment de sens , car vous êtes toujours en train de perdre la santé et de mourir. Ce que je veux dire, c'est que si vous avez une armure, vous allez perdre des points de vie plus lentement, vous allez perdre des points de vie plus lentement, moins de points de vie. Ce que je peux faire ici, au lieu de soustraire les dégâts de la santé, celui-ci ici, au lieu de soustraire les dégâts, je veux faire glisser le pointeur d'ici et dire « select float » ici Nous voulons maintenant nous demander si l'armure est égale à zéro ? Prenons l'armure et disons si elle est égale à zéro ? Quand il est dit de choisir un, si cette intimidation est vraie, choisissez-en un. Si l'armure est nulle, cela signifie que nous voulons simplement infliger dégâts que nous subissions auparavant, comme ça. Cependant, l'armure n'est pas nulle pour le moment. Cela signifie qu'il s'agit de la valeur B ici. En fait, cela signifie que nous avons une armure et que je veux infliger des dégâts plus lentement au joueur. Si je le fais simplement glisser ici, je veux le diriger à partir d'ici, puis dire de diviser ces dégâts par, disons par exemple, 2,2 0,5 Infligeons ensuite les dégâts. En fait, nous réduisons les dégâts avant de les infliger au joueur. OK, maintenant, il est logique que nous ayons une armure, car lorsque nous en avons une, nous allons en fait subir moins de dégâts. Et cliquons sur jouer. Et essayons cette mécanique ici. Si je me dirige vers le serveur, si je tire sur le joueur ici, vous verrez que nous subissons des dégâts maintenant. La valeur ici, nous devons supprimer les décimales. C'est très bien pour le moment. Mais vous pouvez voir que l'armure fonctionne. Chaque fois que nous perdons l'armure, nous subissons de gros dégâts. Nous allons subir les dégâts qui s'y trouvent sans l'armure. OK, cette fonctionnalité fonctionne. Vous pouvez toujours contrôler ces valeurs, quantité d'armure que vous perdez ici, ainsi que le nombre de joueurs que vous perdez. Mais maintenant, cela fonctionne pour l'interface utilisateur. Nous devons en fait supprimer les décimales. Revenons ici dans le B principal. Ce que je veux faire, c'est essentiellement arrondir la valeur. Si je prends ce flottant, je peux utiliser celui-ci appelé round et nous arrondissons la valeur S'il y a des dégâts en ce moment , nous ne sommes pas vraiment dans le négatif, mais disons dans le positif. Si nous avons 1,6 point de vie, cela devient deux. Nous pouvons utiliser celui-ci et arrondir la valeur. Maintenant, nous pouvons le faire glisser dans le texte et le brancher. Supprimons simplement l'ancien ici. Configurons cela à la place, et faisons la même chose ici. Utilisons round et supprimons l'ancien. Branchez-le ici. Laissez-nous organiser cela. Nous allons maintenant tester cela et voir si cela fonctionne. Il suffit de créer des nœuds de route pour le rendre plus beau. Maintenant compilons, cliquez sur Play et voyons si cela fonctionne réellement. Si je montre au joueur, vous pouvez voir qu'il arrondit la valeur maintenant tout fonctionne comme prévu 167. 11.10 Empêcher de piller des fusils multiples: Le problème auquel nous sommes confrontés en ce moment, c'est si je clique simplement sur jouer ici et que je maximise ma fenêtre. Vous pouvez voir ici que j'en ai pillé un quatre. Cependant, si je clique ici pour piller une arme, je peux réellement récupérer cet AK Et je peux même les piller quatre. Je peux même piller celui-ci, et ils sont tous sur mon dos. Cela n'est pas censé se produire. Et il y a une rondelle à l'intérieur du code, dans la base de joueurs Je crois que c'est une solution simple. Passons au lot. Équipez et déposez Logic ici. Ici, dans le lot d'armes, quelque chose ne va pas parce que nous lui avons dit de ne pas piller l'arme s'il s' agit de la même arme que celle que nous avions équipée Il s'agit d'une arme à butin sur demande, car ici nous essayons de trouver l'arme dans l'inventaire Nous essayons de comparer l' arme avec l'inventaire, avec celle que nous sommes en train de piller en ce moment. Nous sommes en train de passer par là. Nous retirons l'arme de l'inventaire. Nous essayons de vérifier si nous avons déjà cette arme. Si nous l'avons déjà, nous lâcherons l'arme. Ils sont faux. Si nous ne l'avons pas, nous chargeons l'arme. Pour une raison ou une autre, je crois que cela passe par ici plutôt que là-haut. Il ne s'agit pas de lâcher l'arme. C'est comme s'il ne trouvait pas l'arme. Si j'imprime simplement une chaîne ici et que je dis deux ici, j'imprime une autre chaîne et j'en écris une. Au fait, c' est ainsi que vous débugez. Je vais maintenant voir où s'exécute le code. Est-ce qu'il court ici ou ici en bas ? Compilons et cliquons sur Play. Il ne reste plus qu'à charger cette arme. Maintenant, si je clique sur, ça dit, si je fais allusion à celui-ci, ça dit deux, le code va en fait ici Ça se passe ici sur le faux. C'est comme s'il disait « non, je n'ai pas cet article dans mon inventaire » et c'est faux. J'ai effectivement cet article dans mon inventaire. Voyons le code ici. Allons par ici. Il essaie de trouver, il essaie de comparer l'article de l' inventaire avec celui que nous essayons de mettre en lot. Ce qui se passe ici, c'est qu'il recherche d'abord ici dans l'index zéro. Il effectue une recherche dans le premier index de l'arme. Si je reviens ici, ferme-le. Si je reviens à la logique, lorsqu'il ne trouve pas la première arme, par exemple, si la première arme est un pistolet, alors celle-ci sera fausse, car vous comparez le pistolet à celui que nous voulons piller en car vous comparez le pistolet à celui que nous voulons piller celui que nous voulons piller Et ce n'est pas un fusil, ce qui signifie qu'il devient faux. Et puis il ajoute cette arme ici. Nous devons ajuster le code ici. Ce que nous devons faire, c'est nous assurer qu'il a parcouru l' ensemble de l'inventaire avant de continuer le code S'il ne reçoit que le premier objet de l'inventaire, savoir le pistolet, cela n'a aucun sens, car cela nous rapportera de l'argent, comme c'est le cas actuellement Ce que je veux faire, c'est m' assurer que cet index est visible ici. Si je clique avec le bouton droit de la souris et que j'imprime une chaîne, je peux simplement vous montrer. Et vous pouvez insérer l'index pour voir ce qu' il affiche. Et je peux compiler com play en pillant celui-ci. Maintenant, il est écrit zéro. Il n'arrête pas de dire zéro parce qu' il ne prend en compte que le premier indice. Maintenant, le fusil est, si je clique juste plus ici, le premier pourrait être le pistolet, l'index pourrait être le fusil Et il continue de vérifier uniquement l'indice zéro. Maintenant, permettez-moi de supprimer tout cela et de le supprimer. Permettez-moi de brancher l' indice des rayons ici. Laisse-moi juste le déplacer vers le haut. Déplaçons-le ici et appelons-le ray index. Compilons, revenons en arrière. Maintenant, je veux vérifier s'il s'agit du dernier index avant de continuer. Si je prends juste l' inventaire et que nous trouvions la variable ici, l'inventaire des armes. Allons-y. Supposons que dernier indice de cet inventaire d'armes dont nous disposons actuellement, ce nombre est-il égal à cet indice de zone ? Laissez-nous simplement le rendre plus joli ici. Créons maintenant une branche. Et nous nous demandons si nous en sommes au dernier index de l'inventaire ? Supprimons-le simplement. Laisse-moi brancher ça. Si c'est vrai, nous voulons continuer le code. Cependant, si nous n'en sommes pas au dernier indice, si nous devons encore vérifier certains éléments de l'inventaire, nous devons revenir en arrière. Et en fait, nous n'avons rien à faire , car s'il ne s' agit pas du dernier index, nous allons simplement le parcourir en boucle. En fait, nous ne brisons pas la boucle, nous la brisons simplement ici. Lorsque nous trouvons un objet, je n'ai en fait rien à faire. Permettez-moi d'organiser un peu les choses, laissez-moi m'en éloigner, et cela devrait régler notre problème. OK, ici j'ai créé quelques nœuds de route et ça a l'air plus joli Cliquons maintenant sur Play pour voir si cela fonctionne. Si je me contente de piller cette arme par exemple, et que je clique dessus, vous pouvez voir qu'elle la fait tomber en quatre Et si je clique ici, celui-ci disparaît également. Vous pouvez voir ici que cela fonctionne. Je ne peux pas piller deux fusils à la fois et ça marche aussi avec un pistolet, probablement Maintenant, je peux voir que je ne peux pas piller deux armes en même temps. 168. 12.01 Mort: Très bien, alors maintenant, créons la mort du joueur. N'oubliez pas que nous avons pris en compte tous les dégâts et que nous avons calculé les points de vie, l' armure et les dégâts que vous avez subis. Maintenant, nous avons dit ceci ici à la fin, si le point de vie actuel est égal à zéro, nous voulons jouer à l'événement du décès. OK, c'est très simple. Créons à nouveau un nouvel événement rapide appelé Death, lançons-le sur le serveur car nous sommes en mode multijoueur Laissez-nous le faire passer par ce serveur, un événement de décès fiable. Et faisons en sorte que le serveur soit mort ici, dans le cas normal. Donc ça se passe comme ça. Pour ce qui est de la mort, vous pouvez imaginer que nous allons en fait créer une sorte de mort comme une poupée de chiffon, où le joueur tombe simplement par terre Maintenant, nous pouvons dire jouer au montage d'animation. Cependant, je veux juste rendre les choses un peu plus amusantes et créer une poupée de chiffon sur la mort au lieu d'une animation Parce que nous l'avons déjà fait. Nous savons comment procéder au lieu d'une multidiffusion. Je veux te montrer comment tuer une poupée de chiffon. Pour ce faire, nous avons maintenant besoin d'une notification du représentant car vous allez modifier les visuels du jeu N'oubliez pas que si vous souhaitez modifier les visuels d'un représentant, veuillez le signaler ici Créons un nouvel événement ou une nouvelle variable. Et celui-ci va s'appeler Dead Bullion. Disons que c'est mort pour devenir quelque chose. Faisons-le simplement glisser dans l'événement. Et celui-ci l' intègre également à l'événement. On peut vraiment l'appeler celui-ci. Maintenant, allons-y. Si l'état de santé actuel est égal à zéro, appelons cela un décès. Faisons en sorte que le joueur soit mort. N'oubliez pas de faire en sorte que cela soit vrai. Maintenant, nous devons le représenter, le notifier. Rep notify, cela crée une fonction. Alors, double-cliquons dessus. À l'intérieur, ce que nous voulons faire, c'est simplement demander d' abord si le joueur est mort ou non. Ce lingot est-il vrai ou faux ? OK, que voulons-nous faire pour que Reg Dole meure alors que la variable Death est vraie Nous voulons simuler la physique avec ce maillage. Parce que si je passe simplement sur le marché et que j' ouvre l'ère, une seule d'entre elles n'aura pas vraiment d'importance. Et il vous suffit d'ouvrir le module physique. Vous ouvrez la ressource physique comme vous pouvez le voir ici. Si vous cliquez sur Simuler, vous pouvez voir le joueur mourir ainsi. C'est en fait Reg Death si vous le simulez simplement. Et vous pouvez le voir, c' est ce que je veux faire. Pour ce faire, nous devons simuler la physique. Prenons ce maillage et disons qu'il simule. Définissez la physique de simulation pour qu'elle soit vraie. Je souhaite également désactiver le mouvement pour le joueur. Vous ne pouvez donc pas appuyer sur votre clavier pour vous déplacer. Le joueur prend le mouvement du personnage et dit « désactiver le mouvement ». Désormais, le joueur ne peut plus appuyer sur le clavier pour se déplacer. Compilons et voyons ce qui se passe si je clique simplement sur jouer. Maintenant, je fais apparaître l'autre joueur également. Laisse-moi juste tirer sur ce joueur et voir ce qui va se passer. Je vais tirer sur ce joueur. Le joueur meurt mais tombe par terre. Réparons également à cela. Nous devons éviter certaines collisions. Et c'est parce que le maillage simule désormais la physique. Si nous examinons le maillage ici, si nous passons aux paramètres de collision, nous pouvons voir qu'il n'y a en fait aucune collision physique, ce qui signifie qu'il va tomber à travers le sol. Il n'y a que des chevauchements. La physique se chevauche lorsque je touche mes plateaux de ligne pour infliger des dégâts, mais il n'y a pas de collision physique, nous devons l'activer Prenons ce maillage maintenant. Permettez-moi de faire glisser le pointeur à partir d'ici et de dire « set collision ». Allons juste ici. Activez la collision. Je vais activer la collision. Je vais entrer en collision ici. Collision activée. J'ai à la fois une question et une question de physique. Allez-y, sélectionnez-le. En fait, je vais le faire avant la physique sinon le joueur tombera par terre. Je vais d'abord activer la physique. Essayons cela. Maintenant, nous avons la physique. OK, ce bogue est corrigé. Vous devez essayer de voir quelle autre boîte nous avons. Encore une fois, je vais aller tuer ce joueur ici. OK, maintenant le joueur est mort. Le joueur est là. Génial Un problème avec ce lecteur en ce moment, c'est qu'il a l'animation inactive activée. Parce que je peux voir le joueur respirer en ce moment. Vous pouvez voir que les épaules bougent et nous avons une animation en cours. Nous devons arrêter cette animation car elle semble stupide. Laissez-nous le faire. Restons-en là. Vous pouvez en fait dire « jouer à l'animation ». Vous pouvez sélectionner cette animation de jeu. Vous ne définissez simplement rien à l'intérieur qui supprimera réellement toutes les animations et aucune animation ne sera appliquée au joueur . Encore une fois, il suffit de double-cliquer ici pour créer une note de redirection afin que vous puissiez voir ce que je fais et suivre Ce n'est donc pas difficile comme ça. OK, maintenant compilons. Je crois que j'ai aussi remarqué un bug avec l'ombre. Si je fais juste réapparaître le joueur . Et je l'ai montré au joueur. OK. Génial Maintenant, il y a un bug avec l'ombre, car ici, en tant que joueur, vous pouvez voir que je peux me déplacer. C'est parce que, n'oubliez pas que nous avons un maillage à la troisième personne . Maille à la troisième personne. Ce que nous faisions auparavant, c'est que si vous recherchez une ombre, nous avons fait en sorte que celle-ci affiche une ombre cachée. Nous l'avons fait, souvenez-vous, il y a longtemps, dans ce cours parce que nous voulions montrer la tête du joueur. Nous utilisons ce maillage à la troisième personne pour afficher l'ombre correcte. Faisons le maillage à la troisième personne, faisons-le ici. Par exemple, disons set hidden, je crois que cela s'appelle un set caché dans le jeu set cast hidden shadow. Ne disons rien sur celui-ci, car je ne veux plus montrer mon ombre. Il y a aussi une dernière chose que j'ai oubliée. Et voici le composant de la capsule. Ce composant de la capsule, je ne veux pas qu'il entre en collision avec des armes ou d'autres choses de ce genre En fait, je vais également désactiver la collision pour celui-ci. Je vais le faire avant d' activer la collision pour le maillage, car parfois cette capsule entre en collision avec ce maillage et cela crée un désordre Éloignons-le et disons que la collision est activée. Disons simplement qu'il n'y a pas de collision comme celle-ci. Et c'est ce qui devrait être le cas, espérons-le. Éloignons-le. Ou en fait, déplacez-le simplement ici. Et nous n'avons pas besoin de le déplacer complètement là-bas. Maintenant, cela devrait fonctionner. Compilons maintenant. Cliquez sur Play. Si je vais juste ici, laisse-moi faire apparaître ce joueur Maintenant je peux tirer sur le joueur. Maintenant, nous avons détruit toutes les morts, génial. Je n'entre pas en collision avec le joueur. Le joueur ne bouge toujours pas. Et si je déménage ici avec l'autre client, vous pouvez voir que je peux déplacer ma caméra comme je le fais, comme si l'ombre avait disparu, je suis mort ici. Bien entendu, vous pouvez le rendre plus complexe. Comme si vous pouviez créer une caméra pour spectateurs. Au lieu de cela, vous pouvez même désactiver l'appareil photo. Tu ne peux pas, tu es comme ça et tu ne peux pas déplacer la caméra. Mais je pense que c'est bon pour le moment. J'adore ça. Oui, tout fonctionne correctement. Le problème actuel est que le joueur ne laisse pas tomber les armes une fois que vous les avez. Vous pouvez voir ici qu'une fois que vous avez des armes et que je vous tire dessus, vous tenez toujours cette arme. Je veux que le joueur lâche son arme, car imaginez que si tous les joueurs les tiennent en main lorsqu'ils meurent, toutes ces armes disparaîtront environ 2 minutes après le début du match. Je veux que le joueur lâche son arme, et nous pouvons également le faire. Allons-y et passons à la leçon suivante. 169. 12.02 Arme de largage en cas de mort: Très bien, alors allons-y et demandons au joueur de lâcher toutes les armes lorsqu'il meurt ici. Chaque fois que nous définissons cela sur true. Alors laisse-moi juste m' en éloigner, créer une branche et te demander si c'est mort, c'est vrai. Parce que plus tard, nous allons le mettre sur false lorsque le joueur répondra. Mais pour le moment, le joueur est mort et nous voulons lâcher l'arme. OK, revenons en arrière pour rappel et voyons ce que nous avons fait pour l'arme larguée. Si je reviens à l'événement Lutqudrop Arme, ou à un graphique, et du largage de l'arme, c'est en fait ici. Nous avons appuyé sur le bouton puis nous avons lâché l'arme. En fait, il suffit d' appeler cet événement ici. Nous n'appuyons pas vraiment sur un bouton, nous forçons simplement le joueur à lâcher toutes les armes. Nous allons donc réellement le faire. Cet événement a permis de rechercher le type d'arme équipée. Et je pense que nous devons modifier cela, car ce n'est pas seulement l' arme équipée que nous devons lâcher, mais aussi l'autre arme qui se trouve sur notre dos ou sur notre cuisse. Nous devons en fait modifier légèrement ce code. Revenons en arrière juste pour le noter et voir ce qui se passe ici. Appelons le serveur. Je crois que cela s'appelle Request Request Drop Weapon. Lâchez votre arme. Celui-ci. Et vas-y, appelle-le tout de suite. Lorsque nous l'appellerons à nouveau, cela fera tomber l'arme équipée, mais nous voulons en fait supprimer toutes les armes de l'inventaire. Permettez-moi simplement de le modifier pour cet événement. Je vais ajouter une nouvelle variable. Ajoutons la base d'armes. Parce que donnons-lui simplement l'information que nous voulons ici, base d'armes. Et appelons-le plutôt « nous ». Ici, nous devons spécifier quelle arme nous voulons lâcher lorsque nous cliquons sur le bouton pour lâcher l'arme, lorsque nous cliquons sur le K, je veux lâcher mon arme. Celui-ci, ici, arme équipée. Maintenant c'est correct pour celui-ci. Maintenant, partons d' ici et prononçons le nom. Obtenez la variable name comme avant. Obtenez des informations sur l'arme et déchiffrez-la et nous pourrons en trouver le type. Au lieu de le faire, nous pouvons le supprimer et le connecter à un, laissez-moi simplement supprimer tout ce code. Ceci, et nous pouvons voir ce que nous faisons actuellement. Nous avons tout organisé. Tout semble bon. Je ne fais que développer cela ici. Élargir cela ici également. Génial, nous avons cette configuration. Maintenant, si vous regardez le graphique de santé et d'armure, nous pouvons maintenant spécifier de quelle arme vous parlez. Nous voulons simplement supprimer toutes les armes de l'inventaire. Au lieu de faire quatre boucles, je pourrais en faire quatre par boucle, encore une fois avec l'inventaire ici. Et nous pourrions faire l' inventaire de chacun d'entre eux, nous pourrions déposer l'arme. Cependant, n'oubliez pas qu'avec une boucle de quatre par boucle, cela n'attend pas que ce code soit joué. Ce code Drop Weapon sera joué deux fois . En fait, cela va boguer votre code ici parce que cela va changer d'arme ici. Il va modifier cette valeur ici avant que vous n'ayez la chance de terminer ce cycle de code. Au lieu de faire cela, je vais faire une boucle manuelle. Ce que nous pouvons faire ici, c'est faire l'inventaire. Assurez-vous simplement que celui-ci n'est pas vide, car nous ne voulons pas lâcher d'armes. S'il n'y a rien, prenons la longueur de cet inventaire et veillons à ce qu'elle soit supérieure zéro, car nous ne voulons rien faire si elle est supérieure à zéro. Juste comme ça. S'il est supérieur à zéro, allez-y et lâchez l'arme. S'il est supérieur à zéro, cela signifie que nous avons quelque chose dans l'inventaire. Laissez-moi juste récupérer le premier article que nous avons dans l'inventaire. Ce sera à l'indice zéro. Je veux y aller et laisser tomber ça. Faisons grève d'ici. Juste comme ça, je crois. Nous n'avons pas besoin d'en faire plus ici. Parce que si vous revenez à l'arme larguée, souvenez-vous qu'à l'intérieur de cette fonction de largage d'arme, vous avez déjà retiré cet objet de l'inventaire. Parce qu'il est très important de le retirer de l'inventaire. Sinon, vous allez obtenir une boucle infinie ici. Retardons ce code. Retardons d'environ 0,1. Ensuite, nous pouvons revenir en arrière et réinterpréter ce code. Ensuite, nous allons le répéter, je vais juste prendre quelques notes miroir afin que nous puissions vraiment voir ce que je fais pour celui-ci ici, juste comme ça et juste l' autre côté également. Ce que nous voyons ici, c'est lâcher cette arme, puis retarder le code, puis essayer de l'exécuter à nouveau. Essayez de vérifier si cette longueur est toujours supérieure à zéro. N'oubliez pas que nous l'enlevons ici dans le largage de l'arme. Techniquement, il devrait être nul si nous n'avions qu'une seule arme. Cependant, si nous avons deux armes, la longueur de celles-ci sera toujours d'une. Parce que la longueur était de deux ans auparavant. Parce que nous avions deux armes. Aujourd'hui, c'est une arme. Je vais vérifier à nouveau. La longueur est-elle supérieure à zéro si c'est le cas. Et reprenez-le. Prends cette arme. Lâche-le. Il continue donc de tomber jusqu'à ce que vous n'ayez plus rien que vous puissiez faire glisser d' ici et dire « plus » ou « aucune arme à larguer ». Cela imprimera le fil si vous n'avez aucune arme au départ ou si vous avez retiré toutes vos armes de l'inventaire, maintenant vous pouvez fabriquer la plus petite, peut-être même 0,05, je crois Mais laissez-moi passer à 0,1 Peu importe que le joueur ne le remarque pas. Quoi qu'il en soit, permettez-moi de cliquer sur Play. Et essayons-le et voyons s'il y a un bug. Si j'ai cette arme ici, ce joueur les pille toutes En fait, permettez-moi de déplacer ce joueur ici. Nous pouvons donc voir les armes larguées. Laisse-moi tirer sur ce joueur. Maintenant, nous pouvons voir le joueur déposer ses armes ici. Ce pistolet et le K. Si je laisse tomber et que je passe au pistolet, j'ai moi-même un pistolet, alors laisse-moi le lâcher Je peux piller ce pistolet. Je peux même récupérer le K que ce joueur a perdu. Je peux le perdre comme avant. Il n'y a vraiment rien de mal à cela. Génial. Essayons-le également sur le client. C'était le serveur. Permettez-moi minimiser cela et d' aller voir le client. Le jeu pour le serveur. Je vais vouloir que le serveur soit doté de beaucoup d'armes. Maintenant que les ions vont tirer sur les joueurs, les voici. Je vais le laisser tomber en quatre. Je veux le K, je peux le prendre. Génial. Tout fonctionne en ce moment. heure actuelle, nous avons un problème avec ne pas pouvoir piller deux armes pour le moment Parfois, nous avons un problème lorsque nous lâchons l'arme et que nous ne pouvons pas vraiment la récupérer parce qu'elle essaie de la comparer à l'arme larguée Allons-y et corrigeons ce problème également. C'est comme ce que nous avons fait avec la réparation des armes. Si nous revenons simplement en arrière, si je reviens ici dans mon graphique, luth et équipement et que c'est le code d'arme que nous avons obtenu N'oubliez pas que nous avons comparé la variable «   lot d'armes à celle que nous voulons perdre en ce moment. Si c'est la même chose, nous avons effacé la notification, puis nous l'avons exécutée ici. Parce que n'oubliez pas que si la même valeur est exécutée deux fois, elle ne sera pas exécutée. est aussi simple que ça. Revenons en arrière. Laisse-moi juste ouvrir le guichet. Passons à la question du largage d'armes. je veux le faire, c' est parce qu'à l'intérieur d' une fonction, vous ne pouvez pas créer délai comme nous le faisions auparavant dans l'arme du lot où nous faisions un délai ici avant d'exécuter le code. Dans les fonctions, vous ne pouvez pas retarder. C'est autre chose. Ce n'est pas le délai normal que nous avons l'habitude de prendre. Nous devons réellement le faire en dehors de la fonction. Nous devons plutôt le faire ici, ici, lorsque nous voulons lâcher l'arme. Créons le code ici. Je veux fabriquer l'arme pour qu' tombe ici et qu'elle n'ait rien à voir avec ça. Ensuite, je voudrais faire glisser le pointeur à partir d'ici et dire « retarder », comme avant. Réglez-le à 20,05, puis je veux lâcher l'arme Avant de le faire, je ne veux pas le faire tout le temps. Je veux vérifier si c' est la même chose qu'avant. Je vais prendre cette arme et me demander si elle est égale à l'arme figurant dans l' inventaire que je viens de trouver. Laisse-moi faire une branche. Si c'est vrai, je veux le faire ici, laissez-moi revenir en arrière. Si c'est vrai, je veux le faire ici. Si c'est faux, je veux juste exécuter le code comme avant. Permettez-moi de réorganiser cela afin que vous puissiez réellement voir ce qui se passe OK, juste comme ça, nous essayons de comparer l'arme à larguer avec celle que nous essayons de larguer ici. Et si c'est pareil, nous allons clarifier tout cela et faire tout cela. OK, génial ici, nous n' en avons vraiment pas besoin. Nous pouvons simplement supprimer celui-ci d'ici. De plus, parfois encore une fois, l'arme devient invisible parce que cet acteur ne peut pas reconnaître cet acteur, même s'il s'agit du même acteur. Au lieu de le faire, supprimons-le simplement. Supprimez-le, et retirons-le ici. Au lieu de cela, nous supprimons constamment cette arme pour la lâcher avant de la reconfigurer. Et c'est très bien. Il n'y a pas vraiment de problème avec ça. Faisons-le également pour le pillage. Au lieu de vérifier s'il s'agit de la même chose, supprimons-le. Faisons-le simplement parce que ça ne fait pas trop mal ou ça ne fait pas vraiment mal. En fait, cela n'a pas vraiment d'importance. Allez-y et connectez-le comme ça. Allez-y, compilez. Je vais cliquer sur jouer maintenant, vérifier à nouveau. C'est principalement pour le client, car c'est là que les problèmes de réplication se produiront. Ici. En tant que client, en tant que serveur. Je vais piller des armes, me démarquer et tuer ce joueur Maintenant, le joueur est mort. Maintenant, je vais lâcher mon arme pour récupérer celui-ci. Je suis en train de lâcher mon pistolet et de le charger. Ça marche pour que nous puissions piller les deux pistolets. Chargons cette arme. Continuez simplement à piller l'arme et voyez si vous vous débrouillez, si vous avez des problèmes ou si tout va bien Nous pouvons voir que rien ne devient invisible, que tout va bien. J'essaie juste de voir s' il y a un bug en ce moment. Je crois avoir vu un bug où j'ai fait tomber les quatre. Vous pouvez voir maintenant que je l'ai déposé lorsque j'appuie à la place. l'heure actuelle, le problème, c'est que si nous choisissons un joueur ici et que nous équipons deux armes, et si je clique sur G pour lâcher l'arme, vous pouvez voir que l'arme sur mon dos est en train de tomber. Et ceci fait suite aux nouvelles modifications que nous venons d'apporter. Laissez-nous vérifier ce qui se passe. Le problème vient peut-être du fait d'échapper à l' arme ou de la laisser tomber ici Pour larguer l'arme, nous lâchons l'arme équipée. Voyons d'abord si c'est vrai. Quelle est l'arme équipée ? Faisons-le vraiment ici. Faisons-le ici pour pouvoir imprimer le nom de l'arme. Il suffit de le brancher ici, de le compiler et de le sauvegarder. Maintenant, il devrait être écrit pistolet. Lorsque j'essaie de lâcher mon arme et qu'il est écrit pistolet, l'arme équipée est correcte Il n'y a rien de mal à piller l'arme. Nous connaissons maintenant l' arme à butin. La logique est correcte. Nous essayons de lâcher le pistolet, mais pour une raison ou une autre, le fusil est lâché Maintenant, imprimons ceci. Permettez-moi également de voir si je ne suis pas armé ou non. En fait, cela n'a aucun sens parce que nous lâchons l'arme. Nous savons donc que nous ne sommes pas désarmés, nous lâchons notre pistolet Il y a quelque chose qui ne va pas ici. Et je crois que cette boucle, encore une fois, je vous l'ai déjà dit, n'attend pas ce que vous essayez de faire. C'est un problème avec les boucles. Parfois, ils exécutent simplement le code. Si je reviens ici, je crois que c'est pour essayer de lâcher la deuxième arme que vous avez récupérée Parce que cela n' attendra pas votre retard. En fait, il va parcourir en boucle et supprimer le dernier index. Je crois que c'est ce qui se passe. Déconnectons plutôt cela. Permettez-moi de le supprimer. Tiens, laisse-moi déplacer ça. Maintenant, lorsque nous trouverons une arme, créons une nouvelle variable. Créons-en une nouvelle appelée arme trouvée à larguer. C'est celui-ci, j'ai trouvé une arme à lâcher. Faisons en sorte que cette arme trouvée tombe pour qu'elle soit vraie. Alors brisons la boucle. Maintenant, nous avons trouvé une arme et prenons des notes comme avant. Ce que nous pouvons faire avec ça maintenant, c'est me laisser simplement le déconnecter et le déplacer. Maintenant, prenons ça, créons une branche et demandons si nous avons une arme ? Il a trouvé une arme à lâcher. Si c'est vrai, nous voulons d' abord définir ce paramètre sur false. Parce que la prochaine fois que nous le ferons, nous voulons nous assurer que cela ne fonctionne pas. Ensuite, nous voulons lâcher cette arme. Il suffit de le déplacer ici, et c'est bon. Nous allons lâcher l' arme comme avant. Mais nous allons le faire ici quand la boucle sera réellement terminée ici. Et l'arme à lâcher peut être celle que vous avez en ce moment. Parce que n'oubliez pas que vous avez rompu la boucle, donc c'est toujours l' arme que vous avez trouvée qui est en jeu. Nous n'avons rien à faire à l'intérieur d'ici. Dans ce cas, nous allons retarder. Ensuite, nous allons le configurer pour qu' interagisse à nouveau avec. OK, compilons. La prochaine chose que nous voulons faire, c'est que tout cela soit correct. Il n'y a rien de mal ici. La prochaine chose que je veux faire, revenir à mon armure de santé et à ma logique de dégâts ici. Assurez-vous simplement que vous avez ce délai, peut-être à 0,2. Je crois que j'ai dû le faire à 0,1. S'il y a un bug, c'est parfois parce que vous lâchez les armes trop vite. Je pense que je vais passer à 0,2 et nous laisser tout compiler et tout enregistrer. C'est la logique que nous avons suivie jusqu'à présent. Si vous avez oublié quelque chose, assurez-vous simplement que cela ressemble à ceci, ainsi que de la logique pour laquelle vous avez lâché l'arme. Si je reviens à mon graphique ici, sur le pillage, je m'assure que le pillage se déroule comme ça Nous avons supprimé la comparaison. Je peux également supprimer ce nœud de redirection. C'est ce que nous avons obtenu jusqu'à présent. Il suffit de supprimer cette variable, de poser instantanément un petit moment, puis de récupérer l'arme OK, ça a l'air bien. En plus de l'arme larguée, nous avons conçu cette arme équipée pour qu'elle soit connectée à ce serveur. Ensuite, nous utilisons le type d'arme ici et nous nous assurons de briser la boucle comme ça pour qu'elle ne se bloque pas. OK, c'est notre logique jusqu'à présent. Si nécessaire, nous pouvons essayer de réparer les choses à nouveau, mais je pense que cela devrait régler le problème. Laissez-nous faire des tests et assurez-vous que rien ne fonctionne. Je vais minimiser le serveur. Je vais jouer sur le client car c'est surtout là que la réplication se passe mal. Prenons une arme comme serveur. Maintenant, si je vais voir le client. Ici, avec le client et je tire sur le serveur, je lâche l'arme. J'essaie de piller. Je peux le piller J'essaie de piller le pistolet. Je ne peux pas parce que j'en ai un. Si je le laisse tomber, j'y vais et j'essaie de récupérer le pistolet ici En ce moment, j'ai un problème de réplication avec le pistolet. Si je le ferme et que je regarde à nouveau les délais, j'ai 0,05 après le j'ai 0,05 après largage de l'arme, puis nous avons retardé de 0,1 pour nous assurer que nous pourrons aimer cette interaction après avoir exécuté cette fonction De plus, si vous revenez à la santé, celle-ci est de 0,3. Maintenant, nous pouvons essayer de la ramener à 0,2, mais maintenons-la à 0,34 Maintenant, avant de tester des choses, passons à la mort que nous avons provoquée ici Au lieu de configurer le maillage pour que la collision soit activée. En ce qui concerne le maillage, si vous passez à la collision, vous pouvez voir qu'il interagit également avec les armes. Il interagit avec la statique et la dynamique du monde. Essayons de n'activer que la physique des collisions, non les requêtes, nous ne faisons pas double emploi avec les armes et ne causons pas de problèmes Au lieu d'activer la collision, je vais définir la physique uniquement parce que nous ne nous intéressons qu'à la physique. Nous pouvons donc créer cet effet de poupée de chiffon et tomber par terre. Seule la physique devrait être bonne ici. Essayons-le maintenant et voyons s'il fonctionne. Je crois que j'ai déjà eu un bug avec un joueur en interaction. Je voudrais rappeler cette case afin de pouvoir la corriger ici en tant que joueur ou client. Tuons le serveur. Maintenant, je peux le lâcher, essayer de le tirer au sort et je peux piller le pistolet K. Maintenant, je peux aussi piller le pistolet. Je n'ai aucun problème si je pars. Vous pouvez voir ici que j'ai reçu une erreur disant que axis n'essayait pas de lire la propriété interagissant avec le joueur. Si vous cliquez simplement sur l'erreur, vous pouvez y accéder. Il y a juste une erreur ici. Je crois que c'est le joueur qui est en train de mourir. Il s'agit en fait de régler ce joueur sur ce paramètre lorsqu'il indique « axe non ». Vous pouvez simplement résoudre ce problème en vous assurant qu'il est valide. Si je le déplace simplement, je peux le prendre, cliquer avec le bouton droit de la souris et le convertir en un get validé. Et vérifions-nous qu'il est valide avant de continuer. Ensuite, il y a aussi le bogue, car cela me montre que cette époque est également arrivée. Maintenant, j'ai fait en sorte que cela soit valide parce que cela vient également d'ici. Vous pouvez voir qu'il arrive directement dans cette boucle. Même si nous réglons ce problème, cela va échouer à cause de celui-ci. Assurez-vous que c'est valide. Cela nous a donné une ère grâce à celle-ci. Nous essayons de vérifier les choses lorsque cela n'est pas valide. Assurons-nous ici après le joueur, et je crois que nous interagissons avec le joueur qui lâche l'arme. Laissez-nous le copier ici, ici en bas. Assurez-vous que ce joueur n' est pas également celui qui a lâché l'arme. Parce que nous ne voulons pas piller l'arme, nous l'avons simplement lâchée. Cela n'a aucun sens. Mettons tout cela de côté. Juste comme ça, en fait, je pense que nous pouvons supprimer celui-ci, parce que nous le demandons déjà. Créons une branche et connectons-la ensemble, connectés à ici. Si c'est le cas, nous allons définir le joueur qui interagit, nous allons le faire avancer. Je pense que nous pouvons le supprimer, car il suffit de le vérifier. Supprimons. Supprimez-le. Cela devrait bien fonctionner. Celui-ci, nous le configurons, puis nous vérifions s'il est valide. C'est très bien aussi. OK, maintenant prenons quelques notes. La raison pour laquelle je ne le supprime pas et je le connecte simplement ici comme ça, parce que je veux m'assurer que c'est valide avant de continuer. Parce que nous venons également d' ici et que nous nous connectons directement à cela. Même si nous sommes ici, nous devons nous assurer que c' est valide avant de continuer ici. Je vais également m'assurer que le joueur est valide. glisser le pointeur ici et le dire est valide, allez-y, Faire glisser le pointeur ici et le dire est valide, allez-y, donc assurez-vous que le joueur est valide et que ce n'est pas le joueur qui a lâché cette arme Maintenant, photographions à nouveau le serveur. Maintenant, lâchons l' arme, chargez-la. Permettez-moi de l' agrandir pour que nous puissions réellement voir ce qui se passe actuellement. Tout fonctionne. Je peux lâcher le pistolet. Si je charge deux objets et que je les laisse tomber, nous lâchons le pistolet, nous n'avons plus ce virus. OK. Je peux tout charger et je ne reçois aucune boîte quand je quitte ça. OK, tout fonctionne maintenant. Je sais que cela a été source de confusion parce que nous avions beaucoup de boîtes à régler. Assurez-vous que lorsque le joueur est mort, vous lâchez l'arme. Nous allons obtenir cette première arme de l'inventaire. Si la longueur de l' inventaire est supérieure à zéro, ce qui signifie que nous avons une arme dans l'inventaire, nous lâchons l' arme et le retardons d'un montant qui ne ferait pas chuter l'arme de 0,3 dollar à ce stade heure actuelle, nous pouvons peut-être le réduire à 0,2. Mais j'en suis satisfait pour le moment, personne ne le saura de toute façon. Puis, à l'intérieur du largage de l'arme, nous avons fait cette boucle ici. Nous avons fait entrer ce taureau pour ne pas nous embêter. Et nous n'avons pas besoin de répliquer cette variable car nous ne faisons que vérifier des informations à l'intérieur du serveur Nous utilisons cette variable en dehors du serveur, nous ne l' utilisons donc jamais sur le client. Nous n'avons pas vraiment besoin de le reproduire. Nous sommes en train de le parcourir, nous effaçons d'abord cette variable. Avant de lâcher l'arme. Nous lâchons l'arme, nous la retardons pour nous assurer qu' elle est utilisée, puis les joueurs peuvent interagir avec elle. Encore une fois, le délai est de 0,1 pour celui-ci. Enfin, pour l'arme en lot, encore une fois, nous supprimons directement la variable d'arme en lot. Notify l'a effacé , puis nous l'analysons ici. OK, c'est tout ce que je sais, c'est un peu confus mais nous avons dû nous débarrasser de tous ces problèmes. Encore une fois, si vous rencontrez des problèmes, hésitez pas à visiter mon site Web, Pixel Helmet.com, ou vous pouvez également me parler sur Discord Vous pouvez voir mon Discord sur mon profil et il s'agit également du casque Pixel Très bien, merci d' regardé et passons à la leçon suivante. 170. 12.03 Respawn: Maintenant que nous en avons fini avec la mort, assurons-nous que le joueur réagisse également. À l'intérieur de la base de joueurs. Encore une fois, à l'intérieur de la santé, de l'armure et des dégâts. Permettez-moi de le placer ici à droite et de cliquer avec le bouton droit de la souris. Puis fermez les onglets sur la droite. OK, à l'intérieur d'ici, faisons un clic droit maintenant et créons un nouvel événement personnalisé. Appelle celui-ci. Faisons à nouveau un clic droit pour en faire un événement personnalisé et appelons-le Re. Ensuite, celui-ci s'exécutera sur le serveur comme avant. Laisse-nous faire fonctionner, le serveur est fiable. Ici, appelons le serveur respawn. Nous sommes maintenant prêts à répondre. Maintenant, pour ce qui est de la réapparition, nous voulons simplement changer la position du joueur Parce qu'imaginez que le joueur soit mort ici, au sol. Nous allons essentiellement ramener ce joueur au point d'apparition C'est ce que nous essayons de faire maintenant. Nous avons déjà dépassé les points d'apparition dans le mode jeu. Si vous vous souvenez, si vous revenez aux plans, ouvrez le mode de jeu et qu' à l'intérieur du mode de jeu, nous avons cette seule demande : faire apparaître Maintenant, nous ne voulons pas faire apparaître le joueur, souvenez-vous que nous l' avons uniquement tué en ne bougeant pas Techniquement, vous êtes déjà engendré. Nous ne t'avons jamais retiré du jeu. Nous ne voulons pas l' appeler à nouveau. Ce que nous voulons faire, c'est simplement reprendre cette logique. Ce que nous pouvons faire, c'est avoir besoin du mode de jeu pour récupérer les points d'apparition de la lutte contre le terrorisme et du Revenons à la base de joueurs et disons « passer en mode jeu ». C'est juste la référence, disons un mode de jeu comme celui-ci. Ensuite, connecté à cette référence de mode de jeu depuis notre interface Blueprint Maintenant, obtenons les points d'apparition des daroristes, les points des terroristes, celui-ci aura des points celui-ci aura Maintenant, ce que nous voulons faire, comme avant, revenons au mode de jeu. Nous pouvons en fait simplement prendre un point de spa aléatoire , puis copier cette transformation comme avant. Nous pouvons également le copier ici, contrôle C. Revenons au contrôle de la base de joueurs V. Faisons le lien entre le terroriste de l'appartement et le terroriste et faisons maintenant une notification aux représentants N'oubliez pas de connecter celui-ci Nous avons besoin de l'équipe que vous avez sélectionnée. Nous devons savoir si le joueur est un contre-terroriste ou un terroriste. N'oubliez pas que nous l'avons fait dans l'interface utilisateur. Nous revenons à l'interface utilisateur dans laquelle vous sélectionnez l'équipe. Vous allez sur le graphique ici, vous avez sélectionné l'équipe dans laquelle vous appartenez. Cela vous amène au mode jeu. Le mode de jeu ici, sélectionnez l'équipe. Créons-le en tant que variable afin de pouvoir l'utiliser, car pour le moment, il n' y a aucun moyen de l'utiliser. Formons une nouvelle équipe variable. Si je passe simplement la souris dessus, vous pouvez voir qu' il s'agit d'une référence à une classe d' acteur, si vous êtes acteur et que c'est celle-ci. Et vous pouvez sélectionner la référence de classe. Compilons maintenant, souvenez-vous que nous n'avons qu'à définir de telles choses à l'intérieur du serveur, pas sur le client. Ici, sur le serveur, je vais créer une équipe informatique , puis connecter celle-ci ici pour la rendre plus propre. Maintenant, nous n'avons pas besoin de le reproduire car nous ne l' utiliserons jamais sur le client Il suffit de l'utiliser sur le serveur pour trouver le bon point d'apparition Cette variable elle-même n' est pas nécessaire, nous n'avons pas vraiment besoin de la répliquer Maintenant, nous définissons cette variable ici. Nous devons reprendre le contrôle du joueur. Faisons un clic droit et disons « get controller » et trouvons la fonction ici. Ensuite, disons « référence à la manette du joueur ». Connectons-le maintenant en tant que manette du joueur. Trouvons la variable d'équipe que nous venons de créer. Et maintenant, connectons-le ici. OK, maintenant nous nous demandons si le joueur est un terroriste ou un contre-terroriste ? Si le joueur est un antiterroriste, est-à-dire si c' est vrai, nous allons trouver les points de lutte contre le terrorisme. Cependant, lorsque le joueur est un terroriste, ce sera faux, il choisira donc B, qui correspond aux points terroristes. OK, cliquons avec le bouton droit de la souris et ajoutons-le à nos points de réponse variables pour les joueurs. Ou en fait, laissez-moi simplement l'appeler Response Transform. C'est plus correct. Encore une fois, nous devons en faire un représentant, prévenir car nous changeons la position du joueur Il s'agit d'un changement visuel pour cliquer dessus. Laissez-nous compiler, entrons dans le vif du sujet. Ce que nous devons faire ici, c'est simplement changer la loi, transformer. Cliquez avec le bouton droit de la souris et disons défini et sélectionné. C'est juste moi. C'est le joueur qui vient de mourir. C'est très bien. maintenant à la nouvelle transformation, prenons celle que nous venons de dire. Maintenant, le problème avec celui-ci, non ? Maintenant, le joueur, si vous cliquez sur le maillage, souvenez-vous que nous avons créé avant que je ne dise que l'échelle était de 1,6 sur l'échelle. Si je le connecte directement ici, cela passera à 11.1. C'est parce que ce point espagnol est en fait 111 Ce que vous pouvez faire, c'est que nous sommes en train de prendre cette transformation depuis les points espagnols. Si vous soulignez ce point de vue sur la version 1.6, laissez-moi simplement revenir ici à la couche de base. Vous le branchez directement et vous l'avez à 1,61 0,61 0,6, alors ce sera en fait 1,6 même si vous l' avez réglé sur un Il s'agit en fait de transformer ce point d'apparition. Cependant, pour mon exemple , pour votre jeu, si vous devez 111, vous n'avez pas vraiment besoin de le faire ici, mais pour moi, je vais juste le détailler ici. Je vais transformer, casser la transformation ici, transformer ici. Car l'emplacement est bon, la rotation est bonne. Cependant, pour l'échelle, je veux la maintenir à 1,6. Connectons-la comme ça. Compilons maintenant et revenons en arrière. Et nous voulons également nous assurer que c'est mort est défini sur faux, car maintenant nous ne sommes plus morts. Il suffit de répondre, de faire glisser le pointeur d'ici, de dire «  mort » et de faire en sorte que celui-ci soit faux. Nous devons maintenant travailler sur ce point dans la leçon suivante, car nous avons toujours simulé la physique et il n'y a toujours pas de collision et tout ça Et nous allons travailler là-dessus dans la prochaine leçon. Mais pour l'instant, cliquons sur jouer. En fait, avant de cliquer sur jouer, nous devons répondre ici. Nous n'avons jamais organisé cet événement. Rien ne va se passer. Disons-le ici quand le joueur n' est plus mort. Chaque fois que nous définissons ce paramètre sur false. Et faisons-le réellement ici. fois que vous aurez fini de lâcher toutes vos armes, laissez-moi retarder le code de 3 secondes. Nous allons améliorer les choses plus tard, mais pour l'instant, répondons et voyons si cela fonctionne. Nous allons attendre de 3 secondes, puis nous allons répondre. Permettez-moi de cliquer sur Play. Choisissez Terroriste ici, sélectionnez Terroriste par exemple. Maintenant, je vais juste mettre quelques armes sur ce joueur. Allez ici à propos du client. Maintenant, permettez-moi de les ouvrir tous les deux sur le client. Je suis le joueur ici. Le joueur doit répondre à l'un des points d'apparition après 3 secondes, comme vous pouvez le voir ici À l'heure actuelle, rien ne se passe. C'est parce que nous avons encore simulé la physique. Et c'est là le problème. Si nous essayons simplement de cliquer sur le maillage de la capsule. Disons que, cachée dans le jeu, je vais l' éteindre pour pouvoir voir les capsules et voir ce qui se passe réellement. Et si je recommence à utiliser mon arme, pars ici en tant que terroriste. Je vais aller ici. Maintenant. Essayons encore une fois. Tirons sur le joueur et voyons voir. Parce que si la capsule bouge, ce n'est pas un bug. Si vous regardez maintenant, au bout de 3 secondes, vous pouvez voir que la capsule a disparu des yeux du joueur. Et c'est parce que la capsule est là maintenant. Maintenant, le joueur est réellement là. Cependant, le joueur traîne encore une fois. C'est parce que nous avons simulé la physique. Et tout cela, nous devons travailler sur cette partie de la leçon suivante et faire en sorte que cela fonctionne. 171. 12.04 Not Dead RepNotify: Très bien, maintenant nous sommes de retour et nous allons travailler là-dessus. Est-ce que c'est alors que c'est faux ? Donc, ce représentant, notifie et nous pourrons répondre correctement au joueur. Ce que vous voulez faire d'abord, laissez-nous supprimer la physique. Il s'agit de la première étape. Supprimons le maillage et je vais dire simulons la physique. La prochaine chose que nous voulons faire est de jeter à nouveau de l' ombre à partir de ce maillage à la troisième personne. Alors vas-y et fais-le. Ce que je vais faire, c'est remettre le maillage à nouveau. Je vais le faire glisser vers le bas. Activez la collision. Si vous cliquez simplement sur le maillage, il est configuré pour interroger uniquement. Je vais cliquer ici et le configurer sur requête uniquement. Je peux le remettre à ce qu'il était avant. Créons simplement un nœud de redirection ici et déplaçons-le vers le bas. La prochaine chose que nous voulons faire est de regarder ici et de voir ce que nous devons faire. Maintenant. Nous devons prendre ce composant de la capsule et cliquer dessus. Et nous devons le configurer pour activer la collision, faites glisser le pointeur à partir d'ici. Et dites «   activer la collision » et sélectionnez-la. Définissez ensuite la collision activée ici. Mais pour celui-ci, celui-ci est maintenant correct. N'oubliez pas non plus que nous avons désactivé l'animation, nous devons l'exécuter à nouveau. L'animation destinée au joueur est ce plan d'animation. Ici, le mode animation est réglé sur le plan d'animation Nous devons en fait le refaire à partir d'ici. À partir du maillage. Et n'oubliez pas que c'est le maillage qui en résulte. Et dites définir le mode d'animation. Et allez-y et sélectionnez ce mode d'animation défini. Et vous devez le reconfigurer pour utiliser le plan d'animation. heure actuelle, lorsque nous le définissons sur plan d'animation, nous devons également définir quel plan d'animation Comme nous avons réinitialisé les paramètres ici, nous pouvons à nouveau faire glisser le pointeur depuis ce maillage et dire «  classe », c'est cette instance d'animation définie revêtue et la connecter C'est celui que nous avons appelé lecteur MBP ici, le plan d'animation que nous avons créé auparavant Maintenant, ce que nous devons faire, c'est que nous allons quand même réserver parce que je vais juste vous montrer et vous pourrez voir ce qui se passe. Si on rouvre tout ça, joue le terroriste ici. Maintenant, tuons ce joueur. Maintenant, ce joueur est abattu. Et vous pouvez voir ici que le joueur est toujours en train de porter, mais il n'y a rien ici. Et je suis également allongé par terre sur cet écran, il y a toujours un bug. C'est parce que, souvenez-vous , dans le cas de la physique simulée, nous avons eu ce problème plus tôt dans le cours. Si vous maintenez la souris dessus, cela indique que si ce composant est actuellement attaché à quelque chose, c'est le maillage qui est attaché au composant de la capsule. Ensuite, le début de la simulation le détachera Il est en fait détaché du composant de la capsule. Nous devons le reconnecter. Prenons le maillage ici. Oups, pas les deux. Prenons le maillage et disons attacher un composant à un autre. Si vous ne vous souvenez pas de ce que nous avons fait, vous pouvez toujours cliquer sur l'arme pillée Prévenez si vous trouvez l'arme pillée déballée. C'est ce que nous avons fait. Nous avons désactivé la physique et reconnecté l'arme à la scène principale Voici la même chose que nous sommes en train de faire. Revenons à ici. Nous allons maintenant nous reconnecter ou attacher le maillage au composant de la capsule. N'oubliez pas que c'est lié à, en fait, à rien. Le socket n'est aucun. Pour la règle de localisation. Disons « Snap to Target ». Atteignez la cible. Atteignez la cible. Bien, voyons ce qui se passe si vous cliquez à nouveau sur Play. Et testez-le ici en tant que joueur. Je vais à nouveau tirer sur le joueur. Voyons maintenant ce qui se passe. Le joueur apparaît ici. Cependant, il y a toujours un problème. Le joueur est en bas, également sur mon écran, le joueur sous la forme d'une caméra bizarre. Cela s'explique par le fait que si vous cliquez à nouveau sur le maillage, lorsque vous simulez la physique, vous réinitialisez tous vos paramètres. Pour moi, c'est le lieu et la rotation. Pour le joueur, dans un premier temps, il s' agit également de le réinitialiser. En fait, je dois le remettre en place. Si je prends le maillage et que je dis définir l'emplacement relatif et la rotation, je dois le brancher. Je vais juste cliquer sur mon maillage et copier ma position. Collez-le dedans. Il s'agit de la valeur z et la rotation est -90. Maintenant, compilons, sauvegardons tout Voyons si tout fonctionne. Cliquons sur Play. Comme Terrorist, encore une fois, comme ce type. Laisse-moi tirer sur le joueur maintenant et voir ce qui se passe. Maintenant, le joueur apparaît sur le sol. Pour une raison ou une autre, l' enquête a été reconsidérée. Maintenant, nous avons l'air normaux. Le seul problème que nous avons actuellement, c'est que le joueur apparaît dans le sol Pour résoudre le problème où le joueur se trouve sous terre. Ce que nous pouvons faire dès maintenant, lorsque nous cliquons sur jouer et que le joueur correctement, c'est qu'il n' y a rien de mal à ce que les points St. eux-mêmes apparaissent y a rien de mal à ce que les points St. eux-mêmes Nous n'avons pas vraiment besoin d'en faire quoi que ce soit. Le problème pour le moment, c'est qu' chaque fois que nous attachons ce joueur, faisons en sorte qu'il reste relatif. Faisons en sorte que le joueur reste relatif. Mise à l'échelle. Relatif signifie exactement ce que nous avons écrit ici. Puisque cela va vraiment nous permettre de garder notre envergure. Revenons au représentant des joueurs ici présent pour la transformation que nous avons effectuée Au lieu de faire 1.6, je vais le supprimer et le mettre ici. Parce que encore une fois, si je le règle pour qu'il reste relatif, il gardera mon échelle. Je compile et cliquons sur jouer pour voir ce qui se passe si je sélectionne Terroriste ici. Tuons simplement le joueur. Je vais photographier davantage. Voyons où le joueur va répondre. Maintenant, c'est le joueur qui répond là-bas. Si je maximise simplement mon point de vue, vous verrez que le joueur a un pion. Cependant, le joueur flotte. C'est parce que j'ai oublié d'activer la marche. Si je revenais plutôt ici. N'oubliez pas qu'ici, nous avons réglé l'animation sur cette valeur et que nous désactivons le mouvement. Lorsque vous désactivez le mouvement, vous devez le réactiver. Pour ce faire, laissez-nous le faire juste avant le plan d'animation Déplaçons ça. Prenons le composant de mouvement du personnage et disons définir le mode de mouvement comme celui-ci. Réglez le mode de mouvement connecté. Maintenant, vous pouvez régler celui-ci pour qu'il marche, le mode de marche standard que vous avez par défaut, laissez-moi simplement le déplacer vers le bas. Et maintenant, cela devrait fonctionner. Si vous compilez et que vous sauvegardez tout, je voudrais peut-être déplacer ces points d' apparition plus bas. Ils atteignent donc réellement le sol. Le joueur ne tombe pas par terre. Si je les déplace simplement vers le bas, ou s'ils sont réellement là sur le sol, cela devrait fonctionner si je les déplace également. Celui-ci. Celui-ci. Celui-ci, et celui-ci. Et je les déplace vers le bas pour qu'ils soient au sol. OK, jouons maintenant. Select Terrist, me voilà. Laissons-nous apparaître en tant qu' autre joueur. Maintenant, je vais tirer sur le joueur. Voyons ce que les joueurs font apparaître là-bas Et je peux me déplacer normalement comme avant, si je photographie en tant que client. Si je le maximise juste pour voir s'il fonctionne, le serveur est maintenant mort. Le joueur répond là-bas, cela fonctionne dans les deux sens. Si je réessaie, le joueur meurt rapidement car nous n' avons pas défini le maximum de points de vie. Et nous pouvons le faire dans la prochaine leçon. Mais vous pouvez voir que le joueur est en train de mourir correctement et que rien ne va. Génial, passons à la leçon suivante. 172. 12.05 Réinitialiser la santé sur Respawn: Réinitialisons maintenant la santé du joueur lorsque celui-ci répond. Et c'est très simple parce que nous avons déjà fait tout le travail si vous revenez à la santé ici. Et ce que nous pouvons faire, c'est qu'ici, chaque fois que le joueur répond, chaque fois que nous le réglons pour qu'il ne soit plus mort, cet endroit tire d'ici. Ce que nous pouvons faire, c'est glisser et dire « set player he », je crois que nous l'avons appelé « Set player health ». En gros, c'est celui que nous avons fait auparavant. Définissez donc la santé du joueur. Et nous en avons également un appelé set Player Armor. Appelez les fonctions que nous avons déjà créées. Celui que nous allons voir ici. Obtenez le maximum de santé du joueur. Et nous avons également obtenu le maximum d'armure pour les joueurs. Nous allons réapprovisionner le joueur en santé et en armure. Maintenant, nous pouvons jouer et cela devrait fonctionner. C'est tout ce que nous avions à faire. OK, laisse-moi juste filmer ici et m'assurer que c'est correct. Si je réduis simplement cela au minimum pour pouvoir réellement voir à la fois l'état de santé, celui-ci et celui du client. Photographions simplement en tant que Klein pour voir si cela fonctionne, le joueur devrait le repo. Ici. Vous pouvez voir que le joueur a de nouveau retrouvé de la santé. Nous pouvons voir que le joueur est train de réinitialiser 100 points de vie et d'armure Et je dois encore tirer sur le joueur avant qu'il ne meure. Génial, je vais l'essayer ici sur le serveur et voir si cela fonctionne. Et le client doit également réagir avec une santé maximale, correcte une santé maximale, correcte et tout fonctionne comme prévu. 173. 12.06 Prévenir les dommages de l'équipe: Nous sommes maintenant en mesure de tirer sur notre coéquipier. Si vous êtes un terroriste, vous ne devriez pas pouvoir tirer sur votre coéquipier terroriste Certains modes de jeu peuvent également être utilisés, mais si vous souhaitez ne pas infliger de dégâts à l'équipe, passons à la base de joueurs. Les dégâts se font ici, dans le lot. Équipez ici le shoot et rechargez. C'est ici que nous tournons. Il s'agit du tracé linéaire que nous sommes en train de créer. Ce que nous voulons simplement faire, c'est ne pas infliger de dégâts. Si c'est votre coéquipier que vous tirez. Ce que nous voulons vérifier, c'est que si l'acteur à succès fait partie de la même équipe que vous, vous pouvez prendre cet acteur à succès et lui dire « obtenir une référence ». Laissez-nous le connecter par la suite. Si je m'éloigne un peu d'ici, élargissons-le afin que nous ayons de la marge de manœuvre. Et je vais aussi faire de la place ici. Ajoutons le code entre les deux. Trouvons la référence du joueur. Disons get controller parce que nous avons cette variable d'équipe à l'intérieur du contrôleur. Obtenez la référence du contrôleur du joueur . Ici, nous pouvons accéder à la variable d' équipe que nous venons de créer. C'est ce que nous avons fait dans les leçons précédentes. Nous pouvons nous en servir pour voir si l'équipe ici est la même que celle que nous avons sur nous. Si nous prenons simplement la manette du joueur et que nous prenons cette variable d'équipe, nous les comparons. Nous prenons cette variable d'équipe du joueur que nous venons de toucher. Nous prenons notre propre variable d'équipe. Si ce n'est pas égal à cela, nous pouvons vous infliger des dégâts si vous créez simplement une branche. Et nous pouvons infliger les dégâts Si nous ne sommes pas dans la même équipe, je veux infliger des dégâts. Cependant, si nous sommes dans la même équipe, nous n'allons en fait rien faire. Permettez-moi de réorganiser un peu les choses ici. OK, maintenant que c'est réorganisé, si nous ne sommes pas dans la même équipe que l'autre joueur, nous allons infliger des dégâts Et c'est en fait la seule chose que nous devions faire si je sélectionnais des terroristes maintenant. Et si je choisis un terroriste ici, je ne devrais pas être en mesure de blesser ce coéquipier Si je tue ce coéquipier, tu peux voir qu' il ne se passe rien Nous ne perdons aucune santé. J'essaie avec celui-ci. Si nous essayons également ici en tant que serveur de filmer le client, rien ne se passera. OK, c'est ainsi que vous éviterez les dégâts infligés à l'équipe. 174. 13.01 Créer l'interface utilisateur de score: Maintenant que le jeu de base est terminé, ajoutons les scores des équipes. Note pour la lutte contre le terrorisme et les terroristes. Ainsi, vous pouvez voir combien vous avez gagné au cours des tours. Allons-y et passons à l'interface utilisateur. Accédez à l'interface utilisateur dans l'interface utilisateur principale, nous allons faire le tour d'horizon ici. Ce que je veux faire, c'est essentiellement vous montrer ce que nous essayons de faire afin qu'il soit plus facile de comprendre que c'est ce que nous essayons de faire. Avoir un score pour la lutte contre le terrorisme et un score pour le terrorisme. Encore une fois, décomposez cela. Voyez quels éléments vous devez utiliser et essayez de le faire vous-même si vous le souhaitez, sans mon aide, car vous devriez pouvoir acheter. Maintenant, si vous avez encore besoin d'aide, si vous n'êtes pas sûr, allons-y et faisons-le ensemble. abord, nous avons besoin d'une boîte horizontale car il y a deux éléments côte à côte. Allons-y et cherchons une boîte horizontale. Laissez-moi m'assurer de ne pas les mettre ici. Il suffit d'enfoncer le cadre horizontal dans le panneau de toile. C'est à l'intérieur d'ici. Assurez-vous que le point d'ancrage se trouve au milieu de l'écran. Si vous écrivez zéro dans l'exposition, celle-ci doit être au milieu. Nous devons ajuster l'alignement du x à 0,5 dans la position du x. Je vais juste dire 30, en fait, le xy 30, donc il n'est pas sur le bord de l'écran. Encore une fois, de la taille au contenu. OK, maintenant il va s'adapter au contenu que j' ai à l'intérieur. Permettez-moi d'abord d'ajouter une superposition. À l'intérieur de cette superposition, nous avons besoin d'une image car nous avons besoin d'un arrière-plan J'ajoute cette image à la superposition de cette image. Cherchons simplement le panneau, le même que celui que nous avons utilisé jusqu'à présent. Donc, encore une fois, ce panneau documentaire, changez le dessin quant à la marge de la boîte à 0,50 0,5 et maintenant nous pouvons l'étirer Maintenant, à 11 dans le zoom, je peux voir à quel point il est grand. Je ne pense pas que je vais faire la taille ici. Je pense que je vais vraiment contrôler cela plus tard. Alors laissez-moi écrire 32 par 32. Encore une fois, je vais le contrôler ici. Commençons par créer une boîte verticale. Parce que nous avons besoin de deux textes superposés, nous avons besoin du premier. Cherchons simplement du texte. Placez-le à l'intérieur de la boîte verticale. Dupliquez celui-ci. Je vais cliquer sur les deux. En fait, copions le style de celui-ci. Laissez-moi cliquer dessus, maintenez la touche Maj enfoncée et cliquez avec le bouton droit de la souris. Cliquez sur les deux. Maintenez la touche Maj enfoncée et cliquez avec le bouton gauche, nous collons le style. Je vais aussi, voyons voir ici. Pour l'ombre, aucune ombre n' est appliquée et ça devrait aller. Nous n'avons pas non plus de plan. OK, celui-ci est bon. Sélectionnons maintenant les deux que nous devons faire. En fait, modifions le premier. Disons antiterroriste. Écrivons-en un ici. Permettez-moi peut-être d'écrire un ici pour celui-ci. Je vais le mettre ici au milieu. En fait, celui-ci aussi. Mets ça au milieu. Mets-le également au milieu. Ici aussi, dans la justification, je vais le placer au milieu. Cliquez maintenant sur les lignes pour supprimer les tirets. Maintenant, nous avons besoin d'un peu d'espace entre eux. Avant cela, je vais également modifier la taille du devant. Je pense que c'est un peu trop grand. Je vais le mettre à 20. En cliquant sur cette superposition, vous avez l'image, puis nous avons le cadre vertical. Je vais en fait mettre une marge sur cette boîte verticale. Laisse-moi juste écrire, ou rembourrer. Alors laissez-moi juste écrire 30 et voici à quoi cela ressemble maintenant. Je pense que c'est bien. 30, c'est bien pour cette boîte verticale. Nous avons éloigné le cadre vertical des bords de cette image. Je vais changer la couleur de celui-ci. Essayez simplement de trouver la couleur que vous aimez ici. Pour la lutte contre le terrorisme, je vais réduire un peu la saturation. Peut-être que quelque chose comme ça va. OK, j'ai le contre-terroriste, laissez-moi juste ajouter un espace entre les deux. Il suffit de chercher des espaces, les ajouter entre ces deux textes. Pour le Y, écrivons dix. C'est peut-être un peu trop. Écrivons cinq, et regardons-y encore une fois, je pense qu'il nous en faut plus. Disons 88 pour l'espacement. Laissez-nous simplement dupliquer cela. Je vais dupliquer la superposition car nous sommes dans la case horizontale. Il va en ajouter un autre à côté. Permettez-moi de changer celui-ci en terroriste. Permettez-moi de changer la couleur ici, la teinte en rouge. Juste zéro ici. C'est rouge. Je vais réduire légèrement la saturation car je trouve que c'est trop fort. La saturation est de 0,8 Et je vais le faire pour l'autre également, en changeant à 0,8, elle reste la même. Ajoutons un intercalaire entre les deux. Si je reprends les entretoises, ajoutez-les entre elles et les superpositions Alors pour la taille et le x, écrivons quelque chose comme 50, peut-être quelque chose de moins, peut-être pas 50. Écrivons 30. Je pense que c'est bon. D'accord, si vous compilez maintenant, changeons simplement ces variables car nous les utiliserons plus tard. Celui-ci est le numéro, appelez-le score terroriste T. Je vais le copier et m'assurer qu'il s' agit d'une variable car nous devrons la modifier ultérieurement. Cliquez sur l'autre, appelez-le « score terroriste » par texto. Créez également cette variable. Je vais cliquer sur chacun d' entre eux et m'assurer que la visibilité est censée ne pas être testable parce que je ne veux pas la souris interagisse avec eux. OK, si vous cliquez simplement sur Play pour voir à quoi cela ressemble, voici à quoi cela ressemble. Je pense que tout va bien. Passons donc à la suivante. 175. 13.02 Créer l'interface utilisateur Team Win: Avant de continuer, concevons le team win I dans l'interface utilisateur. Revenons à l'essentiel ici. Je veux qu'il soit indiqué qu'il soit indiqué de compter une victoire terroriste ou une victoire terroriste chaque fois qu'une équipe gagne. Ajoutons-le en dessous. Ce dont nous avons besoin, c'est à l'intérieur d'une boîte verticale. Comme nous l'avons et le texte en dessous, cherchons une boîte verticale. Permettez-moi de minimiser tout cela afin que je puisse voir où je peux le déposer. Il doit entrer dans cette boîte verticale. Je vais juste le mettre entre les deux. Ensuite, faites glisser cette boîte horizontale dans la boîte verticale. Et maintenant, cliquez sur la case verticale. Placez l'ancre au milieu. Réglez cette position sur zéro. Je vais régler l'alignement. En fait, cliquez d'abord sur la taille du contenu et réglez l'alignement sur 0,5. Et pour la position dans le Y, je vais la régler sur 30, comme avant. Nous l'avons maintenant dans une boîte verticale. Et ce que nous pouvons faire, c'est rechercher un texte et l'ajouter dans le cadre vertical. Ce texte peut être au milieu, et la justification peut également être au milieu. Donnons-lui un peu d'espace, cherchons un espaceur, ajoutons-le entre les deux, cliquons dessus, disons, par exemple, 15 ou 20, ou 25 peut-être Disons 25, et voici à quoi cela ressemble. Maintenant, cliquons sur ce texte. Faisons un clic droit pour copier ce style de façade. Cliquez sur celui-ci avec le bouton gauche de la souris pour le coller. Pour le décalage des ombres, je vais juste lui donner une ombre de deux par deux. heure actuelle, vous ne pouvez rien voir car à l'intérieur de la couleur des ombres, vous devez augmenter l'alpha à zéro, c'est transparent. Mais si vous écrivez 0,3 par exemple, voyons voir, il y a un léger effet d' ombre, 0,4 peut-être que cela devient plus clair et c'est ce que nous avons Par exemple, nous pouvons écrire Terrorist Win. Voici à quoi cela ressemblera. OK, pour ce qui est de la taille amusante, agrandissons-la un peu parce que c'est important. Maintenant, ça a l'air bien. Compilons le tout et passons au suivant. 176. Fonctionnalité de l'interface utilisateur de Score et Team Win: Passons maintenant au codage des fonctionnalités de l'interface utilisateur. Ouvrons-le à nouveau et cliquons sur Counter Terrorist. Je vais le configurer pour qu'il soit masqué pour commencer, le définir comme masqué. Nous ne voulons pas le voir par défaut. De plus, si vous venez d' ici, changez le nom. Modifions-le par SMS pour annoncer la victoire de l' équipe par exemple. Vous pouvez l'appeler comme vous voulez et le définir comme variable afin que nous puissions le modifier dans le plan Et celui-ci est le score antiterroriste que nous avons déjà ainsi que le score terroriste. Et ils sont tous deux variables. OK, donc c'est fait. Passons au graphique à l'intérieur d'ici. Ce que nous avons fait jusqu'à présent, c'est l'armure telle que nous pouvons le voir ici et le mode opératoire. Maintenant, allons-y, créons un nouvel événement personnalisé. Appelons cela une mise à jour de l'interface utilisateur des scores terroristes. Je vais copier ce nom parce que je vais le noter à nouveau ici. Disons maintenant le score de Codterrorist. Ce que nous devons faire, c'est pour le terroriste, prendre le score du terroriste définir un texte et nous laisser le relier. Et nous allons faire la même chose ici pour le score de la lutte contre le terrorisme. Définissez le texte et nous allons définir le texte. Pour le texte, nous avons essentiellement besoin de la partition. Cliquons sur cet événement et créons une nouvelle variable, entier et une valeur numérique Appelons cela un score. Il en va de même pour celui-ci. Créons un nouveau nombre entier variable. Appelez ça un score. Maintenant, nous pouvons simplement inscrire ce numéro de score ici. Le moteur neuronal transformera automatiquement votre variable entière en variable de texte afin de pouvoir l' imprimer à l'écran. Faisons la même chose ici. Éloignons-le juste pour l'organiser. Maintenant, nous en avons fini avec eux. En fait, compilons et sauvegardons tout. La dernière chose est celle-ci, et celle-ci est un peu plus grande. Faisons un clic droit et créons un nouvel événement personnalisé. Appelons cette annonce de victoire de l' équipe de mise à jour I. OK, pour celle-ci, OK, pour celle-ci, nous devons simplement définir ce texte également. Prenons celui-ci. N'oubliez pas que celui-ci est masqué par défaut. Même si nous modifions le texte, nous devons montrer la visibilité avant que je fasse quoi que ce soit. Disons définir visibilité pour la visibilité. Nous allons le configurer pour qu'il ne soit pas testable, afin de ne pas pouvoir interagir avec la souris Ensuite, nous voulons définir ce texte. Permettez-moi de le déplacer vers le bas , de le faire glisser à partir d'ici et dire « définir un texte comme celui-ci ». Définissez le texte, allez-y et connectez-le. Nous allons maintenant définir le texte, selon que c' est le terroriste ou le contre-terroriste qui gagne. Nous avons vraiment besoin de savoir quelle est l'équipe. N'oubliez pas qu'en ce qui concerne le contrôle des joueurs, si je reviens aux plans de contrôle des joueurs, nous avons défini cette équipe variable Et nous pouvons réellement l'utiliser pour savoir s'il s'agit du terroriste ou du contre-terrorisme. Permettez-moi d'ajouter une nouvelle variable ici. N'oubliez pas que cette variable d'équipe est un type de classe d'acteur. Si je change simplement cela en acteur acteur ici et que c'est une référence de classe, appelons cette équipe, il suffit de l'épeler. À l'heure actuelle, nous avons cette équipe ici. À partir d'ici, je peux dire que cette équipe est égale à la lutte contre le terrorisme. Si c'est le cas, nous pouvons faire glisser le pointeur à partir d'ici et dire « sélectionner ». Nous pouvons sélectionner le texte que nous voulons choisir. On peut le brancher ici. Nous demandons si cette équipe est en ce moment et plus tard, nous y ajouterons des informations, mais pour le moment, nous n'avons rien. Mais si cette valeur est antiterroriste, si elle est fausse, nous voulons afficher, par exemple, la victoire d'un terroriste. Si c'est vrai, s'il s' agit de lutte contre le terrorisme, nous voulons écrire « victoire terroriste ». Le texte sera sélectionné en fonction de l'équipe qui a gagné et nous lui communiquerons cette information ultérieurement. Maintenant, double-cliquons ici, créons un nœud de reroutage. Très bien, en ce moment, nous l'affichons à l'écran, mais après quelques secondes, je veux le masquer à nouveau. Si je reviens en arrière, le nombre de secondes correspond en fait au temps qu'il faut aux gens pour répondre. Imaginez que si tout le monde meurt, le service au comptoir d'écran gagne après, disons, 5 secondes. Il s'éloigne parce que cela commence un nouveau cycle et que tout le monde va réagir. Ce que je vais faire, c'est simplement appeler cela, par exemple, l'heure d'affichage. Et nous pouvons brancher le temporisateur de réponse plus tard lors de l'affichage de l'heure. Je vais retarder cela avec la durée de ce délai, qui est le temporisateur de réponse à l'avenir. Et nous pouvons double-cliquer ici et organiser cela. Nous allons retarder cela. Après ce délai, nous voulons le masquer une fois de plus, suffit de le copier-coller, d' ajouter connecté, il suffit de le copier-coller, d' ajouter connecté, de le déplacer ici, et je vais le régler à nouveau sur masqué. OK, donc c'est fini. C'était donc l'interface utilisateur du score et voici l'interface utilisateur du score. Et voici l' interface utilisateur des annonces que nous allons mettre à jour. Nous pouvons donc maintenant utiliser ces événements plus tard. Allez-y, sauvegardez tout et passez à la suivante. 177. 13.04 Garder la trace des joueurs vivants: Maintenant, ce que nous devons faire, c'est savoir qui est vivant sur la carte et qui est mort. Parce que nous ne pouvons pas vraiment afficher ici dans l'interface utilisateur qui a gagné. Si nous ne savons pas vraiment qui se trouve sur la carte et dans quelle équipe ils font partie, nous devons également savoir de quelle équipe ils font partie. Par exemple, cinq personnes peuvent être en vie et elles font toutes partie de la même équipe. Par exemple, un contre-terroriste et tous les terroristes sont morts. Nous devons donc afficher victoire dans la lutte contre le terrorisme, même si nous en avons cinq vivants, car ils appartiennent peut-être à la même équipe. Nous devons le savoir. Faisons-le dans le mode jeu car c'est dans le mode jeu que nous décidons de toutes ces règles. Ce que nous pouvons faire ici, c'est ajouter deux variables. Ajoutons-en d'abord un appelé Players Alive. Avant de l'ajouter, changeons le type de variable de la variable. Je veux changer cela en fonction de la base de joueurs. Allez-y et sélectionnez le joueur maintenant, je pense que c'est faux. Cherchons à nouveau la base d'armes, mais la base de joueurs, c'est celle-ci. Celui-ci. Celui-ci, ici. Base de joueurs. Maintenant, au lieu de nous contenter d'une variable d'origine, transformons-en une carte. le voir ici, une carte Comme vous pouvez le voir ici, une carte peut contenir deux valeurs. Si vous le sélectionnez ici, nous compilons simplement. Vous pouvez maintenant voir que nous avons cette base de joueurs, mais nous avons également la deuxième variable à côté. Vous pouvez en fait attribuer différentes choses à ce joueur. Maintenant, si je clique sur le signe plus, par exemple, si j'ajoute un joueur ici, je peux également ajouter un numéro ici. Cette variable cartographique, vous pouvez en fait l' utiliser comme dans différents scénarios. Vous pouvez avoir deux variables. Par exemple, vous pouvez avoir chaque joueur et le nombre de victimes qu'il a tuées. Chaque joueur figure dans cette liste et elle indique également le nombre de victimes qu'il a tuées, par exemple. Mais ce que nous voulons faire, c'est avoir ce joueur et savoir dans quelle équipe il fait partie. Parce que c'est quelque chose dont nous avons besoin ici pour voir si tous les membres de la même équipe sont vivants ou s'ils sont morts et tout ça. Remplaçons celui-ci à nouveau par un acteur, dernière référence, car il s'agit de notre équipe. Et je vais juste changer ce type de variable. Nous l'avons ici. Maintenant, nous avons cette variable, nous avons le joueur. Si je compile simplement, cela disparaîtra si je compile. Maintenant, nous pouvons avoir le joueur, ici, dans quelle équipe il fait partie. Maintenant, nous pouvons avoir chaque joueur et l'équipe dans laquelle il appartient. OK, les joueurs sont donc vivants. Je vais en créer un nouveau qui s'appellera Players. une dernière question plus tard, Ce sera une dernière question plus tard, et nous y travaillerons plus tard. Mais faisons-le maintenant. Les joueurs apparaissent. Nous allons l'utiliser plus tard. Et celui-ci ne sera qu'un tableau normal. Nous savons juste combien de joueurs sont apparus sur la carte Commençons ici. Créons un nouvel événement personnalisé. Et celle-ci, nous allons l' ajouter à la carte Players Alive. Et celle-ci s'appelle une carte, d'ailleurs. Il s'agit d'une variable unique, d'un tableau, d'un ensemble. Maintenant, nous travaillons avec une carte. Ajoutez une carte vivante à deux joueurs. Ce que nous allons faire, c'est prendre ceci et dire « ajouter ici ». Nous pouvons ajouter le joueur, en fait nous avons besoin de cette référence de joueur. Nous pouvons simplement le glisser et le brancher ici. Et voici la base de joueurs. Je vais juste le renommer en Player. Avant cela, le joueur est peut-être mort. Le joueur peut y être ajouté. Les joueurs sont morts, car lorsqu' ils répondront, ils seront ajoutés à cela. Ici, ce que nous devons faire d'abord c'est prendre ceci et dire « trouver ». Nous pouvons nous en servir. D' ailleurs, pour les cartes, vous pouvez simplement faire glisser le pointeur ici, accéder aux utilitaires, accéder à la carte. Voici les fonctions que vous pouvez utiliser avec ce produit. Vous pouvez voir que vous ne pouvez pas vraiment en faire grand-chose. Vous pouvez ajouter, trouver quelque chose, demander s'il est vide, etc. Ça n'a pas grand-chose à voir là-dedans. Ce que nous voulons faire, c'est essayer de trouver ce joueur et de voir s'il se trouve sur cette carte. Laissez-nous simplement le connecter ici, trouvez-le ici. Créons cette branche pour lui demander si elle a trouvé le joueur à l'intérieur. Laisse-moi juste descendre ça un peu de quatre. Si nous trouvons le joueur, nous voulons le prendre, le supprimer et sélectionner la fonction de suppression. Allez-y, retirez ce joueur de la liste des joueurs morts. Permettez-moi de double-cliquer ici et de noter l'itinéraire arrière afin qu'il soit organisé. Maintenant, je vais le faire glisser depuis ce lecteur, puis le reconnecter. Cliquez, je vais déplacer tout cela vers le bas pour avoir plus d' espace pour travailler. Et on peut le déplacer vers le bas comme ça. Et maintenant c'est le cas. Ici, nous allons trouver ce joueur à l'intérieur de la carte morte des joueurs. Et nous allons supprimer le joueur s'il a été trouvé. Cependant, si le joueur n' a pas été trouvé, nous continuons simplement à saisir le code. Ce que nous voulons faire ici, c'est ajouter le joueur aux joueurs vivants. Maintenant, nous retirons le joueur de la liste des joueurs morts, et maintenant nous allons ajouter ce joueur à la carte. C'est à nouveau le joueur. Nous pouvons simplement le déconnecter car nous avons maintenant ce nœud de redirection Je vais double-cliquer ici et le brancher ici. Encore une fois, double-cliquez ici et ajoutez-le simplement ici. Maintenant, ce que nous devons faire, c'est que nous en avons également besoin ici. Pour ce faire, nous devons savoir de quelle équipe se trouve, nous devons obtenir une référence à la manette du joueur. Parce que n'oubliez pas qu'à l'intérieur de la manette du joueur, nous avons cette variable et nous en avons besoin. Allons-y, laisse-moi déplacer ça. Ce que nous pouvons faire, c'est double-cliquer ici pour créer un nœud de redirection Nous pouvons faire glisser le pointeur ici et dire « get controller » et « select ». N'oubliez pas que c'est le joueur. Nous essayons de nous procurer cette manette de jeu. Ensuite, à partir de l'interface Blueprint, nous avons créé la référence au contrôleur get player Nous avons maintenant la manette du joueur. Nous pouvons maintenant accéder à tout ce qui se trouve à l'intérieur de cette manette de joueur. Et nous voulons cette variable d'équipe. Faisons grève ici. L'équipe obtient cette variable d'équipe. Et maintenant, nous pouvons cliquer, faire glisser et le brancher ici. Branchons-le ici. Et je vais déplacer tout ça vers le bas pour avoir plus d' espace comme ça. Et rapprochons-le et connectons-le. Maintenant, nous ajoutons ce joueur à la carte, et nous le retirons de sa place. OK, maintenant c'est terminé. Compilons le tout et passons au suivant. 178. 13.05 Garder une trace des joueurs morts: Ce que nous devons faire, c'est maintenant suivre les joueurs ici présents. Ce que nous devons faire, comme avant, c'est cliquer avec le bouton droit de la souris, créer un nouvel événement personnalisé et appeler celui-ci «  ajouter » à la carte des joueurs. Comme précédemment, nous avons besoin de la référence du joueur. Donc, si vous recherchez une base de joueurs, sélectionnez-la ici et appelez-la un joueur. Prenons la carte morte de ce joueur. En fait, prenons d'abord celui qui est vivant. Nous devons retirer le joueur s'il est à l'intérieur avant ajouter à la carte morte, comme avant. Allons-y, voyons si nous pouvons trouver le joueur à l'intérieur d'ici. Faisons une branche. Laissez-nous connecter cela ici. D'ailleurs, pour celui-ci, j'ai oublié de le connecter comme je peux voir ici pour le supprimer Si c'est faux, si nous ne trouvons pas le joueur à l'intérieur, allez-y et continuez le code. N'enlevez rien. Double-cliquez ici et double-cliquez ici. OK, c'est corrigé. Nous devons faire la même chose ici. Si nous pouvons trouver le joueur, allez-y, prenez-le et dites « supprimer ». Et laissez-nous le connecter. Allez-y et retirez le joueur, comme avant. Je vais juste réorganiser ça. Très bien, une fois que nous aurons retiré le joueur, ajoutons-le à la liste des joueurs morts. Prenons ceci, disons « ajouter », allons-y et ajoutons le joueur comme avant. Double-cliquez ici pour le joueur, créez un nœud de route arrière. Mettons-le ici et créons à nouveau un nœud de route arrière. Allons-y. Nous avons maintenant ajouté le joueur ici. Et je vais juste l'éloigner un peu pour avoir plus d' espace de travail. Nous devons faire savoir à la manette quelle équipe appartient ce joueur. Laisse-nous faire disparaître tout ça. Double-cliquez ici. Disons obtenir le contrôle, obtenir le contrôleur, en fait obtenir le contrôleur du joueur. Allez-y, connectez-le. Nous devons maintenant prendre cette variable d' équipe comme avant et la connecter ici. Déplaçons-le simplement ici. Et permettez-moi de le déplacer un peu comme ça. Je vais déplacer celui-ci un peu plus haut, juste comme ça. Et allez-y, rapprochez-le. OK, maintenant nous ajoutons le joueur ici. Et comme avant, si nous ne trouvons pas le joueur, il suffit de trouver la manette et nous pourrons ajouter le joueur à cette carte. OK, c'était le code. Maintenant, nous surveillons les joueurs vivants et nous surveillons également les joueurs morts. Ce que nous devons faire maintenant, c'est suivre les joueurs vivants, tous les joueurs vivants. Allons-y et faisons-le dans la prochaine leçon. 179. 13.06 Garder une trace de tous les joueurs apparus: Pour suivre tous les joueurs qui apparaissent réellement dans le niveau C'est très facile par rapport aux autres. Créons simplement un événement personnalisé appelé ajouter au tableau d'apparition des joueurs à l'intérieur d'ici Encore une fois, nous avons besoin du joueur, changeons cela et appelons-le joueur. Et le type est celui de la base de joueurs. Nous voulons simplement prendre tableau d'apparition de ce joueur et dire définir les éléments du tableau et nous voulons ajouter les joueurs à l'intérieur d'ici Maintenant, nous devons choisir l'index. Et l'indice ne fait que prendre cela et indiquer la longueur. Et nous allons le brancher ici. Il trouvera automatiquement la longueur de ce tableau et y ajoutera les joueurs. L'objet que nous voulons ajouter est simplement ce joueur. N'oubliez pas non plus de prendre cette taille à la taille souhaitée, car si vous ne la prenez pas au départ, nous devions la prendre et dire redimensionner. Ensuite, nous allons donner la taille que ce tableau peut contenir. Mais au lieu de le faire, nous pouvons simplement dire « taille adaptée ». Dimensionnez-le automatiquement. C'est très bien Et nous pouvons double-cliquer dessus pour créer un nœud de route arrière, et nous pouvons le rapprocher. C'est effectivement fait. C' est tout ce que nous devons faire. Nous pouvons désormais utiliser tous ces événements. Maintenant, c'est beaucoup plus facile pour nous, car nous les avons tous créés et nous pouvons les utiliser à l'avenir. Sauvegardons tout et passons à la leçon suivante. 180. 13.07 Vérifier le nombre de joueurs vivants: Bon, maintenant nous devons vérifier si les joueurs sont tous morts ou s'ils sont tous vivants. Parce que nous devons aller sur ce Nui et l'afficher. Nous devons vérifier le nombre de joueurs vivants. Pourtant, le meilleur moyen de le faire est ici. Lorsque nous ajoutons le joueur sur la carte morte, nous savons que ce joueur vient de mourir. Et à partir de là, nous pouvons vérifier combien de joueurs sont vivants. Chaque fois qu'un joueur meurt, nous allons vérifier si nous devons jouer à ce pare-brise antiterroriste, par exemple. Laissez-nous le faire, laissez-moi simplement créer une macro ici. Cliquons sur ce plus. Pour la macro, laissez-moi appeler celle-ci vérifier le nombre de couches vivantes. Si j'en fais une macro au lieu d'une fonction, c'est parce que je fais une boucle for ici. Ou pour chaque boucle en fait, pour chaque boucle je vais utiliser celle-ci. L'avantage d'une macro est ce retour. Si j'ajoute simplement deux variables ici, les deux épingles d'exécution, celle-ci s'appelle execute, celle-ci s'appelle. Ensuite, la raison pour laquelle ils sont appelés, c'est que le texte disparaît si vous écrivez exécuter ici. Et si vous écrivez, cela disparaît également ici. La sortie, au lieu de la faire ici comme une fonction, lorsque vous commencez avec le stylo d'exécution et que vous la terminez ici, nous pouvons, avec une macro, ajouter la sortie à la version complète. En fait, nous attendons que la boucle se produise avant de continuer le code ici. Si j'ajoute cette macro ici, elle ne continuera que lorsque ma boucle sera terminée. C'est pourquoi je suis en train de créer une macro. Dans ce cas, ce que je veux faire , c'est ajouter deux variables. Le premier peut être qualifié de terroriste vivant. Transformons-en une variable normale entière. Créons-en un nouveau appelé Alive et compilons D'accord pour celui-ci, mettons d'abord les contre-terroristes à zéro, ceux qui sont vivants et celui-ci à zéro également. Parce que nous allons le faire en boucle et augmenter le montant en fonction du nombre de personnes vivantes. OK, emmenons ces joueurs vivants. C'est ici que nous pouvons vérifier combien de personnes sont en vie. Il en reste un. Permettez-moi de le supprimer pour celui-ci. Pour la course, vous pouvez simplement prendre ceci et dire que pour chaque boucle, vous pouvez réellement l'utiliser. Cependant, pour une carte, vous ne pouvez pas dire pour chaque boucle, ce n'est pas un tableau, c'est uniquement pour les rayons. Ce que vous pouvez faire, c'est faire glisser, si vous allez simplement sur la carte des utilitaires et que vous pouvez voir cette fonction. Vous avez ce qu'on appelle des clés. Vous avez également ce que l' on appelle des valeurs. Si vous cliquez sur les touches, vous pouvez obtenir toutes les clés ici. Comme dans toute cette partie, vous pouvez obtenir tous les joueurs. , si vous glissez et dites des valeurs Cependant, si vous glissez et dites des valeurs, vous pouvez obtenir toutes les valeurs, vous pouvez obtenir toute cette section, cette section ici, nous avons des clés et des valeurs. Et vous pouvez les voir ici. Si vous faites simplement glisser le pointeur d' ici et que vous dites ajouter, vous pouvez voir que vous ajoutez à celle-ci, quelles sont les clés, et que vous ajoutez à celle-ci, quelles sont les valeurs. C'est ce que nous faisions auparavant. Prenons toutes les valeurs. Permettez-moi simplement de supprimer ceci ici. Permettez-moi de prendre toutes les valeurs et de dire que pour chaque boucle, nous pouvons maintenant la boucler car il s'agit d'un tableau. Maintenant, pour chaque boucle, permettez-moi de supprimer celle-ci et de la déplacer vers le bas. Nous allons vérifier quelle équipe est en vie. Je peux en déduire qu' en fait, nous devons d'abord prendre cette équipe, dire « égalité et demander si c'est équivalent pour défaire un terroriste, par exemple. Et sélectionnez celui-ci. BP Counter Terrorist créera une succursale ici. Maintenant, nous prenons les valeurs ici et nous nous demandons s'il s'agit d'une valeur antiterroriste en ce moment. Cela signifie qu'un contre-terroriste est vivant. Si c'est vrai, nous pouvons prendre ce contre-terroriste vivant et dire « plus ». Que signifie « plus », « plus » ? C'est la même chose que de dire plus un. Et puis définir cette variable comme ça, comme ça, c' est beaucoup plus court. C'est en fait la même chose que d'en ajouter un. Vous pouvez maintenir la souris dessus et dire d'en ajouter une à la valeur spécifiée, puis de la définir. Au lieu de faire tout cela, nous pouvons simplement le faire. Nous prenons le contre-terrorisme en vie et nous y ajoutons un élément parce que nous venons de découvrir cette valeur précise est un contre-terrorisme. OK, si c'est faux, c'est que c'est un terroriste. Nous pouvons prendre ce terroriste vivant dire « plus » et l'ajouter ici au faux. Si c'est faux, c'est un terroriste vivant. Une fois la boucle terminée, ce que nous devons faire maintenant, ici, en retour, dire combien de terroristes sont vivants et combien de contre-terroristes sont vivants. Nous devons ajouter deux variables et les deux sont des entiers ici Résultats, appelez celui-ci «   comptez les terroristes vivants » et appelez celui-ci «   terroristes terroristes vivants et sans espace ». Nous pouvons maintenant ajouter ces deux variables ici et les envoyer au lecteur dans le. fois la boucle terminée, nous poursuivrons le code. Donc, si je reviens à Vent Graph et que je compile nous continuerons après la boucle. Maintenant, nous savons combien de contre-terroristes sont vivants et nous savons également combien de terroristes sont vivants. 181. Annonce de Team Win: Maintenant que nous savons combien de joueurs sont vivants, prenons ces terroristes vivants et demandons-nous s'ils sont égaux à zéro. Nous pouvons faire la même chose pour le terroriste. Demandez si c'est égal à zéro, d' ici et dites et utilisez celui-ci ou un lingot Si le terroriste ou le contre-terroriste sont nuls. Cela signifie que nous avons besoin de ce texte ici parce qu'il n'y a plus de contre-terrorisme ou de terroristes sur la carte et nous devons dire ou dire qui a gagné la partie ou la manche ici Nous demandons si cela est égal à zéro ou est-ce égal à zéro ? Si l'une d'entre elles est vraie, créons une branche et connectons-la. Si l'une d'entre elles est vraie, nous devons diffuser l'annonce. Revenons donc ici pour rappel et voyons ce que nous appelons l'annonce. C'est ce que nous appelons ici l'annonce de la victoire de l'équipe de mise à jour. Maintenant, pour y jouer, nous ne pouvons pas le faire directement en mode jeu car souvenez-vous que le mode de jeu fonctionne toujours sur le serveur. C'est pourquoi ici, nous ne répliquons jamais sur le serveur, car cela n'a aucun sens Il est déjà en cours d'exécution sur le serveur. Le client ne peut pas accéder au code en mode jeu. N'oubliez pas non plus que l'interface utilisateur est en cours d'exécution sur le client. Le client et le serveur ne peuvent pas communiquer comme ça, comme vous ne le pouvez pas. Le client ne peut pas simplement passer en mode jeu parce que le mode de jeu n'existe que sur le serveur et ne peut pas communiquer avec le client. Voici l'interface utilisateur, nous avons en fait besoin d'un support pour le faire fonctionner. Soit nous devons le faire passer par la base de joueurs, soit nous devons le faire passer par le contrôle du joueur. Puisque nous contrôlons l'interface utilisateur à l'intérieur de la manette du joueur, nous créons une interface utilisateur à l'intérieur de la manette du joueur. À l'intérieur de la manette de jeu. Il est plus logique de faire des choses à l'intérieur avec l'interface utilisateur. C'est ce que nous allons faire. Faisons un clic droit. Ce que nous devons faire, c'est simplement prendre le WB principal Nous devons appeler cela une annonce de victoire de l'équipe de mise à jour. Revenons à l'annonce de la victoire de l'équipe lors de la mise à jour du Play Controller . C'est ce que nous essayons de faire. Créons une fonction ou un événement pour cela. Créons un événement personnalisé appelé Update Win Annonce Annonce. Permettez-moi de le copier pour ne pas avoir à le réécrire, car maintenant nous devons créer un nouvel événement client les clients, car nous devons exécuter certaines informations de l'interface utilisateur et cliquer sur Owning Client reliable. Exécutons celui du client ici. OK, déplaçons ça vers le bas. Connectons-le ici. En fait, ce n'est pas le M, ce n'est pas le bon. Mettre à jour l'annonce de l'équipe I. Supprimons ceci et connectons-le à la place. Maintenant, nous devons exécuter cela ici et nous devons également exécuter Display Time. Fais la même chose ici, en continuant comme ça. Et maintenant, nous devons l'appeler ici via le mode jeu. Maintenant, ça marche. Nous pouvons simplement appeler celui-ci parce qu'il passe par le serveur. N'oubliez pas que vous ne pouvez appeler des événements clients que si nous sommes actuellement sur le serveur. Nous sommes sur le serveur parce que si cet événement est ici, si j'y retourne, si vous appelez cet événement ici en mode jeu, nous sommes toujours sur le serveur. Cela signifie que vous ne pouvez exécuter ce serveur, vous ne pouvez exécuter des événements client que si vous êtes sur le serveur. est ce que nous faisons. Revenons au mode de jeu. Maintenant, après avoir vérifié que l'un d'eux est zéro, nous devons maintenant y jouer. Nous devons obtenir la manette pour tous les joueurs, car nous devons afficher ce texte ici pour tous les joueurs. Ce que nous devons faire, c'est avoir besoin d'une boucle for. C'est pourquoi nous avons fait apparaître ce joueur. Supposons que pour chacun d'eux, parce que nous ne nous soucions pas vraiment de savoir qui est vivant et qui ne l'est pas, nous voulons simplement y jouer pour tous les joueurs apparus. Passons à la manette pour chacun des joueurs qui apparaissent manette pour chacun des joueurs qui Ensuite, nous pouvons à nouveau dire «   get player controller reference » comme nous l'avons fait jusqu'à présent. Et maintenant, nous pouvons appeler cela une annonce de victoire de l'équipe de mise à jour. Disons que c'est l' annonce de l'équipe de mise à jour. Celui-ci, ici. Nous devons maintenant savoir quelle est l'équipe. Nous devons également connaître l'heure d'affichage. L'heure d'affichage, encore une fois, je vous l'ai déjà dit, il ne s'agit en fait que du minuteur de réponse. Pendant que nous répondons, nous voulons l'afficher à l'écran. Permettez-moi de créer une nouvelle variable ici dans le mode jeu et de dire : Minuteur de réponse. Et nous pouvons simplement en faire un flotteur et le relier à ici. Maintenant, nous devons également connaître l'équipe de cette équipe. Nous devons montrer qui a gagné le match. Pour cela, il suffit de prendre ces joueurs vivants, car celui qui est vivant est l'équipe qui gagne. Nous pouvons prendre cela et dire des valeurs. Allez-y et sélectionnez-le. Il suffit de frapper d' ici et de dire « oui ». Parce que maintenant c'est comme un tableau. Nous pouvons obtenir cette valeur. Nous allons juste le récupérer auprès du premier joueur que nous trouverons ici. Il n'est pas vraiment important de savoir qui est le joueur, car ils sont tous vivants, la même équipe qui a gagné. Nous allons donc simplement trouver le premier joueur que nous trouverons. Ensuite, nous pouvons le brancher ici. Le joueur vivant est celui qui a gagné. Allez-y, connectez tout. Et je vais juste prendre des notes sur le parcours arrière ici. Et vous l'avez ici. Donc maintenant, nous avons vraiment terminé. Nous intégrons donc tous les joueurs apparus dans le jeu Nous prenons toutes leurs lois sur le contrôle du jeu. Et nous leur présentons à tous cette équipe de mise à jour que nous annonçons. Et ce que nous montrons, c'est que quelle que soit la personne en vie, c'est l'équipe qui a gagné. Maintenant, nous cliquons sur le chronomètre de réponse. Et je vais régler ce temporisateur de réponse sur environ 3 secondes pour le moment de la compilation. Et maintenant, cliquons sur Play et testons-le. Et jouons le jeu ici. Je vais sélectionner des terroristes ici, ou des contre-terroristes. Et je vais sélectionner des terroristes, je vais passer devant le contre-terrorisme. Maintenant que je suis le contre-terroriste, je vais tirer sur le terroriste. Maintenant, il devrait être écrit «   antiterroriste », mais pour le moment, rien n' est affiché. Permettez-moi donc de clore ceci et de voir ce qui se passe. Bien, avant de continuer, n'oubliez pas de régler ce temporisateur de réponse sur une valeur différente de zéro, peut-être 3 secondes. Nous devons également configurer les joueurs pour qu'ils soient vivants lorsqu'ils apparaissent, car rien ne se passe pour le moment Nous n'avons jamais appelé ces événements Compilons tout, enregistrons tout et allons dans la base de joueurs chaque fois que ce joueur apparaît. Et c'est à l'intérieur de ce graphique d'événements. Commencez à jouer chaque fois que ce joueur apparaît et nous définissons la santé de ce joueur Je veux également les placer sur cette carte vivante. N'oubliez pas qu'à l'heure actuelle, sur le client, ce début de jeu s'exécute à la fois sur le client et sur le serveur. Cela nous rapportera de l'argent si nous l'appelons directement. Comme le mode de jeu n'est accessible que via le serveur, nous ne pouvons pas y accéder via le client. Nous devons en fait créer un événement sur le serveur. Créons un nouvel événement personnalisé via le serveur. La première consiste à ajouter deux couches de carte vivante et à la faire passer par le serveur. Fiable. Nous devons également créer l'autre, appelé serveur à deux couches spon array parce que nous avons celui-ci aussi Et nous devons également l'exécuter sur le serveur. OK, ici, nous devons obtenir la référence du mode de jeu. Je ne crois pas que nous ayons créé une variable pour cela, comme nous l'avons fait pour la loi sur le contrôle des joueurs. Faisons-le également pour le mode jeu. Je vais le déplacer. Dites « passer en mode jeu ». C'est en fait la référence. Passons au mode de jeu ici. Cette fonction, exécutez-la via cette référence au mode Get Game. Déplaçons ça vers le bas. Allons-y et connectons-le. Promouvons cela dans notre variable et appelons-le mode jeu. OK, connectons-le. Nous n'avons pas besoin de le reproduire car cela ne fonctionne de toute façon que sur le serveur Passons maintenant à cette variable du mode de jeu. Appelons l'ajout de joueurs une carte en temps réel. Connectons-le à celui-ci. Disons le mode jeu. Encore une fois, prenons cette variable de mode de jeu que nous avons. Disons ajouter au tableau d'apparition des joueurs. Allons-y et connectons-nous comme avant. Maintenant, ce que nous pouvons faire avec ça, c'est appeler ici dans le jeu Begin. Nous pouvons appeler le serveur pour ajouter des couches à une carte en direct. Et nous pouvons également appeler le adypawnarray. Nous devons définir le joueur. N'oubliez pas que nous sommes déjà dans la base de joueurs, nous pouvons donc simplement dire self et glisser à nouveau à distance. Maintenant, nous les avons ajoutés chaque fois qu'ils apparaissent. Nous ajoutons le joueur à la carte en direct, mais nous l'ajoutons également aux joueurs qui sont apparus. Nous gardons donc une trace du nombre de joueurs qui se trouvent réellement sur la carte. Chaque fois que le joueur meurt, nous devons également l'ajouter à la mort. Si je vais juste ici, passe à l' armure de santé et aux dégâts. Si nous nous contentons de cette mort, souvenez-vous que nous avons fait la réapparition ici après celle-ci, où il est indiqué qu'aucune arme ne doit être Et nous répondons, le joueur. Déconnectons-le maintenant et retirons-le. Le joueur, chaque fois qu' meurt et laisse tomber toutes ses armes. Ajoutons le joueur à cet événement du mode jeu. Cela fonctionne déjà sur le serveur, nous n'avons donc pas besoin de créer un événement serveur. Cette référence au mode de jeu que nous avons faite, disons Ajouter un joueur, ou laissez-moi voir comment je l'appelle. Si je passe en mode jeu, j' ajoute une carte morte à deux joueurs. Partons d' ici et disons d'ajouter deux joueurs morts et connectés. Maintenant, nous devons dire qui est le joueur ? C'est soi, nous sommes toujours dans le joueur. Nous allons maintenant ajouter ce joueur à la carte morte chaque fois qu' il meurt. La raison pour laquelle il ne s'imprime pas pour moi est que j'ai ajouté ce code ici, sur la carte des joueurs vivants. Et je dois l'appeler ici parce que je dois vérifier chaque fois qu'un joueur meurt. Permettez-moi de déconnecter ce code ici. Permettez-moi de copier tout ce que j'ai écrit et je vais plutôt le déplacer vers celui-ci et le connecter. est une petite erreur, assurez-vous simplement que cela ne vous arrive pas également. Ajoutez-le au deadmp du joueur, car nous devons vérifier chaque fois qu'un joueur meurt Compilons et cliquons sur Play now. Et je vais juste maximiser cela. Sélectionnez Counterterrorist ici, Terrorist ici. Ensuite, je vais me tenir ici, au grand jour, en tant que contre-terroriste. Je vais maintenant tirer sur le terroriste. Je vais juste me rapprocher un peu plus. Si je tire sur le terroriste, il est maintenant indiqué que l'antiterroriste gagne sur les deux écrans. Maintenant, il va disparaître au bout de 3 secondes parce que c'est ce que j' ai mis sur mon chronomètre. Et essayons de le tester auprès d'un plus grand nombre de joueurs. Si je choisis quatre joueurs et que je joue au jeu, ils sont là. Je vais sélectionner « terroriste », terroriste », et celui-ci « contre-terroriste ». Sur mon autre écran, je crois ou je suis en faveur de celui-ci. Il y en a une de plus. C'est ici. Et je vais également sélectionner Counter Terrorist pour celui-ci. Nous avons maintenant deux contre-terroristes et nous avons également deux terroristes. Permettez-moi de parler ouvertement à chacun d' entre eux et alors que la lutte antiterroriste se tient ici. Maintenant, en tant que terroriste dans ce film, je vais aller sur le spawn, essayer de tuer ici et voir ce que ça dit Maintenant, si je tue ce contre-terroriste, rien ne s'affichera car tous les joueurs ne sont pas morts ici. En tant que contre-terroriste vivant, je vais tirer sur ce terroriste. Maintenant, ce terroriste est mort et nous sommes toujours deux joueurs vivants en tant que contre-terroristes. Si maintenant je passe la main au terroriste et que je tire sur ce terroriste, cela signifie que la lutte contre le terrorisme gagne. Sur tous les écrans, tout fonctionne parfaitement. Nous pouvons maintenant ajouter les scores de l'équipe avant de répondre aux joueurs. 182. 13.09 Ajouter le score d'équipe: Il ne nous reste plus qu'à ajouter le score de l'équipe. Si nous revenons à l'interface utilisateur principale, souvenez-vous que c'est nous qui avons fait marquer l' équipe ici. Nous avons fait en sorte que ces deux événements mettent à jour l'interface utilisateur du score terroriste. Et nous avons fait cette mise à jour de l'interface utilisateur de Counter Terrorist Score. Ajoutons-les également à la loi sur le contrôle des noirs, car encore une fois nous ne pouvons pas accéder au mode jeu en tant que client ici. Passons à la manette du joueur lorsque celle-ci s'affiche, chaque fois qu'elle est jouée. Chaque fois que nous diffusons l'annonce de la victoire de l'équipe, nous voulons généralement augmenter l'une d'entre elles Permettez-moi de modifier ici après l'annonce de la victoire de l'équipe de mise à jour. Ce que nous pouvons faire ici, c'est demander quelle équipe en possède une. Nous pouvons faire glisser ceci et dire égal à ceci. Si c'est équivalent à la lutte contre le terrorisme, créons une branche ici, connectons-la. Reprenons ce WB principal et allons-y et collons-le Chaque fois qu'il s'agit de la lutte contre le terrorisme, nous voulons mettre à jour l'interface utilisateur du score antiterroriste chaque fois qu'il s'agit du terroriste Chaque fois que c'est faux, nous voulons mettre à jour l'interface utilisateur du score terroriste. Allez-y et associez cela au faux. Maintenant, nous devons également connecter le score. Allons-y et fabriquons une épingle ici. Parce que nous en avons besoin. Transformons-le en un entier, appelons-le score. Je vais juste le déplacer en dessous l'équipe ici. Déplace ça vers le bas. Ensuite, je vais l' intégrer à la partition. Nous allons juste le déplacer pour qu'il soit plus beau. Et je vais cliquer ici pour créer un nœud de reroutage et le faire comme ça. Et allez-y, connectez-le également. OK, maintenant nous avons également le score. Et compilons. Et aussi là-haut, n'oubliez pas de faire glisser le score ici. Je vais le déplacer un peu plus haut, en dessous de l'équipe. La dernière chose se trouve dans le mode de jeu. À l'intérieur du mode jeu, nous avons maintenant ce score. Et nous devons ajouter le score pour le score. C'est soit le score antiterroriste, soit le score terroriste que nous devons intégrer ici. Encore une fois, nous devons en tirer des conclusions et demander si cela équivaut à un terroriste. Et déplaçons tout cela afin de disposer de plus d' espace de travail. Nous demandons si c'est équivalent au terrorisme ou à l'antiterrorisme ? Ça dépend de ça. Nous allons sélectionner Drag from this, dire select Integer et brancher ce taureau. Nous l'avons déjà fait, nous allons sélectionner A. Si c'est vrai, créons de nouvelles variables. Créons deux variables, l'une appelée Da, terroriste, score terroriste. Transformons-le en un entier. Créons-en un nouveau. Je vais appeler ça un score terroriste. Et il s'agit également d'un entier pour ces deux scores, Whenever it is the Counter Terrorist. Donc, il va choisir un, nous allons mettre le score de la lutte contre le terrorisme ici. Chaque fois qu'il s'agit d'un terroriste, nous allons prendre le score du terroriste et le connecter ici. Ensuite, il le sélectionnera en fonction de ce qu'est ce sondage, et inscrira ce numéro de score ici. OK. Faisons maintenant avancer les choses ensemble. Ce que nous devons faire maintenant, c'est les fixer, car à l'heure actuelle, le score du terrorisme et de la lutte contre le terrorisme est simplement nul. Nous ne faisons vraiment rien pour le moment. Créons une nouvelle fonction, et je vais juste créer une nouvelle fonction ici. Appelons celui-ci un score d'équipe. Nous pouvons réellement l'utiliser vivants si les contre-terroristes sont vivants ici. Nous pouvons prendre celui-ci et dire s'il est égal à zéro, créer une branche et la connecter. Si le nombre de contre-terroristes vivants est égal à zéro, cela signifie que nous devons attribuer un point au score de contre-terrorisme. Nous pouvons prendre cela encore une fois, disons plus, plus pour incrémenter d'un Cependant, si celui-ci est vrai ou faux, cela signifie que le contre-terroriste est réellement vivant et qu'il n' est pas égal à zéro. Cela signifie que nous pouvons prendre ce score antiterroriste et dire «   plus », car il s'agit probablement du nombre de terroristes vivants et non du terroriste. Puisque nous aimons avoir atteint ce point du code, connectons-le. Revenons maintenant au graphique des fourgonnettes et nous allons l' ajouter après celui-ci, car après avoir vérifié que l'un d'entre eux est réellement égal à zéro, nous pouvons attribuer un point à l'un d'entre eux. Nous pouvons utiliser cette fonction, la brancher ici. Maintenant, cela a du sens, car maintenant nous nous demandons qui est nul. Si le contre-terroriste vivant est égal à zéro, alors nous devons donner un point au terroriste. Cependant, si cela est faux, cela signifie que le terroriste est en fait égal à zéro. Nous devons donc attribuer un point aux antiterroristes. Maintenant, nous avons accordé un point et il sera bloqué ici. OK, ça devrait parfaitement fonctionner. Maintenant, sauvegardons tout et cliquons sur Play. Et vérifiez si cela fonctionne. En fait, je vais réduire le nombre de joueurs à environ trois. Je vais sélectionner des terroristes sur celui-ci, des terroristes sur celui-ci, et des contre-terroristes sur celui-ci ici. Maintenant, en tant que contre-terroriste, je vais me rendre à la base des terroristes. Je vais en fait minimiser cela. Je peux donc voir là-haut et le décomposer. Je ne sais pas pourquoi il continue d' apparaître en haut de mon écran, alors laissez-moi tuer l'un d'entre eux maintenant. OK, rien ne s'est passé parce que l'un d'eux est toujours en vie et je vais tuer ce type ici. Vous pouvez voir que le terroriste obtient maintenant un point. Ce n'est pas vrai, car en ce moment je suis en fait un contre-terroriste. Si vous jetez un œil ici, le score de la lutte contre le terrorisme n'est pas correctement enregistré Le score du terroriste n'est pas correctement enregistré. Si je reviens à ce score de récompense et que je regarde, agit de la lutte contre le terrorisme, et s'il est égal à zéro, nous allons attribuer un point au score terroriste. Tout semble correct. L'autre point est que cela a été déconnecté parce que nous avons écrit ce pull ici. Reconnectons cela, car c'est en fait le contre-terroriste qui en possède un, mais il sélectionne le terroriste par défaut Permettez-moi de le faire glisser à nouveau ici, comme avant et vous pourrez créer un nœud de route. Maintenant, il est connecté. Vérifions-le pour être sûrs. Ici, dans le contrôleur Apple, celui-ci est également connecté. Celui-ci est déconnecté parce que, encore une fois, nous l'avons fait ici. Laissez-nous le connecter. Maintenant, cela devrait fonctionner. Assurez-vous que tout est connecté. Et cliquons à nouveau sur jouer et sélectionnons à nouveau Terroriste, Terroriste, Contre-terroriste. Et je vais juste retourner au spawn. OK, ici j'ai tué les premiers terroristes et je vais aller voir le deuxième terroriste et tuer ce joueur. Et si je maximisais simplement l'écran pour que vous puissiez voir, il est dit « victoire de la lutte contre le terrorisme ». Et cela ajoute un point à tous les joueurs. Cela ajoute également un point pour le terroriste. Cela ajoute un point à la lutte contre le terrorisme. Cela fonctionne correctement maintenant. 183. 13.10 Réapparaître les joueurs: Hein ? Ce qui nous manque maintenant, c'est de répondre aux joueurs, laissez-nous le faire ici. Ce que nous pouvons faire ici, c'est retarder parce que nous ne voulons pas répondre aux joueurs tout de suite. Nous voulons en fait répondre après ce délai de réponse. Ce temporisateur de réponse est actuellement réglé sur 3 secondes, il va donc retarder le code de 3 secondes. Ensuite, nous allons répondre à nouveau à tous les joueurs. Prenons le chemin de ce joueur pour chaque boucle. Avec celle-ci nous allons appeler cette réapparition que nous avons créée chez le joueur avec cette armure de santé et N'oubliez pas que nous avons fait cette réapparition, appelons-le. Allons voir le joueur et réapparaissons. Maintenant, nous répondons à tous les joueurs et nous pouvons communiquer avec eux. Parce que celui-ci passe par le serveur. Ça va passer par ici. parcourant le serveur et en faisant tout ce que nous faisions auparavant, en répondant aux joueurs. N'oubliez pas que nous avons également ces variables, les données des joueurs et les joueurs vivants. Et nous devons également les mettre à jour. Avant de tarder, je vais simplement faire avancer les choses. Je vais prendre ces joueurs vivants et les tuer, et je vais les éliminer ici. Je vais éliminer les joueurs vivants, et je vais déplacer ça. Je vais également effacer la carte pour les joueurs morts. Les deux sont réinitialisés. Ensuite, nous allons retarder le code. Comme ça ici. Je vais le déplacer vers le bas, connecté ici. Nous allons maintenant retarder le code. Chaque fois que nous l' avons reportée, nous devons ajouter à nouveau les joueurs aux joueurs vivants, sinon personne ne sera vivant ici. Et il sera réservé ici pour la réponse. Avant de répondre aux joueurs, je voudrais les ajouter. N'oubliez pas qu'à l'intérieur du lecteur, nous venons de créer ce graphique d'événements. Nous venons de créer celle-ci récemment, l'ajout aux joueurs d'une carte en direct Nous devons appeler celle-ci sur le serveur, le rake de liste, et dire que le serveur ajoute aux joueurs une carte en direct Nous devons préciser qui est le joueur, il n'y a que celui-ci ici. Ensuite, nous pourrons aller de l'avant et répondre. Je vais juste le faire glisser vers le bas. Et encore une fois, double-cliquez ici pour prendre note de l'itinéraire afin voir la différence entre les deux. Allons-y. Nous allons maintenant effacer ces cartes, assurer qu'elles ne sont pas boguées Ensuite, nous pouvons retarder en fonction du temporisateur de réponse. Nous allons donc attendre un peu, puis nous allons répondre aux joueurs et les ajouter à cette carte vivante. Encore une fois, allez-y et compilez maintenant dans le lecteur ce que nous avons fait auparavant, dans la réponse, ce code ici, que nous pouvons simplement supprimer. En fait, nous ne l'utilisons pas vraiment, celui-ci, je vais juste le supprimer car je n'ai je vais juste le supprimer car je n'ai plus besoin de cette chaîne d'impression. C'est ce que nous avons. Compilons, sauvegardons tout et cliquons à nouveau sur jouer. Sélectionnez Terroriste. Sélectionnez Terroriste, Lutte contre le terrorisme, par exemple. Maintenant, je vais juste me rendre à la base. Laissez-moi prendre cet AK et je vais tirer sur ce joueur maintenant. Maintenant, il est dit que le terroriste gagne et je vais avoir raison. Alors nous répondrons tous. Je suis ici en tant que terroriste né avec l'autre terroriste C'est aussi le terroriste. Voici le contre-terroriste. Répondez ici en tant que terroriste. Maintenant, si je passe à la lutte contre le terrorisme et que je tire sur le contre-terroriste, alors il devrait être écrit « le terroriste gagne ». Nous allons aborder le deuxième point et nous allons tous répondre à nouveau. OK, donc ça fonctionne parfaitement et c'est la lutte contre le terrorisme et maintenant je vais tuer ce type ici. Vous voyez maintenant la victoire de la lutte contre le terrorisme. Très bien, donc tout fonctionne correctement et nous réagissons également ici dans l'apparition des terroristes et dans le paon des terroristes, en attribuant le bon nombre de points ou en arrondissant des points chaque fois que nous gagnons la manche 184. 14.01 Ajouter une impulsion sur la chute d'arme: OK, donc pour le moment, nous avons presque terminé. Et ce que je veux faire dans cette section, c'est améliorer le jeu avec quelques petits éléments qui nécessitent quelques ajustements. Par exemple, en ce moment, lorsque nous lâchons l'arme, tombe juste en dessous de nous. De plus, cette arme tombe juste en dessous de nous. Au lieu de le faire, je veux lâcher l'arme devant nous comme si nous la lançons devant nous. Pour ce faire, revenons à la base de joueurs et examinons la logique du largage d'armes ici. Nous avons créé l'arme larguée Si je l'élargis et l' incluons également, c'est la logique de l'arme larguée que nous avons créée. C'est l'arme qui nous avertit si vous cliquez dessus, cela nous amène à cette fonction. Ajoutons le code ici. Chaque fois que nous lançons l'arme, nous la retirons du joueur. Régler la collision comme étant uniquement physique pour l'arme, puis nous simulons la physique Après avoir simulé la physique, nous pouvons ajouter une impulsion, car si vous n'avez pas de physique, vous ne pouvez pas ajouter d'impulsion. Nous ne pouvons pas l'ajouter avant cette étape. Ls, vous allez avoir un message d'erreur. Eh bien, il suffit de l'ajouter après cela. En gros, prendre cette arme pour dessiner, puis prendre variable d'arme que nous avons utilisée. C'est le même que celui-ci. En gros, partons de là et parlons d'impulsion. Ajoutez ensuite cette impulsion qui est physique. Vous pouvez voir ici si vous le connectez, double-cliquez ici pour créer un nœud de redirection Ce que nous pouvons faire maintenant, c'est ajouter de la physique. Si vous écrivez simplement quelque chose, disons un ou 5 000, quelque chose de très extrême, nous pouvons accepter ce changement de vitesse. Cela enlève de la masse à l'acteur. Nous ne regardons pas la masse, nous ignorons la masse, réglons ce changement de vitesse sur true. Si vous lancez quelque chose en ce moment, vous pouvez le voir survoler et il me revient même. Tu peux voir que je peux le lancer maintenant. Et je me suis même rendu compte que c' est un mécanicien plutôt cool. Il s'agit du changement de vitesse que nous avons créé ici pour que nous soyons réellement en train de lancer sur le côté Nous regardons ici et nous sommes en train de lancer là-bas pour qu'il soit projeté devant nous là où nous regardons. Nous pouvons cliquer avec le bouton droit de la souris et dire «   get actor forward vector ». N'oubliez pas que nous l' avons utilisé. Si vous revenez au graphique du fourgon et au mouvement, nous l' avons utilisé ici. Obtenez le vecteur avant de l'acteur pour obtenir le vecteur avant du joueur afin que nous puissions avancer. Revenons au dépôt et prenons ce vecteur get actor forward Et maintenant, cassons-le. Je peux donc utiliser à nouveau le X, le Y et le Z. Vous pouvez simplement cliquer avec le bouton droit de la souris si vous le souhaitez et dire « split struct pin C'est pareil, je le fais juste de cette façon. Ensuite, je vais créer directement à partir d'ici et dire créer un vecteur. Et si vous créez ce vecteur, vous avez aussi le XY et le Z parce que la seule chose que je veux modifier est le x. Andy, je vais laisser z tel qu'il est pour le moment. Je ne veux pas vomir vers le haut. Modifions le xy x dès maintenant. Allons prendre ça. Maintenant, nous avons besoin d'une impulsion. heure actuelle, c'est zéro. Allons prendre ça. Et c'est zéro. C'en est un. Multiplions celui-ci par 600. Multiplions celui-ci par, disons également 600, comme ceci. Ensuite, nous pouvons les reconnecter au x. Ce que nous avons fait ici, c'est simplement prendre le x, multiplier par 600, et remettre la valeur à l'intérieur d'ici. Nous avons maintenant ajouté une certaine impulsion, mais pour la valeur Z, nous restons inchangés. OK, organisons-le ici et retirons-le. OK, compilons. Cliquons sur jouer Maintenant, voyons ce qui se passe si je prends juste quelque chose et que je le jette devant moi. Tu vois, maintenant nous sommes en train de lancer l'arme devant nous. Quelle que soit la direction dans laquelle nous regardons, nous lançons l'arme devant nous. OK, cool. C'est bien mieux que de le jeter ici en dessous de nous. C'est un bon mécanicien. OK, c'était ça. Laissez-nous tout sauver. Très simple, à corriger ou à améliorer. Mais cela apporte beaucoup au jeu. Passons à la suivante. 185. 14.02 Améliorer le poids de l'arme: Je suis donc de retour dans le jeu en ce moment. Vous pouvez voir quand je lance quelque chose, si je lance cette arme, quand elle atterrit au sol, elle rebondit Et celui-ci aussi. J'ai l'impression que l' arme n'est pas réaliste. C'est comme si c'était trop léger. Cela ne devrait pas autant rebondir sur le sol. Il devrait juste, peut-être, s'arrêter beaucoup plus vite. Comme si le poids de cette arme était trop faible et trop léger. C'est aussi un peu irréaliste. La deuxième chose, c'est que je peux voir la capsule. Je pense qu'il s'agit d'un jeu caché. Je voudrais également en parler dans le jeu caché Weapon Base Capsule. Je ne pense donc pas que l' arme soit légère. Ce que vous pouvez faire, c'est quelque chose de nouveau avec lequel nous n'avons jamais travaillé auparavant. Si vous ouvrez l'arme ici, la base d'armes. Dans la base d'armes, vous pouvez cliquer sur l'arme et faire défiler la page vers le bas jusqu'à la collision. Vous avez ce qu'on appelle un matériau physique. Avec le matériel physique, vous pouvez également ajuster les paramètres de friction et de rebond Ce que nous voulons faire, c' est simplement le créer dans ce dossier car nous n' avons aucun dossier pour cela. Nous pourrions créer un nouveau dossier, mais faisons-le simplement à l'intérieur de la base d'armes. Nous pouvons écrire, cliquer sur Go to Physics, puis ajouter celui-ci intitulé Physical Material and Created. Allez-y et sélectionnez celui-ci. Je vais juste l'appeler PM pour le matériel physique, on peut simplement l'appeler base d'armes ou quelque chose comme ça. Donnez-lui simplement un nom. Ouvrez-le maintenant, vous pouvez voir ici que nous pouvons ajuster le frottement et nous pouvons ajuster le frottement statique. Nous pouvons également ajuster la restitution. Et vous pouvez voir que la restitution est également appelée souplesse de la surface Si je le mets juste à zéro et que je sauvegarde, et que j'accède à la base d'armes au lieu de la base d'armes. Si vous cliquez sur l'arme et que, lors de la collision, vous sélectionnez ce nouveau matériau physique. Nous l'avons appelé Pm. Cette base d'armes unique. Vous allez de l'avant, compilez et cliquez sur Play. Maintenant, vous pouvez voir que si j'ai laissé tomber cette arme par terre, elle rebondit beaucoup moins qu'avant L'autre chose que je veux faire , c'est qu'au lieu de le mettre à zéro, je vais le mettre à 0,15. Au départ, c'était 0,3, peut-être la moitié Ensuite, pour ce qui est de la friction, je vais juste la mettre à 25,25. Donc, plus elle est élevée, plus la friction est élevée et elle rebondira pas et ne se déplacera pas sur le sol OK, allons-y cliquons sur jouer et voyons ce qui se passe. Fi supprime cette AK maintenant c'est ce qui se passe, d'accord. ai l'impression que cette arme a beaucoup plus de poids. On se sent beaucoup mieux qu'avant. Si vous le souhaitez, vous pouvez même augmenter ce frottement, frottement statique, vous pouvez jouer avec. Et je pense que c' est bon pour le moment. Fermons-le et passons au suivant. 186. 14.03 Supprimer Reload SFX sur Weapon Drop: Très bien, une chose ici en ce moment, est gagner de l'argent si nous essayons de tirer sur quelque chose, que nous rechargeons et que nous lâchons l' arme, par exemple Vous pouvez voir que je peux entendre le son de rechargement Même lorsque je l'équipe et que je tombe, je peux entendre le son de rechargement comme ça Je l'entends même lorsque je laisse tomber l'arme par terre. Nous devons régler ce problème. Si nous passons à la base de joueurs, examinons ce qui se passe lorsque j'équipe une arme. Il émet un son. Si vous accédez au butin, équipez et lâchez l'arme, et vous passez à votre logique d'équipement Nous jouons ici ce montage d'animation. N'oubliez pas que les effets sonores se trouvent en fait à l'intérieur des montages d'animation Si je passe aux animations des actifs qui se trouvent ici, si nous recherchons, nous pouvons prendre le fusil à rechargement par exemple N'oubliez pas que les effets sonores se trouvent à l'intérieur d'ici. Nous ne pouvons pas vraiment arrêter l'effet sonore ici, car il se trouve dans le montage d'animation lorsque nous lâchons une arme. En fait, je veux arrêter de ce montage d'animation parce que je ne veux pas reproduire tous ces effets sonores. Si je vais dans la base de joueurs. Passons maintenant à la logique du largage d'armes. Ici, nous lâchons l'arme et nous cherchons une arme dans l'inventaire. Chaque fois que nous trouverons une arme dans l'inventaire, nous la déposerons ici. En fait, je voudrais ajouter ici le code qui aura du sens chaque fois que nous trouverons une arme dans l'inventaire et que nous serons prêts à la lâcher. Permettez-moi de déplacer tout cela un peu et de l' organiser ici. Maintenant, ce que nous voulons faire, c'est créer une multidiffusion pour cette arme larguée Nous n'en avons pas encore un . Je peux donc en créer un en déplaçant simplement cette partie vers le bas et en cliquant avec le bouton droit de la souris pour créer une multidiffusion d' événements personnalisée Parce que je veux arrêter ça pour tous et leur dire «  lâchez leur arme » pour cette multidiffusion Ce que je veux faire, c'est d'abord configurer en multidiffusion et en fiabilité Utilisons ensuite ce maillage pour trouver le montage d'animation en cours de lecture. Nous devons d'abord trouver la classe d'animation. Si vous recherchez, je crois, instance d'animation, obtenez une instance. Vous devez donc d'abord obtenir l'instance d'animation. Ensuite, vous pouvez dire montage. Ensuite, vous pouvez voir que vous disposez de nombreuses fonctions que vous pouvez utiliser avec le montage. Mais ce que nous voulons faire, c'est arrêter le montage. Montage, arrêt, départ et connexion. Pour celui-ci, nous devons le reconnecter ici. Nous ne pouvons donc pas le faire pour le moment. Pour la cible, c'est l'instance, on peut simplement l'appeler instance pour le montage. Nous pouvons simplement le brancher et je vais l'appeler equip, Equip montage, par exemple. Montage des armes de l'équipement. On peut même parler d'arme ici, donc c'est logique. OK, maintenant que nous avons celui-ci, nous pouvons l'appeler ici. Appelons MC Drop Weapon. Et déplaçons-le ici. Nous pouvons maintenant nous connecter depuis le serveur. Nous pouvons connecter l'instance d'animation. Nous pouvons également obtenir le montage. Si nous partons d'ici et disons montage, voyons voir ici. Nous pouvons dire obtenir le montage actif actuel. Et nous allons prendre ce montage en cours de diffusion et nous pouvons le brancher ici. Permettez-moi juste de prendre des notes de route pour celui-ci. OK, maintenant que c'est branché, sauvegardons tout. En ce moment même. Cela vous donne une époque qui dit quelque chose ici. Il suffit de cliquer sur Fichier et actualiser toutes les notes. Je pense que quelque chose ne va pas. Nous avons juste besoin de rafraîchir toutes les notes, de les déconnecter et de les brancher ici, les compiler, parfois comme si cela n'avait aucun sens, je ne sais pas pourquoi, mais assurez-vous simplement rafraîchir toutes les notes et nous pouvons le faire. OK, jouons maintenant. Parce que maintenant cela devrait arriver. Si je joue, je prends une arme, prenons celle-ci par exemple. Maintenant, changeons d'arme et lâchons. Vous pouvez maintenant voir que l'animation de rechargement ou d'équipement s'arrête C'est très bien. Et si je le recharge maintenant, si je le recharge et C'est réglé maintenant. OK, c'est réglé maintenant. Cela n'a aucun sens de jouer le son. Si nous lâchons l'arme maintenant, nous ajouterons plus tard des éléments qui pourraient y remédier. Ce que je veux que vous fassiez, c'est qu' avant de suivre cette logique, je veux que vous preniez de cet ensemble le montage actif actuel, pour vous assurer qu'il est valide. Avant de faire cette demande, est-ce valide ? Éloignons tout cela. Permettez-moi également de revenir en arrière et de demander d'abord si c'est valide ? S'il est valide, allez-y et arrêtez le thêta, ou arrêtez ce montage ici Et si ce n'est pas valide, allez-y et faites ce que vous avez fait auparavant. Permettez-moi de créer quelques notes de redirection pour celui-ci et de le rapprocher, comme ceci Et maintenant c'est terminé. Nous allons ignorer cette arme MC Drop. Si cela n'est pas valide, nous n'avons rien ici. Compilons, sauvegardons tout. Et maintenant c'est terminé. Nous pouvons passer à la suivante. 187. 14.04 Ajouter une annonce d'équipe Win SFX: Donc, pour le moment, ce que je veux faire, c'est que chaque fois que nous jouons ici, que nous tuons quelqu'un et que nous gagnons la manche, quand il est dit victoire antiterroriste ou victoire terroriste, je veux créer un effet sonore. Il ferait plus frais qu'en ce moment où nous n'avons rien. Ce que je veux, c'est que vous alliez sur le marché et que vous consultiez le contenu gratuit d'Epic Games qui s'y trouve. Je crois que c'était à la page 7, il y a quelque chose qui s'appelle Peagon mail on Vous pouvez également le rechercher si vous le souhaitez. Ce Perregon Ono, tu peux le prendre et l' ajouter au projet Je vais dire montrer tous les projets car pour le moment ce n'est pas compatible avec le moteur N 5.2. Je vais montrer tous les projets. Sélectionnez le projet Cada Strike et sélectionnez la dernière version ici Allez-y et cliquez sur deux projets. Permettez-moi simplement de minimiser cela ou d'attendre que cela se termine. Une fois que c'est terminé, minimisons cela. Passons à notre propre projet. Je vais juste aller ici. Et voilà, le Paragon Mail Anons. Ajoutons-le simplement au dossier Marketplace. Nous restons organisés comme avant. Nous pouvons maintenant ouvrir le dossier Marketplace et accéder à ce courrier Paragon Sons Passons au son. Maintenant que nous avons le son pour celui-ci, nous pouvons d'abord créer quelque chose de cool. Avant de faire cela, je peux simplement sélectionner tout ce qui se trouve ici. Cliquez avec le bouton droit sur Asset Actions et modifiez en bloc via la matrice de propriétés. Comme je veux réduire le volume du son pour chacun d'entre eux afin qu'il ne soit pas trop fort dans ce cours, je vais simplement le réduire à un multiplicateur de volume 20,1. Fermez-le et enregistrez tout ce qu'il contient. Il n'y a que deux sons dont nous avons besoin pour le moment. Nous avons besoin de celui qui est vaincu. Nous avons ce qu'on appelle la défaite. Tu es vaincu. C'est à ce moment-là que tu perds. Et nous avons aussi ce que l'on appelle la victoire. Je crois que c'est celui-ci, tu es victorieux. Je veux jouer à ces deux-là. C'est ce que nous allons faire. Passons aux plans Et le mieux, c'est ici, dans le mode, car dans le mode jeu, nous y avons joué. N'oubliez pas que nous venons de le faire. Et cela va mettre à jour l'annonce des victoires de l'équipe. Double-cliquez dessus et accédons à la manette du joueur. Maintenant, à l'intérieur de la manette du joueur, nous exécutons ce client aperçu. Nous voulons jouer le son sur place, car chaque fois que vous perdez, il ne produira qu'un seul son Chaque fois que tu gagnes, un autre son sera émis. Nous ne voulons pas diffuser le même son pour tout le monde. C'est ce que vous avez fait avec une multidiffusion. Vous avez diffusé le même son pour tout le monde grâce à une multidiffusion Mais pour cela, nous voulons jouer un effet sonore gagnant lorsque nous gagnons et nous voulons perdre l'effet sonore pour le joueur qui a perdu. C'est du côté client. Pour cela, nous pouvons réellement le faire ici parce que nous savons qui a gagné. Ici, nous connaissons l' équipe gagnante. Ce que nous voulons faire, c'est simplement émettre du son. Au lieu d'émettre un son à un endroit, jouons un son en deux D, juste pour le joueur qui écoute ce son en ce moment. Quel son jouons-nous ? Faisons glisser le pointeur et disons « Sélectionner », puis faisons en sorte que, lorsque vous perdez, vous entendiez un son. Quand tu gagnes, tu entends autre chose. Maintenant, nous pouvons l'utiliser , nous pouvons en faire glisser et dire égal comme ceci. N'oubliez pas de le reconnecter. Chaque fois que la sève se vend. Cela va créer un bogue. Reconnectez-le Nous voulons maintenant comparer cette équipe gagnante. Cette équipe gagnante est-elle égale à l'équipe dans laquelle je fais actuellement partie ? Maintenant, nous comparons cette équipe gagnante à n'importe quelle équipe dans laquelle je fais partie en ce moment. Si c'est pareil, allez-y et connectez-le dès maintenant au select. Nous comparons l'équipe gagnante à l'équipe dans laquelle je fais actuellement partie. Si les deux sont égaux, si c'est le cas, nous jouons à ce jeu. Son. L' équipe gagnante est la mienne. Je veux jouer la victoire. Son. Et je crois que c'est ce seul congrès. Celui-ci. Tu es peut-être Victoria. Ouais Je veux donc jouer la victoire dans ce jeu. Son. Parce que l'équipe gagnante est en fait l'équipe dans laquelle je fais partie en ce moment. Cependant, si ce n'est pas le cas, je veux jouer la défaite par équipe. Son Et c'est celui-ci. OK, maintenant nous jouons le bon son. Allez-y, compilez. Et c'est ce qui devrait être le cas. Allons-y et jouons. Et je vais en fait le configurer pour deux joueurs. Maintenant, je vais jouer, et je vais minimiser celui-ci à l'avance. En fait, je peux juste le faire ici. Peut-être comme ceci ou cela. Allons-y et sélectionnons le terroriste, le contre-terroriste. Maintenant, en tant que contre-terroriste, je vais aller là-bas, tuons le terroriste. Tu es victorieux. Ça dit que tu es victorieux. Chaque fois que tu gagnes, je vais tirer sur le terroriste. Et chaque fois que je tue le terroriste et que je meurs, je passe rapidement à la fenêtre terroriste. Je peux donc entendre si le terroriste dit vaincu. Vous pouvez donc entendre qu'il est dit vaincu du côté des terroristes. Chaque fois que j'y passe rapidement, cela fonctionne maintenant. Cela signifie « vaincu » chaque fois que vous perdez et « victoire » pour le joueur gagnant. Passons à la suivante. 188. 14.05 Ajouter un indicateur de succès ennemi: heure actuelle, il est un peu difficile de savoir si vous avez touché le joueur de loin. Si je tire sur ce joueur, je peux voir le petit effet. Mais s'il y a beaucoup de joueurs et que vous tirez partout, il est un peu difficile de savoir si vous avez touché le joueur. Nous avons besoin d'un indicateur pour savoir si nous avons réellement touché le joueur ou si nous l'avons touché derrière lui. Allons-y et ajoutons-le. Fermons ça. Et ce que je veux que tu fasses, c'est ouvrir les documents relatifs à la cause qui se trouvent ici. Je veux que vous accédiez au dossier des icônes de l' interface utilisateur, et j'ai inclus celui-ci pour vous, l'icône Spark. Passons au dossier de l'interface utilisateur et à l'intérieur de vos icônes, et ajoutons-le dans le dossier. Ouvrez-le, accédez au groupe de textures, changez-le en interface utilisateur et modifiez les paramètres de compression en interface utilisateur. Fermons-le. Maintenant, ouvrons la croix, celle-ci, le widget, plan que nous avons créé ici Ajoutons cette image. Je vais juste rechercher une image ajoutée au panneau de canevas et je vais cliquer dessus maintenant. Placez-le au centre, comme la croix. Placez le point d'ancrage au centre. Et l'alignement doit être 0,50 à 0,5, donc c'est au milieu Et réglez la position 0,0, puis cliquez également sur le contenu de taille 2. Et maintenant c'est tout à fait correct. Vous pouvez cliquer sur l'autre image, la croix ici, pour voir la différence. Si vous voulez le rendre plus organisé, vous pouvez appeler celui-ci des images, vous pouvez cliquer sur l'autre. Je vais l'appeler Image Spark. Allez-y et compilez sur l'image Spark. Je vais remplacer l'image par cette icône en forme d' étincelle que nous venons d'importer. Et je vais en faire une taille d' environ 70 x 70 , je crois. Le Crosier. 60 x 60. Je vais donc juste l' agrandir un peu et le mettre derrière la crosse. Je ne vais pas le mettre devant la croix. Voici à quoi cela ressemble chaque fois que nous tournons. Nous allons faire apparaître les marqueurs. Cliquons sur le Spark. Par défaut, il est masqué. Masquez-le par défaut. Allons-y, définissez-le comme variable, assurez-vous que nous pouvons le modifier. Passons maintenant au graphique. Je vais tout supprimer. C'est très, très simple. Créons simplement un événement personnalisé et appelons-le Show. C'est ce que j'aime. Prenons maintenant cette étincelle d'image. Réglons la visibilité. Définissez sa visibilité pour qu'elle ne soit pas testable, afin qu' elle soit visible et que la souris ne puisse pas interagir avec elle Maintenant, après un très petit délai après 0,1 seconde, je veux le faire disparaître. Il va apparaître à l'écran pendant 0,1 seconde, puis il va disparaître. Cela nous indiquera simplement que nous avons touché l'ennemi. C'est la seule chose que nous voulons faire. Fermons ça. Maintenant, ouvrons le joueur et passons à endroit où nous touchons les autres joueurs de l'ennemi. Mais passons au tournage et rechargeons l'arme ici. Chaque fois que nous tirons, tracez la ligne et nous touchons réellement le joueur ici. Nous nous souvenons que nous vérifiions si ce n'est pas le coéquipier que nous sommes en train de photographier Si ce n'est pas le coéquipier, alors nous tirons sur quelqu'un À ce stade, nous voulons jouer à ce site client car je veux uniquement le montrer au joueur qui est en train de tirer. Celui-ci s'appelle Shoot Weapon. En fait, je vais faire asseoir un client. Je veux juste l'ajouter ici, cliquez avec le bouton droit de la souris. Créez une nouvelle arme de tir CL personnalisée, à l'aveugle. Exécutez-le en possédant un client fiable. Je vais simplement aller ici et prendre la référence à la manette de jeu que nous avons faite. Voyons si je peux le trouver. Cette manette pour un joueur. Passons à la manette du joueur, à la croix B, une référence que nous avons faite plus tôt pour obtenir le plan du widget Maintenant, à partir du plan du widget, appelez celui que vous venez de créer appelé show enemy I ahead et connectez-le Et c'est la seule chose qu'il va faire. Je souhaite également créer un effet sonore car nous pouvons afficher l'interface utilisateur, mais je souhaite également l'indiquer par un effet sonore. Jouez. N'oubliez pas qu'à l'intérieur de celui-ci, nous avons celui-ci appelé Bullet Impact Player. En fait, je vais jouer cet effet sonore. Ce que nous voulons faire, c'est d'abord avoir besoin de l'arme. La référence à l'arme. Je vais juste écrire Weapon Base select the Weapon Based Class Reference. Je vais l'appeler arme, comme avant, je veux juste l'effet sonore. Je vais copier-coller tout ça. Allez-y, connectez-le. Cachons les épingles non connectées. Et je vais juste montrer l'effet sonore du Bullet Impact Player. Je souhaite émettre un effet sonore uniquement pour le joueur qui est en train de tirer à nouveau. Jouez à Sound Two D, uniquement pour le joueur qui tire. Et allez-y, jouez cet effet sonore. Maintenant, cela devrait fonctionner si je le déplace simplement vers l'intérieur et que nous devons jouer le son ici Si vous faites simplement glisser le pointeur d'ici et dites CL, tirez avec arme. Nous pouvons donc organiser cet événement chaque fois que nous tournons. Vous pouvez voir que cette entrée s'appelle différemment de celle-ci. Encore une fois, je dois cliquer sur Fichier et actualiser tous les nœuds, cela s'affiche correctement. Je vais l'éloigner un peu, afin de pouvoir l'éloigner aussi comme ça. Et j'ai plus d'espace pour l'enregistrer ici. OK, tout va bien. Le démonter, le brancher. Et nous devons également brancher l'arme. Nous avons la référence aux armes, je crois. Oui, c'est celui-ci. Ça va jusqu'ici. Jusqu'ici. Et je peux double-cliquer ici. Maintenant je peux en brancher un, je crois que c'est celui-ci. Double-cliquez dessus et branchez-le. Compilons, et maintenant cela devrait fonctionner. Maintenant, avant de jouer, je vais également en augmenter le volume, afin de pouvoir l'entendre clairement pour le trouver rapidement, accéder au tableau de données, d' ouvrir les informations sur les armes, et c'est celui-ci. L'impact de la balle, effet sonore clair. Cliquez sur la petite icône ici. Cela m'y amène automatiquement. Voilà à quoi cela ressemble en ce moment. En fait, je vais augmenter le son, peut-être 0,5, peut-être que c'est trop fort. 0.4 Maintenant, je peux l'entendre clairement, alors sauvegardons tout. Jouons maintenant au jeu et voyons à quoi cela ressemble. En tant que serveur, je vais juste créer un contre-terroriste Et maintenant, en tant que terroriste, écoutons-le en tant que contre-terroriste. Laisse-moi juste passer devant tout le monde pour que je puisse voir le joueur. Maintenant, quand j'ai filmé le lecteur, vous pouvez voir cet effet sonore. Et vous pouvez également voir ce marqueur qui apparaît sur mon écran chaque fois que je tire sur le joueur Il lui donne un marqueur chaque fois qu' une balle est projetée, comme si elle frappait juste derrière lui. N'oubliez pas que nous avons ajouté un spread à puces plus tôt, de sorte qu'il n' atteindra pas 100 % à chaque fois. Chaque fois que cela touche le joueur, qui est Victoria ? Chaque fois qu'il touche, le joueur va réellement montrer ce marqueur. Si je passe juste devant le joueur, encore une fois comme ça et que je tire sur le joueur, l'indicateur m'affichera chaque fois que je frapperai le joueur, chaque fois que je ne frappe pas , il ne me montrera rien. Je peux également l'entendre sur l'effet sonore. Vous pouvez également entendre la différence ici. vaut mieux ajouter un vainqueur que de ne rien avoir, car le joueur sait alors s'il l'a touché ou non. C'était ça. Sauvegardons tout et passons à la suivante. 189. 14.06 Ajouter un SFX d'ambiance: heure actuelle, c'est un peu trop silencieux à l'intérieur de l'environnement. Tu peux entendre. C'est bon Nous avons les effets sonores de la marche, le tournage et tout le reste, et ça va vraiment bien sonner. Imaginez que vous ayez cinq contre cinq ici, par exemple cinq joueurs, et que tout le monde tire, charge et tout ce genre de choses, ça sonnera bien. Cependant, il n'y a aucun effet sonore pour l'environnement. Nous avons besoin, par exemple, d'un effet sonore d' ambiance si vous ouvrez à nouveau les paramètres de votre projet. Revenons-en à l'audio. Je l'ai inclus pour vous. L'ambiance des oiseaux Vous pouvez ajouter l' ambiance que vous voulez, mais pour celle-ci, utilisons-la Revenons-en à l'audio , aux effets sonores. Si vous le glissez ici et que je clique avec le bouton droit de la souris pour en faire un. Donc je vais juste l'appeler, donc ambiance, allez-y et ouvrez-le Laisse-moi juste réduire le volume. Quelque chose de très faible, comme 0,01. Je l'ai essayé et je pense que 0,03 est une bonne chose. Laisse-moi juste le sauvegarder. Et je vais juste cliquer et faire glisser cette ambiance dans le niveau Il joue instantanément pour tous ceux qui se connectent. Maintenant, si je clique sur Play, vous pouvez entendre l'effet sonore des oiseaux. Si je sélectionne Terris maintenant, c'est vraiment sympa car j'ai un peu de bruit de fond Vous pouvez même le réduire davantage si vous le souhaitez. Maintenant, tout sonne bien. Je peux me promener, je peux tirer et nous pouvons jouer. Mais j'ai aussi quelques effets sonores pour l'environnement. Ce n'est pas silencieux. Ça fait du bien. Ça fait du bien. Ce n'est pas un silence gênant dans le niveau. C'est sympa. OK. C'est donc un excellent ajout. Ajout très rapide, mais cela donne à l'ensemble de l'environnement une sensation de vie. OK, c'était donc ça. Sauvegardons tout à nouveau. Vous pouvez ajouter l'ambiance que vous souhaitez pour votre niveau, et passons au suivant 190. 14.07 Supprimer la matrice lors du rechargement: Très bien, la dernière chose qui nous manque pour le moment, c'est si vous sélectionnez Terrace par exemple, et que nous prenions une arme. Maintenant, chaque fois que je photographie et que je recharge, vous pouvez voir que le chargeur n' est pas retiré. Cela semble un peu bizarre parce que nous sommes train de recharger et que le chargeur n' est pas retiré. Nous devons donc faire quelque chose à ce sujet. Ce que nous pouvons faire, c'est ouvrir le montage d'animation. Si vous revenez à vos animations pour le lecteur et que vous recherchez les montages d'animation que vous avez créés précédemment Passons au fusil. Commençons par celui-ci. Maintenant, ce que vous pouvez faire ici, vous pouvez ajouter une notification. Commençons par le faire. Je veux ajouter une notification chaque fois que je recharge, chaque fois que je publie ce magazine ici Essayons d'ajouter ce mag que nous avons retiré. Je ne peux pas cliquer dessus avec le bouton droit de la souris, alors je vais juste cliquer avec le bouton droit de la souris ici. Ce que vous pouvez faire, c'est également ajouter une autre piste de notification, afin de ne pas l'ajouter en plus des effets sonores, vous pouvez ajouter une autre piste. Et je vais peut-être appeler ça du rechargement, quelque chose comme ça Tout ce que tu préfères ici. Je vais écrire Cliquez puis sur Ajouter. Notifier et ajouter un montage. Prévenez celui-ci. Nous pouvons utiliser le code pour faire ce que nous voulons pour celui-ci. Je vais juste appeler ça du bout des lèvres. Ajoutons-en un pour le découpage, ou celui-ci est découpé. En fait, ce n'est pas un clip. Appelons-le Lip out. Ajoutons-en un à clipser. Peut-être ici, cliquons avec le bouton droit sur Montage Notify, cliquons dessus et appelons-le Lip in. OK, maintenant nous avons ces montages ou notifications. Réduisons cela au minimum. Passons aux plans. Supprimez cette recherche. Ouvrons la base de la couche du joueur. Passons au code dans lequel nous sommes en train de recharger. Allez-y et cliquez sur celui-ci ici. Il s'agit du code de rechargement. N'oubliez pas que nous l'avons commenté, rechargez l'arme. C'est tout ce que nous avons fait pour calculer les balles Ici, dans le multicast, nous jouons le montage, le montage de rechargement Maintenant, ce que nous pouvons faire , c'est utiliser celui-ci appelé unnotifiedgin Ce gin non notifié commence à jouer dès qu'il atteint une notification dans un montage d'animation Chaque fois qu'il atteint cette notification ici, ce code est déclenché. Vous pouvez désormais avoir plusieurs notifications pour différentes choses dans la même zone, et c'est pourquoi elles sont ici Nous pouvons prendre cela et nous demander si cela équivaut, par exemple, à ce que vous avez appelé clip in ou clip out pour commencer. Et créons une branche, partons d'ici. Si cela équivaut à un découpage, nous pouvons en faire quelque chose. Ce que nous voulons faire, c'est laisser moi en parler ici. Ce que nous voulons faire, c'est cacher l'os à Meg. Si je reviens en arrière et que je trouve l' arme sur le marché, j'ouvre l'arme FPS, je regroupe les armes, les mailles et je retourne sur mon AK 47 Permettez-moi d'ouvrir le squelette ici maintenant, comme avant lorsque nous cachons la tête du joueur. Idéalement, comme si vous avez un projet sérieux, il serait peut-être préférable de simplement créer une animation, comme une animation de rechargement dans laquelle le Mac entre et sort Vous pouvez en fait le voir dans l'autre pack. Nous avons téléchargé le document sur les armes militaires. Si je reviens à l'une des armes présentées ici, elles contiennent en fait des animations. Par exemple, ils ont une animation pour recharger ce fusil Et vous pouvez voir ici qu'ils ont une faible animation, donc je vais juste la fermer rapidement. Mais ils ont cette animation de rechargement que vous pouvez utiliser et qui sera plus idéale, mais dans ce cas, nous n' avons aucune animation et nous pouvons toujours la réaliser Nous voulons cacher l'os, comme le joueur sur lequel nous avons touché la tête. Pour celui-ci, nous allons cacher le chargeur d'armes. OK, ça s'appelle Gun Mag. Ce que nous allons faire, c'est abord avoir besoin de la référence à l'arme. Voici l'arme équipée. Prenons l'arme équipée que nous avons en ce moment. Faisons glisser le pointeur à partir d'ici. Nous avons besoin des variables relatives aux armes. Nous avons besoin du maillage squelettique à l'intérieur d'ici. Encore une fois, il suffit d'écrire bone. Si tu ne sais pas comment ça s'appelle, écris os, puis tu pourras voir à travers et tu demanderas celui-ci de cacher un os par son nom, comme avant. Si c'est vrai, allez-y et cachez cet os. Maintenant, quel que soit le nom de cet os, si tu veux, tu peux l'écrire statiquement ici Mais encore une fois, le mieux est de l'ajouter à votre structure. Si je reviens simplement à deux structures, informations sur les armes. Allez-y, ajoutez une nouvelle variable et je l'appellerai simplement name. Disons nom ici, nom, variable, sauvegardez et sauvegardez tout. Allez-y et ouvrez votre tableau de données. Je vais juste faire de l'espace entre ceci et l' ouverture de ma table de données. Allons vers la droite ici. Je vais l'appeler Mag Name. Ensuite, nous pouvons lui donner le nom de mon AK. Ça s'appelle Mag. Même chose pour mes informations. Je pense que c'est mon pistolet. Pour mon pistolet. Je ne sais pas si nous devons faire quoi que ce soit, car pour le pistolet, je ne pense pas que vous puissiez voir Mac Si je passe aux armes, aux armes noires et que j' ouvre mon pistolet, il est là, mais je ne suis pas sûre que vous puissiez voir le magazine dans son intégralité Je vais donc laisser celui-ci de côté pour celui-ci. Vous pouvez simplement n'en écrire aucun par exemple, et vous n'avez besoin de rien ici. Encore une fois, il vaut mieux simplement créer des animations comme ils l'ont fait ici pour ces armes. Et c'est beaucoup plus propre. Ça a l'air beaucoup mieux. Sauvegardons tout maintenant. Revenons ici et téléchargeons-le sous forme de fichier CSV. Permettez-moi de passer aux tableaux de données. Et permettez-moi de l'importer. J'ai maintenant importé le fichier CSV et il est mis à jour. Et laissez-moi tout enregistrer Maintenant, je peux retourner dans ma base de joueurs. Et ce que nous pouvons faire ici maintenant, c'est simplement utiliser cette référence. Nous pouvons simplement ajouter ici une variable appelée nom. Et nous pouvons le remplacer par un nom ici. Nous pouvons retourner à l'endroit où nous diffusons la multidiffusion. Je vais juste cliquer dessus et masquer les épingles non connectées pour que nous n' ayons pas à tout voir Voyons où nous diffusons le multicast. Laisse-moi aussi cacher celui-ci. La multidiffusion est diffusée ici lors de l'événement du serveur. Ce que nous pouvons faire, c'est simplement cliquer ici, cliquer sur le nom du magazine, et connectons le nom du magazine. OK, maintenant allons-y. Ce que nous pouvons faire maintenant, c'est simplement prendre nom de ce magazine et le connecter à Bone Name. Il suffit de double-cliquer ici, créer quelques notes de rock arrière pour que tout reste propre également. Allons-y. Chaque fois qu'il est découpé, nous allons masquer le nom du magazine chaque fois qu'il est découpé. Nous pouvons donc l'emporter ici. Dans ce cas, nous n'avons que deux notifications. Nous n'avons que ceci et cela. Techniquement, nous pouvons simplement faire les entrées de code à partir d'ici. Toutefois, si vous recevez plusieurs notifications, n' oubliez pas que vous pouvez faire glisser à nouveau, dire égal et dire quel que soit son nom, puis créer une nouvelle branche, puis vous pouvez la connecter et dire si c'est vrai, vous pouvez le faire Cependant, dans notre cas, nous n'avons que deux notifications. Quoi qu'il en soit, je vais juste le faire glisser d'ici. Il suffit de le déplacer. Si c'est faux, nous allons reprendre cette arme. Et si vous faites simplement glisser un os droit et que vous voyez qu'il existe un nom appelé Unhide Bone, utilisons celui-ci Reconnectons ce nom osseux une fois de plus. Connectons-nous. Cela revient ici et double-cliquez pour créer un nœud arrière. Maintenant, cela devrait fonctionner si je compile et enregistre tout. Essayons-le maintenant et voyons à quoi cela ressemble si je clique sur jouer. Maintenant, n'oubliez pas que cela ne fonctionne que lors du rechargement. Celui-ci est l'animation de l'équipement. Il ne s'agit pas de l'animation de rechargement. Maintenant, si nous rechargeons, vous pouvez voir que le chargeur est en train d'être retiré. OK, génial. Essayons-le avec un M quatre ici s'il le faut et rechargeons-le Génial, ça marche aussi. Ça a l'air beaucoup mieux. Encore une fois, il est préférable de n' avoir que des animations pour cela, mais vous pouvez également masquer noms des os lorsque vous rechargez l'arme 191. 14.08 Correction du bug de rechargement lors du changement d'arme: Je passe une heure à essayer mon jeu pour voir s' il y a un bug ou quelque chose à corriger avant de terminer. Il y a juste un petit problème maintenant. Vous voyez si je clique sur jouer maintenant et que je gagne quelque chose Maintenant, si je tire avec cette arme, par exemple, si je change puis que je la recharge en même temps, vous voyez que je change puis que je recharge, elle est en train de fonctionner. Maintenant, j'essaie de tirer, mais ce n'est pas le cas, le rechargement s'arrête. Allons-y et réglons ça. Avant de terminer, passons à la base de joueurs qui se trouve ici. Passons à notre logique de recharge ici et voici l'arme de recharge qui se trouve à l'intérieur d' Ce qui ne va pas, c'est que nous pouvons recharger même si nous équipons l'arme C'est une solution très rapide ici. Lorsque vous essayez d'appuyer sur le bouton de recharge, ce les éléments que nous vérifions Nous devons également vérifier si nous équipons l'arme. N'oubliez pas que si je clique avec le bouton droit de la souris et que je dis équiper, nous avons fabriqué ce lingot plus tôt Lorsque nous équipons l'arme, nous équipons l'arme Et puis, lorsque nous n'équipons pas l'arme, nous pouvons les recharger Cependant, si nous sommes toujours en train d'équiper l'arme, cela n'a pas vraiment de sens de la recharger Je vais juste copier-coller ce que nous avons déjà fait pour le rendre plus beau Je suis en train de copier-coller ce code là où nous cachons le magazine. En fait, je vais voir l'animation Lutequip ici. L'arme MC Equip. Je vais le coller ici. Je pense que ce sera beaucoup mieux. Peut-être que vous n' aurez pas besoin de le faire si vous avez une autre animation d'équipement. Mais l'animation de mon équipement est la même que celle du rechargement. En fait, je vais juste les brancher ici pour qu' ils soient plus beaux. Et je vais aussi le brancher ici et l'appeler mag name, comme avant. Alors je vais, voyons voir, c'est celui-ci, donc je vais juste le connecter ici. Et cela devrait également être corrigé. OK, la dernière chose est bien ici, à l'intérieur de l'arme larguée. Lorsque vous lâchez l'arme et que vous arrêtez le montage, pensez à ne pas faire retentir le son du rechargement. Nous avons arrêté le montage ici, nous avons obtenu l' instance d'animation et ainsi de suite. Cependant, on confond parfois l'instance d'animation. Commençons simplement par là car elle indique accès N. Parfois, Commençons simplement par là car nous pouvons simplement d'ici et dire si c'est valide et continuer et ajouter que ce nœud est valide, nous nous assurons qu'il est valide avant de continuer. Si ce n'est pas le cas, ne faites rien. Et encore une fois, il suffit de prendre quelques notes pour le rendre plus clair et cela devrait résoudre tous nos problèmes. J'ai essayé le jeu pendant environ une heure, une heure et demie, et il y avait naturellement plus de problèmes à résoudre. Je suis sûr que nous avons retiré toutes les cases du jeu. Nous n'avons pas non plus de boîte lorsque nous jouons au jeu. Je vais nettoyer ce projet pour vous, créer des commentaires, etc. Ensuite, je vous fournirai ce projet. Peut-être l' avez-vous déjà téléchargé. C'est dans le futur. Laissez-nous tout sauver. Et Leah, passons à la suivante. 192. 14.09 Que faire maintenant: Félicitations donc pour l'avoir fait jusqu'ici. Cela m'a pris beaucoup de temps pour arriver à ce à quoi je suis habitué, mais j'ai beaucoup aimé le créer mais j'ai beaucoup aimé le créer pour vous et créer tous ces éléments pour vous. Nous avons donc maintenant un bon départ pour un jeu de tir FBS. Et les armes sont larguées. Nous avons l'inventaire, nous pouvons le recharger, nous pouvons changer d'arme, fusil, nous avons les balles, nous avons la santé et l'armure, et nous avons les partitions Nous avons donc ajouté beaucoup de choses à cet environnement. Nous en avons maintenant terminé avec cela, mais à l'avenir, je souhaite ajouter d'autres articles. Par exemple, nous pouvons ajouter un menu Bi. Nous pouvons ajouter d'autres armes, comme un lance-roquettes. Nous pouvons ajouter un lance-grenades. Nous pouvons ajouter des grenades. Nous pouvons ajouter un tableau de bord pour le joueur Nous pouvons ajouter un menu principal et des choses comme ça. Et ce que vous pouvez faire pour le moment, c'est si vous allez sur ma chaîne Youtube, et à l'intérieur de celle-ci, vous pouvez publier ce jeu sur Steam. Je vais donc vous apprendre gratuitement comment vous pouvez convertir ce jeu dès maintenant que vous l'avez fait. Vous pouvez le sauvegarder, vous pouvez convertir importe quel jeu que vous avez actuellement sur Steam. Vous pouvez donc ajouter un menu principal, un navigateur de serveur. Vous pouvez ajouter une barre de recherche et d'autres choses du genre. Et vous pouvez en fait héberger un jeu sur Steam pour que d'autres joueurs puissent le rejoindre. Je vais donc vous l'apprendre sur ma chaîne Youtube. Assurez-vous donc d'y aller et de le visiter également. Et vous pouvez toujours visiter mon site Web et mon serveur Discord Je vous aiderai tous en 2047. Assurez-vous donc d'aller de l'avant et de le faire. Il est également très agréable de discuter avec la communauté. Et oui, nous nous amusons juste avec le développement de jeux, c'est un plaisir de vous avoir ici. Merci d'avoir regardé. Et n'oubliez pas de rester à l'affût des nouvelles mises à jour. Et n'oubliez pas de regarder mes autres tutoriels et autres cours sur le vrai moteur et le multijoueur. Allez-y, sauvegardez votre progression et j'espère vous voir bientôt.