Zum Hauptinhalt springen

Plugin-Konfiguration

Modellkonfiguration

Standard-Modellkonfiguration

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.

Realistische Modellkonfiguration

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

Modelltyp

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

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

Leistungseinstellungen

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 Leistung auf Mehrkernsystemen 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 normalerweise niedrig für die Echtzeitverarbeitung gehalten

Verarbeitungs-Chunk-Größe

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

Stimmungsfähige Modellkonfiguration

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

Grundkonfiguration

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.

Stimmungseinstellungen

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)

Laufzeit-Stimmungssteuerung

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

Stimmungsauswahl-Leitfaden

Wählen Sie geeignete Stimmungen basierend auf Ihrem Inhalt:

StimmungAm besten geeignet fürTypischer Intensitätsbereich
NeutralAllgemeine Konversation, Erzählung, Standardzustand0.5 - 1.0
HappyPositive Inhalte, fröhliche Dialoge, Feiern0.6 - 1.0
SadMelancholische Inhalte, emotionale Szenen, düstere Momente0.5 - 0.9
DisgustNegative Reaktionen, widerliche 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-Konfiguration

Lippenbewegungskonfiguration

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

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.

Lachen-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 vom Blend Runtime MetaHuman Lip Sync-Knoten 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:

Lachkonfiguration

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

EigenschaftStandardBeschreibung
Interpolationsgeschwindigkeit25Steuert, wie schnell die Lippenbewegungen zwischen Lachanimationen übergehen. Höhere Werte führen zu schnelleren, abrupten Übergängen.
Zurücksetzzeit0.2Die Dauer in Sekunden, nach der das Lachen zurückgesetzt wird. Dies ist nützlich, um zu verhindern, dass das Lachen nach dem Stoppen des Audios fortgesetzt wird.
Maximale Lachstärke0.7Skaliert die maximale Intensität der Lachanimation (0.0 - 1.0).

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

Kombinieren 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 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 "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-Sync- und/oder Lachknoten) → Blend Poses 0-Eingang
    • Layered blend-Knoten → Endgültige Result-Pose

Layered Blend Per Bone

Morph-Ziel-Satz-Auswahl

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

Feinabstimmung des Lippen-Sync-Verhaltens

Zungenvorstoß-Steuerung

Im Standard-Lippen-Sync-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-Sync-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

Der realistische Lippen-Sync 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-Sync-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

Berücksichtigen Sie bei der Entscheidung, welches Lippen-Sync-Modell Sie für Ihr Projekt verwenden, diese Faktoren:

ÜberlegungStandard-ModellRealistisches ModellStimmungsfähiges Realistisches Modell
Charakterkompatibilitä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, Lach-Erkennung81 Gesichtssteuerungen, 3 Optimierungsstufen81 Gesichtssteuerungen, 12 Stimmungen, konfigurierbare Ausgabe
Plattformunterstü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 Realistischen Modelle möglicherweise nicht korrekt aufgrund eines Fehlers in UEs Resampling-Bibliothek. Für UE 5.2-Benutzer, die zuverlässige Lippen-Sync-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 Realistische Modell, wenn Sie die höchste visuelle Wiedergabetreue für MetaHuman-Charaktere benötigen
  • Verwenden Sie das Stimmungsfähige Realistische 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 Realistische Modelle: Für zuverlässigen und konsistenten Betrieb mit den Realistischen Modellen 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-Sync-Generator bei jedem Wiedergabestart neu erstellen, wie etwa immer dann, wenn Sie Play Sound 2D aufrufen oder eine andere Methode verwenden, um Sound-Wave-Wiedergabe und Lippen-Sync 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. Lokalisieren 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.

Paketierungskonfiguration (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 Blueprint-Only-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 in ein 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 Blueprint-Only bleiben, die C++-Klasse wird nur für die korrekte Build-Konfiguration benötigt.

Verschlechterte Lippen-Sync-Reaktionsfähigkeit: Wenn Sie feststellen, dass die Lippen-Synchronisation mit der Zeit weniger reaktionsfähig wird, wenn Sie Streaming Sound Wave oder Capturable Sound Wave verwenden, kann dies durch Speicheranhäufung 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 Realistische 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 die vollständige Gesichtsanimation nicht benötigt wird