← Learn Blueprints

Collisions dans Unreal Engine 5 : Block, Overlap et Ignore

Ton personnage traverse un mur, ou se cogne contre un objet invisible ? Ce guide t’explique comment fonctionnent les collisions. À la fin, tu sauras donner une collision à un objet, choisir entre Block, Overlap et Ignore, utiliser les presets, et réagir quand un objet entre dans une zone ou se cogne. Tout est tiré de la documentation officielle d’Epic Games.

Le mesh et la collision sont deux choses différentes

Un objet a deux parties. Le mesh est la forme 3D que tu vois. La collision est une forme invisible qui bloque. Un mesh sans collision se laisse traverser. Ça arrive souvent avec un modèle 3D importé ou téléchargé.

Pour corriger ça, ajoute une collision au mesh :

  1. Double-clique sur le mesh dans le Content Browser : le Static Mesh Editor s’ouvre.
  2. Ouvre le menu Collision et choisis Add Box Simplified Collision.
  3. Sauvegarde le mesh.

La collision est rangée dans le mesh lui-même. Une fois sauvée, toutes les copies de ce mesh posées dans le niveau bloquent le joueur. Chaque forme ajoutée vient en plus des autres. Pour repartir de zéro, choisis Remove Collision : toutes les formes sont effacées d’un coup.

Pour trouver un mur invisible, ouvre le menu des modes de vue en haut du viewport et choisis Player Collision. Tout ce qui bloque un personnage se colore. Choisis Lit pour revenir à la vue normale.

Collision simple ou collision complexe

La collision simple est faite de formes de base : boîtes, sphères, capsules. Elle ne colle pas à chaque détail du mesh, mais le moteur la calcule très vite. La collision complexe utilise tous les triangles du mesh. Elle suit la forme exacte, mais elle est bien plus lourde à calculer.

Pour bloquer un joueur, une forme simple suffit presque toujours. Le réglage se trouve dans le Static Mesh Editor, panneau Details, rubrique Collision, liste Collision Complexity. Laisse Project Default dans la plupart des cas.

Attention à Use Complex Collision As Simple : avec ce réglage, l’objet ne peut plus tomber ni rouler tout seul. Il sert seulement d’obstacle. Pour un objet qui doit bouger avec la physique, garde une collision simple.

Object Type et réponses : Block, Overlap, Ignore

Chaque objet dit ce qu’il est avec son Object Type. Les quatre à connaître :

Pour chaque Object Type, ton objet choisit une réponse dans Details › Collision :

Les deux objets ont leur mot à dire. Ils se bloquent seulement si chacun dit Block pour l’Object Type de l’autre. Si l’un dit Overlap et l’autre Block, personne n’est bloqué : il y a juste un overlap. Si l’un des deux dit Ignore, il ne se passe rien du tout. Retiens la règle : la réponse la plus faible gagne. Ignore est plus faible qu’Overlap, et Overlap plus faible que Block.

Les presets de collision

Cocher chaque case à la main est long. Un preset règle l’Object Type et toutes les réponses d’un coup. Tu le choisis dans Details › Collision › Collision Presets.

Sur un mesh posé dans le niveau, Default veut dire qu’il garde la collision réglée dans le Static Mesh Editor. Si aucun preset ne convient, choisis Custom... : toutes les cases s’ouvrent et tu règles chaque réponse. Tu peux aussi créer ton propre Object Type dans Project Settings › Engine › Collision, avec New Object Channel....

Réagir à une zone ou à un choc : Overlap et Hit

Un overlap, c’est entrer dans une zone qu’on traverse. Pour le détecter, sélectionne le composant de la zone dans Components, puis dans Details › Events, clique sur + à côté de On Component Begin Overlap. Cet événement se lance à l’entrée. On Component End Overlap se lance à la sortie. Chacun ne se lance qu’une fois : tant que l’objet reste dans la zone, rien ne se relance.

Pour qu’un overlap prévienne, la case Generate Overlap Events doit être cochée sur les deux objets. Une forme ajoutée dans un Blueprint l’a déjà. Un mesh glissé seul dans le niveau ne l’a pas. Un objet qui apparaît directement dans la zone compte aussi comme une entrée. Et la zone réagit à tout ce qui entre : pour la réserver au joueur, teste Other Actor avec un Branch.

Un Hit, c’est se cogner contre quelque chose de solide (Block des deux côtés). L’événement s’appelle On Component Hit. Un personnage qui avance vérifie son chemin, on appelle ça un Sweep : à chaque blocage, sa capsule reçoit un Hit, sans case à cocher. Le nœud donne Other Actor (l’acteur touché), Other Comp (le morceau touché), Normal Impulse (la force du choc) et Hit (des infos comme le point de contact).

Questions fréquentes

Pourquoi mon personnage traverse-t-il un objet ?

Cause la plus probable : le mesh n’a aucune forme de collision. Ajoute-en une dans le Static Mesh Editor. Sinon, vérifie les réponses : pour bloquer, il faut deux Block. Si l’objet dit seulement Overlap aux Pawns, le personnage passe.

Pourquoi mon événement Begin Overlap ne se lance-t-il pas ?

Vérifie que Generate Overlap Events est coché sur les deux objets. Vérifie aussi qu’aucun des deux ne dit Ignore : avec un Ignore, il n’y a même pas d’overlap.

Pourquoi mon événement Hit se répète-t-il sans arrêt ?

Tant que ton personnage pousse contre le mur, un Hit se lance à chaque image. Ajoute un nœud Do Once juste après l’événement : il laisse passer le fil d’exécution la première fois, puis plus jamais. Son entrée Reset le rouvre si besoin.

Sources officielles

À lire aussi : le Line Trace, la physique dans Unreal Engine et ramasser un objet.

Tu veux voir les collisions en action dans un vrai projet ? Le cours te guide pas à pas : des leçons courtes, des quiz et des mini-projets, à ton rythme.

Apprendre Unreal Engine 5 gratuitement

Retour à l’accueil de Learn Blueprints