Jak używać wtyczki z niestandardowymi postaciami
Ten przewodnik przeprowadzi Cię przez proces konfiguracji Runtime MetaHuman Lip Sync dla postaci innych niż MetaHuman. Ten proces wymaga znajomości koncepcji animacji i rigowania. Jeśli potrzebujesz pomocy w implementacji dla swojej konkretnej postaci, możesz skontaktować się w celu uzyskania profesjonalnego wsparcia pod adresem [email protected].
Ważna uwaga dotycząca modeli synchronizacji ust
Niestandardowe postacie są obsługiwane tylko z modelem Standardowym (Szybszym).
Model Realistyczny (Wyższa Jakość) jest zaprojektowany dla postaci MetaHuman i ARKit i nie może być używany z innymi niestandardowymi postaciami. W całym tym przewodniku, gdy są przywoływane, należy postępować zgodnie z instrukcjami dla modelu Standardowego z głównego przewodnika konfiguracji.
Wymagana wtyczka rozszerzająca: Aby używać modelu Standardowego z niestandardowymi postaciami, musisz zainstalować wtyczkę rozszerzającą Standard Lip Sync Extension, zgodnie z opisem w sekcji Wymagania wstępne głównego przewodnika konfiguracji.
To rozszerzenie jest wymagane dla wszystkich implementacji niestandardowych postaci opisanych w tym przewodniku.
Wymagania wstępne
Przed rozpoczęciem upewnij się, że Twoja postać spełnia te wymagania:
- Posiada prawidłowy szkielet
- Zawiera cele morfowania (kształty mieszane) dla wyrazów twarzy
- Idealnie posiada 10+ celów morfowania definiujących wizemy (więcej wizemów = lepsza jakość synchronizacji ust)
Wtyczka wymaga mapowania celów morfowania Twojej postaci na następujące standardowe wizemy:
Sil -> Silence
PP -> Bilabial plosives (p, b, m)
FF -> Labiodental fricatives (f, v)
TH -> Dental fricatives (th)
DD -> Alveolar plosives (t, d)
KK -> Velar plosives (k, g)
CH -> Postalveolar affricates (ch, j)
SS -> Sibilants (s, z)
NN -> Nasal (n)
RR -> Approximant (r)
AA -> Open vowel (aa)
E -> Mid vowel (e)
IH -> Close front vowel (ih)
OH -> Close-mid back vowel (oh)
OU -> Close back vowel (ou)
Uwaga: Jeśli twoja postać ma inny zestaw wizemów (co jest prawdopodobne), nie potrzebujesz dokładnych dopasowań dla każdego wizemu. Aproksymacje są często wystarczające - na przykład, mapowanie wizemu SH twojej postaci na wizem CH wtyczki zadziała skutecznie, ponieważ są to pokrewne dźwięki postalweolarne.
Viseme mapping reference
Oto mapowania między powszechnymi systemami wizemów a wymaganymi wizemami wtyczki:
- Apple ARKit
- FACS-Based Systems
- Preston Blair System
- 3ds Max Phoneme System
- Custom Characters (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe)
ARKit zapewnia kompleksowy zestaw kształtów mieszanych (blendshapes) do animacji twarzy, w tym kilka kształtów ust. Oto jak mapować je na wizemy RuntimeMetaHumanLipSync:
| RuntimeMetaHumanLipSync Viseme | ARKit Equivalent | Uwagi |
|---|---|---|
| Sil | mouthClose | Pozycja neutralna/spoczynkowa |
| PP | mouthPressLeft + mouthPressRight | Dla dźwięków dwuwargowych, użyj obu kształtów nacisku razem |
| FF | lowerLipBiteLeft + lowerLipBiteRight (or mouthRollLower) | Dolna warga styka się z górnymi zębami, jak w dźwiękach "f" i "v" |
| TH | tongueOut | ARKit ma bezpośrednią kontrolę języka |
| DD | jawOpen (mild) + tongueUp (if you have tongue rig) | Język dotyka wału dziąsłowego; lekkie opuszczenie żuchwy |
| KK | mouthLeft or mouthRight (mild) | Delikatne pociągnięcie kącika ust aproksymuje dźwięki welarne |
| CH | jawOpen (mild) + mouthFunnel (mild) | Połącz dla dźwięków postalweolarnych |
| SS | mouthFrown | Użyj lekkiego zmarszczenia dla sybilantów |
| NN | jawOpen (very mild) + mouthClose | Prawie zamknięte usta z lekkim otwarciem żuchwy |
| RR | mouthPucker (mild) | Delikatne zaokrąglenie dla dźwięków r |
| AA | jawOpen + mouthStretchLeft + mouthStretchRight (or jawOpen + mouthOpen) | Szeroko otwarte usta dla dźwięku "ah" |
| E | jawOpen (mild) + mouthSmile | Średnio otwarta pozycja z lekkim uśmiechem |
| IH | mouthSmile (mild) | Lekkie rozciągnięcie warg |
| OH | mouthFunnel | Zaokrąglony, otwarty kształt |
| OU | mouthPucker | Ciasno zaokrąglone wargi |
FACS (Facial Action Coding System) używa Jednostek Akcji (AUs) do opisywania ruchów twarzy. Wiele profesjonalnych systemów animacji używa podejść opartych na FACS:
| RuntimeMetaHumanLipSync Viseme | FACS Action Units | Uwagi |
|---|---|---|
| Sil | Neutral | Brak aktywnych AUs |
| PP | AU23 + AU24 | Ściskacz warg + napinacz warg |
| FF | AU22 + AU28 | Lejek wargowy + ssanie warg |
| TH | AU25 (mild) + AU27 | Rozchylenie warg + rozciągnięcie ust |
| DD | AU25 + AU16 | Rozchylenie warg + obniżacz dolnej wargi |
| KK | AU26 + AU14 | Opuszczenie żuchwy + dołeczkowiec |
| CH | AU18 + AU25 | Zaokrąglacz warg + rozchylenie warg |
| SS | AU20 | Rozciągacz warg |
| NN | AU25 (very mild) | Lekkie rozchylenie warg |
| RR | AU18 (mild) | Delikatny zaokrąglacz warg |
| AA | AU27 + AU26 | Rozciągnięcie ust + opuszczenie żuchwy |
| E | AU25 + AU12 | Rozchylenie warg + pociągacz kącika warg |
| IH | AU12 + AU25 (mild) | Pociągacz kącika warg + lekkie rozchylenie warg |
| OH | AU27 (mild) + AU18 | Lekkie rozciągnięcie ust + zaokrąglacz warg |
| OU | AU18 + AU26 (mild) | Zaokrąglacz warg + lekkie opuszczenie żuchwy |
System Prestona Blaira to klasyczny standard animacji, który używa opisowych nazw kształtów ust:
| RuntimeMetaHumanLipSync Viseme | Preston Blair | Uwagi |
|---|---|---|
| Sil | Rest | Neutralna, zamknięta pozycja ust |
| PP | MBP | Klasyczny kształt ust "MBP" |
| FF | FV | Pozycja "FV" z zębami na dolnej wardze |
| TH | TH | Język dotyka przednich zębów |
| DD | D/T/N | Podobna pozycja dla tych spółgłosek |
| KK | CKG | Pozycja twardej spółgłoski |
| CH | CH/J/SH | Lekki grymas dla tych dźwięków |
| SS | S/Z | Lekko otwarta pozycja zębów |
| NN | N/NG/L | Podobna do D/T, ale inna pozycja języka |
| RR | R | Zaokrąglone wargi dla dźwięku R |
| AA | AI | Szeroko otwarte usta |
| E | EH | Średnio otwarte usta |
| IH | EE | Rozciągnięte wargi |
| OH | OH | Zaokrąglone, średnie otwarcie |
| OU | OO | Ciasno zaokrąglone wargi |
3ds Max używa systemu fonemowego dla swojego character studio:
| RuntimeMetaHumanLipSync Viseme | 3ds Max Phoneme | Uwagi |
|---|---|---|
| Sil | rest | Domyślna pozycja ust |
| PP | p_b_m | Bezpośredni odpowiednik |
| FF | f_v | Bezpośredni odpowiednik |
| TH | th | Bezpośredni odpowiednik |
| DD | t_d | Bezpośredni odpowiednik |
| KK | k_g | Bezpośredni odpowiednik |
| CH | sh_zh_ch | Połączony kształt |
| SS | s_z | Bezpośredni odpowiednik |
| NN | n_l | Połączone dla tych dźwięków |
| RR | r | Bezpośredni odpowiednik |
| AA | ah | Otwarty dźwięk samogłoski |
| E | eh | Środkowa samogłoska |
| IH | ee | Przednia samogłoska przymknięta |
| OH | oh | Tylna samogłoska zaokrąglona |
| OU | oo | Tylna samogłoska przymknięta |
Niestandardowe postacie z wizemami lub kształtami mieszanymi/celami morfowania ust (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, itp.) zazwyczaj można zmapować na system wizemów wtyczki z rozsądnymi aproksymacjami.
Creating a custom Pose Asset
Wykonaj te kroki, aby utworzyć niestandardowy zasad pozy dla twojej postaci, który będzie używany z węzłem Blend Runtime MetaHuman Lip Sync:
1. Locate your character's Skeletal Mesh
Znajdź siatkę szkieletową, która zawiera cele morfowania (kształty mieszane), które chcesz użyć do animacji synchronizacji warg. Może to być siatka całego ciała lub tylko twarzy, w zależności od projektu twojej postaci.
2. Verify Morph Targets and Curves
Przed kontynuowaniem sprawdź, czy twoja siatka szkieletowa ma odpowiednie cele morfowania i odpowiadające im krzywe do animacji synchronizacji warg.
Sprawdź cele morfowania: Sprawdź, czy twoja siatka szkieletowa zawiera cele morfowania (kształty mieszane), które mogą być użyte jako wizemy do animacji synchronizacji warg. Większość postaci z obsługą animacji twarzy powinna mieć jakieś cele morfowania fonemów/wizemów.

Ważne: Sprawdź zakładkę Krzywe Ten krok jest szczególnie kluczowy dla postaci eksportowanych z Blendera lub innego zewnętrznego oprogramowania:
- Otwórz zakładkę Krzywe w edytorze Siatki Szkieletowej
- Sprawdź, czy widzisz krzywe odpowiadające twoim celom morfowania
- Jeśli zakładka Krzywe jest pusta, ale cele morfowania istnieją, ręcznie dodaj nowe krzywe używając dokładnie tych samych nazw co twoje cele morfowania
Uwaga: Ten problem często występuje przy eksportach z Blendera, gdzie cele morfowania importują się pomyślnie, ale krzywe animacji nie są tworzone automatycznie. Bez pasujących krzywych animacja nie wypełni się poprawnie po upieczeniu do Control Rig.
Alternatywne rozwiązanie: Aby zapobiec temu problemowi podczas eksportu z Blendera, spróbuj włączyć Właściwości Niestandardowe i Animację w ustawieniach eksportu FBX, co może pomóc w dołączeniu krzywych animacji wraz z celami morfowania.
3. Create a Reference Pose Animation
- Przejdź do
Utwórz Zasób -> Utwórz Animację -> Pozycja Referencyjna - Wpisz opisową nazwę dla sekwencji animacji i zapisz ją w odpowiedniej lokalizacji
- Utworzona Sekwencja Animacji otworzy się automatycznie, pokazując pustą animację odtwarzaną w pętli

- Kliknij przycisk
Pauza, aby zatrzymać odtwarzanie animacji dla łatwiejszej edycji

4. Edit the Animation Sequence
- Kliknij
Edytuj w Sequencerze->Edytuj za pomocą FK Control Rig - W oknie dialogowym
Upiecz do Control Rigkliknij przyciskUpiecz do Control Rigbez zmiany żadnych ustawień

- Edytor przełączy się w tryb
Tryb Animacjiz otwartą zakładkąSequencer - Ustaw
Koniec Zakresu Widokuna 0016 (co automatycznie ustawi równieżKoniec Zakresu Roboczegona 0016) - Przeciągnij prawą krawędź suwaka na prawy koniec okna sequencera
5. Prepare the Animation Curves
- Wróć do zasobu Animation Sequence i znajdź cele morfowania na liście
Curves(jeśli nie są widoczne, zamknij i ponownie otwórz zasób Animation Sequence) - Usuń wszystkie cele morfowania, które nie są związane z wizemami lub ruchami ust, których chcesz użyć do synchronizacji warg
6. Plan your viseme mapping
Utwórz plan mapowania, aby dopasować wizemy twojej postaci do wymaganego zestawu wtyczki. Na przykład:
Sil -> Sil
PP -> FV
FF -> FV
TH -> TH
DD -> TD
KK -> KG
CH -> CH
SS -> SZ
NN -> NL
RR -> RR
AA -> AA
E -> E
IH -> IH
OH -> O
OU -> U
Uwaga, że powtórzenia mapowań są dopuszczalne, gdy zestaw wizemów twojej postaci nie ma dokładnych dopasowań dla każdego wymaganego wizemu.
7. Animuj każdy wizem
- Dla każdego wizemu animuj odpowiednie krzywe celów morfowania od 0.0 do 1.0
- Rozpocznij animację każdego wizemu na innej klatce
- Skonfiguruj dodatkowe krzywe w razie potrzeby (otwarcie szczęki/ust, pozycja języka itp.), aby stworzyć naturalnie wyglądające kształty wizemów
8. Create a Pose Asset
- Przejdź do
Create Asset->Pose Asset->Current Animation - Wpisz opisową nazwę dla Pose Asset i zapisz ją w odpowiedniej lokalizacji
- Utworzony Pose Asset otworzy się automatycznie, pokazując pozy takie jak
Pose_0,Pose_1itd., każda odpowiadająca wizemowi - Przejrzyj wagi wizemów, aby upewnić się, że działają zgodnie z oczekiwaniami

9. Finalize the Pose Asset
- Zmień nazwę każdej pozy, aby odpowiadała nazwom wizemów z sekcji Wymagania wstępne
- Usuń wszystkie nieużywane pozy
Setting up audio handling and blending
Gdy twój zasób poz jest gotowy, musisz skonfigurować węzły obsługi i mieszania dźwięku:
- Znajdź lub utwórz Animation Blueprint swojej postaci
- Skonfiguruj obsługę i mieszanie dźwięku, postępując zgodnie z tymi samymi krokami, które są udokumentowane w standardowym przewodniku konfiguracji wtyczki
- W węźle
Blend Runtime MetaHuman Lip Syncwybierz swój niestandardowy zasób poz zamiast domyślnego zasobu poz MetaHuman

Combining with body animations
Jeśli chcesz wykonywać synchronizację ust wraz z innymi animacjami ciała:
- Postępuj zgodnie z tymi samymi krokami, które są udokumentowane w standardowym przewodniku wtyczki
- Upewnij się, że podajesz poprawne nazwy kości dla szkieletu szyi swojej postaci, zamiast używać nazw kości MetaHuman
Wyniki
Oto przykłady niestandardowych postaci korzystających z tej konfiguracji:



Jakość synchronizacji ust w dużej mierze zależy od konkretnej postaci i tego, jak dobrze skonfigurowane są jej wizemy. Powyższe przykłady pokazują działanie wtyczki z różnymi typami niestandardowych postaci o odrębnych systemach wizemów.