Unreal Engine 5 - Cours pour débutants | 3D College | Skillshare

Vitesse de lecture


1.0x


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

Unreal Engine 5 - Cours pour débutants

teacher avatar 3D College, A perfect place to grow!

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.

      Introduction

      2:52

    • 2.

      Télécharger UE5

      3:10

    • 3.

      Créez votre projet

      2:06

    • 4.

      Navigation UE5, raccourcis clavier et principes de base

      13:43

    • 5.

      Acteurs UE5

      8:42

    • 6.

      Gestion des acteurs et des objets

      4:49

    • 7.

      Modélisation

      10:26

    • 8.

      Travailler avec des matériaux

      8:45

    • 9.

      Matériaux personnalisés

      25:18

    • 10.

      Système d'éclairage

      18:30

    • 11.

      Les bases du plan

      16:50

    • 12.

      Graphique d'événements

      22:00

    • 13.

      Variables BP

      23:57

    • 14.

      Fonctions BP

      39:48

    • 15.

      Créer un paysage

      12:07

    • 16.

      Matériel principal

      12:59

    • 17.

      Feuillage

      31:59

    • 18.

      Configuration de scène

      37:19

    • 19.

      Plans pour les jeux 01

      34:32

    • 20.

      Plans pour les jeux 02

      10:32

    • 21.

      Plans pour les jeux 03

      26:54

    • 22.

      Interactions d'acteurs

      43:28

    • 23.

      Interface Blueprint

      44:26

    • 24.

      Gameplay

      32:20

    • 25.

      Personnage à la troisième personne

      33:41

    • 26.

      Widget BP

      23:37

    • 27.

      Éditeur de widget

      16:19

    • 28.

      Système de notation

      15:14

    • 29.

      Chronomètre

      12:54

    • 30.

      Fonctions supplémentaires

      22:08

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

Généré par la communauté

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

104

apprenants

--

À propos de ce cours

Commencez votre voyage de développeur de jeux avec Unreal Engine 5 - Cours complet pour débutants - probablement le cours le plus à jour et le plus complet disponible en ligne.

Pourquoi suivre ce cours ?

Lorsque j'ai commencé mon parcours avec Unreal Engine, j'avais accès à une grande quantité d'informations sur le travail avec le moteur. Cependant, j'ai rapidement remarqué que la plupart des ressources disponibles, même les cours complets, ne décrivaient pas l'ensemble du processus de manière logique et compréhensible. C'est pourquoi j'ai créé ce cours - pour donner aux débutants comme vous un chemin clair, étape par étape, pour maîtriser les principes de base.

Voici ce que vous allez apprendre :

  • Apprenez le développement de jeux à l'aide de Unreal Engine 5 et de Blueprints
  • Apprendre à télécharger et installer Unreal Engine 5
  • Apprenez les principes fondamentaux de l’UE5 : naviguer dans l’interface, utiliser les outils essentiels et configurer votre premier projet.
  • En savoir plus sur les acteurs, les maillages et les objets essentiels pour créer votre jeu
  • Comment utiliser Blueprints pour créer des interactions, des événements et des mécaniques de jeu - sans codage nécessaire
  • Créer et personnaliser des matériaux pour Unreal Engine 5
  • Comment créer un paysage et le remplir de feuillage à l'aide de matériaux maîtres
  • Créer un mini-jeu, configurer le mouvement des personnages, les interactions et les boucles de gameplay
  • Créer un système de widget

Si vous souhaitez travailler avec Unreal Engine pour vos projets ou même devenir un développeur indépendant, ce cours sera le choix parfait pour vous. Que vous soyez un débutant complet ou que vous cherchiez à affiner vos compétences, ce cours est conçu pour vous fournir les connaissances essentielles et l'expérience pratique nécessaires pour créer et gérer des projets dans Unreal Engine 5 en toute confiance.

Allons-y et commençons à créer avec Unreal Engine 5 !

Rencontrez votre enseignant·e

Teacher Profile Image

3D College

A perfect place to grow!

Enseignant·e

Hello,

3D College was created with beginner artists in mind, those who want to start their journey with Unreal Engine or become indie developers. We design courses that have helped hundreds of students gain new knowledge and skills. As 3D artists with years of professional experience, we strive to share the expertise we've gained while working on professional productions. In the coming months, new artists will join our team of instructors, currently preparing courses for both beginner and intermediate level students.

My name is Martin Grochowiak, and I am the founder of 3D College. I have been involved in photography, 2D, and 3D graphics for many years. I specialize in working with Unreal Engine 5 and, over the years, have had the privilege of creating and leading projects... 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. UE5 FC01 01 Promo: Bonjour et bienvenue dans les cinq cours complets d'Unreal Engine pour débutants Je m'appelle Alona Bazade et je serai votre instructrice. Si vous souhaitez travailler avec Unreal Engine et devenir développeur de jeux, ce cours sera le choix parfait pour vous. Voici ce que vous allez apprendre. Principes fondamentaux. Dans cette section, vous allez apprendre les bases d'Unreal Engine Five Nous allons commencer par explorer l'interface, outils de navigation essentiels et les touches de raccourci pour améliorer votre flux de travail. Acteurs. Les acteurs sont les éléments de base de tout projet Unreal Engine Dans ce chapitre, vous allez aborder le concept des acteurs, des maillages et des objets Vous comprendrez comment ils interagissent et comment gérer leurs dépendances. Matériaux. Les matériaux sont essentiels pour créer un projet visuellement attrayant. Dans cette section, vous allez apprendre à créer et à modifier des matériaux dans Unreal Engine Modélisation. Unreal Engine propose de puissants outils de modélisation, que cette section vous présentera. Vous apprendrez à modéliser directement dans le moteur, créer des actifs et à les manipuler pour répondre aux besoins de votre projet. Système Lightning. système d'éclairage Unreal Engines est l'une de ses fonctionnalités les plus puissantes Vous apprendrez à créer des configurations d'éclairage à l'aide de points directionnels et de projecteurs Nous explorerons également l' éclairage dynamique et défini et apprendrons comment optimiser votre scène. Plans. Les plans vous permettent de créer des mécanismes de jeu complexes sans écrire une seule ligne de code Nous aborderons en détail les scripts visuels vous apprendrons à configurer les interactions, les et vous apprendrons à configurer les interactions, les événements et les déclencheurs entre les acteurs et les objets Paysage et matériau principal. Cette section est entièrement consacrée à la création d' environnements. Vous apprendrez à créer de vastes paysages et terrains pour vos projets. Appliquez ensuite le système de matériaux principaux pour remplir automatiquement votre environnement biomes et Jouabilité. Dans ce chapitre, nous allons nous concentrer sur les mécanismes de jeu. Vous allez apprendre à créer des interactions entre votre personnage et l' environnement. Mini-jeu Dans cette dernière section, vous allez tout assembler pour créer un mini-jeu Ce projet pratique vous aidera à comprendre l'ensemble du flux de travail, de la configuration d' un projet à la création d' environnements, programmation d'interactions et la finalisation d'un niveau jouable Ce cours est structuré de manière à vous fournir une approche étape par étape pour apprendre à utiliser Unreal Engine Grâce à des exemples pratiques du monde réel, vous acquerrez non seulement des compétences techniques, mais également une meilleure compréhension de la manière d'aborder le processus de développement d'un jeu. Plongeons-nous dans le vif du sujet et commençons à créer avec Unreal Engine Five. Mm. 2. UE5 FC02 01: Bienvenue dans les cinq boutiques de base d'Unreal Engine. Au cours des prochaines heures, nous passerons en revue la configuration du projet, navigation dans l' interface, la configuration environnementale et la création d' objets et d'acteurs interactifs À la fin de ce cours, vous devriez être capable d'utiliser facilement Unreal Engine 5 et avoir une compréhension de base de toutes les fonctions de base d'Unreal Ce cours ne nécessite aucune connaissance préalable Unreal Game Death, de C Plus Plus ou de CSA Avant de poursuivre la conférence, nous devons télécharger UnreleEngine Si Unreal Engine est déjà installé, n'hésitez pas à ignorer cette vidéo et à sauter la prochaine conférence Pour télécharger Unreal Engine, nous devons d'abord télécharger Epicamesauncher Vous pouvez le faire en vous rendant unrealengine.com et en cliquant sur le bouton Télécharger Si vous ne savez pas comment procéder ou si vous avez du mal à comprendre, veuillez cliquer sur le lien d' installation de watchHost sur l' écran de droite Cela vous dirigera vers une vidéo YouTube qui expliquera et expliquera le processus. Maintenant qu'Epic Games est installé, installons le moteur lui-même. Cliquez sur l'Unreal Engine, appuyez sur le côté gauche et accédez à la bibliothèque Ici, vous pouvez choisir le moteur Unreal dont nous avons besoin. Nous utiliserons Unreal Engine five point four pour ce cours À des fins de démonstration, je téléchargerai cinq points trois. Mais ici, vous devez cliquer sur cinq points quatre. Après avoir cliqué et sélectionné la version de votre moteur, cliquez sur le bouton Installer. Et maintenant, nous devons sélectionner un dossier pour le moteur Unreal. Assurez-vous de sélectionner le lecteur SSD si vous en avez un et cliquez sur Options. Si vous faites défiler l'écran vers le bas, ces quatre options sont peut-être sélectionnées par défaut. À moins que vous ne souhaitiez développer pour cette plate-forme spécifique, vérifiez-les car cela réduira la taille requise pour votre moteur Unreal Assurez-vous que le contenu de démarrage, les modèles et les packs de fonctionnalités, ainsi que le code source du moteur restent modèles et les packs de fonctionnalités, activés. Vous n'avez pas besoin de symboles d'éditeur pour le débogage. Cliquez sur Appliquer, puis sur Installer. Real Engine Five va maintenant s'installer sur votre PC. 3. UE5 FC02 02: Commençons maintenant par créer un nouveau projet. Cliquez sur le bouton de lancement et attendez un moment pour qu'il s'initialise Ici, nous avons une sélection de modèles que nous pouvons utiliser , fournis par Unreal Nous avons ici plusieurs sélections pour les jeux, films, les vidéos, l'architecture, l' automobile et la simulation. Dans le cadre de ce cours, nous utiliserons un modèle de jeux Cert Person Assurez-vous de donner un nom à votre projet et n'oubliez pas que vous ne pouvez pas utiliser espace et que le nom doit comporter moins de 20 lettres. Nous devons maintenant sélectionner les valeurs par défaut du projet. Cliquez sur le plan, sur le bureau, sur Maximum et continuez sur le contenu de démarrage Nous n' utiliserons pas de course tarifaire, mais n'oubliez pas que si votre projet l'exige , vous devriez le faire. Tous ces éléments peuvent être modifiés à partir du projet après sa création. Donc, au cas où vous auriez besoin de changer quelque chose qui peut être fait plus tard. Cliquez sur le bouton Créer. Donnez-lui un moment pour créer votre projet. Et maintenant, votre projet irréel est prêt. Rendez-vous lors de la prochaine conférence. 4. UE5 FC02 03: Parlons maintenant des fenêtres dont nous disposons. Sur le côté gauche, nous avons la fenêtre Place Actors. C'est une fenêtre qui vous permet de glisser-déposer n'importe quel acteur, objet, forme ou lumière, tout ce qui correspond vraiment à votre scène. Vous pouvez également créer votre propre SSP ici, que vous pouvez simplement glisser-déposer dans la scène Sur le côté droit, nous avons World Outliner. Que fait World Outliner ? World Outliner est une liste de tous les objets ou acteurs présents dans votre scène du niveau Vous pouvez cliquer dessus ici, et vous les sélectionnerez automatiquement dans le niveau. Vous pouvez cliquer ici pour voir le nom. Il est très utile d' organiser votre mise en page. Ainsi, par exemple, tous les blocs se trouvent dans un dossier de blocs. Vous pouvez les masquer en combinaison au lieu de les cliquer individuellement et de les masquer du niveau ou de les supprimer ou de les déplacer. Vous pouvez cliquer ou comme ça plusieurs objets en même temps pour les déplacer en même temps. C'est très utile. Vous pouvez vous déplacer dans toutes les fenêtres de votre scène Unreal Engine Par exemple, vous pouvez prendre le plan, le détacher, créer une fenêtre séparée, ou vous pouvez le fixer à un autre endroit, en bas de l'écran peut-être ou peut-être le voulez-vous sur la gauche C'est à vous de décider, vraiment. Tu peux le supprimer. Si tu le souhaites. Et si vous voulez le récupérer, vous pouvez toujours aller dans la fenêtre, appuyer sur le dessus et trouver la fenêtre que vous venez de supprimer. Vous pouvez également avoir plusieurs fenêtres pour le même objet. L'outliner est donc de retour, et je préfère le voir sur la droite Nous avons également un panneau de détail. Ainsi, lorsque vous avez sélectionné un objet, vous obtenez des informations détaillées ici. Alors laisse-moi déplacer ça ici. En haut, comme je préfère. Nous avons maintenant accès aux informations relatives à cet objet. Comme vous pouvez le constater, au fur et à mesure que je déplace ce texte, l' emplacement de la transformation change ici. Je peux saisir manuellement la valeur que je veux. Je peux le faire pivoter à partir d' ici si je le souhaite, ou le redimensionner à la hausse ou à la baisse. Si je veux le redimensionner de manière uniforme, je peux cliquer sur ce bouton de verrouillage et le redimensionner de cette façon Il y a aussi des matériaux ici et du mesh. Donc, si vous avez un objet dans la scène dont vous souhaitez conserver l' emplacement transformé et l'échelle excessive, mais que emplacement transformé et l'échelle excessive, vous souhaitez modifier le maillage, vous pouvez cliquer ici et rechercher ou simplement choisir le maillage vers lequel vous souhaitez le faire passer. Alors maintenant, je veux le remplacer par ce fauteuil. J'ai donc cliqué sur le fauteuil. Maintenant, nous avons une chaise. Regardons-le de près. Et oui, maintenant nous avons une chaise dans la scène. Si je veux l'annuler, je peux toujours contrôler Z. Maintenant, j'ai mon cube Si je veux changer de matériau, je peux simplement choisir un matériau ici. Essayons cette reine 01. Et maintenant, notre cube a l'air différent. Faisons une teinte jaunâtre avec un peu de métal pour le moment. C'est le même matériau que celui utilisé pour la chaise. Maintenant que nous avons fini d' examiner les détails et les grandes lignes, parlons du tiroir de contenu Vous pouvez cliquer sur le tiroir de contenu ici, qui vous permettra de consulter toutes les ressources disponibles dans votre projet. Le contenu de démarrage contient de nombreux maillages, matériaux, accessoires, particules utiles pour apprendre à utiliser Unreal Engine, et si vous voulez simplement créer un prototype de niveau pour Passons aux accessoires, et nous avons plusieurs maillages que nous pouvons utiliser Mettons donc une table. Et il suffit de le faire glisser et de le déposer dans la scène, lui donner un moment pour compiler les shaders Et maintenant, vous avez une chaise sur votre écran. Si vous souhaitez que votre navigateur de contenu soit visible à tout moment et qu'il ne se cache pas, vous pouvez cliquer sur le bouton Doc in Layout ici. Cela vous permettra d'avoir un navigateur de contenu sur votre écran à tout moment. Vous pouvez le mettre dans votre deuxième écran ou comme toutes les autres fenêtres, vous pouvez simplement le fixer quelque part. Je préfère donc l'avoir en dessous de mon écran. Si vous rencontrez des problèmes avec votre mise en page ou si vous avez supprimé les fenêtres d'une manière ou d'une autre et que vous ne vous souvenez pas de leur nom ou de la façon de les restaurer, vous pouvez cliquer sur l'onglet Fenêtre en haut. Cliquez sur Load Layout, puis sur Default Editor layout. Cela restaurera la mise en page réelle. Vous pouvez cliquer sur Control Space retrouver votre navigateur de contenu, votre panneau de détails et vos outliners Vous remarquerez peut-être que nous n'avons plus d'onglet «   Placer les acteurs ». C'est parce que c'est la mise en page par défaut d'Unreal Four Classic, dont nous n'avons pas vraiment besoin L'onglet Place Actors est également accessible à partir d'ici. Tout ce qui se trouve dans la place des acteurs est plus ou moins accessible ici, et vous pouvez toujours simplement cliquer sur une forme ou un objet choix pour le faire apparaître dans votre scène. Il y a beaucoup d' autres fenêtres dans l'onglet Windows dont nous parlerons dans les prochaines conférences. Quelques détails supplémentaires sur l'interface irréelle. Si vous avez sélectionné un objet et que vous le déplacez, vous verrez qu' il se déplace à un certain rythme , comme s'il s'agissait d'un cliché C'est parce que cette option est activée ici. Si vous augmentez le clignotement, il ne s'enclenchera que par incréments de 100 Si vous le dites comme tel, vous verrez que vous avez un mouvement fluide. Et si vous le désactivez simplement, vous aurez encore plus de mouvement incrémentiel Personnellement, j'aime qu'il soit maintenu à un ou dix points afin d'avoir un emplacement uniforme pour mes objets dans la scène. Vous pouvez faire de même avec la rotation et la mise à l'échelle. Nous avons également des options de fenêtre d'affichage ici. Si vous cliquez sur les options de la fenêtre ici, trois lignes sur le côté gauche, vous aurez de nombreuses options à votre disposition Nous en parlerons dans les prochaines conférences, mais celui que vous devriez probablement garder à l'esprit est le pourcentage d'écran. Si le pourcentage d'écran est activé, vous pouvez cliquer sur le remplacement personnalisé et sur le pourcentage d'écran souhaité Si vous regardez l'arrière-plan lignes sur les objets, si je réduis le pourcentage de mon écran, les lignes deviendront floues en rouge Cela s'explique par le fait que seuls 25 % des polygones disponibles dans le skin sont désormais seuls 25 % des polygones disponibles dans le Si vous en mettez 200, ils seront affichés à une résolution plus élevée. Je recommande de le maintenir à 100 pour avoir une bonne qualité. Ce qui est une bonne référence à l'apparence de votre jeu. Bien entendu, si la résolution de votre jeu est inférieure et que les paramètres sont activés, vous pouvez également vous en faire une bonne idée en indiquant, disons, si votre jeu doit avoir une résolution de 50 %, vous pouvez simplement le mettre ici, et maintenant voici à quoi cela ressemblera si votre jeu n'a qu'une résolution de 50 % ou 25 ou 200, disons quatre K. Nous en discuterons dans les prochaines conférences Il y a également le mode de sélection, paysage, le feuillage, le maillage, la modélisation, fracture, le brossage et les onglets d'animation, dont nous parlerons également lors de la prochaine conférence Ici, si vous appuyez sur le bouton de lecture ou sur OP de votre clavier, cela passe en mode de jeu. Le mode de jeu simule essentiellement votre jeu. Nous avons sélectionné le modèle pour la troisième personne, nous avons donc tout préconfiguré pour une troisième personne. Vous pouvez vous déplacer en utilisant WAST jump. Et si, selon le modèle, certains modèles peuvent comporter un pistolet capable de tirer, un véhicule avec lequel vous pouvez vous déplacer ou des objets volants avec lesquels vous pouvez voler. Parlons maintenant de l' interface et de la navigation irréalistes. Pour déplacer votre appareil photo, maintenez le bouton droit de la souris enfoncé. Si vous souhaitez avancer, cliquez sur W S en arrière, à gauche, sur A, droite, sur T, sur Q E vers le bas pour le haut Vous pouvez faire défiler l'écran vers le haut pour augmenter ou diminuer la vitesse de déplacement de votre caméra. Vous pouvez également cliquer et sélectionner la vitesse de votre caméra ici. Nous avons également des gadgets pour déplacer les objets de la scène Par défaut, si vous avez sélectionné Objects Gizmo, vous ne verrez rien Si vous cliquez sur W ou sur l'icône Sélectionner et traduire des objets en haut, vous obtiendrez ces flèches. Ces flèches peuvent être utilisées pour se déplacer autour de l'objet. Ou vous pouvez cliquer sur le cercle, déplacer dans un espace en trois D. Vous pouvez également cliquer sur Iki ou sur cette icône en haut, sélectionner et faire pivoter des objets, ce qui vous permettra d'utiliser Gizmo Il existe également des objets à l'échelle Gizmo. Cliquez sur R ou sur cette icône en haut pour redimensionner vos objets comme vous le souhaitez. Pour masquer votre Gizmo, vous pouvez toujours cliquer sur le bouton Cue ou sur l'icône Sélectionner des objets en haut pour masquer votre Gizmo et vous assurer de ne pas déplacer vos objets par accident 5. UE5 FC03 01: Bienvenue à la conférence. Dans cette conférence, nous allons parler plus en profondeur manière de manipuler les acteurs et les objets de la scène. Nous avons déjà abordé le sujet dans la vidéo précédente, mais dans cette vidéo, nous allons approfondir la façon d'utiliser les touches de raccourci et les paramètres pour le manipuler. Nous avons donc ici un tableau, qui peut être manipulé avec nos gadgets, comme indiqué dans la vidéo précédente Mouvement, rotation et échelle Nous pouvons également cliquer sur la touche Alt et la maintenir enfoncée pour dupliquer l'objet. Vous pouvez également déplacer le clic sur plusieurs objets, déplacer la touche Alt pour dupliquer plusieurs objets. Si vous maintenez la touche Shift enfoncée et que vous déplacez vos objets, votre appareil photo se déplacera en même temps. Si vous appuyez sur Shift et Alkey même temps que vous déplacez votre objet, vous créerez un doublon et votre caméra se déplacera avec un duplicateur nouvellement créé de l' Si vous choisissez plusieurs objets, comme je l'ai fait maintenant, et que vous essayez de les faire pivoter, la rotation se fera autour du dernier objet sélectionné. Vous pouvez facilement définir lequel est en regardant où se trouve votre gadget Si nous voulons modifier le maillage de l'objet tout en conservant son emplacement et que les paramètres transforment les paramètres, vous pouvez le faire ici dans le maillage statique. Imaginons que nous voulions transformer cette table en chaise. Heureusement, il est fourni dans le contenu de démarrage, nous pouvons donc simplement cliquer dessus ici et nous avons une chaise Maintenant, si nous essayons de trouver l'emplacement de l'actif pour lequel nous utilisons cette table ou cette chaise, et que vous ne savez pas où il se trouve dans votre navigateur de contenu, vous pouvez toujours cliquer sur cette icône ici, vous redirigera directement vers l'emplacement de l'actif. Nous pouvons donc maintenant voir le contenu, le contenu démarré et les accessoires se trouvent dans le dossier Et ce que nous pouvons faire ici, cliquer sur un objet. Fixons le deuxième tableau et cliquons sur le canapé dans notre navigateur de contenu et ici sur le panneau des détails. Lorsque cette option est sélectionnée dans le navigateur de contenu, cliquez sur cette arochy Cela transformera automatiquement le maillage sélectionné en actif que nous avons sélectionné dans le navigateur de contenu. Cela fonctionne non seulement pour les maillages, mais également pour les matériaux et autres types de ressources qui sont enregistrés et peuvent être utilisés à partir du navigateur de contenu Disons que nous voulons changer cela pour autre chose. Répétons donc le processus. Supposons que nous prenions une statue et que nous changions cet objet en statue. Maintenant, nous avons une statue à placer sur la table, ce que nous pouvons très bien faire. Imaginons que nous voulions une deuxième chaise. C'est un moyen facile de s'y prendre. Cliquez sur Obtenir automatiquement la sélection. Cliquez dessus et soyez. Maintenant, nous avons notre chaise le canapé et la lampe ou ce que ce verre est censé être. Parlons maintenant de la façon de manipuler leurs matériaux. Donc de la même manière. Supposons que vous sélectionniez ce canapé et que nous ayons un dossier de matériaux ici. Il s'agit de matériaux standard fournis avec le contenu de démarrage du moteur Unreal Et nous avons des options ici. Comme vous pouvez le constater, nous avons un matériau appelé chaise, qui est utilisé pour ce canapé. Remplaçons ce matériau par autre chose. Maintenant, essayons-le. Comme vous pouvez le constater, il suffit de cliquer sur le matériau et de cliquer sur l'icône. Mais vous pouvez également faire glisser le matériau sur l'objet lui-même. Vous pouvez également le sélectionner dans la liste si vous le souhaitez. Vous devrez peut-être attendre qu'il soit compilé et vous pouvez toujours, comme je l'ai déjà dit, simplement cliquer dessus et le dicter au-dessus de certains éléments. Mettons-le en or. des options supplémentaires Vous trouverez des options supplémentaires dans le panneau des détails de votre objet. Tout d'abord, si vous remarquez qu'il y a une balance et qu'une icône représentant un cadenas se trouve à proximité de la balance. Si vous ne l'avez pas verrouillé et que vous essayez de redimensionner un objet, il ne sera redimensionné que dans une seule direction sur un axe pour être précis. Si vous le verrouillez et que vous vous déplacez dans votre transformation, il le fera de manière uniforme. N'oubliez pas que vous pouvez toujours simplement saisir la résolution que vous souhaitez, les valeurs que vous souhaitez. Et si vous l'utilisez avec des nombres ou des échelles complexes , gardez-en compte. Tu peux faire ce genre de choses. Disons un plus 00 point cinq. L'irréel fera la masse à votre place. Si vous souhaitez doubler l'échelle, il vous suffit de cliquer sur multiplier par deux. Alors, doublez-le. Vous pouvez aussi bien diviser que multiplier. Vous pouvez effectuer toutes les opérations de masse avec les valeurs que l' irréel vous donne Et cela ne se limite pas à détailler un panneau. Il peut être utilisé à peu près partout dans l'irréel. Nous avons d'autres options ici sur le panneau des détails, qui ne seront pas abordées pour le moment. Nous les aborderons plus tard. Maintenant, faisons une tâche. Vous avez accès à votre contenu de démarrage et à tous les accessoires qu'il contient Accédez au dossier Props et sélectionnez les maillages de votre choix, des maillages statiques Faites-les glisser, déposez-les sur la scène et créez un petit ensemble comme vous le souhaitez. Testez simplement vos outils et habituez-vous à eux. 6. UE5 FC03 02: Si. Voyons maintenant comment organiser notre scène. Comme vous pouvez le constater, j'ai mis en place une scène simple avec trois chaises, une table et une lampe. Alors, ramassons-les tous et déplaçons-les. Donc, si vous souhaitez déplacer nos objets en tant qu'ensemble pendant le niveau, nous devons cliquer sur chacun eux en cliquant dessus un par un ou en les déplaçant indépendamment, ce qui prend du temps et est inefficace Ce que vous aimeriez faire à la place c'est cliquer sur chacune d'elles. Et appuyez sur Ctrl G, regroupez-les. Maintenant, ils sont un groupe d'acteurs, ils sont donc déplacés et sélectionnés comme un seul acteur. Vous pouvez déplacer G pour les dissocier et Ctrl G pour les regrouper. Vous pouvez cliquer avec le bouton droit de la souris, accéder aux groupes et groupes ou cliquer avec le bouton droit de la souris et cliquer sur le groupe. Même chose. Vous pouvez également le faire à partir de l'outliner sur le côté droit ici Comme vous pouvez le voir, nous avons ici un onglet d'acteurs de groupe , qui est celui-ci. Maintenant, avant d'en déplacer un, j' aimerais vous donner un conseil. Si vous souhaitez déplacer un seul objet parmi tous les autres objets, mais que vous ne voulez pas tous les dissocier et les regrouper à nouveau, ce qui peut prendre du temps lorsque vous avez peut-être 40 maillages dans un seul groupe, vous pouvez cliquer sur ces paramètres Accédez à une sélection de groupe. Cliquez dessus, et la sélection de groupes est maintenant désactivée. Il s'agit toujours d'un groupe d'acteurs, mais vous pouvez maintenant les sélectionner individuellement. Alors maintenant, disons que je veux me rapprocher de celui-ci et de celui-ci également. Maintenant, je peux cliquer sur Accéder aux paramètres, puis sur Autoriser la sélection de groupes, et maintenant je peux les sélectionner à nouveau en tant que groupe. C'est très efficace lorsque vous avez beaucoup de mesures dans la scène qui sont regroupées et que vous ne voulez pas les dissocier et les regrouper à nouveau. Et maintenant, nous pouvons facilement le déplacer où nous le voulons. La scène, restons-la ici. Maintenant, nous pouvons également organiser nos acteurs par dossiers. La scène Unreal de ce niveau possède déjà des dossiers par défaut, mais les acteurs que nous avons ajoutés ne sont pas ajoutés au dossier Créons donc un dossier. Vous pouvez créer un dossier en cliquant sur ce dossier avec une icône représentant un signe plus en haut à droite. Cliquez dessus, et si l'objet est sélectionné, il est automatiquement ajouté au dossier. Renommons-le, disons par meuble. Et ajoutons également ce canapé ici. Ce que nous pouvons faire, c'est rendre cela plus grand plus facile à voir. Nous avons ce dossier ici. Vous pouvez simplement le faire glisser vers le dossier. Maintenant, nos meubles sont regroupés avec d'autres. Mais ce mobilier ne fait pas partie de l'acteur groupé. Il s'agit d'un acteur distinct dans le même dossier. Ne confondez donc pas le regroupement d'acteurs avec le fait d'avoir simplement les mêmes acteurs dans le même dossier. Il y a différentes choses. Si vous le souhaitez, vous pouvez créer des sous-dossiers en procédant ainsi. Disons donc le premier set, et mettons l' acteur de notre groupe dans le premier set. Encore une petite tâche. Faisons un peu de nettoyage. Prenez les scènes que vous avez créées précédemment et organisez-les. Créez des dossiers, créez des groupes, s'il est judicieux de les regrouper, et assurez-vous simplement d' avoir une scène facile à nettoyer dans laquelle vous pouvez facilement naviguer dans Outliner Une fois que vous avez terminé, passez à la conférence suivante. 7. UE5 FC03 03: Bon retour. Comme vous pouvez le constater, j'ai créé un set simple en utilisant les accessoires du dossier de contenu de démarrage Et j'ai fait du feuillage à l'extérieur, les ai regroupés, j'ai ajouté des meubles à l'intérieur et, évidemment, je les ai regroupés avec des sondes supplémentaires, des sources de lumière, une paroi vitrée, des piliers, comme vous pouvez le voir, et j'ai fait un peu de nettoyage en retirant beaucoup de désordre de la J'ai ajouté une porte et un cadre de porte, et j'ai modélisé cette boîte simple à l'aide d'outils de modélisation irréels Parlons maintenant brièvement outils de modélisation intégrés à Unrele Unreal possède ses outils de modélisation de base que vous pouvez utiliser, mais Unreal five point four met à votre disposition des outils de modélisation supplémentaires, mais vous devez les activer à partir des plugins Si vous cliquez sur Modifier et accédez à la section des plugins. Ce sont tous des plugins disponibles dans Unrele. Certains sont intégrés, ce qui signifie qu' UnRel les fournit par défaut Ils peuvent être activés ou désactivés. Et certains sont installés à partir de Marketplace ou plugins personnalisés que vous ou quelqu'un d'autre avez peut-être créés. Il y a donc beaucoup de plugins ici, nous ne les passerons donc pas tous en revue un par un, en ce qui concerne la modélisation de la recherche. Après avoir effectué une recherche sur la modélisation, vous obtiendrez plusieurs outils de modélisation. Je recommande le mode éditeur des outils de modélisation et le mode de modélisation éditeur de maillage statique. Les deux. Ce sont toutes deux des versions bêta, elles seront donc très probablement améliorées à l'avenir grâce à l' astuce de développement d'Unreal Une fois que vous l'aurez activé, je vous demanderai de le redémarrer. Comme je l'ai déjà activé , je n'ai pas à le faire, mais il suffit de cliquer sur le bouton Redémarrer et lui donner une minute pour qu'il se réinitialise Une fois votre Unreal réinitialisé, allez dans l'onglet en haut et cliquez sur Mode modélisation Comme vous pouvez également passer à cinq pour y passer instantanément. Dans les outils de modélisation, nous avons beaucoup de choses. Nous n'entrerons pas dans les détails pour chacun d'entre eux, mais toute personne familiarisée avec modélisation verra de nombreux outils familiers. Donc, si vous voulez simplement créer une forme de base pour bloquer par blocage, je parle simplement d'un maillage réservé qui sera utilisé pour concevoir votre niveau Vous pouvez simplement utiliser des outils de modélisation à l'intérieur de la bobine. Donc, de la façon dont j'ai créé celui-ci, nous allons le recréer à plus petite échelle Tout d'abord, il vous suffit de cliquer sur la forme que vous souhaitez. Dans notre cas, une boîte. Vous pouvez également faire un rectangle, mais comme vous pouvez le voir, ce n'est qu'un plan, ce n'est pas utile. Nous recevons une boîte. Et nous devons définir la hauteur, la largeur du livre. Par défaut, il est compris entre 1 et 2 000, mais vous pouvez saisir des valeurs plus élevées si nécessaire. Donc, dans notre cas, faisons-en 500. Restez simple. Déplaçons-le vers le haut. Déplacez-le. Et je ne veux pas qu'il soit aussi petit, alors agrandissons-le verticalement et horizontalement, et je ne veux pas qu'il soit aussi malade, afin que je puisse réduire la hauteur. Alors faisons-le 20. Vous pouvez augmenter la subdivision pour améliorer la qualité du modèle, mais comme nous ne l'utilisons que pour le prototypage, nous n'avons pas à le faire Maintenant, une fois que nous avons fini de sélectionner la forme générale que nous voulons. Et nous avons un type de sortie, un maillage statique, qui est exactement ce dont nous avons besoin. Nous pouvons attribuer un matériau ici immédiatement, mais nous le laisserons pour plus tard et cliquerons sur Accepter. À moins que vous ne cliquiez sur Accepter, ce maillage ne sera pas généré. Et après avoir cliqué sur Accepter, il s'agit maintenant d'un maillage généré existant dans notre niveau. Et si vous cliquez dessus et que vous cliquez ici pour trouver ce maillage, nous verrons que vous avez un dossier généré et que votre dossier généré contient tous les maillages dont vous avez besoin Maintenant, revenons à la modélisation. Comme vous pouvez le constater, il ne s'agit que d'une forme. Vous pensez peut-être que la meilleure façon de procéder est simplement de créer une autre forme pour créer un mur du côté droit sur le côté gauche. Mais si vous faites attention, il s'agit d'un maillage complet. Donc, si nous devions le déplacer, il s'agirait d'un maillage complet. Il ne s'agit pas simplement d'un avion. Donc, la façon dont nous procédons en utilisant le moyen le plus simple possible est de cliquer sur le maillage et de passer à la modélisation. Eh bien, modélisez les formes, et cliquez sur Poly Group Edit. Ces options du haut, et la plupart des options, ne seront pas disponibles à moins que vous activé le plugin de modélisation de plugins dans la section des plug-ins. Après avoir sélectionné le maillage et cliqué sur l'édition des polygroupes Ce que nous devons faire, c'est cliquer sur un visage. Pour information, ces points sont appelés sommets. Ces lignes sont appelées arêtes, et cette face située sur le côté des mailles est essentiellement appelée faces Nous cliquons donc sur le visage ici et nous cliquons sur Extruder. Ce que fait Extrude, c'est créer un nouveau visage et disons-le ainsi La raison pour laquelle nous l'avons fait est que si nous regardons le modèle ci-dessous, si nous essayons de l'extruder ici, il l'extrudera Il nous faut quelque chose de plus petit. Nous l'extrudons donc légèrement, et nous avons maintenant un rythme de ligne que nous pouvons utiliser pour extruder notre pièce Maintenant, nous avons un côté du mur. Nous pouvons répéter ce processus ici et extruder à nouveau. Et encore une fois, et nous avons maintenant une forme similaire. Dans ce cas, je n'ai pas modélisé le verso du Il y avait déjà un mur, mais nous pouvons le faire ici si vous le souhaitez. Vous pouvez utiliser des outils d'extrusion pour créer le type de forme que vous souhaitez Comme vous pouvez le constater, vous pouvez créer des formes complexes si vous le souhaitez. Il existe de nombreux outils que vous pouvez utiliser pour modifier vos modèles. Vous pouvez utiliser le push pull, qui est une fonction similaire mais techniquement différente qui peut réellement être réduite. Techniquement, comme son nom l'indique. Il tire ou pousse le modèle. Il y a le biseau, ce qui n'est pas vraiment utile ici car je n'ai sélectionné aucune arête, cliquez et sélectionnez le biseau n'y a pas beaucoup de polygones, donc ça ne semble pas beau, mais comme vous pouvez le voir, nous avons modifié la forme du modèle Nous n'y toucherons pas et nous pouvons simplement l' annuler et je l'annulerai également. Encore une fois, parce que je n'ai pas enregistré le modèle. Au moment où je l'ai annulé, il les a tous annulés. Assurez-vous de cliquer, sauf pour enregistrer votre modèle. Je n'ai pas besoin de ce modèle, je vais donc simplement le retirer. Mais j'aimerais bien voir ce que vous avez créé. Et n'oubliez pas de nettoyer vos modèles. Comme je ne vais plus l' utiliser , je vais simplement le supprimer. Je pourrais probablement le renommer en quelque chose de plus raisonnable, mais comme je ne vais pas le garder longtemps, je ne m'en soucierai pas Maintenant, nous avons un ensemble simple qui n'a pas vraiment l'air très attrayant cause de la couleur et de l'éclairage. Il est juste gris avec une grille, ce n'est pas le meilleur look. Et nous allons changer tout cela lors de la prochaine conférence. 8. UE5 FC04 01: Bon retour. Dans cette conférence, nous allons parler des matériaux, de la manière de les appliquer, les créer et de la manière de modifier des matériaux existants. Heureusement, Unreal nous a fourni matériel dans le contenu de démarrage, que nous utiliserons à des fins de démonstration initiale Ensuite, je vais vous montrer comment créer des matériaux de base. Comme vous pouvez le constater dans ce niveau, le matériau de texture basé sur une grille bien qu'utile pour le développement afin de déterminer la taille et l'emplacement des actifs que vous placez, n'est pas très beau Alors changeons-le. Tout d'abord, cet étage n'a pas l'air très beau. J'aimerais faire en sorte qu' il soit plus logique d'être sur le terrain, et nous avons du matériel ici. Je pense que je pourrais utiliser du béton broyé. Voyons voir. Utilisons du pavé, lisse, similaire, et plaçons-le ici. Hmm. Cela semble assez étrange. Et si cela s'est produit, c'est parce que le matériau est étiré. Si vous ouvrez le matériau lui-même, vous pouvez le voir ici, il semble correct. Et si vous mettez une forme de base simple, disons un cube, et que vous appliquez le même matériau. Ça a l'air très bien aussi. Cela se produit en raison de la différence entre les UV. Ce sol n'est pas vraiment optimisé pour ce matériau. Donc, ce que nous pouvons faire ici, nous pouvons ouvrir notre matériau et il s'agit d'un nœud matériel pour ce matériau en particulier. C'est assez compliqué, mais nous n'avons pas besoin de grand-chose à partir de là. Ce que nous devons trouver, c'est trouver le nœud de coordonnées de texture. Donc, tout ce que vous avez à faire est de le trouver et de carreler votre matériel. Plus le nombre est élevé, plus les textures sont écrasées. Vous pouvez le faire ici ou ici. Cliquez sur Excepter. Donnez-lui le moment de le mettre en sécurité. Et maintenant, voyons voir. C'est bien mieux, mais c'est encore trop gros. Multiplions-le donc encore une fois par dix. Peut-être 50 ou 50 ans. Et en sécurité maintenant. Accordons-y un moment. Idéalement, vous ne voudriez pas modifier carrelage sur les matériaux individuels et utiliser du matériel d'instance Mais j'expliquerai plus tard quels sont les documents d' instance. D'accord. Cela pourrait être mieux si nous le faisions aléatoirement , mais cela devrait convenir à des fins de démonstration. Nous avons maintenant un rez-de-chaussée lisse. Et maintenant, regardons cela ici. Je n'aime pas vraiment ce matériau. Utilisons donc autre chose. Nous pourrions utiliser quelque chose de chic comme ce matériau pour obtenir ce look futuriste Ce matériau utilise des lumières émissives. Désolé, un matériau émissif qui produit de la lumière. Si vous passez au matériau, vous verrez qu'un nœud de couleur émissif est appliqué Nous y reviendrons plus en détail plus tard. Mais pour l'instant, augmentons le carrelage. Disons que cinq par cinq, ça devrait suffire. Laissons accepter. Encore une fois, accordez-lui un moment. Ça a l'air bien mieux. On dirait un film de science-fiction. Mais comme nous allons ajouter des lumières à cette scène plus tard, nous ne voudrions pas que cela entre en conflit avec les sources de lumière. Alors, même si ça a l'air si cool, choisissons un matériau plus simple. Disons, par exemple, que diriez-vous de cela ? Cela semble similaire, mais il n'y a pas de lumière. Ou peut-être. Devons-nous le fabriquer à partir du bois ? Nous pourrions aussi le fabriquer à partir du bois. Faisons-le à partir du bois. Donnez le moment. Mais ça n'a pas l'air bien. Gardons-le simplement. Métal noir, métal quadrillé. C'est un peu trop gros, alors mettons-le un peu plus en mosaïque. Faisons 88 et voyons voir. Ça devrait suffire. Cet étage. Désolé, tout cela doit également être modifié. Appliquons-y également ici. Ça devrait aller. Peut-être un peu trop sombre, mais on s'en fout. Suffisamment bon. Comme vous pouvez le constater, nous avons changé le look de l'ensemble de la scène. Mais ce sont tous des matériaux déjà présents dans le kit de démarrage. Les matériaux ne sont pas toujours fournis, et il y aura des moments où vous voudrez les créer vous-même. Créons donc un matériau. Passons à notre dossier de contenu. Créez un nouveau dossier appelé material. Ouvrez-le et cliquez avec le bouton droit de la souris ou cliquez sur Plus. Vous pouvez cliquer avec le bouton droit de la souris et créer un matériau en allant sur le matériau ici et en cliquant sur le matériau. Il y a beaucoup de choses ici qui sont destinées aux futurs cours. Cliquez sur le matériau. Appelons-le basic M understood score basic. M représente le matériau. Il est bon d'avoir des conventions de dénomination pour vos matériaux en général. M est généralement pour les matériaux. Nous l'ouvrons donc, et voici ce que nous obtenons. Nous avons une sortie, essentiellement, et avant la sortie, nous avons un substrat. Le substrat est une fonction matérielle spécifique irréelle récemment ajoutée 9. UE5 FC04 02: Vous remarquerez peut-être que l'apparence de vos matériaux est légèrement différente de la mienne. Vous avez un nœud de sortie différent, car les matériaux de substrat ne sont pas activés. Vous n'êtes pas obligé de l'utiliser spécifiquement, et que vous l'utilisiez ou non, les fonctionnalités de base du matériau manière de le créer sont les mêmes. Le substrat est une fonction de matériau expansé permettant de créer des matériaux en couches qui sont très utiles et uniques à Unreal Engine Je l'ai activé par défaut, ce que je recommande d'apprendre si vous êtes intéressé par la création de matériaux. Maintenant, revenons aux matériaux. Nous avons quelques options ici. Nous ignorerons tout ce qui se trouve sur le côté droit, qui est principalement spécifique au substrat, et nous nous concentrerons principalement sur ce point. Couleur de base, métal, rugosité spéculaire, couleur MSF normale La couleur de base est, comme on l' appelle couleur de base. Sur le côté gauche, nous avons un aperçu du maillage SR. Comme vous pouvez le voir correctement, il n'y a rien dedans, donc c'est juste du blanc. Ajoutons une couleur à cela. Comme vous pouvez le faire, vous pouvez cliquer avec le bouton droit sur le graphique des matériaux. Il s'agit du graphe des matériaux, tel que mentionné ici. Et vous pouvez essayer de trouver le nœud de texture, etc., mais vous pouvez simplement maintenir trois points sur votre clavier, votre pavé numérique et cliquer Cela crée une valeur constante que vous pouvez utiliser pour sélectionner une couleur. C'est donc basé sur le RGB. Sélectionnons donc le rouge. Nous pouvons ajuster la couleur ici comme nous le souhaitons. Si vous avez un code X ou un code X RGB, vous le savez déjà, vous pouvez simplement copier-coller, le saisir. Et disons rouge. Comme vous pouvez le constater, rien n' a changé ici car nous n'avons pas encore branché notre nœud Branchons notre nœud de couleur de base ici. Et maintenant, notre matériau est rouge. Mais disons que nous voulons le rendre plus métallique. Nous devons ajouter de la valeur au métal. Habituellement, la valeur n' est pas toujours, mais elle est généralement comprise entre 0 et 1, ce qui signifie que nous avons besoin d'une valeur flottante pour la saisir Il s'agissait de six valeurs, qui ont généré une couleur. Mais ici, nous n'avons besoin que d'une seule valeur. Donc, ce que nous devons faire, maintenez une touche enfoncée et cliquez, ce qui créera une valeur unique, qui sera le flottant. Mettons notre nœud à valeur nulle dans le métal. Rien n'a beaucoup changé car la valeur métallique est actuellement nulle, ce qui signifie qu'elle est aussi peu métallique que possible Et comme je l'ai mentionné plus tôt, un est généralement la valeur maximale. Mettons-en un ici et cliquons sur N. Donnons-lui un moment. Maintenant, tout à coup, c' est très différent. Nous pouvons toujours mettre une valeur entre zéro et cinq. Alors restons-en là ou maintenant. Nous voulons qu'il brille et qu'il soit différent. Au fait, vous pouvez vérifier les valeurs par défaut ici. Comme vous pouvez le voir, valeur par défaut du spéculaire est zéro point cinq, qui signifie qu'il s'agit d'une valeur spéculaire de 05 pour le moment Ajoutons du liquide supplémentaire et mettons-le dans le spéculaire. Nous avons maintenant une valeur spéculaire de zéro. Et faites-le, vous remarquerez peut-être une grande différence sur l'écran, mais c'est très utile pour les surfaces non métalliques. Comme nous l'avons rendu métallique, nous ne pourrons pas le voir. Faisons donc un zéro métallique et un spéculaire. Et maintenant, réduisez le spéculaire à zéro pour voir la différence. Tu vois ? Le matériau est très mat maintenant. Il ne brille plus car il s'agit d'un matériau non métallique sans speculaire Il ne brillera donc pas et ne reflétera pas la lumière. Mais je préfère que mon matériau soit métallique pour le moment, alors faisons-en un. Et le spéculaire n'a pas d'importance lorsque le matériau est entièrement métallique dans la plupart des cas Jetons maintenant un coup d'œil à la rugosité. La valeur difft de rugosité est également égale à zéro point cinq. Nous avons donc mis la rugosité à zéro, ce qui signifie qu'il est aussi lisse qu'un verre et qu'il est très réfléchissant car il s'agit d'un matériau métallique entièrement métallique avec une surface parfaitement lisse Si vous réduisez la valeur métallique, tout à coup, il ne s'agit que d'un objet lisse. Si vous en avez un pour le spéculaire, il est un peu brillant, mais il n'est pas aussi brillant qu'il était lorsqu'il était entièrement métallique Alors maintenant, photographions un, zéro. Et encore une fois, il s'agit d'une sphère métallique très lisse. Le spéculaire n'a pas d'importance lorsque nous avons un objet métallique, nous allons donc le maintenir à zéro Et que se passera-t-il si nous augmentons notre rugosité ? Si vous attribuez de la rugosité à une craie, elle a la même texture qu'une craie La craie est ce qui se rapproche le plus de la valeur d'une personne dans la vraie vie Pour ceux qui ne savent pas ce qu'est la craie, c'est un outil utilisé pour écrire au tableau noir Mais c'est trop. Mettons donc en valeur inférieure. Disons 07. Nous ne voulons pas qu'il soit très réfléchissant, mais nous voulons qu'il le soit. Peut-être un peu plus. Désolé, nous devons le baisser car c'est l'inverse. Moins nous avons de valeur, plus elle est réfléchissante. Non, encore un peu. Et oui, c'est bon. Pas trop réfléchissant. Non et maintenant nous avons une normalité. Donc, dans ce cas, comme nous ne faisons que créer un matériau de couleur simple, normale n'est pas aussi utile pour nous, mais les normales sont utilisées pour calculer certaines valeurs dans l'espace tangent Habituellement, les textures normales sont utilisées conjointement avec la normale, et la valeur zéro, un, est rarement utilisée par défaut. Regardons donc l' application d'une normale. Disons, oh, oui, ce pavé que nous avons récemment examiné Nous avons donc ce nœud normal qui arrive ici. Nous avons donc une texture normale. Cette texture normale est importante pour que la texture du pavé apparaisse correctement. Regardons maintenant la carte. Nous avons ce matériel, ou. Et dans ce matériau, si nous examinons la texture normale, il s' agit d'une texture normale pour le matériau que nous avons utilisé sur le sol. Et supposons que nous le supprimions ou que nous le modifiions autre chose, n'est-ce pas ? Passons donc à la normale un autre pavé ou même des cailloux. Et postulez. Tout à coup, ça a l'air un peu différent. Il y a un problème avec le matériau. Faisons-le encore une fois. Cette fois, changeons-le carrément en texture de béton et appliquons-le Maintenant, ces lignes étranges sur le matériau, qui ressemblent à celles d' un pavé Il est très important que les valeurs normales correspondent à la texture. Nous devons l'appliquer. Je les contrôle deux fois pour restaurer ce que nous avions initialement. Les textures normales sont généralement créées par des artistes de texture ou des modélisateurs. Si vous souhaitez apprendre à le faire vous-même, je vous recommande de rechercher les informations relatives à la modélisation et à la texture ou les cours dans notre liste de cours. C'est très détaillé et cela peut être aussi compliqué que possible, nous ne l'aborderons donc pas dans ce cours. Mais si cela vous intéresse, n' hésitez pas à nous faire part de vos commentaires. Il se peut que nous élaborions rapidement un nouveau cours sur ce sujet en particulier. Fermons donc ceci et revenons au matériel. Maintenant, ça a la même apparence qu'avant. Revenons à notre matériel de base. Nous étions en train de créer ici, nous avons quelque chose d'intéressant. Nous avons une couleur émissive. Qu'est-ce que cela signifie ? La couleur émissive est essentiellement un matériau qui brille et produit Donc, si nous ajoutons une valeur et que nous la mettons ici, et à zéro, cela ne fait rien. Si vous le mettez peut-être à cinq, il brille maintenant de mille feux. Si vous en inscrivez, disons, 5 000, nous risquons de devenir aveugles. Comme vous pouvez le constater, il émet beaucoup de lumière en ce moment. Et ce matériau n'est pas censé être brillant, nous ne le ferons donc tout simplement pas. Et maintenez-le à zéro, c'est ce qui est le cas par défaut. Nous le supprimons donc. Nous avons également de l'opacité Si vous ajoutez une note flottante, toutes mes excuses, j'ajoute une autre valeur flottante mets en opacité et je la mets à zéro, la couleur du matériau n'apparaîtra tout simplement pas parce qu' elle est à Si vous le mettez à zéro point sept, vous avez un peu d'opacité. C'est un peu difficile à voir, donc c'est laissé à zéro point deux. Il est moins opaque. Dans ce cas, nous n'allons pas l'utiliser, mais quoi qu'il en soit, il est important de comprendre le fonctionnement des matériaux en général. Si vous souhaitez créer un matériau opaque ou translucide, examinons le matériau du verre Le verre que nous avons eu est donc un matériau de départ, le verre. Jetons un coup d'œil au matériau en verre. Nous avons un indice de réfraction par réflexion. mes excuses. Nous avons notre modèle d'ombrage du substrat Et ici, nous avons l'opacité, et l'opacité est Nous avons également une réfraction supplémentaire, etc., qui apporte des modifications supplémentaires pour modifier la surface de l'objet C'est bien au-dessus du niveau intermédiaire, nous allons donc ignorer cela. Si vous regardez ici, nous avons un matériau très intéressant qui est presque entièrement noir. Nous avons une valeur spéculaire de dix Comme je l'ai dit, généralement, il se situe également entre zéro, mais parfois vous pouvez aller plus haut. Dans le cas du spéculaire, il s'agit d'une valeur de dix Nous avons une rugosité de zéro parce que c'est du verre, et nous avons une opacité de zéro point 35 Parce qu'il s'agit d'un matériau noir opacé, il ressemble à du verre Et si vous supprimez cette réfraction ici, comme vous pouvez le constater, cela ne change presque rien Ne vous embêtez donc trop avec la réfraction pour le moment Et si nous changeons cette opacité en un, il ne s'agit plus d'une classe transparente Nous changeons la spéculation en une seule, elle est bien trop vague. Il n'existe aucun moyen garanti d'obtenir le résultat spécifique que vous souhaitez avec un matériau. meilleure solution consiste donc à comprendre les fonctions de base du matériau, leur signification, et à essayer de bricoler jusqu'à obtenir ce que vous voulez Maintenant, pour le moment, fermons ceci. Nous n'économiserons pas. Et revenons-y. Nous voilà donc de retour, et nous avons maintenant ce matériel. Et nous voulons que ce matériau soit appliqué à basse température. Il existe des options supplémentaires pour les additifs masqués, etc., qui seront abordées dans les prochains cours. Et nous allons garder ça et faire de Mac The Love. Supposons maintenant que nous voulions que ces boîtes soient de la même couleur que le matériau nouvellement créé. Nous allons ici, nous le sélectionnons et nous l'appliquons. Oh, maintenant, tout à coup, nous avons deux boîtes contenant un matériau que nous venons de créer. Il est aussi simple que cela d' appliquer le matériel créé au niveau. Mais disons que nous voulons avoir un matériau métallique, mais que nous voulons qu'ils aient chacun une couleur différente, une rugosité ou une spécularité différente Nous voulons que celui-ci soit jaune, celui-ci vert, celui-ci blanc. Peu importe. Cela signifie-t-il que nous créons un nouveau matériau pour un seul, chaque type et chaque variation ? Non. C'est là qu'interviennent les instances matérielles. Donc, si vous avez un matériau et que vous souhaitez avoir plusieurs versions de ce matériau, par exemple, comme je l'ai dit, je veux que tout soit exactement pareil, à l'exception de la couleur. Je veux donc la même quantité de surface réfléchissante, métallique, etc., et la seule chose que je veux être différente, c'est la couleur elle-même Ce que je peux faire, c'est cliquer avec le bouton droit sur le matériau et créer une instance de matériau. Maintenant, qu'est-ce que cela signifie ? instance de matériau est un enfant d'un matériau, et elle prend tous ses paramètres du matériau lui-même. Appliquons maintenant cela à toutes ces mesures. Nous avons donc maintenant une instance matérielle. de disposer d'une instance matérielle présente de nombreux avantages . Il est plus optimisé et il est plus facile de le modifier lors de l'exécution. Alors maintenant, séparons cela pendant une seconde et jetons un coup d'œil à cela, n'est-ce pas ? Correct. Donc, pour le moment, nous n'avons rien dans notre matériel. Parce que nous n'avons ajouté aucune propriété que nous sommes censés ajouter ou modifier par rapport au matériau. Il existe certaines options par défaut que Real propose pour vous, mais elles ne correspondent pas à ce que nous voulons. Alors, comment ajouter ici des options à modifier au cours du processus ? Nous allons au matériau lui-même et nous trouvons les paramètres que nous voulons. Et dans ce cas, celui-ci, nous voulons changer de couleur. Nous faisons donc un clic droit dessus. Et convertissez en paramètre. Nous devons donc lui donner un nom. C'est une couleur, donc c'est simple à nommer. Et maintenant, nous avons un paramètre appelé couleur, n'est-ce pas ? Et la valeur par défaut de ce matériau est le rouge. C'est tout ce que nous avons à faire. À garder à l'esprit, vous pouvez le faire pour tous les autres paramètres. Vous pouvez le faire pour la rugosité, le métal, etc. Nous y retournons et nous ouvrons nouveau le matériel. Faisons-le encore plus grand. Nous avons maintenant une couleur. Donc, si nous cliquons dessus et changeons la couleur ici, cela change instantanément la couleur de tous les maillages appliqués avec ce matériau précis Vous pouvez le modifier facilement. Mais vous vous demandez peut-être, attendez, mais je ne veux pas qu'ils soient tous de la même couleur. assez juste. Créez d'autres instances du même matériau. Et celui-ci peut être un exemple matériel, deux, et appliquer celui-ci. Et celui-ci peut être une troisième instance matérielle. Et disons que cela s' applique à celui-ci et que celui-ci est jaune. Créons, encore une fois, instance matérielle, nommez-la. Celui-ci, nommons-le quatre, ouvre-le, modifions-le, en vert. Et appliquons cela à cela. Nous avons maintenant quatre matériaux de couleurs différentes. Vous vous demandez peut-être quel est l'avantage de faire cela ? Parce que nous avons essentiellement créé plusieurs instances de matériaux. Ne pourrais-je pas simplement créer plusieurs matériaux ? Non. Tout d'abord, les instances de matériaux sont plus optimisées, ce qui signifie qu'elles consomment moins de ressources que si vous disposiez de plusieurs matériaux. Deuxièmement, nous avons maintenant quatre matériaux, des instances, pour être corrects, qui sont appliqués à ces boîtes. Supposons que nous prenions ce cas matériel et que nous voulions changer quelque chose. Mais il y a un avantage supplémentaire si vous souhaitez tous les modifier. Supposons qu'il y ait eu une divergence d'opinion par la suite et que nous voulions nous assurer qu'aucun de ces matériaux de couleur n'est métallique. Nous voulons donc qu'ils soient grossiers, et nous les modifions dans la sauvegarde des parents, en attendant un moment. Revenez en arrière et maintenant ils sont tous non métalliques. Nous avons donc maintenant la possibilité modifier les matériaux dans le parent, ce qui changera instantanément toutes les valeurs qui ne sont pas modifiées par instance ou si vous souhaitez modifier un matériau spécifique uniquement sur une instance spécifique du maillage, vous pouvez simplement le modifier . Comme je l'ai dit, nous pouvons le faire non seulement avec couleur, nous pouvons le faire avec n'importe quoi. Supposons donc qu'il s'agisse d'un métal, nous pouvons donc cliquer dessus avec le bouton droit de la souris, le convertir en paramètre. Appelez ce paramètre métallique, enregistrez. N'oubliez pas qu'il s'agit d'un matériel destiné aux parents. Maintenant, si vous ouvrez l'une des instances que nous avons créées précédemment, nous avons une option ici ou métallique, que nous pouvons modifier. Alors gardez à l'esprit. Rendons-le plus visible. Gardez un œil sur cette boîte bleue, et changeons le métal. Nous n'en avons plus qu'un , non métallique. De toute évidence, il vaut mieux avoir zéro plutôt que négatif. Nous pouvons donc facilement modifier nos matériaux et nos instances de matériaux de cette façon. Et c'est la méthode recommandée pour ce faire. Alors maintenant, enregistrons ceci et jetons un coup d'œil. C'est simple. Ce n'est rien de trop difficile, et cela semble très bien pour quelque chose que nous avons créé en quelques minutes. Maintenant, avant de passer à la prochaine conférence, passons à une autre tâche. Avec les connaissances que vous avez acquises, créez des matériaux et décorez votre scène. Bonne chance et à bientôt lors de la prochaine conférence. 10. UE5 FC05 01: Bienvenue dans le cours. Dans cette conférence, nous allons parler de la foudre, ses différences et de la manière de la placer dans la scène. Avant de parler de la foudre qui peut être configurée dans la scène, examinons celle qui existe déjà dans la scène par défaut dans ce modèle, lumière directionnelle. Et cet éclair, c'est le soleil. Si vous allez dans les paramètres, le panneau de détails permet d'être plus précis et de modifier l'intensité. J'augmenterai ou diminuerai l'ensoleillement en fonction de la valeur que vous avez saisie. À zéro, il n'y a essentiellement pas de lumière. Et dans un cas, il est très faible. Personnellement, je préfère trois, comme vous pouvez le constater, mais vous pouvez modifier la valeur comme vous le souhaitez. La couleur de la lumière, comme son nom l'indique, change la lumière de la couleur. Désolé, couleur de la lumière. Vous pouvez voir, nous pouvons donner une ambiance différente à notre scène, ou maintenant nous allons la garder telle quelle L'angle de la source n' a pas vraiment d'importance. L'angle par défaut ici, l'angle source est le même que le soleil lui-même. Et si votre principale source de lumière est le soleil, vous pouvez tout aussi bien la maintenir à cette valeur. Ce n'est pas non plus quelque chose qui devrait vous inquiéter. Vous pouvez augmenter ou diminuer la température, ce qui affectera la teinte des couleurs. Encore une fois, ce n'est pas quelque chose qui devrait vraiment vous inquiéter pour le moment. Et nous pouvons ignorer le reste. Nous pourrions supprimer les ombres, ce qui supprimera toutes les ombres projetées par cette source de lumière. Lorsque la scène comporte plusieurs sources de lumière, il se peut que vous préfériez une ombre spécifique provenant de cette source d' éclairage spécifique. Dans ce cas, vous pouvez simplement désactiver d'autres et conserver celle-ci, ou vous pouvez avoir plusieurs lumières projetant des ombres provenant de plusieurs sources. Et cet objet aura plusieurs ombres. Mais il vaut mieux ne pas avoir des centaines de lumières, qui projettent toutes des ombres dans un espace restreint, car ce n'est qu'une perte de calcul, comme l'optimisation de votre jeu Et évidemment, affecter le monde est un peu obligatoire dans la plupart des cas. Bon, parlons maintenant des lumières que vous pouvez simplement placer dans la scène d'une manière plus petite. Donc, si nous revenons à cet ensemble que nous avons ici, il fait très sombre. Et disons que nous voulons que le soleil ne soit pas si haut dans les airs. Nous voulons quelque chose comme un coucher de soleil. Nous pouvons facilement changer la direction du soleil en appuyant sur la commande E, désolé, sur la commande L et en faisant pivoter la direction du soleil. Faisons donc quelque chose comme ça. Je me déplace autour de ma souris tout en maintenant la touche Ctrl enfoncée. Oui, allons-y Lexis. à chaque fois le côté obscur, et maintenant il est plus logique d'avoir des éclairs ici. Vous pouvez toujours jouer aux lumières, cliquer sur cette icône en haut et accéder aux lumières. Vous pouvez également cliquer sur l'onglet Fenêtre ici, placer les acteurs et accéder au bain à lumière. Je vais le garder Lexis juste pour avoir plus de facilité à expliquer ce que fait chacun d'eux. Nous avons déjà parlé de lumière directionnelle. Personnellement, vous ne voudriez pas avoir trop de lumières directionnelles dans la scène. Donc, généralement, une lumière directionnelle provenant de la source de lumière principale, le soleil, suffit, mais vous voudrez peut-être avoir plusieurs lumières plus petites. Parlons donc d'abord de la lumière ponctuelle. C'est une lumière ponctuelle. Cette lampe possède un rayon. Mettons-le dehors, la caméra pendant une seconde. Le cercle qui l'entoure définit son rayon. Cachons la lumière du soleil pendant une seconde, afin que nous puissions mieux voir. Le rayon source et le rayon source souple sont liés entre eux. Si votre source radio est nulle, la radio source logicielle ne fait rien. Donc, à des fins de démonstration, réduisons-le et augmentons la source radio. Il n'est pas nécessaire que ce soit aussi gros pour avoir un effet sur les radios soft source. Il peut en être littéralement un. Lorsque je l'augmente ou que je le diminue, vous remarquerez la différence entre les éclairs sur ces objets éloignés. Faisons-le comme ça. Ce qui a changé, c'est la diminution du rayon auquel il commence à avoir de moins en moins de lumière. Habituellement, ce n'est pas quelque chose que vous devez trop mouler. Tu peux rester simple. Et pour l'instant, jetons un coup d'œil à la dernière, qui est la longueur de la source. Donc, si nous mettons le rayon de la source comme celui-ci, c'est trop grand. Faisons en sorte qu'il en soit ainsi. Cela lui donne essentiellement de la hauteur. Donc, plutôt qu'une ampoule, maintenant c'est une géante on dirait un ascenseur géant qui émet de la lumière Ce n'est pas vraiment quelque chose que vous aurez à trop vous mêler, et vous pouvez l' ignorer la plupart du temps Et redonnons à cette lumière quelque chose de normal. Il s'agrandit. Allons l' agrandir un peu, je suppose. Et encore une fois, c'est pareil qu'avant, monde des affects est occulté ou non. Nous pouvons ignorer tout cela. Passons maintenant au type de lumière suivant, à savoir le projecteur. Vous vous demandez peut-être à quoi sert Spotlight. C'est une source de foudre qui, comme vous pouvez le voir sur la forme , augmentons son intensité. C'est une lumière qui n'affecte qu'une certaine zone. Xis. Déplaçons le panneau de détails haut pour qu'il soit plus visible. Vous pouvez augmenter le rayon d' attention , ce qui augmente l'objectif. Vous pouvez le faire pivoter. Comme vous pouvez le constater, l'axe X ne fait pas grand-chose. Mais vous pouvez le faire pivoter dans les axes Y et Z, jetez un œil à M pour placer votre lampe comme vous le souhaitez. C'est le type de lumière le plus couramment utilisé dans jeux en général dans les scènes, car si votre lampe est dans une certaine direction ou votre source de lumière est censée se concentrer sur un acteur ou une direction spécifique, c'est la lumière la plus facile à utiliser à ces fins. Et nous avons d'autres éléments ici, savoir que l'angle interne du noyau, comme vous pouvez le voir, augmente ou diminue l'angle du co. Ce que font le cône intérieur et le cône extérieur, c' est dans le cône intérieur que la lumière est la plus vive. L'intensité de 160 que nous avons ici est donc appliquée au cône intérieur. Alors faisons-le 40 ? Et l'inconvénient extérieur est le point de départ de la chute. Donc, si nous avons 40 ou 40 ans, nous aurons un flux très rapide. Si nous avons un noyau interne à 20, alors que f est éteint à 40, nous aurons une lumière douce et plus douce avec un f éteint après le noyau interne de 20. Si nous sommes à zéro, tout sera doux. Vous pouvez donc en faire essentiellement cinq pour vous concentrer sur un certain objet, s'il y en a un. Disons que nous avons ces cubes ici. Et si j'arrête de cliquer sur la lumière, nous avons maintenant une lumière qui se concentre sur les objets. Nous pouvons donc augmenter le rayon car il semble un peu trop petit, et nous pouvons réduire encore l' angle du cône extérieur. Mais pas aussi petit, nous avons un objet qui s'illumine de façon suspecte dans votre scène Les autres options sont les mêmes qu'auparavant. La source de longueur ne fait pas grand-chose dans ce cas. Et nous pouvons passer à notre lumière suivante, qui est une lumière rectangulaire. Donc, ce que fait une lumière rectangulaire, c'est une source lumineuse en forme de rectangle. Faisons-le donc pivoter pour faire briller la lumière sur le sol. Et augmentons la taille de la source pour qu'elle soit plus lisible. Et aussi, changeons la radio d' acénation. Plus facile à voir. Contrairement aux diapositives précédentes, il s' agit d'une forme particulière. Ainsi, si nous changeons la hauteur ou la largeur de la source, nous aurons une forme spécifique pour notre source lumineuse. La lumière est donc maintenant focalisée dans cette direction. Si vous changez cela, ensuite, comme ceci et que vous réduisez l'angle de la porte de votre grange, vous obtiendrez une ombre rectangulaire très nette. Réduisez ensuite la longueur ou augmentez-la en fonction de la netteté ou du carré que vous souhaitez donner à vos ombres. Et vous pouvez le faire comme ça pour obtenir un type d'ombre très spécifique. Maintenant, avant de passer à la prochaine conférence, ajoutez quelques points lumineux à votre scène. Ce sera votre tâche pour le moment. Si vous n'avez aucune source de lumière, assurez-vous d'en ajouter. Soyez créatifs. Tu peux ajouter n'importe quoi. Il peut s'agir d'une lampe. Il peut s'agir d'une lampe de poche. Il peut s'agir d'une cheminée. Faites-en ce que vous voulez , faites preuve de créativité. N'y réfléchissez pas trop et passez à la complexité. Il suffit de rester simple. Dans la prochaine conférence, nous verrons comment créer des éclairs complexes avec interactivité Donc, pour l'instant, assurez-vous d'avoir un espace où vous pouvez ajouter vos lumières et les déplacer. Ajoutez peut-être de la couleur à votre scène. Vous voudrez peut-être créer une discothèque, une couleur, peu importe ce que vous voulez. Amusez-vous bien et à bientôt lors de la prochaine conférence. 11. UE5 FC06 01: Bon retour. Dans cette conférence, nous allons parler de plans Donc, pour commencer, là où nous nous sommes arrêtés, ces lampes murales, nous voulons y ajouter de la lumière, mais nous voulons ajouter de la lumière, disons, de différentes couleurs ou de différentes intensités, ou peut-être même de formes. Nous pourrions simplement en ajouter une manuellement à chacune, comme nous l'avons fait avec cette lampe au plafond. Mais cela prend beaucoup de temps. Et si vous n'avez pas six mais 600 lumières dans votre scène ? C'est là que le plan et les fonctionnalités entrent en jeu. Pour transformer cet objet en plan, cliquez sur ce bouton ici Cela convertit cet acteur en classe de plan réutilisable. Alors, cliquons dessus. Cela vous demandera une sous-classe. Il vous suffit de cliquer sur Sélectionner. C'est un Masacor statique et c'est un acteur, ça va être un Mahcor statique de toute façon, donc c' Et nous avons ce point de vue. Il s'agit d'une fenêtre d'affichage où nous pouvons regarder notre objet, le modifier, etc. Et ce qui est peut-être encore plus intéressant, c'est ce graphique d'événements. Nous avons également un script de construction, dont je parlerai lors de la prochaine conférence. Voici donc notre graphique des événements. Avant de passer à autre chose, je dois expliquer ce qu'est un plan, ce qu'est un acteur et comment tout cela fonctionne Blueprints sont un système de code visuel conçu pour aider les personnes qui souhaitent gagner du temps ou qui ont des difficultés à coder faire leur travail sans avoir à coder en C plus ou en C sharp dans un autre moteur La façon dont cela fonctionne est que ces plans sont essentiellement une fonction intégrée à vos acteurs Et la question, que sont les acteurs ? Chaque objet de votre scène est un acteur, et la scène correspond à votre niveau. Donc, ce vaste vide, vous voyez, qui est mon niveau, chaque cube, chaque verre, chaque lumière, tout, même les morceaux d'herbe abîmés , sont tous des Bien que cela puisse créer une idée fausse chez des acteurs tels que acteurs, des humains ou des personnages dans le langage du code du moteur, les acteurs jouent un rôle essentiel dans votre scène en trois dimensions, à quelques petites exceptions près Par exemple, ce matériau, la couleur, n'est pas un acteur. C'est juste un ajout visuel à votre acteur. Il en serait de même pour les décalcomanies ou les particules produites, comme tous les sous-produits des autres acteurs de la scène qui ne sont pas vraiment Ou les objectifs, même s' ils sont interactifs, ne sont pas quelque chose que vous pouvez simplement placer dans votre niveau tels qu'ils sont Imaginons par exemple que nous ayons un personnage qui tire des boules de feu Le personnage lui-même est un acteur. La boule de feu qu'elle a tirée est un acteur si elle est fabriquée sous forme de projectile Mais les images de flammes autour de l'objet, qui est un projectile, ne sont pas des acteurs Ce ne sont que des composants, et ce composant en particulier est une particule. La question suivante est la quel est le but des acteurs du niveau ? Comme je l'ai déjà dit, les acteurs peuvent être n'importe qui à votre niveau. Il y a de l'herbe, leurs murs, leurs sols, leurs personnages. Ils sont tout ce dont tu as besoin pour ton niveau. Et les acteurs sont différents. Certains acteurs ne sont même pas visibles. L'acteur n'a pas besoin d'être visible pour être pertinent. Et que sont les plans ? Et voyons quelle est la différence entre cette lampe, qui n'est qu'un maillage statique, et cette lampe P, qui est maintenant un plan La différence est que la fonctionnalité de ce maillage statique est limitée à ce qu'un maillage statique peut faire. Comme vous pouvez le voir, nous avons notre panneau de détails. Nous avons nos paramètres, notre transformation, etc., certains paramètres de base sur la façon dont les moteurs devraient interagir avec cet objet Il peut être assez compliqué de les passer toutes en revue soudainement, nous n'allons donc pas en parler pour le moment. Et très honnêtement, vous n' avez pas besoin de toucher à la plupart des éléments du panneau de détails à moins de savoir exactement ce que vous faites. Mais les acteurs, qui sont des plans, peuvent contenir n'importe quel type de fonctionnalité Par exemple, si je veux faire exploser cette lampe, je le peux. Si je veux le faire bouger, voler ou faire quoi que ce soit, je peux vraiment faire tout cela grâce au plan De toute évidence, il y a des limites à ce que vous pouvez faire et à ce que vous ne pouvez pas faire et à la manière dont vous voulez le faire. Mais vous êtes libre de faire ce que vous voulez avec cet objet. Dans notre cas, nous voulons que cet objet émette de la lumière. C'est une lampe. Et ce que nous pouvons faire pour y parvenir est le même que lors de la conférence précédente, nous pouvons ajouter une lumière. Ajoutons donc une lumière directionnelle. Oh, toutes mes excuses. Pleins feux. Et nous voulons que le projecteur soit dirigé vers le haut, et nous voulons qu'il soit exactement là où se trouve la source lumineuse. Si vous ne parvenez pas à vous déplacer avec votre souris ou à zoomer, vous pouvez faire défiler la page vers le bas, réduire ou augmenter la vitesse de la souris, ou vous pouvez simplement cliquer en haut pour la réduire ici Disons-le comme ça. Vous verrez que la vitesse de la bouche est maintenant plus faible, ce qui est très utile lorsque vous travaillez avec des objets plus petits. De plus, si vous vous perdez et que vous ne savez pas où se trouve votre objet, vous pouvez toujours cliquer dessus et appuyer sur le FK. Et si vous appuyez simplement sur FK, il zoomera et vous pourrez voir votre objet. Cette fonction fonctionne évidemment aussi dans l'amour. Donc, si vous l'avez sélectionné et que vous vous déplacez, appuyez sur FK pour revenir à l'objet que vous avez sélectionné, ce qui est très utile lorsque vous avez plusieurs objets dans la scène , que votre niveau est trop pour que vous sachiez où se trouvait l'objet ou que vous l'avez perdu pendant que vous le faisiez glisser Peut-être que c'est sous le plancher, que vous n'avez pas sélectionné et que vous ne pouvez plus le voir. Et vous pouvez simplement appuyer sur cette touche ou votre objet est correct. Revenons-en maintenant au plan. Et nous avons ajouté cette lumière à la scène, n'est-ce pas ? Correct. Et vous remarquerez peut-être que ce projecteur se trouve sous le composant de maillage statique, ce qui signifie qu'il est désormais attaché au maillage statique lui-même. Si nous réduisons la taille de l' objet, etc., ses enfants les plus âgés se déplaceront Ajoutons donc un cube. Ce cube est trop grand, alors réduisons-le un peu. Ce cube est désormais attaché au composant Stack Mesh. Donc, si vous agrandissez le composant de maillage empilé, alors qu'il est de cinq, la taille de ce cube augmentera également. C'est donc très utile car vous créez essentiellement un acteur évolutif et uniformément évolutif qui héritera de toutes ses propriétés du parent lorsque vous le modifierez dans le niveau Supprimons ce cube et compilons, sauvegardons au cas où. Nous avons maintenant la lampe et la source de lumière elle-même, le projecteur. Nous pouvons le modifier ici et maintenant en changeant les radios, etc. Réduisons donc le rayon. Je ne veux pas que les lumières soient trop fortes. Mettons la valeur de 500 et compilons. Après avoir compilé, vous pouvez revenir au niveau et y jeter un œil. Oh, nous avons une lumière très faible. J'aimerais qu'il soit peut-être un peu plus fort. Alors augmentez l'intensité jusqu' à, disons, t. Et augmentez. Il est encore un peu plus résistant, mais je n'aime pas sa forme. C'est peut-être parce que je l'ai égaré. Un peu, oui. C'est un peu mieux. Et disons que je veux que la couleur soit rouge. Maintenant c'est rouge. Mais nous aurions également pu le faire par la méthode habituelle simplement en l'attachant, n'est-ce pas ? Ici. Pourquoi le ferions-nous comme ça si c'est trop gênant Parce que nous pouvons ajouter des fonctionnalités. Donc, au lieu de le rendre rouge par défaut, je vais le rendre blanc, et je vais faire en sorte que l' intensité soit 20 K, juste pour qu'elle corresponde à la lampe de vente. Pardon. Le rayon d'attention me convient, je vais le compiler et passer au graphique des événements Et c'est là que les choses les plus intéressantes se produisent. Avant de poursuivre, je vais expliquer ce que sont les événements. Voici donc les trois événements par défaut qu'Unreal vous proposera immédiatement. Et les événements sont essentiellement des déclencheurs qui commencent par un script. Ainsi, par exemple, cet événement commence à jouer commence à jouer lorsque cet acteur est dans le niveau et que le niveau commence. Donc, si cet acteur n' est pas dans le niveau, cela ne servira à rien. L'acteur doit être dans le niveau pour que cela commence. Cela commence donc, et disons ajouter un nœud de chaîne d'impression, nous pouvons ajouter un nœud de chaîne d'impression ici et lui demander simplement bonjour. La chaîne d'impression est donc une fonction de bogue qui vous permet de déboguer essentiellement de tester les fonctions si elles se déclenchent ou non Dans ce cas, nous allons simplement le garder à hello hello, le compiler et revenir au niveau. Lorsque nous appuyons sur Play, nous recevons un bonjour parce que l'événement a commencé au moment où le niveau Si je devais le supprimer du niveau et appuyer sur Play, il n'y a pas de bonjour car le niveau la lampe elle-même ne se trouve pas dans le niveau, donc cela ne se déclenchera pas. Si je fais apparaître ou créer ce plan d'une manière ou d'une autre au milieu du niveau, cela recommencera C'est essentiellement ce qui se passe lorsque cet acteur est initialisé et créé Vient ensuite le chevauchement des acteurs de l'événement. Donc, pour comprendre le chevauchement, nous devons d' abord comprendre la collision. Si nous examinons l'objet, choisissons ce magasin. Disons ce magasin. Il y a eu une collision dans ce magasin. Donc, pour le voir facilement , il suffit de cliquer ici et de cliquer sur collision entre joueurs, ce qui signifie une collision qui affecte le personnage du joueur. Il y a également une collision par visibilité. Vous avez peut-être remarqué qu'il existe une légère différence entre une collision visible et une collision entre joueurs. C'est parce que cette herbe au sol n' entre pas en collision avec le joueur. Donc, si nous nous déplaçons, ils ne nous arrêtent pas, ils ne peuvent pas interagir avec eux. Mais avec cette histoire, et honnêtement, du reste des objets de la scène. Cela est dû à la façon dont la collision est configurée pour ces objets, que nous aborderons dans le chapitre suivant. Quoi qu'il en soit, revenons-en à l'essentiel, cet objet entre en collision. Et par défaut, cet objet ne fait rien. Si vous souhaitez ajouter des fonctionnalités à la boutique, nous devons tout d' abord convertir la boutique en plan Donc, pour ce faire, nous cliquons sur ce bouton ici, et je vais juste garder le nom tel quel pour le moment. Il est recommandé de créer nos fichiers de noms selon une convention de dénomination. Habituellement, les plans sont nommés BP. Et maintenant, nous avons ce nouveau plan, et ce plan est une porte Si vous fermez le projet et que vous ne trouvez pas votre plan, vous pouvez toujours accéder à votre navigateur de contenu trouver votre plan Dans ce cas, je n'aime pas qu'il se trouve spécifiquement dans ce dossier. Donc, ce que je vais faire, c'est le déplacer vers le dossier de contenu et le déplacer ici pour accéder à mon contenu. Et encore une fois, ce n'est pas organisé si nous avons plusieurs plans ici, qui prennent tous de la place Je vais donc créer un dossier, que j' appellerai plan Hum, faisons-en des plans, juste pour le moment. Et renommons également cette lampe. Et mettez-les dans notre dossier de plans. Il nous sera donc plus facile de le trouver à l'avenir. OK, maintenant, il n'y a pas de collision avec cette porte. Pour être plus précis, il y a une collision, mais cela bloque simplement le joueur. Nous ne pouvons pas vraiment ouvrir la porte. Si nous voulons ouvrir la porte, idéalement, lorsque nous nous en approchons, la porte devrait simplement s'ouvrir. Nous aurions pu ajouter de l'interactivité, par exemple appuyer sur E pour ouvrir la porte, comme dans la plupart des jeux, mais nous pourrions également en faire une porte automatique Alors, comment s'y prendre ? Donc, tout d'abord, nous allons à Event Craft et nous n'allons pas commencer à jouer à l'événement. Supprimons-les donc. 12. UE5 FC06 02: Avant de commencer à coder ici, peu importe, il est recommandé simplement tester si vos hypothèses sont correctes. Mettons donc une chaîne d'impression disant bonjour. Nous espérons donc que lorsque l'acteur chevauche la porte, nous recevrons le déclencheur Passons donc à la porte et rien ne se passera. On peut se demander pourquoi ? Parce qu'il y a une différence entre collision et superposition. Le chevauchement suppose que les objets se croisent et se chevauchent essentiellement à un moment donné. Mais la collision empêche cela de se produire. Donc, ce que nous faisons, nous revenons au plan et examinons le viewpo Comme cette porte est un objet solide, nous ne pouvons pas simplement la franchir pour superposer notre personnage de joueur. Au fait, je viens de remarquer que la porte est inversée. Alors allons-y simplement. C' est embarrassant, mais excusons-nous Regarde, fais-le pivoter dans le bon sens. Je ne sais pas, peut-être que certaines portes en ont une sur la gauche. Je n'en ai jamais vu un jusqu'à présent. À l'exception des portes doubles. OK, alors retournons à la porte. Et ici, nous devons ajouter une boîte de collision. Nous n'utiliserons pas cette case en cas de collision en particulier. Il s'agit simplement d'une case pour déclencher un événement. Nous allons donc l'adapter à la taille que nous voulons. Où il se déclenchera si le personnage du joueur le touche. Tu peux juste le faire comme ça. Et je ne veux pas que cet événement se déclenche une fois que nous sommes entrés dans la pièce. Je veux qu'il reste ouvert. Alors faisons comme ça, pour ne pas avoir à m' inquiéter de l'autre côté de la porte. Donc, logiquement parlant, le but est que lorsque nous, le personnage du joueur recouvrons cette boîte invisible, la porte s'ouvre Mais avant de pouvoir le faire, supprimons-le et cliquons sur la case que nous avons créée. C'est la boîte que nous avons créée. Et sur le côté droit, sur le panneau des détails, vous verrez que nous avons des événements. Ils sont créés automatiquement par Unreal pour vous faciliter la vie afin que vous puissiez simplement gagner du temps et cliquer sur ce dont vous avez besoin Dans notre cas, nous avons besoin que les composants commencent à se chevaucher. Vous vous demandez peut-être ce que vous entendez par composant et ce composant représente tout ce qui se trouve à l'intérieur de l'acteur. Ce plan lui-même agit en tant qu'acteur. Ce composant de maillage statique est ici le noyau, essentiellement le composant racine de l'acteur. Il ne peut pas être supprimé. Il ne peut pas être retiré. Il peut être modifié, mais idéalement, est centré sur la racine du composant tout est centré sur la racine du composant. Et la partie de la porte elle-même fait partie de la porte, et le cadre de la porte est en fait la racine de la scène. Cette partie interne de la porte n'est donc qu'un composant de maille statique touché. Et il en va de même pour la boîte. Nous pourrions ajouter une quantité infinie de puits, pas vraiment infinis pour des raisons informatiques, mais beaucoup de composants supplémentaires, mais dans ce cas, nous n'en avons pas besoin. Et nous pouvons voir ici, il est écrit : « Au début du chevauchement des composants », et à la toute fin, vous pouvez voir qu'il y a une case. Il s'agit simplement du nom de la collision que nous avons créée. Donc, si nous changeons le nom, par exemple, vous obtiendrez ceci. Je préfère la boîte, elle a plus de sens. Nous le mettons maintenant ici, imprimons la chaîne, et pour tester si cela déclenchera réellement l'événement de chevauchement. Nous revenons donc au niveau, appuyons sur Play, retournons dans la boîte. Oh, nous avons le bonjour en haut à gauche. Comme vous pouvez le constater, cela se déclenche plusieurs fois chaque fois que nous entrons dans le chevauchement. Revenons donc au plan. Maintenant, nous confirmons que cela fonctionne réellement comme nous le souhaitons. Nous pourrions ajouter de nombreuses limites quant à ce qui peut spécifiquement déclencher ouverture de cette porte ou au nombre de fois où elle peut être ouverte, fermée ou voulons-nous l'ouvrir et la fermer automatiquement par la suite ? Nous pouvons réaliser chacun de ces scénarios, mais nous allons rester simples. Nous allons simplement ouvrir la porte lorsque nous nous approcherons de la porte. Alors maintenant, comment diriez-vous que la porte est censée s'ouvrir ici ? Pour que la porte s'ouvre, disons que nous voulons que cette porte s'ouvre, disons qu' il vous suffit de la faire pivoter d'un angle de 90°. Peut-être qu'en réalité, ce serait quelque chose comme 80, mais je préfère 90 degrés Donc, ce que nous pouvons faire, c'est aller ici, détruire ce nœud de porte SM ici D'ailleurs, ce nœud tor est désormais une variable. Agissez ici dans le graphique des événements. Et avant la lune, laissez-moi vous expliquer ce que sont les variables. Les variables sont la partie la plus fondamentale du processus de codage, non seulement dans Unreal, mais aussi dans SimplusPlst sharp et dans tout Les variables sont essentiellement , par exemple, l'emplacement des soudures ou le contenu des informations utilisées pour coder Par exemple, disons que dans la masse, vous seriez comme X plus Y ou X multiplié par Y, Y est égal à Z. C'est la même logique. C'est notre X. C'est notre Y. L' autre sera notre Z. Et lorsque nous codons, nous n' avons pas à chaque fois à référencer ou à mettre toutes les informations associées à l'objet d'une manière ou toutes les informations associées à l' Nous pouvons simplement le mettre sous forme de poignée ou d'étiquette ou comme vous voulez l'accepter plus facilement pour vous. C'est maintenant notre porte. Ici, la porte AEM fait référence à cet AMDR et cette porte ASM est désormais référencée ici dans Maintenant, ce que nous pouvons en faire avant de comprendre ce que nous essayons de faire. Nous voulons faire pivoter cette porte de 90 degrés sur l'axe Z. -90 degrés pour être plus précis sur l' axe Z. Comment pouvons-nous le faire ? Pour cela, nous avons besoin d'un calendrier. Alors chronologie et ajoutez-la ici. Maintenant, vous vous demandez peut-être quel est le calendrier ? Essentiellement, les heures supplémentaires déclenchent des événements similaires, la porte. Nous ne voulons pas que la porte s'ouvre soudainement. Donc, par exemple, prenons cette porte SM et disons, prenons-en note et définissons, désolé, une rotation. Et mettez la rotation relative définie à -90 lors du déclenchement de l'événement Il s'ouvrira instantanément, mais ce n'est pas le look que nous voulons. Vous ne voudriez pas avoir ce genre de déclencheur soudain sur votre porte. Alors maintenant, comment pouvons-nous résoudre ce problème ? Nous voulons donc que cette porte s'ouvre au fil du temps. Donc, disons, 2 secondes. Et pour ce faire, nous utilisons une chronologie. Nous avons donc ce nœud sur lequel est définie rotation relative du composant auquel il est attaché. Dans ce cas, il s'agit d'une porte SM. Cette porte est la cible de cette fonction. Et cette fonction fait pivoter l'objet quelle que soit la valeur que nous saisissons Nous pouvons l'agrandir pour les nœuds supplémentaires, mais ce n'est pas pertinent pour le moment. Voyons donc ce que nous sommes en train de modifier ici. Nous sommes en train de modifier l'axe Z. Nous ne nous intéressons pas vraiment à X et Y. Donc, ce que nous pouvons faire, c'est cliquer avec le bouton droit de la souris et diviser cette épingle de structure. Nous avons donc essentiellement divisé cette valeur vectorielle de rotation en trois valeurs flottantes, que cela reconvertit automatiquement en rotation. La raison pour laquelle nous procédons ainsi est que nous ne modifions qu'une valeur spécifique sur trois, nous n'avons donc pas besoin de saisir trois valeurs. Nous prenons cette épingle d'exécution et la mettons en jeu. Si je l'ai mis en jeu et que je ne joue pas dès le départ , c'est parce que nous voulons que cela ne se produise qu'une seule fois. Cela jouera, cela se terminera et cela restera terminé. Si nous le mettons en jeu dès le début, il commencera à chaque fois que cela se déclenchera, cette chronologie commencera dès le début, mais nous n'en voulons pas, nous allons donc simplement le mettre en jeu. Nous avons maintenant l'emplacement relatif de cet ensemble de portes ASM, et nous devons mettre à jour cet emplacement relatif défini avec une valeur que nous obtiendrons à partir de la chronologie Nous devons donc décider quelle valeur nous allons en tirer pour cette flottation relative Nous double-cliquons sur la chronologie et celle-ci s'ouvrira comme ça et nous cliquons sur cette piste plus. Parce que nous ne modifions qu'une seule valeur. Nous n'avons pas vraiment besoin d'une piste vectorielle contenant trois vals. Vous pouvez simplement utiliser un simple Flow Track. Nous avons donc cette piste, et renommons-la axe Z. Et ici, nous devons ajouter une heure. La durée est donc actuellement de 5 secondes. Nous allons le tester pendant 5 secondes. Et pour ce qui est de la valeur, nous n' avons aucune valeur ici. C'est juste une ligne droite, rien ne se passe. Donc, comme nous le faisons, nous cliquons une fois pour ajouter un nœud. Le début sera donc zéro. Il n'y a pas de rotation. Nous l'avons donc mis à zéro, la valeur sera également nulle. Et ajoutons un deuxième nœud, qui sera à cinq points. Faisons un zoom arrière. Cela va ajouter 5 secondes. Vous pouvez indiquer l'heure manuellement, et la valeur sera de 90 90 car nous allons obtenir un nombre négatif Il s'agit donc d'un graphique très simple de zéro à -90 en 5 secondes. Et compilons-le, revenons à Event graph. Et maintenant, nous avons cet axe Z de la chronologie. C'est une sortie de la valeur que cette fonction va nous donner chaque seconde, pas seulement chaque seconde, comme chaque image que nous devrons saisir ici. À présent, cette valeur Z dont cette fonction de rotation relative définie est responsable est mise à jour par cette chronologie. Nous compilons donc ce coffre-fort au cas où et revenons à notre amour. Maintenant, lorsque nous déclenchons cela, la porte s' ouvre lentement très, très lentement. Et maintenant nous y sommes. Si nous n'avions pas joué, mais que nous jouions depuis le début pour appuyer sur le déclencheur, puis Retourner aux tests », nous nous retrouverions dans une situation étrange où, tout s'ouvre, je déménage je reviens et d'accord, il s'ouvre à nouveau. Je reviens et d'accord, comme vous pouvez le voir, c' est au mieux une farce Dans un premier temps, une porte automatique défectueuse. Nous ne voulons donc pas cela. Nous jouons donc cette pièce. Et vous vous demandez peut-être si je voulais fermer la porte ? Et c'est une question raisonnable. Et si la première fois que je passe par le I, quand je rentre à l'intérieur, je veux qu'il s'ouvre, et que quand je sors, je veux qu'il se ferme. Cela peut être fait. La façon dont cela peut être fait est assez simple. Nous pourrions donc ajouter des variables supplémentaires indiquant s'il est vrai ou non que nous sommes à l'intérieur ou à l'extérieur , etc., au cas où il y plusieurs sorties du bâtiment Dans notre cas, nous n'avons qu'une seule entrée, nous allons donc rester simples. Si je quitte l'entrée à partir de ce point et que je dois également sortir de ce point, n'est-ce pas ? Et nous allons faire en sorte que la porte reste ouverte. Peut-être que nous voulons juste qu'il y ait de l'air. Ce que nous pouvons faire, c'est créer ici un nœud appelé flip flop. Des tongs. Ce nœud fait la première fois que cet événement est déclenché, sera joué dès le début. Et la deuxième fois que cet événement est déclenché, il s'inversera à la fin. Maintenant, testons-le et jetons un coup d'œil. Comme vous pouvez le constater, cela se déclenche à chaque fois. L'acteur se chevauche, et ce n'est pas ce que nous voulons de notre porte Alors, que pouvons-nous faire pour y remédier ? Comme toujours, il existe plusieurs façons de le faire. Ce que nous pouvons faire, c'est ajouter une variable très simple qui indique si la porte est ouverte en ce moment ou si l'animation s'est arrêtée ou non. Donc, ce que nous pouvons faire, c'est créer une variable qui dit que je peux ouvrir des portes fermées. La valeur du lingot Les valeurs des lingots sont donc des valeurs qui disent simplement oui ou non Dans ce cas, pouvons-nous ouvrir les valeurs close et Bulim ? Nous voulons que ce soit « oui » lorsque l'animation aura cessé de jouer. Alors, comment mettons-nous cela en œuvre ? Vous pouvez appuyer sur P et cliquer pour créer un nœud de branche. Donc, ce que fait la branche, c'est que vous le mettez en branche. Et ajoutez cette valeur ici. Nous voulons que la valeur par défaut soit vraie car la porte est généralement fermée. Au tout début, nous voulons que cela se déclenche au moins une fois. Et si c'est vrai, nous voulons que cela fonctionne. Et s'il joue, nous voulons qu'il soit faux, afin qu'il ne puisse pas se déclencher une seconde fois. Donc, ce que nous faisons avant de passer ici, nous le créons, nous le faisons glisser, nous définissons une porte ouverte et fermée ici et nous mettons la valeur de I too fs. Créez une copie de cette copie, la deuxième, et faites de même. Nous voulons que cela soit faux dans les deux cas, car de cette façon, cela ne peut pas se déclencher une deuxième fois, mais nous voulons qu'il se ferme une fois qu'il est déjà ouvert. Donc, ce que nous faisons, nous le faisons à nouveau. Une fois terminé, cela lui donnera la valeur true, et ce sera la fin de cette ligne. Maintenant, testons-le de cette façon. Et allons-y. R. Comme vous pouvez le constater, cela ne se déclenche pas à nouveau. Et quand je le déclenche à nouveau, il s'est fermé. Nous pouvons donc le déclencher . Rentre à l'intérieur. Et quand nous sortirons, nous le déclencherons à nouveau, et il se refermera. De toute évidence, ce n'est pas la solution idéale pour cela. Vous ne voudriez pas que votre porte soit ouverte et, d'accord, j'y retournerai et je reviendrai, et maintenant la porte se ferme devant vous. Il existe des moyens plus raisonnables de le faire. Nous pouvons ajouter des déclencheurs des deux côtés de la porte, par exemple, vous pouvez dupliquer et en ajouter un autre ici. Celui-ci s'ouvre lorsque nous entrons, déclenche et nous fermons la porte fois à l'intérieur ou vice versa, ou nous pouvons les inverser en utilisant la combinaison de plans ou de nœuds Mais c'est suffisant pour ce que nous essayons de réaliser ici. Il s'agit d'une méthode très basique et non optimisée pour ouvrir une porte. Et c'est qu'il y a trop de détails cette fonction simple qui consiste uniquement à ouvrir le magasin. Nous aurions pu le faire d'une manière beaucoup plus simple, mais il y aurait moins de choses à expliquer Nous avons donc dû nous en tenir à cette solution étrange plutôt compliquée. Voilà comment nous avons ouvert la porte et sommes entrés à l'intérieur. Comme vous pouvez le constater, c'est grâce aux plans. Les plans nous permettent créer des fonctions comme nous le souhaitons Je pourrais le faire, c'est juste une simple porte avec une animation d'ouverture et de fermeture. Nous pourrions le faire de plusieurs manières. Nous pouvons faire en sorte que cette porte reconnaisse ce personnage et ne s'ouvre qu'à ce personnage. Vous pourriez avoir, par exemple, MPC ou des personnages non jouables dans le jeu, et ces personnages peuvent ou non déclencher le magasin, selon leur niveau d'accès Vous voulez peut-être qu'un personnage en particulier passe par cette boutique, mais d'autres le savent. Peut-être avez-vous besoin d'un article spécifique pour ce faire. Tout dépend de la façon dont vous voulez le faire et de votre créativité. 13. UE5 FC06 03: Eh bien, cela s'appelle généralement simplement exposer la variable à l' éditeur, essentiellement. Ce n'est pas vraiment le bon nom. Il est modifiable par instance. Vous vous demandez peut-être à quoi sert Eposon spawn ? Donc, si nous avons un acteur qui fait apparaître d'autres acteurs dans le niveau Ainsi, par exemple, dans ce cas, créons l'acteur à partir de la classe et sélectionnons l' acteur d'origine comme cette même lampe Maintenant, nous avons cette lampe que nous pouvons faire apparaître, non ? Et si on le règle. mes excuses. Il suffit de mettre une valeur ici. Et dans ce cas, je vais simplement sauter le processus et exposer lors du spawn Si je compile, mais cette exposition sur span n'est pas disponible. Disons que je le sélectionne simplement. Cela n'apparaîtra pas ici, même si je le compile. Mais si je mets le spawn exposé, j'ai soudainement cette fonction Cela signifie que je peux créer un acteur qui génère un acteur spécifique avec les paramètres que je souhaite En quoi est-ce utile, me demanderez-vous ? Supposons que vous ayez un jeu dans lequel vous tirez des projectiles, du feu, de la glace, un faisceau laser électrique, je ne sais pas La couleur est la seule différence entre vos projectiles Et cette couleur est définie par acteur lors de l'apparition, comme c'est le cas ici Lorsqu'ils existent, ils définissent leur couleur de lumière, etc. Mais si vous souhaitez définir la couleur de lumière ce projectile lors de son apparition, en particulier, en fonction des paramètres, de certains paramètres que vous pouvez avoir dans votre jeu, vous pouvez utiliser cette exposition au moment de l'apparition pour avoir cette option à votre disposition lorsque vous l'exposez pour avoir cette option à votre disposition lorsque vous Et évidemment, à moins que vous n'en ayez besoin, vous n'en avez pas besoin. Bien, revenons maintenant à ce que nous essayons de faire ici dans notre niveau. en revenir aux plans que nous avons, et si vous ne vouliez pas les définir individuellement, mais avoir à chaque fois une couleur aléatoire ? Vous voudrez peut-être simplement le rechercher et rechercher couleur aléatoire, et vous l'obtiendrez. Couleur linéaire définie de manière aléatoire. Ce que vous devez faire, c'est mettre votre couleur de lumière ici. Et ça revient ici mets ça ici et appuie sur Play, et ils sont aléatoires à chaque fois Pour comprendre ce que fait ce nœud, chaque fois qu'il est exécuté, il définit une valeur aléatoire à cette variable, et cette variable est définie comme une couleur claire lorsqu'un événement commence à jouer. Vous vous demandez peut-être pourquoi le jeu de couleurs n'est pas le même pour tous. Nous n'avons modifié qu'une seule option, un seul plan, et ils figurent tous dans le même plan Alors pourquoi la valeur est-elle différente pour chacun d'entre eux ? En effet, ce processus est appelé pour chaque acteur individuellement. Donc, si vous jouez, jouez et accédez au Blueprint Vous verrez ce nœud. Répétons ce processus. Cette ligne rouge est une fonction qui vient d'être déclenchée. Et si vous regardez en haut de la page, nous avons différents laboratoires, et vous pouvez sélectionner n'importe lequel d'entre eux. Sélectionnons le second et cliquons sur la couleur de la lumière, etc., tout est en place, et vous remarquerez peut-être une différence Et tu peux même consulter les autres. Mais si vous faites attention, lorsque je survole la couleur de la lumière, les valeurs ici sont différentes pour chacune Et cela s'explique par le fait que même s'ils suivent tous le même plan, ils individualisent leurs acteurs individuels dans la scène Ainsi, lorsqu'un événement est organisé, l'événement est exécuté séparément pour chacun d'entre eux. Donc, si vous avez un objet avec, disons, cet événement très simple à deux nœuds, et que vous avez 100 nœuds du même objet, vous devez garder à l'esprit que lors du début de l'événement, vous n'exécutez pas deux nœuds de fonction de complexité, mais 200. Veillez donc à ne pas trop encombrer votre scène. Il existe évidemment des moyens d'optimiser cela . Vous pouvez séquencer. Vous pouvez combiner tous les acteurs dans un groupe d'acteurs. Par exemple, au lieu d'avoir 100 plans d' éclairage individuels, vous pourriez peut-être avoir un système d'éclairage pour ensemble de votre ville et faire toutes les lumières partagent le même plan Donc, en réalité, cela devient un plan unique qui est appliqué à toutes les lumières de votre ville Mais encore une fois, qu'il soit optimisé ou non, plus facile à utiliser ou non, nécessité dépend de votre jeu, votre créativité et surtout, votre ingéniosité en matière d'optimisation Nous avons maintenant cette fonction qui n'est pas mal. Chaque fois que nous jetons un coup d'œil à cette pièce, elle prend une couleur différente, et c'est peut-être assez classe. C'est peut-être tout ce que tu veux. Je veux qu'il soit un peu plus lumineux, donc ça fait 240. Voyons si cela a changé quelque chose. Juste un petit peu. Modifions peu le rayon et l' angle de l'atentan, peut-être 16 Oui, c'est plutôt à mon goût. Mais je veux que cela ne devienne pas obsolète. Il en sera donc exactement de même pour le reste du jeu jusqu'à ce que je l'arrête et que je le recommence. C'était un jeu, ce serait comme entrer dans une pièce, et la pièce a toutes ces couleurs différentes, et chaque fois que vous entrez dans cette pièce et que cette pièce est chargée dans le jeu ou que le niveau s'ouvre, vous obtenez des couleurs différentes. C'est peut-être un peu ennuyeux. Faisons donc en sorte qu'ils changent constamment de couleur. Si nous nous souvenons de Event Tick, si vous ajoutez tout ce que nous avons ici dans l'événement ik, au lieu que les événements commencent à se jouer, nous obtiendrons quelque chose de très différent. Mais je crois que nous pouvons tous convenir que c'est trop. Ça me fait mal aux yeux. Ce n'est donc pas l'idéal. Oui, ça change constamment, mais je ne veux pas que ça change tant que ça. Et cela ne se fait qu'une seule fois. Nous avons besoin d'un juste milieu entre les heures supplémentaires, la fonction de réaménagement et la fonction de réaménagement et les heures uniques au début Il existe de nombreuses façons de le faire. Vous pouvez ajouter des chronologies, appeler des événements, etc. Mais le moyen le plus simple dans ce cas particulier est d'ajouter une note de retard. Ce que fait le délai, c'est attendre un certain temps, et ce temps est référencé ici, durée par durée Et une fois ce délai écoulé, il s'exécute. Disons, mettons-le en 1 seconde. Maintenant, jetons un coup d'œil à cela et réfléchissons à ce que cela fait. Pendant le début du jeu, est-à-dire lorsque cet acteur est dans la scène et jeu commence ou lorsqu'il est créé ou apparaît, cela se déclenche Nous avons défini une couleur aléatoire pour notre variable de couleur de lumière, qui est définie comme couleur de lumière pour notre composant de projecteur. Et il y a un retard. Ici. Et 1 seconde s'écoule et ce délai s'exécute, mais il n'y a rien ici Nous voulons répéter ce processus. Nous voulons sélectionner une nouvelle couleur aléatoire et sélectionner la définir comme nouvelle lumière. Donc, ce que nous pouvons faire, c'est prendre cette épingle d'exécution et la mettre ici. Mais tout à coup, c'est très inconfortable à regarder. Ce que nous pouvons faire ici, c'est ajouter un nœud réécrit. Ajoutons ce nœud ici et suivons-le jusqu'ici. Suivez ce nœud d'ici à ici. Et organisez ça un peu mieux. Maintenant, nous avons un nœud qui s'exécute ici avec un délai d'une seconde Et voyons ce qui va se passer. Revenons au niveau et appuyons sur Play. C'est beaucoup plus agréable pour les yeux. Parlons maintenant un peu de l'organisation du plan directeur. Si vous n'êtes pas le seul membre de l'équipe ou si vous souhaitez simplement rester organisé, ce qui est une bonne pratique en général pour toujours organiser votre code, il y a des choses que vous pouvez faire. L'un d'eux, comme je l'ai déjà montré, est un nœud réécrit pour permettre voir facilement où vont les épingles d'exécution Dans ce cas, l' épingle d'exécution est passée du délai à un nœud de teinte aléatoire défini par des couleurs linéaires. Mais cela n' explique pas vraiment ce que cela fait. Et pour une personne qui le regarde pour la première fois, elle devra lire le code pour le comprendre. Et si vous avez un code très compliqué contenant des centaines de nœuds, ce qui n'est pas rare, la personne qui examinera le code aura du mal à le lire. Pour leur faciliter la tâche, vous pouvez sélectionner l'ensemble de votre code et cliquer sur le bouton C. C'est courant. Pour les personnes qui connaissent le codage en plus plus ou en C sharp, ou dans n'importe quel langage de programmation, cela revient à faire exactement la même chose. Cela n'entraîne aucun coût supplémentaire pour le projet empaqueté en vue du déploiement. Ici, dans la section des commentaires. Nous n'avons qu'à le nommer. Disons Lumière , mais changez de fonction. Je ne sais pas ce qui se passe avec mon clavier. Et maintenant, nous l'avons et nous pouvons également changer la couleur. Nous voulons le rendre différent ou simplement lui donner un code couleur ou des fonctions. Je préfère le vert, et nous ne voulons pas y ajouter ce début de jeu d'événements , car le début du jeu d' événements fonctionnera quel que soit le code qu'il contient. Et maintenant, comme tout cela se trouve dans cette section de commande, vous pouvez simplement les déplacer tous ensemble. Ce qui est utile lorsque vous aurez beaucoup de notes dans votre journal. Il y a encore une chose que je dois mentionner à ce sujet avant de passer à autre chose. Cette note de retard ici, vous devez faire attention. Il y a une icône ici. Si vous le lisez, il y a un texte à la fin. Les notes latentes ne peuvent être placées que dans les graphiques d'événements. Vous vous demandez peut-être pourquoi c'est ici. Pour ces notes familières avec le codage, je vais devoir expliquer ce qu'est une macro. Une macro et des fonctions sont à peu près les mêmes que celles que nous avons ici, mais la différence est qu'elles se produisent instantanément et ne peuvent pas être sensibles au temps. Je veux dire par là, disons que nous avons une fonction, et je ne veux pas dire cela. Il s'agit de nœuds dans une séquence. Une fonction, si nous devions en créer une ici, disons que nous la créons, que nous cliquons sur l'icône de ce plan, que nous créons une fonction et que nous appelons cette fonction, appelons-la simplement test pendant que nous testons. Nous avons maintenant une fonction appelée test. Une fonction peut être appelée en tant qu'événement ou nœud pour être plus précis dans votre plan Et je veux que tout cela se passe dans la fonction. Je pourrais simplement le copier et le faire glisser dans le test. Mais il est beaucoup plus facile de le supprimer cliquer sur chacun d'eux , de le bouton droit de la souris et de réduire pour fonctionner. Vous remarquerez que cela échouera. La raison pour laquelle cela a échoué est due au nœud de retard. Nous rejetons cela. Faisons-le encore une fois. Cette fois sans délai, le nœud est sélectionné, réduisez la fonction. Nous avons maintenant une nouvelle fonction, allons simplement copier le nom. Et renommez cette nouvelle fonction en fonction de changement de lumière. Ensuite, commencez à jouer, cela semble plus organisé, et c'est également un très bon moyen de le faire si vous voulez réutiliser cette fonction spécifiquement à plusieurs endroits. Imaginez que vous avez une lumière et que vous avez plusieurs déclencheurs possibles pour changer de couleur. Habituellement, ce que vous devez faire, vous devez copier-coller. Vous pouvez vraiment supprimer ce nœud réécrit. Vous devez copier-coller cette fonction. À chacun de ces déclencheurs. Donc, pour chaque événement qui a la possibilité de changer la couleur de la lumière en une couleur aléatoire, nous devrons les copier-coller et les placer autour du graphique des événements, ce qui le rendra très rapidement très désorganisé Mais ce qui est le plus important, c'est une optimisation. Une fonction optimisée est une fonction lente et une fonction lente rend le jeu lent, et personne n'aime un jeu lent. Nous avons maintenant cette fonction de changement de lumière, et nous pouvons tromper exactement le même code par plusieurs moyens. Peut-être avez-vous un jeu où, disons, lorsque vous touchez la lumière, elle prend une couleur aléatoire. Lorsque vous effectuez une certaine action, comme sauter, elle prend une couleur différente. Ou peut-être que vous le filmez. Supposons que vous ayez les trois possibilités mentionnées dans le même jeu et que vous souhaitiez les faire avec le même acteur. Allez-vous créer trois événements distincts et copier-coller le même spaghetti de code partout ? Non Ce que vous allez utiliser, c'est cette fonction de changement de lumière. Vous vous demandez peut-être, mais d'accord, si j'ai plusieurs façons de déclencher cette fonction, je voudrais en avoir plus de contrôle. Par exemple, dans le scénario mentionné ci-dessous, si vous pouvez photographier sous forme de lumière et que vous souhaitez que la lumière prenne, disons, une et que vous souhaitez que la lumière prenne, disons, couleur rouge comme si elle était endommagée, vous ne pouvez pas le faire avec cette fonction car nous la définissons de manière aléatoire à chaque fois. n'y aurait donc pas vraiment de différence entre allumer cette lampe, disons, qui déclenche cette fonction, ou disons simplement que se promener, ou peut-être qu'il y a juste un autre déclencheur, n'a pas d'importance. Vous aurez besoin de plus de contrôle à ce sujet. Vous devriez définir cette couleur de lumière en fonction de la façon dont l'événement est déclenché sans copier toutes ces fonctions partout. C'est là que les entrées et sorties des fonctions entrent en jeu. Donc, comme vous pouvez le voir ici, nous avons une fonction de changement de lumière, et il n'y a aucune entrée. La cible est elle-même dans ce cas, évidemment, mais cela peut être autre chose si elle est lancée, casting sera expliqué dans la structure suivante. Nous pouvons cliquer sur la fonction de changement de lumière et ajouter une entrée. Nous pouvons également ajouter une sortie, mais dans ce cas, nous allons nous concentrer sur l'entrée. Ajoutons une entrée. L'entrée, dans ce cas, est une variable. Maintenant, cette couleur de lumière est une variable appelée couleur linéaire de la lumière. Nous voulons donc qu' il en soit exactement de même. Nous pouvons donc simplement taper sa couleur linéaire. Et appelons-le simplement couleur. Et maintenant, tout à coup, nous avons une fonction de changement de lumière avec un nœud de couleur que nous pouvons placer dans couleur de lumière définie au lieu d' utiliser une variable de couleur de lumière. Pour l'instant, je vais le détacher. Il se peut que nous le réutilisions ultérieurement. Et nous pouvons compiler. Maintenant, si vous revenez à votre graphique d'événements, vous remarquerez, attendez, nous avons une couleur. Nous avons maintenant un moyen de dicter de quelle couleur il s' agira grâce à une fonction Alors allons-y. Supposons que pendant les événements, le jeu commence lorsque la fonction est appelée, elle devient rouge. Enregistrez, compilez, revenez au niveau, appuyez sur Play. OK, ça marche. Mais nous avions l'habitude d'avoir des couleurs aléatoires. C'est donc ce qui nous a permis de le faire. Donc, ce que nous pouvons faire, c'est le couper à partir d' ici, le compiler, le récupérer. Et c'est arrivé ici pour le moment. 14. Fonctions BP: Maintenant, nous l'avons en tant que fonction distincte. C'est donc la fonction let's do collapsed, appelez-la couleur aléatoire. Et nous avons maintenant cette couleur aléatoire. Et pour cette fonction de couleur aléatoire, nous voulons avoir des sorties plutôt que des entrées. Nous avons maintenant ce nœud de retour de sortie. Et lorsque nous le faisons glisser ici et que nous colorons en clair cette compilation, sauvegardez juste au cas où. Et maintenant, nous avons cette fonction avec une sortie. Pour tester, nous pouvons facilement le faire. Assurons-nous que tout est attaché. Faisons en sorte. OK. Revenons au niveau. Oui Cela fonctionne comme il se doit. Mais vous pensez peut-être qu'il n'y avait aucune raison réelle de les séparer. Ils n'avaient qu'une seule fonction. Il était plus optimisé pour être une fonction au lieu de deux fonctions. Mais c'est là qu'intervient l'utilité. Ce que j'essaie de faire maintenant, est que lorsque nous ouvrirons la porte, toutes les couleurs seront rouges. Lorsque la porte se ferme, toutes les couleurs seront vertes. Et lorsque vous êtes juste à l'intérieur de la pièce ou même à l'extérieur et n' interagissez pas avec la porte, ils changeront de couleur au hasard au fil du temps, disons dans un délai de cinq secondes Pour que cela se produise, réorganisons notre code. Nous avons une fonction de changement de lumière, et cette fonction de changement n'a besoin que d'une entrée de couleur. Nous avons commencé à jouer à l'événement, et ce que nous pouvons faire, c' est le mettre ici et ajouter un délai de cinq secondes ici. Peut-être même pas de retard de cinq secondes, allons-y. Oui, nous y travaillerons plus tard. Ce que nous pouvons faire ici, c'est ajouter un nouvel événement, et il doit s'agir d'un événement personnalisé. Et nous allons appeler cet événement Open Door. Porte. Créons un autre événement, et encore une fois, événement personnalisé et appelons-le à huis clos. Assurons-nous que tout va bien. Ici, nous avons cette fonction qui prend cette couleur aléatoire. Maintenant, avons-nous besoin de cette fonction ici ? C'est la question. Pas vraiment. Vous pouvez supprimer ceci et cela. Et détachons-les les uns des autres et chantons à ce sujet de façon logique Le jeu commence, nous obtenons une couleur aléatoire. Nous obtenons donc cette couleur aléatoire. Nous n'allons pas ajouter de randomisation pour le moment. La porte s'ouvre et nous obtenons une couleur verte. OK ? Nous avons donc à nouveau besoin de cette fonction de légère modification. Mais cette fois, nous prédéfinissons pour dire porte ouverte, de couleur rouge comme dans un panneau d'avertissement indiquant que quelqu'un entre dans la pièce Et pour les portes fermées, disons que c'est juste vert. Oui, je suis d'accord. Supposons que nous ne puissions pas changer la couleur ou, pour être plus précis, rendre aléatoire la couleur des lumières lorsqu'elles s'ouvrent ou se ferment Ajoutons donc une variable. La porte interagit. Et ajoutez-le sous forme de taureau. Et faisons une succursale. Jusqu'à la fin de cette couleur. Si vous interagissez avec la porte en ce moment, la valeur de pitch par défaut doit être fausse Nous randomisons notre couleur et la changeons en couleurs aléatoires avec retard Retard F. Et disons que ce délai 30 secondes devrait suffire. Ou, oui, ça devrait aller. Si on n'interagit pas avec la porte , elle ne fait rien Pour porte ouverte et porte fermée. Lorsque ces événements sont déclenchés, nous voulons que cette porte devienne réalité Donc, ce que nous faisons, nous obtenons deux ensembles d'interactions fixes. Nous les définissons comme vraies, afin qu'elles ne soient pas aléatoires au milieu, et nous poursuivons notre processus Et si nous vérifiions le plan de notre porte, nous avions un délai de 5 secondes. Donc, pour que la porte finisse de s' ouvrir ou de se fermer, cela prend 5 secondes. Nous pouvons donc ajouter un délai de 5 secondes. Une seconde fois ou vous pouvez simplement les combiner car ces deux opérations ne peuvent pas se produire même temps, comme nous l'avons indiqué dans le plan Tor avec ce plop, car il est impossible d'interagir avec celui-ci tant qu' une fonction n'a pas Maintenant, revenons en arrière. Et après 5 secondes de retard, nous déclenchons à nouveau le set. Et une fois que nous l'avons réglé sur Falls et que 5 secondes se sont écoulées, nous voulons récupérer des couleurs aléatoires. Réutilisons-le donc et faisons-le glisser vers une couleur aléatoire. Et pour le rendre beau, peut-être même sur un nœud de pourriture rouge pour rendre les courbes un peu plus agréables les yeux, juste pour faciliter la tâche. OK. Maintenant, est-ce que ce travail sera la principale question ? La réponse est non. Pourquoi ? Oui, les lumières changent de couleur, mais elles n'ont pas interagi avec la porte. La raison pour laquelle cela s'est produit, que nous n'avons pas vraiment déclenché la porte. Nous l'avons appelé porte ouverte, porte fermée, mais ce n'est qu'un nom. Nous l'avons simplement nommé ainsi. Nous n'avons pas vraiment ajouté quoi que ce soit pour déclencher cela. Maintenant, la question est de savoir comment déclencher cette fonction ? C'est là que, pour la simplicité du cours, nous utiliserons tout simplement pas d' interfaces et utiliserons des moulages. Et je vais vous expliquer ce qu'ils sont dans un instant. Mais avant cela, prenons ceci et cela Lorsque nous avons ce plan ici, nous avons sur le A, qui joue depuis le début, et sur le B, l'inverse depuis la fin Ainsi, lorsque B se produit, nous fermons la porte et A se produit, nous ouvrons la porte. Nous voulons avoir une couleur rouge à l' ouverture et une couleur verte à la fermeture. Pour ce faire, nous devons ajouter une épingle d'exécution ici qui nous permet de le faire, mais elle est déjà acquise. La façon dont nous le faisons en séquençant, le bouton droit de la souris sur une séquence et en cliquant dessus Et ce que nous faisons, c'est le mettre ici et nous avons inscrit notre pièce en premier dès le départ. Nous voulons que cela se produise d'abord, et nous recommençons, et dans un ordre et zéro en sens inverse depuis la fin de notre plan Cela se transforme en code spaghetti, mais nous le faisons simplement le but d' apprendre, donc c'est bon Idéalement, vous optimiseriez tout ce code, mais c'est bon pour un prototypage rapide Maintenant, cela est en place. La question est de savoir ce que nous faisons ici. La séquence nous permet de faire certaines exécutions une par une. Il n'attend pas vraiment que l' un ait fini de démarrer l'autre. Il s'agit plutôt d'un déclencheur. Je mets ces déclencheurs à zéro d'abord, 1 seconde. Évidemment, nous voulons ouvrir la porte, alors nous avons mis zéro à sept parties dès le départ. Et dans l'une d'elles, nous devons appeler ces deux fonctions d'une manière ou d'une autre. Nous devons appeler cette fonction de porte ouverte. De la manière dont nous pouvons le faire, à notre niveau particulier, ce magasin et cette lampe existeront toujours en même temps. Ils se trouvent donc déjà dans la mémoire de votre PC. Nous pouvons donc utiliser le casting. Permettez-moi d'abord de définir le plan des deux lampes en fonte. Classe. La raison pour laquelle nous n' allons pas utiliser de lampe et de classe, c'est parce que nous voulons l'utiliser sur toutes les lampes, pas sur une lampe en particulier. Nous passons donc à la classe Blueprint, et nous avons évidemment besoin d'un plan de lampe. C'est le cas. Ce casting, même si vous ne faites rien à l'autre bout, ou même si vous le laissez comme ça , sans épingle d'exécution, chargera toujours la lampe dans la mémoire. Vous devez donc être prudent lorsque vous l'utilisez, non seulement en castant pour une classe, mais également pour des instances individuelles du même acteur. Au fur et à mesure qu'il le charge dans la mémoire, chaque fois que le magasin existe dans la scène, la lampe est dans la mémoire et prend de la place. Et même s'il n'y a aucune lampe dans la scène, si vous avez cette porte à plan spécifique, qui a une empreinte sur la lampe qui restera dans la mémoire Donc, si vous cliquez avec le bouton droit de la souris et que vous allez sur la carte des tailles, cela vous montrera combien d'espace cela prend de la place dans votre jeu. Ce n'est pas grand-chose, vous pensez peut-être. C'est juste 3 mégaoctets. Encore une fois, il s'agit d' un plan très simple, mais cela dépend de la taille du disque Essentiellement, combien d'espace cela prend sur votre disque dur. Et si vous voulez vérifier l'espace que cela prend dans votre RAM, votre mémoire, cliquez ici, taille de la mémoire. Et comme vous pouvez le constater, cela prend 11 mégaoctets de votre mémoire. Si vous n'avez qu' un seul objet de ce type, ce n'est pas grand-chose, mais si vous avez des centaines d'objets qui sont tous convertis en objets différents, et dont la taille est généralement supérieure à et dont la taille est généralement 11 mégaoctets, tout à coup, votre RAM est remplie de fichiers et de données qu'elle n' utilisera même pas car ces classes ne figurent pas toujours dans Vous devez donc vous assurer que si vous voulez choisir quelque chose, il y a toujours quelque chose dans le niveau, quel que soit l'acteur qui fait le casting. Par exemple, le casting vers le personnage du joueur est généralement toujours acceptable, car dans la plupart des jeux, votre personnage est toujours chargé dans le niveau tant que personnage que vous incarnez. Cela peut poser problème si vous avez plusieurs personnages et que chacun fonctionne différemment et possède son propre plan. Mais si vous n'avez qu' un seul personnage, un personnage identique pour tous les niveaux, vous pouvez choisir votre personnage en toute sécurité. Mais comme je l'ai dit, dans ce cas, cette lampe, même si vous la retirez de la scène, la porte peut rester mais la lampe sera toujours chargée dans la mémoire. Vous devez donc vous assurer de garder cela à l'esprit. OK, maintenant nous le projetons sur la lampe, et à partir de la lampe, nous voulons une fonction spécifique. Mais vous remarquerez peut-être que nous ne pouvons pas vraiment le faire directement car cette classe de plans tous les plans de la lampe Il ne s'agit pas d'une instance ou d'une instance spécifique. Il faudrait donc plutôt faire appel à tous les acteurs de classe. qui fait exactement la même chose, mais nous obtiendrons un tableau à la place. Nous faisons donc exactement la même chose, ce qui, encore une fois, est très simple. Cela va faire référence à chacun d' entre eux, à tous les acteurs. Il s'agit simplement de ne pas obtenir directement la référence à la classe elle-même. Passons donc à la lampe et nous avons maintenant toutes les lampes ici, mais maintenant elles sont assemblées sous forme de matrice. Alors, qu'est-ce qu'un tableau ? Un tableau est un ensemble de plusieurs variables réunies en un seul endroit. Par exemple, un tableau de maillages peut contenir une quantité infinie de maillages, et il s'agit d' un tableau commençant à zéro, par exemple en indexant de zéro, un, deux, trois, quatre, etc., à l'infini. Et les tableaux sont très importants pour comprendre si vous voulez créer un jeu complexe ou même un jeu simple Maintenant, dans ce cas, ce tableau qui a été généré par cette fonction permet d'accéder à tous les actifs, à tous les plans de cette classe Donc, toutes les références de cette classe se trouvent dans le niveau. Dans notre niveau, nous avons six lampes, ce qui nous permettra d'obtenir six acteurs dans le tableau. Ce que nous allons faire, nous allons l'ajouter pour chaque boucle, ce qui signifie que pour chaque élément du tableau, nous allons le transformer en plan de lampe Maintenant, vous remarquerez peut-être que cela a une couleur différente car il ne s'agit plus d'une classe spécifique. Il s'agit d'un objet spécifique du tableau. Ainsi, par exemple, dans la première boucle, nous allons placer le lampadaire à l'indice zéro. Lampe à indice zéro, cela donnera une note, mais la raison pour laquelle cela nous donne cette note est que nous cette note est que sommes en train de mouler sur quelque chose qui est déjà coulé. Mais vous remarquerez peut-être qu'il n' y a pas d'autres erreurs. Vous pourriez le dire directement comme ça, et gardez à l'esprit qu'il s' agit toujours d'un casting. Mais ce n'est qu'une façon d'utiliser le casting sur un acteur individuel. Si vous n'avez qu'une seule lampe dans le plan de niveau, volume, vous pouvez simplement utiliser la diffusion directe. Il n'y a aucun problème. Mais si vous en avez plusieurs, vous pouvez utiliser un élément de tableau pour voir s'il s'agit du même objet. Par exemple, si vous avez, disons, un ensemble de plusieurs acteurs, mais que tous les acteurs ne sont pas identiques. Par exemple, nous avons un ensemble qui contient cinq portes et cinq lampes. Si vous le faites simplement glisser ici comme ça, il se peut qu'il ne trouve pas l'acteur requis. Mais si nous le faisons comme ça et comme ça, cela ne se déclenchera que si le casting est réussi. Et si le casting réussit, je veux dire, si le casting est une lampe et non une porte, ça marchera. Et s'il s'agit d'autre chose dans le tableau, cela échouera. Mais n'oubliez pas que vous pouvez créer vos propres variables sous forme de tableau. Vous pouvez cliquer sur la variable. Sélectionnons une variable de type float. Et ici, en haut à droite, vous pouvez cliquer dessus et le convertir en tableau. Et vous pouvez utiliser après avoir compilé ce tableau, vous pouvez ajouter autant d'instances de ce tableau que vous le souhaitez. Nous voulons donc, disons, un tableau de valeurs, cinq, 12, 14, huit, deux et un. Et si vous ajoutez ce tableau au bas et que vous obtenez un nouveau R, par exemple, comme celui-ci, vous pouvez utiliser pour chaque fonction p pour chaque fonction de boucle valeur suivante de l'ordre de zéro, un, deux, trois, quatre, cinq, pour toute autre fin dont vous avez besoin, gardez à l'esprit que les tableaux, oui, vous pouvez obtenir un tableau d'éléments, obtenant essentiellement plusieurs éléments par une sorte de fonctionnent comme une information et une utilisation pour chaque boucle qu'ils contiennent, ou vous pouvez créer vos propres tableaux avec des valeurs ou des références d' acteurs spécifiques , et vous pouvez les utiliser. Quoi qu'il en soit, dans ce cas, nous allons utiliser cette note parce que je veux confirmer que la matrice que je reçois est en fait le plan de chute de lampe, même si cela n'est pas nécessaire dans ce cas, car nous savons tous que nous obtenons spécifiquement éléments spécifiques de la matrice et qu'ils seront tous des laboratoires Et nous allons compiler maintenant, à quoi ça sert ? Lorsque nous ouvrons la porte, tous les acteurs des lampes, et toutes les lampes sont toutes placées une par une dans la même instance d' image instantanée, passent par cette boucle, et cette boucle appelle la fonction appelée «   not all function », mon événement de porte ouverte dans le plan Revenons donc au lampadaire et appuyons sur Play. OK, maintenant nous voyons que tout va bien, que tout est aléatoire. Oh, pendant que la porte s' ouvre, elle est rouge. Maintenant, attendons. Une fois la porte fermée, elle recommence Et disons attendre 5 secondes, et ça marche. Et quand nous sortons, cela ne fonctionne pas encore car nous n'avons rien ajouté à cela. Alors voyons voir et recommençons. Nous pouvons simplement le copier pour gagner du temps. Et nous pouvons appeler le même événement et, à la toute fin, modifier pour fermer la porte. Je crois qu'il l'a nommé. Et si vous voyez que le contexte est sensible , c'est un peu un problème. Lorsque vous l'avez activé, alors que vous recherchez un nom de fonction ou un nom d'événement spécifique à un autre plan, il se peut qu'il n'apparaisse pas Nous pouvons donc simplement le désactiver et vous verrez le plan de classe Pvolve, et nous l'utiliserons et nous pouvons le faire Vous pouvez également le faire glisser directement ici et fermer la porte. Encore une fois, comme vous pouvez le constater, il ne s'affichera pas. Cela fonctionne donc également maintenant, et tout est comme il se doit. Et nous avons ceci. La porte s' ouvre. Lorsque nous y entrons. Maintenant, encore une fois, ce sont des couleurs aléatoires. Lorsque nous le quittons, il est vert. Maintenant, ajoutons simplement une autre petite modification à notre porte afin que nous puissions avoir une porte plus fonctionnelle. Nous avons cela au début du chevauchement des composants. Et la première fois que nous y entrons et que sortons, cette tongs Nous avions deux sorties ou si nous voulions fermer la porte après être entrés dans la pièce, nous devions le faire différemment car le déclencheur se trouve à l'extérieur Et même si ce n'était pas le cas, la porte qui se referme sur notre visage n' aurait pas vraiment de sens. Lorsque nous essayons de faire quelque chose de bizarre, faisons-le une fois, attendons. Supposons que nous ouvrions la porte, que nous allions ailleurs, et que la prochaine fois que nous revenions, la porte se referme sur notre visage. Cela n'a pas vraiment de sens. Nous voulons donc plutôt avoir une porte qui s'ouvre lorsque nous nous rapprochons et se ferme automatiquement lorsque nous partons. Comment s'y prend-on ? Nous utilisons quelque chose de similaire à Competent Begin Overlap. Mais au lieu de cela, nous allons cliquer sur cette porte SM, revenir ici et Uncompetent end overlap Cela fait la même chose que cette fonction. Mais nous devons nous assurer de l' obtenir pour le bon événement. Nous en avons besoin pour la boîte. Il s'agit exactement de la même fonctionnalité. Mais maintenant, lorsque nous aurons fini de nous chevaucher, cela se déclenchera. Cela signifie que nous n'avons plus vraiment besoin de cette branche au tout début ni de cette bascule. Parce que la question n'est plus de savoir si nous pouvons ou ne pouvons pas le faire en faisant volte-face dans une séquence Maintenant, nous avons un autre problème. Lorsque nous voulons commencer cette fonctionnalité, nous devons maintenant avoir deux branches. Nous copions donc ceci et ce qui est ajouté ici, et nous faisons ceci et faisons cela. Mais testons-le et voyons comment il fonctionne après avoir modifié notre boîte. Maintenant, parce que nous voulons qu'elle contienne la porte des deux côtés, nous devons la préciser et l'agrandir au cas où quelqu'un dirait : « Ne faisons pas trop grand , faisons-le xis et testons son fonctionnement On s'approche, il commence à s'ouvrir. Si vous vous en approchez, ça recommence. Maintenant, la raison pour laquelle cela se produit est que nous n'avons pas notre précédent, il peut le déclencher correctement. Jetons un coup d'œil à notre graphique des événements. Ainsi, lorsqu'il se chevauche, s'il peut ouvrir ou fermer la porte, il le déclenche et le déclenche Non, vous ne pouvez pas ouvrir et fermer. Et cette chronologie commence et lorsqu'elle se déclenche à nouveau, cela se produit. Mais ce dont nous avons besoin aujourd'hui est un peu différent. Nous ne voulons plus que cela se produise de cette façon. Si nous séparons notre espace ouvert ici et que nous l'agrandissons, c'est le C'est là que votre deuxième moniteur est très pratique lorsque vous travaillez avec des plans irréels Vous pouvez l'ancrer à votre écran. Personnellement, j'aime bien avoir un écran. Pour moi. Commençons. C'est peu difficile à voir, mais nous ouvrons la porte. OK, maintenant c'est ouvert. Et on déménage, ça ferme. Mais lorsque nous revenons, cela ne se déclenche pas. Mais ça recommence. Et maintenant, accordons-y une seconde et revenons. Il nous est instantanément projeté au visage. Maintenant, la raison pour laquelle cela s'est produit, nous devons toujours jouer dès le début et jouer en sens inverse depuis la fin, qui n'a pas beaucoup de sens dans ce cas, car et si la porte était à moitié ouverte lorsque nous nous en approchons ? Au lieu de cela, nous allons le faire en jouant et en inversant. Ce qui va se passer maintenant, c'est quand nous jouons ou maintenant c'est en train de jouer , puis nous passerons en revue les vers. Mais maintenant, nous avons un autre problème. Quand je m'en vais, il ne commence pas à se fermer tout de suite. Il le termine. Et la prochaine fois que je m' en vais, il ferme. Tu devrais peut-être le garder comme ça. C'est plus que fonctionnel, il se ferme et s'ouvre. Mais modifions-le un peu. Au lieu d'avoir cette branche maintenant, qui nous indique quand nous pouvons ouvrir ou fermer la porte, retirons-la et faisons-la entrer directement dans l' ordre comme celui-ci. Cela supprime toute ouverture conditionnelle de la fonction, et voyons ce qui se passe maintenant. Nous appuyons sur Play, nous sommes fermés, il s'ouvre, et quand nous partons, il se ferme. Et on peut y aller. Il est sans lèvres on entre et il s'ouvre Le seul problème, c'est que nous l'avons fait trop lentement. Revenons donc à notre chronologie, et fixons-la à 3 secondes au lieu de cinq. Et nous devons également modifier la valeur de la seconde une fois par rapport à trois. Il tourne donc dans les 3 secondes. Mais cela signifie également que nous devons modifier les délais en cas de porte ouverte, et fixons-le à 3 secondes également. C'est la fonction intérieure du lampadaire. Voyons donc ce qui se passe maintenant. Nous commençons le jeu. Nous voyons les lumières changer de couleur de manière aléatoire. Nous fermons la porte. Il est en train d'ouvrir. À l'ouverture, tout est rouge. Quand il ferme, il est vert. Et maintenant, nous sommes dans un métier à tisser plein de lumières. Maintenant, nous pouvons également modifier le matériau de cette boîte ici et, disons, ajouter celui-ci. Avec une émission réduite. Comme nous l' avons déjà mentionné, le matériau émissif est un matériau brillant Comme vous pouvez le constater, la luminosité du matériau est multipliée ici. Nous pouvons donc le réduire. Nous divisons simplement cette valeur. Quelque chose que je recommanderais de faire sur l'instance du matériau plutôt que sur le matériau lui-même. Mais disons que nous allons le diviser par dix. Voyons ce qui va se passer. Oui, c'est moins brillant. Il y a donc moins de luminosité, mais peut-être un peu trop. Mangeons donc quatre fois moins et appliquons. Je veux toujours qu'il y ait de la luminosité. Ouais. Et appliquons le même matériau ici également. Peut-être pas. Encore une fois, à votre goût. Je vais le laisser tel quel, sauf ça. Et maintenant, nous avons une scène étrange où nous avons des lumières aléatoires au milieu de nulle part pour notre plus grand plaisir. Les plans sont un sujet très, très coûteux. Vous pouvez créer n'importe quoi dans le plan. Il existe une myriade de nœuds que vous pouvez agiter, contourner et ajouter votre Nous avons réalisé cette simple fonction de porte de plusieurs manières. Nous avons examiné les lumières, comment nous pouvons le faire de multiples manières. Et le plus important que vous devez comprendre, c' est à quel point tout est flexible dans le développement de jeux. Vous ne trouverez pas de solutions simples, et même si vous essayez à l'avenir de trouver des informations sur la façon de faire une chose spécifique, par exemple, nous avons ces cubes ici, et lorsque je les touche, ils descendent vers le bas. Ce sont de simples cubes dont la physique est activée et qui n' ont aucun plan. Mais vous pouvez également le faire avec des plans. d'un mauvais développeur, c'est ce qui fait la différence lorsque vous devez le faire dans les plans et lorsque vous pouvez simplement activer la physique sera expliqué dans la prochaine conférence différencie un bon développeur d'un mauvais développeur, c'est ce qui fait la différence lorsque vous devez le faire dans les plans et lorsque vous pouvez simplement activer la physique, ce qui Vous devez comprendre quand vous devez utiliser quoi, comment et pourquoi. Il existe une infinité de façons de faire la même chose. Et la complexité à laquelle vous souhaitez procéder dépend de vos besoins et de votre calendrier. Dans ce cas, jetons un coup d'œil à nos lampes. Oui, cela fonctionne, et c'est ainsi que je lui ai montré comment procéder. Mais ce n'est pas l'idéal. Nous avons de nombreux nœuds. Encore une fois, nous ne les avons pas organisés. Nous avons une variable qu' au lieu d'en arriver là, nous aurions pu hériter d'un autre endroit. Nous n'avons pas vraiment eu à utiliser des moulages pour cela. Nous aurions pu utiliser des interfaces, ce qui sera expliqué dans la prochaine conférence. Et tout cela avait pour but de créer de la liberté. Vous avez fait plusieurs choses de différentes manières, et tout se résume à ce que vous voulez faire et à la manière dont vous voulez le faire Ne vous limitez pas à vos plans. Et lorsque vous recherchez informations sur des forums ou des formulaires communautaires, exemple sur YouTube, Google, et que vous trouvez ce dont vous avez besoin, n'oubliez pas que vous avez peut-être une meilleure façon de le faire. Comme je l'ai montré dans cette conférence, magasin et cette lampe, avons fait de multiples manières C'est une chose si simple, mais il existe toujours une infinité de façons de le faire. Rendez-vous dans la prochaine conférence où nous allons créer une petite scène interactive, qui pourra être utilisée pour prototyper un jeu simple, et vous aurez liberté totale quant à ce que vous voulez créer et comment vous voulez le créer Mais avant cela, nous aurons une tâche à accomplir. Cette tâche va être un peu plus difficile. Dans cette tâche, nous allons utiliser toutes les connaissances que nous avons apprises jusqu'à présent pour créer et animer davantage votre scène Je vous ai montré certaines choses que vous pouvez faire dans les plans Ce n'était pas grand-chose, car les plans sont un sujet très coûteux. Mais vous pouvez appliquer ce que j'ai montré dans la conférence jusqu'à présent aux scènes que vous avez créées précédemment, ou vous pouvez simplement faire preuve de créativité et expérimenter les fonctionnalités du plan et créer ce que vous voulez N'ayez pas peur de faire des erreurs ou d'expérimenter. La seule façon d' apprendre l'irréel est d'essayer de le faire et de voir si cela fonctionne Même les meilleurs développeurs testeront les choses plusieurs fois avant de pouvoir les faire fonctionner. Rendez-vous lors de la prochaine conférence. Et amusez-vous bien. 15. UE5 FC07 01: Bon retour. Dans ce chapitre, nous allons expliquer comment créer une scène à partir de zéro. Nous allons essayer de créer des éléments de gameplay en utilisant toutes les connaissances que nous avons acquises jusqu'à présent. Et aussi, je vais aborder quelques fonctionnalités supplémentaires de chaque aspect d'Unreal Jusqu'à présent, nous avons créé des matériaux. Nous avons appris à les appliquer et à les illustrer, à configurer l' éclairage dans notre scène, plans et à créer de l'interactivité entre les plans Mais nous avons tout fait en plus de notre modèle déjà existant. Et si vous voulez créer quelque chose à partir de zéro ? Pour ce faire, il faut d'abord décider ce que nous voulons garder de cette création que nous avons déjà faite. Si vous avez un acteur ou un objet dans votre scène, vous souhaiteriez passer à la suivante. Gardez-le à l'esprit. Et dans mon cas, je veux emporter certains de ces cubes avec moi au niveau suivant. Et je vais les utiliser comme plan, donc je vais simplement cliquer dessus, les transformer en plan, changer le nom et l'appeler Cube PMC Je vais le sauvegarder. Si je le fais, c'est parce que j'en aurai besoin dans la prochaine section de la conférence. Donc, pour créer une nouvelle carte, commençons par la garder organisée, créons un dossier, appelons-le niveau. Et maintenant, créons un nouveau niveau. Vous pouvez créer un niveau à partir d' ici et simplement cliquer sur le niveau, mais celui-ci sera toujours vide car il n'y a rien dans le niveau. Si vous souhaitez avoir un modèle pour un niveau, vous pouvez cliquer sur Nouveau niveau en haut, et vous aurez le choix. Voulez-vous un niveau de partition en monde ouvert ? Voulez-vous un niveau de partition vide en monde ouvert ? Vous voulez un niveau de base ou contenant des actifs ou un niveau de base vide. La différence entre les partitions et les niveaux de base réside dans le fait que les niveaux de partition sont généralement destinés des mondes ouverts trop grands. Et vous aimeriez optimiser votre jeu découpant ce monde en partitions parties à décharger et à charger dans le jeu dépendent essentiellement de la proximité ou de l'état du jeu Dans notre cas, nous n'allons pas le faire. Nous pourrions simplement utiliser le niveau de base, mais je vais sélectionner niveau vide pour vous montrer comment procéder à partir de zéro. Cliquez sur Créer et enregistrer. Et maintenant, nous sommes dans le niveau vide. peut-être difficile à voir, mais il n' y a rien d'autre ici que cette grille. Et la première idée est peut-être d' ajouter un peu de lumière à la scène. Mais si vous ajoutez simplement de la lumière, disons de la lumière réactive, cela ne fera pas grand-chose Nous devons ajouter le soleil, la sphère céleste, tout ce qui existait par défaut dans le niveau précédent. Pour ce faire, vous devez passer à Window and Environmental Light Mixer. Cliquez dessus, et vous l'obtiendrez. Créons d'abord la lucarne, la lumière d'ambiance. Vous pouvez déjà modifier les paramètres si vous le souhaitez, mais je dois juste les conserver par défaut pour le moment, créer une atmosphère, créer une foule volumétrique et créer un brouillard de hauteur Et tout à coup, nous avons quelque chose de très similaire à ce que nous avions au niveau précédent. Ce ne sont que des espaces réservés à l'endroit où se trouve notre ciel clair Mettons-les donc tous dans un dossier. Et appelons ce dossier « lucarne ». Ensuite, nous allons apprendre à créer un environnement pour notre scène. Nous pouvons créer notre environnement de deux manières. La première consiste simplement à utiliser quelques mesures de base pour créer des murs de sol comme dans le modèle précédent. Vous pouvez également créer un paysage. Pour créer un paysage, cliquez en haut ici, mode de sélection et cliquez sur Paysage. Cette grille s'affichera dans votre fenêtre d'affichage. Et sur le côté gauche, nous avons nos options pour le réseau. C'est la taille de votre paysage. Cela peut sembler petit, mais si vous gardez à l'esprit que vos maillages ne doivent pas être trop grands au départ, c'est assez gros Et les paysages, bien qu'optimisés sont toujours autorisés sur vos performances. Donc, à moins que vous n'en ayez besoin, vous ne devriez pas les faire trop gros. Je veux qu'il soit plus petit. Réduisons donc cette taille en divisant par et en divisant à nouveau par deux. C'est amplement suffisant pour moi. Nous pourrions le réduire, mais pour l'instant, ça devrait aller. Et nous pouvons également présélectionner nos matériaux. Choisissons donc le terrain. Voyons voir, Gravel. Je préfère le gravier. Et cliquons sur Fill world. Toutes mes excuses. Monde No Fill. Créez. Cliquez sur Créer. Si vous cliquez sur Remplir le monde, cela remplira le monde entier avec le paysage, ce qui n' est pas ce que nous voulons. Génial. Et maintenant, nous avons un paysage. Comme vous pouvez le constater, il est maintenant plus évident que c'est assez gros. Mais c'est trop direct. Et je veux ajouter des montagnes et d'autres choses sur le côté afin de bloquer la vision et de clarifier les choses. Ce n'est pas ça. Il n'y a pas d' extrémité sud de la Terre. Ce n'est pas une Terre plate. Donc, ce que nous pouvons faire, c'est utiliser des sculptols. Alors, cliquons dessus. Et nous avons un pinceau. Je veux qu'il soit plus grand. Je vais donc augmenter la taille du pinceau, et je vais juste cliquer avec le bouton gauche de la souris. Mon pinceau était peut-être trop gros. Ouais Augmentons le nombre de pinceaux. Et sculptons ce paysage au hasard. Tout ce dont j'ai besoin, c'est de ne pas avoir une ligne d'arrivée qui semble mauvaise ou quelque chose comme ça. Peut-être un peu plus ici. Maintenant, à partir de cette vision, élargissons-la. J'ai cliqué sur cet endroit par erreur, mais nous allons le corriger. Je pouvais le contrôler pour l'annuler. Mais je peux aussi cliquer dessus avec la touche Majuscule pour inverser afin de créer cette fosse. Ou je peux cliquer sur cet outil d' aplatissement ici en haut et cliquer dessus Maintenant, selon le fonctionnement de l'outil d' aplatissement, vous cliquez sur un endroit et après avoir déplacé votre souris pendant que vous maintenez le bouton de la souris enfoncé, il l'aplatira. Nous allons donc cliquer ici et nous allons passer à autre chose, et comme vous pouvez le constater, tout est en train d'être aplati jusqu'à présent Fy Word, cliquez d'abord ici et déplacez ma souris, elle s'aplatira jusqu'à la position initiale Maintenant, nous avons ce terrain. Maintenant, ajoutons simplement des collines et des sommets aléatoires, juste des contrefaçons que nous sommes en train de créer Ajoutons-en un gros ici. C'est peut-être un peu trop gros, alors ajoutons quelques bosses sur le sol, des chutes. Et maintenant, nous avons un paysage que vous pouvez utiliser à nos fins. C'est évidemment quelque chose que j'ai fait en quelques minutes sans trop y réfléchir ni y consacrer beaucoup d'efforts, mais vous pouvez créer ce que vous voulez. De nombreux outils sont à votre disposition ici . Tu peux l'éroder Vous pouvez utiliser l'hydroélectricité pour créer une simulation d'érosion. Par exemple, choisissons cette pierre ici, et vous verrez peut-être qu'elle change légèrement de forme. Il s'agit de simuler l'érosion causée par les précipitations. Il s'agit simplement d'une érosion causée par le déplacement du sol de haut en bas. Ce ne sont donc que de nombreux outils que vous pouvez utiliser. Vous pouvez simplement utiliser le bruit. Vous pouvez sélectionner le type de bruit que vous souhaitez, etc. Vous pouvez utiliser des cartes de hauteur si vous savez comment les obtenir ou les utiliser. Il y a beaucoup de choses que vous pouvez faire et que vous pouvez créer. Et pour le moment, nous allons le garder ici. Et ce que nous pouvons faire également, si nous ne voulons pas avoir tout ce terrain , peut-être que nous voulons une couleur ou une montagne différente et peut-être que nous voulons que plus haut se trouve ce gravier, mais sous un peu d'herbe, nous pouvons le faire. Pour ces deux, nous devons créer un matériau en couches, ce que nous ferons prochainement. 16. UE5 FC07 02: Maintenant, créons notre matériau. De la façon dont nous allons procéder, nous allons créer un matériau de base pour le paysage. Passons donc au support de matériel. Nous avons créé précédemment un nouveau matériau appelé M underscore MM est l'abréviation de master material, et appelons-le paysage. Soulignez Matt. Sauvegardez ceci. Lorsque nous enregistrons quelque chose dans le nouveau niveau pour la première fois, un nom est demandé. Assurez-vous de le faire au cas où vous auriez vrais crashs et vous perdriez toute votre progression dans le niveau Et nous allons l'appeler, considérez que vous êtes libre de l'appeler comme vous voulez. Et maintenant c'est sauvegardé. Économisez encore une fois, il suffit de gazer ou de conserver tous les matériaux. Nous ouvrons cette fente pour matériel. Nous ne nous soucions pas vraiment du substrat à ce stade. Nous le laisserons pour plus tard. Nous devons maintenant créer un matériau. J'ai donc décidé d'utiliser du gravier et de l'herbe et nous aurons deux couches. Vous pouvez avoir autant de couches que vous le souhaitez. Mais n'oubliez pas de ne pas le rendre trop complexe en raison des coûts de performance. Pour ce faire, nous avons besoin de mélanges de couches ou de paysages. Mélanges de couches de paysage. Nous l'ajoutons, nous le faisons glisser vers notre couleur de base, obtenons un et nous ajoutons également des éléments égaux aux couches que nous voulons dans notre cas. Et nous le dupliquons et nous le copions à nouveau pour les valeurs normales. Si votre jeu n'a pas de normales, si tout est plat, par exemple, comme dans Minecraft, par exemple, vous n'avez pas vraiment besoin de normales Et comme il s'agit d'un matériau paysager, il est bon de ne pas avoir beaucoup de brillance sur le paysage Faisons donc baisser la valeur de un. Cela peut également être modifié avec couche Billions comme toutes les autres choses, mais nous allons rester très simples. Et maintenant, nous avons deux couches. Disons du gravier pour le premier. J'aurais probablement dû les nommer avant de les dupliquer pour ne pas avoir à refaire ce processus Et nous appellerons celui-ci, le second cuivré. Copiez simplement le pass ici et t pour le moment. Nous économisons cela, et j'ai déjà ouvert le gazon et le gravier que je vais utiliser. Et ce que je dois vraiment faire, c'est copier ce qu'il y a dedans pour les couleurs de base et les valeurs normales. Ces deux matériaux sont fabriqués par défaut par Unreil. Ils les ont donc déjà séparés commodément pour nous. Tout ce qui se trouve en bas ici revient à la normale avec la note de coordonnées du texte. Donc, ce que nous pouvons faire, nous pouvons simplement copier tout cela. Accédez à notre matériel de paysage, collez tout cela ici. Assurons-nous que tout est correct. Donc, à partir du nœud Larp, nous devons baser les couleurs. Nous faisons donc exactement la même chose. Nous l'ajoutons au mélange de couches d' herbe. Ou le nœud Larp. Et à partir de ce nœud lp en bas , tout est normal. Cela peut sembler un peu désorganisé car ce matériau irréel par défaut contient de nombreux nœuds Mais gardons-les un peu de côté. Et mettons-les tous un peu en dessous pour avoir un espace libre. Fermez ce gazon maintenant. Oui, ce matériel ne nous intéresse pas. Faisons de même pour le gravier, et nous faisons exactement la même chose. Nous le copions. Nous le collons ici. Faisons-le glisser vers le matériau. Et voilà, on fait glisser ça. Jetons un coup d'œil à ça. Nous devons multiplier jusqu'à la couleur de base. Et voyons ce que nous avions ici. Nous avons fait modifier la rugosité. Et c'est normal pour nous. le savais peut-être parce que ce matériau de gravier a rugosité et que l'herbe a une rugosité par défaut Nous ne pouvons pas l'utiliser tel quel, nous allons donc ajouter un mélange de couches supplémentaire cette fois pour plus de rugosité. Nous ajouterons cette rugosité au gravier. Et comme le gazon a une rugosité d'un, nous allons simplement ajouter la valeur d'un Inutile de trop compliquer les choses et nous économisons. Nous y accordons une seconde, nous revenons à notre carte de démonstration, nous sélectionnons notre paysage. Nous descendons sur le panneau de détails et nous avons un matériau paysager. Cliquez sur notre matériau principal et mettez-le ici. Vous verrez que notre matériau principal n'a pas vraiment de couleur. Passons au paysage et passons à la peinture. Actuellement, si nous essayons de peindre, cela ne fonctionnera pas. Pour ce faire, nous devons créer des informations sur les couches. Cliquez sur l'icône plus. Vous pouvez créer une couche mélangée en poids, une couche non pondérée Dans ce cas, nous ne nous soucions pas trop du poids. Faisons donc une carte de démonstration. Nous pouvons également le mettre dans le dossier de matériel , juste pour plus de commodité. Et on recommence pour le gazon. Et encore une fois, je vais le mettre dans le matériau. Et maintenant je peux sélectionner un matériau, disons du gravier et de la peinture. Tu te rends compte que ça a l'air bizarre. Si j'appuie ici et que je plante du gazon, c'est très brillant. C'est un peu trop brillant à mon goût. Revenons donc au mode de sélection et cliquons sur la lumière directionnelle, réduisons-la à trois, comme je préfère. Et maintenant, nous avons moins de lumière. Garde-le pendant une seconde. Et jetons un coup d'œil à notre valeur spéculaire métallique et à notre rugosité Notre rugosité doit être bonne, surtout pour le gazon. Nous devons examiner le poids de la carte. Nous avons donc du gravier, mais peignons d'abord les endroits où nous voulons avoir de l'herbe. Nous pourrons nous en occuper plus tard. Je veux que ces zones ci-dessous aient de l'herbe à une altitude plus basse. Les altitudes de l'Ira peuvent être simplement pleines de gravier. O. Intéressant. Je vais juste cliquer dessus et supprimer cette partie. Le fait que le gravier n'ait pas l' air correct est préoccupant. Prévisualisons le nœud. Vous pouvez prévisualiser le nœud du matériau en cliquant sur cette icône, et nous l'avons en noir. Ce qui est inquiétant. Jetons un coup d'œil au gravier. OK. Nous avons un nœud qui n'est pas attaché. Oh, il nous manque une note. J'ai peut-être foiré et copié le nœud. Pas trop, j'ai foiré le nœud. Voyons à quoi ça ressemble maintenant. Cela ne semble toujours pas correct. Regardons-y à nouveau. Pour des raisons de simplicité, je vais simplement supprimer cette partie du nœud. Retournez à ce nœud de foule, copiez tout cela à nouveau, revenez au contenu. Copier le pass. Nous avons un OK, A doit venir de ça, et B doit venir de ça. Je crois que j'ai oublié cette note ici la dernière fois. Appliquer. Jetons un coup d'œil. Oui. Cela correspond davantage à ce que je souhaitais. Et je peux maintenant cliquer avec le bouton décalé pour effacer cette couche ou simplement cliquer pour l'ajouter. Nous n'allons pas le peindre parfaitement ici. Mais comme vous le pouvez, nous avons toujours ces valeurs ici, les broches, les aplatissements, Vous pouvez également attribuer feuillage à générer sur une certaine couche si vous Dans ce cas, nous n' allons pas le faire pour le moment. Nous allons économiser. Et pour l'instant, ça devrait aller. Pour l'instant, ça devrait aller. 17. UE5 FC07 03: Maintenant, ce champ semble très aride. C'est parce que nous n'avons pas de feuillage. Nous n'avons pas d'herbe, nous n' avons pas de buissons, nous n'avons rien. Nous pourrions également utiliser le feuillage, créer un feuillage ou obtenir un feuillage actif. Nous pourrions le créer. Nous pourrions le fabriquer nous-mêmes et les planter manuellement un peu partout. Ce n'est pas une chose difficile à faire. Nous pouvons simplement créer, disons, un feuillage maillé statique. Et voyons voir. Créons un nouveau dossier. Appelle-le. Feuillage. Et appelons-le Folage Underscope Mm. Les acteurs de Wolage soulignent Bush Ouvrons-le, passons au maillage et sélectionnons un Bush. Maintenant, nous enregistrons ceci. Et s'il clique et que vous commencez à peindre, nous peindrons manuellement cette poussée autour du niveau. Donnez-lui une seconde pour terminer le téléchargement. En compilant des shaders, soyez plus précis. Et maintenant, on peut juste les mettre un peu partout. Nous pouvons les supprimer si nous le voulons et les effacer, etc. La suppression est très différente de l'effacement. Et vous pouvez ajouter des paramètres ici. Disons que nous voulons une densité moindre. Disons dix rayons ou 100. Et qu'est-ce qu'il y a ici maintenant ? mes excuses. J' aurais dû choisir de la peinture. Maintenant, nous avons moins de feuillage. Nous avons des paramètres supplémentaires ici, ou c'est de l'échelle. Vous n'avez peut-être pas Mean et Max. C'est pour randomiser. Supposons donc que nous ayons zéro point cinq, et juste pour la démonstration, disons huit. Certains foils sont maintenant très grands, autres sont très petits Nous pouvons les rendre mobiles , etc., mais honnêtement, il n'est pas recommandé de les déplacer. Il vaut mieux les avoir statiques. Et il y a une collision. Vous ne voulez pas vraiment qu' il y ait une collision dans le feuillage à cause de problèmes d'optimisation évidents. Vous ne voulez pas que votre voiture se déplace et soit coincée sur un morceau d'herbe moins qu'un type de feuillage particulier ne soit nécessaire pour entrer en collision Vous ne devez pas utiliser le terme collision. Quoi qu'il en soit, je ne veux pas utiliser ça de cette façon. Ce que je vais faire à la place, d'aller retirer une partie des rayons. La façon dont la suppression fonctionne, vous devez sélectionner le feuillage et cliquer sur Supprimer, mais nous ne l'avons pas enregistré Nous allons donc simplement l'effacer manuellement pour nettoyer la scène. Nous pourrions peindre manuellement l'ensemble du niveau avec cela, mais ce n'est pas vraiment une façon efficace de gérer notre temps. Évidemment, si vous essayez de créer un paysage magnifique, vous devez microgérer chaque détail Le placement manuel a beaucoup de sens. Vous pouvez les placer en singles en cliquant simplement sur ce bouton unique, ou vous pouvez les placer dans le champ, remplissant simplement toute la zone. Mais je ne veux pas perdre de temps là-dessus. Nous allons donc plutôt créer feuillage avec le matériau Pour cela, nous devons d'abord créer un acteur appelé type Landscape Grass. J'en ai déjà créé un, mais je vais le démontrer à nouveau. Allons voir Foolage. Accédez à la section Foolage, et nous avons le type d' herbe paysagère nous qui le créons. Appelons-le LG. Faisons du gazon et du T et appelons ça pousser. Si je l'appelle push, c'est parce que nous n' allons avoir que du push, mais vous pouvez avoir plusieurs éléments d' herbe ici. Dans notre cas, je vais juste ajouter Bush, donc je l'ai simplement appelé Bush. Mais vous pourriez avoir un ensemble de différentes herbes ensemble, vous pouvez donc simplement les faire apparaître avec une seule herbe Ici, nous sélectionnons notre acteur Busch. Et si je l' utilise, c'est parce que c'est le seul contenu disponible dans le contenu de démarrage. Vous pouvez créer vos propres buissons. Vous pouvez ajouter quelque chose depuis Asset Store, depuis Fab, où vous le souhaitez Et sauvegardons ça. Nous pouvons modifier la densité de l'herbe. Nous pouvons utiliser, encore une fois, le même concept similaire ici, la taille maxmin. Et faisons une taille maximale de deux. La distance d'appel est importante. À quelle distance voulez-vous voir votre gazon ? Pour l'instant, je vais le laisser sur dix kilomètres, mais vous pouvez le réduire ou l'augmenter selon l'importance que revêt ce type de gazon pour vous. Et vous remarquerez peut-être qu'il n' y a pas de collision ici. L'inconvénient, peut-être l'inconvénient, selon votre jeu, qui consiste à l'utiliser pour faire apparaître votre gazon ou votre feuillage, vous ne pouvez pas y ajouter de collision Revenons donc à notre matériau de base. Je ne sais même pas. C'était du gravier. Revenons donc à notre matériau de base. Cliquez avec le bouton droit de la souris et appelez Grass Landscape grass output. Vous remarquerez peut-être qu'il n' y a pas de place pour cela. Il n'existe aucun nœud de sortie pour cela. Cela agit comme un nœud de sortie final supplémentaire. Et nous devons ajouter notre herbe ici. Appuyez sur LTG Maintenant, jetons un coup d'œil à notre Just give a moment. Vous remarquerez peut-être que rien ne s'est réellement passé. C'est parce que nous n'avons rien dans la section de saisie. Maintenant, nous devons expliquer aux matériaux où générer les messages statiques pour le buisson. Nous l'avons déjà converti en type d'herbe. Nous ne pouvons pas simplement saisir ces informations ici, car il s' agit d'une combinaison de mélanges de couches et il n'existe aucun moyen réel générer un placement à partir de nos nœuds précédents. Pour ce faire, nous avons besoin d'un exemple de nœud, un sampler. Ou un échantillon de couche Landscape. Et nous devons le mettre dedans. Et ici, nous devons taper le nom de la couche. Cette couche, dans ce cas, est de l'herbe. Vous pouvez simplement le copier-coller ou le saisir. Et en toute sécurité. Voyons voir. Soudainement, nous avons produit beaucoup de gazon là où se trouvait notre gazon. Je pense toujours que c'est un peu trop brillant. Laissez-moi réduire un peu plus la luminosité. Et comme vous pouvez le constater, je n'ai pas eu à le peindre, et vous pouvez dire qu'il est trop dense. Nous pouvons réduire la densité du gazon. Disons que je n'en veux pas beaucoup, j'en veux juste dix et économiser. Maintenant, j'ai de l'herbe. Je veux qu'ils soient généralement un peu plus petits. Disons donc 02 et maximum à un. Nous avons maintenant un gazon optimisé dans une certaine mesure, et nous pouvons simplement le placer automatiquement en utilisant un matériau. Évidemment, nous pouvons créer plusieurs couches et chacune d'elles peut avoir ses propres notes. Pour produire des maillages. Alors faisons-en une autre, cette fois, pour le gravier. Je veux des petits cailloux. Voyons si j'ai des cailloux en guise maillage dans le contenu de départ Rock. Nous avons une pierre, je crois. Jetons-y un coup d'œil. C'est une pierre. Reprenons donc le processus, cette fois plus rapidement. Passons à notre feuillage, créons un type de robe de paysage en filage Appelez ça LGTunderscore, rock. Ouvrez-le, ajoutez un élément, faites en sorte que cet élément soit rock, réduisez, disons, la taille 0-2 à un comme avant, et je ne veux pas qu'il soit dense également, mais faites-le 20 Sauvegardez ceci et passons à notre documentation sur le paysage. Ici, nous pouvons ajouter un deuxième élément. Et nous pouvons créer un nouveau nom de paramètre, échantillonneur, le mettre dedans Nous pourrions tout simplement faire apparaître deux types de fooliges différents dans un échantillon de couche, mais nous voulons qu'il y ait de la terre sur la couche de gravier et sur l'herbe ou, dans ce cas, des buissons dans la couche Donc, ce que nous devons faire est comme avant, nous copions le gravier, le nom du paramètre, le mettons dans un deuxième nœud, allons ici, nous passons à notre deuxième élément, appelé gravier. Entrez, enregistrez. Revenons à notre niveau. Il n'y a rien. Je me demande peut-être pourquoi. Nous revenons à notre matériel. Nous avons du gravier, de l'herbe et du paysage, mais nous n'avons pas sélectionné ce deuxième type de paysage, nous n'avons pas sélectionné roche LGD et nous avons des rochers Maintenant, vous remarquerez peut-être qu'il produit également des pierres dans l'herbe parce que ces matériaux sont superposés les uns sur les autres. Ce sont des couches. Ce qui signifie que les informations que le matériel reçoit ici sont incorrectes. Nous avons des pierres, et nous avons des pierres et de l'herbe. Vous vous demandez peut-être pourquoi cela se produit. Tout d'abord, réduisons la quantité de roches et leur taille est trop importante. Faisons en sorte que ce soit quatre et que la taille soit zéro point un. Il semblerait que je l'ai annulé par erreur et que je n'ai aucun point f. Je ne veux pas de gros Je veux des petits cailloux. ajoutons-nous un peu plus de pierres ici ou peut-être trop. Oui, des petits cailloux ici et là. Ils n'ont pas l'air bien. Le fait qu' ils aient tous la même échelle ne me plaît pas, alors ajoutons un gratuit en le rendant gratuit, cela signifie que leur mise à l'échelle dans toutes les directions est aléatoire Faisons-le comme ça, économisons , et les pierres auront probablement un aspect plus différent. Et je n'aime pas qu' ils soient grands, alors introduisons cette échelle à zéro d deux. Nous n'avons donc pas de grands rochers. Ouais. Nous avons maintenant des cailloux, etc., et modifions également leurs clusters, ce que nous pouvons faire ici, peut-être Non, c'est loin d'être le cas, je n'ai besoin d'aucune différence. Restaurons-le tel quel. Faites-en un peu plus. Je ne veux pas prendre de distance froide. Je veux des rotations aléatoires. Malheureusement, c'est plus ou moins une limite car nous n' avons pas beaucoup de variations rock. Quoi qu'il en soit, laissons les choses telles quelles. Et maintenant, la principale question est pourquoi avons-nous des pierres sur de l'herbe ? Cela est dû à la façon dont les couches fonctionnent. Lorsque nous peignions, nous avions ces deux forces ici sur zéro point trois, qui signifie que cette herbe est lestée. Bien que nous ayons utilisé des couches non pondérées, cette herbe est en fait pondérée et nous avons maintenant la valeur de zéro point trois sur le gazon et de zéro point sept sur le gravier. Le moyen le plus simple de résoudre ce problème est de supprimer les informations sur le gravier d'ici ou d' en enfiler une avec un outil cliquer sur le gazon et de le peindre à nouveau. Mais même si nous n'avons qu'une seule pelouse, elle n'est toujours pas idéale. Nous voulons supprimer les informations relatives au gravier. Nous cliquons donc sur Shift et supprimons les informations relatives au gravier. Maintenant, si nous supprimons les informations sur le gravier, nous n'aurons plus de pierres et notre herbe deviendra plus verte. Unreal mélange nos deux matériaux, ce qui est une excellente fonctionnalité Mais lorsque vous l'utilisez pour produire des pierres et de l'herbe, cela peut être un inconvénient. C'est donc à vous de décider si vous allez les utiliser comme matériau pour produire le feuillage ou si vous allez utiliser du feuillage pour peindre les tolets et les placer manuellement dans le niveau Maintenant, nettoyons un peu la scène rapidement. Disons que je ne veux pas d'herbe sur le côté. Nous allons avoir une fuite principale Enlevons le gravier ici. Nous enlevons également l' herbe, elle sera noire. Cela signifie donc noir, ce qui signifie qu'il n'y a aucune information ici. Donc, si je mets du gravier et de l'herbe ici, vous verrez qu'au milieu, ils se mélangent. Nous pouvons l'utiliser pour tout d'abord, supprimons-le. Cliquez avec le bouton Shift pour supprimer les informations de la couche. Je ne veux pas que du gravier soit là. Ce que nous pouvons faire ici, c'est ajouter une couche de gravier. Les flancs. Les collines et l'herbe se recouvrent également sur les flancs, et seulement de l'herbe au milieu. Ce que nous allons nous donner, c'est une couche avec du feuillage d'herbe uniquement dans un mélange d' herbe et de gravier. Donc des rochers, du feuillage et seulement des rochers. Vous pouvez, encore une fois, utiliser plusieurs couches, les utiliser comme vous le souhaitez, créer ce que vous voulez. Maintenant, nous allons enregistrer ceci. Nous ne perdrons plus de temps à créer ce paysage. Et gardez à l'esprit que les informations de couche pour ce placement de la peinture dans le paysage sont ces deux fichiers. Assurez-vous de ne pas les supprimer ou de ne pas les déplacer là où ils sont censés l'être. En général, ce n'est pas une bonne idée de les toucher. D'habitude, vous n'avez pas vraiment besoin d'en faire quoi que ce soit. Par conséquent, ne les touchez pas à moins que cela ne soit absolument nécessaire et que vous soyez conscient de ce que vous faites. Nous pouvons maintenant passer à la création dans notre scène. Nous avons donc maintenant un paysage. Ensuite, je veux créer quelque chose lequel nous pouvons créer nos éléments de jeu, mais nous n'avons pas de maillages. Et par là, je veux dire que nous n' avons pas de blocs, etc., et honnêtement, je ne veux pas utiliser plusieurs boîtes pour cela Nous allons donc revenir à l'outil de modélisation. Et un outil de modélisation, créons-le nous-mêmes. Créons-nous une plateforme. Nous pouvons commencer par un cube ou une boîte, si vous voulez l'appeler. Mettons-le ici et nous pourrons atteindre une hauteur de 100. mes excuses. Mille. C'est peut-être un peu trop gros. Faisons en sorte que ce soit 500. Et voyons voir, nous pouvons l' aligner sur le sol. Nous alignons les cibles directement dans le sol. Devrais-je simplement le garder localement. Inutile de faire preuve de trop de créativité ici. Maintenant, cela est activé. Mettons-le un peu dans le sol et nous pourrons le modéliser davantage pour créer notre propre plateforme Nous pouvons le modifier en groupe poly nous pouvons l'agrandir pour être précis, extruder à ce rythme Sélectionnez l'espace, et voyons voir. Ce que nous pouvons faire ici, c'est pousser ou tirer ce visage ici. Allons-y plus loin. Faisons-en une grande plateforme. Il n'y a aucune vraie raison de le réduire. Et extrudez-le à nouveau. J'ai peut-être mal cliqué sur quelque chose. Cliquons à nouveau sur ce rythme, extrudons-le légèrement et cliquons dessus, extrudons-le Cela fera partie de notre plateforme. Passons maintenant à cette phase. J'aurais peut-être dû insister un peu plus. Je vais l'agrandir au cas où nous en aurions besoin. Mais honnêtement, vous êtes libre de le faire comme vous le souhaitez, sous la forme que vous voulez. Vous avez peut-être remarqué que j'ai fait une erreur. Je n'ai pas de jambes pour cette partie parce que je n'ai pas extrudé un visage approprié Je pourrais ajouter un avantage supplémentaire , etc., mais au lieu cela, je vais cliquer dessus et extruder jusqu' Et je vais à nouveau extruder légèrement, créer une passe supplémentaire Je vais cliquer sur la face inférieure de la phase nouvellement créée pour l' extruder à nouveau, sur le sol Et maintenant j'ai ceci ici, que je peux facilement extruder à nouveau. Écoutez, gardez à l'esprit. La raison pour laquelle je fais cela est juste pour gagner du temps. Comme je ne souhaite pas modéliser, l'ensemble de la plateforme. C'est très utile pour bloquer et créer des échantillons pour l'environnement, que vous pourrez ensuite demander vos modélisateurs ou créatifs de créer ou, si vous voulez admirer, de créer vous-même Maintenant, nous avons ceci, et les idées que cela est rattaché ici à la montagne et nous avons ceci. Nous devrions probablement déplacer cette partie vers l'intérieur. Alors faisons-le. Ce que nous pouvons faire, c'est sélectionner tous ces visages. Et déplacez-les simplement ici. Nous avons maintenant une plate-forme qui clique sur Accepter. Et nous pouvons modifier davantage les groupes poly , c'est-à-dire créer des piliers. Si vous le souhaitez, comme vous pouvez le constater, vous ne pouvez tout simplement pas le déplacer. Vous pouvez extruder une fois que vous l'avez correctement sélectionnée, contrairement à ce que j'ai fait Donc extrudons cela, créons juste une sorte d'arène C'est l'idée, du moins dans mon cas. C'est juste un peu plus grand. Extrudez à nouveau pour créer des polygones supplémentaires ou pour obtenir des faces plus chères, je dois aller jusqu'au bout Cela a peut-être été trop long, mais nous le saurons dans une seconde. Tu peux le presser à nouveau. Modifiez-le juste un peu. Je peux faire de même ici. Maintenant, dans ce cas, je ne fais que regarder l'ensemble du processus. Ce n'est donc pas l'idéal. Non Je vais juste y aller ici. Lorsque le pilier s'extrude légèrement, une face inférieure est à nouveau extrudée Profondément enfoncé dans le mur. C'est un peu mal aligné, comme ça et déplaçons-les tous ensemble. Et ça devrait aller. Maintenant, modifions-le en polygroupes, extrudons la face. Sélectionnez le pilier, extrudez-le à nouveau. La hauteur est un peu décalée. Alors faisons-le un peu plus grand. Vous pouvez également sélectionner les arêtes. Pour les déplacer, vous souhaitez modifier la taille et vous pouvez les sélectionner pour sélectionner plusieurs arêtes en même temps. Vous souhaitez modifier la taille du visage. C'est une connaissance courante lorsque vous avez de l'expérience dans le domaine de la modélisation. Et maintenant, nous pouvons extruder. Encore une fois, c'est un peu mal aligné, mais nous n'essayons pas d'être parfaits ici, nous pouvons donc simplement le faire Et je vais m' en tenir là. Je vais modifier un peu le placement de ces sommets en réduisant le fait de les placer ici. Oui, je ne suis pas le meilleur architecte, mais c'est bon. Sauf que maintenant, sélectionnons un matériau pour cette plateforme. Je pense que quelque chose comme une bille devrait convenir. Nous pourrions voir à quoi ça ressemble. Ce n'est pas idéal car nous n' avons pas de bons UV. Créons donc simplement un nouveau matériau pour cela. Accédez aux matériaux. quoi ressemble notre matériel de base à ce sujet. Oui, les UV de base conviennent. Vous pouvez créer un matériau. Appelez cela souligner la forme d'une plante. Enregistrez Los en tant que matériau de plateforme. Et maintenant, nous pouvons travailler sur le matériel pour cette plateforme. Enregistrer. 18. UE5 FC07 04: Nous allons maintenant fabriquer un matériau de substrat pour notre plateforme. Vous vous demandez peut-être pourquoi ? Parce que nous n' avons jamais abordé le sujet, et c'est une bonne opportunité. Le matériau du substrat est un nouveau type de matériau ou on pourrait dire qu'il a introduit la fonction du matériau dans Unreal C'est un moyen de superposer des matériaux sans utiliser plusieurs sources de matériaux Il examine et calcule les couches avec leurs alphas, combinant les lumières et les reflets pour nous donner des résultats de très haute qualité Donc, tout d'abord, nous avons besoin d'une dalle puisque j'ai supprimé les entrées de matériaux par défaut précédentes, et nous en avons besoin d'une seconde si nous fabriquons une dalle à deux couches, ce que nous allons faire Et nous avons besoin d'une couche de substrat verticale. Nous l'avons mis comme ceci, ceci ici et ceci ici. C'est ce que nous allons faire pour le moment. Maintenant, cela a des options similaires à celles de l'original. Ajoutons donc d'abord nos couleurs. L'albédo diffus est le même que celui de votre note de couleur précédente. Passons donc au bleu pour l'instant, ajoutons-en un autre et ajoutons-le à l'albédo diffus Et rendons-le jaune pour le moment. Nous le modifierons ultérieurement. Ajoutons une rugosité car je veux que ce matériau de finition soit très brillant Faisons en sorte que ce soit 05005. Et nous l'avons comme un bleu éclatant. Mais on ne voit pas vraiment le jaune. Pour ce faire. Nous devons ajouter cet assistant de nœud en particulier. Il y en a deux. Il nous faut le second. Et ici, nous les déposons ici. Et accordez-lui un moment. Maintenant, tout à coup, ce matériau semble très différent. Sauvegardons-le. Vous pouvez voir qu'il s'agit d'une couche de deux matériaux. Et si vous regardez du haut où la lumière est réfléchie, vous pouvez voir l' éclat assez facilement. Et si vous regardez en bas, nous avons une couleur plus foncée. Nous pourrions changer la couleur pour la rendre plus claire. Disons bleu foncé et violet foncé. C'est assez facile à voir de cette façon. Mais le plus important, c'est que nous pouvons ajouter des normales. Les normales servent à ajouter des textures, nous pouvons donc simplement ajouter un échantillon de nœud de texture, ajouter une normale Et je crois que nous en avons eu un peu d' Unreal Sartbrek pour Cobblestone Oh, oui, nous avons des valeurs normales. Pour les pavés, nous en avons également des lisses. Ajoutons-en des lisses et donnons-y une seconde. Et maintenant, nous avons un matériau en couches très doux. Faisons maintenant de la couleur quelque chose que nous aimerions vraiment voir. Je veux une couleur plus claire avec des teintes plus foncées. Faisons-le en bleu. Je veux essentiellement deux couches. Maintenant, nous appliquons cela. Revenons au niveau et voyons à quoi il ressemble. Donnons le moment. Et sélectionnons notre nouveau matériau et mettons-le ici. Nous devons évidemment ajuster le carrelage, mais nous avons maintenant un matériau très différent C'est du carrelage ajusté. De manière significative. Donc, coordination supplémentaire. Ajoutez TUE, le seul que j'ai ici. Faisons en sorte que ce soit un chiffre très élevé. Attachons-nous dix fois. Enregistrer La sauvegarde automatique s'applique également. Et nous avons ce matériel maintenant. On dirait qu'il y a une feuille de verre et que vous la regardez dans une seule direction, c' est-à-dire la pointe des matériaux du substrat. Il serait très difficile d'obtenir cet effet spécifique si vous deviez le faire avec des matériaux ordinaires. Mais cela peut être très dur pour les yeux. Alors, ce que nous pouvons faire, c'est le tester avec différentes couleurs. Mais nous avons du noir avec, disons, du rouge vif en dessous. Revenons à Eh bien, noir lui-même n'est pas vraiment une couleur, mais le fait que nous ayons ce paramètre de rugosité ici affecte son apparence Donc, si nous devions augmenter la rugosité, disons qu'à l'un d'entre eux et que nous appliquons ce matériau soudainement, nous obtenons un matériau brut Mais nous ne voulons pas que ce soit aussi dur. Inversons-le, et nous ne voulons pas vraiment qu'il soit noir. Faisons quelque chose d' original et faisons entrer en collision deux couleurs vives en tant que telles Et nous avons cette note de style. Augmentons-le encore plus. Je veux encore plus de petits cailloux sur le trottoir. Et accordons-y un moment. Et maintenant, nous avons ce matériel, je pense que je suis d'accord. Vous pouvez ajouter plusieurs couleurs, plusieurs couches et faire preuve de créativité. Évidemment, et faire preuve de créativité. Évidemment le substrat en lui-même offre plusieurs options. Vous pouvez, par exemple, également modifier la rugosité de la deuxième couche Donc, si vous faites en sorte que la deuxième rugosité réelle soit nulle, la deuxième couche sera très brillante Alors maintenant, tout à coup, il y a plus de brillance sur la deuxième couche, et si nous inversons un peu cela , la couche supérieure n' aura aucun éclat, mais la couche inférieure le sera. Il va donc manger de l'éclat. Mais si nous pouvons également le faire, la rugosité peut ici avoir une valeur similaire Et ajoutez une maladie à la couche. Alors, quelle est l'épaisseur de la couche supérieure ? Donc, lorsque cette maladie maximale est nulle, cela signifie essentiellement que la maladie maximale n'existe pas, nous ne la verrons pas vraiment. Donc, prouvons simplement un point, appliquons et voyons. Nous avons un matériau jaune très brillant. Mais si on le met dans quelque chose comme ça, c'est trop malade pour voir le jaune. Mais si on marque zéro point cinq, c'est toujours trop malade. Zéro point un. C'est peut-être encore trop gros. La logique ici est trop mauvaise pour voir à travers l'objet. À zéro.01, vous pouvez à peine le voir et à peine voir le jaune Et si vous réduisez un peu plus, je parie que je veux dire dix fois. Maintenant c'est tout jaune. Vous pouvez simplement le mettre à cinq et ajuster dans quelle mesure vous voulez que le matériau soit du Cro. Mais ce devrait être un très petit nombre. Malheureusement, unreal n'a pas de documentation sur la taille de la valeur par défaut, mais nous pouvons simplement la tester et y jeter un œil pendant que nous nous baladons. 02 est trop épais, et peut-être devrions-nous avoir une valeur de sept Et encore une fois, nous pourrions également le désactiver et voir la différence, comme vous pouvez le voir, un peu plus de jaune, un peu plus de bleu. Malheureusement, je ne suis pas au courant de sa maladie par défaut, mais je suppose qu' elle se situe entre 1 et 2. Très probablement un .500 15. Oui Quelque chose sur les côtés. Je veux qu'il soit plus jaune, donc je vais le mettre à 05. Appliquer. Jetez-y un coup d'œil. Maintenant, le bleu et le jaune ne sont pas une bonne combinaison, mais nous allons laisser cela pour le moment car je veux tester et vous montrer quoi cela ressemble avec une normale différente appliquée. Donc, la deuxième couche que nous avons ressemble essentiellement à une couche de roches à cause de cette normale que nous avons ici, une texture normale. Mais on peut aussi ajouter une texture sur la première couche. Donc, si nous le mettons ici et le connectons à la normale, mes excuses, nous avons besoin d'un nœud de texture Nous l'avons mis ici. Et ajoutons un autre nœud de texture pour que nous puissions simplement rechercher N. Nous ne voulons pas d'argile. Y a-t-il une normalité intéressante ? Jetons un coup d'œil à la rouille. La rouille est une texture normale. Appliquons-le. Il se peut que nous devions ajouter du carrelage. Maintenant, nous avons cette étrange rouille sur le dessus. Je n'aime pas le tuilage, nous allons donc ajouter un nœud de texture Identifions-le également. Appliquez-le. normales des nœuds de rouille ne sont peut-être pas les meilleures, mais tout à coup, nous avons ces imperfections dans le matériau On dirait qu'un bloc d'eau est gelé au-dessus du sentier pavé, mais le sentier lui-même est également stratifié Et tout cela se fait avec du matériel simple. Si vous deviez simplement retirer ce matériau, il ressemblerait à un bloc de pierre. Mais ici. Maintenant, ce que nous pouvons faire, c'est plutôt sélectionner quelque chose qui aurait plus de sens. Avec un pavé, basalte normal. Et changeons également les couleurs. Le bleu n'est pas une bonne couleur. Faisons en sorte que ce soit quelque chose comme couleur marron mélangée à Let's see. Faisons une couleur pour colorer le matériau, appliquez-le. Peut-être que c'est un peu trop clair. Oui, c'est un peu trop clair. Réduisons-en donc la saturation et faisons-en un peu plus sombre, peut-être un peu plus. Vous pouvez également choisir la couleur. Prenons la saturation et mettons-la ci-dessous. Ils ressemblent beaucoup aux couleurs, ce qui convient parfaitement à notre objectif. Oui, ça devrait aller. Il semble maintenant que la palette de couleurs n'est pas si loin. Nous pourrions rendre les choses un peu plus sombres sur les deux plans. Nous pouvons, ce qui est plus important, réduire et augmenter la rugosité pour la rendre moins brillante Allons-y donc. Et celui-ci peut être direct. Enregistrer OK, maintenant c'est beaucoup moins brillant. Nous ne voulons pas qu'il soit métallique ou quoi que ce soit d'autre. Il existe des paramètres supplémentaires, comme par exemple, si vous mettez la rugosité du duvet ici et disons la quantité de duvet Jetons-y un coup d'œil, mettons-les en un et réduisons la rugosité Faisons-en un également et ajoutons-y une couleur. Disons rouge. Nous allons obtenir une teinte supplémentaire. Mais c'est un peu trop, alors réduisons la quantité de duvet à zéro point cinq, peut-être même à zéro point deux pour simplement ajouter de la rougeur au matériau Et maintenant, nous avons un matériau qui est une combinaison de trois couleurs, deux couleurs normales. Il possède plusieurs paramètres de rugosité. Et nous n'avons pas touché à beaucoup de paramètres supplémentaires ici. Et il y a plusieurs façons de s'y prendre. Nous pouvons ajouter une couche verticale supplémentaire et ajouter une autre plaque de substrat puis les superposer à nouveau et ajouter encore plus de normales, encore plus de couleurs, encore plus rugosité, d' UV, etc. Il existe une infinité de façons l'utiliser pour créer de beaux matériaux, et Unreal propose une démonstration du matériau de substrat que vous pouvez télécharger gratuitement et consulter dans leur section pédagogique et didacticiel sur Fab ou dans l'Unreal Lunch, vous trouverez Section sur laquelle vous pouvez cliquer pour y jeter un œil. Je ne crois pas qu'Unreal ait des échantillons de substrat dans le contenu de départ Oui, ils ne l'ont pas, mais vous pouvez les télécharger et y jeter un œil. Quoi qu'il en soit, pour l'instant, disons que nous en avons terminé avec notre scène. Ensuite, nous voulons ajouter un élément de gameplay dans la scène. Donc, d'abord, nous devons nous assurer que notre personnage fonctionne. Appuyons sur Play, et nos personnages apparaîtront au milieu de l'écran Pourquoi ? Si nous montons plus haut et que nous appuyons sur Play, notre personnage apparaît à partir de l' endroit où se trouve notre caméra Cela se produit parce que nous n' avons pas un certain indicateur dans la scène. Et cet acteur est appelé ici, laisse-moi voir. Personnage. 1 seconde. Nœud de départ du joueur, celui-ci. Ce nœud de départ du joueur définit donc l'endroit où votre personnage recommence. Évidemment, vous pouvez le remplacer comme dans le jeu en sauvegardant des fichiers ou simplement en utilisant des déclencheurs Mais en général, il ne s'agit que d'un point de départ. Et maintenant, quel que soit l' endroit où se trouve notre caméra, notre joueur apparaîtra toujours à ce moment-là Assurez-vous que ce n'est pas vraiment dans une bonne position. Si vous posez quelque chose comme ça, vous tomberez par terre. Vous devez donc vous assurer que votre joueur commence dans la bonne position pour ne pas trop se chevaucher avec d'autres objets. Et oui, nous l'avons maintenant, nous pouvons faire quelques trucs de gameplay. Nous pouvons nous déplacer dans notre scène parce que nous créons ces roches avec nos matériaux. Il n'y a pas de collision, ce que, pour être honnête, nous ne voulons pas au départ. Et avant de commencer, ajoutons un moyen de gravir cette partie, même si nous n'allons pas l'utiliser uniquement à des fins visuelles. Passons donc à notre onglet Place Actor. Dans les fenêtres, allez placer les acteurs. Et passons aux formes de base. Je crois qu'il y avait un escalier quelque part, oui. Courbes, lignes aériennes, monsieur. Et utilisons-le. Il s'agit d'un pinceau à mailles. Ce n'est donc pas vraiment un maillage. Il s'agit plutôt d'un outil de modélisation combiné à un maillage statique. Et vous pouvez simplement augmenter le nombre de pas qu'il comporte. Augmentons la hauteur de 80 et le nombre de marches jusqu'à, disons, 50. Oh, j'en ai peut-être trop fait. Disons que le nombre d'étapes devrait être quelque chose comme 35, 32, un. Fais-le. Ça devrait aller. Peut-être allons-le plus largement. C'est moins une scène. Et utilisons-le, gardons-le, Lexis. Et une fois que nous l'avons aligné comme nous le voulons, nous pouvons créer un maillage statique, et voyons voir, le conserver dans le maillage généré. Maintenant que cela est converti en maillage, et nous pouvons utiliser notre matériau, nous avons utilisé ici, il vous suffit de cliquer sur Bowe, cliquer sur ce maillage, puis de cliquer sur Utiliser la ressource Select dans le navigateur Et maintenant, nous avons le même maillage appliqué ici. Comme ce maillage est beaucoup plus petit, le carrelage est également très petit , mais c'est bon Et maintenant, au cas où nous tomberions, comme je viens de le faire, nous pourrions grimper, mais ce maillage ne se heurte pas. Nous cliquons donc dessus, cliquons sur la collision, et nous devons sélectionner un préréglage de collision pour tout bloquer car il s'agit d'un maillage Et je le voulais juste. Il y a de l'espace vide là-bas. Nous pouvons le réparer en une seconde. Mais ça ne marche toujours pas. Maintenant, la question est peut-être pourquoi cela ne fonctionne pas, ce que je vais vous présenter dans une seconde. C'est donc un pinceau. Nous l'avons créé à partir du pinceau de base, non ? Et si vous vérifiez le voyant et que vous passez à la collision entre joueurs, il n'y a pas de collision. C'est la raison pour laquelle nous avons créé ce maillage, mais nous n'avons jamais défini de collision dessus. Donc, ce que vous pouvez faire, c'est ouvrir le maillage que nous avons généré, cliquer sur la collision entre joueurs, et il n'y a rien, et cliquer sur la collision en bas en haut pour en créer une. Il y a donc collision de sphères. Il y a une capsule, il y a une boîte. Donc, si vous cliquez sur la case collision simplifiée, ce n'est pas l'idéal. Donc, juste pour montrer à quoi cela ressemblera, déplaçons notre point départ à proximité afin de ne pas avoir à trop marcher. Nous passons maintenant à l'antenne. La raison en est qu' il y a une collision, elle a la forme d'une boîte en dessous de nous. Et ce n'est pas l'idéal pour nos besoins. En règle générale, gardez à l'esprit que les seules choses que vous pouvez toucher dans la scène sont les scènes de collision. Unreal génère certaines collisions par défaut, supposant que vous en ayez besoin. Mais dans certains cas, comme celui-ci, il n'est pas généré car il est généralement utilisé pour le prototypage, et non pour la mise en page réelle de la scène Maintenant, pour créer une collision appropriée, idéalement, vous devez la créer sur mesure dans un logiciel de modélisation ou simplement contourner vous-même votre collision à l'aide de certains outils, outils de modélisation, etc. Mais au lieu de cela, ce que nous allons faire, c'est éliminer notre collision inefficace C sur la collision et convertir le livre est une collision et nous cliquerons sur Oto box collision, out convexe collision, mes excuses Et sur le côté droit, nous sélectionnons la qualité, et nous ne nous soucions pas trop de cette qualité, et nous cliquons sur Appliquer. Vous souhaiterez peut-être réduire certaines collisions jusqu'à présent , mais maintenant, cela est mal formé Si vous le faites très bas, cela aura une très mauvaise apparence. Comme vous pouvez le constater, il ne s'agit même pas d'une collision complète. Mettons donc simplement les valeurs par défaut et la préalimentation. Ce n'est pas vraiment l'idéal. Comme vous pouvez le constater, il y a des sommets supplémentaires, etc. Certaines lignes de collision n' ont aucun sens, mais elles ne servent qu'à des fins de prototypage Nous pouvons donc simplement les laisser telles quelles, et maintenant nous pouvons nous déplacer Nous avons maintenant cette échelle, que, pour être honnête, nous n' allons pas vraiment utiliser car j'ai l'intention d'englober toute cette zone avec une boîte de collision Le joueur ne peut donc pas simplement sauter hors de la couche. Vous vous souviendrez peut-être que beaucoup de jeux, si vous êtes un joueur expérimenté, comportent des zones interdites avec des murs invisibles, etc. Et la raison pour laquelle c'est fait est les développeurs ne veulent pas que vous alliez là où vous n'êtes pas censé aller. Par exemple, dans ce cas, je grimpe cette montagne et si je la dépasse , il n'y a rien, je tomberai hors limites et quand j'atteindrai un certain point de la carte, l'acteur sera détruit Je resterai indéfiniment coincé dans une animation suivante. De toute évidence, ce n'est pas l'idéal et nous ne voulons pas que cela se produise. Donc, en général, nous ajoutons des collisions invisibles, sorte que vous ne pouvez pas vous déplacer en dehors de cette zone. Encore une fois, cela peut être facilement fait, en allant placer les acteurs et on peut simplement le rechercher en tapant block. Nous avons maintenant un volume de blocage. Nous ajoutons donc cette baisse au niveau, pouvons supprimer nos secteurs de jeu. Vous pouvez également cliquer ici et accéder aux volumes et au volume de blocage ou simplement effectuer une recherche ici. Nous avons donc maintenant ce volume bloquant, dont il suffit de le dimensionner mettre à l'échelle pour être plus précis, et c'est parti. Et juste à des fins de démonstration, je vais le faire très grand de tous les côtés et placer ce mur invisible au milieu. Appuyons donc sur Play et essayons d'entrer dans le milieu de la scène. Vous verrez peut-être quelque chose de familier. Je ne suis pas en mesure d'aller au-delà de ce point. Visuellement, cela n'a aucun sens, mais il y a un volume bloquant ici qui m'empêche de bouger. Donc, ce que nous devons faire à la place, c'est simplement le réduire, allonger et le faire en sorte qu'il englobe le niveau. La façon la plus simple de le faire est d'utiliser collision entre joueurs pour voir la collision entre joueurs pour voir exactement où le joueur ne peut pas ou ne peut pas se déplacer. Et nous ne voulons pas que le joueur aille plus loin que cela. Rendons-les encore plus grands. Et nous pouvons réduire le nombre de clics à tout moment. Nous pouvons cliquer à nouveau sur le bouton Shift. La rotation est de 90 %. Sympa. Degré, décale-toi encore une fois et déplace-le jusqu'ici. Et maintenant, bien que cela puisse sembler être une clé parce qu'ils ne sont pas parfaitement alignés, pour être honnête, ils n'ont pas autant d'importance que nous n' allons pas les voir ici. De toute évidence, vous voudriez que vos cases de collision soient précises. Mais pour le prototypage, vous l'aurez compris, vous ne devriez pas vraiment vous en inquiéter ce qui concerne le prototypage, pendant le développement du jeu, il est très important prototyper et de tester rapidement leurs jeux Dans la plupart des cas, si le jeu sort et qu'il n'est pas amusant, c' est parce qu'il n'a pas été prototypé et testé correctement au stade initial Et lorsque les développeurs se rendent compte que leur jeu n' est pas vraiment amusant, ils ont un choix à faire. Ils doivent soit continuer à développer le jeu dont ils savent qu'il n'est pas amusant, soit essayer de le rendre amusant d'une manière ou d'une autre. Ou ils le font simplement passer et le publier tel quel, ou bien que ce soit le plus idéal du point de vue de la moralité, ils doivent redémarrer l'ensemble du projet. Donc, le meilleur moyen de savoir si ce que vous créez est amusant ou non est de créer un jeu. Et pour concrétiser votre concept de base en matière de gameplay, même si vos modèles ne ressemblent à rien, il vous suffit d' utiliser ce que vous avez sous la main, créer un prototype rapide de ce que vous essayez créer et d'en faire un jeu. Donc, ce que nous faisons ici maintenant, juste un environnement aléatoire avec du feuillage, des débris, etc., et cette plateforme très aléatoire, très probablement, selon la plupart des gens, selon la plupart des gens, très moche, que nous allons utiliser comme zone de jeu J'essaie de saisir toutes les occasions possibles pour expliquer les fonctionnalités supplémentaires des outils mis à votre disposition dans la scène. C'est pourquoi nous allons faire certaines choses différemment. Nous ne voulons pas que ce soit l'heure de la lumière. Donc, ce que nous allons faire, c'est contrôler L et l'assombrir. Je vais le rendre encore plus sombre plus tard. Nous allons ajouter des sources de lumière au-dessus d'ici sur toutes ces lignes. Et ces sources de lumière agiront comme nos principales sources de lumière. Et ce sera principalement un élément visuel, et la couleur de la lumière changera en fonction de ce que nous ferons dans le jeu. Mon idée est donc très simple pour le moment. Nous allons avoir des objets physiques tels que des sphères, et nous allons pousser ces objets physiques dans une certaine partie de l'arène où ils se déplaceront. Et votre objectif est de faire entrer un certain nombre de balles dans l'arène, et une fois que vous aurez terminé, vous serez libre d'opter pour cette plateforme. Et ce sera la fin de notre partie. Nous allons avoir des interactions. Et nous allons avoir une passerelle ici où se trouve notre échelle. Et il est fort probable que nous ajouterons des murs ici pour nous assurer que vous ne pouvez pas vraiment sortir sans trop vous fier au volume de blocage qui se compose simplement de blocs ici. Nous allons essentiellement ajouter un cadre, et nous allons ajouter des portes ici, quelque chose qui fonctionne comme une porte, comme un portail ou une clôture. Oui, c'est la clôture, alors discutons maintenant de ce dont nous avons besoin pour cela. Nous avons besoin d'une source de lumière. Nous allons réutiliser notre plan précédent avec quelques différences Nous allons utiliser une clôture pour simplement ajouter une illusion qui, par exemple, s'il y a une collision , bloque notre mouvement à l'extérieur. Nous allons utiliser les accessoires que nous avons main et nous aurons besoin d'objets physiques, qui seront des formes de base régulières comme des sphères Et nous devrons créer des plans pour nous déplacer dans notre zone qui servira essentiellement de porte Tu dois marquer des points. Et ce sera concept de base du gameplay de cette démo. En fait, il s'agit d'un prototype de jeu très simple nous créons juste pour voir s'il en est un, ce qui est probablement la partie la plus importante du développement du jeu pour voir si vous pouvez créer quelque chose d'amusant Pendant que je vous montre comment faire tout cela, vous n'êtes pas obligé de me répéter étape par étape. Vous pouvez créer quelque chose d' amusant tout de suite. J'essaie de faire en sorte que nous puissions en apprendre le plus possible sur le processus de développement de jeux dans The Unreal, tout en essayant de ne pas vous faire perdre trop de temps Et à garder à l'esprit, ce ne sont que des éléments de base. Chaque élément de l'irréel est très compliqué si vous creusez suffisamment, assez profondément Par exemple, comment fonctionne la lumière, comment fonctionnent les ombres ? Comment fonctionnent les fonctions du matériau ? Comment créer des matériaux qui bougent ? Imaginez tous les jeux auxquels vous avez joué ou que vous avez vus dans votre vie. Chaque élément, même relativement simple des jeux, des logiques, des fonctions, si vous essayez de l'implémenter dans un jeu, tout à coup, de nombreux points apparaissent que vous ne savez pas comment faire ou comment ils fonctionnent En tant que développeur de jeux, le plus important est de comprendre comment les engrenages s' enclenchent. Comment un objet interagit avec un autre, comment un matériau réfléchit la lumière, comment les ombres interagissent avec la lumière, comment le paysage, les maillages, les maillages statiques, les personnages peuvent tous interagir les uns avec Comment pouvez-vous simplement ouvrir une porte simple qui est différente pour chaque jeu ? Gardez à l'esprit la façon dont tout est fait. Et dans la prochaine conférence, nous allons créer nos éléments de jeu. Pour l'instant, finissons de configurer notre scène. 19. UE5 FC07 05: Commençons maintenant par ajouter des lumières à notre scène. J'ai déjà utilisé notre lampe créée précédemment, ai agrandie, je l'ai pivotée vers le bas, et en fonction de votre scène, n'hésitez pas à faire de même Juste pour trouver une position relative où vous aimeriez avoir vos lampes. Maintenant, vous pouvez regarder l'écran et vous rendre compte soudainement  : Oh, il y a beaucoup d'espace à couvrir. Il faudrait que j' ajoute manuellement cette lumière, exemple, toutes les cent unités ou toutes les 500 unités pour couvrir l'ensemble de ma scène. Vous pouvez, par tous les moyens, le faire. Mais le problème, c'est les lumières que nous allons ajouter à notre scène à seront nombreuses à cause de la taille de la scène que j'ai créée, et il me faudrait beaucoup de temps pour les placer toutes manuellement. Au lieu de cela, nous allons créer une fonction et avoir un script de construction qui s'exécute pour fonction et qui peut placer ces acteurs dans notre scène. Alors faisons-le. Créons d'abord un nouvel acteur. Et ce ne sera qu'un acteur. Nous l'appellerons BP light spanner. Ouvrez-le, enregistrez-le au cas où. Pour des raisons visuelles, ajoutons ici quelque chose qui peut agir. Ajoutons simplement une flèche pour voir dans quelle direction se trouve le X. Si vous vous demandez à quoi cela ressemblerait dans le niveau, si nous l'ajoutions simplement ici pour faire syn root par défaut, compilez Nous allons avoir cette flèche rouge qui indique où se trouve ce plan, ce qui sera utile Nous pouvons l'étendre pour que ce soit plus facile à voir. L'acteur lui-même n'aura pas d'importance car il ne sera utilisé que pour la construction. Donc, si nous avons créé cet acteur, c'est parce que si nous le créons ici dans le script de construction, il s'exécutera sur chaque copie de ce plan Mais je veux juste un acteur qui utilisera certain nombre d'acteurs légers, et après cela, je retirerai simplement cet acteur pour ne pas faire ça d'incitant Donc, ce que nous allons faire , c'est passer au script de construction, et certains d'entre vous ont peut-être déjà essayé, mais si vous allez voir un acteur après classe, vous vous dites peut-être que je vais simplement cliquer sur Lamp, Blueprint, et pour, disons, obtenir Actor Transform, joignez-le ici et ici Vous pensez peut-être : OK, tout ce que j'ai à faire, c'est ça. Et si je vais sur ma carte des niveaux et que j'appuie sur Play, il y aura une deuxième lumière. Je vais le simuler pour ne pas avoir à me refroidir de cette façon. Eh bien, vous avez techniquement raison. Il est engendré De toute évidence, nous n'avons pas dit comment apparaître, mais il y a un problème Je n'ai toujours placé qu'un seul acteur et cet acteur est attaché à cet acteur. Nous l'avons donc fait avec une étape supplémentaire. Maintenant, votre idée est peut-être, d'accord, et si nous utilisions un script de construction ? C'est de cela qu'il s'agit. Vous ne pouvez pas copier directement l'acteur spawn dans le script de construction C'est pour des raisons de composition, de calcul, car cela peut facilement casser le moteur Si vous créez un acteur qui crée un acteur qui crée un acteur, ce n'est généralement pas une bonne idée. Maintenant, que pouvons-nous faire pour que cela se produise ? Nous ne pouvons pas l'utiliser, et nous ne pouvons pas l'utiliser parce que nous ne voulons pas que ce soit dans le jeu, nous voulons que ce soit avant le match. Et le script de construction se produit avant que l'acteur ne soit créé. Cela se produit avant de commencer le jeu ou même de faire quoi que ce soit dans le gameplay. Pour cela, nous devons créer une fonction. Créons donc une fonction. Nous l'appellerons spawn actor. Ils ont réussi à tout gâcher d'une manière ou d'une autre. Et nous allons passer au script de construction et appeler la fonction spawn actor Et nous allons le copier et le mettre dans notre fonction spawn actor Non, ici. Acteur Span. Nous allons juste le faire comme ça pour le moment, compiler et revenir au niveau, et vous verrez peut-être, attendez que rien ne se passe. Cela est dû au fait que cette fonction ne doit être appelée par le script de construction en premier lieu Donc, ce que nous allons faire, c'est cliquer sur Spawn Actor et sur Call dans l'éditeur Cela signifie que cela peut désormais être appelé avant le début de l'événement pendant l'éditeur. Nous allons donc y retourner. Et cet acteur a sélectionné Light Spawner. Et nous avons maintenant un bouton appelé spawn Actor. Vous cliquez dessus, nous avons un acteur qui apparaît. C'est exactement ce dont nous avons besoin, et vous pouvez maintenant déplacer cet acteur, cliquer à nouveau et réapparaître. Maintenant, ce n'est toujours pas exactement ce dont nous avons besoin. Mais tout d'abord, obtenons de la valeur ou résistons à la rotation et à l'échelle. Ici, nous devons nous assurer d'obtenir les bonnes valeurs pour l'acteur d'apparition. C'est donc un acteur que nous essayons de créer. Pour comprendre comment cela fonctionne, examinons d' abord ce nœud. Ce nœud s'appelle get actor transform. transformation désigne la rotation, l'emplacement et l'échelle de l'acteur. Dans ce cas, il s'agit de la cible de ce nœud lui-même. Cela signifie donc qu'il recrute ces acteurs. Je veux dire par là cet acteur à flèches que nous avons créé. Il obtient ses valeurs rotation, de position et d'échelle, et nous le plaçons ici dans ce nouveau nœud, qui crée le nœud lampe avec les paramètres descendants. Il s'agit donc essentiellement de copier exactement les mêmes valeurs de l'acteur lui-même. Mais ce n'est pas toujours ce dont nous avons besoin. Donc, dans ce cas, en particulier, nous devons modifier la rotation et l'emplacement. Nous pouvons conserver l'échelle telle qu'elle est car l'échelle par défaut pour cet acteur est de cinq, comme nous l'avons déjà configuré ici, et l'échelle de la lampe est également de cinq Nous n'avons donc pas vraiment besoin de la modifier, mais nous pouvons le faire à partir de la fonction ici si nous le voulons. Tout d'abord, séparons-nous. La raison pour laquelle nous le faisons est que nous ne pouvons pas modifier facilement ces neuf valeurs en même temps. Nous les avons donc divisés, et nous avons maintenant des paramètres individuels que nous pouvons associer les uns aux autres. Nous pouvons simplement mettre l' échelle telle quelle, mais nous devons modifier notre position et notre rotation. Donc, ce que nous pouvons faire pour la rotation, vous voudrez peut-être : Oh, d'accord, je vais juste ajouter la valeur que je veux en et peut-être même juste un plus. Mais vous remarquerez peut-être que cela ne fonctionne pas avec la rotation. Si vous le faites avec un vecteur, cela fonctionnera. Maintenant, la raison en est que la rotation est généralement pas une simple valeur. La rotation des acteurs se fait donc en degrés et ne se fait généralement pas en valeurs flottantes. Donc, ce que nous devons faire à la place, c' est le mettre ici tel quel pour le moment et nous allons scinder davantage strtin et cracher strtin ici Donc, si vous regardez nos rotateurs, nous avons ici une rotation de -180 pour la lampe et 179, eh bien, ce qui n'est en fait qu'une erreur de flottement, 180 pour notre Z. Mais si nous déplaçons notre acteur ici et, disons, pivoter Maintenant c'est 90, 180 Donc ce que nous voulons, c'est qu'il soit toujours -180, mais nous voulons que l'axe soit modifiable Donc, ce que nous allons faire, c'est garder Y tel quel. Il n'y a aucune vraie raison de le changer. Et pour X, nous pouvons simplement saisir la valeur de -180. Quant à Z, nous allons ajouter Et ce que nous allons ajouter ici, c'est que nous allons y jeter un coup d'œil. Si nous devions inverser Z, cela regarderait vers le haut et nous devrons regarder vers le bas. Alors, faites-en 108. J'ai peut-être fait une erreur, mais nous le saurons bien assez tôt. Jetons-y donc un coup d'œil en passant à notre niveau. Ça, c'est pour le moment. Et cliquez dessus et cliquez sur Spawnctor Oui, j'ai commis une erreur. Vous remarquerez peut-être que cette valeur est incorrecte. Il est 90. La raison est que la valeur par défaut est 90. J'aurais donc dû plutôt calculer la différence entre les deux, et pour 180 et 00 cent 80. Donc, pour que ce soit exactement comme je le souhaite je devrais le faire pivoter davantage. J'ai besoin d'une température supplémentaire de -90 degrés. Alors faisons-le -180 et voyons comment cela fonctionne maintenant. Encore une fois, cela n'est pas correct. Nous obtenons le bon X, mais nous n'obtenons pas la bonne rotation ici car nous ajoutons le -180 au-dessus de Essayons -170. Compilez, et essayons maintenant. Supprimons celui-ci et créons un acteur. Maintenant, c'est comme il se doit. Le problème était donc que nous avions un angle positif de 90 degrés par défaut sur cet acteur, et nous avions besoin que la différence entre celui-ci et ce vecteur d'étendue soit de 270. Maintenant, revenons en arrière et essayons d' utiliser cet acteur. Donc, si je veux que tous les acteurs s'alignent sur celui-ci, me faut les as et les mettre ici. Copiez-collez. Et essayons-le maintenant. Oui, c'est plus ou moins pareil. Maintenant, pour nous assurer que nos autres excès sont également corrects, nous allons simplement les copier et les placer jusqu'à ce qu'ils soient superposés, nous allons simplement les déplacer Maintenant, leurs points d'origine sont les mêmes, et nous pouvons maintenant les déplacer et cliquer sur Span actor. Maintenant, il ne s'agit que d'un secteur d'envergure, et il regorge d' acteurs fonctionnels que nous pouvons utiliser. Maintenant, ce n'est toujours pas exactement ce dont nous avons besoin. Cela signifie toujours que ce sera techniquement un peu plus facile que de faire glisser l' acteur requis à chaque fois, cela signifie tout de même que nous devons faire glisser cette flèche tout autour et répéter ce processus Il existe un moyen de le rendre encore plus facile. Maintenant que nous pouvons créer ce secteur où nous le voulons, mettons-le ici comme point d'origine et modifions-le davantage notre plan directeur Vous avez peut-être remarqué que nous avons ce nœud de localisation de transformation. Donc, si nous ajoutons une valeur supplémentaire ici, disons que c'est actuellement sur l' axe Y. Donc, si vous placez un axe Y supplémentaire, disons 500 unités, et que vous appuyez sur spawnctor, nous le faisons apparaître Disons que nous voulons faire apparaître 500 lampes toutes les 500. Unités. Jetons maintenant un coup d' œil à notre plan ici. Nous avons ici ce qui est responsable de notre position Y, de notre position sur l'axe Y. Et ce que nous voulons, pour le premier acteur créé, c' est qu'il ait 500 ans. Le deuxième sera à 1 000, troisième à 1 500 et ainsi de suite. Cela signifie que nous devons ajouter 500 à cette valeur à chaque fois qu'elle se répète, mais nous devons également y ajouter une sorte de limite car nous ne voulons pas que cela se produise à l'infini Donc, ce que nous pouvons faire ici, nous pouvons appuyer sur la touche N et cliquer sur le plan Cela créera ce nœud appelé D N, qui signifie faire un certain nombre de fois et pendant un certain temps cette valeur est cette valeur ici. Nous allons l'obtenir et l'intégrer dès le départ. Et ce sera notre comptoir. Ce que nous allons faire, c'est le faire, disons, trois fois pour le moment. Et chaque fois que nous le faisons, le nombre entier sera évidemment zéro, un, deux, trois. La raison pour laquelle il commence par des zéros par un entier et les entiers commencent par zéro Et nous devons nous assurer de modifier cette valeur, n'est-ce pas ? Nous allons donc diviser cette structure, multiplier cette valeur par 500 et la mettre ici. Ce qui se passe actuellement, c'est que selon l'itération de ce processus, il prendra cette valeur, la multipliera par 500 et placera cet acteur dans la valeur de cet emplacement Revenons donc au niveau et voyons comment cela fonctionne. Supprimons d'abord cette lampe et cliquez sur Spawn Actor. Maintenant, vous remarquerez peut-être que cela ne fonctionne pas correctement. Parce que cela ne nous ramène pas au. Ce spa lui-même ne le répète pas. Vous devez avoir la fin de Cela limite juste le nombre de fois que cela peut arriver. Donc, ce que nous allons ajouter, c'est ajouter un nœud racine ici pour le rendre propre, puis nous allons le remettre ici et le déplacer pour avoir des emblèmes d'organisation, nous pourrons utiliser davantage dans ce projet Maintenant, nous revenons en arrière, compilons , supprimons ceci maintenant et cliquons sur Spactor que nous avons maintenant Si vous regardez la valeur de localisation ici, la différence sera exactement de 500 Maintenant, c'est exactement ce dont nous avons besoin. Maintenant, nous avons juste besoin d' une sorte de calcul du nombre de ces acteurs dont nous avons besoin. Et disons, je vais juste regarder les choses sous les yeux et disons que j'en veux 15 Je peux simplement cliquer sur 15 ici, le compiler, l'enregistrer au cas où l'enregistrer également. La création de plusieurs acteurs peut faire planter votre PC en fonction la logique que vous avez insérée et des spécifications de votre PC. Et je crois que j'ai bien écrit en gras. Oui, nous avons maintenant 15 lampes avec une. que nous avons créées brillent un peu Les lumières que nous avons créées brillent un peu grâce aux matériaux dont nous disposons, et nous les réparerons plus tard. Maintenant, nous voulons que cela se répète, mais cette fois sur d'autres murs, nous pouvons simplement prendre cet acteur que nous avons, le déplacer. Et maintenant, cette fois, nous allons le mettre entièrement sur le côté gauche. Maintenant, lorsque nous cliquons à nouveau sur ce bas, nous aurons ce spawn dans cette ligne spécifique Vous vous demandez peut-être, d'accord, pourquoi il est apparu de cette façon et pas dans le même sens que la flèche la fois précédente Cela se produit parce que lors de la rotation de cet acteur dans le plan nous avons créé, nous contrôlons les thèses Ça vient de l'acteur Transform. Nous ajoutons avec force l' emplacement de transformation dans un axe différent Nous n'utilisons pas vraiment directionnalité quant à l'endroit où il doit apparaître Nous pourrions faire en sorte que cela se produise. Nous pourrions obtenir la rotation actuelle de l'acteur, la rotation de la flèche, par exemple, et la saisir sous forme de valeur. Mais tout ce que nous essayons de faire ici, c'est de les faire en ligne droite. Et cette ligne verte est l'axe Y, bleue est Z, rouge est X, et notre grosse flèche rouge est sur le X. Donc, si vous voulez apparaître dans le X, il suffit de la mettre ici, compiler et d'appuyer sur le nectar du spa Maintenant, l'emplacement de ma flèche est un peu flou. Alors, redisons les choses comme ça. Voyons s'ils ont l'air bien. Ils vont bien. Et maintenant, ce que nous pouvons faire, c'est le déplacer complètement là-bas. Maintenant, nous devons le faire pivoter et assurer que vous ignorez les fluctuations de lumière. Cela est dû à la lucarne et aux réglages d'exposition. Et maintenant, encore une fois, nous avons besoin que cela se produise sur l'axe Y. Mais cette fois, si nous le faisons comme ça, compilons et cliquons sur Spawctor, cela sera inversé Cela se produit parce que nous avons une valeur positive et nous sommes passés du Y X positif à un négatif. mes excuses, du négatif au positif, valeur supérieure Donc, au lieu de cela, vous pouvez mettre un signe négatif ici, compiler, comme spactar et maintenant nous avons des lumières De toute évidence, ils ne sont pas placés correctement pour le moment. Oui, c'est beaucoup mieux. Et maintenant, nous faisons exactement la même chose. Encore une fois, nous le déplaçons. La raison pour laquelle nous le faisons pivoter et nous nous déplaçons est que nous obtenons une rotation réelle à partir de la rotation de l'acteur. De cette façon, nous n'avons pas à le faire pivoter à chaque fois. Et maintenant, nous allons à nouveau nous séparer, et évidemment, ce sera une erreur. Nous avons besoin qu'ils soient sur l'axe X maintenant. Donc, ce que nous allons faire comme avant, nous allons simplement le déplacer de Xxxs et si nous réessayons, eh bien Donc, en créant un script de construction une seule fois, et je crois avoir légèrement égaré ces lampes, je dois donc les poser manuellement Oh, non, j'ai un peu mal fait la géométrie. Ça devrait aller. Nous ne cherchons pas la perfection ici, nous sommes juste dans un prototype. Et le mieux c'est de créer un script de construction, juste un acteur de spa, comme nous le faisions maintenant c'est que l'acteur de span lui-même n'est pas nécessaire pour rester dans le niveau. Nous pouvons le supprimer du niveau, et nous avons réglé toutes ces lumières d'acteur Blueprint et maintenant nous pouvons les ajuster. Donc, avant de le faire, sélectionnons-les tous. Et je voudrais tous les ajouter au dossier. Lumières. Et maintenant, nous pouvons simplement passer à n'importe quel plan. Désolé, il n'y a pas de plan, cliquez sur le plan d'une lampe, nous passons directement dedans, et nous pouvons maintenant régler le Ajustons donc les valeurs. Nous pourrions rendre ces valeurs modifiables et le faire depuis l'éditeur, etc., mais nous pouvons simplement le faire également avec des programmes ici Alors allons-y. Voyons à quoi cela ressemble lorsque nous procédons de cette façon, compilons. Comme nous avons beaucoup de vecteurs, compilation peut prendre beaucoup de temps. Et réduisons la portée des cônes. Je veux qu'ils soient comme des projecteurs et qu'ils atteignent 30. Je veux aussi qu'il en soit 30. Compiler. Voyez à quoi ils ressemblent maintenant. J'aimerais faire légèrement pivoter ce projecteur , alors sélectionnez-le spécifiquement et faites-le pivoter. Voyons les visages ici de cette façon. Donc, quand vous avez sept degrés, compilez avec le moment présent, je ne veux pas. Je pense que nous avons plus de lumière ici. Retirez-le. Juste pour vérifier s' ils ont des lumières supplémentaires ici. C'est ce que nous faisons. Et maintenant, nous avons la configuration de l'éclairage peut-être même un peu plus 60. Ces diapositives ont maintenant besoin d'un rayon un peu plus grand. Alors, faisons-en 35. Et pour ce qui est de l'adhésion, faisons-en 35. Le noyau interne peut être n'en être qu'un. La souffrance peut atteindre 25. Compilez-le, revenez en arrière. Ce n'est pas ce que je veux du cône. Revenons à 25 et 2 500 devraient suffire. Et maintenant, si vous jouez, il existe différentes couleurs, et elles devraient changer de couleur, car c'est ainsi que nous les avons configurées dans notre plan précédent Maintenant, jetons un coup d' œil à nos projecteurs, et j'ai changé mes valeurs pour 15 15 lors de l'autentation de 2004 Et maintenant, nous avons ce résultat où nous avons des projecteurs, ces couleurs Maintenant, ce que je vais essayer de faire c'est de les déplacer au fur et à mesure qu'ils déplacent la scène. Mais avant cela, je n'aime pas le fait que notre matériau soit de cette couleur. Si vous avez des lumières qui bougent, j'aimerais que mon matériel soit un peu plus foncé. Et c'est peut-être un peu trop sombre au départ. Rendons-le un peu plus clair , mais pas si brillant que ça. Nous pouvons donc tout voir, mais ne pas en avoir certains qui nous aveuglent les yeux Je ne veux pas d'ombres provenant du soleil, alors déplacons-le jusqu'à ce que nous arrivions à une position qui nous convient. Quelque chose comme ça ? Non Ce genre de truc, il suffit de le cocher jusqu' à ce que vous l'obteniez comme vous le souhaitez. Oui, c'est bien mieux. Maintenant, je ne veux pas, parce que nous aurons beaucoup de couleurs pour les lumières, je ne veux pas que les couleurs s'entrechoquent, alors je vais en faire une couleur plus foncée. Et je vais mettre la rugosité à une, car je ne veux pas que le matériau brille trop. Passons à une couleur plus foncée pour le bleu C. Voyons voir. bleu foncé Le premier. La deuxième couleur peut être beaucoup plus foncée. Peut-être pourriez-vous le faire encore plus sombre. Sauvegardez-le et jetez-y un coup d'œil. C'est bon Et maintenant, appuyez sur Play. Maintenant, nous avons des couleurs assez faciles à voir, et maintenant je veux les déplacer légèrement. Nous allons donc créer une nouvelle fonction pour cela. Et faisons-le ici avec une chronologie. Donc, ce que nous allons faire ici c'est créer une chronologie, et nous allons ajouter un nœud de séquence ici. Nous allons avoir une séquence. Nous allons le faire une fois, et nous allons ajouter un nœud Do Once. Fais-le une fois. Attendez, toutes mes excuses. Nous n'avons pas besoin de le faire une seule fois. Nous avons juste besoin d'un calendrier. est l'heure C'est l'heure, oui. Toutes mes excuses. Je ne sais pas pourquoi je dois le chercher si longtemps. Mais faisons-le comme ça pour ne pas vous gêner. Nous allons avoir un calendrier. Et cette chronologie, nous allons y jouer dès le début et une fois qu'elle sera terminée, nous allons attendre, disons, une seconde et nous y rejouerons. Maintenant, nous allons jouer une pièce de théâtre. Donc, la raison pour laquelle nous allons le faire, c' est que nous allons ajouter une piste, et nous allons ajouter une piste vectorielle. Et nous allons faire preuve d'un peu de créativité avec la chronologie. Nous pouvons donc avoir maintenant Z, X et Y, et nous allons faire quelque chose d'un peu différent. Nous allons créer une variable et nous allons randomiser ces valeurs dans la chronologie 20. UE5 FC07 06: Maintenant, si nous examinons cette chronologie que nous venons de créer, nous avons quelques vecteurs que nous pouvons mettre ici, et nous pouvons transférer ces vecteurs dans et nous pouvons transférer ces vecteurs rotation de nos projecteurs pour nous déplacer autour des lumières Mais comme il ne s'agit que d' un ensemble de valeurs que vous elles seront les mêmes à chaque fois. Ainsi, chaque chronologie se terminerait. Nous jouerions depuis le début ou là où ça s'est arrêté la dernière fois, et ça recommencera. Ce n'est pas ce que je souhaite pour ce niveau. Je veux que les lumières se déplacent un peu dans une certaine direction de manière aléatoire et qu'elles reviennent en arrière. Nous allons donc changer la façon dont nous utilisons notre chronologie. Nous allons ouvrir notre chronologie, supprimer cette piste que nous venons de créer pour les vecteurs verts et ajouter une piste flottante. Et cette piste flottante se situera entre les deux, disons pour l'instant, gardons-la telle quelle. Nous allons l'appeler Alpha. Nous allons le compiler, revenir à Event graph. Et maintenant, nous avons une valeur flottante qui ne mène nulle part pour le moment. Nous allons le faire. Mettons-le dans Let's make it. Les lumières pivotent pendant 8 secondes, et en 8 secondes, la valeur augmentera à partir des clics effectués par Unity Shift. La valeur passera de zéro à 28. Huit secondes. Huit secondes, nous passerons à huit. Et assurons-nous de l' avoir correctement configuré. Oui, nous avons la bonne configuration. Nous cliquons donc dessus au point clé à zéro, valeur temporelle zéro, à 8 secondes, valeur un Maintenant, ce nœud Alpha nous permet de mettre la valeur 0-1, et la valeur passera à 0-1 en 8 secondes Eh bien, supprimons ces lignes pour que tout reste organisé. Et nous allons ajouter un nœud vectoriel arp. Donc un vecteur arp. Et nous allons mettre notre Alpha ici. Maintenant, pour expliquer ce que fait arp, fonction arp passe essentiellement de la valeur A à la valeur B progressivement en fonction de la valeur Alpha Alpha est généralement une valeur de 0 à 1. Et à zéro, c'est A, à un, c'est B. Et c'est utile lorsque vous utilisez cette chronologie pour modifier progressivement l'emplacement, la rotation ou quoi que ce soit d'autre. Vous souhaitez le faire au fil du temps sans utiliser eventi. Dans l'état actuel des choses, tout d'abord, ce ne sera pas aussi fluide que l'utilisation de LAP Et deuxièmement, c'est plus de performance. Donc, pour le moment, nous allons le tester, nous allons avoir une valeur. Nous jouerons depuis le début et nous imprimerons sur la chaîne cette valeur. Oh, non, on ne peut pas le prévoir. Il y a trop de lumières dans la scène. Donc, au lieu de cela, ce que nous allons faire, c'est déplacer les lumières. Maintenant, nous devons obtenir une rotation, mais par erreur, j'ai créé un vecteur Larp Corrigons plutôt ce rotateur ARP, car nous allons travailler avec Et nous allons faire pivoter le projecteur. Ne vous excusez pas, toutes mes excuses. Réglez la rotation. Définir la rotation relative, je crois, est la bonne solution. La différence entre une rotation relative et une rotation du monde est que la rotation par rapport à son parent serait la rotation du projecteur par rapport à un maillage statique. Mais la rotation du monde serait une rotation dans le monde lui-même. Cela peut être un peu compliqué à comprendre tout de suite, mais c'est exactement ce que c'est. Vous devez tester les différences lorsque vous utilisez Unreal, nous allons donc les mettre ici Donc, ce que cela fera, nous obtiendrons une valeur comprise entre zéro et B et l'Alpha le fera pour nous, en effectuant une rotation lente. Pour l'instant, introduisons des valeurs fixes. La valeur du spot est actuellement de 90 Y, et le reste est de zéro, zéro. Disons que nous voulons que cela passe à 90-30. Nous allons le compiler, l'enregistrer, revenir au niveau et appuyer sur Play. Il ne se passe rien. Maintenant, la question intéressante est rien ne se passe parce que nous ne changeons pas la valeur ou que nous ne changeons pas la valeur Intéressant. Arrêtons. Le problème est que les projecteurs ne sont actuellement pas mobiles. Revenons donc en arrière, cliquez et déplaçons-nous. Maintenant, c'est plus complexe en termes de calcul, mais pour ce que nous essayons de faire Maintenant, nous avons des projecteurs qui se déplacent. Comme ils ont disparu parce qu'ils n'ont pas assez de rayon, nous pouvons augmenter ce rayon assez facilement. Passons donc à la fenêtre d'affichage. Et actuellement, nous en avons 2000. Portons-en à 8 000 pour le moment, restons compilons, revenons en arrière. Voyons comment cela fonctionne maintenant. Et voyons comment les lumières sont configurées actuellement. Nous recevons donc cette étrange lumière. Encore une fois, c'est principalement à cause de la façon dont il est pivoté. Jetons maintenant un coup d'œil à nos lumières et voyons pourquoi ces étranges artefacts commencent à se produire. Nous n'avons pas d'ombre appropriée. Donc, lorsque nous le faisons pivoter, la lampe elle-même, c'est bien, mais en fait, nous ne faisons pivoter que le projecteur du plan Nous ne faisons pas réellement pivoter la lampe. Donc, lorsque nous faisons cela, nous obtenons une coupure et la raison de cette coupure est que la lumière entre en collision avec le maillage, ce qui nous donne Pour éviter cela, nous pouvons modifier les canaux lumineux, etc., pour ne pas entrer en collision avec la lumière du maillage, ignorer sur les canaux lumineux, et peut-être pouvons-nous même créer un nouveau maillage qui ne nous pose pas ce problème Mais le moyen le plus simple d'apporter des corrections est de placer le projecteur sur le projecteur, le déplacer légèrement en dehors du maillage, de le sauvegarder et de le presespionner. Et maintenant, nous aurons ce genre de gamme. Maintenant, il couvre entièrement l'ensemble de la zone, et c'est exactement ce que je voulais. Mais nous ne voulons pas que cela se passe exactement de la même manière à chaque fois. Ce que nous allons faire maintenant, c'est d' abord l'organiser un peu. Je n'ai pas aimé à quel point c'est encombré. Et nous allons avoir ce lenode et nous allons tout déplacer vers le bas. Pleins feux ici. Maintenant, la valeur que nous obtenons de ce que nous saisissons avec force est l'emplacement ou la rotation d'origine de la lumière, qui est de 90, et nous réduisons à 30 pour la déplacer dans la scène Mais si nous voulions élargir la gamme, nous devons également modifier une autre valeur. Donc, si vous le mettez ainsi et que vous augmentez rotation sur l'axe Z, nous pouvons également lui donner un mouvement à gauche et à droite. Alors regardons maintenant, la rotation que nous aimerions lui donner est comprise entre 90 et -90 Nous avons donc une plage de rotation. Donc, ce que nous pouvons faire, nous pouvons donner une rotation Z moins, par exemple, et une rotation P 90. Encore une fois, ce n'est pas définitif. Je le fais juste pour une démonstration. Et si nous appuyons sur Play, nous avons maintenant des lumières rotatives. 21. UE5 FC07 07: Nous avons notre lumière ici, et nous voulons remplacer toutes nos références à ce sujet par celle-ci. Nous pouvons donc accéder à nos lampes, les sélectionner toutes, cliquer avec le bouton droit de la souris et remplacer les acteurs sélectionnés par BPight Si vous pouvez copier des propriétés ou les ignorer, nous allons ne pas copier les propriétés, nous allons donc simplement cliquer dessus et nous allons les remplacer. Nous allons y consacrer une seconde, et maintenant nous les avons tous remplacés. Ils sont tous trop intensifiés. Réduisons-les donc. Faisons une échelle Et maintenant, elles sont toutes bien ajustées. J'aimerais aussi les préciser un peu. Oui, mettons-en un peu par écrit et changeons. Aucune rotation, réinitialisez la rotation. Faisons également une rotation de 90 degrés à 90 degrés. Maintenant, toutes nos lampes ont été remplacées, et nous pouvons à nouveau tester notre logique cubique. Disons-le de cette façon et resélectionnons nos lumières. Et nous pouvons simplement cliquer sur Cible et cibler ce cube. Appuyez sur Play. Rien ne se passe car nous avons supprimé Even Tick de celui-ci. Ajoutons-le juste une seconde. Reposez-le, compilez, enregistrez, enregistrez également. Maintenant, toutes les lumières de notre scène suivent ce cube. Ce qui est plutôt sympa. Maintenant, nous allons laisser ces notes de côté pour le moment. C'est notre fonction pour suivre la cible. Ajoutons-les tous dans un seul commentaire. Suivez les cibles. Nous allons le garder comme ça pour le moment. Et nous allons revenir au plan de notre lampe et commencer à copier certaines fonctionnalités Supprimons cela car nous n'en avons pas besoin. Nous en aurons besoin pour les lumières aléatoires en tant que telles. Utilisons-le. Je ne souhaite pas utiliser de tableau pour cela, car j'utiliserai plutôt des nombres entiers aléatoires et des valeurs flottantes. Je vais donc le copier et le mettre ici. Si je compile, j'aurai des erreurs, je créerai une variable, je créerai à nouveau une variable, je compilerai à nouveau. Maintenant, ça marche comme prévu. Et maintenant, nous avons un projecteur, donc cela ne fait que tirer parti de notre attention ici, car ils partagent le même nom. Et testons cela et voyons comment cela fonctionne. Dès le début de l' événement, il n'y a aucune valeur ici pour le moment Nous allons donc ajouter quelque chose bientôt. Appuyons sur Play. Rien ne se passe. Pas vraiment. Les lumières regardent juste dans un endroit étrange. Alors allons-y, adaptons-le. Donc c'est censé faire -90, voyons voir. Nos lampes sont intéressantes. Oh, si vous ne l'avez pas attaché à la plaque de départ d'Evan. mes excuses. Ce n'est pas le bon. Je n'arrête pas de mélanger le plan de la lampe avec un nouveau. Allons-y. Cela ne fonctionne toujours pas comme il se doit. Jetons-y donc un coup d'œil. Chronologie de Went Play. Et dans la chronologie, nous faisons quelque chose de mal en allant directement à cette valeur, nous étions censés définir la rotation relative. Après cela, passons à cette valeur, jouons. OK, maintenant ils regardent tous vers le bas. Nous n'avons pas encore de couleurs aléatoires ou de configuration quelconque, nous allons donc y remédier dans une seconde. Et nous avons notre calendrier, notre délai. C'est trop désorganisé, et cela rend les choses plus compliquées qu'il ne le devrait Nous allons donc organiser cela un peu Modifions-en complètement son emplacement. Ajoutons maintenant un commentaire dessus et appelons-le appelons-le random mover but Nous allons le compiler, et maintenant nous l'avons organisé. Nous allons diviser cette épingle de structure, et nous allons la rendre aléatoire Emplacement aléatoire dans la zone de portée. Comme nous l'avons découvert précédemment, X n'a pas trop d'importance pour les lumières. Mm. Maintenant, examinons nos valeurs. Quoi ? Sélectionnons les valeurs des points de repos du projecteur , au cas où nous pourrions tout aussi bien sélectionner tous les plans, car ils pourraient vérifier que l'actionnement est correct pour tous Et nous ferons en sorte que nos projecteurs soient nos projecteurs ici , selon des rotations étranges Réparons-les également. Nous le réparons à partir du plan Je vais le réparer pour chacun d'entre eux. Assurez-vous donc de ne pas avoir de rotations aléatoires étranges. Cliquons sur le projecteur pour le tester et y jeter un œil. Y X est clair comme le XX compte également, et Z aura de l'importance si nous partons de zéro Tous nos X comptent donc dans ce cas, comme il se doit. Maintenant, la question est de savoir quelle est la portée que nous voulons qu'ils aient. Disons que je ne veux pas que la lampe ait plus de 40 à 40 ou zéro Maintenant, -90 et 40. Donc, pour l'axe Y, qui est celui-ci, minimum devrait être de -90, MX devrait être de -40 Restaurons-le. Pour notre valeur X. Encore une fois, faisons 40 et -40. Je ne veux pas qu'il ait une trop grande portée car les lumières se brouillent les unes dans les autres (-40) et pour ce qui est de l'axe Z, il fait à peu près 180 degrés. Faisons donc -90, toujours 90 positif, c'est juste une rotation progressive, et nous voulons que cela ne soit que d'un côté, donc nous limitons la plage Alors maintenant, sauvegardez tout au cas où, espionne. J'ai des lumières qui bougent au hasard. Découvrez ce qui se passe sous nos projecteurs ici. Nous en avons deux. Voyons voir, assurons-nous. Il s'agit d'une valeur de zéro pour le moment, lumière, projecteur, projecteur etc. C'est zéro, et c'est -90 et plus 40 Avons-nous commis une erreur avec YXS ? Minus oh, oh, c'est le problème. -40 à -90. J'ai fait une erreur en prenant du poids. Cela devrait être correct, je crois. Le nombre que nous voulons se situe entre -90 et -40. Testons à nouveau. Intéressante la façon dont ils se déplacent en dehors des radios. Z va bien. X. C'est bon aussi. Je suppose que c'est une combinaison de trois valeurs aléatoires qui crée ce problème Donc, si vous mettez X entre zéro Non, zéro, non. Alors assurons-nous peut-être de ne même pas passer en -90. Faisons en sorte que ce soit moins, disons zéro. Zéro, c'est peut-être trop. Disons donc moins et obtenons une valeur correcte. La raison pour laquelle certaines lumières commencent à s'éteindre est à cause de la façon dont Spotlight obtient leurs numéros. Donc, si vous copiez ce nombre, collez, cliquez sur Spotlight et collez ce numéro, nous obtiendrons la même valeur, et la valeur X n'est pas la raison. La valeur Y est. Comme vous pouvez le constater, nous copions maintenant cette valeur car, contrairement aux acteurs de lumière précédents, ces acteurs partagent la même façon dont ils sont façonnés. Et la façon dont nous avons implémenté notre acteur cette fois-ci rend difficile de sortir en utilisant les mêmes paramètres. Donc, ce que nous devons faire, c'est gérer l'axe Y. Faisons-le de cette façon. Nous avons des axes X et Z pour nos manigances. Donc, si vous mettez l'axe Y à 50, par exemple, je suis sûr que cela ne fonctionnera même pas correctement. Notre projecteur est braqué sur 50 , soit 50 points tout en haut dans le ciel. Alors faisons en sorte que ce soit -50. Compilez et appuyez sur Play. Encore une fois, -50 dans cette partie de la scène, c'est tout. La seule façon de vraiment résoudre ce problème est de nous concentrer sur notre attention ici. Nous nous séparons. Nous mettons la rotation à zéro, nous la ferons regarder vers le haut, ce qui n'est pas ce que nous voulons. Et si vous le supprimez du maillage lui-même, compilez-le et réinitialisez-le. Maintenant que nous l'avons retiré du maillage statique, il ne prend plus en compte la rotation du maillage statique. Maintenant, ils sont à zéro. Alors essayons-le maintenant. Maintenant, le problème est qu'ils n'évoluent que dans une direction négative. Nous allons donc revenir sur Nous allons donc revenir nos projecteurs et voir les valeurs dont nous avons besoin aujourd'hui. La valeur -60 de ce côté se trouve à l'intérieur. Et si nous regardons cet endroit, maintenant, le positif 60 est à l'intérieur. Nous ne voulons pas qu'il soit trop aléatoire et qu'il sorte des limites de l'axe Y. Donc, au lieu de cela, nous pouvons faire une valeur entre les deux. Deux axes et moins cert et cert. Nous allons le compiler et jouer. Cela aura. Cependant , certaines lumières s'éteindront simplement à cause du fonctionnement du randomiseur C'est très bien. Nous allons réduire le plafond de valeur pour chacun d'entre eux, car nous ne voulons pas qu'ils dépassent trop les limites, et je vais même le réduire à 20 et 20, car je préférerais qu' ils rappellent qu'à l'intérieur du x, c' car je préférerais qu' ils rappellent qu'à l'intérieur est bien, car il s'agit simplement rotation sur les cent 80 degrés Et il y aura des lumières étranges qui tourneront autour de nous, certaines s'éteindront, ce qui est bien. Comme vous pouvez le voir, ils circulent au hasard. n'est pas la solution idéale, évidemment, mais c'est bon. Nous pourrions également ajouter des fonctionnalités supplémentaires pour qu'ils ne ciblent que cet emplacement central, mais cela nous obligerait à effectuer de nombreux calculs vectoriels complexes, ce que nous n'allons pas faire Dans ce cas, nous pourrions également effectuer des calculs basés sur le vecteur direct. Ainsi, par exemple, nous pourrions leur faire calculer leur vecteur direct et viser uniquement l' endroit qu'ils regardent, mais ce n'est pas ce que nous allons faire dans ce cas. Maintenant, testons cela. Nous avons sélectionné notre cube, et maintenant passons à l' événement B et jouons. Et voilà, ajoutons pour l'instant l'event tick et voyons comment cela fonctionnerait. Et il fonctionne comme il se doit, part celui-ci , je crois, et c'est parce que j'ai modifié ses réglages d'éclairage, et j'ai oublié de le remettre également en place. N'oubliez pas quels acteurs vous avez modifiés. Faites-le modifier, qui ne fonctionnait pas correctement, et celui-ci, qui ne fonctionnait pas correctement. Et maintenant, tout devrait être comme il est. Maintenant, nous en avons essentiellement terminé avec le placement aléatoire de la lumière, ce qui est bien pour le moment. Nous allons ajouter une séquence ici, et ce sera 01. Pour zéro, nous allons ajouter notre couleur aléatoire. Allons-y et commençons à jouer et à zéro, nous avons activé cette fonction de changement de couleur aléatoire. Nous allons donc le copier et le recopier ici. Lorsque vous copiez une fonction, ils vous demanderont de créer ou de ne rien faire. Nous le créons et nous l' aurons en tête. Nous allons le mettre ici. Supprimez cette note pour le moment. Nous l'avons d'abord et nous avons notre succursale. Nous allons créer cette variable car nous en aurons besoin plus tard. Nous changerons le nom ultérieurement. Et nous avons intégré cette fonctionnalité de couleur aléatoire et nous la compilons au cas où. Assurons-nous que nos variables sont nommées correctement. Nous avons la rotation avec rotation relative, nous avons la cible. Les plantes ne sont pas nécessaires. Compilez, et jetons un coup d'œil à notre nœud de couleur aléatoire. Et jetons un coup d'œil à notre fonction polaire aléatoire ici. Nous l'avons, que nous allons simplement copier. Vous pourriez probablement tout copier et le remettre ici à l'échelle. Démouler, remettre dedans. Nous allons créer cette variable, créer une couleur de lumière variable. Compiler. Retournez à la lumière, vous pouvez changer de couleur, définir la couleur de la lumière, Poppy, soyez poli Cette fonction de changement de lumière, cette couleur claire, cette pile de pop qui va le mettre. Maintenant, testons-le. Et cela fonctionne. Et nous avons un changement de couleur aléatoire toutes les quelques secondes, comme c' était le cas auparavant. Le fait que les lumières s' éteignent est gênant, mais cela n'affectera pas autant notre gameplay, car nous allons avoir une fonctionnalité d' éclairage supplémentaire, qui permettra à la lumière de suivre certains acteurs Maintenant, nous avions également cette fonctionnalité pour les fermetures de portes ouvertes Nous allons le copier, mais nous allons le réutiliser plus tard Changez de fonction et nous n'avons pas pu copier le délai. Nous pouvons simplement l'ajouter nous-mêmes. Nous ne pouvons pas. Toutes mes excuses. Nous ne pouvons pas parce que c'est dans la fonction. Nous devrons ajouter ici. Et commentons également cette section. Couleur aléatoire. Faisons-le violet. Couleur aléatoire Tesaro Et nous avons maintenant un événement à portes ouvertes et un événement à huis clos, mais je vais les renommer. L'un d'entre eux sera localisé. L'autre est le score cible. Et nous allons changer ce chiffre en deux. Voyons quel serait le nom correct pour une cible générée par Target. La cible appelée a été générée. Et nous allons avoir ceci. Pour l'instant, nous allons en rester là. Nous allons le réutiliser plus tard maintenant, nous avons notre système pour la lumière Allons sélectionner un Speedbard, appuyer sur Play. Et vu à la première personne, ça a l'air bien. Il y a de la lumière qui circule dans la scène, et nous avons notre cube au milieu. L'une des choses que je veux faire maintenant, c'est que la lumière cible notre personnage cible notre personnage lorsqu' il se déplace. Nous allons donc ajouter un nœud I. Et si la cible se trouve à proximité, la lumière suivra le joueur ciblé. Et si la cible n'est pas assez proche, nous allons randomiser la lumière Donc, si vous vous souvenez de cette cible que nous avions, retirons ce nœud cible d'ici maintenant. Ou pour être plus précis, nous devons ajouter un nœud acteur défini, définir un nœud cible. Définissons donc le nœud cible. Et nous allons le configurer pour que nous ayons besoin d'une entrée ici. Nous allons définir le personnage du joueur. Donc, pour l'instant, procédons de cette façon. Lorsque les événements commencent, le jeu commence, nous allons en faire notre objectif. La coche de l'événement fera suivre la rotation de l' acteur. Ou maintenant, nous allons supprimer la chronologie. Et appuyez sur Play. Alors le jeu commence, toutes les lumières sont concentrées sur le personnage du joueur. Ce n'est pas ce que nous voulons. Nous voulons que seules les lumières les plus proches se situent entre, disons, les 500 unités les plus proches à suivre l'acteur. 22. UE5 FC07 08: Maintenant, vous calculez la distance entre deux acteurs dans les trois mondes à l'aide de vecteurs. Donc, ce que nous devons faire pour cela c'est créer le personnage du joueur. Nous l'avons ici. Donc, pour l' instant, copions-le. Et nous trouverons l'emplacement de l'acteur. Copiez-le à nouveau, placez-le et ici. Et nous allons les soustraire les uns des autres et obtenir un vecteur Oh, nous n'avons pas besoin de liens vectoriels vectoriels. Donc, pour l'instant, imprimons cette valeur sous forme de chaîne. Et mettons-le dans un ventiq maintenant. Compilez, sauvegardez, rejouez. Oh, toutes mes excuses. Nous devons nous assurer de le mettre dans la chaîne, pas dans la durée. Compilez, appuyez sur Play. Comme vous pouvez le voir, les lumières calculent la distance entre le personnage et elles-mêmes. Et l'unité la plus proche que je puisse voir ici est d'environ 1 400. Maintenant, ce que nous pouvons faire, c'est avoir cette valeur que nous obtenons. Et si cette valeur est inférieure, h alors disons 2 500 ou même 2 000. Il est vrai que si cette valeur est inférieure à 2000 sur eventi, procédons de cette façon Si c'est vrai, lumières suivront le personnage en train de jouer. Maintenant, vous voyez que nous avons des lumières qui nous suivent, et si nous nous déplaçons, les lumières les plus proches nous suivent instantanément. Et lorsque nous sortons de la fourchette, fur et à mesure que la distance augmente, une valeur haussière baisse, elle ne nous suit plus De toute évidence, nous ne voulons pas que cela nous arrive instantanément. Nous utiliserons un calendrier pour cela dans un instant. Mais pour l'instant, c'est bon car nous ne faisons que tester le système de ciblage. Encore une fois, je remarque que nous avons une lumière ici dont je Nous allons le restaurer, le sauvegarder, et un autre ici. Je ne sais pas pourquoi j'ai modifié autant de valeurs, mais voici ce que c'est Assurez-vous de nettoyer après avoir modifié les valeurs à des fins de test, et ne le faites pas comme moi. Maintenant, cette logique fonctionne. Nous pouvons obtenir l'emplacement, distance, la distance directe pour être clairs. Mais nous ne voulons pas que ce soit sur Aventi. C'est bon. Et ce dont nous avons besoin maintenant, c'est d'une fonctionnalité de suivi cible appropriée. Nous allons l'étendre un peu et y mettre tout ce qu'il contient, et ajoutons de l'espace supplémentaire pour pouvoir travailler. question que nous avons maintenant est de savoir quand devons-nous recevoir ce chèque et quand devons-nous commencer à obtenir la rotation et comment ? Nous ne voulons pas le faire avec les événements, car c'est très performant Au lieu de cela, nous pouvons le vérifier au lieu de vérifier chaque image toutes les quelques secondes. Et comme nous pouvons le faire facilement, nous pouvons le faire en suivant la séquence ici et empêcher que cette chronologie ne se produise. Ensuite, retirons-le. Bien sûr. Nous allons donc contourner ce problème aussi bien que nous en aurons besoin plus tard. Nous avons ces couleurs aléatoires que nous ne déclencherons pas toujours Nous n'allons donc pas les toucher, mais nous voulons simplement que cela se déclenche. Faisons en sorte que ce soit quelques secondes s'il n'y a pas de cible pour le joueur. Vous pouvez donc placer un nœud de branche ici et le faire passer par la branche. Et si c'est faux, nous allons avoir cette fonction comme précédemment. Et si c'est vrai, nous allons le déposer dans la section inférieure où nous allons suivre le personnage du joueur. Maintenant, la façon dont nous pouvons le faire est de le remettre dans la valeur ici au lieu d'avoir deux branches, ce n'est pas nécessaire. Ajoutons une chronologie. Et cette chronologie peut désormais fonctionner de la même manière. Nous allons avoir avoir un rotateur Larp Et nous allons définir notre Alpha ici et découvrir comment fonctionne la rotation. La nouvelle rotation sera celle-ci et celle des acteurs. Dans ce cas, nous voulons que la lumière suive à fond, et pas seulement les projecteurs. C'est pourquoi nous allons modifier certains paramètres ici. Nous ne faisions que déplacer les projecteurs. Mais avec notre nouvelle lumière, nous pouvons déplacer toute la lumière elle-même. Nous ne sommes pas limités à nos projecteurs, alors assurons-nous de régler ce problème avant de passer à autre chose. Ce paramètre relatif est correct, mais il doit s'agir simplement d'une rotation et non d'une valeur relative. Et nous allons trouver la localisation des acteurs. Rotation des acteurs. Obtenez Rotation Actor. Nous allons faire tourner ces acteurs . Nous allons présenter notre candidature. Ils vont le régler, et nous allons à la toute fin, ne pas faire pivoter le projecteur car il n'y a aucune raison réelle de le faire uniquement avec Spotlight Nous allons le copier à nouveau et définir la rotation de l'acteur, et l'acteur lui-même, nous obtenons une nouvelle valeur de rotation et nous la mettons à jour. Essayons-le à nouveau, appuyez sur Play. Les lumières se déplacent comme elles le devraient. Certains d'entre eux sont restés sur place parce que nous avions le nœud de la succursale. Nous nous déplaçons ici et les lumières les plus proches ne bougeront pas. Mais la liste fonctionne comme il se doit. Jetons un coup d'œil à l'aide de la simulation et voyons comment les lumières s'allument. Oui, ils se déplacent. Toutes. OK. Maintenant, nous avons eu une erreur et ce mode d'erreur, parce que nous essayions d'accéder au personnage du joueur et joueur acteur, n'existait pas lors de la simulation, ce qui est très bien Nous n'en avons pas vraiment besoin lors des simulations. Et ici, c'est vrai, essayons-le en vrai. Cela se déclenchera ici. Notre deuxième chronologie va se déclencher. Et ce délai peut être plus court. Alors faisons-en une seconde. Et la valeur peut également en être une. Nous voulons que les lumières réagissent instantanément lorsque le joueur se trouve à proximité pour lui montrer qu'il faut le couvrir de lumière. Et nous avons ce nœud larp, qui calcule maintenant position de l'acteur et celle des cibles, et nous définissons notre cible en tant que personnage du joueur, c'est ce que nous allons faire Donc, si la longueur du vecteur entre les deux est suffisamment proche, nous allons définir notre cible Après avoir défini notre cible, nous allons jouer depuis le début. Nous allons modifier notre rotation actuelle, ce que nous ferons par justice En le réglant, nous allons évidemment définir notre propre rotation. Et cette rotation sera utilisée pour cacher au fur et à mesure que nous avançons dans la chronologie Nous faisons essentiellement exactement ce que nous avons fait ici, mais avec quelques légères modifications Nous allons donc procéder de cette façon. Maintenant, testons-le. PlesPlay et cela ne fonctionne pas comme il Nous avons nos alphas, nous jouons dès le départ. Nous n'avons pas nos mises à jour. Cela est dû au fait que nous n'avons pas ajouté ce nœud ici. Nous devons le mettre à jour, et nous devrions probablement aussi, si une fois terminé, ajouter un retour au nœud de branche en haut. Appuyez sur Play. Maintenant, c'est assez étrange. Nous n'obtenons pas les bonnes valeurs, et comme vous pouvez le constater, les lumières du dessus vont dans une direction étrange. Jetons un coup d'œil à ce qui se passe ici. Nous avons une rotation des acteurs, je veux dire eux-mêmes, et nous trouvons l' emplacement entre soi et B. Mais nous le mettons à jour à chaque image, ce qui n'est pas ce que nous voulons. Nous voulons définir la rotation ou le RB. Nous pouvons simplement copier cette valeur. Et mettez-le ici. Mais recombinez la broche de structure. Entrez la valeur du rythme ici. Ici, valeur de rotation B, jouez depuis le début, mettez la valeur sur B. Organisons cela un peu plus. Il y a trop de codes spaghettis. Renvoyez-y de la valeur. Compiler, sauvegarder, c'est jouer. Maintenant, au fur et à mesure que nous nous déplaçons, lorsqu'ils ne sont plus assez proches, ils se répartissent aléatoirement Bien qu'ils soient proches de nous, par eux, je parle des sources de lumière. Ils vont commencer à réagir. Maintenant, le problème est que les lumières qui se trouvent au milieu d' rotation aléatoire ne une rotation aléatoire ne se déclencheront pas à nouveau pour nous regarder Cela se produit en raison de la façon dont nous avons configuré notre nœud de succursale. Notre nœud secondaire commence ici, et nos voyants aléatoires vérifient pas toutes les secondes, mais toutes les 8 secondes, à cause de la façon dont notre chronologie est configurée Nous avons donc maintenant un léger problème où nous devons interrompre ce processus en cours et activer ce nœud de branche pour vérifier s'il fonctionne comme il se doit ou s'il doit simplement suivre. La façon dont nous pouvons le faire est d'appeler cela une autre branche du milieu. Je n'aime vraiment pas l'apparence de ce code de paquet, mais nous allons le laisser pour le moment. Malheureusement, nous ne pouvons pas transformer nos délais en fonctions. Maintenant, nous avons cette lumière qui est mise à jour chaque seconde, à chaque image, en fait. Donc, une fois cela fait, après chaque mise à jour, nous pourrions revérifier notre branche Compilons et voyons ce qui se passe. Cela a créé une boucle infinie. Cela ne peut donc pas être appliqué. Des boucles infinies feront instantanément planter votre PC. Nous devons donc trouver un moyen qui ne génère pas de boucle infinie, et le moyen le plus simple de le faire est d'obtenir un nœud de retard. À la toute fin, faites-le se déclencher toutes les 1 seconde. Nous pourrions le faire plus bas, mais ça devrait aller. Et mettez-le dans la succursale. Compilez, jouez. Parce qu'il y a un nœud de retard à cet endroit. ne s'agit plus d'une boucle infinie car elle ne se déclenche pas à l'infini à chaque seconde Maintenant, nous sommes ciblés et lorsque nous ne le sommes plus, ils se répartissent au hasard, ou du moins ils devraient Voyons ce qui se passe. Au centre de la carte, il ne devrait pas pouvoir nous cibler. Voyons ce qui va se passer. Les lumières sont désormais aléatoires. Mais comme nous ne leur avons pas accordé une grande marge de sélection aléatoire, les lumières se déplacent au dernier endroit où nous avons marché Ils essaient donc de nous suivre, et une fois qu'ils ont fini de nous outiller, ils essaient uniquement d' aller dans cette direction Donc, au lieu de cela, nous allons modifier les valeurs de la plage aléatoire. Et la façon dont nous avons ces valeurs, ici, n'est-ce pas ? Nous avons ces valeurs aléatoires en plage flottante, sur les axes Y et Z. Mais le plus important, c'est de savoir si Axis est là ? Comme c'est le cas pour être plus clair, Y et X X sont responsables du fait que les lumières sortent trop du champ. C'est pourquoi nous réduisons leur valeur de plage flottante aléatoire. Maintenant, nous devons trouver un moyen de nous assurer que ce qui vient de se passer ne se reproduise pas. Ce qui s'est passé ici, c'est que nous avons obtenu leur rotation d'acteurs, et après avoir défini leur rotation d'acteurs, ce A est devenu leur nouvelle rotation d'acteurs. Comme ce A correspond à la rotation de leurs nouveaux acteurs, ils ne sont pas réinitialisés à leurs paramètres initiaux Ainsi, ce que nous pouvons faire, c'est simplement au lieu de faire tourner les acteurs à chaque fois, ou pour être clair, lorsque nous aurons terminé cette rotation, nous pouvons réexécuter un nœud de branche sur la même branche. Comme je n'aime pas la façon dont cela est configuré, nous allons juste le réutiliser, nous allons le copier, mettre une version ici, nous allons ajouter un nœud de branche, et nous allons tester la même chose si c'est vrai, si c'est faux, et c'est terminé, fois la seconde écoulée pour cibler le personnage Si c'est faux, parce qu'il n'est plus à portée, et quand il l'est, si c'est à portée, nous allons simplement tout réinitialiser ici sur la couche inférieure. Et si c'est faux, nous allons réinitialiser rotation de A, afin qu'il puisse commencer à partir de son point initial. La rotation initiale de notre projecteur est donc zéro, zéro, zéro. Nous pouvons le faire exactement de même, nous pouvons donc simplement définir notre rotation. Ici à 000, et cela devrait être tout ce que nous devons faire. Après cela, nous pouvons simplement le brancher ici. Voyons maintenant comment cela va fonctionner. Ils se déclenchent tous sur nous. Ils se déplacent, ils perdent leur cible. Et une fois qu'ils ont perdu leur cible, ils ne fonctionnent pas correctement. Ils sont encore assez hauts. Et la raison en est que j'ai pris la rotation du projecteur au lieu du maillage réel, que nous utilisons, elle devrait être de -90 Assurez-vous toujours de vérifier vos valeurs et réessayons-le. Nous recommençons. Dès qu'ils perdent les cibles, ils devraient revenir à leurs valeurs initiales. Ils ne devraient pas être intéressants. Encore une fois, ils font de même. Ils suivent correctement la cible, mais ils sont bien trop nombreux. Oh, c'est un autre problème que nous avons parce que nous modifierons les valeurs ultérieurement. Initialement, la plage de lumière était calculée à partir du projecteur. Encore une fois, j'ai ici quelques projecteurs que j'ai touchés et que je n'ai pas restaurés Nettoyez toujours après votre test pour ne pas vous retrouver dans une telle situation. C'est assez courant, mais ce n' est pas une bonne pratique de ne pas nettoyer. Restaurons-le. Et nous avons notre maillage qui est désolé, celui l'acteur, qui est en train d'être complètement pivoté. Donc, si vous regardez notre rotation moins xs, cela remonte à zéro. Nous n'en voulons pas. -90 c'est ce que nous avons maintenant, vous pouvez également y jeter un œil Tu en as moins neuf. T La rotation initiale de cet acteur est de 180. Y. Je zéro, zéro, encore une fois, ce sont tous des problèmes liés à mes tests que je n'ai pas résolus auparavant Celui-ci est plus correct. Nous sommes donc dans la même situation ici. Vous avez un axe X complètement négatif. Nous avons zéro et encore zéro. Je ne sais pas pourquoi. Les lèvres s'ouvrent. Et nous avons ce problème ici. Rien de tout cela n'a vraiment trop d' importance. Comme si nous ne faisions que simuler, nous obtenons un résultat similaire à celui que nous avions auparavant. Maintenant, le plus gros problème c' est lorsque le joueur n'est pas dans le niveau Nous pouvons donc ajouter un nœud valide. Nous avons donc ce que nous pouvons faire, c' est ajouter un nœud valide. Donc, si la cible est valide, ce que nous pouvons faire à la place, c'est que si la cible est valide, elle ne l'est pas, nous continuons simplement ici. S'il est valide, nous allons à la succursale. C'est temporaire, car je ne veux pas avoir la même erreur à chaque fois. Nous allons juste vérifier à nouveau les lumières, nous assurer que nous faisons tout correctement. Les lumières bougent trop dans certaines directions. Encore une fois, le plus gros problème, c'est que Z devient très élevé en nombre, alors qu'il devrait simplement rester à -90 Nous allons perdre le contrôle. Nous n'en avons plus besoin. Nous l'avons testé, nous en avons donc besoin et nous nous sommes assurés que le problème ne l'était pas. Donc, au lieu d'avoir ces valeurs très élevées, nous allons avoir un minimum de -90 et un maximum de -60 Voyons ce qui va se passer maintenant. Ils se déplacent très près du champ de tir. Alors faisons-le plutôt un peu plus. Faisons le positif pour cinq. Jouons. Nous pourrions également simplement prendre le juste milieu et le faire passer de 45 à -45, ce qui le rendrait aléatoire dans toutes les directions Ce qui est très bien. Maintenant, rejouons-le, voyons comment cela fonctionne. Et au bout d'un moment, ils perdent leur directionnalité. Ils devraient revenir à leur mode fonctionnement antérieur. Maman, hum. Voyons donc ce qui se passe ici. Nous avons notre station. Donc, une fois que c'est terminé, nous vérifions si nous sommes au-delà de 2000, car lorsque c'est faux, simulons cela et examinons ce qui se passe ici. Sélectionnons cette lampe, qui est le numéro 28. Développons-le et appuyons sur Play. Et pour notre debug, acteur, sélectionnez 26. Que se passe-t-il en ce moment ? Cela ne fait que se répéter, définir sa propre rotation une fois l'opération terminée, et le délai est créé. Oh, d'accord, c'est le problème. Nous n'atteignons jamais la note finale car cela revient toujours en arrière et crée ce problème où l'on joue toujours à Okay. En tant que tel, ce que nous devons faire , c'est faire en sorte que ce retard se produise réellement. Désolé, le point d'exécution de ce délai ne remonte pas complètement au passé et se déroule simplement dans le bon sens. Donc, ce que nous pouvons faire, c'est ce que nous avons. Lorsque c'est terminé, nous avons ce délai, et lorsque nous l'avons, nous définissons la rotation réelle, et nous devons, une fois tout cela terminé, vérifier le nœud de la branche. Au lieu de le renvoyer directement en arrière, nous pouvons ajouter à nouveau ce nœud de branche. Et avant de poursuivre, organisons correctement tous ces nœuds. La seule façon de le faire est d'obtenir cette valeur et d'en faire une variable afin de ne pas avoir à tout refaire, à chaque fois. Donc, ce que nous pouvons faire, c'est transformer cela en variable, en faire une variable, et nous devons définir cette variable. Pas tout ça. En transformant tout cela en fonction, nous allons le réduire pour qu'il fonctionne. C'est ce que l'on appelle distance couche. Distance à parcourir. Et quand nous en avons besoin, nous en avons besoin avant cette succursale. Et chaque fois que nous en avons besoin, nous pouvons simplement ajouter cette fonction. Au lieu d'avoir ce spaghetti de code, c'est tout simplement inefficace Donc, ce que nous faisons, distance par rapport au joueur, faites-le glisser vers le bas. Et on recommence ici, distance par joueur. Cela permettra simplement de vérifier la distance par rapport au joueur si c'est le cas. Voyons les choses, si la distance par rapport au joueur est inférieure à 2000 unités. Moins de 2000. Nous définissons cette valeur et nous renvoyons cette note. Donc ici, si la distance est inférieure à 2000 unités, tout cela se passe comme avant. Et là, après la mise à jour, seconde passe, le délai se produit, et après le délai, nous prenons de la distance par rapport au joueur. Si la distance qui nous sépare actuellement du joueur, après cette seconde de retard pendant la mise à jour de cette chronologie, est inférieure à 2000, nous revenons en arrière et revérifions ou nous n'avons même pas à vérifier, nous allons directement à succursale, car nous l' avons déjà configurée Vérifie la distance par rapport au joueur et nous partons s'il tombe, rien ne se passe, et tout cela continue de fonctionner jusqu'à ce que tout soit terminé. Alors maintenant, essayons à nouveau. Et voyons-les et pressons. C'est ce qui arrive. Ceci est vérifié. Nous attendons que ce soit terminé, ce qui prendra 8 secondes. Au bout de 8 secondes, il est terminé et se rétablit tout seul. Parfait. Si vous le testez, vous remarquerez peut-être que vos lampes ne fonctionneront pas correctement, et c'est la raison. De par leur fonctionnement, ces fonctions ne produisent cette valeur lorsqu'elles sont réellement déclenchées. Et lorsque nous aurons le vrai ici et que nous reviendrons en arrière, si nous ne vérifions pas la valeur de la distance par rapport au joueur, cette fonction ne fonctionnera pas correctement. Et ce que nous devons faire, c'est nous assurer que seuls les nœuds concernés doivent réellement arriver ici, et nous devons nous assurer qu' concernés doivent réellement arriver ici, avant que la branche ne se déclenche, nous déclenchons l'événement distance par rapport au joueur. De cette façon, nous serons en mesure de nous assurer que la valeur, vraie ou fausse en fonction de la distance parcourue par le joueur, est réellement exacte. Nous allons donc compiler, jouer, revenir au niveau et voir comment cela fonctionne. Et une fois qu'ils ne peuvent pas nous trouver, ils reprennent leurs rotations aléatoires, et lorsque nous nous rapprochons, ils nous remarquent et ils commencent à nous suivre partout Maintenant, évidemment, nous pourrions le modifier pour rendre les lumières plus précises Vous ne voudrez peut-être pas limiter davantage la portée, etc., mais nous allons continuer comme ça pour le moment, car nous allons également changer les lumières et mais nous allons continuer comme ça pour le moment, les fonctionnalités en fonction du gameplay Ce ne sera pas toujours aussi aléatoire, car les lumières environnantes se concentreront sur les objectifs si ceux-ci se trouvent à proximité Avant de commencer à implémenter les éléments du gameplay, modifions une fois de plus notre éclairage. Nous avons des lumières qui se déplacent dans le niveau et nous les faisons sortir du niveau. Cela se produit parce que nous leur donnons des nombres aléatoires. En tant que tels, ils n'ont pas vraiment de point sur la carte sur lequel ils essaient de se concentrer. C'est une solution facile, en particulier celle que nous avons déjà mise en œuvre. Arrêtez la simulation. Et nous pourrions leur donner une valeur et modifier cette valeur par cette valeur aléatoire pour nous assurer de les placer dans une certaine zone, toutes les lumières se focalisent sur une certaine zone. Ce que nous pouvons également faire, utiliser notre cible get target déjà établie et l'utiliser comme espace réservé sur lequel la lumière peut target déjà établie et l'utiliser se concentrer Nous avons donc déjà ici cette logique que nous avons créée précédemment. Prenons cela et appliquons-le ici. Maintenant, nous avons un dernier aperçu de la rotation, et nous avons ces flottants aléatoires qui donnent des caractères aléatoires à cette valeur de rotation définie ici Ce que nous pouvons faire, c'est combiner ces deux rotateurs, ce qui nous donnera une valeur qui n'est pas complètement aléatoire Combinons maintenant les rotateurs A et B, et nous introduisons cette valeur de retour combinée dans P. Maintenant, examinons notre niveau Il y a encore du hasard dans le niveau, mais ils vont tous essayer de se concentrer sur la lumière de la cible Et lorsque la cible se déplace, elle se déplace avec elle. Nous ne voulons évidemment pas que ce cube soit la cible. Ce que nous pouvons faire, c'est que cela reste plus ou moins au centre du niveau, et nous pouvons forcer cette valeur à la baisse. Et ce que nous pouvons faire, c'est copier cet emplacement. Retournez à BP Lit, supprimez get actor location de la cible et divisez le strcm. Voyons nos valeurs ici X Pourquoi ? Et Z compile presblow. Ils se comporteront de la même manière, mais ils ne ciblent plus ce cube en particulier. Ils tournent maintenant simplement dans le sens général autour endroit où ce cube était initialement situé. Vous pouvez également cibler le niveau lui-même, ou simplement rendre ce cube invisible, le poser et arrêter, mais il n' y a aucune raison de trop compliquer les choses lorsque vous pouvez coder les valeurs en dur, vous pourriez le faire de plusieurs manières, mais cela fonctionne tout simplement Maintenant, organisons notre code afin d'avoir plus de temps pour la prochaine fois que nous en aurons réellement besoin. Convertissons certaines des choses ici en fonctions. Nous ne pouvons pas ajouter de chronologie aux fonctions. Faisons-le, convertissons en fonction, réduisons la fonction spécifiquement. Appelons cela rotation, génération aléatoire. C'est là juste pour que tout reste organisé. Et je vais renommer cette fonction. Correctement. Assurez-vous de toujours tester vos plans. Et si cela fonctionne comme il se doit, vous pouvez simplement continuer. Oui, la plupart des lumières sont orientées vers l'intérieur. Nous pouvons également réduire les valeurs du caractère aléatoire afin qu'elles ne dépassent pas trop ce que nous voulons pour que cela soit suffisamment raisonnable Portons le score à 20 ou 20. Bien que les nombres aléatoires soient acceptables, il n'est pas idéal de les faire monter trop haut. Et maintenant, nous avons cet effet discothèque. Nous ignorons l' erreur. C'est parce que le joueur n'est pas réellement dans le niveau. Vous pouvez ajouter un nœud valide, mais cela ne sera pas réellement nécessaire lorsque nous en aurons fini avec cela. Alors prenons ça aussi. Et cette fois, ce que nous allons faire, aussi nous réduire à une fonction, mais c'est une fonction différente, car c'est une fonction qui examine le joueur, et nous allons tous les sélectionner , réduire la fonction. Emplacement du joueur trouvé. Je vais juste le nommer comme ça. Tout va bien. Nous pouvons revenir au graphique des événements, voir si nous devons organiser autre chose. Les sections de commande sont désormais trop grandes, alors réduisons-les. Voyons voir. Nous ne pouvons pas mettre cette chronologie dans la fonction car il s'agit d'un événement lié au temps, et il n'y a aucune raison réelle de réduire ces deux nœuds en fonction, car nous n'allons pas vraiment trop les réutiliser. Nous les avons d'une certaine manière ici, mais ce n' est pas vraiment une manière efficace de les intégrer à une fonction. Cela peut rester tel quel. Ces délais ne peuvent pas être ajoutés à la fonction ou aux macros. Et maintenant, nous avons une idée un peu plus claire. Nous avons toujours ces nœuds qui fonctionnent jusqu'au bout, mais c'est bon. Nous pourrions probablement améliorer l' apparence si nous nous réorganisions davantage, mais je ne veux pas perdre trop de temps ici Nous avons nos paramètres de couleur ici, et ensuite, nous allons les modifier lorsque nous implémenterons réellement des éléments de gameplay. Donc 23. UE5 FC08 01: Commençons maintenant à créer notre interface. Cliquez avec le bouton droit sur le dossier vide. J'ai déjà créé le dossier Interface, créé le vôtre et j'appelle votre interface Blueprint BPI for Blueprint, et je vais l'appeler underscore SCORE Compilez-le, enregistrez-le au cas où, et nous entrerons dans une nouvelle fonction ici dans l'interface. Nous allons le renommer et l'appeler goal score. Pourquoi j'ai eu L ? Je ne sais pas Nous avons donc cette interface maintenant. Créons-en un autre, et nous n'allons pas vraiment utiliser le suivant, mais je vais juste montrer comment il peut être utilisé. Nous allons l' appeler interacted. Et cette fois, nous allons ajouter un nœud de sortie et un nœud d'entrée. Un nœud d'entrée sera, disons, un arcteur de couches Voyons ce que nous pouvons faire Tout d'abord, ce que nous pouvons utiliser, nous pouvons utiliser un tel personnage. Ce sera juste pour une démonstration. Nous n'allons pas vraiment l' utiliser, et pour obtenir des résultats, ajoutons simplement une valeur d'intimidation à quelque chose Nous n'allons pas vraiment l'utiliser. Je l'enlèverai plus tard. Nous allons donc enregistrer ça. Et nous avons maintenant un avec sortie, un sans sortie et voyons voir. Notre score de but n'a pas de sortie et notre interface interactive en a une. Nous allons donc aller BP Goal et dans les paramètres de classe, accéder aux interfaces implémentées le panneau de détails sur le côté droit cliquer ici pour trouver notre score de buts PPI. Nous le compilons, et maintenant nous avons cette étape ici. C'est ce qu'on appelle des interfaces. Développez-le et vous verrez deux nouvelles options ici. Tout d'abord, passons au graphique des événements et cliquez sur Interactif. Nous avons cette fonction qui a une entrée par le joueur et une sortie. L'objectif est de créer une fonction largement disponible qui peut être modifiée dans chaque plan La fonction interactive que nous avons créée peut donc être utilisée, disons que nous avons nos entrées et sorties, évidemment, et que nous pouvons, dans nos graphiques d'événements, appeler cet événement par exemple, disons que qui a interagi peut être cet acteur lui-même Et dans le nœud joueur, nous pouvons ajouter la référence du joueur qui a fait cela. Vous pouvez également ajouter un événement interactif indiquant par exemple, des pièces Imaginez que vous utilisez une boutique dans un jeu et que vous organisez un événement interactif, et que cette valeur indique des pièces, qui permet de vérifier le nombre de pièces que possède votre personnage. Et dans ce cas, supposons que l'objet que vous essayez d'acheter coûte 100 pièces, vous pouvez ajouter moins d'un nœud. En fait, je vais changer la valeur de ces lingots ici pour qu'elle soit flottante, juste pour démontrer Des pièces. Compilez et compilez à nouveau, compilez à nouveau Et la raison de cette erreur, c'est qu'il n'y a aucune valeur ici. Supposons que le nombre de pièces que nous avons soit inférieur à 50 ou égal à l'objet avec lequel vous interagissez. Il s'agira d'une valeur vraie ou fausse, qui sera affichée comme si tout était faux. Donc, l'entrée pour la pièce que vous recevez reste ainsi parce que nous ne l'avons pas encore enregistrée Nous allons donc la sauvegarder. La prochaine fois que nous générerons cet événement, cela fonctionnera correctement. Cela nous permet d'obtenir des informations ou des variables, etc., auprès d'autres acteurs dont l'interactivité est activée par l'interface et d' obtenir facilement leurs variables sans avoir à les attribuer à l'acteur et à obtenir leurs valeurs en partant d'ici, en obtenant pièces, Nous n'en aurons pas vraiment besoin. Ce dont nous avons besoin, c'est de cet objectif. Vous ne pouvez pas le faire glisser, ce que vous pouvez faire est d' implémenter un événement. Maintenant, ce que cela fait, lorsque le score d'appel d'un événement est appelé via une interface, essentiellement par un acteur différent, cet événement se déclenche. Dans ce cas, nous voulons que cet événement marque un but. Supprimons cela, interagissons-le car nous ne l'utiliserons pas dans le plan d'éclairage Allons-y donc, pas des balles , un plan et un plan léger plus tard Nous allons passer aux paramètres de classe à l'interface, encore une fois, à la même interface, car ils auront la même interface partout, compilez-la. Nous n'avons pas besoin d'un événement unique auquel nous pouvons participer. Nous voulons que cela se produise lors d'un événement de défilement des objectifs. Nous allons donc le récupérer et le mettre dedans , nous allons compiler cette sauvegarde. Et ici, dans le PPG. Supprimons ces éléments, passons au graphique des événements. Nous n'avons pas besoin que cela se déclenche ici. Nous devons le déclencher partout dans d'autres interfaces. Donc, si nous accédons à la partition et que nous cliquons sur Appeler le message Scorr, cet événement sera appelé dans la section cible des acteurs qui interagiront Maintenant, vous vous demandez peut-être qui est à l'origine de cet événement. Dans notre cas, c'est cet arc. Nous allons donc le juste à des fins de démonstration, je vais juste le dire comme nous appelons cet événement axé sur les objectifs, donc nous allons simplement le faire glisser d'ici à ici. Vous pensez peut-être que cela fonctionnera comme prévu, mais ce n'est pas le cas, car nous ciblons l'épreuve du ballon, et le ballon lui-même n'a rien à voir. Il s'agit d'un acteur vide surmonté d'un composant de maillage statique. Mais nous avons besoin que vous interagissiez avec ce générateur de lumière, désolé, générateur audacieux Et pour que cela se produise, nous devons interagir directement avec elle en la plaçant comme cible. Mais cela impliquerait un casting, qui est bien, dans ce cas, car nous avons déjà établi qu'ils existeront au même niveau. Mais nous pouvons également ignorer cela en dotant tous les acteurs d'une interface. Et l'interface que nous voulons sélectionner est score de buts PPI, et nous la mettrons ici. Donc, lorsque cela sera déclenché, cela vérifiera tous les acteurs du niveau, et tous les acteurs du niveau qui ont activé cette interface verront leur événement de score de buts déclenché. Il n'est pas recommandé de l'utiliser pour des opérations basées sur le temps . Si vous participez à des événements, tombera très probablement votre PC tombera très probablement en panne si vous avez de nombreux facteurs Et si possible, vous souhaiteriez cibler directement s'il s' agit d'une option disponible. Et en fait, le casting peut convenir s'il y a une garantie qu'ils seront au même niveau que celui que nous avons établi ici. Maintenant, vous vous demandez peut-être si c'est le but, pourquoi agissons-nous de cette façon ? Pourquoi ne pouvons-nous pas simplement utiliser le casting ? En effet, si vous avez un personnage de joueur, et que votre personnage possède une interface activée, et disons que nous avons cette fonction appelée interagir, disons pour ramasser des objets. Donc, pour ce ballon, lorsque j'interagis avec lui, disons, je le ramasse simplement. Mais je peux aussi interagir avec cette porte et faire exploser ou interagir avec le MPC, lui parler ou interagir avec d'autres choses Je peux avoir un appel événementiel, dont les appels interagissent. Et le fonctionnement de cet événement n'est pas défini par le personnage de mon joueur, mais par les acteurs eux-mêmes, ce que nous allons faire maintenant. Nous avons déjà ajouté cet événement. Voyons si je n'ai pas oublié de faire quoi que ce soit, cela devrait simplement se déclencher et nous devrions obtenir une nouvelle balle. Oui Nous avons un nouveau ballon. Et si nous pouvons répéter ce processus à l'infini, comme chaque fois que nous le faisons, nous aurons une nouvelle balle Et nous avons une nouvelle ampoule. Modifions notre bowl spawn rabbit. Ajoutons un nœud, faisons-en trois. Ainsi, lorsque cela se déclenche, nous revenons en arrière et reprenons le processus. Et chaque fois que cela se déclenche, passons à la séquence. Nous réinitialisons notre compte ici pour qu'il puisse fonctionner à nouveau, et nous le refaisons Nous allons le tester. Res play. Ça explose. Nous recevons trois nouvelles balles, et nous pouvons refaire exactement la même chose. Vous obtenez trois balles supplémentaires, et vous pouvez répéter ce processus autant de fois que vous le souhaitez. Vous avez peut-être remarqué qu'ils apparaissent directement les uns sur les autres, et c'est bien, mais ce n'est pas exactement ce que j'aimerais voir à chaque fois En tant que tel, je vais les changer, vous savez, non seulement je changerai leur taille, mais je changerai aussi légèrement leur emplacement au fil du temps. Je vais donc ajouter ce vecteur. Nous ne toucherons pas trop le Z ou, en fait, nous le ferions aussi bien. Alors rendons-le à nouveau aléatoire. Faisons une valeur flottante aléatoire dans la plage. Charger. À portée. Encore une fois, copions-le trois fois. Nous ne voulons pas trop toucher l'axe Z. Nous ne voulons pas qu'il descende en dessous. En tant que tel, nous allons le faire passer entre zéro ou en fait, c'est mix drop from the sky zero et 200. L'axe Y peut être -50 plus 50. Et X peut être le même. Vous pourriez augmenter les chiffres pour faire plus de variations , etc., mais cela devrait suffire. Et n'oublions pas de le mettre, de le compiler, d'appuyer, de jouer. Nous avons notre point de départ. Rien ne se passe Nous avons notre balle. Faisons-le une fois. Nous recevons trois balles. Et le son Maintenant, changeons leurs tailles au hasard. Nous pouvons faire exactement la même chose qu'ici. Mais au lieu d'utiliser trois nœuds de plage, nous allons en utiliser un, et nous allons en faire un minimum, et un maximum, trois fois plus grand. Nous allons saisir cela dans les trois valeurs ici. Compilez, enregistrez, appuyez sur Play et testez-le à nouveau. Nous allons le faire à nouveau. Maintenant, nous avons des cerveaux, et ils sont de tailles différentes. Et nous devrions toujours être en mesure d' interagir avec eux. Nous le sommes. Maintenant que notre démarche est limitée, nous obtenons trois autres balles, et nous pouvons répéter ce processus pour remplir notre terrain de balles Comme nous ne lui avons fixé aucune limite, il ira à l'infini Nous pourrions ajouter un nombre infini de balles ou nous pourrions le limiter d'une certaine quantité en hochant à nouveau la tête, mais cela certaine quantité en hochant à nouveau la tête, n'est pas vraiment nécessaire car nous n' allons pas publier ce schéma, car il est uniquement destiné à des fins de démonstration Maintenant, nos interfaces sont appelées. Faisons-le aussi avec les lumières. Accédez aux paramètres de classe, implémentez l'interface. Encore une fois, nous allons implémenter exactement la même interface. Nous n'en avons qu'un, compilez-le, sauvegardez. Vous vous demandez peut-être quels sont les autres. Ce sont des interfaces fournies par le moteur par défaut que nous n'allons pas aborder dans ce cours. Quoi qu'il en soit, nous voudrons donc ajouter cette interaction ici. Plus précisément, nous avons un score cible ici. Donc, tout d'abord, déplaçons ça. Et nous allons le supprimer sur notre interface et l'implémenter. J'aimerais qu'ils apparaissent juste devant toi, mais c'est ce que c'est. Nous allons le faire glisser, et ce qui va se passer, c'est que nous allons le modifier un peu car nous avons une génération de couleurs aléatoire ici, et nous avons une cible générée ici Nous garderons la même logique que celle utilisée au niveau précédent. Si la cible est générée pendant 3 secondes, pendant 3 secondes, elle est définie sur False et si elle est fausse, nous poursuivrons notre opération pour les couleurs aléatoires Si ce n'est pas le cas, nous allons le maintenir au vert. Essayons-le maintenant. Nous allons appuyer sur Play. Et lorsque nous l'installons, tous les voyants passent au vert pendant 3 secondes. Et la prochaine fois que le randomiseur est censé entrer en action, tout devrait revenir aux couleurs aléatoires Mais le problème est que nous n'avons pas réellement déclencheur pour cette opération de couleur aléatoire. Ainsi, lorsque cela sera vrai, nous retournerons au nœud de retard et recommencerons le processus jusqu'à ce qu'il soit vrai, et la boucle recommence. Essayons encore une fois. Jouons. Mettons notre balle dans le cercle. Un, deux, trois, quatre, et nous retrouverons nos lumières. Couleurs aléatoires Maintenant, ce serait ennuyeux si nous avions cette immense arène, et que cet objectif soit toujours fixé au même endroit. Au lieu de cela, nous allons ajouter des fonctionnalités supplémentaires à l'objectif, et nous allons le téléporter à travers le niveau Et chaque fois qu'il se téléporte dans le niveau, les lumières environnantes l'observent, ce qui nous permet de reconnaître instantanément où il se trouve Nous allons essentiellement combiner l'interface et le ciblage, que nous avons initialement ajoutés aux éclairages. Avec le portail lui-même. Maintenant, nous avons cette porte, et nous aimerions qu'elle apparaisse, disons, à quatre endroits différents Nous pourrions faire comme des emplacements aléatoires infinis, etc., mais ce n'est pas une bonne idée que ce soit complètement aléatoire Ce que nous allons faire, c'est créer un tableau, et dans ce tableau, nous aurons des emplacements possibles pour cette démarche, et nous allons les parcourir un par un, et lorsqu'il n'y a plus aucun élément dans la faille du tableau, nous le réinitialisons Nous pourrions le faire de manière contrôlée pour être exactement pareil à chaque fois, mais nous pourrions également le faire de manière aléatoire Il y a donc des variations possibles aléatoires, et nous allons faire un choix aléatoire parmi les variations possibles. Revenons maintenant à notre objectif. Tout d'abord, faisons-le chaque fois que toute l'opération sera terminée, nous téléporterons cet acteur. Passons donc à un appel personnalisé et créons un nouvel événement. Événement personnalisé. Disons que c'est de la téléportation. Et ce que nous allons faire maintenant, définir transformation forme pour l'acteur lui-même, qui est une nouvelle valeur de transformation. Et ce que nous allons faire, calculer les endroits où nous allons le placer à chaque fois. Et dans ce cas, je crois que j'ai réussi à comprendre que c'est parce qu' il y a une erreur de compilation, donc ça ne peut pas vomir. Tout en bas, retirons-le. Je pourrais donc calculer manuellement l'espace ici, l'espace ici, l'espace ici et l'espace ici et utiliser le plan pour le placer directement dans des emplacements prédéfinis Ou ce que je peux faire, c'est passer aux formes de base et découvrir que je crois qu'il existe un nœud appelé cible, à moins qu'il ne soit supprimé dans la dernière version. Oui, nous l'avons ici. Point cible. Ce que nous pouvons faire, c'est utiliser ce point cible. Et je dirais que nous avons un seul point cible ici. Il y a une marque ici. C'est assez petit, mais allons-en jusqu'ici, de l' autre côté de l'écran, et prenons-en un autre, remettons-le ici et déplacons-le complètement ici. Nous organiserons leur emplacement par la suite et nous irons jusqu'au bout pour placer le dernier ici. Nous avons maintenant quatre points cibles. Nous pouvons régler. Nous pouvons revenir à notre objectif. Nous pouvons créer un emplacement. Tout d'abord, assurons-nous d'avoir des références pour eux. Donc, ciblez. Propulsez jusqu' au point cible On et nous allons le promouvoir en variable. Ou maintenant, je vais le supprimer. Je vais le convertir en tableau. Je vais le compiler. J' ajouterai quatre éléments. Et une fois que j' aurai fini d'ajouter quatre éléments, nous obtiendrons ce tableau, un point de départ Nous allons en ajouter pour chaque boucle. Pour l'instant, nous allons juste l'utiliser pour la tester, et nous allons exposer cela. Et ce que nous allons faire, nous allons sélectionner la cible. Et nous devrions avoir cela comme point cible ici. Nous allons les sélectionner un par un. On va au point cible. Un, deux, trois et quatre. Nous avons maintenant les cibles 1, 2, 3, 4. Nous allons enregistrer, revenir arrière et enregistrer à nouveau, juste au cas où nous voudrions faire en sorte que Actor Transform le mette ici. Et pour le moment, cette téléportation, juste à des fins de test, nous allons l'exécuter une fois que l'événement commencera à jouer Je crois que nous l'avons en haut, mais nous ne l'utilisons pas. En tant que tel, nous pouvons simplement le tester, le compiler, le sauvegarder, le rejouer. Il devrait donc disparaître de notre emplacement, et il apparaîtra ici La raison pour laquelle il apparaît dans les airs, c'est tout d'abord parce que notre cible n' entre pas en collision et faisons-le comme ça Maintenant, rejouons. Parfait Et nous devons nous assurer qu'il est correctement pivoté. Et maintenant, nous l'avons. C'est encore un peu en l'air. Il suffit donc de le faire glisser le long de la cible jusqu'au sol. Voyons si c'est bon maintenant et si c'est le cas, nous allons simplement nous contenter de voir si ça a l'air bien. Nous allons maintenant effectuer la transformation en Z de cette cible. Copions. Et nous allons l' appliquer à tous les autres. C'était environ 75 705, donc je l'utilise directement. Maintenant, nous devons également nous assurer que nos rotations sont correctes conséquent, ce que nous pouvons faire, obtenir un en particulier en passant par a. Dans ce cas, je suppose que nous pouvons simplement en obtenir une copie. Et si nous le disons ainsi, ce sera toujours le premier de la gamme, ce que nous avons déjà. Alors faisons-en un, qui est en fait le second, compilons, jouons, et voyons où il est apparu Il est apparu dans cette direction. La transformation est évidemment incorrecte. Alors allons-y, cliquons sur ce second et faisons-le pivoter pour l'intégrer vers la gauche. La ligne rouge est donc de ce côté. Et jetons un coup d' œil à celui-ci également, et ce sera probablement pareil, alors nous allons le faire. Essayons-le donc avec le second, compilons, sauvegardons et appuyons sur Play. OK, j'ai fait une erreur. Essayons encore une fois. Retournons en arrière. Ça a l'air bien. Maintenant, assurez-vous d'avoir la même chose pour celui-ci, qui est le numéro trois. Compilez, appuyez sur Play, et cela fonctionne correctement. Au départ, je l'ai mis un peu en arrière, pour qu'il ne se déclenche pas, mais comme nous le déplaçons trop, nous allons simplement le garder au milieu Oui Compilez-le, enregistrez-le, appuyez sur Play. Maintenant, nous allons en corriger la logique. Et pour ne pas nous encombrer, fermons celui-ci et passons au BPG et prenons-le au hasard Intéressant Élément du tableau aléatoire. Faisons en sorte qu'il soit aléatoire à chaque fois. Nous allons obtenir un élément aléatoire à partir de ces quatre points à chaque fois. Nous les avons déjà prédéfinis. Nous avons déjà les rotations, etc. Et ce que nous allons faire ensuite, c'est évidemment d'abord le tester. Il a disparu à cet endroit lorsque nous avons ajouté le jeu de pâtisserie Evans. Nous devons déclencher cela en appelant l'événement de téléportation, et c'est assez simple Nous allons juste appeler un événement de téléportation à partir d'ici Nous allons appeler la fonction Telepot. Nous allons enregistrer le jeu, et voyons voir, nous l'avons devant nous. Nous l'avons mis dedans. B Trois balles et une nouvelle porte. Ensuite, nous allons accéder à notre interface appeler une nouvelle fonction et la qualifier de nouvelle intéressante. Une nouvelle démarche ou de l'or. Compilez-le, enregistrez-le. Cela l' ajoutera automatiquement à tous les acteurs de l'interface. Dans ce cas, nous les voulons en lumière, vous pouvez donc simplement cliquer sur n'importe quelle lumière, accéder à leur plan Développez l'interface. Et au lieu de localiser la cible, nous allons la déplacer et implémenter un événement appelé Nouvel objectif. Et l'événement Un nouvel objectif fera plusieurs choses. Tout d'abord, nous allons faire en sorte que cela se concrétise avec un nouvel objectif. Et nous allons cibler la nouvelle porte. Mais d'abord, allons-y. Et une fois la téléportation terminée, tous les acteurs auront accès à l'interface, nous les listerons ici et appellerons cet événement « Message de nouvel objectif La cible est constituée de tous les acteurs qui ont activé cette interface. Maintenant, testons-le. Dès que nous lançons le ballon, tous les voyants devraient passer au rouge. Ils le font. Maintenant, nous voulons que les lumières les plus proches de la nouvelle porte se concentrent dessus, afin de pouvoir instantanément nous concentrer sur la nouvelle porte. Et ce que nous faisons, c'est de nous tourner vers notre lumière. Nous n'avons plus besoin de L Spanner Logic. Ici, si vous vous souvenez, nous avions cette fonctionnalité indiquait la distance par rapport au joueur. Nous allons copier ceci ou topcates et l'appeler distance to gate Nous allons le compiler et revenir à Avent Graft. Nous allons utiliser cette distance pour arriver ici. Pour que cela fonctionne, nous devons d' abord avoir un personnage de joueur ici, mais ce que nous devons faire maintenant, c'est trouver l'acteur. Nous pourrions le coder en dur, mais comme je l'ai mentionné au début, nous ne voulons pas de références précises Donc, ce que nous allons faire à la place, passer au BPG, et dans l'interface, nous allons ajouter une entrée, et nous allons l'appeler target sorry, actor reference Faisons jouer la référence à l'objet acteur et appelons actor ref pour le compiler, l'enregistrer. Et si nous examinons notre objectif de BP, nous avons désormais un toit d'acteur. Et dans ce cas, ce sera moi. Au fur et à mesure que nous obtenons une nouvelle référence, nous voulons obtenir la porte elle-même. Nous revenons au plan de la lumière, économisons ou non, revenons au graphique des événements Si, pour une raison ou une autre, vous perdez ou si vous avez trop d'options ici, vous pouvez simplement les fermer et trouver votre graphique d'événements ici en haut à gauche. Et au loin de la porte, nous avons besoin d'une entrée. Nous allons donc ajouter des entrées. mes excuses. Nous allons avoir besoin d'une entrée, et nous allons appeler cette entrée une référence d' acteur, une référence d' acteur. Et cette nouvelle référence en tant qu'acteur sera la porte d'entrée. Et si vous revenez au graphique ici, ce que nous allons faire, c'est évidemment le déclencher pour nous assurer que nos couleurs aléatoires cessent et que nous obtenons la couleur rouge pendant une seconde. Et au fur et à mesure que tout cela se produira, nous atteindrons cet objectif d'événement de référence Ni, nous le mettrons en œuvre. Celui qui déclenche cet événement est la porte, et la porte se référencera à elle-même, et l'interface transférera ces informations à notre événement ici dans les lumières. Nous allons donc avoir ceci ici. Et ce que nous allons faire d'autre, ajouter une sortie supplémentaire, et cette sortie sera également porte ou nous pourrions ignorer cette partie parce que nous avons déjà la référence dans le plan Il n'y a aucune raison de trop compliquer les choses. Ce que nous allons faire, c'est parcourir une certaine distance jusqu'à la porte d'embarquement. Et si la distance jusqu'à la porte se fait essentiellement par branche, c'est vrai, ou si c'est une distance inférieure à 2000, n'est-ce pas ? Nous allons le mettre ici. Donc, si la distance entre elle-même et la porte est inférieure à 2000, elle obtiendra cette valeur, lingot, et ce lingot définira s'il est proche ou non Et si c'est le cas, nous allons obtenir le nœud cible que nous avions défini, que je crois que nous avions ici quelque part dans la section des joueurs. Définir la rotation de l'acteur ou distancer le joueur après l'avoir défini ? Oui Nous avions trouvé la localisation de l'acteur. Oh, oui, nous n'étions pas assis là. Nous l'avons défini ici, et nous allons définir notre nouvel objectif. D'ailleurs, j'aurais pu simplement trouver une note, mais il vaut toujours mieux suivre votre plan Nous allons définir notre nouvel objectif. Essentiellement, si c' est assez serré, nous fixerons notre nouvel objectif et nous organiserons cet événement la même manière que nous l'avons fait ici. Nous allons définir notre nouvelle rotation et obtenir notre propre rotation. Ce que nous pouvons faire facilement c'est que nous pouvons également dupliquer cette fonction et lui permettre de retrouver la rotation de la porte. Et ajoutez une entrée ici ou un acteur ou un acteur, appelez-le porte juste pour vous assurer que nous ne saisissons que la référence de marche ici, faites défiler vers le haut notre fonction de marche, rotation de la porte Nous avons fixé notre objectif. Nous le prenons comme référence Nous allons choisir votre personnage et le définir comme cible. Vous obtiendrez une nouvelle rotation pour les cibles. Il n'y a plus aucune raison de le configurer car nous pouvons plutôt l'obtenir . Et dans ce cas, le soi n'est pas utilisé car nous n'en avions pas besoin. Et dans ce cas, le soi n'est pas utilisé car nous n'en avions pas besoin. Et nous pouvons copier la logique exacte que nous avons pour la chronologie ci-dessous pour la chronologie. Et nous allons copier ceci Nous allons copier cet endroit ici et l'utiliser dès le départ. Nos sorties seront A et B, et tout le reste devrait rester tel quel. Pour l'instant, testons-le. ce que nous faisons. Nous l'avons mis dedans. Ça explose. Les portes situées à proximité devraient se concentrer là-dessus, mais elles ne l'ont pas fait. Voyons pourquoi cela se produit. Et revenons à Nib Print. Maintenant, cela se déclenche. Cela se déclenche également. C'est nous qui déclenchons cela. Nous avons défini le spawn cible et la raison pour laquelle cela continue de se déclencher est que nous n'empêchons pas réellement cela de se produire J'entends par là le mouvement aléatoire de la lumière. Nous devons ajouter cette note ici et l'ajouter ici. Et si c'est faux, comme nous l'avons dit ici, cela ne devrait pas se déclencher, et cela ne devrait se déclencher que si c'est vrai. Et par défaut, il semble que ce soit le cas, vérifions-le au cas où. OK, ce n'est pas le cas actuellement. Nous allons y aller. Mes compétences de jeu supérieures ne se sont pas révélées ici. Nous devenons rouges. Et ces acteurs regardent dans une autre direction que celle qu'ils devraient suivre. Voyons ce qui se passe ici. Notre sortie A est ici, qui est notre rotation actuelle. Oh, nous n'avons pas besoin de faire pivoter les cibles. C'est une erreur de ma part. Essayons encore une fois. Et maintenant, nous avons accès à cet intéressant outil interactif. Nous avons ici une rotation B. Déposons-le, et nous avons une rotation, qui devrait être sa propre rotation actuelle. Jetons un coup d'œil à notre événement, la façon dont il s'est déroulé ici. Nous obtenons nos valeurs de sortie, A et B, introduisons et nous avons Alpha , nous avons le rotateur Alpha, et nous obtenons la rotation du setter, la même manière que nous le faisons ici La seule différence serait que lorsque nous le mettrons à jour et que nous le terminerons, nous devons nous assurer de le remettre sur true finished. Vrai Et le délai est d'une seconde. Faisons en 3 secondes. Compilez, enregistrez, revenez au graphique des événements. 24. UE5 FC08 02: Voyons ce qui ne va pas avec notre plan. Juste pour vérifier. Nous avons cette durée cible lorsqu'elle est vraie, devrait arrêter de se déclencher, car nous ne voulons pas entrer en haut, elle ne doit donc pas se déclencher sur la durée Il devrait être truqué sur du faux. Et en fait, rien ne devrait se passer, et nous devrions obtenir des couleurs aléatoires à moins qu'elles ne soient déjà apparues dans les 3 prochaines secondes. Ici, nous faisons exactement la même chose. Nous avons un retard. Après un retard de série, il retombe, sorte que tout peut fonctionner comme avant. Jetons un coup d'œil à la distance qui nous sépare de la porte. C'est comme il se doit. Regardons cela, et voici le problème. Nous devons également le mettre ici. Échantillonnez-le, enregistrez-le. Voyons si cela fonctionne maintenant. Nous n'avons besoin que des lumières les plus proches de la porte pour l'allumer. Ce qu'ils ont fait, mais c'était assez tardif. Cela peut être principalement dû au fait que nous avons trop de délais en même temps. Bien qu'il soit acceptable de jouer dès le départ, nous devons empêcher ces autres événements ou chronologies de se dérouler lorsque nous le faisons, car ils doivent être interrompus ou Maintenant, la façon dont nous pouvons le faire est de nous assurer, tout d' abord, que nous avons un moyen d'interagir avec eux. Ajoutons donc une séquence. Et dans cette séquence, ajoutons-le. Lorsque tout va bien, une nouvelle cible est en train d'être localisée, nous interrompons d'abord tous les délais existants Et cela ne devrait pas se produire lors de l'événement pour commencer à jouer. Non Cela devrait se produire lors de l' événement, avec un nouvel objectif à la place. Cela ne devrait donc pas se produire ici dans les plis, là où vous allez le faire. Pourquoi l'ai-je retiré ? Nous pouvons juste le mettre ici pour le moment. C'est très désorganisé pour le moment, mais ne perdons pas trop de temps là-dessus Prenons ça et mettons-le ici. Ainsi, lorsqu'un nouvel objectif est déclenché, ces deux objectifs sont arrêtés instantanément et nos lumières se concentrent plutôt sur les lumières. Alors faisons-le. Ils apparaissent. Et voyons voir. Ils commencent leur mouvement aléatoire. Non, car nous n'avons pas ajouté d'informations supplémentaires. Donc, tout d'abord, veillons à ce que Fox Gate soit plus éclairé, car nous voulons qu'il soit évident que quelque chose se passe. Ensuite, une fois que tout cela aura été finalisé et que nous aurons terminé notre jeu, nous devons revenir à la séquence zéro ici. Jouons-y, et voyons-le encore une fois. C'est ce que nous faisons. Moi, concentrons-nous là-dessus. Maintenant, modifions à nouveau certains paramètres. Il s'agit d'un code très désorganisé, que nous organiserons plus tard Voyons ce que fait notre code. Nous obtenons nos lumières, nous obtenons notre rotation, etc., et nous souvenons que c'est par lumière, donc ce n'est pas comme toutes les lumières étaient affectées en même temps lumières qui ne sont pas suffisamment proches ne devraient pas être affectées, nous devons donc modifier l'emplacement pour cela. Nœud si la cible est générée et si la distance jusqu'à la porte est vraie, cela devrait se déclencher Une fois que cela aura arrêté les deux autres, nous les réutilisons et les lumières situées à proximité la nouvelle porte devraient fonctionner à leur place Notre portail s'est focalisé instantanément. Dans ce cas, nos portes répondent ici. Faisons en sorte de recommencer. Nous allons également le réutiliser à nouveau, et ce que nous allons faire, c'est nous assurer que seules les lumières autour du portail sont rouges au lieu de toutes, car cela ne sert à rien qu'elles soient toutes rouges Donc, ce que nous allons faire, nous déplacer lorsque cela déclenche et lorsque le but est marqué, quand le but est marqué, c'est plutôt cool de passer au vert. Cool. C'est comme encourager. Et nous allons nous assurer d'avoir suffisamment de temps pour que les feux passent au vert lorsque nous marquons un but. Passons aux plans. Passons à notre objectif. Et avant que la téléportation n'ait lieu, retardons-la Retardez et nous avons 3 secondes de lumière verte. Alors faisons-en 3 secondes également. Téléportez-vous en vert. Donc, avant le déclenchement de l' événement de téléportation, que nous appellerons ainsi et tout cela se produira, nous aurons 3 secondes de lumière verte Je suis vraiment nul à ce jeu. Nous modifierons la vitesse du joueur un peu plus tard. Et c'est ce que nous faisons, 3 secondes de feu vert. Il disparaît, et après sa disparition, toutes les lumières devraient se concentrer sur lui. Voyons maintenant quel est le problème ici. Cet événement, situé à distance de la porte, contient une erreur, et voyons pourquoi cette erreur s'est produite. Notre événement « distance jusqu'à la porte » est organisé ici. Mais pour que cela soit fonctionnel, nous n'avons pas vraiment grand-chose à faire. Jetons donc un coup d'œil au. Nœud d'accès Roy rouge probablement portail. Moins de 2000, nous sommes mis aux enchères. Ils essaient donc de lire le nœud appelé gate. Au fait, cela fait maintenant moins 3 000, mais c'est un péché. Et au lieu de moins que, appelons simplement ss. Il s'agit de la valeur qu'il essaie de lire. Et si vous regardez le graphique, la cible une fois qu'un nouvel objectif est créé, elle obtient une référence pour le nouvel objectif, et cette référence parcourt la distance jusqu'à la porte. Et s'il est plus proche que la certaine plage, tout d' abord, assurons-nous que nos valeurs de variation de lumière viennent réellement après cela. Nous allons donc enregistrer cela pour le moment et faire en sorte que ce nœud de branche soit avant tout cela. Nous avons atteint cette distance. Si c'est moins, nous passons à la séquence, puis à partir de là, nous passons à la séquence et cette séquence d'opérations devrait être plus correcte. Nous allons le tester. On l'a, on le laisse tomber. Nous avons cet écran, un, deux, trois, il disparaît. S'ils sont proches, ils devraient changer de couleur et devenir rouges. Mais pour une raison ou une autre, ils ne l'ont pas fait Maintenant, réglons tous les problèmes que nous avons avec cette lampe et finissons-en avec elle. La raison pour laquelle cela ne fonctionne pas comme nous le souhaitons est qu'il y a plusieurs interactions ici ne suit tout simplement pas correctement la séquence. Donc, tout d'abord, assurons-nous de ne pas simplement avoir besoin de commencer à jouer à l'événement, mais de ne pas laisser ces nœuds arriver de partout à chaque fois. Alors, cliquons plutôt sur un événement constant. Que tu peux juste appeler. Appelons événement constant, et nous pouvons simplement l'appeler redémarrage. Redémarrez essentiellement l'ensemble de l'opération depuis le tout début. Cela sera déclenché à chaque fois que le redémarrage est appelé, et nous pouvons le mettre ici, par exemple, art, call function. Et nous allons beaucoup nettoyer notre scène ici. Nous avons ce déclencheur de séquence et nous avons ce déclencheur de séquence. À partir de là, revenez à notre joueur distancé Faisons en sorte que cela au lieu d'aller voir notre redémarre au lieu d'aller voir notre joueur distant Nous appellerons donc à nouveau cette fonction ici. Nous pouvons simplement le copier et le coller ici. Donc, lorsque tout cela se termine et que tout est terminé, nous testons notre distance par rapport au joueur et si tout est comme il se doit, nous redémarrons toute l'opération. Jetons un coup d'œil à nouveau ici. Nous avons un redémarrage, nous avons une séquence qui se différencie ici, nous avons des événements qui s'exécutent Et quand tout cela est terminé, nous redémarrons notre nœud. Nous arrêtons ces deux événements ici. Mais au lieu de l'utiliser, nous pouvons créer un événement personnalisé. Arrêtez et nous pourrons contrôler ma biologie, nous pourrons tout régler jusqu'ici. Et au lieu d'avoir ce nœud, allez jusqu'ici, nous pouvons le supprimer. C'est vrai, cela ne fait que suivre. Nous utilisons le nœud stop pour arrêter celui-ci, et nous ajoutons une séquence ici. On arrête celui-ci en haut et on arrête celui-ci en bas. Beaucoup plus propre. Code à spaghettis Nous n' avons plus rien à nettoyer ici, dans la rangée du bas, et nous pouvons simplement le déplacer un peu. Et voilà, jetons-y un coup d'œil. Nous l'arrêtons quand il le faut. Nous avons ce délai qui remonte à la génération aléatoire. Appelons plutôt à nouveau notre fonction de redémarrage. Donc, pour que ça vérifie. Il y a un délai une fois que tout est terminé et nous redémarrons tout à nouveau Nous allons revoir tout ce processus une fois de plus. Nous allons obtenir notre nouvelle couleur aléatoire. Cela va se déclencher. Assurons-nous que tout se trouve dans la section des commentaires. Nous avons des branches doubles indiquant la distance par rapport au joueur et la distance à parcourir si la nouvelle cible est disponible ou non. C'est juste une façon plus propre de le faire, afin que nous n'ayons pas à faire ce cauchemar. Nous pourrions créer des fonctions, etc., pour le rendre encore plus compact, mais je pense que c'est bien Vous pouvez d'ailleurs cliquer avec le bouton droit de la souris, cliquer avec le bouton gauche et cliquer avec le bouton droit la souris pour modifier les niveaux de zoom. Et tout va bien ici. Maintenant, tout est organisé, mais changeons quelque chose. Nous devons faire avancer les choses. Et pour l'instant, détruisons nos références ici et détachons-les . Faisons glisser l'ensemble de notre larp, etc., la rotation, tout ce qui se trouve ici, vers le graphique des événements, Nouvel événement objectif Utilisons notre variable cible et définissons-la ici. De cette façon, nous n'avons pas à référencer l'interface à chaque fois. On ne l'obtient qu'une fois. Et chaque fois que nous en avons besoin, nous l' obtenons sur le plateau, et nous le faisons également pour ici. Et lorsque nous jouons, lorsque nous avons fini de jouer, nous définissons le spin cible et nous recommençons Et avant de contourner les lumières, nous voulons les rendre rouges. C'est pourquoi nous allons les déplacer ici. Et au bon endroit, on le déplace et on joue dès le départ. Et quand c'est fini, encore une fois, nous ciblons le spin, le delay Et je pense que nous devrons le modifier à nouveau pour nous en assurer. Mais compilons. Sélectionnez Appuyez sur Play. Voyons ce qui va se passer. Nous déplaçons notre balle, tout devient vert. Nous recevons de nouvelles balles. Tout se concentre sur cela. Mais maintenant, ils sont coincés dessus. La raison pour laquelle cela se produit est due à cette valeur ici. Voyons ce qui va se passer à nouveau. Nous le déplaçons. Je suis un très mauvais joueur, alors mettons-le juste devant. On le fait exploser. Tout est vert, ça se déclenche à nouveau. Et nous les avons ici, mais ils ne sont pas de la bonne couleur. Cela s'explique donc en partie fait que nous avons beaucoup de nœuds de redémarrage. Cela se produit lorsqu'il est terminé et qu'il dure 3 secondes. Ce déclencheur avance et le prochain déclenchement se produit dans BPG, dans BPLte Si nous regardons l'objectif de notre événement ici, 3 secondes de retard sur l' apparition de la cible , cela ne redéclenche rien Mais cela a plutôt un retard. Donc, au lieu de cela, supprimons ceci. Et nous enlevons la branche ici. Nous ajoutons ce délai, mais après cela, ajoutons notre nœud de redémarrage, appelez. Et ici, assurons-nous de ne pas faire appel à notre redémarrage lorsque nous n'en avons pas besoin. Notre succursale s'étend jusqu'ici. Cela ne doit jamais être attribué à un joueur éloigné. T devrait d'abord aller à la succursale. Et si c'est vrai, cela ne devrait pas se déclencher. Ou revérifions nos lingots. Lorsqu'elle est fausse, cela devrait se déclencher. Quand c'est vrai, cela ne devrait pas se déclencher. Et lorsque le rayonnement et la génération aléatoires sont en place, que le détecteur fait tourner le détecteur, nous le retardons Nous obtenons une rotation à distance, nous passons à travers. Et quand nous l'aurons, supprimons-le d'ici et ajoutons-y nœud de redémarrage supplémentaire. Si c'est vrai, compilez. Nous avons la séquence qui arrête ces deux chronologies et une fois qu'elles sont arrêtées, elles ne sont pas mises à jour en temps réel En tant que tel, nous pouvons simplement le déplacer un peu. Nous assistons à une véritable transstation, et une fois celle-ci terminée, elle vérifie si elle est proche du joueur ou non Si c'est faux, nous réglons notre rotation par défaut, ce que nous n' avons plus à faire car nous avons modifié notre système d'éclairage, et si c'est faux, nous redémarrons notre système d'éclairage. Essayons donc à nouveau. Tout fonctionne comme il se doit. Quand je suis près des lumières, elles me visent, je les mets dedans et voyons comment elles réagissent à nouveau. Ils réagissent à la porte et la focalisent comme ils le devraient. Et une fois le jeu terminé, ils devraient commencer à se déplacer. Et si cela ne se produit pas, c'est parce que nous n'arrêtons cette opération à aucun moment. Nous sommes donc en train de le mettre à jour, et une fois terminé, il redémarre. Mais nous devons définir le spawn de la cible sur false avant de le terminer. Vous devez vous assurer qu'il est réglé pour tomber afin que les lumières affectées par le portail puissent redevenir opérationnelles. Nous avons mis cette balle dedans, laissez le moment. Disparu. Les lumières le regardent, et elles fonctionnent à nouveau, mais nous avons maintenant un problème de couleurs. Maintenant, réparons cela également et nous en avons terminé avec le système d'éclairage. Lorsque la couleur de l'événement est déclenchée, nous obtenons notre cible, nous réglons les voyants sur le vert Réaffirmons-le. Nous y parvenons, un, deux, mais les lumières du joueur cible changent instantanément de couleur. Maintenant, cela se produit pour une raison très simple. Notre note de redémarrage répète également cette séquence de couleurs aléatoire. Donc, si nous le faisons simplement glisser d'ici vers le bas et le mettons ici, cela devrait résoudre tous les problèmes qui subsistent. Allons-y et nous obtenons notre feu vert et notre feu vert est là, nous obtenons nos couleurs aléatoires et les couleurs des portes. Maintenant, nous ne récupérons pas nos couleurs aléatoires. La raison en est qu'aucun événement ne déclenche à nouveau get random colors, ce que nous pouvons facilement faire nous-mêmes en nous assurant que lorsque cette séquence se termine et que cette séquence se termine ici, nous appelons un événement qui déclenche des couleurs aléatoires. Appelons donc événement personnalisé. Appelez-le random caller B set. Encore une fois, ce n'est pas le meilleur sens du terme, mais nous allons simplement nous y atteler. Et nous allons appeler cet événement tout en haut de la page où nous éditons notre lumière. Et ici, lorsque nous cliquons sur l'objectif, dans ce cas, nous n'avons pas vraiment besoin de le faire, car une fois que nous avons déclenché cet événement , nous le Vous ne pouvez donc pas le redémarrer ici, et il devrait fonctionner correctement. Nous le déclenchons, les lumières nous suivent lorsque nous sommes proches. portes y tournaient, les lumières devenaient rouges autour d'elles, et elles se déplaçaient à nouveau. Le feu vert reste comme il se doit car une fois que ce voyant vert s'est déclenché tout seul, s' ils ne sont pas à proximité, ils ne redémarrent pas Nous devons donc ajouter cette réinitialisation du feu vert ici. Maintenant, si nous l'ajoutons directement, cela le remplacera en quelque sorte C'est pourquoi il est si important de comprendre le séquençage dans le plan Vous pensez peut-être : Oh, je l'ai déjà fait, mais le séquençage lui-même peut poser problème Ils obtiennent des couleurs aléatoires et celui-ci devient vert. Juste pour s'assurer que le reste reste vert pendant que l' on se concentre sur le vert. Faisons-le dans un délai de 6 secondes. Cela indique 3 secondes et nous avons un délai de trois secondes avant que cela ne commence. Ainsi, les lumières qui ne sont pas fermées deviendront rouges. Et juste pour être sûr que nous puissions clairement voir le vert, mon rouge. Trouvons le spot et réglons l'intensité. Nous allons le réinitialiser. Encore une fois, nous en avons généralement 40 000. Faisons en sorte qu'il y en ait 80 000. Et nous allons le copier à nouveau. Et lorsque nous aurons terminé et que nous aurons fait tout cela, nous le ramènerons à 40 000. Ainsi, lorsque nous aurons terminé nos opérations et pour l'événement d'entrée, nous les renvoyons à. Démontons-le. Nous le faisons entrer. Nous prenons notre couleur, tandis que la démarche La démarche augmente la luminosité, et faisons en sorte que notre atentan réduise Maintenant, la seule chose à changer, c'est la couleur elle-même. Et ne le rendons pas rouge vif, rendons-le rouge plus foncé, combinons, jouons, sauvegardons. Et nous l'avons mis dedans. Nous achetons nos lampes, où est notre cadeau ? C'est notre portail. C'est une différence, mais cela devrait suffire. Nous pourrions et je suppose que nous devrions modifier le niveau d'intensité lumen par défaut pour ces 20 lumens, et raccourcissons la plage afin ne pas avoir trop de lumières en cascade partout Et maintenant, essayons à nouveau. Nous avons ces lumières, et tout à coup, nous avons des lumières rouges ici. Et je pense que nous pourrions faire en sorte que les feux rouges restent plus longtemps, mais encore une fois, c'est juste une question de choix pour le moment, et je ne veux pas perdre plus de temps avec la lumière. Nous allons donc arrêter de tout organiser de manière aléatoire, et nous allons simplement utiliser les commentaires et d' autres éléments pour organiser l'événement Alors, marque le feu vert. Et celui-ci sera une sera nouvelle cible. Nous allons faire en sorte que celui-ci soit rouge. Et celui-ci est vert. Modifions-les, voyons s'il y a autre chose. Nous avons notre objectif, nous suivons un objectif ou pour être précis. Suivez clairement, nous avons notre mouvement de lumière aléatoire et notre couleur aléatoire pour les lumières. Et cela suffit. Nous avons nos nouveaux événements, nous qui organisons ces événements Maintenant, assurons-nous avoir suffisamment de points dans la scène au début du jeu. Donc, ce que nous pouvons faire, nous pouvons ajouter Non, nous pouvons laisser celui-ci sur le terrain. Le message d'erreur est dû au fait que nous l'avons référencé par défaut. Nous n'en avons pas vraiment besoin pour le moment, mais nous pouvons le laisser de côté. Ce n'est pas un problème. Alors, mettons-le ici. Je veux faire apparaître plusieurs balles pendant le début de l'événement. Ajoutons donc beaucoup plus de balles à la scène. Juste pour avoir la scène. Et ce que je vais faire, c'est parce que j'ai ajouté tellement de bolspwers et je ne veux pas vraiment créer un jeu équilibré Nous le faisons également à des fins de démonstration. Après tout, ce que je vais faire c'est qu'au lieu de participer à cet événement N fois, je vais ajouter le début du jeu et au début du jeu, je vais faire N, essentiellement en faisant cet événement trois fois. Et en fonction du score de buts de l'événement, je vais le réinitialiser et recommencer. Donc, au tout début du jeu, cela va générer beaucoup de balles que je pourrai utiliser Et si je marque un but, ce qui est un peu difficile pour moi pour une raison ou une autre, essayons-le. Nous ajoutons cette balle et Bam. Nous avons beaucoup plus de balles. Ce que nous pouvons également faire, c'est prendre toutes nos armes ici Cliquez sur Shift et mettez-les en l'air. Et je crois qu'il faut le centrer un peu plus. Maintenant, ils vont tomber du ciel, et ajoutons-les dans un seul dossier, appelé A underscore Spooners Je n'ai pas besoin d'utiliser un trait de soulignement dans les noms de dossiers, mais c'est juste une habitude Nous aurons une balle verte à et notre date de départ est là Nous pouvons donc simplement commencer par placer les deux ici, et nous pouvons commencer notre lexique de jeu Et alors que nous commençons notre jeu, nous avons beaucoup de points à contourner. Nous pouvons les déplacer. Et au fur et à mesure que nous en mettons une, nous recevons encore plus de balles, et les balles ne peuvent pas sortir du terrain à cause d' une collision. Et maintenant, nous avons un jeu qui consiste à générer des balles à l' infini jusqu'à ce que vous vous y noyiez Maintenant, nous en avons fini avec la foudre, les éléments de démarche et de gameplay, les interactions entre eux, et nous allons arrêter ajouts au gameplay dans ce cours 25. UE5 FC08 03: Parlons maintenant du personnage à la troisième personne et de ce que nous pouvons en faire. Dans ce cas, le personnage à la troisième personne est notre mannequin irréel qui nous est fourni par défaut Je vais vous expliquer certains des paramètres que vous pouvez y ajouter et certains composants utiles que nous pouvons utiliser pour nos acteurs, et peut-être pourrions-nous même en mettre quelques-uns comme décoration sur l'étiquette. Si vous retournez dans votre dossier de contenu, les plans à la troisième personne, vous trouverez votre personnage à la troisième personne, ouvrez-le Et vous remarquerez qu'il y a beaucoup de choses ici concernant le saut, le mouvement, actions de saisie améliorées, qui ne seront pas expliquées dans ce cours, mais qui constituent une nouvelle façon irréelle d'apporter une contribution aux acteurs C'est un sujet pour le prochain cours. Et voici notre fenêtre d' affichage, notre personnage, boîte de collision ou le composant capsule de notre personnage, et notre caméra qui suit le personnage, notre composante de mouvement du personnage C'est donc sur cela que nous allons nous concentrer aujourd'hui. Nous avons une composante de mouvement des personnages ici, et si vous jetez un œil au panneau de détails, vous verrez beaucoup de choses qui pourraient vous être utiles. Nous avons donc notre accélération. Nous avons notre vitesse de déplacement, vitesse de nage, etc. Nous ne nous concentrerons pas sur chacune d'entre elles. Ce dont nous avons besoin, c'est de notre rapidité. Nous avons donc une vitesse maximale de 500 pour le moment, ce que je ne trouve pas particulièrement élevé pour naviguer dans cette vaste zone. Cela semble très lent. Augmentons-le. Augmentons-le donc de, disons, et faisons-en 1 500 et faisons-en 2 000. Voyons jouer maintenant. Maintenant, notre personnage se déplace beaucoup plus vite, et nous pouvons peut-être même marquer quelque chose. Et lorsque nous frappons quelque chose, notre vitesse de déplacement diminue légèrement, mais nous pouvons attraper nos balles et les manœuvrer. Essayons encore une fois. Nous pouvons maintenant retrouver notre démarche différente et recommencer , oui Et nous pouvons le répéter autant que nous le voulons et remplir tout l'écran visible. Maintenant, vous remarquerez peut-être que nous avons maintenant une vitesse maximale de 20 k, comme je l'ai indiqué précédemment. Mais si je contrôle Z et que je le remets à 500 ou que je contrôle Y aussi, les différences sont énormes. Le fait que vous puissiez simplement aller à une vitesse de plus plus élevée est dû au fait que nous avons une certaine accélération, et à moins que je ne touche quelque chose, elle baissera, nous allons diminuer la vitesse maximale , disons, divisons-la simplement par deux. Je pense que ce chiffre était trop élevé par rapport à nos objectifs. Voyons voir, et nous avons toujours une vitesse suffisamment élevée. Mais que faire si vous voulez avoir une certaine accélération mais que vous ne voulez pas passer instantanément à la vitesse maximale possible. C'est là que notre accélération entre en jeu. Et si vous regardez notre accélération, notre accélération maximale est actuellement de 1 500. Si nous le mettons dans un nombre plus élevé, disons 5 000, compilez, appuyez sur Play. Nous obtiendrons une vitesse d'augmentation instantanée, et elle augmentera de plus en plus jusqu'à ce que nous atteignions notre vitesse maximale, qui, à mon avis, est déjà trop élevée. Mettons donc l'accélération à 3 000 et veillons à ce que notre vitesse maximale soit loin de ce chiffre ridicule. Nous l'avons réinitialisé, il est très lent, alors disons que pouvons-nous faire ici ? Par défaut ? Il y en avait 500, je crois. Et multiplions-le par six. Et notre accélération maximale peut être multipliée par deux. Nous avons ici des options supplémentaires concernant la gravité, degré de gravité qui doit s'appliquer à ce personnage, nous pourrions la réduire, ce qui nous permettrait de sauter plus haut et notre chute sera plus lente. Ce que nous pouvons faire, c'est augmenter notre vitesse de saut. Doublons donc notre vitesse de saut, et disons triplons-la. Compilez-le, appuyez sur Play, et maintenant nous avons un saut de Superman, et nous pouvons même sauter hors limites, ce qui n'est pas quelque chose que j'aimerais avoir Réduisons donc notre saut de 300 par défaut, et faisons-le de 800 Étape. Alors revenons en arrière. Nous sommes hauts. J' aimerais sauter assez haut pour sauter par-dessus les balles, mais pas assez haut pour pouvoir sortir du niveau. Je pourrais toujours ajouter une balle en haut du niveau, mais nous n'allons pas le faire, car nous avons volontairement limité notre saut Instance. Nous avons le contrôle aérien qui nous permet d'ajuster quelle mesure nous pouvons contrôler le personnage lorsqu'il se déplace, et nous avons beaucoup plus de réglages pour le vol, natation et les interactions physiques. Et c'est sur cela que je veux me concentrer. Nous avons un jeu dans lequel nous déplaçons des objets basés sur la physique. Nous allons donc masquer toutes ces options dont nous n'avons pas réellement besoin. Et nous allons nous concentrer uniquement sur notre physique. Comme vous pouvez le constater, il y a ici de nombreuses options dont l' examen prendrait une éternité. Cherchons donc simplement la physique. Et nous avons nos options d' interactions physiques. Nous avons permis l'interaction physique, ce qui est vrai, nous en avons besoin. Et ce que nous avons pour Alvin se limite à un objet physique. Ainsi, lorsque nous heurtons un objet ou que nous entrons en collision avec lui, pour être précis, nous lui appliquons une force de 500 Si nous l'augmentons à environ 5 000 compilateurs et jouons, et que nous interagissons avec un objet, disons qu'il reçoit beaucoup plus de force qu'auparavant. Et si nous ajoutons une quantité ridicule ici, disons que cela se produira, ils s'évaporeront instantanément dès que nous les toucherons, ce qui peut sembler amusant, qui peut sembler amusant, mais ce n'est pas idéal lorsque tout ce que vous touchez explose et tombe dans l'oubli en Mais je veux un impact supplémentaire lorsque nous touchons les sphères. En tant que tel, nous allons appuyer sur Play, et voyons voir. Notre force est maintenant suffisante pour faire glisser plusieurs balles en même temps et nous pouvons simplement nous déplacer. Et grâce à notre vitesse accrue, nous pouvons répéter cette opération autant de thermes que nous le souhaitons Maintenant, ici, nous pouvons également cliquer dessus et si nous augmentons la force tactile minimale, c'est essentiellement la force minimale que nous pouvons appliquer à quelque chose comme 2000 et disons que c'est aussi notre maximum maintenant. Si vous compilez et appuyez sur Play, nous obtiendrons cette étrange interaction. En fait, nous ne faisons pas grand-chose de différent. Vous vous demandez peut-être ce que c'est dans ce cas. Est-ce la quantité de force appliquée, pas la force de poussée ? En tant que tel, ce n'est pas exactement la même chose. Il s'agit d'un calcul basé sur l'intensité de la force. Si vous essayez d'ajouter une force supplémentaire par kilogramme, ce qui est utile pour la simulation physique, mais cela ne vous aidera pas lorsqu'il s'agit pousser des objets réels. Assurons-nous que nos options sont toujours activées comme nous le voulions, et nous allons maintenant quitter cette section. Et nous allons parler très brièvement des objets, des composants, des acteurs, des composants pour être clair. Nous avons donc déjà créé quelques plans. Et créons-en un de plus. Et celui-ci, nous allons juste devenir acteur, nous allons l'appeler test pour le moment parce que nous n'allons pas le garder. Nous allons ajouter un maillage, et disons que nous ajoutons un maillage statique ici, et que nous pouvons transformer ce maillage statique en une pyramide. Ajoutons également le matériel nécessaire, car pourquoi pas ? Nous compilons ceci. Et si vous cliquez sur Ajouter en haut, vous trouverez de nombreux composants que vous pouvez ajouter. Nous avons des éléments d'intelligence artificielle, des signaux audio, des formes supplémentaires, caméra, un bras à ressort, etc. sont tous très utiles et ils sont parfaits pour eux-mêmes. Mais ce dont nous allons parler ici, c'est du mouvement. Nous avons des mouvements de flottaison, d'inhumation, de projectile et de rotation Mouvement du projectile appliqué à un acteur, allons-y et remettons-le au niveau normal Si vous êtes un mouvement de projectile, ici. Appliqué. Ensuite, nous passons à la vitesse du projet, et disons que la vitesse du projet est de 10 000. Réduisons-le en un nombre plus petit pour que nous puissions le voir sans difficulté, et la vitesse maximale est d'environ 2000, même point qu'avant, accélération et vitesse maximale. Et ce que nous pouvons faire, c'est désactiver la gravité si nous le voulons afin qu'il n' ait jamais d' attraction gravitationnelle ou quoi que ce soit d'autre, mais nous allons le laisser tel quel et appuyer sur simuler. Ces événements vont nous donner beaucoup d'erreurs car il n' y a aucun personnage, mais vous avez peut-être remarqué qu' au lieu de rester au même endroit, il a avancé tout seul. La raison pour laquelle cette économie est due au mouvement des projectiles Ceci est considéré comme un projectile. Et si nous réduisons l'échelle de gravité à zéro, compilez, appuyez sur Play. Cela se déplacera simplement vers l'infini car aucune gravité de projet ne lui est appliquée. À moins que cela ne touche réellement quelque chose et ne se détruise en tant que projectile, moins que cela ne touche réellement quelque chose et ne se détruise ce que vous devrez ajouter dans la section du plan du projectile, celui-ci ira simplement à l'infini C'est très utile pour créer des jeux, évidemment. Où vous voulez avoir des projectiles, balles, peut-être une sorte de sphère ou d'objets, si vous créez deux parties en D, et non deux en D comme A, où vous voulez avoir acteurs interactifs que vous pouvez faire apparaître et détruire et qui doivent se déplacer dans une certaine pouvez faire apparaître et détruire et qui doivent se Vous pouvez simplement utiliser le mouvement du projectile. Examinons maintenant l'autre option de mouvement. Il s'agit d'un mouvement rotatif, et ce que fait le mouvement rotatif, c'est à dire qu'il tourne à une certaine vitesse dans une certaine direction Donc, si nous revenons au niveau et que nous l' agrandissons, augmentons-le beaucoup. Et appuyons sur Play. Vous remarquerez qu'il se déplace dans son espace. Vous pouvez l'utiliser comme décoration dans l'environnement. Si vous souhaitez simplement faire pivoter certains objets, ou si vous pouvez les utiliser comme élément de jeu. C'est à vous de décider. Mais tout cela ne fait que faire pivoter l' acteur au même endroit. Il est le plus souvent utilisé pour les micros, tels que les pièces, heltrops, les kits de mise en forme et d'autres objets dans les jeux où ce micro tourne simplement au Cela peut être utilisé dans le but de ne pas avoir à ajouter d'éléments supplémentaires à votre plan, à part un simple mouvement de rotation pour les faire pivoter. Et cela représente un gain de temps pour une opération très simple, qui prend généralement beaucoup plus de temps, car vous devez déclencher un événement qui fait pivoter un objet dans un certain rayon dans une direction, chaque image du jeu Vous pouvez simplement ignorer tout cela et simplement ajouter ceci. Donc, si vous avez besoin de quelque chose à faire pivoter au même endroit, utilisez un mouvement de rotation. Au lieu de cela, vous n'avez pas besoin d' utiliser des mathématiques vectorielles complexes. Et c'est à peu près tout ce dont nous avons besoin pour nous rappeler qu'Unreal est un outil très, très coûteux pour le développement de jeux Il y a tout ce qu'il faut. Par exemple, il y a tellement de choses dont nous n'avons même pas parlé, même mentionnées. J'ai essayé de couvrir tout ce que j'ai pu, et je vais m'en tenir au minimum à la complexité. Mais vous devez tous commencer quelque part pour apprendre ce moteur. Et pour aller de l'avant, vous devez d'abord acquérir ces compétences de base. Et surtout vous devez comprendre comment les acteurs, comment le code, comment tout ce qui se passe dans le monde du CD interagissent les uns avec les autres Vous pouvez ainsi vous frayer un chemin jusqu'à ce que vous essayez de créer réellement. Ne commencez pas par des idées trop complexes. Même les choses les plus simples dans les jeux sont généralement un processus compliqué à intégrer, et certaines choses très compliquées peuvent en fait être simples. C'est contre-intuitif dans la plupart des cas. Le plus dur ce prototype que nous avons créé était en fait les interactions entre les lumières Le fait que nous ayons dû les reproduire tant fois dans de nombreuses variantes prouve à quel point les systèmes d'éclairage sont difficiles dans tous les jeux en général. Habituellement, vous ne voudriez même pas avoir autant de lampes, car cela permet de gagner en performance. Et dans ce niveau, le plus simple à créer était en fait l' élément de gameplay lui-même, qui consistait simplement à enfoncer les balles dans le portail et à les faire exploser. Dès que vous ajoutez de la complexité à votre niveau, par exemple lorsque plusieurs lumières interagissent avec un autre acteur, etc., le jeu devient soudainement une tâche d' ingénierie dans laquelle vous essayez de vous assurer de ne pas utiliser beaucoup de ressources, tout essayant de créer quelque chose qui soit beau, amusant et à toutes fins utiles et objectifs, le jeu de vos rêves. Il y a encore beaucoup de choses à couvrir. À ce titre, nous proposerons des cours de niveau intermédiaire et expert à l'avenir. Nous proposerons également des cours individuels sur certaines matières qui nécessitent des cours individuels , tels que le matériel, foudre en elle-même, l'animation, dont nous n'avons même pas parlé dans ce cours, comment créer des animations, comment appliquer des animations, comment utiliser l'IA dans Unreal Et par IA, j'entends non seulement l'IA pour le mouvement des personnages du jeu, mais aussi l'IA elle-même, mais aussi l'IA elle-même, comme la programmation basée sur des notes génératives par IA. Vous pouvez faire beaucoup de choses dans Unreal, part des jeux, vous pouvez faire de la production cinématographique Vous pouvez faire des simulations pour des raisons scientifiques si vous le souhaitez. Et Unreal ajoute de plus en plus de fonctions au moteur Il y a donc toujours de nouveaux sujets à explorer. Et vous avez une myriade de possibilités de vous améliorer N'oubliez pas que vous n'avez pas besoin de tout savoir dans Unreal Vous devez comprendre l'irréel au point de pouvoir travailler avec lui Mais à moins que vous ne soyez un développeur de jeux indépendant ou que vous n'essayiez de devenir développeur de jeux, vous n'avez pas besoin de connaître tous les aspects du moteur Ce que je vous recommande pour commencer à apprendre les bases. Et une fois que vous aurez confiance en vos bases, commencez à expérimenter. Essayez de créer quelque chose intéressant, recherchez des informations. Si vous ne comprenez pas quelque chose ou si vous avez besoin d'un guide approprié, nous sommes toujours heureux de répondre à vos questions et n' hésitez pas à consulter nos autres nouveaux cours. Il y aura toujours plus à apprendre. Et à un moment donné, vous devrez peut-être décider si vous allez vous spécialiser dans un certain domaine du moteur et travailler en équipe avec d'autres personnes pour développer votre jeu, ou si vous allez affiner votre jeu et travailler dessus seul. Nous n'avons pas abordé la question de l'utilisation des actifs du marché dans ce cours, car je souhaite utiliser le moins d'interférences extérieures possible. Parce que lorsque vous apprenez, il est important d'apprendre les bases avant de pouvoir télécharger des documents de base compliqués que vous ne comprendrez même pas si vous les voyez. Encore une fois, n'hésitez pas à expérimenter. Il n'y a rien de mal à cela, mais assurez-vous que vos bases sont solides. m'appelle Al Jun Ab Lazade et je suis heureuse que vous ayez terminé mon cours, et je suis heureuse d'aider les nouveaux développeurs de jeux et peut-être simplement les utilisateurs occasionnels d' Unreal Engine améliorer leurs compétences Et si vous avez des questions, hésitez pas à les poser dans la section des commentaires, et je serais plus qu'heureuse de voir vos propres créations et il n'y a aucune raison d'être timide. Tout ce que vous partagez vaut mieux que rien. Merci pour le temps que vous accordé et j'espère vous voir tous lors de mes nouvelles conférences. Quelques sujets supplémentaires pour tous ceux qui s'intéressent au développement de jeux. Lorsque vous commencez le processus de développement d'un jeu, cela peut sembler très compliqué, cela peut sembler très effrayant et c'est compliqué, mais vous n'avez pas à en avoir peur. Le processus de développement d'un jeu est une interaction très complexe entre différents domaines tels que la masse, la créativité, la représentation artistique de votre propre goût. compétences de codage combinées à l'animation, à la modélisation , à des qualités de production telles que la planification ou l'écriture d' histoires, il y a beaucoup de choses dans un seul jeu , et honnêtement, le jeu peut être aussi complexe et difficile que vous le souhaitez ou aussi simple que vous le souhaitez. Vous n'avez pas besoin de créer un jeu difficile pour apprendre à créer un jeu. Il vaut mieux commencer par quelque chose de petit. Et la principale raison pour laquelle de nombreux développeurs de jeux rencontrent de nombreux problèmes est une mauvaise planification, portée trop large et le fait d'essayer d'en faire trop à la fois Et au cours de ce projet, fur et à mesure qu'ils développent ce jeu, ils perdent leur motivation, ils perdent du temps, ils perdent de l'argent. Et tout cela fait partie du voyage. Ils essaient d' atteindre leur objectif final : devenir développeur de jeux, peut-être sortir un jeu très réussi et devenir riche, ou vous essayez simplement de créer un jeu vous-même ou vous aimeriez y jouer ou à d'autres personnes à qui vous aimeriez montrer votre jeu. Quel que soit votre raisonnement quant à ce que vous essayez de créer, lorsque vous commencez à apprendre un moteur de jeu, sans se limiter à Unreal Engine en particulier, mais qui s'applique toujours, commencez modestement Choisissez une idée simple, choisissez un jeu simple, que vous pourrez terminer idéalement en quelques mois, au plus six mois, finissez-le. Il n'est pas nécessaire que ce soit bon. Il n'est pas nécessaire que ce soit parfait. Vous pouvez avoir autant de bugs et d'erreurs que vous le souhaitez. Assurez-vous simplement que le jeu a un début, un milieu et une fin, et tout fonctionne plus ou moins comme il se doit. Et cela seul est une grande réussite où la plupart des développeurs de jeux échouent. Sortir un jeu, même s'il est mauvais, est un exploit lorsque vous le faites seul. C'est un autre sujet si vous faites partie de l'entreprise et que vous êtes une grande entreprise comptant des centaines de travailleurs, vous essayez de créer un jeu. C'est un autre sujet. Mais lorsque vous apprenez et vous en êtes dans le développement de jeux, ne vous lancez pas immédiatement dans les MMORPG, les jeux multijoueurs ou les mécanismes trop compliqués que vous en êtes dans le développement de jeux, ne vous lancez pas immédiatement dans les MMORPG, les jeux multijoueurs ou les mécanismes trop compliqués de votre jeu. Il suffit de commencer simplement. Créez un jeu d'horreur, créez un Mio, créez un jeu de plateforme, ce qui peut être compliqué, mais restez simple Le processus de développement de jeux est peut-être l'un des domaines les plus difficiles en général, car il nécessite de nombreuses disciplines qui n' interagissent généralement pas les unes avec les autres. Vous aurez peut-être besoin d'une musique très jazzy pour le jeu que vous avez en tête Mais vous n'avez peut-être pas les compétences nécessaires pour produire cette musique. Vous devrez donc soit apprendre à créer cette musique en plus de créer le jeu vous-même, soit acheter des actifs qui ne sont pas toujours exactement ce que vous souhaitez être, ce qui est l'option la plus raisonnable. Dans la plupart des cas, trouvez quelqu'un qui peut faire cette musique et qui est prêt à vous aider dans votre projet. Tu n'es pas obligée de le faire seule. Vous pouvez toujours demander à des personnes de vous aider. Cela peut vous coûter de l'argent, sauf s' s'agit de vos amis ou de votre famille. Et vous devez vous rappeler que même si les jeux eux-mêmes sont amusants à jouer, faciles à regarder et qu'ils ressemblent à « Oh, vous savez, le prochain grand jeu », je vais faire une meilleure copie d'un jeu déjà existant et le rendre bien meilleur que celui-ci. Je vais prendre les mêmes idées, les mêmes principes, les rendre un peu plus différents, rendre plus complexes et les élargir. Quelqu'un qui m'a déjà précédé, que ça peut être difficile ? C'est un beau piège dans lequel se lancer. Vous pensez que c'est facile à faire, mais en réalité, beaucoup de travail est consacré à l'arrière-plan de nombreux jeux, ce qui semble simple. Vous pouvez jeter un œil aux plus simples qui sont généralement des jeux de tir issus de l' implémentation et des jeux d'horreur. Vous avez un gars qui tire sur d'autres personnes, et vous vous dites peut-être : OK, tout ce dont j'ai besoin, c'est d'un gars qui se déplace, d'un pistolet, d'une balle. Et d'autres personnes à chercher et vous pensez peut-être que c'est tout ce dont vous avez besoin. Dans un sens, c'est le cas. Mais lorsque vous commencerez à l' implémenter dans votre jeu alors que vous essayez de le peaufiner, vous remarquerez que beaucoup de choses ne vont pas bien. Tu aurais dû y aller, mais ce n'est pas aussi impressionnant. Si vous regardez l'environnement, il y a quelque chose qui y manque. En effet, de nombreux détails dans de nombreux jeux ne sont pas vraiment apparents au premier coup d'œil. Par exemple, dans l'exemple plus court que je viens de mentionner, le pistolet peut avoir un cadre d'impact lorsque vous le tirez. C'est peut-être le son. C'est peut-être le VFX C'est peut-être le tremblement de l'appareil que vous ressentez lorsque vous tirez avec le pistolet. L'environnement peut avoir besoin de plus de vent, peut-être de quelques vents supplémentaires ou d'une variation de celui-ci L'IA peut sembler stupide car elle se contente de vous et de tirer debout, alors qu'un jeu créé par un professionnel peut avoir une IA qui essaie de se mettre à couvert et de vous tirer dessus depuis une meilleure position ou de vous fuir lorsque ses PV sont faibles ou élevés. Malheureusement, de nombreux jeux ignorent de nombreux aspects du jeu simplement en essayant de copier des jeux déjà existants. Mais vous n'avez pas besoin de copier les genres de jeu déjà existants ni même les éléments de jeu. N'hésitez pas à expérimenter et à faire ce que vous voulez. Rien ne vous empêche de créer un jeu du genre Game of Thrones et ce sont tous des acteurs qui jouent des bonbons, des pierres, pierres ou des beignets pour tout le monde, du genre « ça Et vous pouvez simplement prendre ce concept étrange et en faire un jeu. Vous pouvez en faire un jeu de tir, un RPG tactique, etc. Bien que cette idée je viens de mentionner soit complexe à mettre en œuvre, il n'y a aucune vraie raison pour laquelle vous ne le pouvez pas, si ce n'est la quantité d'efforts et de temps que vous allez y consacrer. Vous disposez d'une liberté créative totale pour créer ce que vous voulez. Ne vous contentez pas de copier un modèle ou le travail de quelqu'un d'autre. Faites simplement preuve de créativité. Soyez passionné par ce que vous essayez de créer. N'essayez pas de copier le travail de quelqu'un d'autre. Ce n'est pas une école. Il ne s'agit pas d'un examen. Vous n'avez pas besoin de passer une certaine note, et vous n'avez aucun moyen de le faire simplement en copiant directement le travail de quelqu'un d'autre. Vous pouvez essayer d'améliorer le travail de quelqu'un d'autre en vous inspirant de son travail et en l'améliorant au point que ce n'est plus son travail, c'est le vôtre. Et la prochaine personne qui va jouer à un jeu regardera votre travail et dira  : « C'est impressionnant ». Je vais le copier et ils copieront les éléments de votre jeu. Et ils échoueront probablement parce que rien ne change à l'original dans la plupart des cas. Pour que les choses restent simples et courtes, faites preuve de créativité. N'ayez pas peur d'expérimenter. Aucune raison réelle de copier-coller le travail d'autres personnes. Et n'exagérez pas la portée de vos projets et commencez simplement quelque chose et terminez-le. Et le tout premier jeu que vous aurez fini de créer sera très différent, et il ne sera probablement pas bon. Il se peut qu'il ne se vende pas. Cela peut recevoir de mauvaises critiques. Ne le prenez pas trop à cœur. Prenez-le avec une attitude professionnelle, améliorez-vous. Les critiques l'utilisent comme carburant pour améliorer encore votre jeu. N'abandonnez pas en cours de route. C'est un très long voyage dans lequel vous vous engagez. Mais je crois que cela vaut la peine de suivre ce chemin et que nous pouvons le parcourir ensemble Merci pour le temps que vous m'avez accordé. J'espère vous voir lors de la prochaine conférence, et j'espère que même si ce n'est pas dans la conférence, je verrai votre travail plus tard. N'hésitez donc pas à partager vos projets si vous travaillez sur un ou plusieurs exemples sur les plateformes sociales. Et si vous avez des questions, n' hésitez pas à nous contacter. Je suis plus qu'heureuse de pouvoir vous aider. En tant que collègue développeur, ce serait un honneur pour moi de vous aider à créer quelque chose de cool. Regardez ici et amusez-vous bien. 26. UE5 FC09 01: Bonjour et bienvenue à la conférence. Dans cette conférence, nous allons ajouter des éléments d'interface utilisateur à nos jeux. Dans ce jeu, actuellement, nous avons nos balles, nos objectifs, mais nous n'avons pas vraiment de points, mais nous n'avons pas vraiment de points PV ou d'autres éléments d'interface utilisateur sur l'écran, et nous allons les ajouter avec le système de widgets d'Unreal Donc, pour ce faire, commençons par créer un dossier. Passons au dossier d' appels Blueprint, créons un dossier d'informations et appelons-le widgets Ou un simple widget devrait suffire. Ici, on clique avec le bouton droit de la souris et on passe à l'interface. Interface utilisateur et cliquez sur Widget Blueprint. Je l'appellerai simplement UI Widget underscore, UI. C'est tout. Vous obtiendrez ce menu Widget, qui est votre menu de concepteur pour le widget. Vous avez également un graphique très similaire au plan avec de légères différences Donc, pour comprendre comment fonctionne le widget, nous devons d' abord créer nos éléments d' interface utilisateur dans le widget. Une fois ce widget créé, nous l'associerons à notre point de vue. Notre écran est donc dans une certaine position. Maintenant, décidons d' abord de ce que nous allons avoir comme widget. Par exemple, ajoutons le score du nombre de points Let's see que nous marquons. Nous obtenons un point pour chaque sphère, nous franchissons le portail. Nous pouvons créer un widget pour calculer notre vitesse afin de nous montrer à quelle vitesse nous courons. Et honnêtement, nous pourrions faire bien plus de choses. Peut-être que nous pouvons également ajouter le temps écoulé, et nous pourrions même ajouter une fin de partie à ce mini-jeu Maintenant, tout d'abord, ajoutons ces éléments ici. Maintenant que nous avons cette interface de widget, examinons les éléments sur le côté gauche. Vous remarquerez peut-être que nous avons des éléments qui peuvent être utiles pour notre interface utilisateur. Nous avons donc des curseurs, des images, des boutons, etc. Imaginez que ce soit un bouton que vous utiliseriez. Supposons donc qu'il puisse contenir un texte appelé Démarrer. Et lorsque vous cliquez dessus, il se passe quelque chose, etc. Pour l'instant, je vais le supprimer. Vous pouvez simplement mettre l' élément que vous voulez placer où vous le souhaitez dans l'écran et en coder la logique. Mais il est préférable d'utiliser les éléments de l'interface utilisateur lorsqu'ils trouvent dans un panneau ou un canevas en particulier, se trouvent dans un panneau ou un canevas en particulier, s'ils doivent une liste d'inventaire ou si vous souhaitez que le widget soit mobile d'une partie de l'écran à l'autre. Par exemple, imaginez des boîtes de discussion dans des jeux multijoueurs. Et cliquez sur la boîte de discussion et déplacez-la pour que cela soit possible, elle doit avoir un panneau de widgets lequel vous pouvez simplement vous déplacer. Et évidemment, vous devrez coder façon dont il doit être déplacé, mais nous n'allons pas aller aussi loin dans le widget. Le widget d'utilisation le plus général que nous ayons s'appelle le panneau Canvas. Et le panneau Canvas ici est assez performant. Ce n'est probablement pas la meilleure façon de procéder si vous essayez d' optimiser vos interfaces utilisateur. Si vous avez beaucoup d'éléments d'interface utilisateur dans votre jeu, qu'ils utilisent tous des panneaux Canvas, et que vous les mettez constamment à jour, cela augmentera de manière surprenante le coût d'utilisation de votre processeur. Et cela peut même commencer à prendre du retard sur votre PC, etc., et vous vous demandez peut-être pourquoi votre jeu est à la traîne alors que vous avez optimisé C'est probablement parce que vous avez fait une erreur en installant trop d' interfaces utilisateur avec des panneaux en toile Encore une fois, le coût de performance n'est pas très élevé, mais il peut tout de même devenir très élevé en fonction de sa complexité. Donc, pour l'instant, nous allons simplement utiliser le panneau Canvas. Et comme vous pouvez le constater, nous avons ce panneau Canvas, mais nous n'avons rien à l'intérieur. Pour l'instant, je vais le redimensionner. Revenons à notre niveau. Imaginons donc ce dont nous aurons besoin. Nous avons notre personnage ici, et nous avons notre personnage, et d'ailleurs, si vous appuyez sur la touche F 8, vous retrouverez votre souris alors que ce personnage est encore au milieu d'une partie. Et si vous cliquez, vous pouvez déplacer des objets. C'est donc de la simulation, c'est une sorte de mélange entre simuler et jouer. Il vous suffit d'appuyer sur la touche F 8 après avoir lancé la simulation. Vous pouvez donc tester des choses. De cette façon, les références au personnage du joueur ne seront pas rompues car il existe toujours. C'est juste que nous ne le contrôlons pas pour le moment. Maintenant, nous avons notre personnage, et nous avons une très bonne vue de caméra, n' est-ce pas ? Et je vais juste appuyer sur Fight. Juste pour que tu puisses voir ma souris. Disons que nous voulons un texte en haut à droite indiquant le nombre de scores que nous avons obtenus, et disons qu'en bas à droite, nous voulons avoir une valeur qui indique la vitesse à laquelle nous nous déplaçons. Au centre du haut de l'écran, vous pouvez également, à un moment donné , s'écouler, juste pour le plaisir Je peux donc vous montrer comment créer des widgets basés sur la deuxième fois. Maintenant, cela devrions-nous avoir une idée de ce dont nous avons besoin. Créons donc notre widget. Ajoutons d'abord un bloc de texte ici comme espace réservé pour le moment Et voyons voir. Tout ce dont nous aurons besoin, ce sont de véritables zones de texte, mais je vais juste ajouter une image pour montrer comment l'utiliser. Nous pourrions également créer une barre de progression. Oui, faisons-les tous un mix, même si ce n'est pas nécessaire pour ce mini-jeu que nous avons, juste pour que je puisse le présenter. Et appelons ce bloc de texte. En haut à droite, nous allons avoir notre score, non ? Faisons donc un score. Ce n'est qu'un espace réservé pour le moment. Supposons que nous ayons une barre de progression et qu'au lieu de la mettre ici. Supposons que si nous atteignons le score en même temps, nous obtiendrons une barre de progression. Et disons que lorsque vous atteignez le score de dix, cette barre de progression se remplit et nous gagnerons la partie ou accomplirons la mission ou quoi que ce soit d'autre. Et cette image peut simplement être un élément d'interface utilisateur que nous pouvons utiliser, et mettons-la ici. Nous allons juste l' avoir dans une certaine couleur ou avec une certaine image avec des chiffres dessus. Nous aurons donc besoin d'un texte. Et si je la fais glisser ici, vous remarquerez qu'elle n'a pas été attachée à l'image, car même si les toiles peuvent avoir des enfants, cette image elle-même ne peut pas en avoir Il faudrait donc que je le place parfaitement sur le dessus, idéalement. Ou j'en aurais besoin, mais il se peut que ce ne soit pas le cas, selon la taille de l'écran, cela peut se mettre en position. Donc, si je mets un texte juste ici comme espace réservé, cela va juste changer. 1 seconde Oh, oui, changeons la couleur du texte pour que vous puissiez le voir. Si je déplace mon écran, le texte risque de se déplacer assez facilement, surtout si je ne place pas le panneau approprié dans un panneau approprié. Donc, ce que je peux faire, c'est créer une boîte ou une superposition. Je peux donc ajouter une superposition ici. Et dans cette superposition, je peux ajouter cette image, et je peux ajouter cette zone de texte. Maintenant, cette superposition agit comme une bordure pour notre manuel et notre image, et agrandissons notre image Nous allons le placer au centre. Et voyons voir. Vous remarquerez peut-être quelque chose d' intéressant ici. Je ne suis pas en mesure de le redimensionner directement car il est si petit Voyons plutôt ce que nous pouvons faire, nous pouvons cliquer ici sur ce bouton, remplir. Si vous la centrez simplement, cette image vide que nous avons ajoutée ne contient aucune image réelle, il n'y a donc aucune référence à obtenir. Donc, ce que vous pouvez faire, vous pouvez simplement toile de fond et l'agrandir. Ce bloc de texte peut se trouver au milieu. Nous pourrions l'agrandir, mais cela ne fait pas grand-chose pour le texte, et nous l'avons placé directement au centre en l'alignant Nous pourrions modifier le rembourrage, etc., pour le créer Par exemple, si nous avons ceci comme ça et que nous ajoutons un rembourrage de 50, cela déplacera 500, ce serait quelque chose comme ça, mais il n'y a aucune raison de le faire Si vous souhaitez simplement le centrer, vous pouvez simplement le centrer en procédant ainsi. Et maintenant, cela restera toujours au centre de ce widget de superposition, et vous pouvez simplement placer ce widget de superposition où vous le souhaitez. Et ce widget de superposition que nous allons utiliser peut être sélectionné et placé exactement où nous le voulons Maintenant, j'aime que mes positions soient des valeurs solides, disons-le comme ça. Maintenant, notre bloc de texte sera toujours là, quelle que soit la taille, etc., de l'écran ou l'appareil avec lequel vous jouez, et c'est bon Comme vous pouvez le constater, sur le panneau Canvas lui-même, nous avons placé ces widgets à l'extérieur, et j'ai fait une erreur en cliquant sur Je devrais cliquer sur la superposition au lieu de simplement sur l'image, et déplacons-les dedans. Vous pouvez vérifier la taille de votre écran spécifiquement si vous le souhaitez ici si vous essayez de la faire correspondre à une taille d'écran spécifique, ou vous pouvez simplement cliquer sur l'ajustement personnalisé et saisir, par exemple , 180, 54 ou 180, n'est-ce pas ? C'est donc la taille d'écran que je vise. Évidemment, je peux simplement cliquer sur Ajuster l'écran, qui serait mon écran. Et ici, en bas, nous voyons notre échelle DPI, que vous pouvez configurer si vous le souhaitez. Mais ce n'est pas nécessaire, nous allons donc sauter cette partie et nous concentrer sur ce que nous faisons ici. Revenons donc à ce que nous faisons. Nous avons notre score. Nous avons notre barre de progression. Nous pouvons également ajouter du temps par la suite, excusons-nous Pourquoi est-ce que je le fais glisser d' ici ? J'en ai besoin d'ici. OK, alors, au bout du temps, ou peut-être pour garder les choses propres, ajoutons-le Non, non, non, faisons-le juste au milieu de l'écran. Maintenant, c'est notre tour, donc je vais juste changer le nom pour le moment , afin que je me souvienne pourquoi je l'ai mis là. Ce ne sera pas le cas. Vous pouvez saisir le contenu de vos conteneurs ici à partir d' ici et vous pouvez les modifier, leur position. Leur couleur, leur ombre, s'ils ont besoin d'une image, il y a beaucoup de choses ici que vous pouvez consulter. Tu peux changer de téléphone. Vous devrez télécharger des téléphones si vous voulez vos téléphones personnalisés. Vous pouvez utiliser des polices de caractères, etc., comme la taille des lettres en italique, tout ce que vous voulez changer, vous pouvez le faire ici Et toujours, vous pouvez simplement appeler cela un clic sur un contenu dimensionné. Dans ce cas, la taille du widget correspondra au contenu, ce qui est important si vous avez un widget doté d'un mécanisme tel que le clic sur l'élément du widget. Disons que vous avez une icône. Et si vous voulez cliquer sur l'icône et que vous voulez, par exemple, la faire glisser dans l'inventaire ou simplement l' activer ou quoi que ce soit d'autre, vous pouvez simplement dimensionner le widget en fonction du contenu. De cette façon, le widget est exactement de la même taille que ce que vous voyez. De toute évidence, vous pourriez faire semblant en agrandissant une image transparente en arrière-plan, mais c'est pourquoi feriez-vous ces bêtises, n'est-ce pas ? Gardez donc à l'esprit que c'est un bon moyen de vous assurer que la taille de votre interface utilisateur correspond au contenu. Donc cette fois, si j'ajoute des lettres supplémentaires et par centre, mon widget est maintenant plus grand. signifie que je peux simplement appuyer sur la partie X de ce widget, et cela déclenchera toujours l'événement que nous allons créer pour qu'il fonctionne ou autre. Maintenant, revenons en arrière. Maintenant, nous avons notre widget, qui n'est pas vraiment fonctionnel pour le moment. Alors faisons-le. Tout d'abord, assurons-nous de faire quelque chose avec cette balise d'image ici. Nous avons ce widget, qui n'est qu'un pinceau de couleur blanche. Nous n'avons pas configuré d' image pour cela. Nous allons donc simplement sélectionner une image ou une texture aléatoire que nous avons. Je n'ai aucun widget téléchargé, mais honnêtement, je pourrais le faire avec n'importe quelle texture. Alors voyons voir. Utilisons simplement un widget irréel pour le moment Le simple fait d'utiliser le logo RE n'est peut-être pas le meilleur choix. Faisons-le, oui. Et on peut le déplacer ici. Maintenant que j'y pense, ce n'est peut-être pas une bonne idée d'utiliser ce logo car il rend difficile de voir la texture. Découvrons que vous pouvez également utiliser des matériaux, mais cela ne fonctionnera pas. Vous devrez créer un matériel d'interface utilisateur, dont nous parlerons plus tard. Alors, pour le moment, choisissons cette couleur. Choisissez simplement une texture aléatoire. Et oui, allons-y. Texture étrange. Je ne sais même pas à quoi ça sert. Nous allons nous en servir. Et nous avons cette barre de progression ici. Le fonctionnement de la barre de progression est similaire à ce que vous attendez, mais vous devez saisir les valeurs dont elle a besoin pour, vous savez, indiquer la progression. Tout d'abord, nous avons sa couleur par défaut, et nous avons la couleur de remplissage. Et ce que vous devez faire pour y arriver. OK, retirons-le pour l'instant. Gardez un œil sur cette barre de progression. Nous avons une progression de 0 %. Si je l'augmente, vous verrez qu'il augmente sur l'écran ici. Mais vous remarquerez peut-être que lorsqu'il est dit pourcentage, il s'agit de la valeur de zéro, un, zéro étant zéro, un étant 100 %. Vous ne pouvez donc pas simplement saisir une valeur de 50 %. Vous devez convertir votre valeur pourcentage et convertir ce pourcentage en valeur 010-1, et mettre la valeur ici de cette façon Je vous montrerai comment lier des valeurs plus tard. Nous avons nos options, comment nous voulons que nos progrès se sentent. Supposons donc que le remplissage par le centre soit quelque chose comme ça. Plein à partir de l'horizontale. C'est peut-être un bon système non seulement pour progresser, mais aussi pour mesurer le bruit que vous faites si vous le souhaitez . Cela vient de la verticale en partant du bas. Évidemment, vous pouvez modifier la forme de cette barre de progression, sorte que vous pouvez simplement créer quelque chose comme ça ou faire un stop en bas, évidemment. Nous allons le garder de gauche à droite, et restons comme avant. Il y a d'autres choses que vous pouvez faire, mais nous n'allons pas trop nous en occuper. Nous pourrions ajouter une bordure. Alors, quelle partie de la barre de progression peut être remplie, etc. Nous n'allons pas nous inquiéter pour eux. Je n'aime pas la couleur bleue pour ça. Mettons-le en rouge. Pour l'instant, je devrais peut-être le rendre vert, mais restons-le comme ça. Et voici notre score et notre temps, et nous avons notre bloc de texte pour la vitesse Nous devrons donc créer des fonctionnalités supplémentaires pour qu'elles puissent toutes être mises à jour dans le jeu. Les widgets peuvent être utilisés comme éléments de menu ou comme éléments d'interface utilisateur. Leur but est de vous permettre de déclencher quelque chose, du code que vous avez pré-codé ou simplement de le tenir à jour et de le mettre à votre disposition en tant que source d'information, n'est-ce pas ? Imaginez un jeu simple, comme le nombre de PV dont vous disposez, nombre de vies qu'il vous reste, objets de votre inventaire, le menu de démarrage, le menu de pause, le menu des paramètres, tout ce qui est interactif ou qui vous donne simplement informations sous forme d'élément d'interface utilisateur Est un widget dans Unreal. Nous l'avons donc, mais aucune logique ne leur est associée. La raison en est que nous ne les avons pas créés. Nous devrons créer nos éléments d'interface utilisateur. Désolé, c'est logique. Tout d'abord, nous allons supprimer cet événement. Et nous avons ici la préconstruction de l'événement et la construction de l'événement. C'est similaire à Event Begin Play, mais la différence est que les interfaces utilisateur doivent être conçues pour fonctionner. Vous pouvez donc vous demander quand je suis construit, cela ne se produit-il pas automatiquement lorsque je commence le jeu ? Non. Alors la réponse est non. Il doit être créé et attaché à l'écran, essentiellement à notre fenêtre d'affichage via Et la façon la plus courante de le faire est de le faire dans le personnage du joueur. Donc, si nous passons à notre contenu et à notre plan à la troisième personne, c'est notre personnage Juste pour m'assurer que je regarde le bon plan, je vais simplement l'agrandir, appuyer sur Play. Oui, je suis gigantesque. C'est peut-être la bonne taille. Nous cherchons donc le bon plan. Ici, nous devrions ajouter un événement pour créer notre widget d'interface utilisateur et le joindre à notre fenêtre d'affichage, ce que nous ferons dans la prochaine vidéo 27. UE5 FC09 02: Créons maintenant notre widget. Créons-le ici. Tout d'abord, nous trouvons un nœud appelé create widget et ajoutons à. Nous l'attachons ensemble. Et ici, nous sélectionnons le Widgit que nous avons créé. Nous l'avons donc appelé « we underscore UI », ce n'est pas le meilleur nom pour le désigner, mais nous aimerions l'ajouter à l' événement de début de partie. Alors, coupons-le. J' ai commencé à jouer à l'événement, et il se passe des choses ici, ce qui est très bien. Nous pouvons simplement l' ajouter pour nous assurer de ne pas le gâcher. Nous pouvons ajouter un nœud séquenceur. Nous pouvons le mettre ici, ceci, et ici nous pouvons ajouter notre logique de widget de création d'interface utilisateur. Le jeu commence donc le jeu ajoute des entrées par défaut au personnage de notre joueur, mais n'oubliez pas que cela a été créé par Unreal, et que le contexte de mappage et système de saisie amélioré feront partie du cours intermédiaire à l'avenir Comme il y a beaucoup de détails, je ne veux pas trop compliquer ce cours. Sachez simplement que cette page est chargée s' assurer que vos entrées sont enregistrées lorsque vous jouez au jeu. Donc sauter, se déplacer , etc., tout. Ils prennent leurs entrées améliorées dans le sous-système local et y ajoutent le contexte de mappage afin que vous puissiez l'utiliser Donc, ce que nous faisons ici, le jeu commence, le joueur est créé, excuses Et la première séquence effectue la saisie et la seconde la fenêtre d'affichage Et cela se produit instantanément, peu près, vous remarquerez donc une différence. Pour l'instant, compilons, sauvegardons et appuyons sur Play. Notre interface utilisateur est en fait à l'écran. Mais vous remarquerez peut-être qu'il est dans une position un peu étrange. Et c'est parce que nous devons ajuster notre concepteur d'interface utilisateur. Tout d'abord, assurons-nous d'ancrer nos éléments. Donc, ce que fait l' ancrage, c'est l'ancrage qui garantit que vos éléments restent dans une certaine partie de l'écran, et vous pouvez le faire en cliquant ici et en haut à droite Ou vous pouvez simplement cliquer ici et cliquer ici. Ce score est donc désormais toujours ancré sur ce point. Je pourrais le déplacer, mais ça ne sert à rien. Ce score est donc désormais toujours ancré sur ce point. Faisons-le simplement avec notre et je veux qu'il soit de taille uniforme. Je vais juste dimensionner le contenu, rendre plus facile à gérer. Les tailles ici n'ont donc plus d' importance, car c'est la taille du contenu, et faisons-en simplement 100 sur Z, désolé, X, et disons 100, je ne veux pas que cela apparaisse complètement à l'écran. Cela pose le même problème. Nous devons l'ancrer à un certain point. Cliquez donc sur Ancrer, cliquez en haut à droite, et maintenant c'est ancré en haut à droite. Vous vous demandez peut-être quelle est la différence entre ancrer quelque chose et ne pas l'ancrer La différence est que si la taille de l'écran est différente, urgence est un écran mobile. Où placer ce widget par rapport à la taille de votre écran ? Donc, si le coin de votre écran se trouve sur la bonne ligne, un écran mobile aurait un affichage différent : allons-y. Disons, la taille de l'iPhone mobile, dans la plupart des cas, pas au moment où je l'ai changé en taille d'écran mobile, j'ai retiré ce widget d'interface utilisateur de la fenêtre d'affichage Donc, si je jouais à ce jeu sur un mobile, pour être précis, je retirerais l'iPhone Five S, ce widget ne serait pas vu parce que je ne l'ai pas ancré de toute façon. Mais ce widget s'est déplacé en même temps l'écran car il est ancré en haut à droite de l'écran. C'est le but de l'ancrage. Vous ancrez vos widgets à une partie spécifique de votre écran. Ainsi, lorsque votre écran est de différentes tailles, bien sûr de différents appareils, il reste toujours dans une position relative par rapport à cette partie de l'écran. Donc, si vous voulez que quelque chose soit toujours en haut à droite, ancrez-le en haut à droite. Si vous voulez que quelque chose soit toujours au centre de l'écran, ancrez-le au centre. Vous avez des options ici. Alors fais-le. Maintenant, prenons ceci, par exemple, et ce que nous allons faire, tout d' abord, disons que je n' aime pas la taille de l'écran, évidemment, alors restaurons simplement. Et ce que nous allons faire, c'est que vous remarquerez peut-être que je ne peux pas vraiment ancrer ce texte ou cette image parce qu'ils se trouvent à l'intérieur du panneau de superposition est donc ce panneau de superposition qui doit être ancré, non les widgets qu'il contient Je vais donc le faire en bas à droite. Et évidemment, lorsque je déplace mon overlay, il déplace également mon widget Faisons-le -100 et moins 150. En fait, je pense que 200 serait mieux. Maintenant, déplaçons également cela au même endroit, afin que nous puissions le faire à 100 %. Peut-être pas. En termes de taille, il sera très petit car il n'a pas sa taille réelle. Faisons-le pour 100 et zéro. Numéro 100. Et pour ce qui est de Y, faisons-en 200. En fait, faisons-en 400. Et avec le temps, nous voulons qu'il soit ancré au centre, en haut, ou vous pourriez le faire comme ça. Mais je veux que ce soit au milieu du sommet, pas tout le haut. Donc je vais le faire comme ça. Cela donne également une bonne indication de l'endroit où se trouve le centre du niveau, donc je peux simplement le mettre ici. Je pourrais me positionner à zéro, zéro, mais ce sera sur l' ancre supérieure, ce qui n'est pas idéal. Nous allons donc le déplacer comme ça, le porter à 100. Nous allons dimensionner le contenu, et nous allons le mettre de 50 à 25 mieux OK, maintenant ils sont bien placés. Maintenant, nous compilons, sauvegardons, appuyons sur Play, et nos widgets sont en place. Mais vous remarquerez peut-être que les widgets ne font rien pour le moment car nous n' y avons pas encore ajouté de logique. Nous avons fait tout ce dont nous avions besoin ici dans le segment de l'interface utilisateur du widget, nous allons donc l' enregistrer pour le moment et quitter. Tout d'abord, nous devons comprendre comment cela va fonctionner. Ces deux essaient essentiellement d'obtenir une valeur similaire et des informations similaires. Il s'agit d'une barre de progression par rapport au total. Alors, qu'est-ce que vous aimez, disons que vous avez besoin de dix points. Il s'agira donc d'une valeur en pourcentage de votre score actuel et d'une valeur de dix. Disons que vous avez quatre points, quatre points. Cela devrait être de 40 %. Ces deux ont donc besoin de la même valeur pour effectuer leurs calculs. Celui-ci demande de la rapidité. Donc notre vitesse actuelle, que nous obtiendrons dans une seconde. Et celui-ci ne représente que le temps écoulé depuis le début du jeu. Il s'agit donc d'un calendrier Delta. C'est la vélocité, et ces deux-là recherchent simplement une valeur qu'ils peuvent utiliser pour afficher vos scores. Maintenant, nous avons marqué en lançant un ballon dans cette porte Ce que nous pouvons faire est quelque chose de très simple, en fait. Nous pourrions passer à cette interface utilisateur. Cette interface utilisateur est toujours disponible dans le niveau car elle fait partie de votre interface utilisateur principale, n'est-ce pas ? Il existe d'autres moyens de le faire pour être très clair. Vous pouvez le faire dans le widget lui-même, vous pouvez ajouter la logique ici. Mais la méthode la plus courante pour marquer des points et calculer consiste à lancer des points dans l'interface utilisateur ou à le faire depuis le joueur, car nous avons déjà une référence à ce sujet dans le personnage du joueur, c'est ce que nous allons faire lorsque nous allons ajouter notre interface à notre personnage de joueur. Ajoutons donc une interface. Et je crois que nous l' avons appelée interface Tutorial BP. Oh, non, non, non. Toutes mes excuses. J'ai oublié le nom de l' interface que nous utilisons, alors assurons-nous de sélectionner la bonne. Il existe de nombreuses interfaces irréalistes. Vérifions-le. Si vous avez oublié, comme moi, quel était le nom du plan ? Comme si je venais de recevoir le plan et de vérifier le nom de l'interface OK, donc score de buts au BPI. OK. Allons ici et ajoutons notre interface. Score de buts BPI, compilez, sauvegardez, et nous avons notre score de buts ici Donc, ce que nous allons faire, c'est lorsque le but est marqué , un événement appelé score. Nous allons obtenir cette référence à partir du widget ici. Donc, pour ce faire, assurons-nous d'avoir toujours cette valeur à portée de main. Nous l'appelons widget. Soulignez l'interface utilisateur. Et nous allons le mettre ici. Et évidemment, nous l'avons également défini. Cela se fait donc probablement dans le sens inverse. Définissons-le et après l'avoir défini, obtenons cette valeur et disons-le ainsi. Évidemment, si vous n'êtes pas sûr de votre code, il est préférable de le tester. Revenons en arrière. Nous avons donc maintenant une référence de widget que nous pouvons utiliser, non ? Donc, score d'appel à l'événement. Lorsque cela se produit, nous voulons que le score change dans le widget de l'interface utilisateur. Donc, ce que nous allons faire, c'est revenir à notre interface utilisateur et passer à notre mode d'édition graphique. Supprimons ces deux éléments. Pour l'instant , aucun événement n'est prévu pour GameStar Et ici, nous allons créer une variable, que nous allons appeler score. Et nous allons transformer en valeur flottante ou en valeur entière selon ce dont nous avons besoin, mais nous allons le transformer en valeur flottante dans ce cas. Reste simple. Et que se passera-t-il lorsque cet événement se produira ? Un événement appelé score se produira, nous obtiendrons notre valeur, la valeur du score et plus une. Nous allons donc obtenir ce score et le fixer à plus un. Nous devons également évidemment obtenir un score. Vous pouvez donc simplement le faire. Je n'y crois pas, il y a directement un avantage. Oh, non, nous ? Puisque nous allons simplement faire plus un, vous pouvez le faire. Donc, ce que cela fait au lieu de cela, c'est d'ailleurs qu'il m'a fallu beaucoup de temps pour le découvrir. Je ne sais pas pourquoi cela m'a tellement facilité la vie. Donc, si vous ajoutez un et que vous le réglez ici, n'est-ce pas ? , ce nœud peut également prendre cette valeur, ajouter un plus un à la valeur existante et la définir . Si vous ne faites qu'ajouter un plus à une valeur flottante, gardez simplement une trace de quelque chose ou quoi que ce soit d'autre, vous pouvez simplement l'utiliser. Cela ajoute un à la valeur de score que nous avons déjà dans le widget et la définit comme elle est. Donc, si c'est un, ça devient deux, si c'est deux, ça devient trois, et cetera Nous allons donc sauter cette partie et définir cette valeur directement plus un. Et évidemment, nous devrons le tester fois que nous aurons nos fonctionnalités. Maintenant, pour en revenir à notre concepteur, je vais montrer comment lier des valeurs à des valeurs non à des valeurs, toutes mes excuses, des variables à la logique que vous avez créée 28. UE5 FC09 03: Bon retour. Nous continuons là où nous nous sommes arrêtés. Pour l'instant, prenons le texte de la partition ici. Et liez ce texte à notre valeur flottante. Donc, la façon dont la liaison fonctionne est de lier ce texte ici, ce qui signifie qu'au lieu de le saisir manuellement ici en tant que tel, que tel, nous allons simplement le remplacer par une variable ou un autre résultat Donc, au moment où je clique sur Bind, nous obtenons ici une fonction appelée get text. Et vous remarquerez peut-être qu'il n'y a rien dans le graphique des événements ici, mais nous avons cette fonction. Cette fonction est destinée à fonctionner uniquement pour cette partition spécifique avec un texte de partition spécifique ici. Et cela s'appelle Get text par défaut. Cela va créer de la confusion si nous avons plusieurs textes get, nous allons donc remplacer le nom par quelque chose comme Underscore score Eh bien, je n'ai pas besoin de le souligner ici. Mais nous allons obtenir un score, et nous avons besoin d'une valeur de retour sous forme de texte. Nous avons notre score ici, et ce que nous allons faire, c'est obtenir notre score. Et cette valeur de score est automatiquement convertie en texte et placée dans l'interface utilisateur. Notre valeur de score par défaut est donc zéro, et commençons. Nous avons maintenant un zéro en haut de notre écran. Faisons donc en sorte que je puisse entrer une balle dans le portail d'une manière ou d'une autre. Et c'est devenu un. Notre démarche s'est déplacée, et il y en a maintenant deux Maintenant, nous pouvons le refaire et cette fois, il y en aura trois. Donc, cette interface utilisateur supérieure affiche désormais notre score, mais ce n'est qu'un chiffre. Vous voudrez peut-être ajouter un autre widget qui ajoutera un texte disant « Oh, score ». Donc c'est comme marquer deux points et un chiffre qui vient après. C'est une erreur courante. Comme ceux qui ne connaissent pas certains nœuds des widgets. Ce que vous devez faire à la place, c'est ajouter. Toutes mes excuses. C'est celui-ci. Ouais Nous devons donc ajouter, mais nous devons nous assurer que c' est la bonne fonction Voici donc le texte. Ce que nous devons ajouter, c'est une chaîne. Ajoutez donc une chaîne. Et nous avons mis cette valeur de A à B. Désolé, nous avons mis cette valeur dans B, et nous l'avons mise dans notre valeur de retour ici. Et ici à A, nous notons le score et c'est tout. Ce que cela fait, cela change la valeur du texte en valeur de chaîne, place dans B, et à partir de là, nous mettons cette valeur et la combinons avec un score de texte, la chaîne ici, nous l'avons saisie, et il renvoie le résultat sous forme de texte après l'avoir converti à partir de la chaîne J'expliquerai la raison pour laquelle nous procédons ainsi après l'avoir testé. Maintenant, nous avons le score zéro souligné par la peur. Et si c'est le cas, nous obtenons un point. Nous pouvons le faire autant de fois que nous le voulons, et cela fonctionnera toujours comme il se doit. Maintenant, vous remarquerez peut-être que nous avons reçu un texto. Nous avons pris ce texte, l'avons converti en chaîne, puis avons reconverti en texte. La raison pour laquelle nous l'avons fait est qu'à moins que vous ne le changiez d' abord en texte, cela se produira. Si vous le changez en chaîne, en chaîne, et que nous le saisissons directement ici comme ceci. Compilez, appuyez sur Play. Vous remarquerez que nous avons maintenant zéro point zéro. Par défaut, la valeur flottante est suivie d'un point zéro supplémentaire, qui est supprimé lorsque nous le faisons par conversion en texte. Comme je n'avais pas besoin d'une valeur point zéro, j'ai simplement utilisé Lexis Bien entendu, nous pourrions également essayer de le faire avec des valeurs entières. Par exemple, si vous voulez créer, disons, une variable à valeur entière, avons une variable de score , n'est-ce pas ? Donc, si nous prenons ceci et que nous le dupliquons à la place supprimons le plus récent créons une valeur entière et insérons la valeur entière. Et à des fins de test, je vais définir la valeur par défaut. Encore une fois, obtenez la version par défaut. C'est très bien Nous changeons cette valeur en une, disons, compile. Et si je devais en extraire une corde, comme Cp, appuyer sur Play, j'en trouverais une. C'est peut-être ce que nous devrions utiliser ici en toute honnêteté, mais je veux que vous vous souveniez de la différence. Les valeurs flottantes ont leur apparence comme s'il y avait des nombres supplémentaires vous pouvez avoir après zéro, comme un point zéro. Les valeurs entières sont des nombres entiers. Vous ne pouvez pas simplement les avoir comme zéro point cinq. Ou un point cinq ou deux points deux ou peu importe. Donc, dans ce cas, puisque nous utilisons un système basé sur le score, nous pouvons simplement utiliser une valeur entière au lieu d'un flottant, et nous pouvons ignorer cet endroit. Mais si votre jeu nécessite une valeur qui doit pouvoir la diviser, multiplier, etc. Donc, si vous voulez effectuer des opérations de masse dessus , par exemple, vous avez besoin d'une valeur de zéro point deux ou cinq points sept ou quelque chose comme ça, vous ne pouvez pas utiliser un entier dans son ensemble. Vous devrez utiliser float. Et si vous utilisez float, vous devez vous assurer de le faire de cette façon, ou vous pouvez toujours vérifier ces valeurs, n'est-ce pas ? Je vais donc encore montrer un moyen d'utiliser float si vous souhaitez si vous devez utiliser float, mais vous ne voulez pas afficher sévèrement les valeurs entières Ce que vous pouvez faire, c'est le faire en réduisant les chiffres fractaux Nous appuyons sur Play, et maintenant nous ne voyons pas nos chiffres fractaux, mais il s'agit toujours d'une valeur flottante Nous utilisons donc toujours un float, mais nous n'avons plus un point zéro ou 20 ou autre. Et vous pouvez utiliser cette même valeur pour effectuer d'autres opérations et appliquer la même valeur ailleurs sans altérer l' esthétique visuelle de votre interface utilisateur, où vous ne voulez pas que zéro point, zéro, etc., des fractales Nous allons donc supprimer cet entier car nous n'en avons plus besoin. Je vais le garder sous forme de flotteur. Il n'y a aucune vraie raison de ne pas faire et nous l'avons évidemment converti en flottant, etc., mais nous pouvions tout de même le mettre directement dedans, et tout irait bien Il n'y a donc pas de point un, pas de point. Et nous pouvons simplement l'utiliser tel quel, et en mettre un. Et évidemment, nous voulons qu' il en soit ainsi. Et restons un peu organisés. C'est une simple ligne. Jouons, testons-le. Tout va bien. Notre fonction fonctionne. Oh, j'ai fait une erreur. Juste à des fins de test, j'aurais probablement dû agrandir les portes. OK, oui, ça marche. Maintenant, c'est logique de notre widget pour ce widget, nous ne voyons plus ici, celui-ci, le score. Vous remarquerez peut-être qu'il est très petit en ce moment parce que j'ai veillé à ce que le contenu soit dimensionné, ce que j'aime faire sauf si je n'en ai pas besoin, mais cela n'a pas vraiment d'importance dans notre cas, donc je vais juste le garder lexique C'est plus facile pour moi. Ensuite, nous voulons gérer celui-ci. Progression, barre de progression. Je ne sais pas pourquoi je l'ai déplacé. Et cette barre de progression, nous utiliserons la même valeur. Par valeur, j'entends la valeur effrayante, le flottant créé. Mais ici, nous ne devons pas lier directement la valeur car comme je l'ai expliqué dans la vidéo précédente, nous le faisons par progression, et notre progression est de 0-1 Donc, si nous lions cette valeur au score, comme je l'ai fait pour le moment, si nous compilons et appuyons sur Play. Il est actuellement à zéro, et dès que je marquerai des points, il sera complètement rempli car notre valeur de un signifie 100 %. Nous devons donc nous assurer de créer une nouvelle liaison pour cela. Et cette nouvelle reliure nous vaudra un score. Supposons que nous créions une autre valeur de fil dentaire et nous l' appelions « score un but C'est donc le score que nous essayons d'atteindre pour terminer la partie. Habituellement, vous ne le feriez pas directement dans le widget. Vous pouvez obtenir cette valeur en mode jeu ou dans un autre mode où votre logique dicte le nombre de points dont vous avez besoin, mais nous n'allons pas appliquer plusieurs niveaux avec plusieurs logiques Je vais donc rester très simple Nous avons besoin de dix points pour ce jeu soit considéré comme terminé, comme un niveau terminé. Donc, ce que nous allons faire, c'est le compiler et mettre la valeur par défaut du score par défaut à dix. Maintenant, nous devons obtenir un pourcentage de cette valeur. Vous pouvez essayer de rechercher en pourcentage, mais il ne s'agit que d'un texte. Il est converti en texte. Donc, ce que nous allons faire à la place, c'est prendre notre valeur et la diviser par un score. Désolé, multipliez-le par le score et divisez-le par 100. Nous le multiplions donc par le score, 100. Désolé, nous multiplions par le score, puis nous le divisons par 100. Cela devrait nous donner de la valeur. À moins que je ne me souvienne mal du fonctionnement du pourcentage, cela devrait nous donner la valeur dont nous avons besoin Nous allons le tester. Maintenant, chaque fois que je passe dans une autre sphère, j'obtiens une barre de progression supplémentaire. Parce que chaque fois que j' obtiens un score, maintenant, cela me donne 10 % de la barre, qui est exactement ce que nous voulions. Et si j'étais bon à ce jeu, je le ferais peut-être plus facilement. Quoi qu'il en soit, nous avons maintenant notre deuxième widget qui fonctionne. Et la seule chose que nous avons vraiment faite, c'est d'ajouter ce calcul du pourcentage flottant et d'ajouter une variable qui constitue notre objectif final. Nous pouvons l'obtenir à partir du mode jeu, de l'instance de jeu ou de tout autre acteur que vous créez qui a besoin que quelque chose se passe ou d'un widget pour réagir, pour être plus précis. Mais ce n'est pas nécessaire pour notre mini-jeu, nous allons donc laisser un set Ensuite, jetons un coup d'œil ici. Nous avons le temps. Si votre jeu comporte des éléments liés au temps, disons que vous avez un jeu de course, vous avez besoin d'une sorte de mécanisme d'interface utilisateur qui fait tourner le temps, voici comment nous allons procéder dans la prochaine vidéo 29. UE5 FC09 04: Bon retour. Dans cette vidéo, nous allons convertir cet espace réservé au widget que nous avons ici en un véritable chronomètre qui tourne simplement vers le haut Maintenant, le problème, c' est que le chronomètre se produit à chaque tic-tac. Donc, idéalement, vous ne voudriez pas avoir beaucoup d'actions du chronomètre, car si vous accédez au graphique des événements et que nous cochons, cela doit se déclencher essentiellement toutes les secondes et mettre à jour notre valeur pour le chronomètre, ce qui n'est idéalement pas quelque chose que vous voudriez. , soit, il vaut mieux avoir un moyen de l'arrêter, le processus de cocher lorsque vous n'en avez pas besoin ou d' autres options de cocher si cela autres options de cocher si est lié à un événement ou à quelque chose comme ça. Vous pouvez activer ou désactiver cette case. Vous pouvez même ajouter une chronologie si cela que 10 ou 20 secondes, donc vous n'avez pas à vous inquiéter à propos d'Evan qui le prenait à chaque fois. Evan Ts ajoute que beaucoup coûte cher quand ils sont trop nombreux. Maintenant, dans ce but, allons-y. Nous avons ce temps ici, et nous devons le lier. Et avant que j'oublie, assurons-nous de renommer le précédent Score G, obtenez le pourcentage. Nous l'avons déjà fait. Créons donc une nouvelle reliure. Pour cette fois. Et ceci est destiné à notre nouvelle reliure, et nommons-le temps écoulé Le temps s'est écoulé. Maintenant, cette fonction est censée nous donner une valeur textuelle d'un temps déjà écoulé. Nous allons donc créer une variable, appelez « assurez-vous qu'elle est flottante » après. Appelons ça le temps convertissons-le en float et ajoutons cette valeur. Nous devons mettre à jour notre valeur temporelle en fonction de la durée de jeu en millisecondes Passons donc à l'heure de Delta. Et ce que fait Delta Time, Delta Ts, c'est temps qui s'écoule après le début d'une partie essentielle. Donc, si vous l'ajoutez par Delta Delta Time et que vous le définissez, plus facile de le faire comme ça, de le définir et nous l' entrons sous forme de valeur de texte. Voyons ce qui va se passer. 1 seconde Contexte. Oh, ce n' est pas la bonne heure du Delta. Nous avons besoin d'un temps Delta pour obtenir des secondes Delta mondiales. Ce qui est assez déroutant étant donné que leur dénomination est si similaire. Mais quoi qu'il en soit, notre widget est bien trop haut. Faisons en sorte que vous puissiez vraiment le voir. Et voyons la position dans son ensemble, mettons-la quelque part, Lex. Compilez, appuyez sur Play. Maintenant, nous avons un temps qui passe, et il continuera de tourner. Mais ce n'est pas exactement ce que nous voulons. Donc, ce que nous allons faire, convertir ce temps secondes de temps en chaîne. Cela le convertira automatiquement au format des minutes, etc. Alors maintenant, quelques secondes, quelques minutes , nous avons le temps au top. Vous pouvez également créer un compte à rebours, par exemple, si vous voulez avoir, disons, 20 secondes pour marquer un point, et si vous ne marquez pas un point en quelques secondes, vous perdez la partie, etc., ou si vous voulez simplement avoir le maximum de temps qu'ils peuvent passer dans un certain niveau, vous pouvez le faire comme vous le souhaitez Si vous voulez activer le compte à rebours, il vous suffit de soustraire cette valeur, de passer à quelques secondes et d' appliquer cette valeur à la place Et vous devrez définir une valeur par défaut pour le temps correspondant à la durée que vous souhaitez que ce soit la seconde maximale. Disons donc si je veux avoir 30 secondes au maximum. Je fais donc 30 secondes, et maintenant mon temps de parole est écoulé, me reste plus que 22 secondes. De toute évidence, aucune logique ne lui est appliquée pour terminer la partie ou quoi que ce soit d'autre, et nous ne le voulons pas vraiment dans ce cas, donc je vais le supprimer. Et maintenant, ce que nous pouvons faire, c'est aussi si vous ne voulez pas que cela soit si choquant, si vous ne voulez pas cette valeur flottante à la toute fin, il suffit de faire la même chose que j'ai mentionnée précédemment Nous convertissons au lieu d' utiliser des valeurs flottantes, nous utilisons des entiers, et je vais juste en démontrer une simple Nous allons donner du temps. Nous allons le convertir en nombre entier. Nous allons y mettre un moment. Et en fait, ce que nous pouvons faire à la place c'est le convertir en entier. Conversion. Oh, pas si drôle que ça. Faisons-le simplement. Ce sera plus rapide. Et nous avons défini cette valeur et nous avons mis cette valeur à 2 secondes de chaîne. C'était une erreur étrange, mais maintenant nous l'obtenons par seconde. Vous remarquerez peut-être que ce n'est toujours pas ce que nous voulons. Nous avons toujours des points zéros. Donc, ce que nous pouvons faire à la place, nous pouvons le supprimer et le supprimer également, tourner les portes. Si vous vous souvenez de notre fonction précédente, la façon dont je vous présente, cela semble évident et nous avons dû faire flotter le texte ici. Donc, ce que nous pouvons faire à la place, nous devons de toute façon écrire une chaîne de texte ici, mais nous voulons que ce soit d'un flottant à un autre. Ce que vous pouvez faire, c'est créer un ajout en copiant simplement nos nœuds d'ajout pour que je n'aie pas à le taper Donc, ce que nous pourrions faire, c'est simplement ajouter et faire une combinaison d'ajouts comme, Oh, d'accord, cette première valeur temporelle est en minutes, la deuxième Pour cela, il faudrait le serrer, le diviser. Chaque fois qu'il atteint 60 secondes, vous le mettez à zéro, vous le mettez dans une valeur. Vous pouvez le faire de plusieurs manières. Si vous ne voulez pas que ce zéro soit clair. Et évidemment, si vous connaissez C plus, vous pouvez également modifier la fonctionnalité Ciplus plus et en créer une qui fasse exactement la même chose, mais en urniquant moins deux valeurs Et nous pouvons également toujours simplement supprimer une partie de la chaîne pour qu'elle ne contienne aucune valeur fracturée Mais personnellement, je m'en fous. Cela ne me dérange pas de perdre des millisecondes, surtout si vous êtes un coureur de vitesse Assurons-nous de remettre notre valeur temporelle à zéro. Nous commençons à zéro, nous supprimons notre entier, nous compilons et nous enregistrons. Nous avons maintenant un widget qui nous indique le temps écoulé. Nous avons notre variable de progression, notre score total, malheureusement, ils sont tous mal alignés Je vais donc devoir les aligner si je veux une certaine clarté visuelle. Mettons donc 20 juste un peu. Je veux que le point final soit le même que le score. Oui, en fait, c'est assez bien. Ce n'est pas l'idéal, mais ce n'est pas forcément le cas. Nous sommes juste en train de prototyper des trucs. Et maintenant, nous avons notre calendrier. Nous avons notre score. Nous avons notre barre de progression. Modifions maintenant notre valeur de vitesse. Maintenant, celui-ci va être un peu différent car la vitesse que nous obtenons provient du personnage à la troisième personne. Donc, le mouvement que nous essayons d' obtenir est la vélocité du personnage à la troisième personne. Donc, ce que nous devons faire, disons, vérifier, désolé. Vélocité. Donc, ce que nous allons faire, calculer la vitesse. Et comme vous pouvez le constater, ce n' est pas ce dont nous avons besoin. Ce n'est pas une sortie que nous pouvons utiliser. Donc, au lieu de cela, ce que nous allons faire Pour toutes les fins prévues, nous pourrions facilement obtenir notre vélocité actuelle en utilisant personnage de Sirt Person Inside Star Blueprint Mais ce n'est pas vraiment ce que nous voulons. Dans un jeu, vous devriez généralement avoir une certaine valeur dans un jeu où vous voudriez voir votre vitesse . Par exemple, si vous conduisez une voiture ou qu'il s'agit d'un jeu lequel vous calculez votre vitesse ou quoi que ce soit d'autre, lorsque vous volez aurez déjà une sorte de fil dentaire qui dictera à quelle vitesse votre personnage va ou ne va pas Dans ce cas, nous ne l'avons pas. Nous utilisons simplement un système de mouvement de base irréel, et ce que nous pouvons faire, c'est obtenir notre vitesse Si j'ai une seconde, je réponds à ma question. Cela fonctionne en tant que paramètres, donc ce n'est pas correct non plus. Nous allons donc le faire, nous allons utiliser le graphique des événements ici. Et dans le graphique des événements, d'ailleurs, si vous avez remarqué que nous n'avons pas utilisé cette case que nous avions utilisée auparavant, assurez-vous de la supprimer si vous n'en avez pas besoin. Cela augmente les coûts simplement en existant. Nous allons passer à la vitesse supérieure et créer une nouvelle reliure. Et c'est ce que nous allons appeler une reliure là où nous allons gagner en rapidité. Maintenant, la vitesse que nous essayons d' obtenir appartient au personnage du joueur, et je vais vous montrer comment procéder dans la prochaine vidéo. 30. UE5 FC09 05: Bon retour. Maintenant, en continuant, nous essayons d'obtenir une valeur pour notre vitesse que nous allons avoir ici en bas à droite en haut du widget. Nous devons obtenir la vitesse de déplacement de notre personnage de troisième joueur. Et comme je l'ai montré dans la vidéo précédente, il n'y a aucun moyen direct de se dire « Oh, donne-moi la vitesse de déplacement ». Nous avons besoin de faire caca, et je vais le déplacer du personnage à la troisième personne vers le widget lui-même. Donc, si je veux modifier les propriétés du widget, je peux simplement le faire à partir du widget. Ce que nous allons faire, obtenir le caractère du joueur. Et si nous avons choisi ce personnage de joueur, c'est parce que nous essayons de lui trouver une vitesse. Si vous essayez de trouver un ennemi ou un objet dans le niveau, l'idéal serait d' idéal serait obtenir la valeur directement à partir de cet objet et de la transférer d'une manière ou d'une autre vers le widget via l'interface ou le mode jeu. Par exemple, si c'est nécessaire, ce n'est généralement pas une bonne idée de faire tous ces calculs en permanence, à moins que cela ne fasse partie intégrante de votre jeu, vous ne devriez probablement pas le faire. Encore une fois, cela coûte cher pour un rendement très faible. Mais encore une fois, dans certains jeux, c'est obligatoire, alors vous le faites. Nous avons donc besoin de la vitesse de notre joueur, pour obtenir notre personnage de joueur, et ce dont nous avons besoin, c'est de sa vélocité. Si nous obtenons la vitesse et que nous l'avons ici tout en bas, obtenez la vélocité. Et si nous le mettons simplement en retour et que nous le compilons en appuyant sur Play, vous verrez que nous obtenons des valeurs XYZ car la vélocité est généralement bonne, mais est généralement pas calculée en XYZ Nous nous déplaçons à une certaine vitesse, X à XY ou Z dans le monde à trois D. Mais ce n'est pas ce dont nous avons besoin. Comme si nous ne voulions pas mettre notre XYZ dans la fenêtre d'affichage. Donc, ce que nous devons faire, nous devons obtenir un lien vectoriel. Et maintenant, cette valeur est notre vitesse. Voyons voir, appuyez sur Play. Et maintenant, c'est notre vitesse. Vous vous demandez peut-être pourquoi il est bloqué à 3 000 et pourquoi il se déplace plus lentement au fur et à mesure qu'il augmente. Tout d'abord, nous avons une valeur fractale à la toute fin, ce qui est normal, mais vous remarquerez peut-être aussi que nous avons une vitesse maximale de 3 000, et cela est dû au plan, au mouvement des personnages et à la vitesse maximale nous avons envoyée précédemment Notre vitesse maximale de vax est donc de 3 000. Il mesure 3 000 centimètres. Il s'agit essentiellement de 30 mètres/seconde. Maintenant, nous ne voulons pas qu'il soit directement mis dans ce type de valeur. Donc, ce que nous allons faire à la place, c'est le convertir en texte en texte. Nous allons nous assurer de ne pas avoir de fractales. Je ne les veux pas dans mon interface utilisateur pour des raisons de rapidité. Et pour leur part, avant même de le faire, je vais diviser cette valeur par 100 car je ne veux pas que ma vitesse soit indiquée en centimètres. Je veux que ça compte. Maintenant, cela va nous donner une valeur de 1 à 30 étant notre vitesse. Parfois, ça monte un peu trop haut parce que je prends l'avion, mais c'est compréhensible. C'est juste le calcul de ma vitesse totale. Nous allons donc maintenant faire quelque chose que nous avons déjà fait dans le précédent. Nous allons ajouter Nous allons ajouter la valeur et après la valeur, nous allons ajouter let's make less Et je vais ajouter de l'espace supplémentaire à l'espacement. Je vais le remettre dedans. Je vais le compiler, le sauvegarder, appuyer sur Play. Et maintenant, j'ai un widget qui m'indique ma vitesse. Vous pouvez faire bien plus avec les widgets. Les widgets agissent donc également comme des éléments de menu. Donc, si vous voulez cliquer sur un bouton ou, vous savez, gérer votre inventaire, consulter la carte, cliquer sur les éléments de la carte, etc. dans les jeux, vous aurez besoin d'une sorte d' interactabilité directe avec le widget vous aurez besoin d'une sorte d' interactabilité directe avec Et généralement, nous créions différents widgets et les appliquions, les retirions de la scène comme l'écran selon vos besoins ou en supprimant le widget. Ainsi, par exemple, nous avons notre widget ici, créé ce widget. Nous pourrions également éliminer le widget. Donc Widget si vous accédez aux commandes du widget ici. Vous avez supprimé du parent, vous pouvez simplement le supprimer régler la visibilité sur invisible ou simplement le déplacer hors de l'écran. Idéalement, s'il s'agit d'un widget qui consomme du processeur, etc., vous devriez simplement le supprimer complètement Il en va de même pour la suppression et si et si vous lisez la description, cela la supprime de tout, essentiellement. C'est le retirer du conteneur, etc. À moins que vous n'en ayez besoin, vous devriez probablement le supprimer. Et dans notre cas, ce widget doit toujours rester à l'écran. Si vous souhaitez masquer certains éléments du widget, vous pouvez le faire dans le widget lui-même en ajoutant des appels, etc., accédant au widget et en appelant des événements directs Nous avons la référence de l' interface utilisateur de notre widget ici. Donc, si je veux, disons, obtenir une certaine fonction. Faisons en sorte qu'on en ait une pour le moment. Le temps de co-fonctionnement est donc écoulé. Vous pouvez donc accéder à l'élément de votre widget, comme la fonctionnalité, par la référence que nous avons ici lorsque nous créons le widget. Vous pouvez donc toujours simplement gérer les éléments de votre widget, valeur des parties spécifiques de celui-ci ou éléments simplement en les transférant Désolé, juste en utilisant la référence qui s'y trouve. Maintenant, si vous voulez cliquer sur créer une sorte d'interactivité ici, nous devons, par exemple, simplement ajouter un bas. Je vais ajouter un bouton ici Et sur ce bouton, j'ajouterais un événement appelé On a cliqué Donc, lorsque vous cliquez sur ce bouton, quelque chose est censé se produire Je vais donc juste créer une chaîne d'impression. Et c'est parti. Et je veux qu'il dise bonjour quand je clique sur ce bouton. Compilez, PrescoPlay appuie sur Play, et comme vous pouvez le voir, je peux cliquer dessus Mais quand je commence à jouer, je perds la saisie de ma souris. J'ai pu cliquer dessus parce que lorsque je joue, j'avais toujours ma souris, mais vous n'auriez pas cette souris au début du jeu si vous jouez avec un clavier, etc., parce que cela ne fonctionnera que dans Unreal Editor tant que je n' ai pas cliqué dessus Et maintenant, si je veux cliquer à nouveau sur le widget, j'ai besoin de Fight et de cliquer ici. Mais ce n'est pas ainsi que cela fonctionnerait dans le jeu, surtout s'il s'agit d'un widget qui apparaît au milieu du jeu Pour vous assurer que vous pouvez réellement cliquer dessus, procédez comme suit les widgets qui nécessitent votre capacité à être cliqué comporteront un événement vous permettant de cliquer dessus Je vais donc ajouter un événement appelé Construct me et mon miserable typing event construct Cela se déclenche lorsque le widget est créé. Cela ne devrait en aucun cas faire partie des éléments du widget de l'interface utilisateur. Je le montre juste ici pour que vous sachiez comment procéder. Idéalement, vous devriez le créer dans un autre widget. Ainsi, lorsque l'événement est contracté, nous obtenons un contrôleur de joueur. Déplaçons-le. Et puis réglez la souris sur Wait. Ce n'est pas ça. Toutes mes excuses. Nous devons obtenir le contrôleur du joueur à partir de cela, et non à partir de bits d'exécution. Il ne s'agit que d'une fonction pure. Et ici, nous obtenons le curseur de la souris. Et nous le créons et nous compilons, appuyons et appuyons sur Play. Alors maintenant, que ce widget soit affiché l'écran ou non, au moment où il commence à être créé, j'ai toujours mes entrées disponibles sur mon clavier, mais je peux également cliquer sur ce bouton et créer le bouton Bonjour. Mais évidemment, imaginez qu'il s'agit d'un inventaire ou d'une carte, etc., et que vous ne voulez pas qu'il apparaisse constamment à l' écran, n'est-ce pas ? Vous devez donc désactiver cette saisie de souris et supprimer cet élément du widget de l'écran. Donc, tout d'abord, ancrons-le de manière à ce qu'il ne soit pas au milieu de l'écran. Oui, c'est beaucoup mieux. Donc, lorsque j'appuie sur play now, c'est en bas à droite. Tout d'abord, maintenant que c'est fait, prenons ce widget. Et nous savons que ce widget est notre bouton 01. Passons à notre bouton 01 et voilà. Au lieu de vendre « bonjour », nous allons voir ce que nous pouvons en faire. Ce n'est qu'un widget, donc nous pouvons, je suppose, le supprimer. Ouais Voyons donc ce qui se passe lorsque nous cliquons dessus maintenant, lorsque nous le supprimons du parent, et c'est fini. Mais nous avons toujours notre souris au milieu de l'écran, ce qui est évidemment une solution assez simple. Nous obtenons ce curseur de souris et nous le réglons sur fs. Et la cible doit être le contrôleur du joueur, évidemment. Et lorsque nous appuyons sur Play now et cliquons sur ce bouton, il disparaît maintenant. Maintenant, cela est utile lorsque vous avez, disons, une interface utilisateur sur laquelle vous souhaitez cliquer et qui contient quelque chose comme, disons, lorsque vous avez un certain élément, il apparaît dans votre interface utilisateur. Vous cliquez dessus, vous le consommez et il disparaît. Évidemment, vous pouvez y inscrire toute la logique, comme « Oh, si vous n'avez plus cet article, supprimez-le, ou si vous le souhaitez, le temps a passé, il a expiré. C'est à vous de décider. Vous pouvez créer ce que vous voulez avec. Mais personnellement, je n'ai pas besoin cette fonctionnalité dans celui-ci. Et en tant que tel, je l'ai tout retiré. Mais gardez juste à l'esprit. C'est ainsi que vous pouvez créer les éléments de votre menu. Vous pouvez mettre un texte, vous pouvez cliquer sur les boutons. Vous pouvez ajouter une grille, c' est-à-dire que si vous allez dans notre Canvas ici, nous avons notre panneau de grille, par exemple. Et à l'intérieur de ce panneau de grille, je peux ajouter plusieurs autres éléments. Je peux donc ajouter le bouton un, le bouton deux, le bouton trois C'est difficile à voir pour le moment, mais vous le verrez dans une seconde. Et je vais juste les dimensionner. Je peux les mettre en rangées. Maintenant, j'ai quatre boutons. Dans une autre rangée. Je peux les déplacer si je le souhaite. Comme vous pouvez le constater. Maintenant, si vous voulez que votre taille soit plus grande, etc., il vous suffit de le faire dans le panneau de grille, nous allons dimensionner le contenu lui-même Il ne s'agit donc que de la taille du contenu, ou vous pouvez plutôt accéder à vos boutons et, à partir des boutons, modifier la façon dont ils sont rembourrés, ils sont passés, etc. Et vous ne vous limitez pas à l'ajout de boutons. Vous pouvez également ajouter une image ici. Et si votre image l'est, disons « Attendez ». Ce n'est pas une image. Il s'agit d'une image HDR. Mes biologistes. Ajoutons simplement une texture, une texture normale. Et cette texture est très grande, elle recouvre donc soudainement l'ensemble du widget. Vous pouvez réduire la taille. Si tu veux, et dans mon cas, je ne veux pas d'images, alors je vais juste sauter les boutons Si je passe au panneau quadrillé, vous verrez que nous avons notre taille ici. Je vais augmenter la taille à quelque chose comme ça, et nous pourrons le positionner où vous le souhaitez. Je vais l'ancrer en bas à gauche pour le moment, le positionner 000, puis le déplacer comme je veux quelque chose comme ici, ce qui est très bien. Nous pouvons maintenant cliquer sur les boutons. Nous pouvons changer leurs couleurs si nous le voulons. Je comprends que c'est un peu difficile à voir d'ici et nous avons donc nos chroniques. Nous avons nos rangées où nous voulons que cela soit placé. Et n'oubliez pas qu'il s'agit d'une grille. Il y a donc un système basé sur une grille, et il y a des boutons sur la grille. Si vous voulez des éléments de menu qui correspondent mieux à ce à quoi vous êtes habitué, vous pouvez faire cela en une seconde. Je crois que c'était celui-ci. Et si j'ajoute des boutons ici, oui. Si j'ajoute des boutons ici. Maintenant, je veux qu'ils soient horizontaux, pas verticaux, donc désolé, je les veux verticaux, pas horizontaux. Maintenant, je les ai horizontaux. Non, je vais juste coller ce bas. Maintenant, j'ai cinq espaces d'éléments d' interface utilisateur à l'intérieur de cette superposition, et je peux ajouter du texte par-dessus si je veux faire chacun d' eux Et disons que celui-ci est un jeu de départ. Oui, pas Star Game, tu as compris. Options, quittez le jeu comme des figurants, etc., comme vous voulez dans votre boîte de jeu Stack. N'hésitez pas à expérimenter. Il y a beaucoup de choses que tu peux faire. Imaginez n'importe quel jeu auquel vous avez déjà joué ou que vous avez vu, et essayez de réfléchir à la façon dont ils l'ont rendu possible. Comment ont-ils utilisé le système de widgets dans Unreal pour obtenir les mêmes résultats et s'il serait logique qu'ils soient dans le même widget ou qu'ils fassent partie d'un autre widget ? N'oubliez pas non plus que vous pouvez ajouter d'autres widgets à vos widgets. Donc, si vous avez un autre widget , que nous allons créer dans une seconde. Encore une fois, juste à des fins de démonstration, je ne vais pas vraiment cliquer pour créer un widget, et nous allons appeler le widget utilisateur et passer à Cty C'est juste du SS, juste pour que je puisse le trouver facilement. Et ici, si je veux ajouter un widget, je pourrais simplement l'ajouter ici. Et j'ai mon widget SS ici. Et si j'ouvre mon widget SS maintenant, et que j'y ajoute un panneau, je vais juste ajouter un canevas juste parce que c'est plus rapide. Et je vais ajouter une image ou même un texte. Je vais ancrer le centre de texte et taper du texte, compiler, appuyer sur Enregistrer, c'est parti. Et vous n'êtes peut-être pas en haut à gauche, j'ai le SSSS. Je l'ai ancré ici. Vous vous demandez peut-être pourquoi il n'est pas là, et en haut à gauche, je ne l' ai pas ancré ici. Je l'ancre également ici au centre et je le positionne . Vous voyez maintenant, j'ai un widget dans un widget, ce qui est utile lorsque vous avez système d' inventaire ou une sorte de menu qui se superpose, comme un menu avec plusieurs couches et autres. C'est très utile. De plus, il vous permet de les coder indépendamment les uns des autres et vous pouvez les supprimer lorsqu'ils ne sont pas nécessaires, etc., ou si certains widgets sont spécifiques à certains niveaux, vous pouvez les utiliser là-bas et les supprimer par la suite. Il existe de nombreuses façons d'utiliser vos widgets, et le système de widgets en général est très coûteux. Par exemple, il y a beaucoup de choses que vous pouvez utiliser ici, mais qu'il vous suffit de les tester pour voir ce que vous voulez faire. Et il n'existe pas de solution unique pour toutes. Vous pouvez ajouter un cercle trober, etc., qui est juste un joli widget . J'aime bien utiliser. Vous pouvez l'utiliser comme écran de chargement ou autre. Vous pouvez ajouter plus d' éléments, moins d'éléments. Par exemple, imaginez que vous créez un jeu et que le nombre de points représente le nombre de HP que vous avez Vous pouvez simplement les augmenter ou les diminuer fonction de la quantité d'HB que vous avez Il y a beaucoup de choses que tu peux faire. L'imagination n'a pas de limites, alors n'hésitez pas à expérimenter. Ce sera tout pour l'introduction des widgets dans ce cours de base. Nous aurons des explications plus détaillées sur les widgets et sur la façon créer des éléments de jeu complexes dans le cours intermédiaire qui sera publié ultérieurement. J'espère que vous avez appris quelque chose et que vous appréciez votre séjour ici. Si vous avez des questions, n' hésitez pas à nous contacter. Je ferai de mon mieux pour t'aider. Merci, et je vous souhaite une bonne journée.