Unreal: les base du blueprint

Blueprint: Le langage de programmation graphique

Unrealblueprint

⚠ 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 :


  • Anatomy of a project
  • Cours n1
  • Cours n2
  • Cours n3
  • Cours n4
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 :

  1. 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
  2. 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.

macro 👆

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

et choisir à droite
, puis on compile.


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 :

(clic droit sur Return Value (en jaune) > Split)

Pour modifier le mouvement de notre objet a chauque frame :

Les objets tournent dans la map.

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

Bluprint avant debut d'aprèm

Set function by name

Pour partager les blueprints

https://blueprintue.com/#popin-discover

Vous 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

  1. Préparé mes timers

  2. Créer 2 fonctions :

Stamina recup :Stamina reduc :

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 :

Méthode alternative:

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_Cible

Cré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.

Destruction cible

vision rapprochee

cible touche par projectile methode actor / component

vision rapprochee utilisant le add timeline

Methode alternative pour le systeme de stamina du character posted

Affichage du stamina utilisant un HUD

Compte du nombre de cible atteinte

Voir un autre post
av logo

© 2023 Gilles Avraam. Tous droits réservés.