Sprint et endurance Unreal Engine : créer une barre d'endurance avec l'IA
Sprint Unreal Engine : Left Shift pour courir à 900, une barre d'endurance qui baisse de 25 par seconde, récupère après 1 seconde et se bloque à vide.
Un système d’endurance dans Unreal Engine repose sur trois petites idées : un nombre, l’endurance ; une règle qui dit quand vous pouvez courir et ce que cela coûte ; et une règle qui dit quand elle revient. Tout ce qui s’affiche à l’écran, la barre, la couleur et la vitesse, n’est qu’une réaction à ce seul nombre. Le moyen le plus simple de le construire est de demander à une IA le système complet en une seule requête, avec ses règles de vitesse, de consommation, de récupération et de blocage.
Dans ce tutoriel pas à pas, Ultimate Engine CoPilot construit un sprint sur Left Shift avec une barre d’endurance qui se vide, récupère et se bloque quand elle est à zéro. Vous obtenez le prompt exact, un problème que l’IA a trouvé dans le personnage et la façon dont elle l’a résolu, ainsi qu’une explication claire du fonctionnement d’un système d’endurance.
Ce que fait le système terminé
Vous marchez, et il n’y a pas de barre, car l’endurance est pleine. Vous maintenez Shift et le personnage court plus vite, et une petite barre apparaît au-dessus de la barre de capacités. Elle se vide pendant que vous courez, et devient orange quand elle est presque vide. Vous relâchez, attendez une seconde, et elle se remplit de nouveau. Et si vous courez jusqu’à la vider, le sprint est verrouillé jusqu’à ce que la barre récupère.

En plein sprint : la barre d’endurance verte se trouve au-dessus de la barre de capacités.
Le prompt
Copiez ceci, changez la vitesse ou la consommation, et voyez ce que l’IA construit :
Make sprinting with a stamina bar. Create WBP_StaminaBar in /Game/Series/EP39_Sprint, a thin horizontal bar at the bottom centre of the screen above the existing ability bar, 400 pixels wide and 14 pixels high, with a dark background and a green fill that turns orange below 30 percent, and hidden while stamina is full. Create BP_SprintController in the same folder, an actor that I place once in the level, that adds the widget on BeginPlay and listens for Left Shift. While Left Shift is held, the player is moving and stamina is above 0, set the character's MaxWalkSpeed to 900 and drain 25 stamina per second out of 100. When the player is not sprinting, wait 1 second and then regenerate 20 stamina per second. If stamina reaches 0, sprinting stays locked until stamina is back to 30. The actor must read and remember the original MaxWalkSpeed and restore it when the sprint ends. Keep the sprint speed, the drain, the regeneration and the lock threshold as variables. Place the actor near the player start. Then play test it: record the original walk speed, hold Left Shift while moving forward and check the speed is 900 and stamina falls, release and check the original speed is restored and stamina regenerates after the delay, hold until stamina is empty and check the sprint is locked, and fix anything that does not work.
Regardez les nombres : 900, 25, 20, 30 et 1 seconde. Chaque règle a un nombre, donc l’IA n’a pas à deviner ce qui donne la bonne sensation. Et regardez encore un point : l’acteur doit mémoriser la vitesse d’origine et la restaurer. Si vous ne le dites pas, beaucoup de systèmes de sprint laissent le joueur bloqué à la mauvaise vitesse.
Comment l’IA le construit
L’IA commence par lire le projet. Elle trouve le HUD, pour voir où se trouve la barre de capacités, afin que la nouvelle barre puisse se placer au-dessus sans la recouvrir. Ensuite, les deux assets apparaissent : le widget de la barre d’endurance et le Blueprint du contrôleur de sprint. Les nombres demandés deviennent des variables, ce qui vous permet de les changer plus tard sans toucher au graphe.
La barre s’est d’abord retrouvée sur le bord gauche : l’IA a donc corrigé l’ancrage en bas au centre et placé le contrôleur près du point de départ du joueur.

Le graphe du contrôleur : à chaque frame, il vérifie Shift, le mouvement et l’endurance.
Un problème dans le personnage
Le premier essai réussit 11 vérifications et en échoue deux. L’IA lit les échecs : la vitesse devait être de 900 et elle est restée à 600, et pendant le blocage du sprint la vitesse indiquait 1000. Elle trouve la cause. Ce personnage possède déjà son propre sprint, qui règle la vitesse à 1000 à chaque frame. Un vrai projet ressemble souvent à cela, et l’IA a contourné le problème sans toucher au personnage. Le contrôleur écrit désormais sa vitesse à chaque frame, après le player controller et avant le mouvement.
Le second essai réussit les 19 vérifications.
Le rapport

La preuve pour chaque règle, et les remarques sur le sprint propre au personnage.
Le rapport contient un tableau avec chaque vérification et sa preuve :
- La vitesse de marche est de 600. Pendant le sprint, la vitesse est de 900 et la vitesse réelle du pawn est de 899.98.
- Endurance après 1,5 seconde de sprint : 61.5, proche des 62.5 que prédisent les nombres.
- Après le relâchement, la vitesse revient à 600. Pas de régénération pendant la première seconde, puis la barre se remplit.
- Maintenu jusqu’à épuisement, le sprint se bloque. Avec Shift toujours maintenue à 13.9 d’endurance, la vitesse est de 600. Le blocage se lève à 30.8 et le sprint reprend à 900.
L’IA est honnête sur ce qu’elle n’a pas vu. Elle a vérifié la barre orange à l’écran, mais la barre verte et l’état masqué seulement depuis le graphe du widget. Et le sprint du personnage est écrasé, pas supprimé, car ce personnage vient d’un pack d’assets. Elle propose de le supprimer si vous le souhaitez. Le niveau n’est pas non plus enregistré.
Comment fonctionne un système d’endurance, en termes simples
À chaque frame, le contrôleur vérifie trois choses : Shift est-elle maintenue, le joueur se déplace-t-il, et l’endurance est-elle supérieure à zéro et non verrouillée ? Si les trois réponses sont oui, la vitesse est la vitesse de sprint, et l’endurance baisse un peu : la consommation multipliée par le temps de la frame. Sinon, la vitesse revient à celle qui a été mémorisée. Un minuteur compte une seconde, puis l’endurance remonte un peu à chaque frame.
Quand l’endurance atteint zéro, un seul booléen, locked, passe à vrai, et il ne repasse à faux que lorsque l’endurance remonte à 30. Cet écart est ce qui empêche le sprint de clignoter. Et la barre ne fait que lire le nombre : verte, puis orange sous 30 %. Comme la vitesse, la consommation et la régénération sont des variables, vous pouvez obtenir un coureur lourd ou infatigable avec trois nombres.
Idées pour aller plus loin
- Un coût différent pour le saut.
- Un court son d’essoufflement et une respiration plus lourde quand la barre est vide.
- Un champ de vision qui s’élargit un peu pendant le sprint. Voir le zoom Unreal Engine pour le mélange du champ de vision.
Quatre conseils pour vos prompts d’endurance
- Donnez un nombre à chaque règle : la vitesse, la consommation, le délai, le blocage.
- Dites où va la barre, par rapport à l’interface existante.
- Demandez à l’IA de restaurer la vitesse d’origine.
- Demandez-lui de tester le cas vide, pas seulement le cas plein.
Questions fréquentes
Comment créer un sprint avec endurance dans Unreal Engine 5 ?
Tant que la touche est maintenue et que le joueur se déplace, augmentez MaxWalkSpeed et réduisez l’endurance à chaque frame. Régénérez-la après un délai, et verrouillez le sprint à zéro jusqu’à ce que l’endurance remonte à un seuil.
Pourquoi le sprint reste-t-il verrouillé jusqu’à ce que l’endurance remonte à 30 ?
Un écart entre la valeur de vide et la valeur de déverrouillage empêche le sprint de clignoter quand l’endurance oscille près de zéro.
Pourquoi le premier essai a-t-il échoué à deux vérifications ?
Le personnage avait déjà son propre sprint, qui réglait la vitesse à 1000 à chaque frame. L’IA l’a contourné en écrivant sa vitesse à chaque frame dans le bon ordre, sans modifier le personnage.
Essayez-le dans votre projet
Découvrez ce qu’Ultimate Engine CoPilot peut construire sur la page produit, ou procurez-vous-le sur Fab. Découvrez comment fonctionne le générateur de Blueprint IA.
Plus de réalisations de cette série : la plaque de glace Unreal Engine, le boost de vitesse Unreal Engine et les dégâts de chute Unreal Engine.