Aller au contenu principal

Configuration du Plugin

Configuration du Modèle

Recréez les générateurs de modèles réalistes pour chaque lecture

Pour un fonctionnement fiable avec les modèles Realistic et Mood-Enabled Realistic, recréez le générateur avant chaque nouvelle lecture audio plutôt que de le réutiliser sur de longues périodes de silence. Voir Recréation du Générateur dans la section Dépannage pour plus de détails.

Configuration du Modèle Standard

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 blending dans l'Animation Blueprint.

Pour les options de configuration de l'Animation Blueprint, consultez la section Configuration du Lip Sync ci-dessous.

Configuration du Modèle Realistic

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

Type de Modèle

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

Type de ModèlePerformanceQualité VisuelleGestion du BruitCas d'Utilisation Recommandés
Highly Optimized (Par défaut)Performances les plus élevées, 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 en performances
Semi-OptimizedBonnes performances, utilisation CPU modéréeHaute qualitéMeilleure stabilité avec un audio bruitéÉquilibre entre performances et qualité, conditions audio mixtes
OriginalAdapté à une utilisation en temps réel sur les CPU modernesQualité la plus élevéeLe plus stable avec le bruit de fond et les sons non vocauxProductions de haute qualité, environnements audio bruités, 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 (généralement 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 (généralement 1/8 des cœurs CPU disponibles, maximum 2)
  • 1-8 : Spécifiez manuellement le nombre de threads. Généralement maintenu bas pour un traitement en temps réel

Taille de Chunk de Traitement

La Processing Chunk Size détermine le nombre d'échantillons traités à chaque étape d'inférence. La valeur par défaut est de 160 échantillons (10 ms d'audio à 16 kHz) :

  • 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é du lip sync
  • Il est recommandé d'utiliser des multiples de 160 pour un alignement optimal

Réglage de la Taille de Chunk de Traitement

Configuration du Modèle Mood-Enabled

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 : Temporisation d'anticipation en millisecondes pour une meilleure précision du lip sync.

  • Par défaut : 80 ms
  • Plage : 20 ms à 200 ms (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 : Les 81 contrôles faciaux (sourcils, yeux, nez, bouche, mâchoire, langue)
  • Mouth Only : Uniquement les contrôles liés à la bouche, la mâchoire et la langue

Paramètres de Performance : 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 :

  • Neutre, Heureux, Triste, Dégoût, Colère, Surprise, Peur
  • Confiant, Excité, Ennuyé, Enjoué, Confus

Intensité de l'Humeur : Contrôle à quel point l'humeur affecte l'animation (0.0 à 1.0)

Contrôle d'Humeur en Temps Réel

Vous pouvez ajuster les paramètres d'humeur pendant l'exécution en utilisant les fonctions suivantes :

  • Set Mood : Change le type d'humeur actuel
  • Set Mood Intensity : Ajuste à quel point l'humeur affecte l'animation (0.0 à 1.0)
  • Set Lookahead Ms : Modifie la temporisation d'anticipation pour la synchronisation
  • Set Output Type : Bascule entre les contrôles Full Face et Mouth Only

Configuration d'Humeur

Guide de Sélection d'Humeur

Choisissez les 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éplaisant, rejet0.4 - 0.8
AngerDialogue agressif, scènes conflictuelles, 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 du Lip Sync

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

PropriétéPar DéfautDescription
Interpolation Speed25Contrôle la vitesse à laquelle les mouvements des lèvres transitionnent 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 le lip sync est réinitialisé. Ceci est utile pour empêcher le lip sync de continuer après l'arrêt de l'audio.

Animation de Rire

Vous pouvez également ajouter des animations de rire qui répondront dynamiquement aux rires détectés 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à le lip sync :
    • 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 la Output Pose
  4. Si vous utilisez uniquement le rire sans lip sync :
    • 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

Lorsque des rires sont détectés 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éDéfautDescription
Interpolation Speed25Contrôle la vitesse de transition des mouvements des lèvres 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.7Met à l'échelle l'intensité maximale de l'animation de rire (0.0 - 1.0).

Remarque : La détection du rire est actuellement disponible uniquement avec le Standard Model.

Combinaison avec des Animations Existantes

Pour appliquer le lip sync et le rire en parallèle 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 configuration des couches :
    • Ajoutez 1 élément au tableau Layer Setup
    • Ajoutez 3 éléments aux Branch Filters pour la couche, avec les Bone Names 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 au lip sync.
  4. Effectuez les connexions :
    • Animations existantes (telles que BodyPose) → Entrée Base Pose
    • Sortie d'animation faciale (provenant des nœuds de lip sync et/ou de rire) → Entrée Blend Poses 0
    • Nœud de mélange en couches → Pose Result finale

Layered Blend Per Bone

Sélection de l'Ensemble de Cibles de Morphing

Le Standard Model utilise des assets de pose qui prennent en charge intrinsèquement toute convention de nommage de cibles de morphing via la configuration d'asset de pose personnalisée. Aucune configuration supplémentaire n'est nécessaire.

Réglage Fin du Comportement du Lip Sync

Mise à l'Échelle de Courbes Spécifiques du Lip Sync

Vous pouvez atténuer (ou amplifier) les mouvements faciaux individuels produits par le lip sync à l'aide d'un nœud Modify Curve. Ceci est utile lorsqu'une courbe particulière semble trop prononcée pour votre contenu audio ou votre personnage.

Configuration :

  1. Après votre nœud de mélange de lip sync, ajoutez un nœud Modify Curve
  2. Faites un clic droit sur le nœud et sélectionnez Add Curve Pin, puis entrez le nom de la courbe que vous souhaitez mettre à l'échelle
  3. Définissez la propriété Apply Mode du nœud sur Scale
  4. Définissez le paramètre Value : les valeurs inférieures à 1.0 atténuent le mouvement, les valeurs supérieures à 1.0 l'amplifient (ex. 0.8 = réduction de 20%)

Courbes couramment mises à l'échelle :

Nom de la CourbeObjectifS'applique àAjustement Typique
CTRL_expressions_tongueOutProtrusion de la langue vers l'avant lors de certains phonèmesStandard model0.8 pour réduire la protrusion
CTRL_expressions_jawOpenAmplitude d'ouverture de la mâchoireRealistic models0.9 pour réduire le mouvement de la mâchoire

Vous pouvez ajouter plusieurs broches de courbe au même nœud Modify Curve pour mettre à l'échelle plusieurs courbes à la fois.

Réglage Fin Spécifique à l'Humeur

Pour les modèles compatibles avec l'humeur, vous pouvez affiner des expressions émotionnelles spécifiques :

Contrôle des Sourcils :

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - Sourcils levés intérieurs
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - Sourcils levés extérieurs
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - Sourcils baissés

Contrôle de l'Expression des Yeux :

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - Plissement des yeux
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - Élévation des joues

Comparaison et Sélection des Modèles

Choisir Entre les Modèles

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

ConsidérationStandard ModelRealistic ModelMood-Enabled Realistic Model
Compatibilité des PersonnagesMetaHumans et tous les types de personnages personnalisésPersonnages MetaHumans (et ARKit)Personnages MetaHumans (et ARKit)
Qualité VisuelleBon lip sync 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/VRBesoins en ressources plus élevésBesoins en ressources plus élevés
Fonctionnalités14 visèmes, détection du rire81 contrôles faciaux, 3 niveaux d'optimisation81 contrôles faciaux, 12 humeurs, sortie configurable
Support de PlateformeWindows, 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 Realistic Models peuvent 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 Standard Model à la place.

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

Recommandations de Performances

  • Pour la plupart des projets, le Standard Model offre un excellent équilibre entre qualité et performances
  • Utilisez le Realistic Model lorsque vous avez besoin de la plus haute fidélité visuelle pour les personnages MetaHuman
  • Utilisez le Mood-Enabled Realistic Model lorsque le contrôle de l'expression émotionnelle est important pour votre application
  • Tenez compte des capacités de performance de votre plateforme cible lorsque vous choisissez 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 Realistic Models : Pour un fonctionnement fiable et cohérent avec les Realistic Models, il est recommandé de recréer le générateur chaque fois que vous souhaitez introduire de nouvelles données audio après une période d'inactivité. Cela est dû au comportement du runtime ONNX qui peut entraîner l'arrêt du lip sync lors de la réutilisation des générateurs après des périodes de silence.

Par exemple, vous pouvez recréer le générateur de lip sync à 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 de l'onde sonore et le lip sync :

Recréer le Générateur de Lip Sync à la Lecture

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 packagés si les plugins sont installés dans le dossier Marketplace du moteur. Pour résoudre ce problème :

  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 deux 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 du Packaging (Windows) : Si le lip sync ne fonctionne pas correctement dans votre projet packagé 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 Realistic Models dans les builds packagés.

Pour résoudre ce problème :

  1. Dans vos Project Settings → Packaging, définissez la Build Configuration sur Shipping
  2. Reconditionnez votre projet

Configuration Shipping

Projets Uniquement Blueprint

Dans certains projets uniquement Blueprint, Unreal Engine peut encore compiler en configuration Development même lorsque Shipping est sélectionné. Si cela se produit, convertissez votre projet en un 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 à compiler correctement en configuration Shipping. Votre projet peut rester fonctionnellement uniquement Blueprint, la classe C++ est simplement nécessaire pour une configuration de build correcte.

Réactivité Dégradée du Lip Sync : Si vous constatez que le lip sync devient moins réactif au fil du temps lors de l'utilisation de Streaming Sound Wave ou Capturable Sound Wave, cela peut être dû à une accumulation de mémoire. Par défaut, la mémoire est réallouée chaque fois qu'un nouvel audio est ajouté. Pour éviter ce problème, appelez périodiquement la fonction ReleaseMemory pour libérer la mémoire accumulée, par exemple toutes les 30 secondes.

Optimisation des Performances :

  • Ajustez la taille du bloc de traitement (Processing Chunk Size) pour les Realistic Models en fonction de vos besoins de performance
  • Utilisez des nombres de threads appropriés pour votre matériel cible
  • Envisagez d'utiliser le type de sortie Mouth Only pour les modèles compatibles avec l'humeur lorsque l'animation faciale complète n'est pas nécessaire