Aller au contenu principal

Aides d’animation des yeux

En plus de la synchronisation labiale, le plugin Runtime MetaHuman Lip Sync inclut deux utilitaires facultatifs pour animer les yeux des MetaHumans :

  • Auto Blink : un outil d’assistance qui produit des clignements d’yeux naturels et aléatoires sur un MetaHuman
  • Eyes Aim : un nœud d’Animation Blueprint qui fait regarder les yeux d’un MetaHuman vers un emplacement dans l’espace mondial

Ces fonctionnalités sont totalement indépendantes de la synchronisation labiale et peuvent être utilisées seules, ensemble, ou combinées avec les nœuds de synchronisation labiale. Elles sont conçues comme des outils légers et prêts à l'emploi pour ajouter un comportement oculaire réaliste sans avoir à le créer manuellement.

Aperçus des fonctionnalités

Auto Blink : clignements automatiques des yeux
Visée des yeux : suivi de la caméra du joueur
Regard visé : suivi d'un acteur cible en mouvement

Vidéo de démonstration

Présentation complète des deux assistants, y compris la solution de contournement pour le rig hérité.

Quand utiliser ces assistants

Si votre pipeline d'animation faciale inclut déjà des clignements et un regard dynamique, vous pouvez ignorer cette page. Ces outils existent pour les cas où vous souhaitez un comportement oculaire réaliste sans l'authoriser vous-même, par exemple, lorsque vos séquences d'animation ne comportent pas de clignements, ou lorsque vous avez besoin que les yeux suivent dynamiquement une cible en mouvement (ce que les séquences d'animation statiques ne peuvent pas faire). Ils peuvent également être superposés par-dessus les animations faciales existantes pour ajouter des éléments manquants, comme des clignements sur une séquence qui n'anime que la bouche.

L'assistant Auto Blink produit des clignements d'yeux aléatoires et naturels en pilotant les courbes CTRL_L_eye_blink et CTRL_R_eye_blink du MetaHuman Face Control Rig.

Comment ça marche

À chaque frame, vous appelez Update MetaHuman Auto Blink depuis l'Event Graph de votre Face Animation Blueprint et vous transmettez le delta time de la frame. La fonction :

  1. Suivi de l'état par personnage (prochain temps de clignement, phase actuelle ouverte/fermée, etc.) indexé par l'AnimInstance appelant
  2. Renvoie deux valeurs flottantes dans la plage 0..1, une pour l'œil gauche et une pour l'œil droit, représentant à quel point chaque œil est actuellement fermé
  3. Vous stockez ensuite ces valeurs dans des variables Blueprint et les alimentez dans le nœud Control Rig dans le graphe d'animation

Configuration

Deux étapes : ajoutez l’appel de clignement à votre Event Graph, puis transmettez les valeurs à un nœud Control Rig dans l’Anim Graph.

Dans votre Face Animation Blueprint (par exemple Face_AnimBP ou votre version dupliquée/copiée, voir Guide de configuration), ouvrez le Event Graph et ajoutez ce qui suit à Event Blueprint Update Animation :

  1. Appelez Update MetaHuman Auto Blink
  2. Connectez Delta Time X (depuis l’événement) à Delta Seconds
  3. (Facultatif) Configurez la structure Config. Les valeurs par défaut semblent déjà naturelles
  4. Promouvez Left Blink Value et Right Blink Value en variables Blueprint (par ex. LeftBlinkValue, RightBlinkValue)

Auto Blink Event Graph setup

Dans l'Anim Graph du même Animation Blueprint :

  1. Placez un nœud Control Rig qui pilotera les courbes de clignement. Son emplacement exact dépend de la combinaison ou non du clignement automatique avec d'autres animations faciales (synchro labiale, séquences personnalisées, etc.) :
    • Aucune autre animation faciale : placez le nœud Control Rig directement dans la chaîne principale, avant Output Pose.
    • Combinaison avec la synchronisation labiale et/ou d’autres animations faciales : connectez ce nœud Control Rig à un nœud Layered blend per bone au lieu de le placer directement dans la chaîne, voir l’astuce ci-dessous.
  2. Dans le panneau Détails du nœud, définissez Classe de Control Rig (Référence d'actif de Control Rig dans UE 5.8+) sur le Control Rig du visage de votre MetaHuman. Le chemin est généralement :
    • /All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig
    • Votre projet peut avoir un chemin différent selon la façon dont le MetaHuman a été importé.
  3. Dans le panneau Détails, développez la section Entrée et activez Utiliser une épingle pour :
    • CTRL_L_eye_blink
    • CTRL_R_eye_blink
  4. Connectez votre variable LeftBlinkValue à CTRL_L_eye_blink
  5. Connectez votre variable RightBlinkValue à CTRL_R_eye_blink

Auto Blink Anim Graph setup

L’emplacement compte.

Si vous ne combinez pas avec d'autres animations faciales, placez le nœud Control Rig après les nœuds de fusion de la synchronisation labiale (et tout autre nœud d'animation faciale) dans la chaîne afin que les valeurs de clignement ne soient pas écrasées. Si vous combinez avec la synchronisation labiale ou d'autres animations faciales, suivez le guide Combinaison avec des animations existantes et connectez ce nœud Control Rig à l'entrée Pose de base du nœud Layered blend per bone à la place ; le nœud de fusion en couches maintient les deux actifs, plutôt que l'un ne remplace simplement l'autre.

Configuration

Le nœud Update MetaHuman Auto Blink accepte une structure Config facultative. Les valeurs par défaut semblent déjà naturelles pour la plupart des personnages ; développez ci-dessous si vous souhaitez ajuster le comportement.

Propriétés de configuration

Timing

PropriétéDéfautDescription
Temps minimal entre les clignements2,0 sIntervalle minimal entre les clignements lorsque les yeux sont complètement ouverts.
Temps maximal entre les clignements4,0 sIntervalle maximal entre les clignements. L'intervalle réel est aléatoire entre le minimum et le maximum.
Temps de maintien fermé minimal0,04 sTemps minimal pendant lequel les yeux restent complètement fermés.
Temps de maintien fermé maximal0,08 sTemps maximal pendant lequel les yeux restent complètement fermés.

Interpolation

PropriétéDéfautDescription
Vitesse d'interpolation de fermeture35.0Vitesse de fermeture des yeux. Les humains ferment les yeux plus rapidement qu'ils ne les ouvrent, cette valeur est donc intentionnellement plus élevée que la vitesse d'ouverture.
Vitesse d'interpolation d'ouverture18.0Vitesse d'ouverture des yeux.
Seuil de fermeture0.97Valeur à laquelle le clignement est considéré comme « complètement fermé » et la phase de maintien commence.
Seuil d'ouverture0.02Valeur à laquelle le clignement est considéré comme « complètement ouvert » et le prochain clignement est planifié.

Divers

PropriétéDéfautDescription
Yeux indépendantsfalseLorsque true, les yeux gauche et droit clignent indépendamment avec des temporisations séparées. Lorsque false (par défaut), les deux yeux clignent parfaitement en synchronie.
bEnabled (broche de fonction)trueLorsque false, les yeux se rouvrent en douceur et le clignement est suspendu. Utile pour les cinématiques, le sommeil, la mort, etc.

Contrôle d’exécution

Vous pouvez également appeler Reset Auto Blink State pour effacer explicitement l’état interne d’un AnimInstance donné (par exemple, lors de la réapparition d’un personnage ou du changement d’états cinématiques).

Regard visé

Le helper Eyes Aim est un nœud d’Animation Blueprint (Runtime MetaHuman Eyes Aim) qui fait suivre aux yeux du personnage un emplacement dans l’espace monde, par exemple la caméra du joueur, un autre acteur, ou toute cible en mouvement. Il prend en charge le verrouillage du lacet et du tangage, le lissage, la protection anti-retournement lorsque la cible passe derrière la tête, ainsi que des micro-saccades optionnelles pour un réalisme accru.

Choisir un mode

Le nœud prend en charge deux modes, sélectionnés via le menu déroulant Mode dans le panneau Détails du nœud :

ModeCe qu'il piloteOù le placer
Courbes (par défaut)Les courbes de regard des yeux du Control Rig du visage (CTRL_expressions_eyeLook*)Dans l'Animation Blueprint du visage (par ex. Face_AnimBP), avant le nœud Control Rig
OsLes os FACIAL_L_Eye / FACIAL_R_Eye directement, en contournant le Control RigDans l'Animation Blueprint de post-traitement du visage (par ex. Face_PostProcess_AnimBP), après le nœud AnimNode_RigLogic

Mode Courbes est le mode par défaut recommandé. Il se compose proprement avec d’autres systèmes faciaux basés sur des courbes (synchro labiale, expressions, blendshapes ARKit, etc.), car les valeurs sont combinées via l’évaluation normale du Control Rig plutôt que de se disputer les transformations osseuses.

Lorsque le mode Courbes ne fonctionne pas, utilisez le mode Os.

Sur certaines variantes de MetaHuman (notamment les rigs plus anciens, y compris certains téléchargés via Quixel Bridge), les courbes de regard ne pilotent pas réellement les yeux. Le symptôme visible est que les yeux regardent vers le bas, avec les pupilles presque cachées, lorsque le nœud en mode Courbes est actif, quelle que soit la position de la cible.

Si vous voyez ceci, passez en mode Bones. Le mode Bones fait directement pivoter les os des yeux, il fonctionne donc sur toutes les variantes de MetaHuman, quelle que soit la façon dont le Control Rig est câblé. Consultez l’onglet Bones dans Configuration ci-dessous.

Configuration

La configuration par défaut. Le nœud se trouve dans le Face Animation Blueprint standard et pilote les courbes de regard des yeux du Control Rig du visage.

Deux étapes : ajoutez le nœud à votre Anim Graph, puis fournissez-lui une position cible depuis l'Event Graph.

1. Anim Graph : ajouter le nœud

Dans l'Anim Graph de votre Face Animation Blueprint :

  1. Ajoutez un nœud Runtime MetaHuman Eyes Aim
  2. Laissez Mode défini sur Curves dans le panneau Details
  3. Placez-le après toute autre logique faciale susceptible d'écrire dans les courbes de regard (lip sync, animations personnalisées, etc.), même principe que le nœud Auto Blink Control Rig
  4. Connectez la pose existante à Source Pose
  5. Connectez la sortie au nœud suivant de votre chaîne (ou Output Pose)
  6. Créez une variable Blueprint de type Vector (par ex. TargetWorldLocation) et connectez-la à la broche Target World Location du nœud. Vous mettrez à jour cette variable depuis l'Event Graph à l'étape suivante.

Eyes Aim Anim Graph setup

2. Graphique d'événements : entrez un emplacement cible

La broche Target World Location attend un FVector dans l’espace monde. Un cas courant consiste à faire regarder le MetaHuman vers la caméra du joueur. Dans Event Blueprint Update Animation :

  1. Obtenez le Player Camera Manager (Index du joueur 0)
  2. Vérifiez Is Valid
  3. Si valide, appelez Get Camera Location
  4. Stockez-le dans la variable Blueprint TargetWorldLocation

Eyes Aim, tracking the camera

Pour suivre un acteur arbitraire (PNJ, objet, point d'intérêt) à la place, récupérez la position de cet acteur à chaque frame et stockez-la dans la même variable. Pour un point de regard fixe, définissez Target World Location une fois ou comme constante dans le panneau Détails du nœud.

Configuration

Tous les paramètres sont exposés dans le panneau Détails du nœud Runtime MetaHuman Eyes Aim.

Viser et viser

Viser

PropriétéDéfautDescription
ModeCourbesSélectionne la manière dont les yeux sont pilotés. Voir Choix d'un mode.
Emplacement cible dans le monde(0,0,0)Point dans l'espace du monde que les yeux regardent. Exposé comme une broche par défaut.
bEnabledtrueLorsque false, les yeux reviennent en douceur vers l'avant et ignorent la cible. Exposé comme une broche par défaut.

Serrer

PropriétéDéfautDescription
Déviation Yaw Maximale35°Déviation horizontale maximale (yaw) par rapport à la direction avant de la tête. Limitée de 0 à 80.
Déviation Pitch Maximale25°Déviation verticale maximale (pitch) par rapport à la direction avant de la tête. Limitée de 0 à 80.
Anti-Retournement DerrièretrueEmpêche les yeux de se retourner lorsque la cible passe derrière la tête.
Lissage et saccades

Lissage

PropriétéDéfautDescription
Vitesse d'interpolation12.0Vitesse de lissage pour le mouvement des yeux. Plus élevé = plus vif, plus bas = plus languide.

Saccades

Les micro-saccades sont de minuscules déplacements de regard aléatoires que les yeux réels effectuent en permanence. Les ajouter évite l'apparence « d'œil mort » d'un suivi parfaitement fluide.

PropriétéDéfautDescription
Activer les saccadestrueActive ou désactive les micro-saccades.
Amplitude de lacet des saccades (degrés)1,5°Gigue horizontale maximale par saccade. Les petites valeurs (1–2°) semblent naturelles ; les valeurs plus grandes donnent un aspect saccadé.
Amplitude de tangage des saccades (degrés)1,0°Gigue verticale maximale par saccade. Généralement légèrement inférieure à l'amplitude de lacet.
Intervalle minimal entre les saccades0,6 sTemps minimal entre deux saccades.
Intervalle maximal entre les saccades2,5 sTemps maximal entre deux saccades. Des valeurs plus grandes donnent une impression plus calme, des valeurs plus petites une impression d'agitation.
Os (mode Os uniquement)
PropriétéDéfautDescription
Os de l'œil gaucheFACIAL_L_EyeNom de l'os de l'œil gauche. Correspond au squelette facial standard de MetaHuman.
Os de l'œil droitFACIAL_R_EyeNom de l'os de l'œil droit. Correspond au squelette facial standard de MetaHuman.
Calibration (mode Courbes uniquement)

Ces valeurs définissent comment les angles de l'espace de la tête correspondent aux valeurs de la courbe de regard des yeux du CR du visage MetaHuman. Les valeurs par défaut sont réglées pour le CR du visage MetaHuman standard et nécessitent rarement d'être modifiées.

PropriétéDéfautDescription
Courbe de degrés de lacet par unité30°Angle qui correspond à une valeur de courbe de 1,0 pour les courbes de regard en lacet.
Courbe de degrés de tangage par unité25°Angle qui correspond à une valeur de courbe de 1,0 pour les courbes de regard en tangage.

Combinaison avec la synchronisation labiale et d'autres animations

Les deux assistants sont conçus pour coexister avec les nœuds de synchronisation labiale du plugin et toute animation faciale personnalisée que vous possédez déjà.

  • Eyes Aim doit être placé après la synchronisation labiale et toute animation faciale personnalisée dans la même chaîne, afin que ses valeurs de regard ne soient pas écrasées en aval. Voir Choix d'un mode et Configuration ci-dessus.
  • Auto Blink utilise un nœud Layered blend per bone au lieu d'un simple placement linéaire, voir l'astuce Le placement compte ci-dessus pour connecter le nœud Control Rig à son entrée Base Pose.
Voir le schéma de flux d'exécution détaillé (Mode Courbes vs. Mode Os)

Selon que votre rig MetaHuman utilise le mode Courbes recommandé ou le mode Os de secours, l'emplacement de votre logique d'exécution changera. Développez le tableau ci-dessous pour voir l'ordre d'exécution exact pour les deux pipelines :

Le clignement automatique des yeux et la synchronisation labiale restent dans l’AnimBP facial standard dans les deux modes.

Pour plus de détails sur la superposition avec les animations du corps, voir Combinaison avec les animations existantes.

Notes et limitations

Ces assistants sont spécifiques à MetaHuman. Ils reposent sur les noms de courbes standard du Control Rig du visage MetaHuman (CTRL_L_eye_blink, CTRL_R_eye_blink, CTRL_expressions_eyeLook*) et sur les os oculaires standard (FACIAL_L_Eye, FACIAL_R_Eye). Ils ne sont pas destinés aux personnages personnalisés non-MetaHuman.

Besoin d'aide ?

Join our Discord
online · support

Pour toute demande de développement personnalisé, contactez [email protected].