Murloc Cult

Retour au journal

Correctif critique : personnages en lévitation ou dans le sol

Les trajets des personnages autonomes suivaient une hauteur interpolée en ligne droite entre deux virages du chemin : ils flottaient au-dessus des creux et traversaient les reliefs. Chaque point du trajet est désormais posé sur le sol réel, de proche en proche.

Commit
8ee2bfd
Build
Build réussi (2 min) · Cible worldserver
Symptôme

Observé en direct sur les clients du groupe vitrine : de nombreux personnages se déplaçaient en lévitation au-dessus du terrain ou passaient à travers le sol.

Cause

Le chemin « naturel » du module est calculé sur le maillage de navigation, qui renvoie des coins (les virages du trajet). Entre deux coins, des points sont posés tous les 2 m, mais leur hauteur était interpolée en ligne droite entre les deux coins, puis recalée au sol seulement si l'écart était inférieur à 4 m. Sur un vallon ou une colline entre deux virages, l'écart dépassait 4 m : le point restait en l'air, ou sous le terrain, et le déplacement (spline) le suivait.

Correctif
  • La hauteur de chaque point est cherchée autour du point précédent (déjà posé au sol), d'abord sur la surface du maillage de navigation, puis recalée sur le sol réel (terrain et objets).
  • À 2 m d'écart et 50° de pente au plus, le sol ne peut pas s'éloigner du point précédent de plus de quelques mètres : plus de saut de hauteur possible.
  • L'interpolation en ligne droite ne sert plus qu'en dernier recours.
Vérification
  • Redémarrage sans plantage, reconnexion des 62 personnages, aucun blocage ni chemin impossible dans les minutes suivantes.
  • Classé critique : corrigé et déployé immédiatement, hors lot.