Zum Hauptinhalt springen

Plugin-Konfiguration

Modell-Konfiguration

Generatoren für realistische Modelle bei jeder Wiedergabe neu erstellen

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 längere Stille hinweg wiederzuverwenden. Siehe Generator Recreation in der Fehlerbehebung für Details.

Standard-Modell-Konfiguration

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

Informationen zu den Konfigurationsoptionen des Animation-Blueprints finden Sie im Abschnitt Lip Sync Configuration unten.

Konfiguration des Realistic-Modells

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

Model Type

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

Model TypeLeistungVisuelle QualitätRauschverarbeitungEmpfohlene Anwendungsfälle
Highly Optimized (Standard)Höchste Leistung, geringste CPU-AuslastungGute QualitätKann bei Hintergrundgeräuschen oder Nicht-Sprachlauten auffällige Mundbewegungen zeigenSaubere Audio-Umgebungen, leistungskritische Szenarien
Semi-OptimizedGute Leistung, moderate CPU-AuslastungHohe QualitätBessere Stabilität bei verrauschtem AudioAusgewogene Leistung und Qualität, gemischte Audiobedingungen
OriginalGeeignet für Echtzeitnutzung auf modernen CPUsHöchste QualitätAm stabilsten bei Hintergrundgeräuschen und Nicht-SprachlautenHochwertige 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 (typischerweise 1/4 der verfügbaren CPU-Kerne, maximal 4)
  • 1-16: Manuelle Angabe der Thread-Anzahl. Höhere Werte können die Leistung 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: Manuelle Angabe der Thread-Anzahl. Wird für die Echtzeitverarbeitung normalerweise niedrig gehalten

Verarbeitungs-Chunk-Größe

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

  • Kleinere Werte liefern häufigere Aktualisierungen, erhöhen aber die CPU-Auslastung
  • Größere Werte reduzieren die CPU-Last, können aber die Lippensynchronisations-Reaktionsfähigkeit verringern
  • Es wird empfohlen, Vielfache von 160 für eine optimale Ausrichtung zu verwenden

Einstellen der Processing Chunk Size

Konfiguration des Mood-Enabled-Modells

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

Grundkonfiguration

Lookahead Ms: Vorausschau-Timing in Millisekunden für eine verbesserte Lippensynchronisations-Genauigkeit.

  • Standard: 80 ms
  • Bereich: 20 ms bis 200 ms (muss durch 20 teilbar sein)
  • Höhere Werte bieten eine 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 zungenbezogene Steuerungen

Performance Settings: Verwendet dieselben Intra Op Threads- und Inter Op Threads-Einstellungen wie das normale 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 die 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: Ändert das Vorausschau-Timing für die Synchronisation
  • Set Output Type: Wechselt zwischen Full Face- und Mouth Only-Steuerungen

Stimmungskonfiguration

Leitfaden zur Stimmungsauswahl

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

StimmungAm besten geeignet fürTypischer Intensitätsbereich
NeutralAllgemeine Konversation, Erzählung, Standardzustand0,5 - 1,0
HappyPositive Inhalte, fröhlicher Dialog, Feierlichkeiten0,6 - 1,0
SadMelancholische Inhalte, emotionale Szenen, besinnliche Momente0,5 - 0,9
DisgustNegative Reaktionen, anstößige Inhalte, Ablehnung0,4 - 0,8
AngerAggressiver Dialog, konfrontative Szenen, Frustration0,6 - 1,0
SurpriseUnerwartete Ereignisse, Enthüllungen, Schockreaktionen0,7 - 1,0
FearBedrohliche Situationen, Angst, nervöser Dialog0,5 - 0,9
ConfidentProfessionelle Präsentationen, Führungsdialog, selbstbewusste Rede0,7 - 1,0
ExcitedEnergiegeladene Inhalte, Ankündigungen, enthusiastischer Dialog0,8 - 1,0
BoredMonotone Inhalte, desinteressierter Dialog, müde Rede0,3 - 0,7
PlayfulLässige Konversation, Humor, unbeschwerte Interaktionen0,6 - 0,9
ConfusedFrage-lastiger Dialog, Unsicherheit, Verwirrung0,4 - 0,8

Animation-Blueprint-Konfiguration

Lip Sync-Konfiguration

Der Knoten Blend Runtime MetaHuman Lip Sync hat Konfigurationsoptionen in seinem Eigenschaftenfenster:

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 Lippensynchronisation zurückgesetzt wird. Dies ist nützlich, um zu verhindern, dass die Lippensynchronisation fortgesetzt wird, nachdem das Audio gestoppt wurde.

Lach-Animation

Sie können auch Lach-Animationen hinzufügen, die dynamisch auf im Audio erkanntes Lachen reagieren:

  1. Fügen Sie den Knoten Blend Runtime MetaHuman Laughter hinzu
  2. Verbinden Sie Ihre RuntimeVisemeGenerator-Variable mit dem Pin Viseme Generator
  3. Wenn Sie bereits Lippensynchronisation 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 Pin Result der Output Pose
  4. Wenn Sie nur Lachen ohne Lippensynchronisation verwenden:
    • Verbinden Sie Ihre Quell-Pose direkt mit der Source Pose des Knotens Blend Runtime MetaHuman Laughter
    • Verbinden Sie die Ausgabe mit dem Pin Result

Blend Runtime MetaHuman Laughter

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

Lach-Konfiguration

Der Knoten Blend Runtime MetaHuman Laughter hat seine eigenen Konfigurationsoptionen:

EigenschaftStandardBeschreibung
Interpolationsgeschwindigkeit25Steuert, wie schnell die Lippenbewegungen zwischen Lach-Animationen übergehen. Höhere Werte führen zu schnelleren, abrupten Übergängen.
Reset-Zeit0,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 Lach-Gewicht0,7Skaliert die maximale Intensität der Lach-Animation (0,0 - 1,0).

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

Kombinieren mit bestehenden Animationen

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

  1. Fügen Sie einen Knoten Layered blend per bone zwischen Ihren Körperanimationen und der endgültigen Ausgabe ein. Stellen Sie sicher, dass Use Attached Parent wahr 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 im Curve Blend Option die Option "Use Max Value". Dies ermöglicht es, benutzerdefinierte Gesichtsanimationen (Ausdrücke, Emotionen usw.) ordnungsgemäß ü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 Lach-Knoten) → Blend Poses 0-Eingang
    • Geschichteter Mischknoten → Endgültige Result-Pose

Layered Blend Per Bone

Auswahl des Morph-Ziel-Sets

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

Feinabstimmung des Lippen-Synchronisationsverhaltens

Skalierung spezifischer Lippen-Synchronisationskurven

Sie können einzelne, durch die Lippen-Synchronisation erzeugte Gesichtsbewegungen mit einem Modify Curve-Knoten dämpfen (oder verstärken). Dies ist nützlich, wenn eine bestimmte Kurve für Ihren Audioinhalt oder Charakter zu ausgeprägt erscheint.

Einrichtung:

  1. Fügen Sie nach Ihrem Lippen-Synchronisations-Mischknoten einen Modify Curve-Knoten hinzu
  2. Klicken Sie mit der rechten Maustaste auf den Knoten und wählen Sie Add Curve Pin, 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 Value-Parameter: 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ärtsgerichtetes Herausstrecken der Zunge bei bestimmten PhonemenStandard-Modell0,8 zur Reduzierung des Herausstreckens
CTRL_expressions_jawOpenKieferöffnungsbereichRealistische Modelle0,9 zur Reduzierung der Kieferbewegung

Sie können mehrere Kurven-Pins zum selben Modify Curve-Knoten hinzufügen, um mehrere Kurven gleichzeitig zu skalieren.

Stimmungsspezifische Feinabstimmung

Für stimmungsaktivierte 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 - Augenzusammenkneifen
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - Wangenheben

Modellvergleich und -auswahl

Auswahl zwischen Modellen

Berücksichtigen Sie bei der Entscheidung, welches Lippen-Synchronisationsmodell Sie für Ihr Projekt verwenden möchten, diese Faktoren:

ÜberlegungStandard-ModellRealistisches ModellStimmungsaktiviertes 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 inkl. Mobil/VRHöhere RessourcenanforderungenHöhere Ressourcenanforderungen
Funktionen14 Viseme, Lacherkennung81 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, MobilFilmische 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 aufgrund eines Fehlers in der Resampling-Bibliothek von UE möglicherweise nicht korrekt. Für UE 5.2-Benutzer, die eine zuverlässige Lippen-Synchronisationsfunktionalität benötigen, verwenden Sie stattdessen bitte das Standard-Modell.

Dieses Problem ist spezifisch für UE 5.2 und betrifft keine anderen Engine-Versionen.

Leistungsempfehlungen

  • Für die meisten Projekte bietet das Standard-Modell 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 stimmungsaktivierte realistische Modell, wenn die Kontrolle emotionaler Ausdrücke für Ihre Anwendung wichtig ist
  • Berücksichtigen Sie die Leistungsfähigkeit 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 einen 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-Laufzeitverhalten, das dazu führen kann, dass die Lippen-Synchronisation nicht mehr funktioniert, wenn Generatoren nach Stillephasen wiederverwendet werden.

Sie könnten beispielsweise den Lippen-Synchronisationsgenerator bei jedem Wiedergabestart neu erstellen, z.B. immer dann, wenn Sie Play Sound 2D aufrufen oder eine andere Methode zum Starten der Schallwellenwiedergabe und Lippen-Synchronisation verwenden:

Lippen-Synchronisationsgenerator bei Tonwiedergabe neu erstellen

Plugin-Speicherort 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 in paketierten Builds Probleme auftreten, wenn die Plugins im Marketplace-Ordner der Engine installiert sind. So beheben Sie dies:

  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 beide Ordner RuntimeMetaHumanLipSync und 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.

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

So beheben Sie dies:

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

Shipping-Konfiguration

Nur-Blueprint-Projekte

In einigen Nur-Blueprint-Projekten erstellt Unreal Engine möglicherweise trotzdem in der Development-Konfiguration, 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 erstellen. Ihr Projekt kann in der Funktionalität Nur-Blueprint bleiben, die C++-Klasse wird nur für die korrekte Build-Konfiguration benötigt.

Verschlechterte Lippen-Synchronisationsreaktionsfähigkeit: Wenn Sie feststellen, dass die Lippen-Synchronisation bei Verwendung von Streaming Sound Wave oder Capturable Sound Wave im Laufe der Zeit weniger reaktionsschnell wird, kann dies durch Speicheransammlung verursacht werden. Standardmäßig wird Speicher jedes Mal neu zugewiesen, wenn neues Audio angehängt wird. Um dieses Problem zu verhindern, rufen Sie regelmäßig die Funktion ReleaseMemory auf, um angesammelten Speicher freizugeben, z.B. alle 30 Sekunden.

Leistungsoptimierung:

  • Passen Sie die Verarbeitungs-Chunk-Größe für realistische Modelle basierend auf Ihren Leistungsanforderungen an
  • Verwenden Sie geeignete Thread-Anzahlen für Ihre Zielhardware
  • Erwägen Sie die Verwendung des Ausgabetyps Nur Mund für stimmungsaktivierte Modelle, wenn keine vollständige Gesichtsanimation erforderlich ist