Aller au contenu principal

Comment utiliser le plugin

Ce guide vous explique comment configurer 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 des 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 d'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é

Plugins supplémentaires :

  • Si vous prévoyez d'utiliser la capture audio (par exemple, l'entrée microphone), installez le plugin Runtime Audio Importer.
  • Si vous prévoyez d'utiliser la fonctionnalité synthèse vocale, installez le plugin Runtime Text To Speech.

Configuration spécifique à la plateforme

Configuration Android / Meta Quest

Si vous ciblez les plateformes Android ou Meta Quest et rencontrez des erreurs de compilation avec ce plugin, vous devrez désactiver l'architecture Android x86_64 (x64) dans les paramètres de votre projet :

  1. Allez dans Edit > Project Settings
  2. Naviguez vers Platforms > Android
  3. Sous Platforms - Android, section Build, trouvez Support x86_64 [aka x64] et assurez-vous qu'il est désactivé, comme indiqué ci-dessous

Désactiver l'architecture Android x64

En effet, le plugin ne prend actuellement en charge que les architectures arm64-v8a et armeabi-v7a pour les plateformes Android / Meta Quest.

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. Le Animation Blueprint facial par défaut des 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 blending Runtime MetaHuman Lip Sync peut être implémenté dans n'importe quel asset Animation Blueprint ayant 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 sont simplement des approches d'implémentation courantes.

Étape 2 : Configuration du Event Graph

Ouvrez votre Face Animation Blueprint et basculez vers le Event Graph. Vous devrez créer un Runtime Viseme Generator qui traitera les données audio et générera des visèmes.

  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 dans une variable (ex: "VisemeGenerator") pour utilisation ailleurs dans le graphe

Création du Runtime Viseme Generator

Étape 3 : Configuration du traitement de l'entrée audio

Vous devez configurer une méthode pour traiter l'entrée audio. Il existe plusieurs approches selon votre source audio.

Cette approche effectue le lip sync en temps réel pendant la prise de parole via microphone :

  1. Créez un 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. Lancez la capture audio depuis le microphone

Nœuds copiables.

Lip Sync Pendant la Capture Audio

Étape 4 : Configuration de l'Anim Graph

Après avoir configuré le Event Graph, basculez vers l'Anim Graph pour connecter le viseme generator à l'animation du personnage :

Lip Sync

  1. Localisez la pose contenant le visage MetaHuman (typiquement depuis Use cached pose 'Body Pose')
  2. Ajoutez le nœud Blend Runtime MetaHuman Lip Sync
  3. Connectez la pose au 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 du Output Pose

Blend Runtime MetaHuman Lip Sync

Lorsque du lip sync est détecté dans l'audio, votre personnage s'animera dynamiquement en conséquence :

Lip Sync

Animation de Rire

Vous pouvez aussi 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 au Source Pose du nœud Blend Runtime MetaHuman Laughter
    • Connectez la sortie du nœud Blend Runtime MetaHuman Laughter à la broche Result du Output Pose
  4. Si vous utilisez uniquement le rire sans lip sync :
    • Connectez votre source pose 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 :

Rire

Combinaison avec les Animations Corporelles

Pour appliquer le lip sync et le rire parallèlement aux animations corporelles existantes 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 activé.
  2. Configurez le layer setup :
    • Ajoutez 1 item au tableau Layer Setup
    • Ajoutez 3 items aux Branch Filters pour le layer, avec les Bone Name suivants :
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. Faites les connexions :
    • Animations existantes (comme BodyPose) → entrée Base Pose
    • Sortie d'animation faciale (depuis les nœuds lip sync et/ou rire) → entrée Blend Poses 0
    • Nœud layered blend → pose Result finale

Layered Blend Per Bone

Pourquoi cela fonctionne : Les branch filters isolent les os d'animation faciale, permettant au lip sync et au rire de se blender exclusivement avec les mouvements faciaux tout en préservant les animations corporelles originales. Cela correspond à la structure du rig facial MetaHuman, assurant une intégration naturelle.

Note : Les fonctionnalités lip sync et rire sont conçues pour fonctionner de manière non destructive avec votre setup d'animation existant. Elles n'affectent que les os faciaux spécifiques nécessaires aux mouvements de 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 le lip sync/rire) soit après elles (laissant le lip sync/rire se blender par-dessus vos animations existantes). Cette flexibilité vous permet de combiner lip sync et rire avec des clignements d'yeux, mouvements de sourcils, expressions émotionnelles et autres animations faciales sans conflits.

Configuration

Configuration du Lip Sync

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

PropriétéDéfautDescription
Interpolation Speed25Contrôle la vitesse de transition entre les visèmes. Des valeurs plus élevées donnent des transitions plus rapides et abruptes.
Reset Time0.2Durée en secondes après laquelle le lip sync est réinitialisé. Utile pour éviter que le lip sync ne continue après l'arrêt de l'audio.

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 entre les animations de rire. Des valeurs plus élevées donnent des transitions plus rapides et abruptes.
Reset Time0.2Durée en secondes après laquelle le rire est réinitialisé. Utile pour éviter que le rire ne continue après l'arrêt de l'audio.
Max Laughter Weight0.7Échelle l'intensité maximale de l'animation de rire (0.0 - 1.0).