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 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 hałaśliwym 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 | Wysokiej 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
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 Selection Guide
Wybierz odpowiednie nastroje na podstawie swojej treści:
Mood | Best For | Typical Intensity Range |
---|---|---|
Neutral | Ogólna rozmowa, narracja, stan domyślny | 0.5 - 1.0 |
Happy | Pozytywna treść, radosny dialog, świętowanie | 0.6 - 1.0 |
Sad | Melancholijna treść, emocjonalne sceny, ponure momenty | 0.5 - 0.9 |
Disgust | Negatywne reakcje, treść wywołująca niesmak, odrzucenie | 0.4 - 0.8 |
Anger | Agresywny dialog, konfrontacyjne sceny, frustracja | 0.6 - 1.0 |
Surprise | Nieoczekiwane wydarzenia, objawienia, reakcje szoku | 0.7 - 1.0 |
Fear | Groźne sytuacje, niepokój, nerwowy dialog | 0.5 - 0.9 |
Confident | Prezentacje zawodowe, dialog przywódczy, asertywna mowa | 0.7 - 1.0 |
Excited | Energiczna treść, ogłoszenia, entuzjastyczny dialog | 0.8 - 1.0 |
Bored | Monotonna treść, niezainteresowany dialog, zmęczona mowa | 0.3 - 0.7 |
Playful | Swobodna rozmowa, humor, lekkie interakcje | 0.6 - 0.9 |
Confused | Dialog z wieloma pytaniami, niepewność, zdumienie | 0.4 - 0.8 |
Animation Blueprint Configuration
Lip Sync Configuration
- Standard Model
- Realistic Models
Węzeł Blend Runtime MetaHuman Lip Sync
ma opcje konfiguracji w panelu właściwości:
Właściwość | Domyślnie | Opis |
---|---|---|
Interpolation Speed | 25 | Kontroluje, jak szybko ruchy ust 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 ust jest resetowana. Jest to przydatne, aby zapobiec kontynuowaniu synchronizacji ust po zatrzymaniu dźwięku. |
Węzeł Blend Realistic MetaHuman Lip Sync
ma opcje konfiguracji w panelu właściwości:
Właściwość | Domyślnie | Opis |
---|---|---|
Interpolation Speed | 30 | Kontroluje, jak szybko ruchy ust przechodzą między pozycjami. Wyższe wartości skutkują szybszymi, bardziej nagłymi przejściami. |
Reset Time | 0.2 | Czas w sekundach, po którym synchronizacja ust jest resetowana. Jest to przydatne, aby zapobiec kontynuowaniu synchronizacji ust po zatrzymaniu dźwięku. |
Uwaga: Ten sam węzeł Animation Blueprint jest używany zarówno dla zwykłych, jak i obsługujących nastrój modeli realistycznych.
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ą
RuntimeVisemeGenerator
do pinuViseme Generator
- Jeśli już używasz synchronizacji ust:
- Podłącz wyjście z węzła
Blend Runtime MetaHuman Lip Sync
doSource Pose
węzłaBlend Runtime MetaHuman Laughter
- Podłącz wyjście węzła
Blend Runtime MetaHuman Laughter
do pinuResult
wOutput 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 Pose
wę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ślnie | Opis |
---|---|---|
Interpolation Speed | 25 | Kontroluje, jak szybko ruchy ust przechodzą między animacjami śmiechu. Wyższe wartości skutkują szybszymi, bardziej nagłymi przejściami. |
Reset Time | 0.2 | Czas w sekundach, po którym śmiech jest resetowany. Jest to przydatne, aby zapobiec kontynuowaniu śmiechu po zatrzymaniu dźwięku. |
Max Laughter Weight | 0.7 | Skaluje 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:
- Dodaj węzeł
Layered blend per bone
pomiędzy twoimi animacjami ciała a końcowym wyjściem. Upewnij się, że opcjaUse Attached Parent
jest ustawiona na true. - Skonfiguruj ustawienia warstw:
- Dodaj 1 element do tablicy
Layer Setup
- Dodaj 3 elementy do
Branch Filters
dla warstwy, z następującymiBone Name
:FACIAL_C_FacialRoot
FACIAL_C_Neck2Root
FACIAL_C_Neck1Root
- Dodaj 1 element do tablicy
- 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. - Wykonaj połączenia:
- Istniejące animacje (np.
BodyPose
) → wejścieBase 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
- Istniejące animacje (np.
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:
- Po swoim węźle mieszania lip sync dodaj węzeł
Modify Curve
- Kliknij prawym przyciskiem myszy na węźle
Modify Curve
i 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
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:
- Po swoim węźle mieszania lip sync dodaj węzeł
Modify Curve
- Kliknij prawym przyciskiem myszy na węźle
Modify Curve
i 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 wyrażenia emocjonalne:
Kontrola Brwi:
CTRL_L_brow_raiseIn.ty
/CTRL_R_brow_raiseIn.ty
- Podnoszenie wewnętrznej części brwiCTRL_L_brow_raiseOut.ty
/CTRL_R_brow_raiseOut.ty
- Podnoszenie zewnętrznej części brwiCTRL_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 oczuCTRL_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:
Kryterium | Model Standardowy | Model Realistyczny | Model Realistyczny z Nastrojami |
---|---|---|---|
Kompatybilność z Postaciami | MetaHumans i wszystkie typy postaci niestandardowych | Tylko MetaHumans | Tylko MetaHumans |
Jakość Wizualna | Dobra synchronizacja ust z wydajną pracą | Zwiększony realizm z bardziej naturalnymi ruchami ust | Zwiększony realizm z ekspresją emocjonalną |
Wydajność | Zoptymalizowany dla wszystkich platform, w tym mobilnych/VR | Wyższe wymagania zasobowe | Wyższe wymagania zasobowe |
Funkcje | 14 wizemów, wykrywanie śmiechu | 81 kontroli mimiki, 3 poziomy optymalizacji | 81 kontroli mimiki, 12 nastrojów, konfigurowalne wyjście |
Wsparcie Platform | Windows, Android, Quest | Windows, Mac, iOS, Linux | Windows, Mac, iOS, Linux |
Przypadki Użycia | Aplikacje ogólne, gry, VR/AR, mobilne | Doświadczenia filmowe, interakcje z bliska | Opowiadanie emocjonalnych historii, 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, 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 Modelu | Wsparcie Lokalnego TTS (poprzez Runtime Text To Speech) | Wsparcie Zewnętrznego TTS | Uwagi |
---|---|---|---|
Model Standardowy | ✅ Pełne wsparcie | ✅ Pełne wsparcie | Kompatybilny ze wszystkimi opcjami TTS |
Model Realistyczny | ❌ Ograniczone wsparcie | ✅ Pełne wsparcie | Konflikty środowiska uruchomieniowego ONNX z lokalnym TTS |
Model Realistyczny z Nastrojami | ✅ Pełne wsparcie | ✅ Pełne wsparcie | 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. 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