Transcription
1. Introduction: Commencer à utiliser Undril
Engine est super excitant. Vous pouvez façonner un paysage, faire glisser différents modèles
sur le niveau, y
mettre d'autres éléments, encore plus de modèles de traités jusqu'à ce que vous obteniez
quelque chose que vous avez créé. Mais c'est statique. Cela
ne fait rien. La seule chose qu'il
fait, c'est d'être joli. Très vite, vous vous
rendez compte que les plans, la base des fonctionnalités
dynamiques sont essentiels pour rendre vos
jeux jouables et introduire des mécanismes de jeu pour rendus de
films comportent des événements
dynamiques qui leur donnent vie
ou, dans mon cas, pour créer une simulation de jeu de
tir entièrement dynamique qui sera utilisée
pour une Bonjour. Je m'appelle Jordi. Je suis un créateur
numérique et j'utilise UnrLengine pour
toutes sortes de projets, allant des jeux vidéo aux rendus de films
et bien UnlEngine possède des centaines d'applications
différentes, mais quelle que soit l'utilisation que
vous faites du moteur , vous voudrez
éventuellement
apprendre à créer des plans Eh bien, c'est exactement ce que je vais faire pour vous
aider dans ce cours. Mon objectif est de vous enseigner la logique qui sous-tend le
plan afin que
vous compreniez ce que vous faites et que vous ne
vous contentiez
pas de simplement
recréer ce que je fais sans cervelle C'est pourquoi nous allons
y aller étape par étape, créer de petites choses amusantes et vraiment explorer certaines
des notes clés de ce qu'elles
font et de leur fonctionnement. Et nous allons également
commettre des erreurs et
rester bloqués parce
que cela fait partie du voyage. Mais ensemble, nous allons
résoudre ces erreurs, et je vais vous montrer de très
bonnes techniques pour résoudre des
problèmes pour finalement
faire fonctionner votre plan À la fin de ce
cours, vous aurez une solide compréhension du
fonctionnement des plans et d'
Unreal Engine Vous serez en mesure de
transformer vos idées en un plan fonctionnel et
éventuellement de créer le jeu de vos rêves Ce court métrage insensé ou
tout autre projet irréel, vous aviez en tête une Ce cours s'adresse à tous ceux
qui ont commencé à explorer UnRel Engine et qui sont maintenant bloqués sur Blueprints.
Cela vous ressemble-t-il ? Alors je suis très heureuse de t'
aider et j'espère te
voir dans ma classe. Ensemble, abordons la
programmation d'Unreal Engines et apprenons à comprendre les
bases fondamentales des plans
2. L'interface de Blueprint: Salut, les gars, bienvenue,
et je suis très heureuse que vous ayez
commencé ce cours. Nous allons nous
plonger dans le monde des
plans d' Unreal Engine,
qui, pour certains, sera
un monstre effrayant à affronter Mais une fois que vous avez compris l'idée fondamentale du
fonctionnement d'un plan, c'est en fait assez
simple et très amusant Je peux passer des heures à
découvrir des systèmes interactifs, et c'est tellement gratifiant
si cela fonctionne Créons donc un plan. Dans le navigateur de contenu, cliquez avec
le bouton droit de la souris et
vous verrez que nous pouvons créer une
classe de plan à partir de là Cela ouvrira une
fenêtre qui nous demandera de
sélectionner le type de
plan que nous voulons construire Et en haut se trouvent
les plus courantes,
auxquelles nous allons participer, mais
en élargissant toutes les classes, nous pouvons en trouver plus de 1 000 autres. Maintenant, ne vous laissez pas
submerger par cela. Il existe des classes de
plans très spécifiques qui auront
plus de sens une fois que vous aurez compris l'idée générale qui
sous-tend les plans Nous y reviendrons
quand cela aura plus
de sens. Donc pour
l'instant, réduisez simplement cette fenêtre et
examinons la classe commune. La classe d'acteur est la
plus utilisée. Comme le dit la description, cela vous permet de construire quelque chose et de le
placer dans le monde. Commençons donc par celui-ci et explorons certains des autres plus
loin dans ce cours. Et je vais l'appeler BP
Underscore Interactive Cube. BP est l'abréviation de Blueprint, et c'est un moyen de rester
organisé dans votre projet Nous pouvons donc maintenant le
faire glisser dans le niveau, et il affichera le widget du plan
de type d'acteur Il est vide, bien sûr. Ainsi
, depuis le plan, nous pouvons cliquer sur Modifier ou simplement double-cliquer sur la classe de
plan dans votre navigateur de contenu Hand, ça y est. La fenêtre dans laquelle vous passerez
le plus clair de votre temps. Explorons donc ce que nous
voyons et à quoi cela sert. Sur le côté gauche,
nous avons les composants. Et ici, nous pouvons ajouter des composants avec
lesquels nous voulons faire
quelque chose. Je peux donc cliquer sur et choisir parmi une
longue liste d'articles. Et commençons
par un simple cube. Il s'agit du même
cube que vous
ajouteriez directement dans votre
niveau, d'ailleurs. Il possède sa propre fenêtre de visualisation, et vous pouvez le déplacer, le
redimensionner , le faire pivoter, comme
vous le feriez dans votre niveau. Et ce qui est intéressant, c'est que nous
pouvons également voir ce cube revenir dans le niveau maintenant puisque nous l'avons
ajouté au plan est très important de
comprendre que si nous
déplaçons le cube dans le niveau, nous déplaçons en fait
l'intégralité du plan Dans le panneau détaillé, nous pouvons voir le cube
que nous avons ajouté. Cela reflète la
fenêtre des composants à l'intérieur du plan. Et nous pourrions sélectionner un cube à partir de là pour
déplacer spécifiquement cet acteur, mais ce n'est pas une bonne
pratique car cela ne reflète plus
la position du cube dans le
plan. En fait, le fait de modifier à
nouveau la
position dans le plan ne se met
plus à jour dans le niveau Réinitialisons donc ce que nous
venons de faire dans l'outliner. Se mettre au travail et
tout construire à l'intérieur
du plan lui-même. Très bien, faisons quelque
chose avec ce cube. Créons notre premier plan
fonctionnel. Et
nous pouvons commencer à écrire des scripts à deux endroits, soit dans le
script de construction, soit dans le graphe d'événements Le script de construction représente tout ce qui
se passe dans l'éditeur. Par exemple, faisons glisser
le cube dans la fenêtre
de construction. Voici maintenant une
référence au cube,
et à partir de là, nous pouvons cliquer et faire glisser pour
le connecter à un nœud. Unreal me montrera une liste de tous les nœuds auxquels je peux
connecter le cube, montrant
essentiellement toutes
les caractéristiques du cube Comme si toutes les
options de transformation s'y trouvaient. Nous pouvons redimensionner la position ou
faire pivoter le cube à partir d'ici. Maintenant, évidemment, nous voulons définir la position ou l'
échelle ou autre. Choisir get revient
à la position actuelle, ce qui est utile
pour d'autres choses. Pour l'instant, choisissons la position
définie. Vous pouvez même le rechercher. Vous verrez le relatif et le monde. La relative est la position à l'intérieur du plan,
qui est nulle La position mondiale est la
position et le niveau lui-même. Choisissons donc un
parent pour le moment, et vous verrez que ce nœud nous
permet de saisir
une nouvelle position. Par exemple, 100 unités
plus haut sur l'axe Z. Et la dernière chose à
faire est de connecter le nœud de construction
au nœud de localisation. Si vous voulez voir les
modifications apportées au niveau, nous devons cliquer sur le
bouton de compilation du plan Ainsi, à presque chaque
modification apportée à votre nœud, cliquez
toujours dessus
pour voir le résultat. Et cela contrebalance la position. Hé, ton premier plan te
disait que c'était facile. Maintenant,
examinons de plus près le nœud. Chaque nœud possède des entrées
à gauche et des sorties
à droite. Et pour activer un nœud, il a toujours besoin d'une connexion d'
exécution entrante, et cela commence par le script
de construction. Les autres options, telles que la cible, nouvel emplacement,
etc., sont des valeurs Parfois, il faut que
quelque chose y soit connecté. D'autres fois, tu ne le fais pas. Par exemple, je peux
déconnecter le cube de la cible
en cliquant sur la valeur avec la touche Alt. La compilation du plan
maintenant va
me générer une erreur dans les
notes car il
essaie d' exécuter la commande pour changer l'emplacement,
mais de quoi ? On ne lui dit pas pour quelle cible il doit changer
de position, ce qui me renvoie une erreur. En bas et sur les résultats du
compilateur, nous pouvons en savoir plus sur la
raison de l'erreur elle-même. C'est donc bien de savoir où et exactement
quelle est l'erreur. Très convivial
à mon avis. Connectons à nouveau le cube et compilons pour résoudre l'erreur. Certaines valeurs de l'entrée peuvent être saisies directement,
comme l'emplacement Il n'est
donc pas nécessaire de saisir une entrée, mais nous le pouvons si nous le
voulons. C'est ce que nous allons faire. Je vais ajouter un nouveau
composant, cette fois une sphère. Et depuis la fenêtre d'affichage, je vais le faire glisser vers
une autre position Revenez au script
de construction maintenant. Ce que je veux faire, c'est amener le cube à la même
position que la sphère. Donc, la première chose que
je dois faire est obtenir la valeur de l'emplacement de la sphère, puis de la saisir dans le nouvel
emplacement du cube. Faites donc glisser la sphère dans
l'éditeur de nœuds et connectez-la à un nœud get
relative location. Ce qui est intéressant maintenant, c'est que
la couleur du nœud ressemble à la couleur de
l'épingle de localisation d'entrée. Cela indique également
que nous nous y sommes connectés. Cliquez sur Compiler
et démarrer. Cela fonctionne. Cela m'amène à
la différence entre le script de construction
et le graphe d'événements. Vous voyez, tout ce que nous créons dans le
script de construction est statique. Toutes les fonctionnalités
dont nous avons besoin avant de lancer le jeu ou de passer à la simulation
peuvent être créées ici. Les modèles en sont un bon exemple. Et j'ai un exemple, un tas d'actifs que j'ai créés. Ce sont également des acteurs de premier plan. Je peux en ajouter un à mon niveau. Et quand je passe en
revue le plan lui-même, vous pouvez voir qu'il comporte également certains acteurs dans la fenêtre
des composants Nous avons le
luminaire lui-même. Lumières et autres mailles
qui composent la lumière. Et quand j'aborderai le script de
construction, vous verrez tout un
tas de nœuds ici. Maintenant, permettez-moi de revenir à
mon niveau et de sélectionner un plan pour
consulter le panneau détaillé. Et toutes ces options
que vous voyez ici sont créées
sur mesure à partir
du script de construction. Je peux changer la
couleur de la lumière, l'intensité, etc. Tout cela est fait
dans le cadre de ces notes. Et je vous encourage à les
parcourir étape par étape. Vous pouvez facilement lire ce qui se passe, et vous le
comprendrez. Comme dans le premier cas, nous changeons
l'intensité de la lumière, qui est définie comme intensité. Nous indiquons quelle cible, puis nous choisissons
l'intensité. Et cela provient des options
que nous avons
dans le panneau de détails. Comme je l'ai déjà dit, nous
ne pouvons créer que
des éléments statiques ici, comme modifier une option. Dès que nous voulons
quelque chose de dynamique, nous devons créer ces
notes dans le graphique des événements. Et vous pouvez voir que j'
ai aussi un tas de notes dedans
parce que l'une des
options que j'ai dans le panneau de détails est
d'activer
le scintillement, et vous pouvez voir
que cela ne fait
rien parce que le scintillement
est quelque chose Cela ne fonctionne que lorsque
nous jouons le niveau. Cliquez donc sur jouer et vous verrez maintenant que le
voyant clignote. Avant de terminer cette leçon, je voudrais vous montrer à quoi ressemble le graphique des
événements. Ouvrons à nouveau le
plan du cube et cette fois, cliquez sur le graphique des événements en haut Et au lieu d'une note de script de
construction que nous avons au début, nous utilisons un ensemble de termes tels que event begin play et event tick. Et j'aimerais
vous montrer de quoi il s'agit. Le déroulement de l'événement est
exécuté une fois que nous avons lancé le jeu, et je vais le connecter
à une note sous forme de texte imprimé. Il s'agit d'une note très simple
qui vous sera très utile pour comprendre les choses et
détecter les problèmes potentiels. Il est également indiqué ici «
développement uniquement ». Ce n'est donc pas vraiment
prévu dans le cadre d'un projet final. Je vais changer le
texte pour démarrer le jeu. Et la seule façon de le voir en action maintenant est de lancer le niveau. Et d'ailleurs, je n'ai pas
compilé cette fois car Unreal le
fait automatiquement lorsque vous lancez le niveau Mais vous pouvez voir maintenant qu'
il a demandé le texte. Cliquez sur Stop et
revenez au plan. Je souhaite connecter le
texte au tic-tac de l'événement et me déconnecter de
l'événement pour commencer à jouer. Regardez ce qui se passe maintenant ? À chaque nouvelle case ou cadre, ce texte est affiché. Cela vous permet donc de mettre à jour
quelque chose à chaque image. Mais il y a d'autres événements tels le chevauchement des acteurs
que nous avons ici. Nous pouvons effectuer une
action chaque fois que nous nous recoupons ou que nous
tombons sur ce plan Par exemple, nous courons avec notre
personnage dans le cube, puis le cube doit
se transformer en sphère. Ça a l'air
amusant à faire. Eh bien, voyons comment nous pouvons
le faire dans la prochaine leçon. Pour le moment, n'oubliez pas
que nous pouvons ajouter des composants que nous
voulons utiliser dans un plan Dans la fenêtre d'affichage,
nous pouvons ensuite voir ces éléments et
modifier leurs propriétés Ensuite, nous avons deux endroits pour créer
une fonctionnalité de
plan, script de
construction pour les éléments
statiques, comme un menu d'
options pour une lumière,
et enfin, le
graphe d'événements pour les fonctionnalités dynamiques Et c'est aussi l'endroit où
nous
travaillerons le plus souvent.
Merci de m'avoir regardée.
3. Événements dans Unreal Engine ine: Lorsque vous concevez
un plan, nous savons qu'
il existe deux méthodes soit statique, qui ajoute
des fonctionnalités à
un plan
qui ne peuvent
être utilisées que dans l'éditeur lui-même, soit une fonctionnalité
dynamique déclenchée par un événement Cela signifie donc
que quelque chose doit se produire pour mettre en action notre
séquence de nœuds. Et cela ne peut évidemment
fonctionner que lorsque nous exécutons le niveau. Ouvrons donc à
nouveau
notre plan de cube interactif et accédons
au graphique des événements Par défaut, nous voyons trois événements
différents ici. Mais pas de problème si, par
exemple, vous supprimez
la coche d'événement. Vous pouvez toujours le
retrouver en cliquant avec le bouton droit de la souris, puis en ajoutant un événement dans lequel vous trouverez tous
les événements disponibles, y compris le code de l'événement. Désormais, un événement spécifique
ne peut se produire qu'à partir d'une seule note. Si je devais ajouter une autre
note ici, vous verrez qu'elle
ne fait que mettre en évidence la note actuelle.
Est-ce un problème ? Eh bien, créons quelque chose
en fonction de l'événement. J'aimerais faire pivoter mon cube pour qu'il
continue de tourner. Et c'est ainsi que vous
voulez aborder les choses. Réfléchissez à la propriété dont nous
aurions besoin pour la rotation. Eh bien, ce sera
une rotation définie. Cherchons donc l'emplacement relatif
défini, et il
suggérera automatiquement le cube, que nous avons déjà
dans le plan Il
cible donc automatiquement le cube. Si ce n'est pas le cas ou si vous avez
supprimé cette cible, vous pouvez toujours faire glisser
votre maillage cubique de la
fenêtre des composants vers la cible. OK, je vais donc connecter le tick d'événement
aux nœuds de rotation. Maintenant, à chaque image, la rotation du
cube est mise à jour. Génial. Mais pour quoi ? Je ne peux
saisir une nouvelle rotation que manuellement, mais cela ne
va pas la faire pivoter. Nous avons donc dû trouver un moyen ramener la valeur de
rotation actuelle à un et de la
réinsérer dans la nouvelle rotation. De cette façon, nous continuons à en ajouter
un à chaque tic-tac, et le shoot pivote. Créons donc une nouvelle note cette fois en choisissant l'option get
relative rotation. Mais attendez, on découvre
qu'il n'y est pas. Eh bien, c'est nul. Existe-t-il une approche différente pour obtenir la
rotation actuelle, peut-être ? Eh bien, si je sélectionne mon cube, je peux voir que la propriété de
rotation fait partie du groupe de transformation. Alors peut-être que nous pouvons le
trouver là-dedans. OK, cliquez avec le bouton droit de la souris
et recherchez Obtenir une transformation relative.
Et oui, elle est là. Le problème est maintenant
que cette note renvoie tout en une seule valeur. Cela concerne la rotation, la position et l'échelle. Dans de tels cas, nous
pouvons simplement cliquer avec
le bouton droit sur la valeur et choisir
Split Struct Pin, qui révèle les valeurs t. Cela est très courant lorsque vous
travaillez avec des plans. Parfois, vous voulez plusieurs
valeurs dans une épingle, d'autres fois vous voulez
quelque chose de spécifique, puis vous pouvez simplement
diviser les valeurs. En fait, je vais
également cliquer avec le bouton droit sur la valeur de rotation et diviser à nouveau car je
n'ai pas besoin des trois axes de
rotation. Je n'ai besoin que de l'axe Z. Et voici comment l'obtenir. Je peux maintenant faire de même sur l'
entrée pour la rotation définie. Maintenant, je peux brancher l'axe
Z dans le Z. Évidemment, cela ne
va rien faire Nous devons en ajouter un
à chaque coche. Déconnectons donc l'
épingle Alt, cliquons et faisons glisser la valeur Z vers un endroit
pour ajouter un nouveau nœud . Nous chercherons à ajouter et nous en trouverons un
sous opérateurs. Nous prenons donc la
valeur actuelle et l'ajoutons une par une. Le résultat est pris
en compte dans la rotation définie. Très bien, allons-y et
exécutons-le. Et regardez ça. Nous avons un cube rotatif.
N'est-ce pas incroyable ? Donc, comme vous pouvez le constater, ce
n'est pas si compliqué. Je n'ai aucune
idée de plus de 90 % de toutes ces notes différentes. Si je veux réaliser quelque chose, j'essaie de penser de manière logique. Quelles sont les étapes nécessaires pour réaliser ce que je
souhaite créer ? Et j'utilise simplement la barre
de recherche pour trouver les notes
qui ont du sens, les
essayer et
voir si elles fonctionnent. S'ils n'essayent pas d'en
chercher un autre. Mon objectif est de vous apprendre à
penser de manière logique
et à créer des plans afin
que vous puissiez créer
tout ce que vous voulez sans avoir à
suivre aveuglément Il est très important que vous compreniez
ce que vous faites. C'est de la pure programmation, mais les plans le permettent visuellement,
ce
qui permet aux débutants de se
lancer plus facilement dans la programmation Très bien, alors quels autres
événements avons-nous ? Si vous pensez à quelque chose,
essayez de le rechercher. Par exemple, je veux appuyer sur la touche, ce qui doit déclencher
quelque chose de cool. Eh bien, recherchez-le dans la barre
de recherche. Eh bien, ça y est. Il vous donne même deux événements
possibles lorsque vous appuyez sur la touche ou lorsque vous la relâchez.
C'est bon, c'est cool. Je veux appuyer sur cette touche
puis activer le cube rotatif. Déconnectez donc la coche d'événement,
puis réglez-la sur la touche. Exécutons ça et appuyons sur la touche. Mais c'est quoi ça ? Il ne
se passe rien. Comment est-ce ? Eh bien, c'est à cause de
ce qu'on appelle la possession. En termes simples, je ne
contrôle pas le cube. Il se trouve quelque part dans le
niveau et vit tout seul. Certains événements, comme une pression sur une
touche, ne peuvent se produire que lorsque je contrôle le cube ou,
en d'autres termes, lorsque je le possède Eh bien, nous allons en apprendre davantage à
ce sujet dans la prochaine leçon.
4. Plans contrôlables : classes de pièges et de personnages: Lorsqu'un plan
existe dans votre niveau, il vit tout seul. Nous ne pouvons pas le contrôler. Nous ne pouvons exécuter
des événements tels que le tic-tac ou au début que lorsque le niveau
se charge ou lorsque nous le rencontrons. Mais cela signifie que nous devons
d'abord posséder un plan que nous pouvons réellement contrôler pour entrer dans le
maillage carré Donc, chaque fois que nous
rencontrons le problème que nous devons contrôler ou
posséder un plan, commençons par le plus simple, et vous avez peut-être déjà
joué avec Dans mon navigateur de contenu, je vais cliquer
sur AD, puis choisir Ajouter une fonctionnalité
ou un pack de contenu. Et dès le départ,
nous pouvons choisir parmi un ensemble de différents modèles de
plans Vous pouvez choisir n'importe lequel, mais pour une
meilleure démonstration, je vais choisir le modèle à la
troisième personne ,
puis dire Ajouter au projet. Vous pouvez ensuite fermer
cette fenêtre et rechercher un nouveau dossier dans
votre navigateur de contenu. Et nous sommes spécifiquement
intéressés par un élément du modèle. Ouvrez le
dossier Blueprints, et
vous y trouverez le personnage à la troisième
personne de BP Et nous pouvons l'
intégrer à la scène. Je vais ouvrir le
plan et l'explorer un peu. Et si vous effectuez un portage, vous pouvez
voir
les différents composants nécessaires pour
créer un personnage jouable, comme le personnage lui-même, mais aussi une caméra qui suit le personnage et crée la
vue que le joueur voit Il y a une perche de caméra s'
assurer que
la caméra suit le personnage lorsqu'il se déplace. Mais alors, comment allons-nous nous déplacer ? en regardant le script
de construction, il est complètement vide, et
on comprend pourquoi maintenant ? Parce que c'est totalement dynamique. Ainsi, lorsque nous ouvrons
le graphique des événements, vous pouvez trouver toutes les
notes qui constituent le mouvement du personnage.
Eh bien, c'est génial. Fermons le plan
et appuyons sur Exécuter. Mais attendez. Je ne contrôle toujours pas
le personnage. Je ne l'ai pas
encore possédé. Qu'est-ce qui se passe ? Eh bien, vous ne pouvez posséder qu'
un seul plan à la fois. Et en
les ayant simplement dans votre niveau, le projet ne sait pas lequel vous
souhaitez réellement contrôler. Et
nous définissons cela à l'
aide d' un plan de mode jeu C'est un autre type de plan. Maintenant, comme les
modèles à la troisième personne étaient
fournis avec l'un d'entre eux, vous l'avez probablement déjà vu. Je vais double-cliquer dessus. Maintenant, nous n'avons pas vraiment tous ces différents onglets ici, comme le graphique des événements, etc., car le
plan d'un mode de jeu est très simple C'est un fichier qui va définir les plans par défaut
pour leur niveau Ainsi, sous les classes par défaut, vous trouverez ce que
l'on appelle la classe de pion par défaut Et c'est le plan
qui va être chargé pour pouvoir
prendre le contrôle Je vais donc fermer cela et rechercher les paramètres de mon monde. Ce sont les paramètres généraux
de l'ensemble de votre niveau, et vous trouverez un réglage du
mode de jeu ici. Vous pouvez le sélectionner dans un menu
déroulant ou simplement faire glisser le plan du mode de jeu
dans ce paramètre Le monde entier dit : regardez ce plan de mode de jeu
lorsque vous lancez le jeu Et le mode de jeu Hé, regardez le plan du
personnage à la troisième personne dont le joueur doit
prendre le contrôle Cela signifie que pour un plan dont nous
prenons le contrôle, nous n'en avons pas besoin
dans le niveau Je vais donc simplement le supprimer et lancer
le jeu, et c'est parti. Le plan du personnage est chargé et apparaît
dans le niveau Et si vous souhaitez qu'il
apparaisse à un endroit précis, vous pouvez ajouter un point de
départ de joueur à votre niveau N'est-ce pas quelque chose de cool ? Nous pouvons donc maintenant
ouvrir à nouveau le cube et créer quelque chose d'amusant où nous tomberons sur le cube. Je vais faire un
clic droit et
chercher quelque chose comme Event Colt, peut-être, mais je ne
trouve pas vraiment quelque chose comme ça Faisons donc défiler la liste des événements vers
le haut et voyons si
quelque chose
comme un événement se produit. Hmm, et il y en a. Et il est
dit que cet événement se déclenchera lorsque cet acteur
croise un autre acteur. C'est exactement ce dont nous avons besoin. Et ce qui est plutôt cool, c'est que nous avons tout
un tas d'options ici. Ainsi, même en fonction endroit où nous l'avons atteint depuis
l'endroit où nous l'
avons atteint, nous pouvons créer différents
types de fonctionnalités. Mais restons
simples pour le moment. Je vais faire glisser mon cube dans le graphe des événements parce que je
veux en faire quelque chose. Et si nous changeons le
maillage d'un cube
en un autre lorsque nous
le rencontrons ? Ce serait génial. Cherchons donc le maillage
et voyons ce que nous avons. Et je vois que nous avons un
nœud appelé set static mesh. Eh bien, ça
va probablement fonctionner. Et je peux choisir un
maillage différent dans cette liste déroulante, quelque chose qui se trouve dans mon projet Je peux en trouver beaucoup qui proviennent de différents packages dans
le moteur lui-même, mais cherchons la sphère et prenons n'importe quoi.
Cela n'a pas vraiment d'importance ici. Et, bien sûr, nous
voulons exécuter cette commande lorsque le plan
est atteint. Alors connecte-le. Très bien, essayons-le. Appuyez sur Play, et
courons vers le cube. Et boum, nous avons une sphère. Génial. Cela fonctionne. Mais revenons au problème
initial que nous avons rencontré. Je vais supprimer l'événement touché, créer un événement clavier pour la touche et le connecter
au nœud de maillage statique. Donc, pour que cela fonctionne, je dois prendre le
contrôle de ce plan OK, ça a l'air facile, non ? Nous revenons au plan du mode de
jeu. Ouvrez-le et dans la classe de pion
par défaut, je vais choisir
mon cube interactif, mais je ne le trouve pas Hmm. Eh bien, souvenez-vous quand
nous avons créé notre plan Je vais le refaire très rapidement. Nous avons choisi un cours d'acteur. Mais comme vous pouvez le constater, il existe également une classe de pion ou une classe de
personnage, qui possède des propriétés similaires Eh bien, cela signifie-t-il que nous devons refaire le
plan complet Eh bien, ne t'inquiète pas. Pour en revenir à mon plan de
cube interactif, vous pouvez trouver un bouton en haut pour accéder aux paramètres
du cours Et ici, vous pouvez trouver
la classe parent, qui est actuellement définie sur acteur, mais nous pouvons la changer en
pion lors de la recherche Ainsi, vous pouvez à tout moment modifier le type de plan
que vous avez créé Maintenant, lorsque nous revenons
au mode de jeu Blueprint et que nous
choisissons notre cube interactif à partir
du pion par défaut, choisissons notre cube interactif lançons le jeu
et regardons Nous sommes un cube. De toute évidence, nous ne
pouvons pas nous en servir parce que nous n'avons aucun
contrôle de joueur pour le cube. Pour cela, nous devons d'abord créer
tous les graphes d'événements, mais nous sommes introduits dans la
scène à partir de ce plan, qui signifie que je le possède Si j'appuie sur ma touche, le maillage se transforme en sphère. Je ne peux pas vraiment le voir parce que
je suis dans la sphère maintenant. Faisons donc quelque chose de
très rapide ici. Ouvrez le plan du cube, accédez à la fenêtre d'affichage,
et je vais
ajouter une caméra dans
les composants Faisons glisser cette
caméra un peu plus vers l'arrière et
relançons le jeu. Nous voyons maintenant le
cube à travers la caméra, mais nous sommes toujours dans
le même plan Donc, si j'appuie sur L, nous pouvons voir le changement en sphère. Pour conclure, il
n'y a qu'un seul plan dont
nous pouvons prendre le contrôle Cependant, avec ce pion
ou ce plan de personnage, nous pouvons interagir avec d'autres
plans normaux ou d'acteurs du niveau, et contrôler directement
quelque chose ou interagir avec
différents types d'événements Ils ne sont pas
classés comme ça, mais nous devons garder cela
à l'esprit. Certains d'entre vous le
pensent peut-être déjà, mais, Jordan, vous voulez pouvoir contrôler plusieurs plans
en même temps, exemple avoir un tas de lumières dans ma scène et appuyer sur
différentes touches pour les allumer ou les éteindre Eh bien, c'est une excellente question, et il existe une solution à cela, mais c'est pour la prochaine leçon.
5. Explorer les niveaux de difficulté: J'ai créé un nouveau
niveau appelé Lumières, et ce que j'ai ici est
un avion avec quelques piliers, et j'ai trois lumières
là-dedans dont j'aime
prendre le contrôle. Nous avons ici un projecteur bleu, une sorte de lampe rectangulaire
verte fluorescente,
et enfin une lumière ponctuelle
aux couleurs chaudes. Ce ne sont pas des plans. J'ai juste mis ces lumières
directement dans mon niveau. Maintenant, les mettre dans un plan n'est pas utile
car nous voulons en prendre contrôle en appuyant sur une touche pour les activer ou les désactiver Maintenant, créer un
plan de classe Pond n'est pas non plus une option, car cela fera apparaître le
plan dans Nous avons donc un très mauvais
contrôle sur l'endroit où ils
seront positionnés. De plus, nous ne pouvons prendre le
contrôle que d'un seul plan. Nous devons donc
trouver une autre solution. Eh bien, voici quelque chose d'
intéressant. Le niveau lui-même a également
un plan. En haut, vous trouverez un
bouton qui listera tous les plans spécifiquement liés
au niveau,
dont le mode de jeu,
que nous avons déjà vu Nous l'avons en quelque sorte connecté
à l'ensemble du niveau. Mais comme vous pouvez le constater,
il existe également une option permettant d'ouvrir le plan de niveau Et ce qui est intéressant à propos de
ce plan,
c'est qu' il fonctionne au plus haut
niveau de la hiérarchie, ce qui signifie que nous le possédons
automatiquement Cependant, il ne s'agit pas d'une classe de blueprint
normale. Elle est toujours présente par
défaut, mais comme vous pouvez le constater, il n'y a pas de fenêtre de
composants, ni de fenêtre d'affichage, ni de fenêtre de
construction C'est parce que les
composants sont essentiellement tout ce qui se trouve dans votre niveau, comme les lumières. Nous ne pouvons pas ajouter de
propriétés à un niveau y a
donc pas d'onglet de construction, uniquement un graphique d'événements indiquant le
moment où le jeu est lancé. Et maintenant, cela devient très facile. Nous pouvons simplement sélectionner les
lumières depuis le niveau et les faire glisser dans
le plan du niveau Et je vais créer
les événements correspondant au chiffre 12 et aux trois touches
de mon clavier. La première consiste à
allumer le feu ponctuel, et nous pouvons le faire de différentes
manières, et le meilleur moyen de le savoir
est simplement de sélectionner les points lumineux de votre niveau et nous pouvons le faire de différentes
manières,
et le meilleur moyen de le savoir
est simplement de sélectionner
les points lumineux de votre niveau
et de consulter le panneau de détails Jouez avec ses
propriétés pour
découvrir le meilleur réglage à
utiliser dans le plan Oui, on peut
utiliser l'intensité. Vous savez, en gros, mettez-le à zéro, puis revenez
à autre chose. Mais ensuite, nous
encodons quelque chose en dur, ce qui est une mauvaise pratique, et vous voulez éviter ce
codage en dur autant que possible. Le codage Hart est l'endroit où
vous allez
mettre des valeurs dans le plan Imaginez que nous réglions le
lumen lorsque la lumière
est allumée à 1 000 dans le plan Mais ensuite je reviens à
mon niveau et je commence à peaufiner et je décide de remettre la luminosité de cette
lumière à 100 Cela signifie que je
dois également revenir à
mon plan de niveau et y régler l'intensité
à 100 également Si vous codez une valeur en dur, ce nombre est fixe. Au lieu de cela, cherchons une propriété
qui permet simplement d'allumer ou d'éteindre la lumière au lieu de modifier
la valeur d'intensité. Et dans le cadre du rendu, nous pouvons trouver une telle option
appelée visible. Comme vous pouvez le voir,
une simple bascule afficher ou de mettre en
hauteur le composant Dans ce cas, faire briller
la lumière ou non. Génial. Revenons
au plan de niveau Et à partir du point
lumineux, faisons glisser
l' épingle pour la relier
à la visibilité du nœud. Et il y a là quelque chose de
très intéressant s'appelle la visibilité
à bascule Et vous avez de la chance aujourd'hui,
car nous n'avons pas toujours d'option d'activation pour
chaque propriété Généralement, il s'agit simplement d'une option définie, puis nous
devons créer manuellement des notes
à ce sujet pour la faire basculer Mais pour l'instant, nous pouvons
utiliser le bouton, alors connectez l'exécution de votre touche
à la visibilité du bouton Et je vais faire de même
pour la lampe rectangulaire. Ici aussi, activez la visibilité. Enfin, les
projecteurs activent également la visibilité et relient
l'arborescence des touches à cette note Revenons en arrière et lançons le jeu. Et vous remarquerez que
nous pouvons maintenant
allumer et éteindre ces lumières avec
la clé appropriée. Rendez même un peu de disco
efficace. Tu le fais vite. Maintenant, j'ai une
petite mission à vous confier avant de
passer à la prochaine leçon. Quand je commence mon niveau, je veux que toutes les lumières soient éteintes, mais je ne veux pas qu'elles s'éteignent dans mon niveau. C'est donc ce que doit faire le plan directeur. Ils doivent démarrer
lorsque je lance le jeu, puis je peux commencer par les activer ou
les désactiver à nouveau
en appuyant sur ma touche. C'est très simple. Réfléchissez aux événements
nécessaires pour régler l'état de la lumière
lorsque je lance le jeu et je vous montrerai la
solution dans la prochaine leçon.
6. Mécanique de jeu simple - Système de plantation de bombes: Hey, bon retour. Mes lumières sont donc actuellement allumées dans
le concepteur de niveaux. Je vais lancer mon jeu, et comme vous pouvez le voir,
ils sont maintenant désactivés. Je peux les réactiver ou les désactiver en appuyant sur mes touches
dédiées Et j'espère également
que cela fonctionnera pour vous. Maintenant, c'est intéressant, il y a dix façons
différentes de le faire. Je l'ai probablement fait
différemment de toi. Jetons donc un coup d'œil
au plan des niveaux. Qu'est-ce qui se passe
ici ? Pour commencer, la pression sur les touches et bouton de
visibilité
restent les mêmes J'utilise les événements Begin Play pour définir la visibilité
de départ. Je suppose que vous l'utilisez également. Maintenant, permettez-moi de découpler le nœud de
séquence pendant un moment. Et ce qui est intéressant, c'est que
nous pouvons également relier le début du jeu à la
visibilité Cela signifie donc que
deux événements
différents peuvent prendre en charge l'
exécution de ces notes touche et les
événements commencent à se jouer. Maintenant, le problème est qu'
un événement ne peut s'
exécuter que sur un autre
nœud, comme vous pouvez le voir. Nous avons donc dû être un peu créatifs. Une chose que nous aurions pu
faire était de sélectionner toutes les
notes de visibilité à bascule,
de les copier puis de les coller ici, et nous pouvons raccorder la
plaque de début à la première note, puis la sortie de celle-ci
à la deuxième, et enfin
celle-ci à la troisième Nous fabriquons une chaîne. Et quand je le lance,
cela fonctionne également. Mes lumières sont éteintes.
Mais comme vous pouvez le constater, il existe de nombreuses notes pour
quelque chose de simple comme celui-ci. Nous le compliquons. Nous utilisons une copie de quelque chose
qui existe déjà Il est
donc recommandé de toujours
essayer de travailler avec le moins de
notes possible. Je vais donc supprimer
tout cela et
connecter mon début de lecture
au nœud de séquence. Cela exécutera chaque commande
une par une dans une séquence. Cela fonctionne exactement de la même manière, mais un peu plus propre. Très bien, fermons le tout. Je vais ouvrir à nouveau
mon niveau de cube, et je vais également ouvrir le plan du mode de
jeu et le panoramique par défaut pour
revenir au personnage à la troisième
personne Parce que cela nous permet
de contourner les obstacles et de nous
aider ainsi à créer la prochaine chose
que nous aimerions créer. J'aimerais placer une
bombe n'importe où dans le monde. Ensuite, éloignez-vous, et quand
j'appuie sur une certaine touche, cette bombe devrait exploser Nous allons adopter une approche
très simple, alors ne vous inquiétez pas trop. Je vais cliquer avec le bouton droit
sur mon navigateur de contenu et choisir d'ajouter un nouveau système
Niagara. Il s'agit d'un système de simulation de particules et de
fluides très puissant et très
impressionnant, mais ne vous inquiétez pas. Nous pouvons choisir parmi un modèle, et il y a quelque chose d'
assez amusant on appelle une rafale de confettis, parfaite pour l'explosion Alors, appuyons sur Créer et
appelons-le confetti burst. Pour ce qui est de la bombe elle-même, nous pouvons utiliser un cube ou quelque chose qui se
trouve déjà dans le moteur. Si vous le souhaitez, vous pouvez importer votre propre modèle de traité, cela
n'a pas vraiment d'importance. Donc, comme toute cette action
se déroule depuis le personnage, nous allons nous ouvrir et travailler le plan du personnage Il suffit de laisser de côté toutes les notes qui concernent le mouvement. Vous pouvez simplement ignorer cela. Nous travaillerons sur le site. Nous allons donc penser de manière
logique étape par étape. Nous allons rencontrer des
problèmes puis les résoudre. Donc, la première chose à faire est
d'appuyer sur une touche pour poser la bombe. Je vais donc créer un événement
clavier pour la lettre B. Lorsque celle-ci est déclenchée, un
maillage représentant la bombe doit apparaître
devant le personnage au sol. Passons à la fenêtre d'affichage
et à un composant cubique. Nous pouvons le redimensionner et le
repositionner légèrement pour qu'il soit placé
devant le personnage Maintenant, en l'exécutant, nous pouvons voir que le cube se trouve devant le personnage qui se
déplace parce que l'ensemble du plan
est contrôlé Mais c'est une bonne chose
car cela signifie que le cube sera toujours
au bon endroit lorsque nous le planterons. Le seul problème est
qu'au moment où
le cube entre en jeu
ou devient visible, il ne doit plus
suivre le personnage Sinon, on se met des
confettis au visage. Eh bien, il existe une option intéressante pour remplacer le fait qu'un objet
doit suivre le caractère, simplement
en activant la physique Nous pouvons simplement vérifier
cette propriété dans le panneau de détails lorsque vous
avez sélectionné votre cube Nous avons donc maintenant un cube qui
tombe et reste en place. On peut même le croiser, ce qui est amusant. Nous avons
activé la physique. Donc, au début, évidemment, nous voulons également désactiver la
visibilité du cube. Il n'est pas
nécessaire de tout programmer. Parfois, vous pouvez simplement
changer certaines options. Mais la poussière suivante, lorsque nous appuyons sur la touche B, le cube devrait devenir visible. Nous l'avons déjà fait,
donc cela devrait être facile. Faites glisser le cube dans
le graphique des événements et connectez-le à la note de visibilité
définie. Nous n'avons pas besoin de basculer pour le
moment et, bien entendu,
de vérifier la nouvelle visibilité pour
qu'elle soit vraie Bien, maintenant nous devons nous
assurer que le cube apparaisse
devant le personnage Et même s'il est
invisible dès le départ, il apparaît toujours juste devant le
personnage au début Mais ensuite, nous nous promenons et nous
appuyons sur le Biki
pour le rendre visible De toute évidence, il apparaît simplement
là où il se trouvait déjà. Donc, d'accord, nous devons définir emplacement du cube,
et nous pouvons le faire. Nous l'avons déjà fait.
Il suffit de prendre le cube et de le connecter à un emplacement mondial
défini. D'ailleurs, si vous avez du mal
à comprendre la différence entre un monde et un lieu
relatif, c'est le
moment idéal pour l'essayer. Vous verrez que ce relatif
ne fonctionnera pas, c'
est-à-dire la position
à l'intérieur du plan Au fur et à mesure que nous courons,
la position du personnage change
dans le monde, mais pas dans le plan La position relative
reste la même. Mais alors, quelle est la nouvelle position
mondiale du cube ? Eh bien, évidemment, où
en est le personnage. Prenons donc le personnage, qui est le maillage squelettique, et déterminons sa position
dans le monde. Connectez-le
au nouvel emplacement. Génial. Lancez le jeu,
je vais me promener un peu, puis poser la
bombe. Oh, c'est quoi ça ? Il apparaît en fait exactement au même endroit
que mon personnage. Tu sais, ça devrait
être devant moi. Et c'est là que les choses se compliquent. Il va falloir
résoudre un problème. Comme nous l'avons déjà vu, nous pouvons diviser les épingles
de l'emplacement. Donc, en théorie, nous pourrions connecter
le X au X, puis connecter le Y à un
nœud d'ajout et ajouter une valeur de, disons, 200 et placer cette valeur dans l'emplacement Y
suivant. Et enfin, le Z.
Non, ça reste le même. Donc, d'accord, en théorie, nous avons un décalage maintenant. Et lançons le
jeu, promenons-nous et appuyons plusieurs
fois sur la touche B. Et nous sommes conscients que ce décalage dépend de l'endroit où le
personnage fait face. Ce n'est donc pas vraiment
une bonne option. Nous ne pouvons pas prendre la
position du maillage. Je vais supprimer tout
cela et cliquer avec le bouton droit sur mes épingles pour
les combiner à nouveau. Nous allons avoir besoin de la position
de quelque chose qui se trouve devant le personnage. Hmm. Et si nous ajoutions simplement
quelque chose
là-dedans, par exemple une sphère
aux composants, et je vais faire glisser cette sphère devant mon personnage. Maintenant, tant que je
n'active pas la physique, cette sphère me suivra et restera exactement
devant le personnage. La seule chose que je dois faire
est de désactiver sa visibilité. Il y a cependant un problème. Même s'il est invisible, je peux toujours me heurter
à d'autres objets Nous devons donc également désactiver
la collision. Vous pouvez rechercher une collision. Il n'y a pas vraiment d'option ici pour activer ou désactiver cela,
mais je vois qu' il existe un
préréglage qui indique le bloc A,
et ce qui est intéressant, c'est qu'il y a une option ici qui
indique qu'il n'y a pas de collision. Hum, je me demande ce que ça va faire. Eh bien, cela a réglé mon problème. Alors maintenant, tout est réuni. Nous allons prendre cette sphère, déterminer sa position dans le monde et la relier au
nouvel emplacement du cube. Et Bm, nous avons fait fonctionner le mécanisme
de pose de bombes. Un problème, cependant, c'
est qu'il y a un bug dans le jeu. Vous savez, les joueurs peuvent répondre à la bombe à l'
infini, et c'est logique Chaque fois que nous
appuyons sur la touche B, elle définit une nouvelle position dans le monde. n'y a qu'une seule bombe, donc ça ne devrait arriver qu'une seule fois. Pour résoudre ce problème, nous
allons encore une fois procéder
étape par étape. Donc, si le joueur appuie sur B, la bombe apparaît, et nous devons nous rappeler que c'est
le joueur qui a fait cette action,
afin que nous ne puissions pas la
refaire une autre fois Tu sais, c'est comme
ça que les humains travaillent. Si votre enfant vole un
cookie mais que vous ne le voyez pas,
il peut en prendre autant
qu'il le souhaite Mais si vous les avez vus
prendre un cookie une fois, vous l'enregistrez dans votre mémoire et vous pouvez dire à vos enfants de
ne pas en prendre un autre. Et c'est ce que font les enfants.
Ils écoutent très bien. Nous devons donc également le stocker dans la mémoire du jeu, et c'est là que
les variables entrent en jeu. Nous le retrouvons ici en bas à gauche dans
l'éditeur de plans Nous en avons déjà quelques-uns.
Ce sont les composants que nous éditons, comme la
sphère et le cube. Mais nous pouvons également en
créer un nouveau. Cliquez sur le bouton Plus et nommez
la variable plantée. Et par défaut, il est indiqué que
la variable est une valeur booléenne. Il s'agit du type de variable. Nous pouvons stocker toutes sortes
de choses dans une mémoire. Un booléen est simplement une déclaration
vraie ou fausse. Mais nous pouvons également le
remplacer par un entier. C'est un chiffre. Nous pouvons
avoir une variable de texte. Il existe également une variable vectorielle. Il s'agit de trois valeurs,
en d'autres termes, XYZ Pour stocker un emplacement, et pour aggraver les choses, il existe environ 7 000 types de variables
supplémentaires Mais ne vous inquiétez pas, tout comme
pour les classes Blueprint, vous n'utiliserez que les
plus courantes sauf si vous
connaissez déjà
Unreal et que
vous travaillez sur
un projet plus important ayant Unreal et que
vous travaillez sur des besoins très spécifiques Maintenant, un lingot, c'est
bien, vrai ou faux. Faites glisser cette variable
dans le graphique, et nous devons choisir
entre get ou set. Est-ce que nous stockons un nouveau souvenir ou regardons-nous ce que
nous avons stocké auparavant ? Nous allons commencer par
définir la variable. Donc, lorsque j'appuie sur la touche B, nous devons d'abord nous assurer de
suivre toutes les actions nécessaires
pour poser la bombe, donc faites glisser le nœud défini vers le bout,
puis connectez-le et
réglez-le sur true. Maintenant, revenons au début. Lorsque j'appuierai sur le Biki avant de poser la bombe, je vais d'abord vérifier si nous l'
avons déjà fait Donc, cette fois, on prend
le get planted. Et nous pouvons vérifier cela en utilisant une simple branche, une note que vous
utiliserez également beaucoup. Si vous aimez la programmation, il s'agit essentiellement d'une déclaration IL. Si une condition est
vraie, faites-le. C'est une déclaration de l'IL. En réalité, c'est un peu différent. C'est ce qu'on appelle une branche. Il examine la condition, et si elle est vraie, il
suit cette épingle d'exécution. Si elle est fausse,
elle suit l'autre. Un excellent moyen de répartir le flux de vos notes en
fonction d'une condition. C'est déjà planté,
si c'est vrai, alors nous ne faisons rien. Ou nous pourrions ajouter un texte imprimé disant que la
bombe est déjà posée. Si c'est faux, cela signifie
que nous n'avons pas encore
posé de bombe. Ensuite, nous pourrions tout faire
pour planter la séquence de notes explosive. Et en lançant le jeu, nous pouvons voir maintenant qu'il fonctionne parfaitement. C'est bon, la bombe est posée. Maintenant, prenons un peu de distance et faisons-le exploser. Nous pouvons attribuer l'explosion à différentes touches ou
utiliser la même. Vous savez, nous
avons déjà une succursale ici, ce qui signifie
que
nous pourrions déclencher
l'explosion elle-même une
fois installée , c'est vrai. Faites donc glisser les confettis en
rafale dans le plan, et tout de suite
dans les fenêtres d'affichage,
nous pouvons voir que les confettis se détachent De plus, lorsque nous jouons au
jeu, il se déclenche. Jetons donc un coup d'œil
au panneau des détails. Y a-t-il quelque chose ici
qui
active automatiquement cette simulation ? Eh bien, oui, il y en a. L'activation automatique est activée. Alors désactivons-le. Dans le graphique des événements, cela signifie
que nous allons
devoir examiner confettis et
les lier
à un nœud d'activation défini Donc, je ne fais que lire
les propriétés d' un composant qui
revient toujours sous forme de note. C'est aussi simple que cela. Si vous ne savez pas
comment faire quelque chose, regardez
simplement les propriétés. Voici toutes les options qui vous et celles que vous pouvez modifier. Maintenant, nous devons également définir
la bonne position. Je vais donc aller un
peu plus vite car nous devons
maintenant comprendre comment cela fonctionne. Emplacement mondial du jeu de confettis, connecté. Prenez ensuite le cube ou la bombe,
déterminez sa position dans le monde et saisissez cette valeur dans le
nouvel emplacement des confettis Enfin, si
votre bombe explose, elle disparaîtra également. Prenez donc le cube et connectez-le à nouveau à un nœud de
visibilité défini, mais laissez la visibilité
décochée. Très bien, essayons Je vais placer ma bombe, enfuir un peu,
puis la faire exploser Ouaip, des confettis. Cela fonctionne. Mais tout comme pour la bombe, nous ne voulons pas que le joueur la
fasse apparaître ou, dans ce cas, qu'elle
explose à nouveau, car cela se
produira en
regardant mes notes actuelles Rien ici ne
m'indique que le joueur ne
doit pas réactiver
les confettis Mais je suis sûr que tu sais
comment faire maintenant. C'est donc encore une fois une petite
tâche pour vous. Et comme avant, je vais vous montrer la solution dans la prochaine
leçon. Merci d'avoir regardé.
7. Cochez la détection avec la traçage de ligne: Nous apprenons qu'
avec le bon sens, vous savez quel type de notes choisir et vous pouvez
relier les unes aux autres. Parfois, vous devez essayer plusieurs notes différentes pour trouver celle qui vous
convient. Et un bon conseil est d'
utiliser quelque chose comme Hatchipt pour lui demander ce que vous voulez faire et quelle note vous
devez choisir pour C'est un outil incroyable pour vous
aider dans ce genre de choses. Mais il y a quelques
notes dans Unreal, qui ne sont peut-être pas si
évidentes à première vue, mais il
est très important de les connaître Et l'une d'entre elles est
un peu plus complexe. Je veux donc explorer
cela avec. Mais examinons d'abord la solution de
la leçon précédente. Ainsi, lorsque nous posons une bombe, elle
active toujours les confettis Et celui-ci était très simple. Nous avons simplement dû créer
une autre variable. J'appelle ça explosé, et je vais vérifier si
Explosed est vrai. Sinon, nous
activerons les confettis. Et si c'est vrai, nous
ne faisons rien. Puis, à la fin de
cette série de notes, nous avons, bien
sûr, explosé pour devenir réalité. C'est exactement la même chose que nous avons
fait pour poser la bombe. Et comme nous disposons de ces
valeurs et d'une variable, nous pourrions poursuivre sur cette base. Vous savez, le joueur
peut, par exemple, récupérer une nouvelle bombe et nous remettons les deux variables
à
zéro, afin que le joueur puisse à nouveau poser une
bombe. C'est le pouvoir de
travailler avec des variables. Je vais rester dans le plan
de mon personnage, cliquer avec
le bouton droit de la souris dans un espace
vide et rechercher Trace by channel Et nous avons ici quelques options
différentes, boîte, capsule, ligne, etc. Ils sont tous identiques, sauf
pour ce qui est de la forme de la trace. Pour l'instant, suivons la ligne. Cela aura plus de
sens dans un moment. La première chose que
je vais faire est de créer un événement en appuyant sur la touche T et de
le connecter à la note de trace de ligne De cette façon, nous pouvons
le déclencher lorsque
j'appuie . À quoi cela sert-il et
pourquoi est-ce si important ? Eh bien, nous pouvons tirer une ligne. Nous devons maintenant définir les positions
de début et de fin de cette ligne. Donc, si vous voulez tirer cette
ligne du personnage,
nous devons commencer par déterminer nous devons commencer par où
se trouve le personnage dans le monde. Et nous l'avons déjà fait à
de nombreuses reprises. Pour ce qui est de la position finale, nous pourrions prendre la
même position que le départ, mais liée à une note d'ajout. Cela nous permet d'ajouter 100
à la position actuelle. Tu sais, puis
connecte-le jusqu'au bout. Maintenant, si nous devions l'exécuter, nous ne verrons rien. C'est parce que la ligne ne
doit pas être visible. Mais au fur et à mesure que nous y travaillons, nous pouvons rendre le dessin
Dbuk visible Et choisissons la durée pour que la ligne reste
visible assez longtemps. OK, je vais le tester. Lorsque j'appuie sur la touche T, vous pouvez voir une ligne apparaître
à partir du personnage. Chaque fois que j'appuie sur la touche. Et ce qui est
intéressant, c'est que nous pouvons
maintenant utiliser cette ligne pour qu'elle touche
quelque chose
, puis
effectuer une
action spécifique de manière dynamique sur ce coup. Et l'une des choses auxquelles
nous
pensons immédiatement est un jeu de tir. Vous savez, vous tirez une balle, qui sera soutenue
par cette ligne invisible, et si elle touche un autre
joueur, elle meurt. Mais cela va bien
au-delà de cela. Je voudrais vous montrer très rapidement un projet sur lequel je travaille. C'est pour une pièce de théâtre. Le moteur Unreal sera utilisé comme projection en
arrière-plan Et j'ai ce jouet, j'ai modifié de telle sorte que lorsque vous tirez avec le pistolet,
il clique sur un bouton. À partir de là, je le laisse
tracer une ligne depuis le haut, et là où il
touche le sol, je fais exploser une étincelle de feu. Si vous faites cela, je peux le rendre dynamique car la
surface du sol n'est pas droite. Je ne sais donc pas où
placer l'étincelle. C'est là qu'intervient le
tracé linéaire. Vous devez donc voir cette note comme un outil incroyable pour créer
toutes sortes d'événements dynamiques, soit pour les jeux, les applications
interactives, les rendus de
films, dont les
simulations se révèlent
différentes à chaque exportation Mais bon, assez de jappements. Créons quelque chose,
quelque chose de simple pour commencer. J'ai envie de marcher jusqu'à un
mur et de peindre à la bombe des graffitis exactement
devant moi sur ce mur. Donc, tout
d'abord, je vais
créer un simple
mur à partir d'un cube. Je vais l'
étirer un peu pour que nous
puissions avoir un mur haut et long. Beaucoup d'espace
pour les graffitis. Ensuite, il nous faut des graffitis. Et je suppose que vous connaissez
déjà FAP, qui est le marché des actifs
de moteurs irréels Si vous recherchez des graffitis et fixez le prix à la gratuité,
vous en trouverez, et vous voulez idéalement
rechercher des autocollants, et Quickle en propose certains Je vais juste ajouter le premier
dans mon projet. C'est très simple. Si vous faites glisser un tel
matériau sur votre niveau, il se projettera
dans le sens de cette flèche sur n'importe quelle surface. OK, revenons donc à notre plan. La première chose
que nous voulons faire est assurer que la
ligne sort correctement. Tout a commencé au bas
du personnage. Nous allons donc le déplacer légèrement vers le
haut au niveau de la poitrine. Je vais donc faire un ajout
sur la position de départ, et placer 150
dans l'axe Z. Il fait en fait 150 centimètres, ce qui est logique
pour un personnage. La position des extrémités l'
emportera également , car elle doit
tirer directement. Maintenant, le problème vient des valeurs X et Y car cela dépend de
l'endroit où le personnage fait face. En le testant très rapidement, vous pouvez voir que sur l'axe X, il part toujours dans la même direction. Nous avons donc dû
trouver un moyen de le faire tourner devant le
personnage à tout moment. Nous pouvons maintenant effectuer un calcul
mathématique complet, mais heureusement, il existe une note
simple à ce sujet appelée le vecteur Get forward. Il produira une
petite valeur X Y Z basée sur la direction dans laquelle
le personnage fait face, afin que nous puissions connecter ce
nœud à un nœud multiplicateur. La valeur
sera toujours inférieure ou égale à un. Si tu fais X plus
Y, tu en auras un. C'est ainsi que nous pouvons
déterminer la direction à
suivre. Mais nous devons multiplier
au lieu d'ajouter cette fois. Et comme le
vecteur direct est un petit nombre, donc une position relative, nous devons l'ajouter à la position
mondiale du maillage. Enfin, nous voulons ajouter 150 sur les deux axes Z
pour l'augmenter un peu Connectez la position
mondiale normale
au début et la position mondiale avec le décalage ajouté entre le vecteur avant et la
fin. Essayons-le. Et ça marche en quelque sorte,
mais ça ne marche pas non plus. D'une manière ou d'une autre, cela provient du site, et il m'a fallu un certain temps pour le
comprendre, en fait. Mais en revenant au plan
et en sélectionnant le maillage, vous découvrirez qu'
il a été pivoté Maintenant, nous ne pouvons pas
simplement le faire revenir à zéro car c'est ainsi que le plan a été configuré N'oubliez pas que nous avons également
des contrôles pour les joueurs, nous ne pouvons
donc pas
trop jouer avec ces actifs. Prenons donc plutôt le composant
de la capsule. Il encapsule tout,
comme le personnage, la caméra, etc. Et c'est en fait le composant qui est contrôlé
par le joueur. Et oui, ça marche. La ligne est cependant un peu
trop haute, et c'est parce qu'au lieu que
le point d' ancrage
se trouve en bas,
comme c'est le cas pour le maillage, dans la
capsule, il se trouve au milieu. Il suffit donc de le réduire à 70 ou quelque chose
comme ça. Je vous montre donc ces choses
que je rencontre également. De cette façon, vous pouvez
voir le processus que je dois suivre pour résoudre un problème. Quoi qu'il en soit, le tracé des
lignes fonctionne. Sur la sortie du nœud de trace de
ligne, nous avons une propriété out hit, et je vais cliquer
dessus avec le bouton droit de la souris et choisir Split the pin. Vous verrez ce qui se
trouve réellement à l'intérieur. Il existe de nombreuses
façons de
vérifier comment il atteint quelque chose
dans le niveau. un jeu de combat, vous pouvez en fait localiser les os dans le maillage squelettique de l'
adversaire. Mais ce qui nous
intéresse, c'est le lieu du hit. Ce sera également la propriété
la plus utilisée car nous voulons faire
apparaître le
sticker graffiti à un endroit précis, à l'endroit où
le tracé de la ligne entre en contact avec le mur Alors oui, ajoutons
le sticker graffiti. Et vous pourriez
penser, comme avant, nous ajoutons un autocollant aux composants, que nous le glissons dans le plan
et que nous définissons sa position, comme nous l'avons fait avec le
cube dans la leçon précédente Cependant, cela signifie que nous n'
avons qu'un seul autocollant avec lequel travailler. En fait, si vous
aviez suivi cette voie, vous auriez remarqué que
vous êtes coincé dessus. Nous devons donc
trouver un moyen d'ajouter
un nouveau sticker au niveau chaque
fois que j'appuie sur ma touche De cette façon, je peux peindre plusieurs graffitis sur le mur Voyons s'il existe
un nœud pour cela. Cliquez avec le bouton droit de la souris et recherchez le spawn. Et je peux voir qu'il
y a plusieurs choses que nous pouvons réellement intégrer dans le
niveau, ce qui est vraiment cool Cela pourrait vous donner une
idée de ce qui est possible. Et à ma grande surprise, il y en
a un qui nous permet de créer un
autocollant à un endroit précis, et c'est exactement
ce dont nous avons besoin Très bien, nous devons donc
régler le matériau de l'autocollant, qui sera
celui que j'ai téléchargé En fait, nous pouvons simplement faire glisser ce matériau dans
la propriété de note. C'est plus facile parfois. Il
va falloir définir une taille. Sinon, nous ne pouvons pas
voir l'autocollant, et vous
devez revenir en arrière
pour déterminer les
valeurs correctes. Je vais t'épargner la douleur. J'ai juste choisi 100 et
chaque attribut d'échelle et réglé la rotation X à 90
et le reste à zéro. En
ce qui concerne l'emplacement, ce sera le point
de référence du tracé linéaire. Enfin, nous
devons simplement nous assurer que le nœud est exécuté
après la note de trace de ligne. Très bien, voyons
ce que ça donne. Cela fonctionne à merveille. Cependant, je remarque
quelques problèmes. L'autocollant est également visible
sur le personnage lui-même. Tu sais, ça ne devrait
être visible que sur le mur. Et lorsque le tracé de la ligne
ne touche pas un objet, il peint également
les graffitis à la bombe. C'est à un endroit étrange
car il n'y a pas de point de frappe, c'est normal car la note s'
exécutera toujours quoi qu'il arrive. Nous devons donc régler
ces deux problèmes. Commençons par l'
autocollant apposé sur le personnage. Je vais sélectionner
mon maillage squelettique et rechercher un autocollant dans
le panneau de détails Et comme je le pensais, nous
avons une option
qui garantit qu'il
ne recevra pas de décalcomanies. Génial. C'était une solution facile. Maintenant, le deuxième problème. Donc, ce n'est que lorsque le tracé de la
ligne atteint que
nous voulons le décaler pour l'étendre Et à partir du nœud de trace de ligne, nous avons une
valeur de retour en bas. Cela redeviendra simplement vrai si la ligne est atteinte ou tombe
s'il n'y a pas de contact. Nous pouvons donc simplement ajouter
un nœud de branche entre les deux et
utiliser cette vérification. Donc, ce n'est que si le hit est vrai que nous faisons apparaître le décalcomanie Sinon, nous ne faisons rien. Ainsi, lorsque je ne me tiens pas assez
près du mur, graffitis
ne sont pas
peints à la bombe, mais seulement lorsque je suis assez près et que la ligne atteint la ligne. Évidemment, lorsque tout
fonctionne comme prévu, vous devez désactiver
le Dbug du tirage afin que les joueurs ne
voient pas réellement ce tracé de ligne s'agit donc que d'un exemple de 1 000 exemples illustrant la façon dont vous pouvez
utiliser la note de suivi. Je
vous recommande vivement de jouer avec cette note et de voir
quelles autres
choses dynamiques vous pouvez créer. Explorez également la sphère et
la trace du cube. Ils sont exactement les mêmes, mais optez plutôt pour
une forme différente ce qui pourrait vous donner plus d' options pour ce que vous voulez faire. Les leçons ont été longues jusqu'
à présent, alors faites une pause
dans ce cours, entraînez-vous un peu avec tout que vous avez
déjà appris, puis nous
poursuivrons plus tard avec une simulation très amusante que nous
créerons ensemble.
Merci d'avoir regardé.
8. Événements de simulation dynamique: Nous avons beaucoup travaillé sur le plan
du
personnage à la troisième personne J'ai donc pensé à faire quelque chose de
différent pour cette leçon. J'ai donc créé un niveau simple avec des murs et j'y ai ajouté
des épingles. Maintenant, nous avons
trois balles au-dessus. Ce ne sont que des sphères pour lesquelles
j'ai activé la gravité,
vous savez, pour la physique.
Nous l'avons déjà vu. Et ce qui
est intéressant qu'à chaque fois que
je lance le jeu, nous obtenons
un résultat différent. Tu sais, ces balles
ne rebondiront jamais de la même façon. Ils
finiront toujours ailleurs. C'est ce que l'on appelle
une simulation, et vous pouvez avoir de nombreuses
simulations dans un jeu, mais aussi lorsque vous effectuez des rendus de
films ou tout autre élément
utilisant un moteur irréel Cela signifie que toute
action que nous voulons créer doit être dynamique. Il doit réagir à
la simulation, et c'est là encore qu'interviennent les
plans J'ai donc l'idée de
changer la couleur de ces épingles si l'une des
balles les heurte, et si elles reçoivent plusieurs bosses, leur couleur continuera Par exemple, une bosse les
rendra verts, un second jaune
et un troisième rouge La première chose
à faire est donc de retirer toutes
les boîtes, car nous allons les remplacer par un plan Créons donc une classe d'acteur
Blueprint, que j'appellerai BP pin Et à l'intérieur des composants, je vais ajouter le cylindre, et je veux le redimensionner un peu pour
que la goupille soit plus longue Et vous pouvez déjà
faire glisser le plan dans votre scène pour
mieux comprendre quelle mesure vous
devez le redimensionner Il est toujours préférable de redimensionner le maillage lui-même
plutôt que le plan lui-même. Je vais le faire pivoter
et le déplacer en place. Et une fois que j'ai terminé, dupliquons ce plan fois
en maintenant la touche Alt
enfoncée, puis en le faisant
glisser vers une autre position Bien, nous pouvons maintenant accéder
au plan Pin et commencer à
connecter certaines notes Nous voulons donc trouver un moyen de
déclencher un événement chaque fois que
le cylindre est touché. La première chose que nous pouvons faire
est donc de rechercher un tel événement. Et en cas de collision,
il y en a une qui
s'appelle Event Hit. Nous l'avons
déjà vu. Et un excellent moyen de le tester
et de voir s'il fonctionne est de connecter à un
texte imprimé ou à une note de chaîne. Lancez le jeu. Et
malheureusement, cela ne fonctionne pas. Maintenant, je vais t'
épargner la peine. Mais généralement, lorsqu'
un événement souhaité n'
est pas déclenché, il peut s'agir d'un paramètre
dans les propriétés du maillage. Sélectionnez donc le cylindre et
accédez à l'écran de détail. Sous collision, il y a un paramètre appelé Simulation
Generate Hit events, qui est désactivé par défaut. Il suffit donc d'activer. Certaines de ces options sont
désactivées par défaut
pour des raisons de performance. Si vous n'utilisez pas
le clic sur l'événement, il ne doit pas non plus être
enregistré,
car même si vous n'utilisez pas
certaines de ces notes d'événement , ces événements
reçoivent un ping à chaque fois. Et lors de la construction
d'un vaste monde, cela peut entraîner des problèmes de
performance. Vérifiez donc toujours les détails du composant s'il y a
quelque chose qui
doit être activé. Avant de passer à autre chose, il y a
une chose importante à savoir. Vous savez, auparavant,
nous devions définir le maillage comme cible dans une note. Cette fois, nous n'
avons pas à le faire. Cela signifie que l'événement atteint est déclenché chaque fois que
le plan est atteint Si je devais avoir plusieurs
maillages ici et
que je voulais déclencher spécifiquement
le hit pour un maillage spécifique,
vous pouvez sélectionner ce maillage , puis si vous cliquez avec
le bouton droit ici, vous pouvez voir que nous pouvons ajouter un événement spécifique pour ce maillage Et lors d'une collision, on peut trouver le composant
touché par cylindre. Il s'agit donc exactement du même événement. L'un concerne le maillage spécifique. L'autre concerne tout ce qui se
trouve dans le plan. OK, ça fonctionne maintenant. Le texte à l'écran indiquera
bonjour chaque fois qu'une épingle est frappée. Nous voulons donc changer
la couleur de l'épingle. Pour
ce faire, nous devons
apporter des modifications dynamiques
au matériau. Par conséquent, je vais créer un
nouveau matériau et l'appeler pin. La création de matériaux
est également basée sur les nœuds. Cela fonctionne de manière très similaire à
celle des plans, et nous pouvons faire toutes
sortes de choses et intégrer cela aux différentes propriétés des
matériaux ici Nous pouvons également ajouter
des textures ici. Si vous voulez que l'épingle ressemble à
un poteau en bois ou autre, je vais rester simple
pour le moment et simplement changer la couleur de base en blanc sur
la propriété du matériau lui-même. Ensuite, je vais revenir
au plan,
sélectionner le cylindre et
remplacer son matériau par une épingle, celle que nous venons de créer Très bien, je vais
prendre le cylindre
et le faire glisser dans le plan À partir de là, voyons si
nous pouvons trouver un nœud pour modifier le
paramètre de couleur de base de son matériau. Recherchez du matériel et
parcourez la liste, j'ai besoin d'une note fixe, et voici quelque chose
qui pourrait fonctionner définir la valeur du paramètre de couleur sur le
matériau. Allons prendre ça. Très bien, il me demande donc de
définir le nom du paramètre. Le paramètre s'appelle couleur
de base, n'est-ce pas ? Alors tapons-le ici. Ensuite, nous pouvons choisir une nouvelle valeur de
paramètre ou une nouvelle couleur. Tu sais, rendons-le vert. Enfin, connectez
l'événement à
cette note afin qu'elle puisse
être déclenchée dès que vous la touchez. Très bien, essayons-le. Hmm. Cela n'a pas marché. Le
nom du paramètre n'est peut-être pas correct. Peut-être devons-nous faire
autre chose avec cette propriété. Revenons au matériau
et examinons la propriété de la
couleur de base. Faisons un clic droit dessus et
voyons quelles options s'offrent à nous. Oh, intéressant. Nous pouvons le
promouvoir en tant que paramètre. Hmm. C'est logique. Ces propriétés du matériau
ne sont que cela. Propriétés, et nous ne pouvons modifier
que ce qui se passe devant les propriétés dans lesquelles nous définissons une couleur ou une texture. Nous appelons ces paramètres, et ils entrent dans la propriété. Cela signifie que nous pouvons également
changer le nom
du paramètre en pin
coolor, par exemple Cela rend le travail avec lequel il est beaucoup
plus agréable de travailler. Cela nous permet également de mieux comprendre qu'avec des matériaux
très complexes, nous pouvons modifier
un paramètre spécifique, ce qui peut modifier la saleté et l'eau ou le reflet dans le verre. D'accord, je vais
changer ça blanc, la couleur par défaut Et dans mon plan, nom de
ce paramètre devient
désormais la couleur de l'épingle Vous avez 100 notes ici, il est également beaucoup
plus logique de voir la couleur des épingles
plutôt que la couleur de base. Très bien, lancez la simulation, et génial. Cela fonctionne. Maintenant, l'idée est de
changer trois fois de couleur. Et il existe différentes
manières de le faire. L'une des méthodes consiste à créer
une valeur numérique et y
ajouter une valeur à chaque fois que l'
événement est déclenché Ensuite, nous vérifions quel est
ce nombre, et en fonction de cela, nous changeons
la couleur en conséquence. Mais c'est beaucoup de code
pour quelque chose que nous pouvons simplifier avec une note en D. Vous pouvez en fait trouver tout
un tas de nœuds de contrôle de flux
lorsque vous les recherchez. Nous en avons déjà abordé quelques-uns. Le nœud dN, où N
représente un nombre que vous avez défini, exécute une action autant
de fois que vous le souhaitez. Nous pouvons donc le définir
dans la valeur d'entrée. Le compteur sur la sortie nous
donnera le numéro
auquel se trouve le nœud. Donc, si c'est la deuxième
fois qu'il est déclenché, le nombre de sortie est deux. Et au lieu de faire tout
un tas de branches et de vérifier
si c'est le numéro un, deux ou trois, nous pouvons
utiliser un nœud de commutation. Et plus précisément,
l'interrupteur It où il représente un entier
ou une valeur numérique, puis nous pouvons ajouter autant de broches de
sortie que nous le souhaitons Je vais donc en ajouter
un pour chaque numéro. Maintenant, le nœud d'échéance
commence par un, nous allons
donc laisser
le premier zéro vide. Nous pourrions dupliquer
le nœud de matériau trois fois et le
faire changer de couleur. Mais encore une fois, ce n'est pas une bonne
programmation. Trop de notes. Vous voulez que les
choses restent simples, efficaces et faciles à
adapter à l'avenir. Je vais cliquer avec
le bouton droit sur la couleur du paramètre et choisir de
le convertir en variable. Cela l'ajoutera à
la liste des variables. Cette fois, il ne s'agit pas d'un lingot
comme nous l'avons fait auparavant, mais d'une variable de type de
couleur linéaire Fonctionne exactement de la même manière. Les variables peuvent être
obtenues comme nous le faisons ici. Nous obtenons la valeur de la couleur, mais nous pouvons également définir la couleur. Il suffit donc de faire glisser
la variable dans le plan et de choisir Set, et nous le ferons trois fois. Au fait, vous pouvez également simplement
copier-coller le nœud défini. Maintenant, connectez les
sorties un, deux et trois, et enfin changez
la couleur de chacune d'elles. Nous pouvons ensuite transférer les
sorties X de chaque nœud dans le
nœud des paramètres de couleur afin qu'il soit
réellement déclenché
et change de couleur. Essayons-le.
Chez Yippie. Cela fonctionne. Nous commençons donc à comprendre que même
avec quelques notes, nous pouvons faire beaucoup de choses, mais que cela
se transforme rapidement en désordre. Voici, d'ailleurs, exactement
la même chose sans utiliser la note
do and switch, juste un tas de branches, de chèques et de compteurs manuels Il fait exactement la même chose. Mais dans un projet plus complexe, si vous planifiez toutes
vos fonctionnalités de cette manière,
cela devient un véritable gâchis Explorez donc un peu plus les
notes de contrôle de flux pour vous
familiariser avec elles. C'est vraiment
impressionnant au début, mais une fois que vous commencez à
comprendre comment ils fonctionnent, ils sont tellement meilleurs. Voilà le truc. J'
aime beaucoup ce que je viens de créer et je souhaite utiliser
davantage ce
changement de couleur dans mon projet. Et quand on
pense à la mise à l'échelle, même cette
structure de notes courtes est trop importante. Et c'est là que
les fonctions entrent en jeu. Mais c'est pour la prochaine leçon.
9. Fonctions d'arborescence - Code réutilisable Code: Je crois que nous venons de créer
une fonctionnalité étonnante avec ces spins qui changent de couleur lorsqu'un autre objet
entre en collision avec Je veux m'en servir davantage, mais devoir copier et coller
ces notes devient un gâchis. Et je souhaite également que ces notes soient plus faciles
à ajuster, en particulier en ce qui concerne des propriétés telles que la couleur. Eh bien, c'est là que
les fonctions entrent en jeu, et vous pouvez les considérer
comme une note personnalisée. Sur le côté gauche, vous trouverez une fonction
sap à partir de laquelle nous pouvons cliquer sur le bouton Plus
pour créer une nouvelle fonction, et nous l'appellerons changement de couleur
ou quelque chose comme ça. A
été automatiquement ouvert. Il possède son propre espace de travail, et vous pouvez voir ici que nous pouvons revenir au graphique des événements. Et si vous fermez votre fonction, vous pouvez toujours la
rouvrir en double-cliquant simplement sur votre fonction dans le panneau du
plan Je vais donc revenir à mon graphe d'événements et
tout mettre dans cette fonction
sauf le nœud d'événements, ce qui n'est pas possible. Vous devez le connecter à
une exécution entrante qu' un événement n'a pas, car c'est
là que tout commence. Je vais contrôler X, qui est coupé,
puis dans la fonction, je vais coller le nœud. Nous allons connecter le début de
la fonction au nœud D N. Revenez ensuite au graphique des événements, et comme pour une variable, je peux faire glisser cette fonction
dans mon plan Et comme vous pouvez le constater, il ne s'agit
que d'un simple nœud. Vous pouvez en quelque sorte
le voir comme un conteneur pour tous les autres nœuds. En connectant les touches des composants à cette fonction,
tout fonctionnera exactement de la même manière. Et ce qui est cool, c'est que je peux réutiliser cette fonction
autant de fois que je le souhaite. Par exemple, je vais
aller dans ma fenêtre d'affichage et dupliquer
ce cylindre pour en avoir deux. Et pour nous faciliter la tâche, renommons ces cylindres
en épingle 1 et goupille 2 Revenons ensuite au graphique des
événements et créons un impact sur le composant pour la
deuxième épingle. Une fois cette option sélectionnée, cliquez avec le bouton droit de la souris sur
l'événement de collision lorsque le composant est touché. Et nous pouvons
maintenant connecter
la même fonction à cet événement également. Et ça marche en quelque sorte,
mais pas vraiment. Vous savez, mon deuxième
bac ne change pas de couleur. Pourquoi est-ce le cas ? Regardons à nouveau les
nœuds de la fonction. Et voici quelque chose
que je remarque. Lorsque nous changeons de couleur, nous ciblons l'épingle 1. Donc, pour l'autre épingle, nous
devons également cibler celle-ci. Nous avons donc besoin d'un paramètre dans la fonction
que nous pouvons modifier, et c'est facile à faire. Sélectionnez la fonction et
accédez au panneau de détails. Ici, vous pouvez voir en
bas que nous pouvons ajouter un paramètre d'entrée et
de sortie. Créons une entrée, et ce sont les mêmes
que les variables. Cela signifie que nous pouvons
lui donner un nom tel que target, puis choisir
le type de variable. Et si vous ne connaissez pas
ce type de variable, vous pouvez toujours survoler le
paramètre dans ce cas, les nœuds de couleur,
car cela vous
indiquera de quel type
de paramètre il s'agit, et c'est ce que
nous voulons rendre dynamique Il s'agit d'une référence à un
objet de composant maillé. C'est donc exactement ce que nous allons
définir comme type de variable. Maintenant, avant de faire quoi que ce soit d'autre, revenons
au graphique des événements. Vérifiez que la fonction possède une épingle
d'entrée désormais appelée cible, qui est celle que
nous venons de créer. Nous pouvons donc lier le maillage de l'
épingle 1 à la première fonction cible et épingle 2 à la deuxième fonction. Ainsi, même si nous
utilisons la même fonction, nous l'avons rendue dynamique
en nous
permettant d'utiliser la fonction
sur différentes cibles. Et c'est ce qui est
génial avec les fonctions. Nous choisissons le nombre d'options ou de propriétés que nous
voulons exposer en entrée ou en sortie, et c'est exactement la
même chose que pour toute autre note. Vous pouvez en fait le voir comme
une note personnalisée réutilisable. Mais nous n'avons pas encore terminé. Revenons à la fonction. Au départ, la cible
a donc été définie dans
le graphe des événements. Il ne nous reste plus qu'à nous
assurer qu'il la cible réelle
du nœud de couleur. Supprimez donc la première épingle et connectez notre entrée cible à la
cible des nœuds de couleur. Très bien, allons-y. Cela
a définitivement résolu ce problème. Les deux épingles
changent désormais de couleur individuellement, mais elles ne
changent de couleur qu'une seule fois. Il devrait virer au jaune puis au rouge. Qu'est-ce
qui se passe ici ? Eh bien, faisons un peu de débogage. Il s'agit d'une technique qui permet
de déterminer où se situe le problème. Je veux voir si mon
nœud final
compte vraiment , car c'est finalement ce que définit
la couleur. J'ai donc besoin de la sortie de la valeur du compteur
hors de la fonction. Pour cela, nous allons créer
une variable de sortie. Et nous l'appellerons compteur, et le type de
variable sera un entier. Je peux le constater instantanément en regardant la couleur
de la contre-épingle. Après, parfois, vous
connaîtrez également ces choses. Maintenant, cela
nous donne un bon de retour. Nous devons connecter la dernière broche
exacte au retour et envoyer le compteur dans la variable counter de la
fonction pour le transmettre. Lorsque nous revenons
au graphique des événements, vous remarquerez que la
fonction possède une broche de sortie, que nous pouvons utiliser en combinaison avec une note d'impression de
texte. Mais au lieu du
texte disant bonjour, je voulais montrer la
valeur du compteur. Automatiquement, il ajoutera une variable
de conversion du numérique au texte Exécutons la simulation. Et comme je le pensais,
oui, il n'en produit qu'un Cela ne compte plus. Nous avons donc localisé le problème
en effectuant un peu de débogage. J'utilise le texte imprimé en
permanence pour découvrir ce qui se passe dans
mon plan et
localiser les problèmes que je rencontre. Quel est donc le problème ? Si vous deviez partager vos
résultats avec She GPT, cela vous indiquera qu'une
fonction sera toujours réinitialisée à chaque fois
qu'elle est déclenchée Ainsi, les contrôles de flux lorsqu' il doit se souvenir de
quelque chose comme le montant des cotisations qu'il a versées
seront rétablis à un, ce qui est logique. Donc, même si cette note de fin était géniale pour garder mes
notes mieux organisées, quelle que soit la fonction, nous ne pouvons pas
l'utiliser. Et c'est bon. Nous
utilisons déjà une fonction qui consiste en une seule note réutilisable. Dans le cadre de cette fonction, ce n'est pas un problème d'avoir plus de nœuds et de
compliquer un peu les choses. Supprimez donc ces nœuds et créons manuellement
cette même fonctionnalité. Créez une nouvelle variable appelée counter et assurez-vous qu'elle
provient d'un type entier. Faites-le ensuite glisser vers le
plan et choisissez Set. Connectez les broches exactes, et au lieu de connecter une variable get
du compteur à la
sélection du commutateur, nous pouvons simplement utiliser la
sortie du nœud défini. C'est exactement pareil. Comme ces nœuds sont
si proches les uns des autres, nous pouvons le
faire sans créer de dégâts. Maintenant, il suffit d'en ajouter un à
chaque fois qu'il est déclenché. Faites donc une extraction à partir de la valeur du compteur et
faites-la passer par un nœud d'ajout. Nous allons en ajouter un, puis le
connecter au nœud défini. Nous prenons donc le numéro de compteur
actuel, en y ajoutons un, ce qui fait deux, et nous l'
enregistrerons dans la variable
avec le nœud défini. prochaine exécution, nous obtenons
à nouveau la valeur
du compteur , qui est maintenant de deux. Nous en ajouterons un, ce qui en
fait trois et ainsi de suite. Nous avons donc essentiellement recréé le
do note. Allons essayer, c'est
génial. Cela fonctionne parfaitement. Maintenant, j'aimerais ajouter une autre extension
à la fonction, mais ce
sera une tâche pour vous. Je vous donnerai à nouveau la solution
dans la prochaine leçon. Je veux donc que les deux épingles
changent de couleur différemment. L'épingle 1 passe du vert
au jaune puis au rouge, mais l'épingle 2 doit passer au bleu, violet et à l'orange
ou autre chose. Je vous laisse le soin
de choisir cette couleur créative. Mais assurez-vous qu'il utilise
la même fonction. Bonne chance, et je vous
verrai dans la prochaine leçon.
10. Les bonnes pratiques d'organisation de plans: Jetons un coup d'
œil à la solution. Ce que nous avons dû faire était de créer
trois autres paramètres d'entrée, des
variables de
type couleur linéaire. J'ai nommé ces couleurs
un, deux et trois. Et au lieu de définir ces couleurs dans leur variable
respective, nous allons connecter ces entrées. Pour en revenir
au graphe des événements, nous pouvons maintenant définir les couleurs pour chaque instance
de la fonction. Le premier
sera donc le vert, le
jaune et le rouge standard , et
pour la deuxième épingle, ce sera le bleu, le
violet et l'orange. Et lorsque nous exécutons la
simulation, elle fonctionne. C'est ainsi que
fonctionnent les fonctions et que vous pouvez toujours avoir des
paramètres dynamiques spécifiques. Et cette leçon
ne créera pas grand-chose, mais c'est peut-être une bonne idée de
donner
un peu de repos à votre cerveau après
toutes ces nouvelles informations. Nous allons donc plutôt
nettoyer un peu notre plan. Maintenant, si nous abordons notre fonction, nous commençons à voir un énorme gâchis. Ce n'est pas du tout agréable
de travailler dans ce domaine. Voici donc certaines choses
que nous pouvons faire pour commencer vous pouvez double-cliquer
sur une ligne deux à un point, puis faire glisser
ce point nous
donner un meilleur aperçu pour nous
donner un meilleur aperçu
de la destination des connexions Et ce qui est bien avec une
fonction, c'est que nous pouvons également choisir où doivent être les variables
d'entrée. À partir du panneau de détails,
je vais donc faire glisser la
cible vers le bas, ce qui me permettra de mieux
positionner le nœud de couleur et la ligne qui y est connectée en y
ajoutant également un point. Nous pouvons évidemment
sélectionner plusieurs nœuds et points pour
les déplacer ensemble. Vous pouvez également sélectionner
un point ou un nœud et utiliser les touches fléchées
pour les déplacer. C'est ainsi que vous voulez
essayer de vous assurer qu' aucune ligne ne se
chevauche ou ne passe
derrière d'autres notes Si jamais vous devez
revenir pour apporter des ajustements, vous aurez une bien meilleure
vue d'ensemble de ce que fait la logique de
votre plan
au lieu d'avoir à déterminer à quoi
tout est lié J'aime aussi voir autant de lignes
droites que possible, et il existe un
moyen simple de le faire. suffit de sélectionner les
notes que vous
souhaitez aligner et d'appuyer sur
la touche courte. Q. Essayez d'en prendre l'habitude lorsque vous concevez la structure de
votre nœud. Une autre chose qui est
également un peu compliquée est lorsque plusieurs
lignes de connexion entrent dans le même nœud, comme avec la couleur variable
définie ici Si vous deviez marquer un
point sur l'un d'entre eux, vous pouvez relier l'
autre à ce point. Ainsi, au lieu de consacrer trois
lignes à cette note, nous n'en avons plus qu'une. Voici donc quelques-unes des
techniques que nous pouvons appliquer pour nettoyer la structure du
plan directeur, et c'est à chacun de décider jusqu'où il
veut aller Lorsque je travaille sur un projet
réel,
mon trouble obsessionnel-compulsif se manifeste toujours et je veux que tout soit
parfaitement aligné Bien, une dernière chose que
nous pouvons faire est d'ajouter des commentaires, et pour les plans plus grands, ce sera très important Imaginez que vous ayez des centaines, voire des milliers de notes dans
un seul plan, et que vous souhaitiez apporter une
modification à un système spécifique Où est-ce que je l'ai refait ? Eh bien, vous sélectionnez un tas
de notes et appuyez sur la touche Ci pour ajouter une zone de
commentaire autour de celles-ci. Et ici, par exemple, ce
serait le hit-counter. Vous pouvez redimensionner cette zone de commentaires, et si vous la déplacez, tout ce qui se
trouve à l'intérieur sera également déplacé Lorsqu'il est sélectionné,
certaines options s'affichent également dans un panneau de détails. À partir de là, vous pouvez
réellement choisir si vous voulez que les notes qu'il contient bougent avec ou non. Vous pouvez modifier la taille
du texte commun, et nous pouvons même
changer la couleur. Et j'utilise beaucoup cet
étiquetage couleur. Si vous créez un jeu vidéo, vous pouvez avoir toute
la logique des capacités, avoir des commentaires verts, créer toute la logique du combat, commentaires
rouges, des mouvements, des préparations
bleues, etc. Peut voir instantanément le type de logique de ce groupe
de nœuds. Je
vous recommande vivement d'en faire usage. Enfin, nous pouvons ajouter des commentaires
à des notes individuelles ou à des lignes de
connexion. Si vous sélectionnez une note, vous verrez cette petite
bascule apparaître en haut En cliquant dessus, vous pouvez
ajouter un commentaire à cette note. Par exemple, modifiez la couleur de base du
matériau. Pour les notes non conventionnelles, avoir ce commentaire personnalisé peut
vraiment vous aider Et vous pouvez toujours le masquer en activant la zone de commentaire
ou en l'affichant à Il se souvient toujours de
ce que vous avez saisi ici. Donc, si vous ne voulez pas le
gâchis de tous ces commentaires, mais que vous voulez
y trouver des informations pour
référence future, c'est possible. J'aime aussi beaucoup l'utiliser sur points d'
ancrage et les lignes de
connexion, en particulier lorsqu'ils parcourent une longue distance ou que je me retrouve
avec autant de lignes différentes. Cela m'aide à
savoir à quoi ils sont connectés et dans quel
but. Voici donc quelques éléments
de base pour garder votre plan propre
et organisé Alignez les nœuds à l'aide du raccourci, créez des points d'ancrage pour mieux
guider vos
lignes de connexion, et enfin ajoutez des cases
communes autour de
groupes de notes
ou d'un seul nœud. C'est ainsi que nous sommes arrivés à
la fin de ce cours. me reste maintenant une dernière leçon de
conclusion avec un excellent exercice pour mettre pratique tout
ce que vous avez appris.
11. Projets finaux et conclusion: Tout d'abord, félicitations
pour avoir terminé ce cours. Vous êtes maintenant officiellement
prêt à commencer à créer plans dans le moteur
Unreal Et même si je n'en ai
qu'une idée superficielle, vous avez
maintenant de solides connaissances
fondamentales sur le fonctionnement des plans À partir de là, vous pouvez
expérimenter, explorer et apprendre de
nouvelles techniques. sera désormais beaucoup plus facile de
suivre les didacticiels YouTube , car vous comprendrez mieux
pourquoi des notes spécifiques sont utilisées et comment
elles sont connectées. La façon dont j'ai
appris à comprendre programmation et les plans
était
de penser à quelque chose que je
voulais créer, puis d'essayer
diverses notes et de débugger
jusqu'à ce que cela fonctionne Et en utilisant HeChipt, cela
m'aide parfois à faire le bon choix. Non, si
c'est pour apprendre, essayez d'éviter les
didacticiels qui se
contentent de relier des notes sans
expliquer leur utilité. On n'
en apprend pas vraiment grand-chose. Voici donc une dernière tâche, un exercice pour entraîner tout ce
que vous avez appris. Et j'ai deux tâches à accomplir. Vous pouvez choisir celui qui correspond à ce pour quoi vous utilisez UnrelEngine, ou vous pouvez faire Le premier est destiné au développement de
jeux, et l'autre
au rendu de films. Donc, pour le plan de
développement du jeu, j'aimerais vous voir créer un jeu de plateforme
comme dans Squid Game, où votre personnage
doit atteindre l'autre côté en
sautant sur ces tuiles Maintenant, une de chaque rangée de
tuiles va tomber. C'est donc un jeu purement basé sur la chance à sauter trois fois de
suite sur la bonne case, et
pour compliquer la tâche du joueur, chaque fois que nous lançons le jeu, les tuiles qui
tomberont sont aléatoires Chaque nouvelle instance
du jeu sera
donc différente. N'oubliez pas qu'une
des tuiles d'une rangée
doit rester en place et que l'
autre doit tomber. Lorsque le joueur tombe,
l'écran passe à cette couleur rouge désaturée. Mais quand nous arriverons à la
fin, les confettis éclateront. Voici, encore une fois, un aperçu
du devoir et essayez de le créer avec le
moins de notes possible. Le fichier de projet peut être
téléchargé si vous êtes bloqué. Mais n'oubliez pas qu'il existe
plusieurs façons de le faire, et qu'il n'y a pas vraiment
de bonne ou de mauvaise méthode. Donc, si vous avez réussi et
que vous le comparez au mien, prenez-le avec un grain de sel. Bonne chance La deuxième mission
concerne le rendu d'un film. J'ai dû rester très
simple car je ne peux pas partager un projet
contenant un tas d'actifs J'ai
donc créé une forêt
à partir de formes simples. J'ai également créé une séquence de niveaux
avec un mouvement de caméra. Lorsque nous lançons la simulation
à intervalles aléatoires, ces troncs d'arbres
s'illuminent et tombent lentement Ceci est entièrement dynamique
créé à l'aide d'un plan. Donc chaque fois que je lancerai la simulation,
ce sera différent. Cela prendrait des jours pour être réellement animé
dans le séquenceur, mais à l'aide
d'un plan, j'ai pu le créer en seulement
5 Ne vous excitez pas trop pour l'instant. créer est beaucoup plus difficile que
le jeu de plateforme. Vous allez
devoir utiliser certaines notes que nous
n'avons pas vues dans ce cours. Essayez donc de penser de manière logique. Parcourez la liste des notes pour voir si vous pouvez trouver ce que
vous recherchez. Encore une fois, un aperçu
de ce qu'il faut :
un arbre simple composé
d'un cylindre et d'un cône. Et, bien sûr, vous
pouvez également utiliser un modèle d'arbre réel
si vous le souhaitez, et à un moment quelconque, l'arbre ou une partie de l'
arbre a besoin de s'allumer. Cela se fait dans le matériau, puis lentement l'
arbre doit tomber. C'est un véritable défi, donc
ce n'est pas grave si vous utilisez le
HiPit pour cela ou si vous jetez un coup d'œil
au fichier de projet Il s'agit sans aucun doute
d'une tâche de niveau supérieur. Dans les deux fichiers de projet, j'ai ajouté des commentaires pour expliquer les notes que j'utilise
et ce qu'elles font. Toutes les réponses s'y trouvent donc. Mais essayez d'abord de
le créer sans jeter coup d'œil au projet Je tiens à vous remercier
beaucoup d'avoir regardé et j'espère vraiment que vous avez
apprécié ce cours. Je vous souhaite bonne chance dans
votre aventure avec Unreal Engine et bonne chance dans vos
missions. Restez créatifs.