Aller au contenu principal

Configuration du plugin

Configuration du modèle​

Recréer des 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 pendant de longs silences. Consultez Recréation du générateur dans la section Dépannage pour plus de détails.

Configuration standard du modèle​

Le nœud Create Runtime Viseme Generator utilise des paramètres par défaut qui fonctionnent bien dans la plupart des scénarios. La configuration s'effectue via les propriétés du nœud de blending de 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 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
Hautement optimisé (par défaut)Performance maximale, utilisation CPU la plus faibleBonne qualitéPeut présenter des mouvements de bouche perceptibles en présence de bruit de fond ou de sons non vocauxEnvironnements audio propres, scénarios critiques en termes de performance
Semi-optimiséBonne performance, utilisation CPU modéréeHaute qualitéMeilleure stabilité avec un audio bruitéÉquilibre entre performance et qualité, conditions audio mixtes
OriginalAdapté à une utilisation en temps réel sur les CPU modernesQualité maximalePlus stable avec le bruit de fond et les sons non vocauxProductions de haute qualité, environnements audio bruités, lorsque une précision maximale est requise

Paramètres de performance​

Threads intra-op : 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 multicœurs mais consomment plus de CPU

Threads Inter Op : Contrôle le nombre de threads utilisés pour l'exécution parallèle des 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 le traitement en temps réel

Taille de traitement des blocs​

La taille de bloc de traitement 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 du CPU mais peuvent diminuer la réactivité du lip sync
  • Il est recommandé d'utiliser des multiples de 160 pour un alignement optimal

Setting Processing Chunk Size

Configuration du modèle avec gestion de l'humeur​

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

Configuration de base​

Lookahead Ms : Durée d'anticipation en millisecondes pour une meilleure précision de synchronisation labiale.

  • 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

Type de sortie : Détermine quels contrôles faciaux sont générés.

  • Visage complet : les 81 contrôles faciaux (sourcils, yeux, nez, bouche, mâchoire, langue)
  • Bouche uniquement : 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​

Ambiances disponibles :

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

Intensité de l'humeur : 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 :

  • Définir l'humeur : Modifier le type d'humeur actuel
  • Définir l'intensité de l'humeur : Ajuster la force avec laquelle l'humeur affecte l'animation (0.0 à 1.0)
  • Définir l'anticipation en ms : Modifier le timing d'anticipation pour la synchronisation
  • Définir le type de sortie : Basculer entre les contrôles Full Face et Mouth Only

Mood Configuration

Guide de sélection de l'humeur​

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

MoodIdéal pourPlage d'intensité typique
NeutreConversation générale, narration, état par défaut0.5 - 1.0
JoieContenu positif, dialogue joyeux, célébrations0.6 - 1.0
TristesseContenu mélancolique, scènes émotionnelles, moments sombres0.5 - 0.9
DégoûtRéactions négatives, contenu désagréable, rejet0.4 - 0.8
ColèreDialogue agressif, scènes conflictuelles, frustration0.6 - 1.0
SurpriseÉvénements inattendus, révélations, réactions de choc0.7 - 1.0
PeurSituations menaçantes, anxiété, dialogue nerveux0.5 - 0.9
ConfiancePrésentations professionnelles, dialogue de leadership, discours affirmé0.7 - 1.0
ExcitationContenu énergique, annonces, dialogue enthousiaste0.8 - 1.0
EnnuiContenu monotone, dialogue désintéressé, discours fatigué0.3 - 0.7
EnjouementConversation décontractée, humour, interactions légères0.6 - 0.9
ConfusionDialogue 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
Vitesse d'interpolation25Contrôle la rapidité avec laquelle les mouvements des lèvres passent d'un visème à l'autre. Des valeurs plus élevées produisent des transitions plus rapides et plus abruptes.
Temps de réinitialisation0.2La durée en secondes après laquelle la synchronisation labiale est réinitialisée. Cela est utile pour empêcher la synchronisation labiale de continuer après l'arrêt de l'audio.

Animation de rire​

Vous pouvez également ajouter des animations de rire qui réagiront 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 au 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 dispose de ses propres options de configuration :

PropriétéPar défautDescription
Vitesse d'interpolation25Contrôle la rapidité avec laquelle les mouvements des lèvres effectuent la transition entre les animations de rire. Des valeurs plus élevées produisent des transitions plus rapides et plus abruptes.
Temps de réinitialisation0.2La durée en secondes après laquelle le rire est réinitialisé. Cela est utile pour empêcher le rire de continuer après l'arrêt de l'audio.
Poids maximal du rire0.7Met à l'échelle l'intensité maximale de l'animation de rire (0.0 - 1.0).

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

Combinaison avec des animations existantes​

Tutoriel vidéo

Vous préférez regarder plutôt que lire ? Consultez le tutoriel vidéo qui couvre exactement cette configuration.

Pour appliquer le lip sync et le rire en parallèle des animations corporelles existantes et des animations faciales personnalisées sans les écraser :

Animations du corps

Cette configuration s'applique à l'Animation Blueprint du visage, car le lip sync ne fait pas partie de l'Animation Blueprint du corps. Pour les animations personnalisées du corps (par exemple le torse, les bras et les autres mouvements corporels), connectez simplement votre séquence d'animation (via un Sequence Player) directement à la pose de sortie dans l'Animation Blueprint du corps. Aucune configuration supplémentaire n'est nécessaire à cet endroit.

  1. Ajoutez un nœud Layered blend per bone entre vos animations de corps et la sortie finale.
  2. Configurez la configuration des couches :
    • Ajoutez 1 élément au tableau Layer Setup
    • Ajoutez 3 éléments aux Branch Filters de 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 l'option 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 :
    • Votre animation personnalisée (généralement un Sequence Player avec l'asset de séquence d'animation souhaité) → entrée Base Pose
    • Sortie d'animation faciale (depuis les nœuds de lip sync et/ou de rire) → entrée Blend Poses 0
    • Nœud de mélange par couches → pose Result finale

Layered Blend Per Bone

Sélection de l'ensemble de cibles de morphing​

Le Standard Model utilise des pose assets qui prennent en charge nativement toute convention de nommage de morph target grâce à la configuration personnalisée du pose asset. Aucune configuration supplémentaire n'est nécessaire.

Réglage fin du comportement de la synchronisation labiale​

Mise à l'échelle de courbes de lip sync spécifiques​

Vous pouvez atténuer (ou amplifier) les mouvements faciaux individuels produits par la synchronisation labiale à l'aide d'un nœud Modify Curve. Cela 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 blend 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 saisissez 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 (par 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 pendant certains phonèmesModèle standard0.8 pour réduire la protrusion
CTRL_expressions_jawOpenPlage d'ouverture de la mâchoireModèles réalistes0.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 les humeurs, vous pouvez affiner des expressions émotionnelles spécifiques :

Contrôle des sourcils :

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - Élévation du sourcil interne
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - Élévation du sourcil externe
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - Abaissement des sourcils

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érationModèle standardModèle réalisteModèle réaliste avec gestion des humeurs
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
Prise en charge 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ématographiques, interactions en gros planNarration émotionnelle, interaction avancée avec les personnages

Compatibilité des versions du moteur​

Problème de compatibilité avec 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 de UE. Pour les utilisateurs de 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.

Recommandations de performance​

  • 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 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é. Cela est dû au comportement du runtime ONNX qui peut empêcher la synchronisation labiale de fonctionner 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émarrage de lecture, comme lorsque vous appelez Play Sound 2D ou utilisez toute autre méthode pour lancer la lecture d'une onde sonore et le lip sync :

Recreate Lip Sync Generator On Play Sound

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

  1. Localisez les deux plugins dans le dossier d'installation de votre UE sous \Engine\Plugins\Marketplace (par exemple, 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 packaging (Windows) : Si le lip sync ne fonctionne pas correctement dans votre projet packagé sous Windows, assurez-vous d'utiliser la configuration de build Shipping plutôt que Development. La configuration Development peut causer des problèmes avec le runtime ONNX des modèles réalistes dans les builds packagés.

Pour corriger cela :

  1. Dans les paramètres de votre projet → Packaging, définissez la configuration de build sur Shipping
  2. Repackagez votre projet

Shipping Configuration

Projets Blueprint uniquement

Dans certains projets Blueprint uniquement, Unreal Engine peut encore effectuer une compilation 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, rendez-vous dans Tools → New C++ Class dans le menu de l'éditeur UE et créez une classe vide. Cela forcera le projet à se compiler correctement en configuration Shipping. Votre projet peut rester Blueprint uniquement sur le plan fonctionnel, la classe C++ est simplement nécessaire pour une configuration de compilation appropriée.

Réactivité de la synchronisation labiale dégradée : Si vous constatez que la synchronisation labiale devient moins réactive 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 que de nouveaux données audio sont ajoutées. Pour éviter ce problème, appelez périodiquement la fonction ReleaseMemory afin de 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 Realistic en fonction de vos exigences 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 avec gestion des humeurs lorsque l'animation faciale complète n'est pas nécessaire