Utiliser un timer au lieu d’Event Tick dans Unreal Engine
Event Tick est pratique, mais il tourne à chaque image. À la fin de ce guide, tu sauras alléger un acteur en éteignant ou en ralentissant son Tick, remplacer un Tick par un timer avec Set Timer by Event, et arrêter ou mettre en pause un timer. Tout est vérifié sur la documentation officielle d’Epic Games.
Éteindre ou ralentir le Tick d’un acteur
Dans les Class Defaults de ton Blueprint, la rubrique Actor Tick propose deux réglages :
- Start with Tick Enabled : décochée, l’acteur commence sans Tick et ne paie rien à chaque image.
- Tick Interval (secs) : le temps entre deux Ticks. 0 veut dire à chaque image. 0.2 veut dire environ 5 fois par seconde, idéal pour un radar par exemple.
Pendant la partie, Set Actor Tick Enabled allume ou éteint le Tick (un zombie très loin du joueur peut l’éteindre), et Set Actor Tick Interval change son rythme.
Attention : un objet qui doit bouger de façon fluide garde un Tick à chaque image. Avec un Tick Interval (secs) de 0.5, un objet qui tourne ne bougerait que deux fois par seconde, par à-coups.
Un timer : un réveil
Un timer lance une action après un délai, une seule fois ou en boucle. Au lieu de demander à chaque image « 2 secondes sont passées ? », tu dis à Unreal : « appelle-moi dans 2 secondes ». Entre-temps, ton acteur ne fait rien et ne coûte rien.
En gros, avec Set Timer by Event :
- Tu crées un Custom Event qui contient l’action, par exemple ajouter 1 point de vie.
- Tu lances le timer, par exemple après Event BeginPlay, et tu lui désignes ce Custom Event.
- Tu choisis le délai (Time) et si l’appel se répète (Looping).
Le pas à pas complet, avec les captures de l’éditeur, des quiz et un mini-projet, est dans le chapitre « Performance : un jeu fluide » du cours.
Timer ou Tick ?
- Timer : tout ce qui arrive à un rythme fixe ou après un délai, comme 1 point de vie par seconde, une bombe qui explose dans 5 secondes ou une lampe qui clignote.
- Tick : seulement ce qui change à chaque image, comme une caméra qui suit le joueur en douceur.
Pour régénérer 1 point de vie par seconde, un timer en boucle de 1 seconde appelle le Blueprint une fois par seconde. Dans Tick, tu travaillerais 60 fois par seconde pour une action qui n’arrive qu’une fois.
Garder la main sur un timer
Set Timer by Event renvoie un Return Value : la poignée (« handle ») du timer, un ticket qui le désigne. Garde-la dans une variable : sans elle, tu ne pourras plus arrêter ce timer. Avec elle :
- Clear and Invalidate Timer by Handle arrête et efface le timer ;
- Pause Timer by Handle le fige là où il en est ;
- Unpause Timer by Handle le fait repartir de ce moment. C’est pratique quand le joueur ouvre un menu.
Si tu relances un timer qui existe déjà, il repart de zéro avec les nouveaux réglages.
Set Timer by Function Name
Set Timer by Function Name fait la même chose sans relier de Custom Event : tu écris le nom de l’événement dans Function Name. Écris-le exactement pareil, sinon rien n’est appelé.
Questions fréquentes
Pourquoi mon timer ne fait rien ?
Si tu utilises Set Timer by Function Name, vérifie l’orthographe : Function Name est un simple texte, et « RegenHelth » ne correspond à aucun événement appelé « RegenHealth ». Avec Set Timer by Event, vérifie que ton Custom Event est bien relié au nœud.
Comment arrêter un timer ?
Garde sa poignée (le Return Value) dans une variable, puis donne-la à Clear and Invalidate Timer by Handle.
Un Event Tick vide coûte-t-il quelque chose ?
Non. Si rien n’est branché sur Event Tick (il reste grisé), Unreal le voit en compilant et ne fait pas « ticker » l’acteur.
Sources officielles
- FTickFunction (documentation Epic)
- Set Actor Tick Enabled (documentation Epic)
- Set Actor Tick Interval (documentation Epic)
- Gameplay Timers (documentation Epic)
- Set Timer by Event (documentation Epic)
- Clear and Invalidate Timer by Handle (documentation Epic)
- Pause Timer by Handle (documentation Epic)
- Set Timer by Function Name (documentation Epic)
À lire aussi : Event Tick et BeginPlay, optimiser un jeu avec stat unit et Delta Seconds.
Tu veux t’entraîner à remplacer un Tick par un timer dans un vrai projet ? Le cours propose des leçons courtes, des quiz et des mini-projets, à ton rythme.
Apprendre Unreal Engine 5 gratuitement