Aller au contenu principal

Aides d'animation des yeux

En plus du lip sync, le plugin Runtime MetaHuman Lip Sync inclut deux utilitaires facultatifs pour animer les yeux des MetaHuman :

  • Auto Blink : un assistant 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 monde

Ces fonctionnalités sont totalement indépendantes du lip sync et peuvent être utilisées seules, ensemble, ou combinées avec les nœuds de lip sync. Elles sont conçues comme des assistants 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
Eyes Aim : suivi de la caméra du joueur
Eyes Aim : suivre 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 le créer vous-même, par exemple, lorsque vos séquences d'animation n'incluent 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 des animations faciales existantes pour ajouter des éléments manquants, comme des clignements sur une séquence qui n'anime que la bouche.

L'assistant de clignement automatique 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 image, vous appelez Update MetaHuman Auto Blink depuis le Event Graph de votre Face Animation Blueprint et transmettez le delta time de l'image. La fonction :

  1. Suit l'état par personnage (prochain temps de clignement, phase ouverte/fermée actuelle, etc.) indexé par l'AnimInstance appelante
  2. Renvoie deux valeurs flottantes dans la plage 0..1, une pour l'œil gauche et une pour l'œil droit, représentant le degré de fermeture actuel de chaque œil
  3. Vous stockez ensuite ces valeurs dans des variables Blueprint et les injectez dans le nœud Control Rig du 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 Blueprint d'Animation Faciale (par exemple Face_AnimBP ou votre version dupliquée/copiée, voir Guide de Configuration), ouvrez le Graphe d'Événements et ajoutez ce qui suit à Événement Mise à Jour de l'Animation du Blueprint :

  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 exemple LeftBlinkValue, RightBlinkValue)

Auto Blink Event Graph setup

Dans le Anim Graph du même Animation Blueprint :

  1. Placez un nœud Control Rig après toute autre logique faciale susceptible d'écrire sur les courbes de clignement des yeux (par exemple, après Blend Runtime MetaHuman Lip Sync et toute couche d'animation faciale personnalisée)
  2. Dans le panneau Détails du nœud, définissez Classe du Control Rig (Référence d'actif Control Rig dans UE 5.8+) sur votre Control Rig de visage MetaHuman. Le chemin est généralement :
    • /All/Game/MetaHumans/Common/Face/Face_ControlBoard_CtrlRig
    • Le chemin de votre projet peut être 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 la broche 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

Le placement est important.

Placez le nœud Control Rig après les nœuds de fusion du lip sync (et tout autre nœud d'animation faciale) afin que les valeurs de clignement ne soient pas écrasées par une autre logique.

Configuration

Le nœud Update MetaHuman Auto Blink accepte une structure Config optionnelle. 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 minimum entre les clignements2,0 sIntervalle minimum entre les clignements lorsque les yeux sont complètement ouverts.
Temps maximum entre les clignements4,0 sIntervalle maximum entre les clignements. L'intervalle réel est randomisé entre le minimum et le maximum.
Temps de maintien fermé minimum0,04 sDurée minimale pendant laquelle les yeux restent complètement fermés.
Temps de maintien fermé maximum0,08 sDurée maximale pendant laquelle les yeux restent complètement fermés.

Interpolation

PropriétéDéfautDescription
Vitesse d'interpolation serrée35.0Vitesse lors de la fermeture des yeux. Les humains ferment les yeux plus vite qu'ils ne les ouvrent, donc cette valeur est intentionnellement plus élevée que la vitesse d'ouverture.
Vitesse d'interpolation ouverte18.0Vitesse lors de l'ouverture des yeux.
Seuil fermé0.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, l'œil gauche et l'œil droit clignent indépendamment avec des temporisations distinctes. Lorsque false (par défaut), les deux yeux clignent parfaitement en synchronisation.
bEnabled (broche de fonction)trueLorsque false, les yeux se rouvrent progressivement et le clignement s'arrête. Utile pour les cinématiques, le sommeil, la mort, etc.

Contrôle en cours 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).

Aimement des yeux

Le helper Eyes Aim est un nœud d'Animation Blueprint (Runtime MetaHuman Eyes Aim) qui permet aux yeux du personnage de suivre 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/tangage, le lissage, la protection anti-retournement lorsque la cible passe derrière la tête, et des micro-saccades optionnelles pour un réalisme accru.

Choisir un mode

Le nœud prend en charge deux modes, sélectionnés via la liste déroulante 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 facial (CTRL_expressions_eyeLook*)Dans le Face Animation Blueprint (par exemple Face_AnimBP), avant le nœud Control Rig
OsLes os FACIAL_L_Eye / FACIAL_R_Eye directement, en contournant le Control Rig.Dans l'Animation Blueprint de Post-Process Facial (par exemple Face_PostProcess_AnimBP), après le nœud AnimNode_RigLogic

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

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, 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 Os. Le mode Os fait directement pivoter les os des yeux, il fonctionne donc sur toutes les variantes MetaHuman, quelle que soit la façon dont le Control Rig est câblé. Voir l'onglet Os dans Configuration ci-dessous.

Configuration

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

Deux étapes : ajoutez le nœud à votre graphe d’animation, puis fournissez-lui un emplacement cible depuis le graphe d’événements.

1. Anim Graph : ajoutez le nœud

Dans votre Anim Graph du Blueprint d'Animation Faciale :

  1. Ajoutez un nœud Runtime MetaHuman Eyes Aim
  2. Laissez le Mode réglé sur Courbes dans le panneau Détails
  3. Placez-le après toute autre logique faciale pouvant écrire dans les courbes de regard oculaire (synchronisation labiale, animations personnalisées, etc.), même principe que le nœud Auto Blink Control Rig
  4. Connectez la pose existante à Pose source
  5. Connectez la sortie au nœud suivant de votre chaîne (ou Pose de sortie)
  6. Créez une variable Blueprint de type Vector (par exemple EmplacementCibleMonde) et connectez-la à la broche Emplacement cible dans le monde du nœud. Vous mettrez à jour cette variable depuis le graphe d'événements à l'étape suivante.

Eyes Aim Anim Graph setup

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

La broche Emplacement cible dans le monde attend un FVector en espace monde. Un cas courant consiste à faire regarder le MetaHuman vers la caméra du joueur. Dans Event Blueprint Update Animation :

  1. Obtenez le Gestionnaire de caméra du joueur (Index du joueur 0)
  2. Vérifiez Est valide
  3. Si valide, appelez Obtenir l'emplacement de la caméra
  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, obtenez la position de cet acteur à chaque image et stockez-la dans la même variable. Pour un point de regard fixe, définissez Emplacement cible dans le monde 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.

Aim & Clamp

Aim

PropriétéDéfautDescription
ModeCourbesSélectionne la façon dont les yeux sont animés. Voir Choix d’un mode.
Emplacement du monde cible(0,0,0)Point dans l’espace monde vers lequel les yeux regardent. Exposé en tant que broche par défaut.
bEnabledtrueLorsque false, les yeux reviennent doucement vers l'avant et ignorent la cible. Exposé en tant que broche par défaut.

Clamp

PropriétéDéfautDescription
Degrés de lacet maximum35°Déviation horizontale maximale (lacet) par rapport à la direction avant de la tête. Limitée de 0 à 80.
Degrés de tangage maximum25°Déviation verticale maximale (tangage) par rapport à la direction avant de la tête. Limitée de 0 à 80.
Anti Flip BehindtrueEmpê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ée = plus rapide, plus basse = plus languide.

Saccades

Les micro-saccades sont de minuscules mouvements de regard aléatoires que les yeux réels effectuent constamment. Les ajouter évite l'aspect « œil mort » d'un suivi parfaitement lisse.

PropriétéDéfautDescription
Activer les saccadestrueActive ou désactive les micro-saccades.
Amplitude de lacet de la saccade1,5°Gigue horizontale maximale par saccade. Les petites valeurs (1–2°) semblent naturelles ; les valeurs plus élevées donnent un aspect saccadé.
Amplitude de tangage de la saccade1,0°Gigue verticale maximale par saccade. Généralement légèrement inférieure à l'amplitude de lacet.
Intervalle minimum de saccade0,6 sTemps minimum entre les saccades.
Intervalle de saccade maximal2,5 sTemps maximum entre les saccades. Des valeurs plus élevées donnent une sensation plus calme, des valeurs plus faibles donnent une sensation 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 sont mappés 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à. La règle générale : placez les nœuds Eyes Aim et Control Rig (clignement automatique) après la synchronisation labiale et toute animation faciale personnalisée, afin que leurs valeurs ne soient pas écrasées en aval.

Voir le diagramme 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 repli, 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 :

Les clignements automatiques et la synchronisation labiale restent dans l'AnimBP facial standard dans les deux modes.

Pour plus de détails sur la superposition avec des animations corporelles, voir Combinaison avec des animations existantes.

Notes et Limitations

Ces assistants sont spécifiques aux MetaHuman. Ils reposent sur les noms de courbes standard du Control Rig facial MetaHuman (CTRL_L_eye_blink, CTRL_R_eye_blink, CTRL_expressions_eyeLook*) et 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 les demandes de développement personnalisé, contactez [email protected].