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.