Zum Hauptinhalt springen

Plugin-Konfiguration

Modellkonfiguration

Erstelle realistische Modellgeneratoren für jede Wiedergabe neu.

Für einen zuverlässigen Betrieb mit den Modellen „Realistic“ und „Mood-Enabled Realistic“ erstellen Sie den Generator vor jeder neuen Audiowiedergabe neu, anstatt ihn über lange Stille hinweg wiederzuverwenden. Siehe Generator-Neuerstellung im Abschnitt zur Fehlerbehebung für Details.

Standardmodell-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 Konfigurationsoptionen des Animation Blueprints siehe den Abschnitt Lip-Sync-Konfiguration unten.

Konfiguration des realistischen Modells

Der Knoten Create Realistic MetaHuman Lip Sync Generator akzeptiert einen optionalen Configuration-Parameter, mit dem Sie das Verhalten des Generators anpassen können:

Modelltyp

Die Einstellung Modelltyp bestimmt, welche Version des realistischen Modells verwendet wird:

ModelltypLeistungVisuelle QualitätUmgang mit StörgeräuschenEmpfohlene Anwendungsfälle
Hochoptimiert (Standard)Höchste Leistung, geringste CPU-AuslastungGute QualitätKann bei Hintergrundgeräuschen oder Nicht-Sprachgeräuschen sichtbare Mundbewegungen aufweisenSaubere Audio-Umgebungen, leistungskritische Szenarien
TeiloptimiertGute Leistung, moderate CPU-AuslastungHohe QualitätBessere Stabilität bei verrauschtem AudioAusgewogene Leistung und Qualität, gemischte Audiobedingungen
OriginalGeeignet für den Echtzeiteinsatz auf modernen CPUsHöchste QualitätAm stabilsten bei Hintergrundgeräuschen und Nicht-SprachgeräuschenHochwertige Produktionen, verrauschte Audio-Umgebungen, wenn maximale Genauigkeit erforderlich ist

Leistungseinstellungen

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

  • 0 (Standard/Automatisch): Verwendet automatische Erkennung (in der Regel 1/4 der verfügbaren CPU-Kerne, maximal 4)
  • 1-16: Manuell die Anzahl der Threads festlegen. Höhere Werte können die Leistung auf Mehrkernsystemen verbessern, benötigen jedoch 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 (in der Regel 1/8 der verfügbaren CPU-Kerne, maximal 2)
  • 1-8: Thread-Anzahl manuell festlegen. Wird für die Echtzeitverarbeitung normalerweise niedrig gehalten.

Verarbeitungs-Chunk-Größe

Die Verarbeitungs-Chunkgröße bestimmt, wie viele Samples in jedem Inferenzschritt verarbeitet werden. Der Standardwert beträgt 160 Samples (10 ms Audio bei 16 kHz).

  • Kleinere Werte sorgen für häufigere Aktualisierungen, erhöhen jedoch die CPU-Auslastung
  • Größere Werte verringern die CPU-Last, können jedoch die Reaktionsfähigkeit der Lippen synchronisation verringern
  • Es wird empfohlen, Vielfache von 160 zu verwenden, um eine optimale Ausrichtung zu erzielen

Setting Processing Chunk Size

Stimmungsfähige Modellkonfiguration

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

Grundkonfiguration

Lookahead in ms: Vorausschauzeit in Millisekunden für eine verbesserte Lippensynchronisationsgenauigkeit.

  • Standard: 80 ms
  • Bereich: 20 ms bis 200 ms (muss durch 20 teilbar sein)
  • Höhere Werte sorgen für eine bessere Synchronisation, erhöhen jedoch die Latenz.

Ausgabetyp: Steuert, welche Gesichtssteuerungen generiert werden.

  • Gesamtes Gesicht: Alle 81 Gesichtssteuerungen (Augenbrauen, Augen, Nase, Mund, Kiefer, Zunge)
  • Nur Mund: Nur Steuerungen, die mit Mund, Kiefer und Zunge zusammenhängen

Leistungseinstellungen: Verwendet dieselben Einstellungen für Intra-Op-Threads und Inter-Op-Threads wie das reguläre realistische Modell.

Stimmungseinstellungen

Verfügbare Stimmungen:

  • Neutral, Fröhlich, Traurig, Ekel, Wut, Überraschung, Angst
  • Selbstbewusst, Aufgeregt, Gelangweilt, Verspielt, Verwirrt

Stimmungsintensität: Steuert, wie stark die Stimmung die Animation beeinflusst (0,0 bis 1,0)

Runtime-Stimmungssteuerung

Sie können die Stimmungseinstellungen während der Laufzeit mithilfe der folgenden Funktionen anpassen:

  • Stimmung festlegen: Den aktuellen Stimmungstyp ändern
  • Stimmungsintensität festlegen: Anpassen, wie stark die Stimmung die Animation beeinflusst (0,0 bis 1,0)
  • Lookahead in ms festlegen: Die Lookahead-Zeit für die Synchronisierung ändern
  • Ausgabetyp festlegen: Zwischen Vollgesicht- und Nur-Mund-Steuerung umschalten

Mood Configuration

Stimmungsauswahl-Leitfaden

Wählen Sie passende Stimmungen basierend auf Ihrem Inhalt aus:

MoodAm besten geeignet fürTypischer Intensitätsbereich
NeutralAllgemeine Konversation, Erzählung, Standardzustand0.5 - 1.0
FröhlichPositive Inhalte, heitere Dialoge, Feierlichkeiten0.6 - 1.0
TraurigMelancholische Inhalte, emotionale Szenen, düstere Momente0.5 - 0.9
EkelNegative Reaktionen, abstoßende Inhalte, Ablehnung0.4 - 0.8
WutAggressive Dialoge, konfrontative Szenen, Frustration0.6 - 1.0
ÜberraschungUnerwartete Ereignisse, Enthüllungen, Schockreaktionen0.7 - 1.0
AngstBedrohliche Situationen, Besorgnis, nervöse Dialoge0.5 - 0.9
SelbstbewusstProfessionelle Präsentationen, Führungsdialoge, bestimmte Sprache0.7 - 1.0
AufgeregtEnergetische Inhalte, Ankündigungen, begeisterte Dialoge0.8 - 1.0
GelangweiltMonotone Inhalte, desinteressierte Dialoge, müde Sprache0.3 - 0.7
VerspieltZwanglose Konversation, Humor, unbeschwerte Interaktionen0.6 - 0.9
VerwirrtFragenlastige Dialoge, Unsicherheit, Verwirrtheit0.4 - 0.8

Animations-Blueprint-Konfiguration

Lip-Sync-Konfiguration

Der Knoten Blend Runtime MetaHuman Lip Sync verfügt über Konfigurationsoptionen in seinem Eigenschaftenbedienfeld:

EigenschaftStandardBeschreibung
Interpolationsgeschwindigkeit25Steuert, wie schnell die Lippenbewegungen zwischen Visemen übergehen. Höhere Werte führen zu schnelleren, abrupteren Übergängen.
Rückstellzeit0.2Die Dauer in Sekunden, nach der die Lippensynchronisation zurückgesetzt wird. Dies ist nützlich, um zu verhindern, dass die Lippensynchronisation fortgesetzt wird, nachdem das Audio gestoppt wurde.

Lach-Animation

Du kannst auch Lachanimationen 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 Lippen-Synchronisation verwenden:
    • Verbinden Sie die Ausgabe des Knotens Blend Runtime MetaHuman Lip Sync mit der Source Pose des Knotens Blend Runtime MetaHuman Laughter
    • Verbinden Sie die Ausgabe des Knotens Blend Runtime MetaHuman Laughter mit dem Result-Pin der Output Pose
  4. Wenn du nur Lachen ohne Lippen-Synchronisation verwendest:
    • Verbinden Sie Ihre Quellpose direkt mit der Source Pose des Knotens Blend Runtime MetaHuman Laughter
    • Verbinden Sie die Ausgabe mit dem Pin Result

Blend Runtime MetaHuman Laughter

Wenn im Audio Gelächter erkannt wird, animiert sich dein Charakter entsprechend dynamisch:

Lach-Konfiguration

Der Knoten Blend Runtime MetaHuman Laughter besitzt eigene Konfigurationsoptionen:

EigenschaftStandardBeschreibung
Interpolationsgeschwindigkeit25Steuert, wie schnell die Lippenbewegungen zwischen Lachanimationen wechseln. Höhere Werte führen zu schnelleren, abrupteren Ü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 fortgesetzt wird, nachdem das Audio gestoppt wurde.
Maximales Lachgewicht0.7Skaliert die maximale Intensität der Lachanimation (0.0 - 1.0).

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

Mit vorhandenen Animationen kombinieren

Video-Durchlauf

Ziehst du Zuschauen dem Lesen vor? Schau dir das Video-Tutorial an, das genau dieses Setup behandelt.

Um Lippen-Synchronisation und Lachen zusammen mit vorhandenen Körperanimationen und benutzerdefinierten Gesichtsanimationen anzuwenden, ohne diese zu überschreiben:

Körperanimationen

Diese Einrichtung gilt für das Gesichts-Animation-Blueprint, da die Lippen-Synchronisation nicht Teil des Körper-Animation-Blueprints ist. Für benutzerdefinierte Körperanimationen (z. B. Rumpf, Arme und andere Körperbewegungen) verbinden Sie einfach Ihre Animationssequenz (über einen Sequence Player) direkt mit der Ausgabepose im Körper-Animation-Blueprint. Dort ist keine zusätzliche Einrichtung erforderlich.

  1. Fügen Sie einen Layered blend per bone-Knoten zwischen Ihren Körperanimationen und dem finalen Ausgang 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 die Ebene 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 der Curve Blend Option die Option "Use Max Value". Dadurch können benutzerdefinierte Gesichtsanimationen (Ausdrücke, Emotionen usw.) ordnungsgemäß über der Lippenanimation geschichtet werden.
  4. Stellen Sie die Verbindungen her:
    • Ihre benutzerdefinierte Animation (typischerweise ein Sequence Player mit dem gewünschten Animationssequenz-Asset) → Base Pose-Eingabe
    • Gesichtsanimationsausgabe (von Lip-Sync- und/oder Lach-Knoten) → Blend Poses 0-Eingabe
    • Layered-Blend-Knoten → Endgültige Result-Pose

Layered Blend Per Bone

Morph-Target-Set-Auswahl

Das Standardmodell verwendet Pose-Assets, die durch das benutzerdefinierte Pose-Asset-Setup von Natur aus jede Morph-Target-Benennungskonvention unterstützen. Es ist keine zusätzliche Konfiguration erforderlich.

Feinabstimmung des Lippen-Synchronisationsverhaltens

Skalierung spezifischer Lippen-Synchronisations-Kurven

Sie können einzelne Gesichtsbewegungen, die durch Lip Sync erzeugt werden, mit einem Modify Curve-Knoten abschwächen (oder verstärken). Dies ist nützlich, wenn eine bestimmte Kurve für Ihren Audioinhalt oder Charakter zu ausgeprägt wirkt.

Einrichtung:

  1. Nach Ihrem Lip-Sync-Blend-Knoten fügen Sie einen Modify Curve-Knoten hinzu
  2. Klicken Sie mit der rechten Maustaste auf den Knoten und wählen Sie Add Curve Pin aus, und geben Sie dann den Kurvennamen ein, den Sie skalieren möchten
  3. Setzen Sie die Eigenschaft Apply Mode des Knotens auf Scale
  4. Setzen Sie den Parameter Value: Werte unter 1,0 dämpfen die Bewegung, Werte über 1,0 verstärken sie (z. B. 0,8 = 20 % Reduktion)

Häufig skalierte Kurven:

KurvennameZweckGilt fürTypische Anpassung
CTRL_expressions_tongueOutVorwärtsstrecken der Zunge bei bestimmten PhonemenStandardmodell0,8, um das Hervorstrecken zu reduzieren
CTRL_expressions_jawOpenKieferöffnungsbereichRealistische Modelle0,9, um die Kieferbewegung zu reduzieren

Du kannst mehrere Kurven-Pins zum selben Modify Curve-Knoten hinzufügen, um mehrere Kurven gleichzeitig zu skalieren.

Stimmungsspezifische Feinabstimmung

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

Augenbrauensteuerung:

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR – Inneres Augenbrauenheben
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR – Äußeres Augenbrauenheben
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR – Augenbrauensenken

Augenausdruckssteuerung:

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - Augen zusammenkneifen
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - Wangen anheben

Modellvergleich und -auswahl

Die Wahl zwischen Modellen

Wenn Sie entscheiden, welches Lip-Sync-Modell Sie für Ihr Projekt verwenden möchten, berücksichtigen Sie diese Faktoren:

ÜberlegungStandardmodellRealistisches ModellRealistisches Modell mit Stimmungssteuerung
CharakterkompatibilitätMetaHumans und alle benutzerdefinierten CharaktertypenMetaHumans (und ARKit)-CharaktereMetaHumans (und ARKit)-Charaktere
Visuelle QualitätGute Lippensynchronisation mit effizienter LeistungErhöhter Realismus mit natürlicheren MundbewegungenErhöhter Realismus mit emotionalen Ausdrücken
LeistungOptimiert für alle Plattformen, einschließlich Mobilgeräte/VRHöhere RessourcenanforderungenHöhere Ressourcenanforderungen
Funktionen14 Viseme, Lachdetektion81 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, MobilgeräteFilmische Erlebnisse, Nahaufnahme-InteraktionenEmotionales Geschichtenerzählen, erweiterte Charakterinteraktion

Engine-Versionskompatibilität

UE 5.2-Kompatibilitätsproblem

Wenn Sie Unreal Engine 5.2 verwenden, funktionieren die Realistischen Modelle möglicherweise nicht korrekt, da ein Fehler in der Resampling-Bibliothek von UE vorliegt. Für UE-5.2-Benutzer, die eine zuverlässige Lippen-Synchronisationsfunktion benötigen, verwenden Sie bitte stattdessen das Standardmodell.

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

Leistungsempfehlungen

  • Für die meisten Projekte bietet das Standardmodell eine hervorragende Balance zwischen 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 des emotionalen Ausdrucks für Ihre Anwendung wichtig ist
  • Berücksichtigen Sie die Leistungsfähigkeit Ihrer Zielplattform, wenn Sie zwischen den Modellen wählen
  • 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 einen zuverlässigen und konsistenten Betrieb mit den realistischen Modellen wird empfohlen, den Generator jedes Mal neu zu erstellen, wenn Sie nach einer Phase der Inaktivität neue Audiodaten zuführen möchten. Dies liegt am Verhalten der ONNX-Laufzeit, das dazu führen kann, dass die Lippensynchronisation nicht mehr funktioniert, wenn Generatoren nach Phasen der Stille wiederverwendet werden.

Zum Beispiel könntest du den Lip-Sync-Generator bei jedem Wiedergabestart neu erstellen, etwa wann immer du Play Sound 2D aufrufst oder eine andere Methode verwendest, um die Soundwellen-Wiedergabe und Lip-Sync zu starten:

Recreate Lip Sync Generator On Play Sound

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

  1. Finden 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 Ordner RuntimeMetaHumanLipSync als auch RuntimeTextToSpeech 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.

Verpackungskonfiguration (Windows): Wenn die Lippen-Synchronisation in Ihrem verpackten 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-Laufzeit der realistischen Modelle in verpackten Builds verursachen.

Um dies zu beheben:

  1. In deinen Projekteinstellungen → Verpackung setze die Build-Konfiguration auf Shipping
  2. Verpacke dein Projekt neu

Shipping Configuration

Blueprint-Only-Projekte

In einigen Blueprint-only-Projekten kann Unreal Engine trotz ausgewählter Shipping-Konfiguration weiterhin in der Development-Konfiguration bauen. 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 → Neue C++-Klasse und erstellen Sie eine leere Klasse. Dadurch wird das Projekt gezwungen, korrekt in der Shipping-Konfiguration zu bauen. Ihr Projekt kann funktional ein Blueprint-only-Projekt bleiben; die C++-Klasse wird nur für die korrekte Build-Konfiguration benötigt.

Verminderte LippenSync-Reaktionsfähigkeit: Wenn Sie feststellen, dass die LippenSync im Laufe der Zeit weniger reaktionsfähig 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 neue Audiodaten angehängt werden. Um dieses Problem zu vermeiden, rufen Sie die Funktion ReleaseMemory regelmäßig auf, um angesammelten Speicher freizugeben, z. B. etwa alle 30 Sekunden.

Leistungsoptimierung:

  • Passen Sie die Verarbeitungsblockgröße für realistische Modelle an Ihre Leistungsanforderungen an
  • Verwenden Sie geeignete Thread-Anzahlen für Ihre Zielhardware
  • Erwägen Sie den Ausgabetyp „Nur Mund“ für stimmungsfähige Modelle, wenn keine vollständige Gesichtsanimation erforderlich ist