Zum Hauptinhalt springen

So verwenden Sie das Plugin

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 Phonem-Sets
  • 3ds Max Phonem-Systeme
  • Jeden 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

Stellen Sie vor dem Start sicher, dass:

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

Standard Model Extension Plugin

Wenn Sie das Standard (Schnelleres) Modell verwenden möchten, müssen Sie das Erweiterungs-Plugin installieren:

  1. Laden Sie das Standard Lip Sync Extension plugin von Google Drive herunter
  2. Extrahieren Sie den Ordner aus dem heruntergeladenen Archiv in den Plugins-Ordner Ihres Projekts (erstellen Sie diesen Ordner, falls er nicht existiert)
  3. Stellen Sie sicher, dass Ihr Projekt als C++-Projekt eingerichtet ist (selbst wenn Sie keinen C++-Code haben)
  4. Bauen Sie Ihr Projekt neu
hinweis
  • Diese Erweiterung ist nur erforderlich, wenn Sie das Standard Modell verwenden möchten. Wenn Sie nur das Realistische Modell benötigen, können Sie diesen Schritt überspringen.
  • Weitere Informationen zum manuellen Bauen von Plugins finden Sie im Building Plugins tutorial

Zusätzliche Plugins

  • Wenn Sie Audioaufnahme verwenden möchten (z. B. Mikrofoneingang), installieren Sie das Runtime Audio Importer-Plugin.
  • Wenn Sie Text-to-Speech-Funktionalität mit meinen Plugins verwenden möchten (Sie haben möglicherweise Ihren eigenen benutzerdefinierten TTS oder andere Audioeingaben), dann installieren Sie zusätzlich zum Runtime Audio Importer-Plugin auch:

Einrichtungsprozess

Schritt 1: Suchen und modifizieren Sie die Gesichtsanimations-Blueprint

Sie müssen eine Animation Blueprint modifizieren, die für die Gesichtsanimationen Ihres MetaHuman-Charakters verwendet wird. Die standardmäßige MetaHuman-Gesichtsanimations-Blueprint befindet sich unter:

Content/MetaHumans/Common/Face/Face_AnimBP

Face Animation Blueprint

Sie haben mehrere Optionen zur Implementierung der Lip-Sync-Funktionalität:

Ö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, wirkt sich jedoch auf alle Charaktere aus, die das Standard-Animation Blueprint verwenden.

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

Schritt 2: Event Graph-Einrichtung

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

  1. Fügen Sie den Event Blueprint Begin Play-Knoten hinzu, falls er noch nicht existiert
  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") zur Verwendung in anderen Teilen des Graphs

Erstellen des Runtime Viseme Generators

Schritt 3: Richten Sie die Audio-Eingabeverarbeitung ein

Sie müssen eine Methode einrichten, um Audio-Eingaben zu verarbeiten. Es gibt mehrere Möglichkeiten, dies zu tun, abhängig von Ihrer Audio-Quelle.

Dieser Ansatz führt die Lippenbewegungssynchronisation in Echtzeit durch, während in das Mikrofon gesprochen wird:

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

Kopierbare Nodes.

Lip Sync During Audio Capture

Schritt 4: Anim Graph Einrichtung

Nachdem Sie den Event Graph eingerichtet haben, wechseln Sie zum Anim Graph, um den Generator mit der Animation der Figur 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 den Ausgang des Blend Runtime MetaHuman Lip Sync-Knotens mit dem Result-Pin der Output Pose

Blend Runtime MetaHuman Lip Sync

Wenn Lip Sync in der Audioausgabe erkannt wird, animiert sich Ihre Figur dynamisch entsprechend:

Lip Sync

Lachen-Animation

Sie können auch Lachen-Animationen hinzufügen, die dynamisch auf in der Audioausgabe 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. Wenn Sie bereits Lip Sync verwenden:
    • Verbinden Sie den Ausgang des Blend Runtime MetaHuman Lip Sync-Knotens mit dem Source Pose-Eingang des Blend Runtime MetaHuman Laughter-Knotens
    • Verbinden Sie den Ausgang des Blend Runtime MetaHuman Laughter-Knotens mit dem Result-Pin der Output Pose
  4. Wenn Sie nur Lachen ohne Lip Sync verwenden:
    • Verbinden Sie Ihre Quellpose direkt mit dem Source Pose-Eingang des Blend Runtime MetaHuman Laughter-Knotens
    • Verbinden Sie den Ausgang mit dem Result-Pin

Blend Runtime MetaHuman Laughter

Wenn Lachen in der Audioausgabe erkannt wird, animiert sich Ihre Figur dynamisch entsprechend:

Laughter

Kombination mit Gesichts- und Körperanimationen

Um Lippen-Synchronisation und Lachen zusammen mit bestehenden Körperanimationen und benutzerdefinierten Gesichtsanimationen (wie Ausdrücke, Emotionen oder andere Gesichtsbewegungen) anzuwenden, ohne diese zu überschreiben:

  1. Fügen Sie einen Layered blend per bone-Knoten zwischen Ihren Körperanimationen und der endgültigen Ausgabe hinzu. Stellen Sie sicher, dass Use Attached Parent auf true gesetzt ist.
  2. Konfigurieren Sie das Layer-Setup:
    • Fügen Sie 1 Element zum Layer Setup-Array hinzu
    • Fügen Sie 3 Elemente zu den Branch Filters für den Layer hinzu, mit den folgenden Bone Names:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. Wichtig für benutzerdefinierte Gesichtsanimationen: Wählen Sie in Curve Blend Option die Option "Use Max Value". Dies ermöglicht es, benutzerdefinierte Gesichtsanimationen (Ausdrücke, Emotionen usw.) korrekt über der Lippen-Synchronisation zu schichten.
  4. Stellen Sie die Verbindungen her:
    • Bestehende Animationen (wie BodyPose) → Base Pose-Eingang
    • Gesichtsanimationsausgabe (von Lippen-Synchronisations- und/oder Lachen-Knoten) → Blend Poses 0-Eingang
    • Layered blend-Knoten → Endgültige Result-Pose

Layered Blend Per Bone

Warum das funktioniert: Die Branch-Filter isolieren die Gesichtsanimationsknochen, sodass Lippen-Synchronisation und Lachen ausschließlich mit Gesichtsbewegungen geblendet werden können, während die ursprünglichen Körperanimationen erhalten bleiben. Die "Use Max Value"-Option für die Kurvenüberblendung nimmt den Maximalwert von jeder Kurve anstatt sie additiv zu mischen, was es ermöglicht, benutzerdefinierte Gesichtsanimationen (wie Ausdrücke und Emotionen) korrekt mit der Lippen-Synchronisation zu kombinieren, ohne Konflikte. Dies entspricht der MetaHuman-Gesichtsrig-Struktur für eine natürliche Integration.

Hinweis: Die Lippen-Synchronisations- und Lachen-Funktionen sind so konzipiert, dass sie nicht-destruktiv mit Ihrem bestehenden Animations-Setup arbeiten. Sie beeinflussen nur die spezifischen Gesichtsknochen, die für die Mundbewegung benötigt werden, und lassen andere Gesichtsanimationen unberührt. Das bedeutet, Sie können sie sicher an jedem Punkt in Ihrer Animationskette integrieren - entweder vor anderen Gesichtsanimationen (was diesen Animationen erlaubt, die Lippen-Synchronisation/das Lachen zu überschreiben) oder nach ihnen (wodurch Lippen-Synchronisation/Lachen über Ihre bestehenden Animationen geblendet werden). Diese Flexibilität ermöglicht es Ihnen, Lippen-Synchronisation und Lachen mit Augenblinzeln, Augenbrauenbewegungen, emotionalen Ausdrücken und anderen Gesichtsanimationen ohne Konflikte zu kombinieren.

Feinabstimmung des Lippen-Synchronisations-Verhaltens

Nachdem Sie die grundlegende Lippen-Synchronisations-Funktionalität eingerichtet haben, möchten Sie möglicherweise bestimmte Aspekte der Mundbewegung feinabstimmen, um sie besser an die Anforderungen Ihres Projekts anzupassen.

Zungenvorstoß-Kontrolle

Im standardmäßigen Lippen-Synchronisations-Modell könnten Sie übermäßige Vorwärtsbewegung der Zunge bei bestimmten Phonemen bemerken. Um den Zungenvorstoß zu kontrollieren:

  1. Nach Ihrem Blend Runtime MetaHuman Lip Sync oder Blend Realistic MetaHuman Lip Sync-Node fügen Sie einen Modify Curve-Node hinzu
  2. Klicken Sie mit der rechten Maustaste auf den Modify Curve-Node und wählen Sie Add Curve Pin
  3. Fügen Sie einen Curve-Pin mit dem Namen CTRL_expressions_tongueOut hinzu
  4. Setzen Sie die Apply Mode-Eigenschaft des Nodes auf Scale
  5. Passen Sie den Value-Parameter an, um die Zungenstreckung zu steuern (z.B. 0.8, um den Vorsprung um 20% zu reduzieren)

Kieferöffnungssteuerung

Das realistische Lip Sync kann je nach Ihrem Audioinhalt und visuellen Anforderungen übermäßig reagierende Kieferbewegungen erzeugen. Um die Intensität der Kieferöffnung anzupassen:

  1. Nach Ihrem Lip Sync-Blend-Node fügen Sie einen Modify Curve-Node hinzu
  2. Klicken Sie mit der rechten Maustaste auf den Modify Curve-Node und wählen Sie Add Curve Pin
  3. Fügen Sie einen Curve-Pin mit dem Namen CTRL_expressions_jawOpen hinzu
  4. Setzen Sie die Apply Mode-Eigenschaft des Nodes auf Scale
  5. Passen Sie den Value-Parameter an, um den Kieferöffnungsbereich zu steuern (z.B. 0.9, um die Kieferbewegung um 10% zu reduzieren)

Konfiguration

Lip Sync-Konfiguration

Der Blend Runtime MetaHuman Lip Sync-Node hat Konfigurationsoptionen in seinem Eigenschaften-Bedienfeld:

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

Lach-Konfiguration

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

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

Auswahl zwischen Lip Sync-Modellen

Bei der Entscheidung, welches Lip-Sync-Modell Sie für Ihr Projekt verwenden, sollten Sie folgende Faktoren berücksichtigen:

ÜberlegungStandardmodellRealistisches Modell
CharakterkompatibilitätMetaHumans und alle benutzerdefinierten CharaktertypenNur MetaHumans
Visuelle QualitätGutes Lip-Sync mit effizienter LeistungVerbesserter Realismus mit natürlicheren Mundbewegungen
LeistungFür alle Plattformen optimiert, einschließlich Mobilgeräte/VRLeicht höhere Ressourcenanforderungen
AnwendungsfälleAllgemeine Anwendungen, Spiele, VR/AR, MobilgeräteFilmische Erfahrungen, Nahaufnahmen von Charakterinteraktionen

Engine-Version-Kompatibilität

UE 5.2-Kompatibilitätsproblem

Wenn Sie Unreal Engine 5.2 verwenden, funktioniert das Realistische Modell möglicherweise nicht korrekt aufgrund eines Fehlers in der Resampling-Bibliothek der UE. Für UE 5.2-Benutzer, die zuverlässige Lip-Sync-Funktionalität benötigen, verwenden Sie bitte stattdessen das Standardmodell.

Dieses Problem betrifft speziell UE 5.2 und betrifft keine anderen Engine-Versionen.

Für die meisten Projekte bietet das Standardmodell eine ausgezeichnete Balance zwischen Qualität und Leistung und unterstützt gleichzeitig die breiteste Palette von Charaktertypen. Das Realistische Modell ist ideal, wenn Sie die höchste visuelle Wiedergabetreue speziell für MetaHuman-Charaktere in Kontexten benötigen, in denen Leistungsüberkopf weniger kritisch ist.