Objectif
 Permet de diriger automatiquement la main gauche du personnage vers des objets précis (cerveau, rebords, poignées) via une transition fluide entre animation FK et IK, animée avec une courbe d’alpha intégrée dans les animations.
 Fonctionnement général
 Le système repose sur le Two Bone IK appliqué à la main gauche dans l’AnimGraph.

Une variable de type Vector est mise à jour dynamiquement pour pointer vers la position de l’objet interactif le plus proche.

Une courbe d’animation (nommée IKHand, ClimbIK, etc.) contrôle l’intensité de l’IK via une interpolation fluide dans le temps (interpolation dans le Event Graph de l’AnimBP).

Ce système permet un blending progressif de la position de la main entre FK et IK, sans rupture, tout en conservant le style de l’animation de base.
Détail du pipeline (étape par étape)

 [Étape 1] Dans le Character BP, une fonction détermine dynamiquement l’objet interactif le plus proche (Update Closest Brain) et stocke sa position dans une variable.

[Étape 2] Cette variable est transmise au AnimBP via un Vector (ex: IK Left Hand Target).

[Étape 3] Dans le Event Graph de l’AnimBP, cette valeur est interpolée à l’aide d’un VInterpTo, pour éviter les mouvements brusques.

[Étape 4] La courbe IKHand est lue dans l’animation active. Elle pilote une interpolation de type M_IKLogic (macro personnalisée), pour générer un alpha entre 0 et 1.

[Étape 5] Dans l’AnimGraph :
– La position interpolée est envoyée dans un Two Bone IK sur la main.
– L’alpha de blending (issu de la courbe) détermine la force de l’IK.

[Étape 6]
En cas de vault ou grimpe, d'autres courbes sont utilisées pour prendre le contrôle de la main de manière similaire, mais vers un socket précis sur le rebord.
Problèmes rencontrés

Saccades dans la main lors des transitions abruptes.

Difficulté à aligner l’IK avec le timing de l’animation.

Conflits lorsque plusieurs systèmes tentaient d’utiliser la même main (vault + pickup).
Solution implémentée

Ajout d’une interpolation (VInterpTo) dans le Event Graph pour adoucir le mouvement vers la cible.

Utilisation systématique de courbes animées (IKHand, ClimbIK) pour contrôler le blending.

Séparation claire des contextes : une courbe dédiée par usage (prise d’objet, grimpe, etc.).

Ajout d’un masque de blend slot (UpperBody / FullBody) pour isoler l’effet aux bras.
Tests et validation

Utilisation d’un montage de prise (Anim_Ghoulie_Pickup) avec Curve Editor pour ajuster précisément le moment où le blending commence.

Tests de maintien de la main sur la cible dans différents cas (sol plat, incliné, objets animés).

Débogage via Print String sur la position de la main et la valeur de l’alpha.
 Visuels
Colle ici des captures d’écran :
Blueprint

Résultat dans le viewport

Console debug si pertinent
Notes personnelles ou améliorations futures

Ajouter une logique pour le bras droit au besoin (poignées doubles).

Ajouter un système d’interruption propre pour désactiver l’IK en cas de mouvement brusque.

Créer une fonction générique de "Main vers cible" utilisable dans tout contexte interactif.
Back to Top