Aller au contenu
Guide

Créer des PNJ Roblox qui se déplacent et réagissent

Un PNJ qui traverse un mur ou reste bloqué sur une marche ruine l'illusion en une seconde. La plupart des problèmes viennent de trois choses : le déplacement, la détection et le nombre.

Déplacer un PNJ sans qu'il se coince

MoveTo tout seul abandonne au bout de huit secondes et ne contourne rien. Pour un trajet un peu long, passe par PathfindingService : il calcule des points de passage que tu suis un par un.

Recalcule le chemin quand la cible bouge nettement, pas à chaque image. Et vérifie l'arrivée à chaque point : un PNJ qui n'atteint jamais son point suivant doit repartir plutôt que d'attendre.

Détecter sans tout scanner

Chercher le joueur le plus proche en parcourant tout le Workspace à chaque image coûte cher pour rien. Parcours la liste des joueurs, compare les distances, et ne fais ce calcul que quelques fois par seconde.

Pour « voit-il le joueur ? », un Raycast depuis la tête du PNJ vers celle du joueur suffit, avec un filtre qui ignore les deux personnages.

Une machine à états, pas une pile de conditions

Repos, patrouille, poursuite, attaque, retour. Un état à la fois, des transitions explicites. C'est ce qui rend le comportement lisible et corrigible ; une accumulation de `if` imbriqués devient impossible à déboguer au troisième comportement.

  • Chaque état sait ce qui le fait entrer et ce qui le fait sortir.
  • Les connexions d'un PNJ sont rangées à sa mort : sinon elles fuient et le serveur ralentit.
  • Le serveur possède le PNJ : SetNetworkOwner(nil) sur ce qui doit rester autoritaire.

Le nombre est le vrai problème

Dix PNJ qui réfléchissent chaque image coûtent plus que cent PNJ qui réfléchissent dix fois par seconde. Étale les mises à jour dans le temps, et mets en sommeil ceux qui sont loin de tout joueur.

Questions fréquentes

Faut-il un Humanoid pour un PNJ ?

Pour marcher et s'animer, oui. Pour un objet flottant ou une tourelle, non — un Humanoid coûte cher et n'apporte rien s'il n'y a ni marche ni animation.

Créer des PNJ Roblox qui se déplacent et réagissent — Nemesis