← Learn Blueprints

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 :

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 :

  1. Tu crées un Custom Event qui contient l’action, par exemple ajouter 1 point de vie.
  2. Tu lances le timer, par exemple après Event BeginPlay, et tu lui désignes ce Custom Event.
  3. 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 ?

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 :

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

À 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

Retour à l’accueil de Learn Blueprints