Objectif
Permet au personnage d’attaquer via un système de combo à trois coups et une attaque puissante secondaire, avec déclenchement de dégâts lorsqu’une surface est frappée. L’ensemble est piloté par des AnimMontages, et les animations sont blendées dynamiquement entre full-body et upper-body grâce à une courbe.
 Fonctionnement général
- Le joueur appuie sur IA_PrimaryAttack → Combo 1-2-3

- Appui sur IA_SecondaryAttack → Power Hit

- Chaque attaque est jouée dans un AnimMontage avec sections nommées (Attack1, Attack2, Attack3, etc.)

- Le passage au coup suivant est conditionné par une fenêtre combo (ComboWindowOpen) et des booléens CanStartCombo

- L’attaque déclenche un événement de contact : si l’arme touche une surface et que le montage est actif → des dégâts sont appliqués.

- Les animations sont blendées entre les slots "UpperBody" et "FullBody" selon une Curve Float (BlendPoseAlpha).
Détail du pipeline (étape par étape)
[Étape 1] Déclenchement de la première attaque
- IA_PrimaryAttack déclenche le montage AM_ComboAttack_FullBody, section Attack1.

- Active ComboWindowOpen et CanStartCombo2nd via notify dans l’AnimMontage.

[Étape 2] Transition vers les attaques 2 et 3
- Si l’input est redéclenché dans la fenêtre combo (ComboWindowOpen == true)

- Section suivante est jouée (Attack2 puis Attack3) via Montage Jump To Section.

[Étape 3] Attaque puissante
- IA_SecondaryAttack lance un montage distinct (AM_PowerHit)

- Le mouvement est désactivé pendant l’attaque, puis réactivé à la fin.

[Étape 4] Détection de contact
- L’arme (ou composant de collision) détecte les surfaces via OnComponentBeginOverlap.

- Si l’attaque est en cours (Montage Is Playing) ET si PowerHitIsBeingPressed → déclenche l’événement de dégâts ou destruction.

[Étape 5] Animation blendée via curve
Dans l’AnimGraph :

- Two Way Blend entre le slot DefaultSlot (full body) et le slot UpperBodyPose.

- Contrôlé par une Curve Float (BlendPoseAlpha) présente dans les montages pour adoucir les transitions selon l'action.
Problèmes rencontrés
- Risque de spam du combo sans contrôle de la fenêtre (ComboWindowOpen parfois activée trop tôt/tard).

- Difficile de détecter le bon moment d’impact dans le montage.

- Problèmes de blend animation quand plusieurs slots s’enchaînaient trop vite.
Solution implémentée
- Ajout de AnimNotifies précis (CanStartCombo, Go2Attack2, ResetCombo) pour contrôler chaque étape du combo.

- Vérification constante avec Montage Is Playing avant toute nouvelle attaque.

- Animation blend pilotée avec Curve Float intégrée dans les montages → adoucit les transitions Upper/Full Body.
Tests et validation
- Test de répétition d’inputs dans différentes cadences pour valider le timing des combos.

- Debug des notifies avec Print String.
 Visuels
Colle ici des captures d’écran :
Blueprint

- Résultat dans le viewport

- Console debug si pertinent
Notes personnelles ou améliorations futures
- Ajouter un système de "hit pause" sur contact pour augmenter l’impact visuel.

- Synchroniser les dégâts avec des AnimNotifyState pour plus de contrôle sur la durée effective du hit.

- Utiliser une autre stratégie avec différents anim montage pour avoir un meilleur blend entre les animations

- Instaurer un système d'attaques aléatoires
Back to Top