Aller au contenu principal

Comment utiliser le plugin

Ce guide vous accompagne dans le processus de configuration de Runtime MetaHuman Lip Sync pour vos personnages MetaHuman.

Note : Runtime MetaHuman Lip Sync fonctionne avec les MetaHuman et les personnages personnalisés. Le plugin prend en charge divers types de personnages, notamment :

  • Les personnages commerciaux populaires (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, etc.)
  • Les personnages avec des blendshapes basés sur FACS
  • Les modèles utilisant les standards de blendshape ARKit
  • Les personnages avec des ensembles de phonèmes Preston Blair
  • Les systèmes de phonèmes 3ds Max
  • Tout personnage avec des morph targets personnalisés pour les expressions faciales

Pour des instructions détaillées sur la configuration des personnages personnalisés, y compris les références de mappage de visèmes pour tous les standards ci-dessus, consultez le Guide de configuration des personnages personnalisés.

Prérequis

Avant de commencer, assurez-vous que :

  1. Le plugin MetaHuman est activé dans votre projet (Remarque : À partir de l'UE 5.6, cette étape n'est plus nécessaire car la fonctionnalité MetaHuman est intégrée directement dans le moteur)
  2. Vous avez au moins un personnage MetaHuman téléchargé et disponible dans votre projet
  3. Le plugin Runtime MetaHuman Lip Sync est installé

Plugin d'extension de modèle standard

Si vous prévoyez d'utiliser le Modèle Standard (Plus Rapide), vous devrez installer le plugin d'extension :

  1. Téléchargez le plugin d'extension Standard Lip Sync Extension depuis Google Drive
  2. Extrayez le dossier de l'archive téléchargée dans le dossier Plugins de votre projet (créez ce dossier s'il n'existe pas)
  3. Assurez-vous que votre projet est configuré comme un projet C++ (même si vous n'avez pas de code C++)
  4. Recompilez votre projet
remarque
  • Cette extension est uniquement requise si vous souhaitez utiliser le Modèle Standard. Si vous n'avez besoin que du Modèle Réaliste, vous pouvez ignorer cette étape.
  • Pour plus d'informations sur la façon de construire des plugins manuellement, consultez le tutoriel Building Plugins

Plugins supplémentaires

  • Si vous prévoyez d'utiliser la capture audio (par exemple, entrée microphone), installez le plugin Runtime Audio Importer.
  • Si vous prévoyez d'utiliser la fonctionnalité de synthèse vocale avec mes plugins (vous pouvez avoir votre propre TTS personnalisé ou une autre entrée audio), alors en plus du plugin Runtime Audio Importer, installez également :

Processus de configuration

Étape 1 : Localiser et modifier le Blueprint d'animation faciale

Vous devez modifier un Animation Blueprint qui sera utilisé pour les animations faciales de votre personnage MetaHuman. L'Animation Blueprint facial par défaut de MetaHuman se trouve à l'emplacement :

Content/MetaHumans/Common/Face/Face_AnimBP

Face Animation Blueprint

Vous avez plusieurs options pour implémenter la fonctionnalité de lip sync :

Ouvrez directement le Face_AnimBP par défaut et effectuez vos modifications. Tous les changements affecteront tous les personnages MetaHuman utilisant ce Animation Blueprint.

Note : Cette approche est pratique mais impactera tous les personnages utilisant le Animation Blueprint par défaut.

Important : Le blend de Runtime MetaHuman Lip Sync peut être implémenté dans n'importe quel asset Animation Blueprint qui a accès à une pose contenant les os faciaux présents dans le Face_Archetype_Skeleton par défaut des MetaHumans. Vous n'êtes pas limité aux options ci-dessus - ce ne sont que des approches d'implémentation courantes.

Étape 2 : Configuration du graphe d'événements

Ouvrez votre Animation Blueprint du visage et passez au Event Graph. Vous devrez créer un générateur qui traitera les données audio et générera l'animation de lip sync.

  1. Ajoutez le nœud Event Blueprint Begin Play s'il n'existe pas déjà
  2. Ajoutez le nœud Create Runtime Viseme Generator et connectez-le à l'événement Begin Play
  3. Sauvegardez la sortie en tant que variable (par exemple "VisemeGenerator") pour l'utiliser dans d'autres parties du graphe

Création du générateur de visèmes runtime

Étape 3 : Configurer le traitement de l'entrée audio

Vous devez configurer une méthode pour traiter l'entrée audio. Il existe plusieurs façons de procéder selon votre source audio.

Cette approche effectue la synchronisation labiale en temps réel pendant la prise de parole au microphone :

  1. Créez une Capturable Sound Wave en utilisant Runtime Audio Importer
  2. Avant de commencer la capture audio, liez-vous au délégué OnPopulateAudioData
  3. Dans la fonction liée, appelez ProcessAudioData depuis votre Runtime Viseme Generator
  4. Démarrez la capture audio depuis le microphone

Nœuds copiables.

Lip Sync During Audio Capture

Étape 4 : Configuration du Anim Graph

Après avoir configuré le Event Graph, passez au Anim Graph pour connecter le générateur à l'animation du personnage :

Synchronisation Labiale

  1. Localisez la pose qui contient le visage MetaHuman (généralement à partir de Use cached pose 'Body Pose')
  2. Ajoutez le nœud Blend Runtime MetaHuman Lip Sync
  3. Connectez la pose à la Source Pose du nœud Blend Runtime MetaHuman Lip Sync
  4. Connectez votre variable RuntimeVisemeGenerator à la broche Viseme Generator
  5. Connectez la sortie du nœud Blend Runtime MetaHuman Lip Sync à la broche Result de l'Output Pose

Blend Runtime MetaHuman Lip Sync

Lorsqu'une synchronisation labiale est détectée dans l'audio, votre personnage s'animera dynamiquement en conséquence :

Lip Sync

Animation de Rire

Vous pouvez également ajouter des animations de rire qui répondront dynamiquement au rire détecté dans l'audio :

  1. Ajoutez le nœud Blend Runtime MetaHuman Laughter
  2. Connectez votre variable RuntimeVisemeGenerator à la broche Viseme Generator
  3. Si vous utilisez déjà la synchronisation labiale :
    • Connectez la sortie du nœud Blend Runtime MetaHuman Lip Sync à la Source Pose du nœud Blend Runtime MetaHuman Laughter
    • Connectez la sortie du nœud Blend Runtime MetaHuman Laughter à la broche Result de l'Output Pose
  4. Si vous utilisez uniquement le rire sans synchronisation labiale :
    • Connectez votre pose source directement à la Source Pose du nœud Blend Runtime MetaHuman Laughter
    • Connectez la sortie à la broche Result

Blend Runtime MetaHuman Laughter

Lorsqu'un rire est détecté dans l'audio, votre personnage s'animera dynamiquement en conséquence :

Laughter

Combinaison avec les Animations Faciales et Corporelles

Pour appliquer la synchronisation labiale et le rire parallèlement aux animations corporelles existantes et aux animations faciales personnalisées (telles que les expressions, les émotions ou tout autre mouvement facial) sans les écraser :

  1. Ajoutez un nœud Layered blend per bone entre vos animations corporelles et la sortie finale. Assurez-vous que Use Attached Parent est vrai.
  2. Configurez la structure des couches :
    • Ajoutez 1 élément au tableau Layer Setup
    • Ajoutez 3 éléments aux Branch Filters pour la couche, avec les Bone Name suivants :
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. Important pour les animations faciales personnalisées : Dans Curve Blend Option, sélectionnez "Use Max Value". Cela permet aux animations faciales personnalisées (expressions, émotions, etc.) d'être correctement superposées à la synchronisation labiale.
  4. Effectuez les connexions :
    • Animations existantes (comme BodyPose) → entrée Base Pose
    • Sortie d'animation faciale (des nœuds de synchronisation labiale et/ou de rire) → entrée Blend Poses 0
    • Nœud de mélange en couches → pose Result finale

Layered Blend Per Bone

Pourquoi cela fonctionne : Les filtres de branche isolent les os d'animation faciale, permettant à la synchronisation labiale et au rire de se mélanger exclusivement avec les mouvements faciaux tout en préservant les animations corporelles originales. L'option de mélange de courbes "Use Max Value" prend la valeur maximale de chaque courbe plutôt que de les mélanger de manière additive, permettant aux animations faciales personnalisées (comme les expressions et les émotions) d'être correctement combinées avec la synchronisation labiale sans conflits. Cela correspond à la structure du rig facial MetaHuman pour une intégration naturelle.

Note : Les fonctionnalités de synchronisation labiale et de rire sont conçues pour fonctionner de manière non destructive avec votre configuration d'animation existante. Elles n'affectent que les os faciaux spécifiques nécessaires au mouvement de la bouche, laissant intactes les autres animations faciales. Cela signifie que vous pouvez les intégrer en toute sécurité à n'importe quel point de votre chaîne d'animation - soit avant d'autres animations faciales (permettant à ces animations d'écraser la synchronisation labiale/le rire) soit après elles (laissant la synchronisation labiale/le rire se mélanger par-dessus vos animations existantes). Cette flexibilité vous permet de combiner la synchronisation labiale et le rire avec le clignement des yeux, les mouvements des sourcils, les expressions émotionnelles et d'autres animations faciales sans conflits.

Ajustement fin du comportement de la synchronisation labiale

Après avoir configuré la fonctionnalité de base de la synchronisation labiale, vous pouvez vouloir affiner des aspects spécifiques du mouvement de la bouche pour mieux correspondre aux exigences de votre projet.

Contrôle de la protrusion de la langue

Dans le modèle standard de synchronisation labiale, vous pouvez remarquer un mouvement excessif de la langue vers l'avant pendant certains phonèmes. Pour contrôler la protrusion de la langue :

  1. Après votre nœud Blend Runtime MetaHuman Lip Sync ou Blend Realistic MetaHuman Lip Sync, ajoutez un nœud Modify Curve
  2. Faites un clic droit sur le nœud Modify Curve et sélectionnez Add Curve Pin
  3. Ajoutez une broche de courbe avec le nom CTRL_expressions_tongueOut
  4. Définissez la propriété Apply Mode du nœud sur Scale
  5. Ajustez le paramètre Value pour contrôler l'extension de la langue (par exemple, 0.8 pour réduire la protrusion de 20%)

Contrôle de l'Ouverture de la Mâchoire

La synchronisation labiale réaliste peut produire des mouvements de mâchoire trop réactifs selon votre contenu audio et vos exigences visuelles. Pour ajuster l'intensité de l'ouverture de la mâchoire :

  1. Après votre nœud de fusion de synchronisation labiale, ajoutez un nœud Modify Curve
  2. Faites un clic droit sur le nœud Modify Curve et sélectionnez Add Curve Pin
  3. Ajoutez une broche de courbe avec le nom CTRL_expressions_jawOpen
  4. Définissez la propriété Apply Mode du nœud sur Scale
  5. Ajustez le paramètre Value pour contrôler l'amplitude d'ouverture de la mâchoire (par exemple, 0.9 pour réduire le mouvement de la mâchoire de 10%)

Configuration

Configuration de la Synchronisation Labiale

Le nœud Blend Runtime MetaHuman Lip Sync a des options de configuration dans son panneau de propriétés :

PropriétéPar défautDescription
Interpolation Speed25Contrôle la rapidité avec laquelle les mouvements labiaux transitent entre les visèmes. Des valeurs plus élevées entraînent des transitions plus rapides et plus abruptes.
Reset Time0.2La durée en secondes après laquelle la synchronisation labiale est réinitialisée. Ceci est utile pour empêcher la synchronisation labiale de continuer après l'arrêt de l'audio.

Configuration du Rire

Le nœud Blend Runtime MetaHuman Laughter a ses propres options de configuration :

PropriétéPar défautDescription
Interpolation Speed25Contrôle la rapidité avec laquelle les mouvements labiaux transitent entre les animations de rire. Des valeurs plus élevées entraînent des transitions plus rapides et plus abruptes.
Reset Time0.2La durée en secondes après laquelle le rire est réinitialisé. Ceci est utile pour empêcher le rire de continuer après l'arrêt de l'audio.
Max Laughter Weight0.7Échelle l'intensité maximale de l'animation du rire (0.0 - 1.0).

Choix Entre les Modèles de Synchronisation Labiale

Lorsque vous décidez quel modèle de lip sync utiliser pour votre projet, prenez en compte ces facteurs :

ConsidérationModèle StandardModèle Réaliste
Compatibilité des PersonnagesMetaHumans et tous les types de personnages personnalisésMetaHumans uniquement
Qualité VisuelleBon lip sync avec des performances efficacesRéalisme amélioré avec des mouvements de bouche plus naturels
PerformancesOptimisé pour toutes les plateformes, y compris mobile/VRBesoins en ressources légèrement plus élevés
Cas d'UtilisationApplications générales, jeux, VR/AR, mobileExpériences cinématiques, interactions rapprochées avec les personnages

Compatibilité des Versions du Moteur

Problème de Compatibilité UE 5.2

Si vous utilisez Unreal Engine 5.2, le Modèle Réaliste pourrait ne pas fonctionner correctement en raison d'un bogue dans la bibliothèque de rééchantillonnage d'UE. Pour les utilisateurs d'UE 5.2 qui ont besoin d'une fonctionnalité de lip sync fiable, veuillez utiliser le Modèle Standard à la place.

Ce problème est spécifique à UE 5.2 et n'affecte pas les autres versions du moteur.

Pour la plupart des projets, le Modèle Standard offre un excellent équilibre entre qualité et performances tout en prenant en charge la plus large gamme de types de personnages. Le Modèle Réaliste est idéal lorsque vous avez besoin de la plus haute fidélité visuelle spécifiquement pour les personnages MetaHuman dans des contextes où la surcharge de performance est moins critique.