Zum Hauptinhalt springen

Wie man das Plugin verwendet

Diese Anleitung führt Sie durch den Prozess der Einrichtung von Runtime MetaHuman Lip Sync für Ihre MetaHuman-Charaktere.

Hinweis: Runtime MetaHuman Lip Sync funktioniert sowohl mit MetaHuman- als auch mit benutzerdefinierten Charakteren. Das Plugin unterstützt verschiedene Charaktertypen, darunter:

  • Beliebte kommerzielle Charaktere (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, etc.)
  • Charaktere mit FACS-basierten Blendshapes
  • Modelle, die ARKit-Blendshape-Standards verwenden
  • Charaktere mit Preston Blair-Phonemsätzen
  • 3ds Max-Phonemsysteme
  • Jeder Charakter mit benutzerdefinierten Morph Targets für Gesichtsausdrücke

Detaillierte Anweisungen zur Einrichtung benutzerdefinierter Charaktere, einschließlich Visem-Mapping-Referenzen für alle oben genannten Standards, finden Sie im Leitfaden zur Einrichtung benutzerdefinierter Charaktere.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher:

  1. Das MetaHuman-Plugin ist in Ihrem Projekt aktiviert (Hinweis: Ab UE 5.6 ist dieser Schritt nicht mehr erforderlich, da die MetaHuman-Funktionalität direkt in die Engine integriert ist)
  2. Sie haben mindestens einen MetaHuman-Charakter heruntergeladen und in Ihrem Projekt verfügbar
  3. Das Runtime MetaHuman Lip Sync-Plugin ist installiert

Zusätzliche Plugins:

  • Wenn Sie Audioaufnahme verwenden möchten (z.B. Mikrofoneingang), installieren Sie das Runtime Audio Importer-Plugin.
  • Wenn Sie Text-zu-Sprache-Funktionalität nutzen möchten, installieren Sie das Runtime Text To Speech-Plugin.

Plattformspezifische Konfiguration

Android / Meta Quest Konfiguration

Wenn Sie Android- oder Meta Quest-Plattformen anvisieren und Build-Fehler mit diesem Plugin auftreten, müssen Sie die x86_64 (x64)-Android-Architektur in Ihren Projekteinstellungen deaktivieren:

  1. Gehen Sie zu Bearbeiten > Projekteinstellungen
  2. Navigieren Sie zu Plattformen > Android
  3. Unter Plattformen - Android, Build-Abschnitt, finden Sie Support x86_64 [aka x64] und stellen Sie sicher, dass es deaktiviert ist, wie unten gezeigt

Disable x64 Android Architecture

Dies liegt daran, dass das Plugin derzeit nur die arm64-v8a- und armeabi-v7a-Architekturen für Android- / Meta Quest-Plattformen unterstützt.

Einrichtungsprozess

Schritt 1: Suchen und modifizieren Sie das Face Animation Blueprint

Sie müssen ein Animation Blueprint modifizieren, das für die Gesichtsanimationen Ihres MetaHuman-Charakters verwendet wird. Das standardmäßige MetaHuman Face Animation Blueprint befindet sich unter:

Content/MetaHumans/Common/Face/Face_AnimBP

Face Animation Blueprint

Sie haben mehrere Möglichkeiten, die Lip-Sync-Funktionalität zu implementieren:

Öffnen Sie die standardmäßige Face_AnimBP direkt und nehmen Sie Ihre Änderungen vor. Alle Änderungen wirken sich auf alle MetaHuman-Charaktere aus, die dieses Animation Blueprint verwenden.

Hinweis: Dieser Ansatz ist bequem, betrifft jedoch alle Charaktere, die das standardmäßige Animation Blueprint verwenden.

Wichtig: Die Runtime MetaHuman Lip Sync-Blending kann in jedem Animation Blueprint-Asset implementiert werden, das Zugriff auf eine Pose mit den Gesichtsknochen des standardmäßigen Face_Archetype_Skeleton des MetaHumans hat. Sie sind nicht auf die oben genannten Optionen beschränkt - dies sind nur gängige Implementierungsansätze.

Schritt 2: Event Graph-Einrichtung

Öffnen Sie Ihren Face Animation Blueprint und wechseln Sie zum Event Graph. Sie müssen einen Generator erstellen, der Audiodaten verarbeitet und Lip-Sync-Animationen generiert.

  1. Fügen Sie den Event Blueprint Begin Play-Knoten hinzu, falls er noch nicht vorhanden ist
  2. Fügen Sie den Create Runtime Viseme Generator-Knoten hinzu und verbinden Sie ihn mit dem Begin Play-Event
  3. Speichern Sie die Ausgabe als Variable (z.B. "VisemeGenerator") für die Verwendung in anderen Teilen des Graphs

Creating Runtime Viseme Generator

Schritt 3: Einrichtung der Audioeingabeverarbeitung

Sie müssen eine Methode zur Verarbeitung der Audioeingabe einrichten. Es gibt mehrere Möglichkeiten, dies abhängig von Ihrer Audioquelle zu tun.

Dieser Ansatz führt den Lip-Sync in Echtzeit durch, während Sie in das Mikrofon sprechen:

  1. Erstellen Sie eine Capturable Sound Wave mit Runtime Audio Importer
  2. Binden Sie sich vor dem Start der Audioaufnahme an das OnPopulateAudioData-Delegate
  3. Rufen Sie in der gebundenen Funktion ProcessAudioData von Ihrem Runtime Viseme Generator auf
  4. Starten Sie die Audioaufnahme vom Mikrofon

Copyable nodes.

Lip Sync During Audio Capture

Schritt 4: Anim Graph-Einrichtung

Nach der Einrichtung des Event Graphs wechseln Sie zum Anim Graph, um den Generator mit der Animation des Charakters zu verbinden:

Lip Sync

  1. Suchen Sie die Pose, die das MetaHuman-Gesicht enthält (typischerweise von Use cached pose 'Body Pose')
  2. Fügen Sie den Blend Runtime MetaHuman Lip Sync-Knoten hinzu
  3. Verbinden Sie die Pose mit dem Source Pose-Eingang des Blend Runtime MetaHuman Lip Sync-Knotens
  4. Verbinden Sie Ihre RuntimeVisemeGenerator-Variable mit dem Viseme Generator-Pin
  5. Verbinden Sie die Ausgabe des Blend Runtime MetaHuman Lip Sync-Knotens mit dem Result-Pin der Output Pose

Blend Runtime MetaHuman Lip Sync

Wenn Lip-Sync in den Audiodaten erkannt wird, animiert sich Ihr Charakter entsprechend:

Lip Sync

Laughter Animation

Sie können auch Laughter-Animationen hinzufügen, die dynamisch auf in den Audiodaten erkanntes Lachen reagieren:

  1. Fügen Sie den Blend Runtime MetaHuman Laughter-Knoten hinzu
  2. Verbinden Sie Ihre RuntimeVisemeGenerator-Variable mit dem Viseme Generator-Pin
  3. Falls Sie bereits Lip-Sync verwenden:
    • Verbinden Sie die Ausgabe des Blend Runtime MetaHuman Lip Sync-Knotens mit dem Source Pose-Eingang des Blend Runtime MetaHuman Laughter-Knotens
    • Verbinden Sie die Ausgabe des Blend Runtime MetaHuman Laughter-Knotens mit dem Result-Pin der Output Pose
  4. Falls Sie nur Laughter ohne Lip-Sync verwenden:
    • Verbinden Sie Ihre Quellpose direkt mit dem Source Pose-Eingang des Blend Runtime MetaHuman Laughter-Knotens
    • Verbinden Sie die Ausgabe mit dem Result-Pin

Blend Runtime MetaHuman Laughter

Wenn Lachen in den Audiodaten erkannt wird, animiert sich Ihr Charakter entsprechend:

Laughter

Kombination mit Body-Animationen

Um Lip-Sync und Laughter neben bestehenden Body-Animationen anzuwenden, ohne sie zu überschreiben:

  1. Fügen Sie einen Layered blend per bone-Knoten zwischen Ihren Body-Animationen und der finalen Ausgabe hinzu. Stellen Sie sicher, dass Use Attached Parent aktiviert ist.
  2. Konfigurieren Sie das Layer-Setup:
    • Fügen Sie 1 Item zum Layer Setup-Array hinzu
    • Fügen Sie 3 Items zu den Branch Filters für das Layer hinzu, mit den folgenden Bone Names:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. Stellen Sie die Verbindungen her:
    • Bestehende Animationen (wie BodyPose) → Base Pose-Eingang
    • Gesichtsanimation-Ausgabe (von Lip-Sync- und/oder Laughter-Knoten) → Blend Poses 0-Eingang
    • Layered blend-Knoten → Finale Result-Pose

Layered Blend Per Bone

Warum das funktioniert: Die Branch-Filter isolieren die Gesichtsanimation-Knochen, sodass Lip-Sync und Laughter ausschließlich mit Gesichtsbewegungen geblendet werden, während die ursprünglichen Body-Animationen erhalten bleiben. Dies entspricht der Struktur des MetaHuman-Gesichts-Rigs und gewährleistet eine natürliche Integration.

Hinweis: Die Lip-Sync- und Laughter-Funktionen sind so konzipiert, dass sie nicht-destruktiv mit Ihrer bestehenden Animationseinrichtung funktionieren. Sie beeinflussen nur die spezifischen Gesichtsknochen, die für Mundbewegungen benötigt werden, und lassen andere Gesichtsanimationen unberührt. Das bedeutet, Sie können sie sicher an jeder Stelle in Ihrer Animationskette integrieren - entweder vor anderen Gesichtsanimationen (wodurch diese Animationen den Lip-Sync/Laughter überschreiben können) oder nach ihnen (wodurch Lip-Sync/Laughter über Ihre bestehenden Animationen geblendet wird). Diese Flexibilität ermöglicht es Ihnen, Lip-Sync und Laughter mit Augenblinzeln, Augenbrauenbewegungen, emotionalen Ausdrücken und anderen Gesichtsanimationen zu kombinieren, ohne dass es zu Konflikten kommt.

Konfiguration

Lip-Sync-Konfiguration

Der Blend Runtime MetaHuman Lip Sync-Knoten hat Konfigurationsoptionen in seinem Properties-Panel:

EigenschaftStandardBeschreibung
Interpolation Speed25Steuert, wie schnell die Lippenbewegungen zwischen Visemen wechseln. Höhere Werte führen zu schnelleren, abrupten Übergängen.
Reset Time0.2Die Dauer in Sekunden, nach der der Lip-Sync zurückgesetzt wird. Dies ist nützlich, um zu verhindern, dass der Lip-Sync weiterläuft, nachdem das Audio gestoppt wurde.

Laughter-Konfiguration

Der Blend Runtime MetaHuman Laughter-Knoten hat seine eigenen Konfigurationsoptionen:

EigenschaftStandardBeschreibung
Interpolation Speed25Steuert, wie schnell die Lippenbewegungen zwischen Laughter-Animationen wechseln. Höhere Werte führen zu schnelleren, abrupten Übergängen.
Reset Time0.2Die Dauer in Sekunden, nach der die Laughter-Animation zurückgesetzt wird. Dies ist nützlich, um zu verhindern, dass die Laughter-Animation weiterläuft, nachdem das Audio gestoppt wurde.
Max Laughter Weight0.7Skaliert die maximale Intensität der Laughter-Animation (0.0 - 1.0).

Auswahl zwischen Lip-Sync-Modellen

Berücksichtigen Sie bei der Entscheidung, welches Lip-Sync-Modell Sie für Ihr Projekt verwenden möchten, folgende Faktoren:

ÜberlegungStandard ModelRealistic Model
Charakter-KompatibilitätMetaHumans und alle Custom-CharaktertypenNur MetaHumans
Visuelle QualitätGuter Lip-Sync mit effizienter PerformanceVerbesserter Realismus mit natürlicheren Mundbewegungen
PerformanceOptimiert für alle Plattformen inklusive Mobile/VRLeicht höhere Ressourcenanforderungen
AnwendungsfälleAllgemeine Anwendungen, Spiele, VR/AR, MobileCinematische Erfahrungen, Nahaufnahmen von Charakterinteraktionen

Für die meisten Projekte bietet das Standard Model eine hervorragende Balance zwischen Qualität und Performance und unterstützt gleichzeitig die breiteste Palette an Charaktertypen. Das Realistic Model ist ideal, wenn Sie die höchste visuelle Qualität speziell für MetaHuman-Charaktere in Kontexten benötigen, in denen Performance-Overhead weniger kritisch ist.