← Learn Blueprints

Ramasser un objet dans Unreal Engine avec un Blueprint

Tu veux qu’un joueur ramasse une pièce, une clé ou n’importe quel objet ? Ce guide t’explique la logique complète : détecter le joueur, faire disparaître l’objet, vérifier que c’est bien le joueur, puis compter ce qu’il a ramassé. Tout est vérifié sur la documentation officielle d’Epic Games.

Étape 1 : une zone qui détecte le joueur

Dans le Blueprint de ton objet, ajoute un composant Sphere Collision avec Add. C’est une zone invisible en jeu qui sent ce qui entre dedans. La forme et la couleur de l’objet viennent d’un autre composant, la forme visible.

Au départ, la sphère est petite : Sphere Radius vaut 32. Dans Details, augmente cette valeur pour qu’elle entoure bien l’objet.

Autre réglage : la forme visible est solide par défaut, donc le joueur bute dessus comme sur un mur. Sélectionne-la, puis dans Details › Collision Presets, choisis NoCollision. L’objet reste visible, on peut le traverser, et c’est la sphère qui détecte.

Étape 2 : l’événement « quelque chose entre »

Sélectionne la sphère. Tout en bas de Details, dans la rubrique Events, clique sur + à côté de On Component Begin Overlap. Un nœud rouge apparaît. Il se lance quand quelque chose entre dans la sphère (overlap veut dire « chevaucher »).

Ce nœud a un pin Other Actor : c’est l’acteur qui vient d’entrer. Pour vérifier que ton événement fonctionne, branche un Print String : le message s’affiche dès que tu entres dans la sphère.

Étape 3 : faire disparaître l’objet

Ramasser un objet, c’est le retirer du jeu. Le nœud Destroy Actor fait exactement cela. Son pin Target vaut self, c’est-à-dire l’acteur qui exécute ce graphe : l’objet touché, et lui seul. Si tu en as posé plusieurs, chaque copie est à part, donc les autres restent en place.

Unreal suit le fil blanc de gauche à droite, un nœud après l’autre. Place Destroy Actor tout au bout. Ce que l’objet doit encore faire, comme afficher un message ou jouer un son avec Play Sound 2D, passe avant. Le nœud Play Sound 2D joue le son au même volume où que tu sois.

Étape 4 : seulement le joueur

Pour l’instant, tout acteur qui entre dans la sphère ramasse l’objet : un ennemi, un autre personnage… Il faut poser la question « est-ce le joueur ? ».

  1. Get Player Character donne le personnage que tu diriges. Sa case Player Index vaut 0 : le premier joueur.
  2. Le nœud == (Equal) compare Other Actor et Get Player Character. Il répond par un Boolean : vrai si c’est le joueur, faux sinon.
  3. Le nœud Branch signifie « si… sinon ». Relie la réponse à sa Condition, puis branche le reste de la suite sur True.

Un ennemi qui entre dans la sphère passe par False. Comme rien n’y est branché, rien ne se passe et l’objet reste là.

Étape 5 : compter les objets ramassés

L’objet ramassé disparaît, et ses variables avec lui. Le compteur doit donc vivre dans le joueur : crée une variable de type Integer, à 0, dans le Blueprint du personnage.

Depuis l’objet, Get Player Character donne « un personnage », sans savoir de quel Blueprint il s’agit. Le nœud Cast To vérifie que c’est bien ton personnage et donne accès à ses variables. Sa sortie As suivie du nom de ton Blueprint est ton personnage avec ses variables. Le pin Target de Get et Set doit venir de cette sortie, sinon Unreal ne sait pas de quel personnage tu parles. Si tu veux comprendre le Cast en détail, lis le guide dédié.

Pour ajouter 1, enchaîne trois étapes : Get lit la valeur, Add ajoute 1, Set écrit le résultat. Si le joueur a 2, il passe à 3. Garde toujours Destroy Actor tout au bout du fil.

Questions fréquentes

Pourquoi mon personnage bute-t-il contre l’objet au lieu de le ramasser ?

La forme visible est solide par défaut. Mets ses Collision Presets sur NoCollision : on peut la traverser, et la Sphere Collision continue de détecter.

Pourquoi ranger le compteur dans le joueur et pas dans l’objet ?

Chaque objet est détruit quand on le ramasse. Un compteur rangé dedans disparaîtrait avec lui. Le joueur, lui, reste.

Mon personnage traverse l’objet mais il ne disparaît pas, pourquoi ?

Pour le joueur, la condition du Branch est vraie : il sort par True. Vérifie que Destroy Actor est bien branché sur True.

Sources officielles

À lire aussi : collisions Block, Overlap et Ignore, Cast To et références Blueprint et les variables Blueprint.

Tu veux construire cet objet à ramasser pas à pas, avec des quiz pour vérifier que tu as compris ? C’est l’un des premiers mini-projets du cours.

Apprendre Unreal Engine 5 gratuitement

Retour à l’accueil de Learn Blueprints