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 wyłącznie dla postaci MetaHuman i nie może być używany z niestandardowymi postaciami. W całym tym przewodniku należy postępować zgodnie z instrukcjami dla modelu Standardowego z głównego przewodnika konfiguracji, gdy są przywoływane.
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:
- Ma prawidłowy szkielet
- Zawiera morf targety (blend shapes) dla wyrazów twarzy
- Idealnie ma 10+ morf targetów definiujących wizemy (więcej wizemów = lepsza jakość synchronizacji ust)
Wtyczka wymaga mapowania morf targetów 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 blisko spokrewnione dźwięki zadziąsłowe.
Referencja mapowania wizemów
Oto mapowania pomię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 blendshapes do animacji twarzy, w tym kilka kształtów ust. Oto jak mapować je na wizemy RuntimeMetaHumanLipSync:
Wizem RuntimeMetaHumanLipSync | Odpowiednik ARKit | Uwagi |
---|---|---|
Sil | mouthClose | Neutralna/pozycja spoczynkowa |
PP | mouthPressLeft + mouthPressRight | Dla dźwięków dwuwargowych, użyj obu kształtów press razem |
FF | lowerLipBiteLeft + lowerLipBiteRight (lub mouthRollLower) | Dolna warga kontaktuje się z górnymi zębami, jak w dźwiękach "f" i "w" |
TH | tongueOut | ARKit ma bezpośrednią kontrolę języka |
DD | jawOpen (łagodny) + tongueUp (jeśli masz rig języka) | Język dotyka wału dziąsłowego; lekkie opuszczenie żuchwy |
KK | mouthLeft lub mouthRight (łagodny) | Delikatne pociągnięcie kącików ust aproksymuje dźwięki welarne |
CH | jawOpen (łagodny) + mouthFunnel (łagodny) | Połącz dla dźwięków zadziąsłowych |
SS | mouthFrown | Użyj lekkiego zmarszczenia dla sybilantów |
NN | jawOpen (bardzo łagodny) + mouthClose | Prawie zamknięte usta z lekkim otwarciem żuchwy |
RR | mouthPucker (łagodny) | Delikatne zaokrąglenie dla dźwięków r |
AA | jawOpen + mouthStretchLeft + mouthStretchRight (lub jawOpen + mouthOpen) | Szeroko otwarte usta dla dźwięku "a" |
E | jawOpen (łagodny) + mouthSmile | Pozycja średnio otwarta z lekkim uśmiechem |
IH | mouthSmile (łagodny) | 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:
Wizem RuntimeMetaHumanLipSync | Jednostki Akcji FACS | Uwagi |
---|---|---|
Sil | Neutralny | Brak aktywnych AUs |
PP | AU23 + AU24 | Ściskacz warg + napinacz warg |
FF | AU22 + AU28 | Lejkowanie warg + ssanie warg |
TH | AU25 (łagodny) + AU27 | Rozchylenie warg + rozciągnięcie ust |
DD | AU25 + AU16 | Rozchylenie warg + obniżacz dolnej wargi |
KK | AU26 + AU14 | Opuszczenie żuchwy + dołeczkowanie |
CH | AU18 + AU25 | Zaokrąglenie warg + rozchylenie warg |
SS | AU20 | Rozciągacz warg |
NN | AU25 (bardzo łagodny) | Lekkie rozchylenie warg |
RR | AU18 (łagodny) | Łagodne zaokrąglenie warg |
AA | AU27 + AU26 | Rozciągnięcie ust + opuszczenie żuchwy |
E | AU25 + AU12 | Rozchylenie warg + pociągacz kącików warg |
IH | AU12 + AU25 (łagodny) | Pociągacz kącików warg + łagodne rozchylenie warg |
OH | AU27 (łagodny) + AU18 | Łagodne rozciągnięcie ust + zaokrąglenie warg |
OU | AU18 + AU26 (łagodny) | Zaokrąglenie warg + łagodne opuszczenie żuchwy |
System Preston Blair to klasyczny standard animacji, który używa opisowych nazw dla 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 dotykający 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 usta 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 opartego na fonemach 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 | Zamknięta przednia samogłoska |
OH | oh | Tylna zaokrąglona samogłoska |
OU | oo | Zamknięta tylna samogłoska |
Niestandardowe postacie z wizemami lub kształtami mieszanymi ust/morfami docelowymi (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, itp.) zazwyczaj można mapować na system wizemów wtyczki z rozsądnymi przybliżeniami.
Tworzenie niestandardowego zasobu pozy
Wykonaj te kroki, aby utworzyć niestandardowy zasób pozy dla swojej postaci, który będzie używany z węzłem Blend Runtime MetaHuman Lip Sync
:
1. Zlokalizuj Skeletal Mesh swojej postaci
Znajdź skeletal mesh, który zawiera morfy docelowe (kształty mieszane), które chcesz użyć do animacji synchronizacji warg. Może to być pełny mesh ciała lub tylko mesh twarzy, w zależności od projektu twojej postaci.
2. Zweryfikuj Morfy Docelowe i Krzywe
Przed kontynuowaniem sprawdź, czy twój skeletal mesh ma odpowiednie morfy docelowe i odpowiadające im krzywe do animacji synchronizacji warg.
Sprawdź Morfy Docelowe:
Zweryfikuj, czy twój skeletal mesh zawiera morfy docelowe (kształty mieszane), które mogą być używane jako wizemy do animacji synchronizacji warg. Większość postaci z obsługą animacji twarzy powinna mieć jakieś morfy docelowe fonemów/wizemów.
Ważne: Zweryfikuj zakładkę Krzywe Ten krok jest szczególnie kluczowy dla postaci eksportowanych z Blendera lub innego zewnętrznego oprogramowania:
- Otwórz zakładkę Curves w edytorze Skeletal Mesh
- Sprawdź, czy widzisz krzywe odpowiadające twoim targetom morfowania
- Jeśli zakładka Curves jest pusta, ale targety morfowania istnieją, ręcznie dodaj nowe krzywe używając dokładnie tych samych nazw co twoje targety morfowania
Uwaga: Ten problem często występuje przy eksportach z Blendera, gdzie targety morfowania importują się pomyślnie, ale krzywe animacji nie są automatycznie tworzone. 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ć Custom Properties i Animation w ustawieniach eksportu FBX, co może pomóc w dołączeniu krzywych animacji wraz z targetami morfowania.
3. Utwórz animację pozy referencyjnej
- Przejdź do
Create Asset -> Create Animation -> Reference Pose
- Wpisz opisową nazwę dla sekwencji animacji i zapisz ją w odpowiedniej lokalizacji
- Utworzona Animation Sequence otworzy się automatycznie, pokazując pustą animację odtwarzaną w pętli
- Kliknij przycisk
Pause
, aby zatrzymać odtwarzanie animacji dla łatwiejszej edycji
4. Edytuj sekwencję animacji
- Kliknij
Edit in Sequencer
->Edit with FK Control Rig
- W oknie dialogowym
Bake to Control Rig
kliknij przyciskBake to Control Rig
bez zmiany jakichkolwiek ustawień
- Edytor przełączy się w tryb
Animation Mode
z otwartą zakładkąSequencer
- Ustaw
View Range End Time
na 0016 (co automatycznie ustawi równieżWorking Range End
na 0016) - Przeciągnij prawą krawędź suwaka na prawy koniec okna sekwencera
5. Przygotuj krzywe animacji
- Wróć do zasobu Animation Sequence i znajdź morph targets na liście
Curves
(jeśli nie są widoczne, zamknij i ponownie otwórz zasób Animation Sequence) - Usuń wszystkie morph targets, które nie są powiązane z wizemami lub ruchami ust, których chcesz użyć do synchronizacji ust (Lip Sync)
6. Zaplanuj mapowanie wizemów
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
Należy zauważyć, że powtarzające się mapowania są akceptowalne, 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. Utwórz Zasób Pozy
- Przejdź do
Utwórz Zasób
->Zasób Pozy
->Bieżąca Animacja
- Wpisz opisową nazwę dla Zasobu Pozy i zapisz go w odpowiedniej lokalizacji
- Utworzony Zasób Pozy otworzy się automatycznie, pokazując pozy takie jak
Pose_0
,Pose_1
, itd., każda odpowiadająca wizemowi - Przejrzyj wagi wizemów, aby upewnić się, że działają zgodnie z oczekiwaniami
9. Sfinalizuj Zasób Pozy
- Zmień nazwę każdej pozy, aby pasowała do nazw wizemów z sekcji Wymagania wstępne
- Usuń wszystkie nieużywane pozy
Konfiguracja obsługi dźwięku i mieszania
Gdy zasób poz jest gotowy, musisz skonfigurować węzły obsługi dźwięku i mieszania:
- Znajdź lub utwórz Animation Blueprint swojej postaci
- Skonfiguruj obsługę dźwięku i mieszanie, postępując zgodnie z tymi samymi krokami, które są udokumentowane w standardowym przewodniku konfiguracji wtyczki
- W węźle
Blend Runtime MetaHuman Lip Sync
wybierz swój niestandardowy zasób poz zamiast domyślnego zasobu poz MetaHuman
Łączenie z animacjami ciała
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 podałeś poprawne nazwy kości dla szkieletu szyi swojej postaci zamiast używania 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 demonstrują działanie wtyczki z różnymi typami niestandardowych postaci z odrębnymi systemami wizemów.