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:
- 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)
- Sie haben mindestens einen MetaHuman-Charakter heruntergeladen und in Ihrem Projekt verfügbar
- 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:
- Gehen Sie zu Bearbeiten > Projekteinstellungen
- Navigieren Sie zu Plattformen > Android
- Unter Plattformen - Android, Build-Abschnitt, finden Sie Support x86_64 [aka x64] und stellen Sie sicher, dass es deaktiviert ist, wie unten gezeigt
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
- UE 5.5 und früher (oder Legacy MetaHumans in UE 5.6+)
- UE 5.6+ MetaHuman Creator Charaktere
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
Sie haben mehrere Möglichkeiten, die Lip-Sync-Funktionalität zu implementieren:
- Standard-Asset direkt bearbeiten (einfachste Option)
- Duplikat erstellen
- Benutzerdefiniertes Animation Blueprint verwenden
Ö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.
- Duplizieren Sie
Face_AnimBP
und geben Sie ihm einen beschreibenden Namen - Suchen Sie die Blueprint-Klasse Ihres Charakters (z.B. für den Charakter "Bryan" unter
Content/MetaHumans/Bryan/BP_Bryan
) - Öffnen Sie die Charakter-Blueprint und suchen Sie die Face-Komponente
- Ändern Sie die Anim Class-Eigenschaft auf Ihr neu erstelltes Animation Blueprint
Hinweis: Dieser Ansatz ermöglicht es Ihnen, das Lip-Sync für bestimmte Charaktere anzupassen, während andere unverändert bleiben.
Sie können die Lip-Sync-Einbindung in jedem Animation Blueprint implementieren, der Zugriff auf die erforderlichen Gesichtsknochen hat:
- Erstellen Sie oder verwenden Sie ein vorhandenes benutzerdefiniertes Animation Blueprint
- Stellen Sie sicher, dass Ihr Animation Blueprint mit einem Skelett funktioniert, das dieselben Gesichtsknochen wie das standardmäßige
Face_Archetype_Skeleton
des MetaHuman enthält (das Standardskelett, das für jeden MetaHuman-Charakter verwendet wird)
Hinweis: Dieser Ansatz bietet maximale Flexibilität für die Integration mit benutzerdefinierten Animationssystemen.
Ab UE 5.6 wurde das neue MetaHuman Creator-System eingeführt, das Charaktere ohne das traditionelle Face_AnimBP
-Asset erstellt. Für diese Charaktere stellt das Plugin ein Face Animation Blueprint bereit, das sich unter folgendem Pfad befindet:
Content/LipSyncData/LipSync_Face_AnimBP
Verwendung des Face Animation Blueprints des Plugins:
- Suchen Sie die Blueprint-Klasse Ihres MetaHuman Creator-Charakters
- Öffnen Sie die Charakter-Blueprint und finden Sie die Face-Komponente
- Ändern Sie die Anim Class-Eigenschaft in den
LipSync_Face_AnimBP
des Plugins - Fahren Sie mit den Schritten 2-4 fort, um die Runtime MetaHuman Lip Sync-Funktionalität zu konfigurieren
Alternative Optionen:
- Verwenden Sie Legacy-Anleitungen: Sie können weiterhin die oben genannten UE 5.5-Anleitungen befolgen, wenn Sie mit Legacy-MetaHumans arbeiten oder den traditionellen Workflow bevorzugen
- Erstellen Sie einen Custom Animation Blueprint: Erstellen Sie Ihren eigenen Animation Blueprint, der mit der Skelettstruktur des MetaHuman Creators funktioniert
Hinweis: Wenn Sie UE 5.6+ verwenden, aber mit Legacy-MetaHumans arbeiten (nicht über den MetaHuman Creator erstellt), verwenden Sie stattdessen die Anleitungen unter dem Tab "UE 5.5 and Earlier".
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.
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Fügen Sie den
Event Blueprint Begin Play
-Knoten hinzu, falls er noch nicht vorhanden ist - Fügen Sie den
Create Runtime Viseme Generator
-Knoten hinzu und verbinden Sie ihn mit dem Begin Play-Event - Speichern Sie die Ausgabe als Variable (z.B. "VisemeGenerator") für die Verwendung in anderen Teilen des Graphs
- Fügen Sie den
Event Blueprint Begin Play
-Knoten hinzu, falls er noch nicht vorhanden ist - Fügen Sie den
Create Realistic MetaHuman Lip Sync Generator
-Knoten hinzu und verbinden Sie ihn mit dem Begin Play-Event - Speichern Sie die Ausgabe als Variable (z.B. "RealisticLipSyncGenerator") für die Verwendung in anderen Teilen des Graphs
Hinweis: Das Realistic Model ist speziell für MetaHuman-Charaktere optimiert und nicht mit Custom-Charaktertypen kompatibel.
Für eine zuverlässige und konsistente Funktionsweise mit dem Realistic Model ist es erforderlich, den Realistic MetaHuman Lip Sync Generator jedes Mal neu zu erstellen, wenn Sie nach einer Inaktivitätsphase neue Audiodaten verarbeiten möchten. Dies liegt am Verhalten der ONNX-Runtime, die dazu führen kann, dass der Lip-Sync nicht mehr funktioniert, wenn Generatoren nach Stillephasen wiederverwendet werden.
Beispielszenario: Wenn Sie TTS-Lip-Sync durchgeführt und dann gestoppt haben und später erneut Lip-Sync mit neuen Audiodaten durchführen möchten, erstellen Sie einen neuen Realistic MetaHuman Lip Sync Generator, anstatt den vorhandenen wiederzuverwenden.
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.
- Mikrofon (Echtzeit)
- Mikrofon (Playback)
- Text-to-Speech (Lokal)
- Text-to-Speech (Externe APIs)
- Von Audio-Datei/Puffer
- Custom Audio-Quelle
Dieser Ansatz führt den Lip-Sync in Echtzeit durch, während Sie in das Mikrofon sprechen:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Erstellen Sie eine Capturable Sound Wave mit Runtime Audio Importer
- Binden Sie sich vor dem Start der Audioaufnahme an das
OnPopulateAudioData
-Delegate - Rufen Sie in der gebundenen Funktion
ProcessAudioData
von Ihrem Runtime Viseme Generator auf - Starten Sie die Audioaufnahme vom Mikrofon
Das Realistic Model verwendet den gleichen Audioverarbeitungs-Workflow wie das Standard Model, jedoch mit der RealisticLipSyncGenerator
-Variable anstelle von VisemeGenerator
.
Ersetzen Sie in jedem der für das Standard Model gezeigten Beispiele einfach:
VisemeGenerator
durch IhreRealisticLipSyncGenerator
-Variable- Die Funktionsnamen und Parameter bleiben zwischen beiden Modellen identisch
Dieser Ansatz nimmt Audio vom Mikrofon auf und spielt es dann mit Lip-Sync ab:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Erstellen Sie eine Capturable Sound Wave mit Runtime Audio Importer
- Starten Sie die Audioaufnahme vom Mikrofon
- Binden Sie sich vor der Wiedergabe der capturable sound wave an ihr
OnGeneratePCMData
-Delegate - Rufen Sie in der gebundenen Funktion
ProcessAudioData
von Ihrem Runtime Viseme Generator auf
Das Realistic Model verwendet den gleichen Audioverarbeitungs-Workflow wie das Standard Model, jedoch mit der RealisticLipSyncGenerator
-Variable anstelle von VisemeGenerator
.
Ersetzen Sie in jedem der für das Standard Model gezeigten Beispiele einfach:
VisemeGenerator
durch IhreRealisticLipSyncGenerator
-Variable- Die Funktionsnamen und Parameter bleiben zwischen beiden Modellen identisch
Hinweis: Wenn Sie Audiodaten in kleineren Chunks für responsiveren Lip-Sync verarbeiten möchten, passen Sie die Berechnung in der SetNumSamplesPerChunk
-Funktion an. Beispielsweise liefert die Division der Sample-Rate durch 150 (Streaming alle ~6,67 ms) anstelle von 100 (Streaming alle 10 ms) häufigere Lip-Sync-Updates.
- Regular
- Streaming
Dieser Ansatz synthetisiert Sprache aus Text und führt Lip-Sync durch:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Verwenden Sie Runtime Text To Speech, um Sprache aus Text zu generieren
- Verwenden Sie Runtime Audio Importer, um das synthetisierte Audio zu importieren
- Binden Sie sich vor der Wiedergabe der importierten sound wave an ihr
OnGeneratePCMData
-Delegate - Rufen Sie in der gebundenen Funktion
ProcessAudioData
von Ihrem Runtime Viseme Generator auf
Der lokale TTS des Runtime Text To Speech-Plugins wird derzeit nicht mit dem Realistic Model unterstützt, da es zu Konflikten mit der ONNX-Runtime kommt. Für Text-to-Speech mit dem Realistic Model sollten Sie externe TTS-Dienste (wie OpenAI oder ElevenLabs über Runtime AI Chatbot Integrator) verwenden oder stattdessen das Standard Model nutzen.
Hinweis: Wenn Sie Audiodaten in kleineren Chunks für responsiveren Lip-Sync verarbeiten möchten, passen Sie die Berechnung in der SetNumSamplesPerChunk
-Funktion an. Beispielsweise liefert die Division der Sample-Rate durch 150 (Streaming alle ~6,67 ms) anstelle von 100 (Streaming alle 10 ms) häufigere Lip-Sync-Updates.
Dieser Ansatz verwendet Streaming-Text-to-Speech-Synthese mit Echtzeit-Lip-Sync:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Verwenden Sie Runtime Text To Speech, um Streaming-Sprache aus Text zu generieren
- Verwenden Sie Runtime Audio Importer, um das synthetisierte Audio zu importieren
- Binden Sie sich vor der Wiedergabe der streaming sound wave an ihr
OnGeneratePCMData
-Delegate - Rufen Sie in der gebundenen Funktion
ProcessAudioData
von Ihrem Runtime Viseme Generator auf
Der lokale TTS des Runtime Text To Speech-Plugins wird derzeit nicht mit dem Realistic Model unterstützt, da es zu Konflikten mit der ONNX-Runtime kommt. Für Text-to-Speech mit dem Realistic Model sollten Sie externe TTS-Dienste (wie OpenAI oder ElevenLabs über Runtime AI Chatbot Integrator) verwenden oder stattdessen das Standard Model nutzen.
Hinweis: Wenn Sie Audiodaten in kleineren Chunks für responsiveren Lip-Sync verarbeiten möchten, passen Sie die Berechnung in der SetNumSamplesPerChunk
-Funktion an. Beispielsweise liefert die Division der Sample-Rate durch 150 (Streaming alle ~6,67 ms) anstelle von 100 (Streaming alle 10 ms) häufigere Lip-Sync-Updates.
- Regular
- Streaming
Dieser Ansatz verwendet das Runtime AI Chatbot Integrator-Plugin, um synthetisierte Sprache von AI-Diensten (OpenAI oder ElevenLabs) zu generieren und Lip-Sync durchzuführen:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Verwenden Sie Runtime AI Chatbot Integrator, um Sprache aus Text mit externen APIs (OpenAI, ElevenLabs usw.) zu generieren
- Verwenden Sie Runtime Audio Importer, um die synthetisierten Audiodaten zu importieren
- Binden Sie sich vor der Wiedergabe der importierten sound wave an ihr
OnGeneratePCMData
-Delegate - Rufen Sie in der gebundenen Funktion
ProcessAudioData
von Ihrem Runtime Viseme Generator auf
Das Realistic Model verwendet den gleichen Audioverarbeitungs-Workflow wie das Standard Model, jedoch mit der RealisticLipSyncGenerator
-Variable anstelle von VisemeGenerator
.
Ersetzen Sie in jedem der für das Standard Model gezeigten Beispiele einfach:
VisemeGenerator
durch IhreRealisticLipSyncGenerator
-Variable- Die Funktionsnamen und Parameter bleiben zwischen beiden Modellen identisch
Hinweis: Wenn Sie Audiodaten in kleineren Chunks für responsiveren Lip-Sync verarbeiten möchten, passen Sie die Berechnung in der SetNumSamplesPerChunk
-Funktion an. Beispielsweise liefert die Division der Sample-Rate durch 150 (Streaming alle ~6,67 ms) anstelle von 100 (Streaming alle 10 ms) häufigere Lip-Sync-Updates.
Dieser Ansatz verwendet das Runtime AI Chatbot Integrator-Plugin, um synthetisierte Streaming-Sprache von AI-Diensten (OpenAI oder ElevenLabs) zu generieren und Lip-Sync durchzuführen:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Verwenden Sie Runtime AI Chatbot Integrator, um eine Verbindung zu Streaming-TTS-APIs (wie der ElevenLabs Streaming API) herzustellen
- Verwenden Sie Runtime Audio Importer, um die synthetisierten Audiodaten zu importieren
- Binden Sie sich vor der Wiedergabe der streaming sound wave an ihr
OnGeneratePCMData
-Delegate - Rufen Sie in der gebundenen Funktion
ProcessAudioData
von Ihrem Runtime Viseme Generator auf
Das Realistic Model verwendet den gleichen Audioverarbeitungs-Workflow wie das Standard Model, jedoch mit der RealisticLipSyncGenerator
-Variable anstelle von VisemeGenerator
.
Ersetzen Sie in jedem der für das Standard Model gezeigten Beispiele einfach:
VisemeGenerator
durch IhreRealisticLipSyncGenerator
-Variable- Die Funktionsnamen und Parameter bleiben zwischen beiden Modellen identisch
Hinweis: Wenn Sie Audiodaten in kleineren Chunks für responsiveren Lip-Sync verarbeiten möchten, passen Sie die Berechnung in der SetNumSamplesPerChunk
-Funktion an. Beispielsweise liefert die Division der Sample-Rate durch 150 (Streaming alle ~6,67 ms) anstelle von 100 (Streaming alle 10 ms) häufigere Lip-Sync-Updates.
Dieser Ansatz verwendet voraufgenommene Audio-Dateien oder Audio-Puffer für Lip-Sync:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Verwenden Sie Runtime Audio Importer, um eine Audio-Datei von der Festplatte oder aus dem Speicher zu importieren
- Binden Sie sich vor der Wiedergabe der importierten sound wave an ihr
OnGeneratePCMData
-Delegate - Rufen Sie in der gebundenen Funktion
ProcessAudioData
von Ihrem Runtime Viseme Generator auf - Spielen Sie die importierte sound wave ab und beobachten Sie die Lip-Sync-Animation
Das Realistic Model verwendet den gleichen Audioverarbeitungs-Workflow wie das Standard Model, jedoch mit der RealisticLipSyncGenerator
-Variable anstelle von VisemeGenerator
.
Ersetzen Sie in jedem der für das Standard Model gezeigten Beispiele einfach:
VisemeGenerator
durch IhreRealisticLipSyncGenerator
-Variable- Die Funktionsnamen und Parameter bleiben zwischen beiden Modellen identisch
Hinweis: Wenn Sie Audiodaten in kleineren Chunks für responsiveren Lip-Sync verarbeiten möchten, passen Sie die Berechnung in der SetNumSamplesPerChunk
-Funktion an. Beispielsweise liefert die Division der Sample-Rate durch 150 (Streaming alle ~6,67 ms) anstelle von 100 (Streaming alle 10 ms) häufigere Lip-Sync-Updates.
Für eine Custom Audio-Quelle benötigen Sie:
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Audiodaten im Float-PCM-Format (ein Array von Floating-Point-Samples)
- Die Sample-Rate und Anzahl der Kanäle
- Rufen Sie
ProcessAudioData
von Ihrem Runtime Viseme Generator mit diesen Parametern auf
Hier ist ein Beispiel für das Streaming von Audio von einer Custom-Quelle:
Das Realistic Model verwendet den gleichen Audioverarbeitungs-Workflow wie das Standard Model, jedoch mit der RealisticLipSyncGenerator
-Variable anstelle von VisemeGenerator
.
Ersetzen Sie in jedem der für das Standard Model gezeigten Beispiele einfach:
VisemeGenerator
durch IhreRealisticLipSyncGenerator
-Variable- Die Funktionsnamen und Parameter bleiben zwischen beiden Modellen identisch
Hinweis: Wenn Sie Audiodaten in kleineren Chunks für responsiveren Lip-Sync verarbeiten möchten, passen Sie die Berechnung in der SetNumSamplesPerChunk
-Funktion an. Beispielsweise liefert die Division der Sample-Rate durch 150 (Streaming alle ~6,67 ms) anstelle von 100 (Streaming alle 10 ms) häufigere Lip-Sync-Updates.
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
- Standard (Faster) Model
- Realistic (Higher Quality) Model
- Suchen Sie die Pose, die das MetaHuman-Gesicht enthält (typischerweise von
Use cached pose 'Body Pose'
) - Fügen Sie den
Blend Runtime MetaHuman Lip Sync
-Knoten hinzu - Verbinden Sie die Pose mit dem
Source Pose
-Eingang desBlend Runtime MetaHuman Lip Sync
-Knotens - Verbinden Sie Ihre
RuntimeVisemeGenerator
-Variable mit demViseme Generator
-Pin - Verbinden Sie die Ausgabe des
Blend Runtime MetaHuman Lip Sync
-Knotens mit demResult
-Pin derOutput Pose
Wenn Lip-Sync in den Audiodaten erkannt wird, animiert sich Ihr Charakter entsprechend:
- Suchen Sie die Pose, die das MetaHuman-Gesicht enthält (typischerweise von
Use cached pose 'Body Pose'
) - Fügen Sie den
Blend Realistic MetaHuman Lip Sync
-Knoten hinzu - Verbinden Sie die Pose mit dem
Source Pose
-Eingang desBlend Realistic MetaHuman Lip Sync
-Knotens - Verbinden Sie Ihre
RealisticLipSyncGenerator
-Variable mit demLip Sync Generator
-Pin - Verbinden Sie die Ausgabe des
Blend Realistic MetaHuman Lip Sync
-Knotens mit demResult
-Pin derOutput Pose
Das Realistic Model bietet eine verbesserte visuelle Qualität mit natürlicheren Mundbewegungen:
Hinweis: Das Realistic Model ist ausschließlich für MetaHuman-Charaktere konzipiert und nicht mit Custom-Charaktertypen kompatibel.
Laughter Animation
Sie können auch Laughter-Animationen hinzufügen, die dynamisch auf in den Audiodaten erkanntes Lachen reagieren:
- Fügen Sie den
Blend Runtime MetaHuman Laughter
-Knoten hinzu - Verbinden Sie Ihre
RuntimeVisemeGenerator
-Variable mit demViseme Generator
-Pin - Falls Sie bereits Lip-Sync verwenden:
- Verbinden Sie die Ausgabe des
Blend Runtime MetaHuman Lip Sync
-Knotens mit demSource Pose
-Eingang desBlend Runtime MetaHuman Laughter
-Knotens - Verbinden Sie die Ausgabe des
Blend Runtime MetaHuman Laughter
-Knotens mit demResult
-Pin derOutput Pose
- Verbinden Sie die Ausgabe des
- Falls Sie nur Laughter ohne Lip-Sync verwenden:
- Verbinden Sie Ihre Quellpose direkt mit dem
Source Pose
-Eingang desBlend Runtime MetaHuman Laughter
-Knotens - Verbinden Sie die Ausgabe mit dem
Result
-Pin
- Verbinden Sie Ihre Quellpose direkt mit dem
Wenn Lachen in den Audiodaten erkannt wird, animiert sich Ihr Charakter entsprechend:
Kombination mit Body-Animationen
Um Lip-Sync und Laughter neben bestehenden Body-Animationen anzuwenden, ohne sie zu überschreiben:
- Fügen Sie einen
Layered blend per bone
-Knoten zwischen Ihren Body-Animationen und der finalen Ausgabe hinzu. Stellen Sie sicher, dassUse Attached Parent
aktiviert ist. - 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 folgendenBone Name
s:FACIAL_C_FacialRoot
FACIAL_C_Neck2Root
FACIAL_C_Neck1Root
- Fügen Sie 1 Item zum
- 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
- Bestehende Animationen (wie
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
- Standard (Faster) Model
- Realistic (Higher Quality) Model
Der Blend Runtime MetaHuman Lip Sync
-Knoten hat Konfigurationsoptionen in seinem Properties-Panel:
Eigenschaft | Standard | Beschreibung |
---|---|---|
Interpolation Speed | 25 | Steuert, wie schnell die Lippenbewegungen zwischen Visemen wechseln. Höhere Werte führen zu schnelleren, abrupten Übergängen. |
Reset Time | 0.2 | Die 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. |
Der Blend Realistic MetaHuman Lip Sync
-Knoten hat Konfigurationsoptionen in seinem Properties-Panel:
Eigenschaft | Standard | Beschreibung |
---|---|---|
Interpolation Speed | 30 | Steuert, wie schnell die Lippenbewegungen zwischen Positionen wechseln. Höhere Werte führen zu schnelleren, abrupten Übergängen. |
Reset Time | 0.2 | Die 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:
Eigenschaft | Standard | Beschreibung |
---|---|---|
Interpolation Speed | 25 | Steuert, wie schnell die Lippenbewegungen zwischen Laughter-Animationen wechseln. Höhere Werte führen zu schnelleren, abrupten Übergängen. |
Reset Time | 0.2 | Die 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 Weight | 0.7 | Skaliert 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:
Überlegung | Standard Model | Realistic Model |
---|---|---|
Charakter-Kompatibilität | MetaHumans und alle Custom-Charaktertypen | Nur MetaHumans |
Visuelle Qualität | Guter Lip-Sync mit effizienter Performance | Verbesserter Realismus mit natürlicheren Mundbewegungen |
Performance | Optimiert für alle Plattformen inklusive Mobile/VR | Leicht höhere Ressourcenanforderungen |
Anwendungsfälle | Allgemeine Anwendungen, Spiele, VR/AR, Mobile | Cinematische 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.