Aller au contenu principal

Configuration du Plugin

Configuration du Modèle

Configuration Standard du Modèle

Le nœud Create Runtime Viseme Generator utilise des paramètres par défaut qui fonctionnent bien pour la plupart des scénarios. La configuration est gérée via les propriétés du nœud de mélange dans l'Animation Blueprint.

Pour les options de configuration de l'Animation Blueprint, consultez la section Configuration de la Synchronisation Labiale ci-dessous.

Configuration du Modèle Réaliste

Le nœud Create Realistic MetaHuman Lip Sync Generator accepte un paramètre Configuration facultatif qui vous permet de personnaliser le comportement du générateur :

Type de Modèle

Le paramètre Model Type détermine quelle version du modèle réaliste utiliser :

Type de ModèlePerformanceQualité VisuelleGestion du BruitCas d'Utilisation Recommandés
Highly Optimized (Par défaut)Performance la plus élevée, utilisation CPU la plus faibleBonne qualitéPeut montrer des mouvements de bouche notables avec du bruit de fond ou des sons non vocauxEnvironnements audio propres, scénarios critiques pour la performance
Semi-OptimizedBonne performance, utilisation CPU modéréeHaute qualitéMeilleure stabilité avec l'audio bruitéÉquilibre performance/qualité, conditions audio mixtes
OriginalAdapté à une utilisation en temps réel sur les CPU modernesQualité la plus élevéePlus stable avec le bruit de fond et les sons non vocauxProductions de haute qualité, environnements audio bruyants, lorsque la précision maximale est nécessaire

Paramètres de Performance

Intra Op Threads : Contrôle le nombre de threads utilisés pour les opérations de traitement interne du modèle.

  • 0 (Par défaut/Automatique) : Utilise la détection automatique (typiquement 1/4 des cœurs CPU disponibles, maximum 4)
  • 1-16 : Spécifiez manuellement le nombre de threads. Des valeurs plus élevées peuvent améliorer les performances sur les systèmes multi-cœurs mais utilisent plus de CPU

Inter Op Threads : Contrôle le nombre de threads utilisés pour l'exécution parallèle de différentes opérations du modèle.

  • 0 (Par défaut/Automatique) : Utilise la détection automatique (typiquement 1/8 des cœurs CPU disponibles, maximum 2)
  • 1-8 : Spécifiez manuellement le nombre de threads. Généralement gardé bas pour le traitement en temps réel

Taille des Blocs de Traitement

Le paramètre Processing Chunk Size détermine combien d'échantillons sont traités à chaque étape d'inférence. La valeur par défaut est 160 échantillons (10ms d'audio à 16kHz) :

  • Des valeurs plus petites fournissent des mises à jour plus fréquentes mais augmentent l'utilisation du CPU
  • Des valeurs plus grandes réduisent la charge CPU mais peuvent diminuer la réactivité de la synchronisation labiale
  • Il est recommandé d'utiliser des multiples de 160 pour un alignement optimal

Setting Processing Chunk Size

Configuration du Modèle avec Humeur

Le nœud Create Realistic MetaHuman Lip Sync With Mood Generator fournit des options de configuration supplémentaires au-delà du modèle réaliste de base :

Configuration de Base

Lookahead Ms : Délai de prévision en millisecondes pour une meilleure précision de la synchronisation labiale.

  • Par défaut : 80ms
  • Plage : 20ms à 200ms (doit être divisible par 20)
  • Des valeurs plus élevées offrent une meilleure synchronisation mais augmentent la latence

Output Type : Contrôle quels contrôles faciaux sont générés.

  • Full Face : Tous les 81 contrôles faciaux (sourcils, yeux, nez, bouche, mâchoire, langue)
  • Mouth Only : Seulement les contrôles liés à la bouche, la mâchoire et la langue

Performance Settings : Utilise les mêmes paramètres Intra Op Threads et Inter Op Threads que le modèle réaliste standard.

Paramètres d'Humeur

Humeurs Disponibles :

  • Neutral, Happy, Sad, Disgust, Anger, Surprise, Fear
  • Confident, Excited, Bored, Playful, Confused

Mood Intensity : Contrôle la force avec laquelle l'humeur affecte l'animation (0.0 à 1.0)

Contrôle de l'Humeur en Temps Réel

Vous pouvez ajuster les paramètres d'humeur pendant l'exécution à l'aide des fonctions suivantes :

  • Set Mood : Changer le type d'humeur actuel
  • Set Mood Intensity : Ajuster la force avec laquelle l'humeur affecte l'animation (0.0 à 1.0)
  • Set Lookahead Ms : Modifier le délai de prévision pour la synchronisation
  • Set Output Type : Basculer entre les contrôles Full Face et Mouth Only

Mood Configuration

Guide de Sélection de l'Humeur

Choisissez des humeurs appropriées en fonction de votre contenu :

HumeurIdéal PourPlage d'Intensité Typique
NeutralConversation générale, narration, état par défaut0.5 - 1.0
HappyContenu positif, dialogue joyeux, célébrations0.6 - 1.0
SadContenu mélancolique, scènes émotionnelles, moments sombres0.5 - 0.9
DisgustRéactions négatives, contenu dégoûtant, rejet0.4 - 0.8
AngerDialogue agressif, scènes de confrontation, frustration0.6 - 1.0
SurpriseÉvénements inattendus, révélations, réactions de choc0.7 - 1.0
FearSituations menaçantes, anxiété, dialogue nerveux0.5 - 0.9
ConfidentPrésentations professionnelles, dialogue de leadership, discours affirmé0.7 - 1.0
ExcitedContenu énergique, annonces, dialogue enthousiaste0.8 - 1.0
BoredContenu monotone, dialogue désintéressé, discours fatigué0.3 - 0.7
PlayfulConversation décontractée, humour, interactions légères0.6 - 0.9
ConfusedDialogue riche en questions, incertitude, perplexité0.4 - 0.8

Configuration de l'Animation Blueprint

Configuration de la Synchronisation Labiale

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

PropriétéPar défautDescription
Interpolation Speed25Contrôle la rapidité avec laquelle les mouvements des lèvres passent d'un visème à l'autre. 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.

Animation du 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 :

Configuration du rire

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

PropriétéPar défautDescription
Vitesse d'interpolation25Contrôle la rapidité avec laquelle les mouvements des lèvres passent d'une animation de rire à l'autre. Des valeurs plus élevées entraînent des transitions plus rapides et plus abruptes.
Temps de réinitialisation0.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.
Poids maximum du rire0.7Échelonne l'intensité maximale de l'animation du rire (0.0 - 1.0).

Remarque : La détection du rire n'est actuellement disponible qu'avec le Modèle Standard.

Combinaison avec des animations existantes

Pour appliquer la synchronisation labiale et le rire parallèlement à des animations corporelles existantes et à des animations faciales personnalisées 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 calques :
    • Ajoutez 1 élément au tableau Layer Setup
    • Ajoutez 3 éléments aux Branch Filters pour le calque, 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. Établissez 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 fusion en calques → pose Result finale

Layered Blend Per Bone

Sélection du jeu de morph targets

Le Modèle Standard utilise des assets de pose qui prennent en charge nativement toute convention de nommage de morph targets via la configuration d'asset de pose personnalisée. Aucune configuration supplémentaire n'est nécessaire.

Ajustement fin du comportement de la synchronisation labiale

Contrôle de la protrusion de la langue

Dans le modèle de synchronisation labiale standard, 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 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 un curve pin 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 (ex : 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 excessivement 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 un curve pin 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 (ex : 0.9 pour réduire le mouvement de la mâchoire de 10 %)

Ajustement fin spécifique à l'humeur

Pour les modèles avec humeur, vous pouvez ajuster finement des expressions émotionnelles spécifiques :

Contrôle des sourcils :

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - Sourcils intérieurs relevés
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - Sourcils extérieurs relevés
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - Sourcils abaissés

Contrôle des expressions des yeux :

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - Plissement des yeux
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - Rehaussement des joues

Comparaison et sélection des modèles

Choix entre les modèles

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

ConsidérationModèle StandardModèle RéalisteModèle Réaliste avec Humeur
Compatibilité des personnagesMetaHumans et tous les types de personnages personnalisésPersonnages MetaHumans (et ARKit)Personnages MetaHumans (et ARKit)
Qualité visuelleBonne synchronisation labiale avec des performances efficacesRéalisme amélioré avec des mouvements de bouche plus naturelsRéalisme amélioré avec des expressions émotionnelles
PerformancesOptimisé pour toutes les plateformes, y compris mobile/VRExigences en ressources plus élevéesExigences en ressources plus élevées
Fonctionnalités14 visèmes, détection du rire81 contrôles faciaux, 3 niveaux d'optimisation81 contrôles faciaux, 12 humeurs, sortie configurable
Support des plateformesWindows, Android, QuestWindows, Mac, iOS, Linux, Android, QuestWindows, Mac, iOS, Linux, Android, Quest
Cas d'utilisationApplications générales, jeux, VR/AR, mobileExpériences cinématiques, interactions en gros planNarration émotionnelle, interaction avancée avec les personnages

Compatibilité des versions du moteur

Problème de compatibilité UE 5.2

Si vous utilisez Unreal Engine 5.2, les Modèles Réalistes peuvent ne pas fonctionner correctement en raison d'un bug dans la bibliothèque de rééchantillonnage d'UE. Pour les utilisateurs d'UE 5.2 qui ont besoin d'une fonctionnalité de synchronisation labiale 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.

Recommandations de performance

  • Pour la plupart des projets, le Modèle Standard offre un excellent équilibre entre qualité et performance
  • Utilisez le Modèle Réaliste lorsque vous avez besoin de la plus haute fidélité visuelle pour les personnages MetaHuman
  • Utilisez le Modèle Réaliste avec Humeur lorsque le contrôle des expressions émotionnelles est important pour votre application
  • Prenez en compte les capacités de performance de votre plateforme cible lors du choix entre les modèles
  • Testez différents niveaux d'optimisation pour trouver le meilleur équilibre pour votre cas d'utilisation spécifique

Dépannage

Problèmes courants

Recréation du générateur pour les modèles réalistes : Pour un fonctionnement fiable et cohérent avec les Modèles Réalistes, il est recommandé de recréer le générateur chaque fois que vous souhaitez fournir de nouvelles données audio après une période d'inactivité. Ceci est dû au comportement du runtime ONNX qui peut faire cesser le fonctionnement de la synchronisation labiale lors de la réutilisation de générateurs après des périodes de silence.

Par exemple, vous pourriez recréer le générateur de synchronisation labiale à chaque début de lecture, comme chaque fois que vous appelez Play Sound 2D ou utilisez toute autre méthode pour démarrer la lecture d'une onde sonore et la synchronisation labiale :

Recreate Lip Sync Generator On Play Sound

Emplacement du plugin pour l'intégration Runtime Text To Speech : Lorsque vous utilisez Runtime MetaHuman Lip Sync avec Runtime Text To Speech (les deux plugins utilisent ONNX Runtime), vous pouvez rencontrer des problèmes dans les builds empaquetées si les plugins sont installés dans le dossier Marketplace du moteur. Pour corriger cela :

  1. Localisez les deux plugins dans votre dossier d'installation UE sous \Engine\Plugins\Marketplace (ex : C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace)
  2. Déplacez les dossiers RuntimeMetaHumanLipSync et RuntimeTextToSpeech vers le dossier Plugins de votre projet
  3. Si votre projet n'a pas de dossier Plugins, créez-en un dans le même répertoire que votre fichier .uproject
  4. Redémarrez l'Unreal Editor

Cela résout les problèmes de compatibilité qui peuvent survenir lorsque plusieurs plugins basés sur ONNX Runtime sont chargés depuis le répertoire Marketplace du moteur.

Configuration de l'empaquetage (Windows) : Si la synchronisation labiale ne fonctionne pas correctement dans votre projet empaqueté sur Windows, assurez-vous d'utiliser la configuration de build Shipping au lieu de Development. La configuration Development peut causer des problèmes avec le runtime ONNX des modèles réalistes dans les builds empaquetées.

Pour corriger cela :

  1. Dans vos Paramètres du projet → Packaging, définissez la Build Configuration sur Shipping
  2. Re-empaquetez votre projet

Shipping Configuration

Projets Blueprint uniquement

Dans certains projets Blueprint uniquement, Unreal Engine peut toujours construire en configuration Development même lorsque Shipping est sélectionné. Si cela se produit, convertissez votre projet en projet C++ en ajoutant au moins une classe C++ (elle peut être vide). Pour ce faire, allez dans Tools → New C++ Class dans le menu de l'éditeur UE et créez une classe vide. Cela forcera le projet à se construire correctement en configuration Shipping. Votre projet peut rester Blueprint uniquement en termes de fonctionnalité, la classe C++ est juste nécessaire pour une configuration de build correcte.

Dégradation de la réactivité de la synchronisation labiale : Si vous constatez que la synchronisation labiale devient moins réactive avec le temps lors de l'utilisation de Streaming Sound Wave ou Capturable Sound Wave, cela peut être causé par une accumulation de mémoire. Par défaut, la mémoire est réallouée chaque fois que de nouveaux audio sont ajoutés. Pour éviter ce problème, appelez la fonction ReleaseMemory périodiquement pour libérer la mémoire accumulée, par exemple toutes les 30 secondes environ.

Optimisation des performances :

  • Ajustez la taille des blocs de traitement pour les modèles réalistes en fonction de vos exigences de performance
  • Utilisez un nombre de threads approprié pour votre matériel cible
  • Envisagez d'utiliser le type de sortie Mouth Only pour les modèles avec humeur lorsque l'animation faciale complète n'est pas nécessaire