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 Anleitungen zur Einrichtung benutzerdefinierter Charaktere, einschließlich Viseme-Mapping-Referenzen für alle oben genannten Standards, finden Sie im Benutzerdefinierter Charakter-Setup-Leitfaden.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher:

  1. Das MetaHuman-Plugin ist in Ihrem Projekt aktiviert
  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 (z.B. Mikrofoneingang) verwenden möchten, installieren Sie das Runtime Audio Importer-Plugin.
  • Wenn Sie Text-zu-Sprache-Funktionalität verwenden 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 erhalten, 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 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 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 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 einrichten

Öffnen Sie Ihr Face Animation Blueprint und wechseln Sie zum Event Graph. Sie müssen einen Runtime Viseme Generator erstellen, der Audiodaten verarbeitet und Viseme generiert.

  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") 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, abhängig von Ihrer Audioquelle.

Dieser Ansatz führt den Lip Sync in Echtzeit durch, während in das Mikrofon gesprochen wird:

  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

Kopierbare Knoten.

Lip Sync During Audio Capture

Schritt 4: Anim Graph einrichten

Nachdem Sie das Event Graph eingerichtet haben, wechseln Sie zum Anim Graph, um den Viseme-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 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 des Output Pose-Knotens

Blend Runtime MetaHuman Lip Sync

Wenn Lip Sync im Audio erkannt wird, animiert sich Ihr Charakter dynamisch entsprechend:

Lip Sync

Laughter Animation

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

Blend Runtime MetaHuman Laughter

Wenn Lachen im Audio erkannt wird, animiert sich Ihr Charakter dynamisch entsprechend:

Laughter

Kombination mit Körperanimationen

Um Lip Sync und Lachen neben bestehenden Körperanimationen anzuwenden, ohne sie 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 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 die 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-Filter isolieren die Gesichtsanimation-Knochen, sodass Lip Sync und Lachen 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 Animations-Setup arbeiten. Sie beeinflussen nur die spezifischen Gesichtsknochen, die für Mundbewegungen benötigt werden, und lassen