Zum Hauptinhalt springen

Plugin-Konfiguration

Model-Konfiguration

Standard-Modell-Konfiguration

Der Create Runtime Viseme Generator-Knoten verwendet Standardeinstellungen, die für die meisten Szenarien gut funktionieren. Die Konfiguration erfolgt über die Eigenschaften des Animation Blueprint-Blending-Knotens.

Für Animation Blueprint-Konfigurationsoptionen siehe den Abschnitt Lip Sync Configuration unten.

Realistisches Modell-Konfiguration

Der Create Realistic MetaHuman Lip Sync Generator-Knoten akzeptiert einen optionalen Configuration-Parameter, der es Ihnen ermöglicht, das Verhalten des Generators anzupassen:

Model Type

Die Model Type-Einstellung bestimmt, welche Version des realistischen Modells verwendet wird:

Model TypePerformanceVisuelle QualitätRauschbehandlungEmpfohlene Anwendungsfälle
Highly Optimized (Standard)Höchste Performance, niedrigste CPU-AuslastungGute QualitätKann merkliche Mundbewegungen bei Hintergrundgeräuschen oder Nicht-Sprach-Geräuschen zeigenSaubere Audio-Umgebungen, leistungskritische Szenarien
Semi-OptimizedGute Performance, moderate CPU-AuslastungHohe QualitätBessere Stabilität bei verrauschtem AudioAusgewogene Performance und Qualität, gemischte Audio-Bedingungen
OriginalGeeignet für Echtzeit-Einsatz auf modernen CPUsHöchste QualitätStabilste bei Hintergrundgeräuschen und Nicht-Sprach-GeräuschenHochwertige Produktionen, verrauschte Audio-Umgebungen, wenn maximale Genauigkeit benötigt wird

Performance Settings

Intra Op Threads: Steuert die Anzahl der Threads, die für interne Modellverarbeitungsoperationen verwendet werden.

  • 0 (Standard/Automatisch): Verwendet automatische Erkennung (typischerweise 1/4 der verfügbaren CPU-Kerne, maximal 4)
  • 1-16: Thread-Anzahl manuell angeben. Höhere Werte können die Performance auf Multi-Core-Systemen verbessern, verbrauchen aber mehr CPU

Inter Op Threads: Steuert die Anzahl der Threads, die für die parallele Ausführung verschiedener Modelloperationen verwendet werden.

  • 0 (Standard/Automatisch): Verwendet automatische Erkennung (typischerweise 1/8 der verfügbaren CPU-Kerne, maximal 2)
  • 1-8: Thread-Anzahl manuell angeben. Wird für die Echtzeitverarbeitung normalerweise niedrig gehalten

Processing Chunk Size

Die Processing Chunk Size bestimmt, wie viele Samples in jedem Inferenzschritt verarbeitet werden. Der Standardwert ist 160 Samples (10ms Audio bei 16kHz):

  • Kleinere Werte bieten häufigere Updates, erhöhen aber die CPU-Auslastung
  • Größere Werte reduzieren die CPU-Last, können aber die Reaktionsfähigkeit der Lippenbewegung verringern
  • Empfohlen, Vielfache von 160 für optimale Ausrichtung zu verwenden

Setting Processing Chunk Size

Mood-Enabled Model Configuration

Der Create Realistic MetaHuman Lip Sync With Mood Generator-Knoten bietet zusätzliche Konfigurationsoptionen über das grundlegende realistische Modell hinaus:

Basic Configuration

Lookahead Ms: Vorausschauzeit in Millisekunden für verbesserte Lippenbewegungsgenauigkeit.

  • Standard: 80ms
  • Bereich: 20ms bis 200ms (muss durch 20 teilbar sein)
  • Höhere Werte bieten bessere Synchronisation, erhöhen aber die Latenz

Output Type: Steuert, welche Gesichtssteuerungen generiert werden.

  • Full Face: Alle 81 Gesichtssteuerungen (Augenbrauen, Augen, Nase, Mund, Kiefer, Zunge)
  • Mouth Only: Nur Mund-, Kiefer- und Zungen-bezogene Steuerungen

Performance Settings: Verwendet die gleichen Intra Op Threads- und Inter Op Threads-Einstellungen wie das reguläre realistische Modell.

Mood Settings

Verfügbare Stimmungen:

  • Neutral, Happy, Sad, Disgust, Anger, Surprise, Fear
  • Confident, Excited, Bored, Playful, Confused

Mood Intensity: Steuert, wie stark die Stimmung die Animation beeinflusst (0.0 bis 1.0)

Runtime Mood Control

Sie können Stimmungseinstellungen während der Laufzeit mit den folgenden Funktionen anpassen:

  • Set Mood: Ändert den aktuellen Stimmungstyp
  • Set Mood Intensity: Passt an, wie stark die Stimmung die Animation beeinflusst (0.0 bis 1.0)
  • Set Lookahead Ms: Modifiziert die Vorausschauzeit für die Synchronisation
  • Set Output Type: Wechselt zwischen Full Face- und Mouth Only-Steuerungen

Mood Configuration

Mood Selection Guide

Wählen Sie geeignete Stimmungen basierend auf Ihrem Inhalt:

MoodAm besten geeignet fürTypischer Intensitätsbereich
NeutralAllgemeine Konversation, Erzählung, Standardzustand0.5 - 1.0
HappyPositive Inhalte, fröhliche Dialoge, Feierlichkeiten0.6 - 1.0
SadMelancholische Inhalte, emotionale Szenen, düstere Momente0.5 - 0.9
DisgustNegative Reaktionen, abstoßende Inhalte, Ablehnung0.4 - 0.8
AngerAggressive Dialoge, konfrontative Szenen, Frustration0.6 - 1.0
SurpriseUnerwartete Ereignisse, Enthüllungen, Schockreaktionen0.7 - 1.0
FearBedrohliche Situationen, Angst, nervöse Dialoge0.5 - 0.9
ConfidentProfessionelle Präsentationen, Führungsdialoge, bestimmte Sprache0.7 - 1.0
ExcitedEnergetische Inhalte, Ankündigungen, enthusiastische Dialoge0.8 - 1.0
BoredMonotone Inhalte, desinteressierte Dialoge, müde Sprache0.3 - 0.7
PlayfulLockeres Gespräch, Humor, unbeschwerte Interaktionen0.6 - 0.9
ConfusedDialoge mit vielen Fragen, Unsicherheit, Verwirrung0.4 - 0.8

Animation Blueprint Configuration

Lip Sync Configuration

Der Blend Runtime MetaHuman Lip Sync-Knoten 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 die Lippenbewegung zurückgesetzt wird. Dies ist nützlich, um zu verhindern, dass die Lippenbewegung fortgesetzt wird, nachdem das Audio gestoppt hat.

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 Lippenbewegung 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 der Output Pose
  4. Wenn Sie nur Lachen ohne Lippenbewegung 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, wird Ihre Figur entsprechend dynamisch animiert:

Laughter-Konfiguration

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

EigenschaftStandardBeschreibung
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 weitergeht, nachdem das Audio gestoppt hat.
Max Laughter Weight0.7Skaliert die maximale Intensität der Lachen-Animation (0.0 - 1.0).

Hinweis: Die Lachen-Erkennung ist derzeit nur mit dem Standard-Modell verfügbar.

Kombination mit bestehenden Animationen

Um Lippen-Synchronisation und Lachen neben bestehenden Körperanimationen und benutzerdefinierten Gesichtsanimationen anzuwenden, ohne sie 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 Item zum Layer Setup-Array hinzu
    • Fügen Sie 3 Items 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 "Use Max Value". Dies ermöglicht es, benutzerdefinierte Gesichtsanimationen (Ausdrücke, Emotionen, etc.) 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

Morph Target Set-Auswahl

Das Standard-Modell verwendet Pose-Assets, die durch das benutzerdefinierte Pose-Asset-Setup inhärent jede Morph-Target-Namenskonvention unterstützen. Keine zusätzliche Konfiguration ist erforderlich.

Feinabstimmung des Lippen-Synchronisations-Verhaltens

Zungenvorstoß-Steuerung

Im Standard-Lippen-Synchronisations-Modell bemerken Sie möglicherweise übermäßige Vorwärtsbewegung der Zunge während bestimmter Phoneme. Um den Zungenvorstoß zu steuern:

  1. Fügen Sie nach Ihrem Lippen-Synchronisations-Blend-Knoten einen Modify Curve-Knoten hinzu
  2. Klicken Sie mit der rechten Maustaste auf den Modify Curve-Knoten 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 Knotens auf Scale
  5. Passen Sie den Value-Parameter an, um die Zungenausdehnung zu steuern (z.B. 0.8, um den Vorstoß um 20% zu reduzieren)

Kieferöffnungs-Steuerung

Die realistische Lippen-Synchronisation kann je nach Ihrem Audioinhalt und visuellen Anforderungen übermäßig responsive Kieferbewegungen erzeugen. Um die Kieferöffnungsintensität anzupassen:

  1. Fügen Sie nach Ihrem Lippen-Synchronisations-Blend-Knoten einen Modify Curve-Knoten hinzu
  2. Klicken Sie mit der rechten Maustaste auf den Modify Curve-Knoten 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 Knotens 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)

Stimmungs-spezifische Feinabstimmung

Für stimmungsfähige Modelle können Sie spezifische emotionale Ausdrücke feinabstimmen:

Augenbrauen-Steuerung:

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - Innere Augenbrauenhebung
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - Äußere Augenbrauenhebung
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - Augenbrauensenkung

Augenausdrucks-Steuerung:

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - Augen-Zusammenkneifen
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - Wangenhebung

Modellvergleich und -auswahl

Auswahl zwischen Modellen

Bei der Entscheidung, welches Lippen-Synchronisations-Modell für Ihr Projekt verwendet werden soll, berücksichtigen Sie diese Faktoren:

ÜberlegungStandard-ModellRealistic-ModellStimmungsfähiges Realistic-Modell
Charakter-KompatibilitätMetaHumans und alle benutzerdefinierten CharaktertypenMetaHumans (und ARKit)-CharaktereMetaHumans (und ARKit)-Charaktere
Visuelle QualitätGute Lippen-Synchronisation mit effizienter LeistungVerbesserter Realismus mit natürlicheren MundbewegungenVerbesserter Realismus mit emotionalen Ausdrücken
LeistungOptimiert für alle Plattformen inklusive Mobile/VRHöhere RessourcenanforderungenHöhere Ressourcenanforderungen
Funktionen14 Viseme, Lachen-Erkennung81 Gesichtssteuerungen, 3 Optimierungsstufen81 Gesichtssteuerungen, 12 Stimmungen, konfigurierbare Ausgabe
Plattform-UnterstützungWindows, Android, QuestWindows, Mac, iOS, Linux, Android, QuestWindows, Mac, iOS, Linux, Android, Quest
AnwendungsfälleAllgemeine Anwendungen, Spiele, VR/AR, MobileFilmische Erfahrungen, Nahaufnahme-InteraktionenEmotionelles Storytelling, fortgeschrittene Charakterinteraktion

Engine-Version-Kompatibilität

UE 5.2-Kompatibilitätsproblem

Wenn Sie Unreal Engine 5.2 verwenden, funktionieren die Realistic Models möglicherweise nicht korrekt aufgrund eines Fehlers in UEs Resampling-Bibliothek. Für UE 5.2-Benutzer, die zuverlässige Lippen-Synchronisations-Funktionalität benötigen, verwenden Sie bitte stattdessen das Standard-Modell.

Dieses Problem ist spezifisch für UE 5.2 und betrifft andere Engine-Versionen nicht.

Leistungsempfehlungen

  • Für die meisten Projekte bietet das Standard-Modell eine ausgezeichnete Balance aus Qualität und Leistung
  • Verwenden Sie das Realistic-Modell, wenn Sie die höchste visuelle Wiedergabetreue für MetaHuman-Charaktere benötigen
  • Verwenden Sie das Stimmungsfähige Realistic-Modell, wenn die Kontrolle emotionaler Ausdrücke für Ihre Anwendung wichtig ist
  • Berücksichtigen Sie die Leistungsfähigkeiten Ihrer Zielplattform bei der Auswahl zwischen Modellen
  • Testen Sie verschiedene Optimierungsstufen, um die beste Balance für Ihren spezifischen Anwendungsfall zu finden

Fehlerbehebung

Häufige Probleme

Generator-Neuerstellung für Realistic Models: Für zuverlässigen und konsistenten Betrieb mit den Realistic Models wird empfohlen, den Generator jedes Mal neu zu erstellen, wenn Sie nach einer Inaktivitätsperiode neue Audiodaten zuführen möchten. Dies liegt am ONNX-Runtime-Verhalten, das dazu führen kann, dass die Lippen-Synchronisation aufhört zu funktionieren, wenn Generatoren nach Stilleperioden wiederverwendet werden.

Zum Beispiel könnten Sie den Lippen-Synchronisations-Generator bei jedem Wiedergabestart neu erstellen, wie etwa immer, wenn Sie Play Sound 2D aufrufen oder eine andere Methode verwenden, um die Sound-Wave-Wiedergabe und Lippen-Synchronisation zu starten:

Recreate Lip Sync Generator On Play Sound

Plugin-Ort für Runtime Text To Speech-Integration: Wenn Sie Runtime MetaHuman Lip Sync zusammen mit Runtime Text To Speech verwenden (beide Plugins verwenden ONNX Runtime), können Sie in gepackten Builds Probleme erfahren, wenn die Plugins im Marketplace-Ordner der Engine installiert sind. Um dies zu beheben:

  1. Suchen Sie beide Plugins in Ihrem UE-Installationsordner unter \Engine\Plugins\Marketplace (z.B. C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace)
  2. Verschieben Sie sowohl den RuntimeMetaHumanLipSync- als auch den RuntimeTextToSpeech-Ordner in den Plugins-Ordner Ihres Projekts
  3. Wenn Ihr Projekt keinen Plugins-Ordner hat, erstellen Sie einen im selben Verzeichnis wie Ihre .uproject-Datei
  4. Starten Sie den Unreal Editor neu

Dies behebt Kompatibilitätsprobleme, die auftreten können, wenn mehrere ONNX-Runtime-basierte Plugins aus dem Marketplace-Verzeichnis der Engine geladen werden.

Packaging-Konfiguration (Windows): Wenn die Lippen-Synchronisation in Ihrem gepackten Projekt unter Windows nicht korrekt funktioniert, stellen Sie sicher, dass Sie die Shipping-Build-Konfiguration anstelle von Development verwenden. Die Development-Konfiguration kann Probleme mit der ONNX-Runtime der realistischen Modelle in gepackten Builds verursachen.

Um dies zu beheben:

  1. Setzen Sie in Ihren Projekteinstellungen → Packaging die Build-Konfiguration auf Shipping
  2. Packen Sie Ihr Projekt neu

Shipping Configuration

Blueprint-Only-Projekte

In einigen reinen Blueprint-Projekten kann Unreal Engine möglicherweise immer noch in der Development-Konfiguration bauen, selbst wenn Shipping ausgewählt ist. Wenn dies passiert, konvertieren Sie Ihr Projekt zu einem C++-Projekt, indem Sie mindestens eine C++-Klasse hinzufügen (sie kann leer sein). Gehen Sie dazu im UE-Editor-Menü zu Tools → New C++ Class und erstellen Sie eine leere Klasse. Dies zwingt das Projekt, korrekt in der Shipping-Konfiguration zu bauen. Ihr Projekt kann funktional rein Blueprint-basiert bleiben, die C++-Klasse wird nur für die korrekte Build-Konfiguration benötigt.

Verschlechterte Lippen-Synchronisations-Responsiveness: Wenn Sie feststellen, dass die Lippen-Synchronisation mit der Zeit weniger responsiv wird, wenn Sie Streaming Sound Wave oder Capturable Sound Wave verwenden, kann dies durch Speicheransammlung verursacht werden. Standardmäßig wird der Speicher jedes Mal neu zugewiesen, wenn neues Audio angehängt wird. Um dieses Problem zu verhindern, rufen Sie die ReleaseMemory-Funktion periodisch auf, um angesammelten Speicher freizugeben, etwa alle 30 Sekunden oder so.

Leistungsoptimierung:

  • Passen Sie die Processing Chunk Size für Realistic-Modelle basierend auf Ihren Leistungsanforderungen an
  • Verwenden Sie angemessene Thread-Anzahlen für Ihre Zielhardware
  • Erwägen Sie die Verwendung des Mouth Only-Ausgabetyps für stimmungsfähige Modelle, wenn keine vollständige Gesichtsanimation benötigt wird