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 :
- Double-clique sur le mesh dans le Content Browser : le Static Mesh Editor s’ouvre.
- Ouvre le menu Collision et choisis Add Box Simplified Collision.
- 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 :
- WorldStatic : ne bouge pas, par exemple un mur.
- WorldDynamic : bouge par code, par exemple une porte.
- Pawn : un personnage.
- PhysicsBody : la physique le fait bouger, par exemple une caisse qui tombe.
Pour chaque Object Type, ton objet choisit une réponse dans Details › Collision :
- Block bloque, comme un mur.
- Overlap laisse passer, mais peut prévenir.
- Ignore laisse passer sans rien dire.
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.
- BlockAll : un objet fixe qui bloque tout.
- OverlapAll : un objet fixe qui laisse tout passer, en prévenant.
- NoCollision : aucune collision.
- BlockAllDynamic et OverlapAllDynamic : pareil, pour un objet qui bouge.
- Pawn : la capsule d’un personnage, joueur ou ennemi.
- PhysicsActor : un objet que la physique fait bouger.
- Trigger : une zone de détection.
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
- Setting Up Collisions With Static Meshes (documentation Epic)
- Viewport Modes (documentation Epic)
- Simple versus Complex Collision (documentation Epic)
- Collision Response Reference (documentation Epic)
- Collision Overview (documentation Epic)
- Add a Custom Object Type to Your Project (documentation Epic)
- On Component Begin Overlap (documentation Epic)
- On Component End Overlap (documentation Epic)
- On Component Hit (documentation Epic)
- Events (documentation Epic)
- Flow Control (documentation Epic)
À 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