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 Modelu | Wydajność | Jakość Wizualna | Obsługa Szumu | Zalecane Zastosowania |
|---|---|---|---|---|
| Wysoko Zoptymalizowany (Domyślny) | Najwyższa wydajność, najniższe użycie CPU | Dobra jakość | Może wykazywać zauważalne ruchy ust przy hałasie w tle lub dźwiękach innych niż głos | Czyste środowiska audio, scenariusze krytyczne pod względem wydajności |
| Częściowo Zoptymalizowany | Dobra wydajność, umiarkowane użycie CPU | Wysoka jakość | Lepsza stabilność z hałaśliwym audio | Zrównoważona wydajność i jakość, mieszane warunki audio |
| Oryginalny | Nadaje się do użycia w czasie rzeczywistym na nowoczesnych procesorach | Najwyższa jakość | Najbardziej stabilny z hałasem w tle i dźwiękami innymi niż głos | Produkcje 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

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

Przewodnik Wyboru Nastroju
Wybieraj odpowiednie nastroje w oparciu o treść:
| Nastrój | Najlepszy dla | Typowy Zakres Intensywności |
|---|---|---|
| Neutralny | Ogólna rozmowa, narracja, stan domyślny | 0.5 - 1.0 |
| Szczęśliwy | Treści pozytywne, radosne dialogi, świętowanie | 0.6 - 1.0 |
| Smutny | Treści melancholijne, sceny emocjonalne, ponure momenty | 0.5 - 0.9 |
| Zniesmaczony | Reakcje negatywne, treści niesmaczne, odrzucenie | 0.4 - 0.8 |
| Zły | Dialogi agresywne, sceny konfrontacyjne, frustracja | 0.6 - 1.0 |
| Zaskoczony | Nieoczekiwane wydarzenia, objawienia, reakcje szoku | 0.7 - 1.0 |
| Przestraszony | Sytuacje zagrażające, niepokój, nerwowe dialogi | 0.5 - 0.9 |
| Pewny siebie | Prezentacje zawodowe, dialogi przywódcze, stanowcza mowa | 0.7 - 1.0 |
| Podekscytowany | Treści energetyczne, ogłoszenia, entuzjastyczne dialogi | 0.8 - 1.0 |
| Znudzony | Treści monotonne, dialogi obojętne, zmęczona mowa | 0.3 - 0.7 |
| Zabawowy | Rozmowa swobodna, humor, lekkie interakcje | 0.6 - 0.9 |
| Zdezorientowany | Dialogi z wieloma pytaniami, niepewność, zakłopotanie | 0.4 - 0.8 |
Konfiguracja Blueprint Animacji
Konfiguracja Synchronizacji Ust
- Standard Model
- Realistic Models
Węzeł Blend Runtime MetaHuman Lip Sync posiada opcje konfiguracji w panelu właściwości:
| Właściwość | Domyślna | Opis |
|---|---|---|
| Prędkość interpolacji | 25 | Kontroluje, jak szybko ruchy ust przechodzą między wizemami. Wyższe wartości skutkują szybszymi, bardziej nagłymi przejściami. |
| Czas resetu | 0.2 | Czas 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:
- Dodaj węzeł
Blend Runtime MetaHuman Laughter - Podłącz swoją zmienną
RuntimeVisemeGeneratordo pinuViseme Generator - Jeśli już używasz synchronizacji ust:
- Podłącz wyjście z węzła
Blend Runtime MetaHuman Lip SyncdoSource PosewęzłaBlend Runtime MetaHuman Laughter - Podłącz wyjście węzła
Blend Runtime MetaHuman Laughterdo pinuResultwOutput Pose
- Podłącz wyjście z węzła
- Jeśli używasz tylko śmiechu bez synchronizacji ust:
- Podłącz swoją pozę źródłową bezpośrednio do
Source PosewęzłaBlend Runtime MetaHuman Laughter - Podłącz wyjście do pinu
Result
- Podłącz swoją pozę źródłową bezpośrednio do

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

Konfiguracja śmiechu
Węzeł Blend Runtime MetaHuman Laughter ma własne opcje konfiguracji:
| Właściwość | Domyślna | Opis |
|---|---|---|
| Prędkość interpolacji | 25 | Kontroluje, jak szybko ruchy ust przechodzą między animacjami śmiechu. Wyższe wartości skutkują szybszymi, bardziej nagłymi przejściami. |
| Czas resetu | 0.2 | Czas w sekundach, po którym śmiech jest resetowany. Jest to przydatne, aby zapobiec kontynuacji śmiechu po zatrzymaniu dźwięku. |
| Maksymalna waga śmiechu | 0.7 | Skaluje maksymalne natężenie animacji śmiechu (0.0 - 1.0). |
Uwaga: Wykrywanie śmiechu jest obecnie dostępne tylko w Modelu Standardowym.
Węzeł Blend Realistic MetaHuman Lip Sync posiada opcje konfiguracji w panelu właściwości:
| Właściwość | Domyślna | Opis |
|---|---|---|
| Prędkość interpolacji | 30 | Kontroluje, jak szybko mimika twarzy przechodzi podczas aktywnej mowy. Wyższe wartości skutkują szybszymi, bardziej nagłymi przejściami. |
| Prędkość interpolacji bezczynności | 15 | Kontroluje, jak szybko mimika twarzy wraca do stanu bezczynnego/neutralnego. Niższe wartości tworzą gładsze, bardziej stopniowe powroty do pozy spoczynkowej. |
| Czas resetu | 0.2 | Czas w sekundach, po którym synchronizacja ust resetuje się do stanu bezczynności |
| . Przydatne, aby zapobiec kontynuowaniu ekspresji po zatrzymaniu dźwięku. | ||
| Zachowaj Stan Bezczynności | false | Po włączeniu, zachowuje ostatni stan emocjonalny podczas okresów bezczynności zamiast resetować do neutralnego. |
| Zachowaj Ekspresje Oczu | true | Kontroluje, czy kontrolki twarzy związane z oczami są zachowywane podczas stanu bezczynności. Skuteczne tylko, gdy Zachowaj Stan Bezczynności jest włączone. |
| Zachowaj Ekspresje Brwi | true | Kontroluje, czy kontrolki twarzy związane z brwiami są zachowywane podczas stanu bezczynności. Skuteczne tylko, gdy Zachowaj Stan Bezczynności jest włączone. |
| Zachowaj Kształt Ust | false | Kontroluje, czy kontrolki kształtu ust (z wyłączeniem ruchów specyficznych dla mowy, takich jak język i szczęka) są zachowywane podczas stanu bezczynności. Skuteczne tylko, gdy Zachowaj Stan Bezczynności jest włączone. |
Zachowywanie Stanu Bezczynności
Funkcja Zachowaj Stan Bezczynności rozwiązuje kwestię, w jaki sposób model Realistyczny obsługuje okresy ciszy. W przeciwieństwie do modelu Standardowego, który używa dyskretnych wizemów i konsekwentnie wraca do wartości zerowych podczas ciszy, sieć neuronowa modelu Realistycznego może utrzymywać subtelne pozycjonowanie twarzy, które różni się od domyślnej pozycji spoczynkowej MetaHumana.
Kiedy włączyć:
- Utrzymywanie ekspresji emocjonalnych między segmentami mowy
- Zachowywanie cech osobowości postaci
- Zapewnienie ciągłości wizualnej w sekwencjach filmowych
Opcje Kontroli Regionalnej:
- Ekspresje Oczu: Zachowuje mrużenie, rozszerzanie oczu i pozycjonowanie powiek
- Ekspresje Brwi: Utrzymuje pozycjonowanie brwi i czoła
- Kształt Ust: Zachowuje ogólne wygięcie ust, jednocześnie pozwalając ruchom mowy (język, szczęka) na reset
Łą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:
- Dodaj węzeł
Layered blend per bonemiędzy animacjami ciała a końcowym wyjściem. Upewnij się, żeUse Attached Parentjest ustawione na true. - Skonfiguruj ustawienia warstw:
- Dodaj 1 element do tablicy
Layer Setup - Dodaj 3 elementy do
Branch Filtersdla warstwy, z następującymiBone Name:FACIAL_C_FacialRootFACIAL_C_Neck2RootFACIAL_C_Neck1Root
- Dodaj 1 element do tablicy
- Ważne dla niestandardowych animacji twarzy: W
Curve Blend Optionwybierz "Use Max Value". Pozwala to na prawidłowe nałożenie niestandardowych animacji twarzy (wyrażeń, emocji itp.) na synchronizację ust. - Wykonaj połączenia:
- Istniejące animacje (takie jak
BodyPose) → wejścieBase 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
Resultpose
- Istniejące animacje (takie jak

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:
- Po węźle blend synchronizacji ust, dodaj węzeł
Modify Curve - Kliknij prawym przyciskiem myszy na węzeł
Modify Curvei wybierz Add Curve Pin - Dodaj pin krzywej o nazwie
CTRL_expressions_tongueOut - Ustaw właściwość Apply Mode węzła na Scale
- 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:
- Po węźle blend synchronizacji ust, dodaj węzeł
Modify Curve - Kliknij prawym przyciskiem myszy na węzeł
Modify Curvei wybierz Add Curve Pin - Dodaj pin krzywej o nazwie
CTRL_expressions_jawOpen - Ustaw właściwość Apply Mode węzła na Scale
- 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 brwiCTRL_expressions_browRaiseOuterL/CTRL_expressions_browRaiseOuterR- Podnoszenie zewnętrznej części brwiCTRL_expressions_browDownL/CTRL_expressions_browDownR- Opuszczanie brwi
Kontrola Wyrazu Oczu:
CTRL_expressions_eyeSquintInnerL/CTRL_expressions_eyeSquintInnerR- Mrużenie oczuCTRL_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:
| Kryterium | Model Standardowy | Model Realistyczny | Model Realistyczny z Obsługą Nastrojów |
|---|---|---|---|
| Kompatybilność z Postaciami | MetaHumans i wszystkie typy postaci niestandardowych | Tylko MetaHumans | Tylko MetaHumans |
| Jakość Wizualna | Dobra synchronizacja ust z wydajną wydajnością | Zwiększony realizm z bardziej naturalnymi ruchami ust | Zwiększony realizm z wyrazami emocjonalnymi |
| Wydajność | Zoptymalizowany dla wszystkich platform, w tym mobilnych/VR | Większe wymagania zasobowe | Większe wymagania zasobowe |
| Funkcje | 14 wizemów, wykrywanie śmiechu | 81 kontroli twarzy, 3 poziomy optymalizacji | 81 kontroli twarzy, 12 nastrojów, konfigurowalne wyjście |
| Wsparcie Platform | Windows, Android, Quest | Windows, Mac, iOS, Linux, Android, Quest | Windows, Mac, iOS, Linux, Android, Quest |
| Przypadki Użycia | Aplikacje ogólne, gry, VR/AR, mobilne | Doświadczenia filmowe, interakcje z bliska | Opowiadanie emocjonalne, zaawansowana interakcja z postaciami |
Kompatybilność z Wersją Silnika
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 Modelu | Obsługa lokalnego TTS (poprzez Runtime Text To Speech) | Obsługa zewnętrznego TTS | Uwagi |
|---|---|---|---|
| Model Standardowy | ✅ Pełna obsługa | ✅ Pełna obsługa | Kompatybilny ze wszystkimi opcjami TTS |
| Model Realistyczny | ❌ Ograniczona obsługa | ✅ Pełna obsługa | Konflikty środowiska wykonawczego ONNX z lokalnym TTS |
| Model Realistyczny z Obsługą Nastroju | ✅ Pełna obsługa | ✅ Pełna obsługa | Kompatybilny 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