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ę w większości scenariuszy. Konfiguracja jest obsługiwana poprzez właściwości węzła mieszania w Animation Blueprint.

Aby poznać opcje konfiguracji Animation Blueprint, zobacz sekcję Konfiguracja Synchronizacji Warg poniżej.

Konfiguracja Realistycznego Modelu

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 realistycznego modelu 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 hałasie w tle 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 procesorachNajwyższa jakośćNajbardziej stabilny z hałasem w tle i dźwiękami innymi niż głosProdukcje wysokiej jakości, 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ść w 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 wnioskowania. Wartość domyślna to 160 próbek (10 ms audio przy 16 kHz):

  • 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ść synchronizacji warg
  • 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

Wyprzedzenie (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

Typ Wyjścia: Kontroluje, które sterowania mimiką są generowane.

  • Cała Twarz: Wszystkie 81 sterowań mimiką (brwi, oczy, nos, usta, szczęka, język)
  • Tylko Usta: Tylko sterowania związane z ustami, szczęką i językiem

Ustawienia Wydajności: Używa tych samych ustawień Intra Op Threads i Inter Op Threads co zwykły model realistyczny.

Ustawienia Nastroju

Dostępne Nastroje:

  • Neutralny, Szczęśliwy, Smutny, Zniesmaczony, Zły, Zaskoczony, Przestraszony
  • Pewny siebie, Podekscytowany, Znudzony, Zabawowy, Zdezorientowany

Intensywność Nastroju: Kontroluje, jak mocno nastrój wpływa na animację (0.0 do 1.0)

Kontrola Nastroju w Czasie Rzeczywistym

Możesz dostosować ustawienia nastroju podczas działania programu za pomocą następujących funkcji:

  • Ustaw Nastrój: Zmień aktualny typ nastroju
  • Ustaw Intensywność Nastroju: Dostosuj, jak mocno nastrój wpływa na animację (0.0 do 1.0)
  • Ustaw Wyprzedzenie (ms): Zmodyfikuj czas wyprzedzenia dla synchronizacji
  • Ustaw Typ Wyjścia: Przełącz między sterowaniem Całą Twarzą a Tylko Ustami

Konfiguracja Nastroju

Przewodnik Wyboru Nastroju

Wybieraj odpowiednie nastroje w oparciu o treść:

NastrójNajlepszy dlaTypowy Zakres Intensywności
NeutralnyOgólna rozmowa, narracja, stan domyślny0.5 - 1.0
SzczęśliwyTreści pozytywne, radosne dialogi, świętowanie0.6 - 1.0
SmutnyTreści melancholijne, sceny emocjonalne, ponure momenty0.5 - 0.9
ZniesmaczonyReakcje negatywne, treści niesmaczne, odrzucenie0.4 - 0.8
ZłyDialogi agresywne, sceny konfrontacyjne, frustracja0.6 - 1.0
ZaskoczonyNieoczekiwane wydarzenia, objawienia, reakcje szoku0.7 - 1.0
PrzestraszonySytuacje zagrażające, niepokój, nerwowe dialogi0.5 - 0.9
Pewny siebiePrezentacje zawodowe, dialogi przywódcze, stanowcza mowa0.7 - 1.0
PodekscytowanyTreści energetyczne, ogłoszenia, entuzjastyczne dialogi0.8 - 1.0
ZnudzonyTreści monotonne, dialogi obojętne, zmęczona mowa0.3 - 0.7
ZabawowyRozmowa swobodna, humor, lekkie interakcje0.6 - 0.9
ZdezorientowanyDialogi z wieloma pytaniami, niepewność, zakłopotanie0.4 - 0.8

Konfiguracja Blueprint Animacji

Konfiguracja Synchronizacji Ust

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

WłaściwośćDomyślnaOpis
Prędkość interpolacji25Kontroluje, jak szybko ruchy ust przechodzą między wizemami. Wyższe wartości skutkują szybszymi, bardziej nagłymi przejściami.
Czas resetu0.2Czas w sekundach, po którym synchronizacja ust jest resetowana. Jest to przydatne, aby zapobiec kontynuacji 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ślnaOpis
Prędkość interpolacji25Kontroluje, jak szybko ruchy ust przechodzą między animacjami śmiechu. Wyższe wartości skutkują szybszymi, bardziej nagłymi przejściami.
Czas resetu0.2Czas w sekundach, po którym śmiech jest resetowany. Jest to przydatne, aby zapobiec kontynuacji śmiechu po zatrzymaniu dźwięku.
Maksymalna waga śmiechu0.7Skaluje maksymalne natężenie animacji śmiechu (0.0 - 1.0).

Uwaga: Wykrywanie śmiechu jest obecnie dostępne tylko w Modelu Standardowym.

Łączenie z Istniejącymi Animacjami

Aby zastosować synchronizację ust i śmiech wraz z istniejącymi animacjami ciała i niestandardowymi animacjami twarzy bez ich nadpisywania:

  1. Dodaj węzeł Layered blend per bone między animacjami ciała a końcowym wyjściem. Upewnij się, że Use Attached Parent jest ustawione 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 synchronizację ust.
  4. Wykonaj połączenia:
    • Istniejące animacje (takie jak BodyPose) → wejście Base Pose
    • Wyjście animacji twarzy (z węzłów synchronizacji ust i/lub śmiechu) → wejście Blend Poses 0
    • Węzeł Layered blend → końcowa Result pose

Layered Blend Per Bone

Precyzyjne Dostrajanie Zachowania Synchronizacji Ust

Kontrola Wysuwania Języka

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

  1. Po węźle blend synchronizacji ust, dodaj węzeł Modify Curve
  2. Kliknij prawym przyciskiem myszy na węzeł 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ć wysuwanie języka (np. 0.8, aby zmniejszyć wysunięcie o 20%)

Kontrola Otwarcia Szczęki

Realistyczna synchronizacja ust może powodować zbyt intensywne ruchy szczęki w zależności od treści audio i wymagań wizualnych. Aby dostosować intensywność otwarcia szczęki:

  1. Po węźle blend synchronizacji ust, dodaj węzeł Modify Curve
  2. Kliknij prawym przyciskiem myszy na węzeł 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 otwarcia szczęki (np. 0.9, aby zmniejszyć ruch szczęki o 10%)

Precyzyjne Dostosowania Specyficzne dla Nastroju

Dla modeli z obsługą nastrojów, możesz precyzyjnie dostosować konkretne wyrazy emocjonalne:

Kontrola Brwi:

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - Podnoszenie wewnętrznej części brwi
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - Podnoszenie zewnętrznej części brwi
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - Opuszczanie brwi

Kontrola Wyrazu Oczu:

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - Mrużenie oczu
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - Podnoszenie policzków

Porównanie i Wybór Modelu

Wybór Pomiędzy Modelami

Decydując, którego modelu synchronizacji ust użyć w swoim projekcie, rozważ następujące czynniki:

KryteriumModel StandardowyModel RealistycznyModel Realistyczny z Obsługą Nastrojów
Kompatybilność z PostaciamiMetaHumans i wszystkie typy postaci niestandardowychTylko MetaHumansTylko MetaHumans
Jakość WizualnaDobra synchronizacja ust z wydajną wydajnościąZwiększony realizm z bardziej naturalnymi ruchami ustZwiększony realizm z wyrazami emocjonalnymi
WydajnośćZoptymalizowany dla wszystkich platform, w tym mobilnych/VRWiększe wymagania zasoboweWiększe wymagania zasobowe
Funkcje14 wizemów, wykrywanie śmiechu81 kontroli twarzy, 3 poziomy optymalizacji81 kontroli twarzy, 12 nastrojów, konfigurowalne wyjście
Wsparcie PlatformWindows, Android, QuestWindows, Mac, iOS, Linux, Android, QuestWindows, Mac, iOS, Linux, Android, Quest
Przypadki UżyciaAplikacje ogólne, gry, VR/AR, mobilneDoświadczenia filmowe, interakcje z bliskaOpowiadanie emocjonalne, zaawansowana interakcja z postaciami

Kompatybilność z Wersją Silnika

Problem z kompatybilnością w 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, prosimy używać 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 Obsługą Nastroju, gdy kontrola ekspresji emocjonalnej jest ważna dla Twojej aplikacji
  • Rozważ 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 ModeluObsługa lokalnego TTS (poprzez Runtime Text To Speech)Obsługa zewnętrznego TTSUwagi
Model Standardowy✅ Pełna obsługa✅ Pełna obsługaKompatybilny ze wszystkimi opcjami TTS
Model Realistyczny❌ Ograniczona obsługa✅ Pełna obsługaKonflikty środowiska wykonawczego ONNX z lokalnym TTS
Model Realistyczny z Obsługą Nastroju✅ Pełna obsługa✅ Pełna obsługaKompatybilny 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. Wynika to z zachowania środowiska wykonawczego ONNX, które może powodować zatrzymanie działania synchronizacji ust przy ponownym używaniu generatorów po okresach ciszy.

Kompatybilność z lokalnym TTS: Lokalny TTS dostarczany przez wtyczkę Runtime Text To Speech nie jest obecnie obsługiwany z regularnym modelem realistycznym z powodu konfliktów środowiska wykonawczego ONNX. Jest jednak w pełni kompatybilny zarówno z modelem standardowym, jak i z modelem realistycznym z obsługą nastroju. Używaj zewnętrznych usług TTS, jeśli konkretnie potrzebujesz regularnego modelu realistycznego z funkcjonalnością TTS.

Obniżona responsywność synchronizacji ust: Jeśli doświadczasz, że synchronizacja ust staje się mniej responsywna z czasem podczas używania Streaming Sound Wave lub Capturable Sound Wave, może to być spowodowane akumulacją pamięci. Domyślnie pamięć jest realokowana za każdym razem, gdy dodawane jest nowe audio. Aby zapobiec temu problemowi, wywołuj funkcję ReleaseMemory okresowo, aby zwolnić zgromadzoną pamięć, na przykład co około 30 sekund.

Optymalizacja wydajności:

  • Dostosuj Rozmiar Porcji Przetwarzania dla modeli realistycznych 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 Tylko Usta dla modeli z obsługą nastroju, gdy pełna animacja twarzy nie jest potrzebna