Locomotion system terminé et validé le 23 décembre 2025.
J’ai dû tout ré-écrire car le splendide code que j’avais fièrement terminé était irréprochable en solo – copie carbone de WoW – mais causait des soucis de réplication : un joueur ne voyait pas exactement ce que les autres faisaient et je contrariais l’engine au point de générer du traffic réseau inutile, du jitter et une augmentation de la charge CPU serveur.
1. Variables Créées
IsFreeLooking(Boolean) :Truequand LMB est enfoncé.RotationAuClic(Rotator) : Stocke la direction du regard au moment précis du clic.
2. Logique IA_Move (Mouvement)
- Aiguillage : Un nœud Select (Rotator) utilise
IsFreeLookingcomme index. - Condition Fausse : Utilise
Get Control Rotation(comportement normal). - Condition Vraie : Utilise
RotationAuClic(verrouille la direction de course). - Sortie : Injectée dans
Get Forward VectoretGet Right Vector.
3. Logique IA_FreeLook (LMB)
- Started : 1.
Set RotationAuClicviaGet Control Rotation. 2.Set IsFreeLooking=True. 3.Set Use Controller Rotation Yaw=False(libère la caméra du corps). - Completed :
Set IsFreeLooking=False.Set Use Controller Rotation Yaw=True(réaligne le contrôle pour la suite).
4. Paramètres Character Movement
- Orient Rotation to Movement :
True. - Rotation Rate (Yaw) : Ajusté pour la fluidité (ex: 500).
C’est une implémentation “Event-Driven” (basée sur les événements). C’est ce qu’il y a de plus performant pour la réplication car le serveur n’a pas besoin de valider des calculs à chaque frame.