Line Trace dans Unreal Engine 5 : tirer un rayon et lire ce qu’il touche
Comment savoir ce qu’il y a devant toi, ou si un garde voit le joueur ? Avec un Line Trace. Ce guide t’explique ce qu’est une trace, comment la lancer en Blueprint, comment la dessiner pour la vérifier et comment lire le résultat. Tout est vérifié sur la documentation officielle d’Epic Games.
Une trace, c’est quoi ?
Une trace (on dit aussi raycast) tire une ligne invisible d’un point de départ, Start, à un point d’arrivée, End. Elle te dit ce qu’elle touche en premier. C’est pratique pour savoir ce que voit un garde, ou où arrive un tir.
Une zone de collision attend que quelqu’un entre dedans. Une trace, c’est toi qui la lances, au moment que tu choisis, pour demander : « qu’y a-t-il dans cette direction ? ». Elle voit loin : à 10 mètres comme à 100.
Lancer un Line Trace By Channel
Le nœud de base s’appelle Line Trace By Channel. Voici l’idée générale :
- Appelle le nœud, par exemple depuis Event BeginPlay.
- Dans Start, branche la position de départ, par exemple Get Actor Location.
- Dans End, branche la position d’arrivée. Un composant de type Scene placé 10 mètres devant l’acteur, lu avec Get World Location, fait très bien l’affaire.
Un composant Arrow aide à voir où vise l’acteur : c’est une flèche visible seulement dans l’éditeur.
Voir le rayon
Le rayon est invisible. Pour le voir, règle Draw Debug Type sur For Duration : il se dessine pendant 5 secondes. Il est rouge jusqu’au point touché, puis vert après. Tout rouge veut dire qu’il n’a rien touché.
La trace marche même sans dessin. Si tu ne vois aucune ligne alors que la trace touche bien un mur, vérifie que Draw Debug Type n’est pas sur None.
Le rayon s’arrête sur le premier objet qui le bloque. Ce qui est derrière, il ne le voit pas. Et il ne touche jamais son propre acteur, car la case Ignore Self est cochée d’office.
Lire ce que le rayon a touché
Le nœud répond par sa sortie Return Value : vrai s’il a touché quelque chose, faux sinon. Ajoute un Branch après la trace et branche Return Value dans Condition. Tu ne lis alors le résultat que sur True.
Les détails sortent par Out Hit, un paquet de valeurs qu’on appelle une struct. Tire un fil depuis Out Hit et ajoute Break Hit Result : la struct est séparée en valeurs.
- Hit Actor : l’acteur touché.
- Impact Point : le point exact.
- Distance : la distance depuis Start.
Pour afficher le nom de l’acteur touché, branche Hit Actor dans l’entrée In String d’un Print String. Unreal ajoute tout seul un petit nœud qui change l’acteur en texte.
Le canal : qui arrête le rayon ?
Le rayon suit un canal, choisi dans Trace Channel. Visibility est le plus courant. Chaque objet dit, dans ses Trace Responses, s’il bloque ce canal ou le laisse passer. Si le rayon traverse une vitre au lieu de s’y arrêter, règle Visibility sur Block dans les Trace Responses de la vitre. Le matériau ne compte pas, seule compte la réponse au canal.
Un piège classique : le preset Pawn dit Ignore au canal Visibility. Un rayon en Visibility passe donc à travers un personnage, comme s’il n’existait pas.
Viser des personnages ou d’autres Object Types
Line Trace For Objects cherche des Object Types (Pawn, PhysicsBody…) au lieu d’un canal. C’est le bon choix pour trouver un personnage. Sphere Trace tire un rayon épais. Tu peux aussi créer ton propre canal avec New Trace Channel... dans les Project Settings.
Questions fréquentes
Quelle différence entre une trace et une zone de collision ?
Une zone attend qu’un objet entre dedans. Une trace est lancée par toi quand tu le veux, et elle peut aller aussi loin que tu veux.
Pourquoi mon rayon traverse-t-il mon joueur ?
Parce que le preset Pawn dit Ignore au canal Visibility. Utilise par exemple Line Trace For Objects avec Pawn dans la liste.
Mon rayon traverse un objet, pourquoi ?
Le rayon s’arrête seulement sur ce qui bloque son canal. Vérifie les Trace Responses de l’objet : le canal choisi doit être sur Block.
Sources officielles
- Traces Overview (documentation Epic)
- Components (documentation Epic)
- Using a Single Line Trace (Raycast) by Channel (documentation Epic)
- Line Trace By Channel (documentation Epic)
- Break Hit Result (documentation Epic)
- Line Trace For Objects (documentation Epic)
- Collision Response Reference (documentation Epic)
À lire aussi : les collisions Block, Overlap et Ignore, une IA d’ennemi avec Behavior Tree et les fonctions Blueprint.
Tu veux lancer ton premier rayon 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