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 odbywa się 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 szumie tła 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 zaszumionym audio | Zrównoważona wydajność i jakość, mieszane warunki audio |
| Oryginalny | Nadaje się do użycia w czasie rzeczywistym na nowoczesnych CPU | Najwyższa jakość | Najbardziej stabilny z szumem tła i dźwiękami innymi niż głos | Produkcje wysokiej jakości, zaszumione ś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 niskie 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 (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ść synchronizacji warg
- Zaleca się używanie wielokrotności 160 dla optymalnego wyrównania

Konfiguracja Modelu z Nastrojem
Węzeł Create Realistic MetaHuman Lip Sync With Mood Generator zapewnia dodatkowe opcje konfiguracji poza podstawowym modelem realistycznym:
Podstawowa Konfiguracja
Lookahead Ms: Czas wyprzedzenia w milisekundach dla poprawionej dokładności synchronizacji warg.
- 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 kontrolki twarzy są generowane.
- Full Face: Wszystkie 81 kontrolek twarzy (brwi, oczy, nos, usta, szczęka, język)
- Mouth Only: Tylko kontrolki 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.
Ustawienia Nastroju
Dostępne Nastroje:
- Neutralny, Szczęśliwy, Smutny, Odraza, Gniew, Zaskoczenie, Strach
- 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 za pomocą 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 kontrolkami Full Face i Mouth Only

Przewodnik Wyboru Nastroju
Wybieraj odpowiednie nastroje na podstawie treści:
| Nastrój | Najlepsze Do | Typowy Zakres Intensywności |
|---|---|---|
| Neutralny | Ogólna rozmowa, narracja, stan domyślny | 0.5 - 1.0 |
| Szczęśliwy | Treści pozytywne, wesoły dialog, świętowanie | 0.6 - 1.0 |
| Smutny | Treści melancholijne, sceny emocjonalne, ponure momenty | 0.5 - 0.9 |
| Odraza | Reakcje negatywne, treści niesmaczne, odrzucenie | 0.4 - 0.8 |
| Gniew | Agresywny dialog, sceny konfrontacyjne, frustracja | 0.6 - 1.0 |
| Zaskoczenie | Nieoczekiwane wydarzenia, objawienia, reakcje szoku | 0.7 - 1.0 |
| Strach | Sytuacje zagrażające, niepokój, nerwowy dialog | 0.5 - 0.9 |
| Pewny siebie | Prezentacje zawodowe, dialog przywódczy, asertywna mowa | 0.7 - 1.0 |
| Podekscytowany | Treści energetyczne, ogłoszenia, entuzjastyczny dialog | 0.8 - 1.0 |
| Znudzony | Treści monotonne, dialog niezainteresowany, zmęczona mowa | 0.3 - 0.7 |
| Zabawowy | Swobodna rozmowa, humor, lekkie interakcje | 0.6 - 0.9 |
| Zdezorientowany | Dialog z wieloma pytaniami, niepewność, zakłopotanie | 0.4 - 0.8 |
Konfiguracja Animation Blueprint
Konfiguracja Synchronizacji Warg
- Standard Model
- Realistic Models
Węzeł Blend Runtime MetaHuman Lip Sync ma opcje konfiguracji w panelu właściwości:
| Właściwość | Domyślne | Opis |
|---|---|---|
| Interpolation Speed | 25 | Kontroluje, jak szybko ruchy warg przechodzą między wizemami. Wyższe wartości skutkują szybszymi, bardziej nagłymi przejściami. |
| Reset Time | 0.2 | Czas w sekundach, po którym synchronizacja warg jest resetowana. Jest to przydatne, aby zapobiec kontynuacji synchronizacji warg po zatrzymaniu audio. |
Animacja Śmiechu
Możesz również dodać animacje śmiechu, które będą dynamicznie reagować na śmiech wykryty w audio:
- Dodaj węzeł
Blend Runtime MetaHuman Laughter - Podłącz swoją zmienną
RuntimeVisemeGeneratordo pinuViseme Generator - Jeśli już używasz synchronizacji warg:
- 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 warg:
- 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 audio, 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 kontynuowaniu ś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 ma 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 w stanie bezczynności | 15 | Kontroluje, jak szybko mimika twarzy wraca do stanu bezczynności/neutralnego. Niższe wartości tworzą gładsze, bardziej stopniowe powroty do pozycji spoczynkowej. |
| Czas resetu | 0.2 | Czas w sekundach, po którym synchronizacja ust resetuje się do stanu bezczynności. Przydatne, aby zapobiec kontynuowaniu wyrazów twarzy po zatrzymaniu dźwięku. |
| Zachowaj stan bezczynności | false | Po włączeniu, zachowuje ostatni stan emocjonalny podczas okresów bezczynności zamiast resetowania do neutralnego. |
| Zachowaj wyrazy oczu | true | Kontroluje, czy związane z oczami kontrolki mimiki twarzy są zachowywane w stanie bezczynności. Skuteczne tylko wtedy, gdy Zachowaj stan bezczynności jest włączone. |
| Zachowaj wyrazy brwi | true | Kontroluje, czy związane z brwiami kontrolki mimiki twarzy są zachowywane w stanie bezczynności. Skuteczne tylko wtedy, gdy Zachowaj stan bezczynności jest włączone. |
| Zachowaj kształt ust | false | Kontroluje, czy kontrolki kształtu ust (z wyłączeniem specyficznych dla mowy ruchów, takich jak język i szczęka) są zachowywane w stanie bezczynności. Skuteczne tylko wtedy, gdy Zachowaj stan bezczynności jest włączone. |
Zachowanie stanu bezczynności
Funkcja Zachowaj stan bezczynności rozwiązuje kwestię, w jaki sposób model Realistic 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 Realistic może utrzymywać subtelne pozycjonowanie twarzy, które różni się od domyślnej pozycji spoczynkowej MetaHumana.
Kiedy włączyć:
- Utrzymywanie wyrazów emocjonalnych między segmentami mowy
- Zachowanie cech osobowości postaci
- Zapewnienie ciągłości wizualnej w sekwencjach filmowych
Opcje kontroli regionalnej:
- Wyrazy oczu: Zachowuje mrużenie, rozszerzanie oczu i pozycjonowanie powiek
- Wyrazy brwi: Utrzymuje pozycjonowanie brwi i czoła
- Kształt ust: Zachowuje ogólne zakrzywienie 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 ostatecznym 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ącymi nazwami kości (Bone 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 nakładanie niestandardowych animacji twarzy (wyrazy, emocje 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ł warstwowego mieszania → ostateczna poza (
Resultpose)
- Istniejące animacje (takie jak

Wybór zestawu celów morfowania
- Standard Model
- Realistic Models
Model Standardowy używa zasobów poz, które z natury obsługują dowolną konwencję nazewnictwa celów morfowania poprzez konfigurację niestandardowego zasobu pozy. Nie jest potrzebna dodatkowa konfiguracja.
Węzeł Blend Realistic MetaHuman Lip Sync zawiera właściwość Morph Target Set, która określa, której konwencji nazewnictwa celów morfowania używać do animacji twarzy:
| Zestaw celów morfowania | Opis | Przypadki użycia |
|---|---|---|
| MetaHuman (Domyślny) | Standardowe nazwy celów morfowania MetaHuman (np. CTRL_expressions_jawOpen) | Postacie MetaHuman |
| ARKit | Nazwy zgodne z Apple ARKit (np. JawOpen, MouthSmileLeft) | Postacie oparte na ARKit |
Precyzyjne dostrajanie zachowania synchronizacji ust
Kontrola wysuwania języka
W standardowym modelu synchronizacji ust możesz zauważyć nadmierny ruch języka do przodu podczas niektórych fonemów. Aby kontrolować wysuwanie języka:
- Po węźle mieszania synchronizacji ust dodaj węzeł
Modify Curve - Kliknij prawym przyciskiem myszy na węźle
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ć wysunięcie języka (np. 0.8, aby zmniejszyć wysunięcie o 20%)
Kontrola otwierania szczęki
Realistyczna synchronizacja ust może powodować nadmiernie responsywne ruchy szczęki w zależności od treści audio i wymagań wizualnych. Aby dostosować intensywność otwierania szczęki:
- Po węźle mieszania synchronizacji ust dodaj węzeł
Modify Curve - Kliknij prawym przyciskiem myszy na węźle
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 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 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 modeli i wybór
Wybór między modelami
Decydując, którego modelu synchronizacji ust użyć w swoim projekcie, rozważ te czynniki:
| Rozważanie | Model Standardowy | Model Realistic | Model Realistic z obsługą nastroju |
|---|---|---|---|
| Kompatybilność z postaciami | MetaHumany i wszystkie typy niestandardowych postaci | Postacie MetaHuman (i ARKit) | Postacie MetaHuman (i ARKit) |
| Jakość wizualna | Dobra synchronizacja ust z wydajną wydajnością | Zwiększony realizm z bardziej naturalnymi ruchami ust | Zwiększony realizm z wyrażeniami emocjonalnymi |
| Wydajność | Zoptymalizowany dla wszystkich platform, w tym mobilnych/VR | Wyższe wymagania zasobowe | Wyższe wymagania zasobowe |
| Funkcje | 14 wizemów, wykrywanie śmiechu | 81 kontrolek twarzy, 3 poziomy optymalizacji | 81 kontrolek twarzy, 12 nastrojów, konfigurowalne wyjście |
| Obsługa 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 wersjami silnika
Jeśli używasz Unreal Engine 5.2, modele Realistic 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 funkcjonalności synchronizacji ust, proszę używać Modelu Standardowego zamiast tego.
Ten problem jest specyficzny dla UE 5.2 i nie dotyczy innych wersji silnika.
Zalecenia dotyczące wydajności
- Dla większości projektów Model Standardowy zapewnia doskonałą równowagę jakości i wydajności
- Użyj Modelu Realistic, gdy potrzebujesz najwyższej wierności wizualnej dla postaci MetaHuman
- Użyj Modelu Realistic z obsługą nastroju, gdy kontrola wyrażeń emocjonalnych jest ważna dla Twojej aplikacji
- Rozważ możliwości wydajnościowe platformy docelowej przy wyborze między modelami
- Przetestuj różne poziomy optymalizacji, aby znaleźć najlepszą równowagę dla swojego konkretnego przypadku użycia
Rozwiązywanie problemów
Typowe problemy
Odtwarzanie generatora dla modeli Realistic: Dla niezawodnej i spójnej pracy z modelami Realistic zaleca się odtwarzanie 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.
Na przykład, możesz odtworzyć generator synchronizacji ust przy każdym rozpoczęciu odtwarzania, takim jak za każdym razem, gdy wywołujesz Play Sound 2D lub używasz jakiejkolwiek innej metody do rozpoczęcia odtwarzania fali dźwiękowej i synchronizacji ust:

Lokalizacja wtyczki dla integracji Runtime Text To Speech: Podczas używania Runtime MetaHuman Lip Sync razem z Runtime Text To Speech (obie wtyczki używają środowiska wykonawczego ONNX), możesz doświadczyć problemów w spakowanych kompilacjach, jeśli wtyczki są zainstalowane w folderze Marketplace silnika. Aby to naprawić:
- Znajdź obie wtyczki w folderze instalacyjnym UE pod
\Engine\Plugins\Marketplace(np.C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace) - Przenieś oba foldery
RuntimeMetaHumanLipSynciRuntimeTextToSpeechdo folderuPluginsTwojego projektu - Jeśli Twój projekt nie ma folderu
Plugins, utwórz go w tym samym katalogu, co plik.uproject - Uruchom ponownie Unreal Editor
Rozwiązuje to problemy z kompatybilnością, które mogą wystąpić, gdy wiele wtyczek opartych na środowisku wykonawczym ONNX jest ładowanych z katalogu Marketplace silnika.
Konfiguracja pakowania (Windows): Jeśli synchronizacja ust nie działa poprawnie w spakowanym projekcie na Windows, upewnij się, że używasz konfiguracji kompilacji Shipping zamiast Development. Konfiguracja Development może powodować problemy ze środowiskiem wykonawczym ONNX modeli realistycznych w spakowanych kompilacjach.
Aby to naprawić:
- W ustawieniach projektu → Packaging, ustaw Build Configuration na Shipping
- Spakuj ponownie swój projekt

W niektórych projektach tylko z Blueprintami, Unreal Engine może nadal kompilować w konfiguracji Development, nawet gdy wybrano Shipping. Jeśli tak się stanie, przekonwertuj swój projekt na projekt C++, dodając co najmniej jedną klasę C++ (może być pusta). Aby to zrobić, przejdź do Tools → New C++ Class w menu edytora UE i utwórz pustą klasę. Spowoduje to wymuszenie poprawnej kompilacji projektu w konfiguracji Shipping. Twój projekt może pozostać tylko z Blueprintami funkcjonalnie, klasa C++ jest potrzebna tylko do poprawnej konfiguracji kompilacji.
Obniżona responsywność synchronizacji ust: Jeśli doświadczasz, że synchronizacja ust staje się mniej responsywna w czasie przy użyciu 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 nowe audio jest dołączane. Aby zapobiec temu problemowi, wywołaj funkcję ReleaseMemory okresowo, aby zwolnić zgromadzoną pamięć, na przykład co 30 sekund lub podobnie.
Optymalizacja wydajności:
- Dostosuj rozmiar fragmentu przetwarzania dla modeli Realistic w oparciu o wymagania wydajnościowe
- Używaj odpowiedniej liczby wątków dla 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