⚠ Ce post n'est qu'une prise de note, et sera rédigé correctement à la fin du projet ⚠
Unreal est un puissant moteur de jeux, mais il est utilisé dans beaucoup d'autre domaine que le jeux vidéo. Le moteur utilise le langage de programmation C++ qui peut être compliqué du a sa syntaxe. C'est pour cela que Unreal qu'un outil de programmation graphique appelé blueprint. Un blueprint n'est rien d'autre qu'une
Loading...
en C++.- -> Unreal interprete les blueprint et le traduit ensuite en C++
Cette étape d'interpretation est par contre couteuse en performance. Mais avec l'utilisation de bluprint il est complètement possible de créer un jeux video de A à Z sans jamais écrire de code !
Apprendre les blueprints
Unreal propose des cours pour apprendre ! Voici quelque liens de cours :
Quelques liens intéressants :
Lancer un bluprint
Pour créer un blueprint il faut creer un actor. Il différent type de Actor que l'on peut set au debut de l'initiation, mais pour le moment prenons la classe Actor.
Event BeginPlay Permet de lancer la fonction au moment de lancer le jeu
Exercices :
- Créer ou transformer un blueprint qui utilisera le Construction Script pour changer le material d'un Static Mesh Component basé sur une variable accessible au niveau du Level Editor
- Créer un cube qui explose quand on passe dessus.
Version 1 :
Il est possible de l’améliorer sous format bool (t/f)
Création d’une fonction qui permet d’implémenter à l’intérieur. Ici la fonction “Calcul Attaque”.
Fonction
Une fonction c'est un ensemble d'opération ou tu peux passer des paramètre et qui effectue des actions. Tu peux passer en paramètre des variable et ça effectue des actions. Une fonction peut être normal ou pure.
- IL N'Y A QU'UNE SEULE SORTIE.
- Les fonctions peuvent être utiliser utiliser n'importe ou dans ton projet
MACRO
Les macros Blueprint, ou macros, sont essentiellement les mêmes que les graphiques réduits de nœuds. Ils ont un point d'entrée et un point de sortie désignés par des nœuds de tunnel. Chaque tunnel peut avoir n'importe quel nombre de broches d'exécution ou de données qui sont visibles sur le nœud macro lorsqu'elles sont utilisées dans d'autres Blueprints et graphiques.
Une macro c'est souvent utiliser dans des petites opérations et cela s'utilise dans le contexte d'un blueprint (une classe).
Macro permet d'avoir PLUSIEURS entrée et de sortie.
La Macro ne permet pas de faire de condition par rapport a un event comme une fonction !
- Les macros sont privées et sont propres au Blueprint.
- Elle n’apparaît pas comme une fonction (publique).
La macro n’apparaît pas dans les recherches tandis qu’une fonction si.
COMMUNICATION ENTRE LES BLUEPRINTS
Accéder a une fonction a l'exterieur du context sensitive 👇
Communication d’un Blueprint A / Blueprint B :
- Créer une variable qui allait avoir comme type BP_Variables.
COMPONENTS
- Création d’un nouveau projet : Game / 3rdPerson
Ajout d’un pseudo à notre personnage Blueprint :
- Add Component > “textRender” > rotation en z : 180 > changer le Text
- le mettre en enfant (dans la fenêtre component) pour qu’il suive un élément (ici camera) → le texte sera toujours face à la cam
Construction script
Exercice : Créer ou transformer un blueprint qui utilisera le Construction Script pour changer le material d'un Static Mesh Component basé sur une variable accessible au niveau du Level Editor
- BP Class > Actor > “BP_Objet”
- BP_Objet : Add Component > “Scene” > Drag and drop Scene > Add Component > “StaticMesh” > Mettre un Cube
⚠ Activer : Show Engine Content ⚠
Fonction setMaterial :
Cette fonction permet de mettre un material a notre static mesh. Pour lancer un bluprint il faut compiler pluis lancer play :
Puis clique sur
Maintenant si je regarde le viewpoprt mon mesh a pris la couleur de ma texture.
TICK EVENT :
L'event tick permet d'appelé un event a chaque frame. Cela correspond au update dans Unity.
Exercice : Créer un cube qui explose quand on passe dessus.
Split une fonction pure :
Pour modifier le mouvement de notre objet a chauque frame :
Si on veut changer les Fps :
Faire exploser les objets pendant la collision :
Créer un spawn et le détruire quand on le touche
Utilisation de EventBeginOverlap pour faire exploser les BP_Objet et les détruire - programmation par Corentin Résolution du problème rencontré pour arrêter les particules et détruire l'actor
Set function by name
Pour partager les blueprints
https://blueprintue.com/#popin-discoverVous pouvez copier coller les nodes directement dans unreal avec ctrl C & ctrl V
Lien vers dossier Gilles Plugin
Deplacement objet de manière random perpétuelle
Grace à l'event tick on fait une boucle constante a chaque frame. On va a chaque frame ajouter un float de variable vitesse a notre vecteur de direction. Grace a cela on pourra déplacer notre actor location en utilisant un set.
Pour que cela soit des allée retour perpétuelle dans 2 direction on va utiliser un delay. Toute les 2 s on changera la direction de notre Vecteur en inversant grace a une multiplication.
- Autre manière d'inverser la direction :
Système de branch :
Flip flop
Il possible de creer ses propre fonction dans Unreal, Inversion moovement a été créer manuellement 👇
sa fonction revert mouvement et ajouter notre variable direction dans la fonction
Maintenant nous allons choisir sa direction de manière aléatoire.
Spawn de manière random dans une box
Set materiaux
Changer de couleur au moment de la collison avec l'objet tagguer
On utilise OnCompoenent hit pour initialiser l'event de collision
Au moment de la collision on change la couleur
Récupérer tag ⚠ il existe 2 type de tag :
- Actor :
- Component :
Au moment du démarage on verifie que l'objet est bien set en aléatoire. On va utiliser le random unit Vector pour mettre en aléatoire les vecteur et ensuite on y ajoute la duréee et la vitesse de manière clamper en aléatoire.
Faire apparaitre des cibles en fonction d'un espace
Bluprint : TerrainTir
Changer vitesse personnage
Ne pas modifier dans le player charater mais dans le gamemode :
Placer personnage sur un objet
tuto 10 -> 1m04
Programmer viser de l'arme
Ce bluprint permet lorsque l'on clique sur shift de courir. Lorque le joueur appuis sur clique droit, sa caméra se rapproche (il vise plus précisément)
Pour zoomer de manière "jolie" on ajoute une timeline. Toucher la timeline (tuto 11)
copier ci-dessous :
Gérer le sprint avec la stamina
Préparé mes timers
Créer 2 fonctions :
Puis avec ces fonctions on les appelles pour que lorsque l'on appuis sur shift la staminas baisse, et quand on relanche la stamina remonte.
Jeux cible tuto 12 :
Mise en place de la diminution du nombre de munitions avec arrêt du tir lorsqu'il n'y en a plus.
Reserve de munitions
lien réponse👆Finalisation d'une architecture de fin de jeu en utilisant un HUD widget.
HUD_CibleCréation d'un collectible
Fabrication d'une objet récupérable pour recharger les munitions. Principe : l'objet contient aléatoirement un nombre de munition et se téléporte aléatoirement dans l'espace après survol du joueur.