Locomotion system


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) : True quand 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 IsFreeLooking comme index.
  • Condition Fausse : Utilise Get Control Rotation (comportement normal).
  • Condition Vraie : Utilise RotationAuClic (verrouille la direction de course).
  • Sortie : Injectée dans Get Forward Vector et Get Right Vector.

3. Logique IA_FreeLook (LMB)

  • Started : 1. Set RotationAuClic via Get Control Rotation. 2. Set IsFreeLooking = True. 3. Set Use Controller Rotation Yaw = False (libère la caméra du corps).
  • Completed :
    1. Set IsFreeLooking = False.
    2. 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.