Przejdź do głównej zawartości

Konfiguracja Wtyczki

Konfiguracja Modelu

Standardowa Konfiguracja Modelu

Węzeł Create Runtime Viseme Generator używa domyślnych ustawień, które sprawdzają się dobrze w większości scenariuszy. Konfiguracja jest obsługiwana poprzez właściwości węzła mieszania Animation Blueprint.

Aby zapoznać się z opcjami konfiguracji Animation Blueprint, zobacz sekcję Konfiguracja Lip Sync poniżej.

Konfiguracja Modelu Realistycznego

Węzeł Create Realistic MetaHuman Lip Sync Generator akceptuje opcjonalny parametr Configuration, który pozwala dostosować zachowanie generatora:

Typ Modelu

Ustawienie Model Type określa, której wersji modelu realistycznego użyć:

Typ ModeluWydajnośćJakość WizualnaObsługa SzumuZalecane Zastosowania
Wysoko Zoptymalizowany (Domyślny)Najwyższa wydajność, najniższe użycie CPUDobra jakośćMoże wykazywać zauważalne ruchy ust przy szumie tła lub dźwiękach innych niż głosCzyste środowiska audio, scenariusze krytyczne pod względem wydajności
Częściowo ZoptymalizowanyDobra wydajność, umiarkowane użycie CPUWysoka jakośćLepsza stabilność z hałaśliwym audioZrównoważona wydajność i jakość, mieszane warunki audio
OryginalnyNadaje się do użycia w czasie rzeczywistym na nowoczesnych CPUNajwyższa jakośćNajbardziej stabilny z szumem tła i dźwiękami innymi niż głosWysokiej jakości produkcje, hałaśliwe środowiska audio, gdy potrzebna jest maksymalna dokładność

Ustawienia Wydajności

Intra Op Threads: Kontroluje liczbę wątków używanych do wewnętrznych operacji przetwarzania modelu.

  • 0 (Domyślne/Automatyczne): Używa automatycznego wykrywania (zazwyczaj 1/4 dostępnych rdzeni CPU, maksymalnie 4)
  • 1-16: Ręczne określenie liczby wątków. Wyższe wartości mogą poprawić wydajność na systemach wielordzeniowych, ale zużywają więcej CPU

Inter Op Threads: Kontroluje liczbę wątków używanych do równoległego wykonywania różnych operacji modelu.

  • 0 (Domyślne/Automatyczne): Używa automatycznego wykrywania (zazwyczaj 1/8 dostępnych rdzeni CPU, maksymalnie 2)
  • 1-8: Ręczne określenie liczby wątków. Zwykle utrzymywane na niskim poziomie dla przetwarzania w czasie rzeczywistym

Rozmiar Porcji Przetwarzania

Processing Chunk Size określa, ile próbek jest przetwarzanych w każdym kroku inferencji. Wartość domyślna to 160 próbek (10ms audio przy 16kHz):

  • Mniejsze wartości zapewniają częstsze aktualizacje, ale zwiększają użycie CPU
  • Większe wartości zmniejszają obciążenie CPU, ale mogą zmniejszyć responsywność lip sync
  • Zaleca się używanie wielokrotności 160 dla optymalnego wyrównania

Ustawianie Rozmiaru Porcji Przetwarzania

Konfiguracja Modelu z Obsługą Nastroju

Węzeł Create Realistic MetaHuman Lip Sync With Mood Generator zapewnia dodatkowe opcje konfiguracji wykraczające poza podstawowy model realistyczny:

Podstawowa Konfiguracja

Lookahead Ms: Czas wyprzedzenia w milisekundach dla poprawionej dokładności synchronizacji ust.

  • Domyślne: 80ms
  • Zakres: 20ms do 200ms (musi być podzielne przez 20)
  • Wyższe wartości zapewniają lepszą synchronizację, ale zwiększają opóźnienie

Output Type: Kontroluje, które sterowania twarzą są generowane.

  • Full Face: Wszystkie 81 sterowań twarzy (brwi, oczy, nos, usta, szczęka, język)
  • Mouth Only: Tylko sterowania związane z ustami, szczęką i językiem

Performance Settings: Używa tych samych ustawień Intra Op Threads i Inter Op Threads co zwykły model realistyczny.

Mood Settings

Available Moods:

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

Mood Intensity: Kontroluje, jak mocno nastrój wpływa na animację (0.0 do 1.0)

Runtime Mood Control

Możesz dostosować ustawienia nastroju podczas działania programu używając następujących funkcji:

  • Set Mood: Zmień aktualny typ nastroju
  • Set Mood Intensity: Dostosuj, jak mocno nastrój wpływa na animację (0.0 do 1.0)
  • Set Lookahead Ms: Zmodyfikuj czas wyprzedzenia dla synchronizacji
  • Set Output Type: Przełącz między sterowaniami Full Face i Mouth Only

Mood Configuration

Mood Selection Guide

Wybierz odpowiednie nastroje na podstawie swojej treści:

MoodBest ForTypical Intensity Range
NeutralOgólna rozmowa, narracja, stan domyślny0.5 - 1.0
HappyPozytywna treść, radosny dialog, świętowanie0.6 - 1.0
SadMelancholijna treść, emocjonalne sceny, ponure momenty0.5 - 0.9
DisgustNegatywne reakcje, treść wywołująca niesmak, odrzucenie0.4 - 0.8
AngerAgresywny dialog, konfrontacyjne sceny, frustracja0.6 - 1.0
SurpriseNieoczekiwane wydarzenia, objawienia, reakcje szoku0.7 - 1.0
FearGroźne sytuacje, niepokój, nerwowy dialog0.5 - 0.9
ConfidentPrezentacje zawodowe, dialog przywódczy, asertywna mowa0.7 - 1.0
ExcitedEnergiczna treść, ogłoszenia, entuzjastyczny dialog0.8 - 1.0
BoredMonotonna treść, niezainteresowany dialog, zmęczona mowa0.3 - 0.7
PlayfulSwobodna rozmowa, humor, lekkie interakcje0.6 - 0.9
ConfusedDialog z wieloma pytaniami, niepewność, zdumienie0.4 - 0.8

Animation Blueprint Configuration

Lip Sync Configuration

Węzeł Blend Runtime MetaHuman Lip Sync ma opcje konfiguracji w panelu właściwości:

WłaściwośćDomyślnieOpis
Interpolation Speed25Kontroluje, jak szybko ruchy ust przechodzą między wizemami. Wyższe wartości skutkują szybszymi, bardziej nagłymi przejściami.
Reset Time0.2Czas w sekundach, po którym synchronizacja ust jest resetowana. Jest to przydatne, aby zapobiec kontynuowaniu synchronizacji ust po zatrzymaniu dźwięku.

Animacja śmiechu

Możesz również dodać animacje śmiechu, które będą dynamicznie reagować na śmiech wykryty w dźwięku:

  1. Dodaj węzeł Blend Runtime MetaHuman Laughter
  2. Podłącz swoją zmienną RuntimeVisemeGenerator do pinu Viseme Generator
  3. Jeśli już używasz synchronizacji ust:
    • Podłącz wyjście z węzła Blend Runtime MetaHuman Lip Sync do Source Pose węzła Blend Runtime MetaHuman Laughter
    • Podłącz wyjście węzła Blend Runtime MetaHuman Laughter do pinu Result w Output Pose
  4. Jeśli używasz tylko śmiechu bez synchronizacji ust:
    • Podłącz swoją pozę źródłową bezpośrednio do Source Pose węzła Blend Runtime MetaHuman Laughter
    • Podłącz wyjście do pinu Result

Blend Runtime MetaHuman Laughter

Gdy śmiech zostanie wykryty w dźwięku, twoja postać będzie dynamicznie animowana odpowiednio:

Laughter

Konfiguracja śmiechu

Węzeł Blend Runtime MetaHuman Laughter ma własne opcje konfiguracji:

WłaściwośćDomyślnieOpis
Interpolation Speed25Kontroluje, jak szybko ruchy ust przechodzą między animacjami śmiechu. Wyższe wartości skutkują szybszymi, bardziej nagłymi przejściami.
Reset Time0.2Czas w sekundach, po którym śmiech jest resetowany. Jest to przydatne, aby zapobiec kontynuowaniu śmiechu po zatrzymaniu dźwięku.
Max Laughter Weight0.7Skaluje maksymalną intensywność animacji śmiechu (0.0 - 1.0).
Uwaga: Wykrywanie śmiechu jest obecnie dostępne tylko w Modelu Standardowym.

Łączenie z Istniejącymi Animacjami

Aby zastosować lip sync i śmiech razem z istniejącymi animacjami ciała i niestandardowymi animacjami twarzy bez ich nadpisywania:

  1. Dodaj węzeł Layered blend per bone pomiędzy twoimi animacjami ciała a końcowym wyjściem. Upewnij się, że opcja Use Attached Parent jest ustawiona na true.
  2. Skonfiguruj ustawienia warstw:
    • Dodaj 1 element do tablicy Layer Setup
    • Dodaj 3 elementy do Branch Filters dla warstwy, z następującymi Bone Name:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. Ważne dla niestandardowych animacji twarzy: W Curve Blend Option wybierz "Use Max Value". Pozwala to na prawidłowe nałożenie niestandardowych animacji twarzy (wyrażeń, emocji itp.) na wierzch lip sync.
  4. Wykonaj połączenia:
    • Istniejące animacje (np. BodyPose) → wejście Base Pose
    • Wyjście animacji twarzy (z węzłów lip sync i/lub śmiechu) → wejście Blend Poses 0
    • Węzeł warstwowego mieszania → końcowa poz Result

Layered Blend Per Bone

Precyzyjne Dostrajanie Zachowania Lip Sync

Kontrola Wysuwania Języka

W standardowym modelu lip sync możesz zauważyć nadmierne wysuwanie języka do przodu podczas niektórych fonemów. Aby kontrolować wysuwanie języka:

  1. Po swoim węźle mieszania lip sync dodaj węzeł Modify Curve
  2. Kliknij prawym przyciskiem myszy na węźle Modify Curve i wybierz Add Curve Pin
  3. Dodaj pin krzywej o nazwie CTRL_expressions_tongueOut
  4. Ustaw właściwość Apply Mode węzła na Scale
  5. Dostosuj parametr Value, aby kontrolować wysunięcie języka (np. 0.8, aby zmniejszyć wysunięcie o 20%)

Kontrola Otwierania Szczęki

Realistyczny lip sync może generować zbyt intensywne ruchy szczęki w zależności od treści audio i wymagań wizualnych. Aby dostosować intensywność otwierania szczęki:

  1. Po swoim węźle mieszania lip sync dodaj węzeł Modify Curve
  2. Kliknij prawym przyciskiem myszy na węźle Modify Curve i wybierz Add Curve Pin
  3. Dodaj pin krzywej o nazwie CTRL_expressions_jawOpen
  4. Ustaw właściwość Apply Mode węzła na Scale
  5. Dostosuj parametr Value, aby kontrolować zakres otwierania szczęki (np. 0.9, aby zmniejszyć ruch szczęki o 10%)

Precyzyjne Dostrajanie Specyficzne dla Nastroju

Dla modeli z obsługą nastroju możesz precyzyjnie dostroić specyficzne wyrażenia emocjonalne:

Kontrola Brwi:

  • CTRL_L_brow_raiseIn.ty / CTRL_R_brow_raiseIn.ty - Podnoszenie wewnętrznej części brwi
  • CTRL_L_brow_raiseOut.ty / CTRL_R_brow_raiseOut.ty - Podnoszenie zewnętrznej części brwi
  • CTRL_L_brow_down.ty / CTRL_R_brow_down.ty - Opuszczanie brwi

Kontrola Wyrażenia Oczu:

  • CTRL_L_eye_squintInner.ty / CTRL_R_eye_squintInner.ty - Mrużenie oczu
  • CTRL_L_eye_cheekRaise.ty / CTRL_R_eye_cheekRaise.ty - Podnoszenie policzków

Porównanie i Wybór Modelu

Wybór Pomiędzy Modelami

Przy wyborze modelu synchronizacji ust dla swojego projektu, weź pod uwagę następujące czynniki:

KryteriumModel StandardowyModel RealistycznyModel Realistyczny z Nastrojami
Kompatybilność z PostaciamiMetaHumans i wszystkie typy postaci niestandardowychTylko MetaHumansTylko MetaHumans
Jakość WizualnaDobra synchronizacja ust z wydajną pracąZwiększony realizm z bardziej naturalnymi ruchami ustZwiększony realizm z ekspresją emocjonalną
WydajnośćZoptymalizowany dla wszystkich platform, w tym mobilnych/VRWyższe wymagania zasoboweWyższe wymagania zasobowe
Funkcje14 wizemów, wykrywanie śmiechu81 kontroli mimiki, 3 poziomy optymalizacji81 kontroli mimiki, 12 nastrojów, konfigurowalne wyjście
Wsparcie PlatformWindows, Android, QuestWindows, Mac, iOS, LinuxWindows, Mac, iOS, Linux
Przypadki UżyciaAplikacje ogólne, gry, VR/AR, mobilneDoświadczenia filmowe, interakcje z bliskaOpowiadanie emocjonalnych historii, zaawansowana interakcja z postaciami

Kompatybilność z Wersją Silnika

Problem z kompatybilnością UE 5.2

Jeśli używasz Unreal Engine 5.2, modele realistyczne mogą nie działać poprawnie z powodu błędu w bibliotece próbkowania UE. Dla użytkowników UE 5.2, którzy potrzebują niezawodnej funkcji synchronizacji ust, proszę używać zamiast tego Modelu Standardowego.

Ten problem dotyczy wyłącznie UE 5.2 i nie wpływa na inne wersje silnika.

Zalecenia Dotyczące Wydajności

  • Dla większości projektów Model Standardowy zapewnia doskonałą równowagę między jakością a wydajnością
  • Używaj Modelu Realistycznego, gdy potrzebujesz najwyższej wierności wizualnej dla postaci MetaHuman
  • Używaj Modelu Realistycznego z Nastrojami, gdy kontrola ekspresji emocjonalnej jest ważna dla Twojej aplikacji
  • Weź pod uwagę możliwości wydajnościowe platformy docelowej przy wyborze między modelami
  • Testuj różne poziomy optymalizacji, aby znaleźć najlepszą równowagę dla swojego konkretnego przypadku użycia

Kompatybilność z TTS

Typ ModeluWsparcie Lokalnego TTS (poprzez Runtime Text To Speech)Wsparcie Zewnętrznego TTSUwagi
Model Standardowy✅ Pełne wsparcie✅ Pełne wsparcieKompatybilny ze wszystkimi opcjami TTS
Model Realistyczny❌ Ograniczone wsparcie✅ Pełne wsparcieKonflikty środowiska uruchomieniowego ONNX z lokalnym TTS
Model Realistyczny z Nastrojami✅ Pełne wsparcie✅ Pełne wsparcieKompatybilny ze wszystkimi opcjami TTS

Rozwiązywanie Problemów

Częste Problemy

Ponowne Tworzenie Generatora dla Modeli Realistycznych: Dla niezawodnej i spójnej pracy z Modelami Realistycznymi, zaleca się ponowne tworzenie generatora za każdym razem, gdy chcesz przekazać nowe dane audio po okresie bezczynności. Jest to spowodowane zachowaniem środowiska uruchomieniowego ONNX, które może spowodować zatrzymanie działania synchronizacji ust przy ponownym używaniu generatorów po okresach ciszy. Kompatybilność lokalnego TTS: Lokalny TTS dostarczany przez wtyczkę Runtime Text To Speech nie jest obecnie obsługiwany z regularnym modelem Realistic z powodu konfliktów środowiska wykonawczego ONNX. Jest jednak w pełni kompatybilny zarówno z modelem Standard, jak i z modelem Realistic z obsługą nastroju. Używaj zewnętrznych usług TTS, jeśli konkretnie potrzebujesz regularnego modelu Realistic z funkcjonalnością TTS.

Optymalizacja wydajności:

  • Dostosuj rozmiar porcji przetwarzania dla modeli Realistic w oparciu o swoje wymagania wydajnościowe
  • Używaj odpowiedniej liczby wątków dla swojego docelowego sprzętu
  • Rozważ użycie typu wyjścia Mouth Only dla modeli z obsługą nastroju, gdy pełna animacja twarzy nie jest potrzebna