Introduction
Ouvrir une porte dans la vraie vie est pas mal simple, mais le faire dans le moteur de jeu de Unreal Engine va prendre un peu plus "brain power" pour y faire. Donc, dans ce blog, vous allez apprendre comment coder pour qu'un joueur puisse intéragir avec l'environement autour de lui incluant comment ouvrir et fermer une porte!
Ouvrir et fermer une porte
Construire la porte
Premièrement on doit créer notre classe de blueprint pour notre porte

et puis selection notre classe parent qui va être un acteur car notre joueur va intéragir avec cet objet.
Puis, on doit faire un double clic sur cette classe pour l'ouvrir dans l'éditeur blueprint de Unreal Engine.
Voilà! On est dans notre classe mais il manque une chose... Il y aucune porte! C'est car on doit l'ajouter ses composants! Donc pour l'ajouter on doit faire un clique droit dans la section components et puis selectionner "Static mesh" et puis à partir de notre mesh crée on peux ajouter les composants de notre porte. Cela va inclure le cadre de porte et la section qui va s'ouvrir et se fermer, donc 2 mesh.



Voilà, notre porte est ajoutée mais maintenant on doit ajouter un boite que si le joueur est à l'intérieur de cette boite il peut intéagir avec cette porte.

et puis configurer sa taille de détection.

La logique
La logique qu'on va utiliser avec cette porte c'est que si le joueur est dans notre boite. Il aura donc la possibilité d'ouvrir ou de fermer cette porte!
Pour commencer, on doit ajouter un événement à notre boite. Il existe plusieurs type d'évènements qui peuvent faire plusieurs type d'actions chez Unreal Engine mais celle qu'on va utiliser est l'évènement "On Component Begin Overlap". Cet évènement est appelé lorsque quelque chose commence à chevaucher le composant en question qui est dans ce cas notre boite.


Premièrement, on doit voir que c'est notre joueur qui est dans la boite ou non et lui donner les droits de saisie.

Dans ce bout de code, à chaque fois que l'évènement est appelé, il regarde si l'acteur est le joueur. Si cela est le joueur, il crée une instance de son controlleur et le donne droit de saisie.
Deuxièmement, on aura besoin d'un cas quand le joueur quitte la boite, on enlève ses droits de saisie. Cela est possible avec l'évènement "On Component End Overlap" qui est l'opposé de "On Component Begin Overlap".


Ensuite, on doit ajouter notre touche de saisie via son clavier pour ouvrir et fermer une porte.

Dans ce code, nous lions notre touche "E" à un "flip flop". Un flip flop c'est juste un node qui va alterner entre les outputs A et B. Donc, à chaque fois que la touche "E" est cliqué cela va alterner les lettres A et B. A va ouvrir la porte est changeant sa rotation par 90 degrés et B va le remettre à sa place. Et c'est tout!

et quand clique sur la touche "E"...
Finalement quand on retouche sur la lettre E....

Merci!
References
Smart Poly, Unreal Engine 5 | Blueprint For Beginners (2023), https://www.youtube.com/watch?v=Xw9QEMFInYU&t=3332s (Consulté le 2 mars 2024)
Unreal Engine 5, Blueprints Visual Scripting, https://docs.unrealengine.com/5.0/en-US/blueprints-visual-scripting-in-unreal-engine/ (Consulté le 2 mars 2024)
Unreal Engine 5, Introduction to Blueprints, https://docs.unrealengine.com/4.26/en-US/ProgrammingAndScripting/Blueprints/GettingStarted/ (Consulté le 2 mars 2024)
Commentaires