Przejdź do głównej zawartości

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

Kompatybilność z niestandardowymi postaciami

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:

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 VisemeARKit EquivalentUwagi
SilmouthClosePozycja neutralna/spoczynkowa
PPmouthPressLeft + mouthPressRightDla dźwięków dwuwargowych, użyj obu kształtów nacisku razem
FFlowerLipBiteLeft + lowerLipBiteRight (or mouthRollLower)Dolna warga styka się z górnymi zębami, jak w dźwiękach "f" i "v"
THtongueOutARKit ma bezpośrednią kontrolę języka
DDjawOpen (mild) + tongueUp (if you have tongue rig)Język dotyka wału dziąsłowego; lekkie opuszczenie żuchwy
KKmouthLeft or mouthRight (mild)Delikatne pociągnięcie kącika ust aproksymuje dźwięki welarne
CHjawOpen (mild) + mouthFunnel (mild)Połącz dla dźwięków postalweolarnych
SSmouthFrownUżyj lekkiego zmarszczenia dla sybilantów
NNjawOpen (very mild) + mouthClosePrawie zamknięte usta z lekkim otwarciem żuchwy
RRmouthPucker (mild)Delikatne zaokrąglenie dla dźwięków r
AAjawOpen + mouthStretchLeft + mouthStretchRight (or jawOpen + mouthOpen)Szeroko otwarte usta dla dźwięku "ah"
EjawOpen (mild) + mouthSmileŚrednio otwarta pozycja z lekkim uśmiechem
IHmouthSmile (mild)Lekkie rozciągnięcie warg
OHmouthFunnelZaokrąglony, otwarty kształt
OUmouthPuckerCiasno zaokrąglone wargi

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.

Przykład celów morfowania w postaci

Ważne: Sprawdź zakładkę Krzywe Ten krok jest szczególnie kluczowy dla postaci eksportowanych z Blendera lub innego zewnętrznego oprogramowania:

  1. Otwórz zakładkę Krzywe w edytorze Siatki Szkieletowej
  2. Sprawdź, czy widzisz krzywe odpowiadające twoim celom morfowania
  3. 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

  1. Przejdź do Utwórz Zasób -> Utwórz Animację -> Pozycja Referencyjna
  2. Wpisz opisową nazwę dla sekwencji animacji i zapisz ją w odpowiedniej lokalizacji
  3. Utworzona Sekwencja Animacji otworzy się automatycznie, pokazując pustą animację odtwarzaną w pętli

Tworzenie zasobu pozy referencyjnej Nazywanie zasobu pozy referencyjnej

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

Wstrzymywanie odtwarzania animacji

4. Edit the Animation Sequence

  1. Kliknij Edytuj w Sequencerze -> Edytuj za pomocą FK Control Rig
  2. W oknie dialogowym Upiecz do Control Rig kliknij przycisk Upiecz do Control Rig bez zmiany żadnych ustawień

Edytowanie za pomocą FK Control Rig Upiekanie do Control Rig

  1. Edytor przełączy się w tryb Tryb Animacji z otwartą zakładką Sequencer
  2. Ustaw Koniec Zakresu Widoku na 0016 (co automatycznie ustawi również Koniec Zakresu Roboczego na 0016)
  3. Przeciągnij prawą krawędź suwaka na prawy koniec okna sequencera

5. Prepare the Animation Curves

  1. 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)
  2. 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

  1. Dla każdego wizemu animuj odpowiednie krzywe celów morfowania od 0.0 do 1.0
  2. Rozpocznij animację każdego wizemu na innej klatce
  3. 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

  1. Przejdź do Create Asset -> Pose Asset -> Current Animation
  2. Wpisz opisową nazwę dla Pose Asset i zapisz ją w odpowiedniej lokalizacji
  3. Utworzony Pose Asset otworzy się automatycznie, pokazując pozy takie jak Pose_0, Pose_1 itd., każda odpowiadająca wizemowi
  4. Przejrzyj wagi wizemów, aby upewnić się, że działają zgodnie z oczekiwaniami

Tworzenie zasobu pozy Nazywanie zasobu pozy Zasób pozy z wizemami

9. Finalize the Pose Asset

  1. Zmień nazwę każdej pozy, aby odpowiadała nazwom wizemów z sekcji Wymagania wstępne
  2. 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:

  1. Znajdź lub utwórz Animation Blueprint swojej postaci
  2. 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
  3. W węźle Blend Runtime MetaHuman Lip Sync wybierz swój niestandardowy zasób poz zamiast domyślnego zasobu poz MetaHuman

Wybór niestandardowego zasobu poz

Combining with body animations

Jeśli chcesz wykonywać synchronizację ust wraz z innymi animacjami ciała:

  1. Postępuj zgodnie z tymi samymi krokami, które są udokumentowane w standardowym przewodniku wtyczki
  2. 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:

Przykład 1: Synchronizacja ust z niestandardową postacią

Przykład 2: Synchronizacja ust z innym systemem wizemów

Przykład 3: Synchronizacja ust z innym systemem wizemów

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.