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
  • Jeden Charakter mit benutzerdefinierten Morph Targets für Gesichtsausdrücke

Detaillierte Anleitungen 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

Standard Model Extension Plugin

Wenn Sie das Standard (Schnellere) 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 (auch 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 Erstellen 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 nutzen möchten (Sie können auch eine eigene benutzerdefinierte TTS-Lösung oder andere Audioeingaben haben), dann installieren Sie zusätzlich zum Runtime Audio Importer 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 arm64-v8a und armeabi-v7a Architekturen für Android / Meta Quest Plattformen unterstützt.

Einrichtungsprozess

Schritt 1: Suchen und modifizieren Sie das Gesichtsanimation Blueprint

Sie müssen ein Animation Blueprint modifizieren, das für die Gesichtsanimationen Ihres MetaHuman-Charakters verwendet wird. Das standardmäßige MetaHuman-Gesichtsanimation 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 aber alle Charaktere, die das Standard-Animation Blueprint verwenden.

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

Schritt 2: Event Graph-Setup

Ö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 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: Audio-Eingabeverarbeitung einrichten

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

Dieser Ansatz führt die Lippenbewegung 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 vor dem Start 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.

Lippensynchronisation während der Audioaufnahme

Schritt 4: Anim Graph-Einrichtung

Nachdem Sie das Event Graph eingerichtet haben, wechseln Sie zum Anim Graph, um den Generator mit der Animation des Charakters zu verbinden:

Lip Sync

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

Blend Runtime MetaHuman Lip Sync

Wenn Lippenbewegungen in der Audioaufnahme erkannt werden, animiert sich Ihr Charakter entsprechend:

Lip Sync

Lachen-Animation

Sie können auch Lachen-Animationen hinzufügen, die dynamisch auf in der Audioaufnahme erkanntes Lachen reagieren:

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

Blend Runtime MetaHuman Laughter

Wenn Lachen in der Audioaufnahme erkannt wird, animiert sich Ihr Charakter entsprechend:

Laughter

Kombination mit Körperanimationen

Um Lip Sync und Lachen zusammen mit bestehenden Körperanimationen anzuwenden, ohne diese zu überschreiben:

  1. Fügen Sie einen Layered blend per bone-Knoten zwischen Ihren Körperanimationen und der finalen 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 das Layer hinzu, mit 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 Filters isolieren die Gesichtsanimation-Knochen, wodurch Lip Sync und Laughter ausschließlich mit Gesichtsbewegungen geblendet werden, während die ursprünglichen Körperanimationen erhalten bleiben. Dies entspricht der MetaHuman-Gesichtsrig-Struktur und gewährleistet eine natürliche Integration.

Hinweis: Die Lip-Sync- und Laughter-Funktionen sind so konzipiert, dass sie nicht-destruktiv mit Ihrem bestehenden Animation-Setup arbeiten. 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 jedem Punkt in Ihrer Animationskette integrieren - entweder vor anderen Gesichtsanimationen (wodurch diese Animationen den Lip Sync/Laughter überschreiben) oder danach (wodurch Lip Sync/Laughter über Ihren bestehenden Animationen geblendet wird). Diese Flexibilität ermöglicht es Ihnen, Lip Sync und Laughter mit Augenblinzeln, Augenbrauenbewegungen, emotionalen Ausdrücken und anderen Gesichtsanimationen ohne Konflikte zu kombinieren.

Konfiguration

Lip-Sync-Konfiguration

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

EigenschaftStandardwertBeschreibung
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-Node verfügt über eigene Konfigurationsoptionen:

EigenschaftStandardwertBeschreibung
Interpolation Speed25Steuert, wie schnell die Lippenbewegungen zwischen Lachen-Animationen ü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 die Audioquelle gestoppt wurde.
Max Laughter Weight0.7Skaliert die maximale Intensität der Lachen-Animation (0.0 - 1.0).

Auswahl zwischen Lip Sync-Modellen

Bei der Entscheidung, welches Lip Sync-Modell für Ihr Projekt verwendet werden soll, sollten folgende Faktoren berücksichtigt werden:

ÜberlegungStandardmodellRealistisches Modell
CharakterkompatibilitätMetaHumans und alle benutzerdefinierten CharaktertypenNur MetaHumans
Visuelle QualitätGute Lippenbewegung 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, MobileKinematische 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 UEs Resampling-Bibliothek. Für UE 5.2-Nutzer, die zuverlässige Lip Sync-Funktionalität benötigen, verwenden Sie bitte stattdessen das Standardmodell.

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

Für die meisten Projekte bietet das Standardmodell eine ausgezeichnete Balance zwischen Qualität und Performance bei gleichzeitiger Unterstützung der breitesten Palette an Charaktertypen. Das Realistische Modell ist ideal, wenn Sie die höchste visuelle Qualität speziell für MetaHuman-Charaktere in Kontexten benötigen, wo Performance-Overhead weniger kritisch ist.