W poprzednim samouczku na temat Kinematyki odwrotnej dynamicznej postać obcego została z dwoma łańcuchami IK do czułków i czułków, co umożliwia jej animację w pierwszym kroku.
W tym samouczku chcemy użyć narzędzia do morphingu PoseMorph, aby stworzyć kontrolę suwakiem dla ust i czułków, co ułatwi nam animowanie twarzy obcego.
W pliku PSD_C4D_R12_PoseMorph_Start.c4d znajdziesz stan początkowy - w porównaniu do samouczka dotyczącego dynamicznej kinematyki odwrotnej, tylko funkcja Dynamics została wyłączona, a dwa dodatkowe Jointy dla ust zostały dodane.
Te dwa jointy są niezbędne, abyśmy mieli staw skokowy we właściwym miejscu do otwierania ust. Te dwa Jointy nie są aktualnie częścią IK dla obcego, ani nie posiadają wag, które mogłyby zmieniać geometrię obcego. Zajmiemy się tym później - jeśli ktoś chce zacząć od razu z morfingiem, otwiera plik PSD_C4D_R12_PoseMorph_Mund.c4d i przechodzi do następnej sekcji tego samouczka.
Integracja nowych jointów w istniejący łańcuch IK
Obecnie oba Jointy dla szczęki i ust znajdują się poza łańcuchem IK. Joint szczęki pozwala na obrót stawu skokowego, a później joint ust pozwoli nam deformować żuchwę.
Najpierw należy zintegrować IK szczęki w odpowiednim miejscu w hierarchii Jointów obcego. Ponieważ w naszym przypadku Joint głowy odpowiada za orientację głowy, umieszczamy Joint szczęki i podrzędny Joint ust jako Podobiekty w Joint głowy.
Jointy szczęki są już częścią całkowitego IK, ale te Jointy nie są jeszcze związane z geometrią - co jest warunkiem koniecznym do ich deformacji geometrii.
Obiekt Skin umożliwia deformację przez informacje Jointów i wagi przechowywane w tagu Weight. Aby uwzględnić dwa nowo utworzone jointy, otwórz tag Weight w Menadżerze Atrybutów i przeciągnij Joint szczęki i ust do odpowiedniego pola Joint w oknie dialogowym ustawień.
Oba Jointy są teraz akceptowane przez Obiekt Skin do deformacji. A co z wagami? Ponieważ Jointy zostały ręcznie podłączone, nie mają one początkowo wpływu na geometrię - dlatego musimy również ustawić im wagę dodatkowo.
W tym celu wyłączamy Siatkę HyperNURBS postaci obcego i aktywujemy narzędzie Waga w menu Postać. Po wybraniu Jointu ust możemy nakładać wagę za pomocą narzędzia Pędzel. Dla głowy obcego Joint ust powinien móc wpływać na całą żuchwę.
Ta waga jest wystarczająca do naszych potrzeb. Ponieważ Joint szczęki stanowi tylko podstawę do obracania Jointu ust, nie musi otrzymywać własnej wagi.
Zawsze warto na końcu sprawdzić, czy mimo dodatkowej wagi wszystkie wagi nadal działają poprawnie. W moim przypadku nowo dodany Joint ust odebrał kilka wag Jointowi głowy, co można łatwo sprawdzić, selekcjonując Joint głowy i naprawiając za pomocą narzędzia Waga.
Oba Jointy są teraz w pełni zintegrowane w hierarchii IK i mogą brać udział w deformacji głowy obcego. Testujemy to poprzez po prostu przesunięcie Jointu ust w dowolnym kierunku osi.
Ustawianie pozycji PoseMorph dla ust
Jednym z największych zalet PoseMorph jest to, że może obsługiwać całe hierarchie różnych obiektów. Ponieważ użyjemy zarówno Jointów z łańcucha IK, jak i obiektów Null (cele dla czułków) do animacji głowy obcego, po prostu grupujemy te obiekty pod wspólnym nadobiektem Rig, któremu następnie przypisujemy Tag PoseMorph.
W Menu Postać etykieta PoseMorph ma dwie wersje: dla morfingu w punktach i morfingu pozycji, rozmiaru i obrotu obiektów zawartych, jako PSR-Morph (Position, Size, Rotation). Aby przypisać odpowiednią etykietę PoseMorph dla grupy Rig, wybieramy obiekt Rig i dodajemy PSR-Morph za pomocą odpowiedniej komendy w menu Postać.
W oknie dialogowym ustawień tagu PosMorph znajdujemy się teraz w trybie Edycji, który oferuje nam już Pose podstawową oraz pierwszą pozycję do dalszego morphingu. Wykorzystamy tę pozycję do otwierania ust.
Po podwójnym kliknięciu na pozycję Pose.0 CINEMA 4D pozwala nam nadać tej pozycji własną, wymowną nazwę.
Wybrana pozycja została już aktywowana do edycji, dlatego możemy zacząć od razu. Selekcjonujemy staw żuchwy w Managerze obiektu i aktywujemy Narzędzie rotacji. Poprzez obracanie Stawu wzdłuż jego osi x otwieramy usta postaci obcego - nie za szeroko, aby uniknąć niepożądanych deformacji lub nakładania się geometrii.
Aby dolna szczęka lub podbródek wydawał się większy, przesuwamy staw jamy ustnej trochę w dół lub do przodu. PoseMorph zapamiętuje nie tylko kąt nachylenia, ale także każdą zmianę pozycji, dlatego możemy swobodnie dopracować pozycje.
Sprawdźmy, czy utworzona pozycja działa zgodnie z oczekiwaniami. Przełączamy się z trybu Edycji na Animację w oknie dialogowym tagu PoseMorph i przesuwamy suwak siły. W zależności od ustawionej wartości usta naszej postaci z kosmosu otwierają się lub zamykają.
Usta można już otwierać; aby jednak postać obca wyglądała jeszcze zabawniej, tworzymy dodatkowe pozycje do deformacji lub przesunięcia dolnej szczęki na bok.
Aby to zrobić, najpierw tworzymy kolejną pozycję, klikając przycisk Dodaj pozycję.
Nadajemy również tej pozycji odpowiednią nazwę. W tym przypadku dla ułatwienia orientacji użyłem logicznej dla mnie jako użytkownika logicznej strony. Po ustawieniu pozycji przesuwamy staw jamy ustnej zgodnie z położeniem bocznym na lewo lub prawo, uważając, aby nie powodować niepożądanych deformacji ani nadmiernych zniekształceń.
W Managerze współrzędnych możemy odczytać, o ile przesunęliśmy staw jamy ustnej na bok. Zapamiętujemy tę wartość, aby zapewnić równie duże przesunięcie dla lewej strony.
Analogicznie do lewej strony ust, tworzymy także nową pozycję dla prawej strony, nadając jej odpowiednią nazwę. Staw jamy ustnej jest tym razem przesunięty o ujemną wartość, znaną z przesunięcia z lewej strony. Można to łatwo zrobić za pomocą Managera współrzędnych.
Ważne pozycje dla ust zostały utworzone, więc teraz możemy przystąpić do testowania ustawionych pozycji. W trybie Animacji mamy teraz trzy pozycje dla ust postaci obcej, które możemy dowolnie dostosować za pomocą odpowiednich suwaków i, co najważniejsze, łączyć ze sobą.
Aby móc kontrolować tę obsługę ust także wygodnie poza tagiem PosMorph, dodajemy trzy parametry lub pozycje do Wyświetlacza head-up (HUD). W tym celu zaznaczamy trzy wpisy parametrów w Managerze atrybutów i klikamy prawym przyciskiem myszy, aby otworzyć menu kontekstowe. Za pomocą polecenia Dodaj do HUD wygodnie umieszczamy trzy kontrolki w widoku 3D, …
… gdzie od razu możemy eksperymentować z dostępnymi suwakami.
Ustawianie pozycji w tagu PoseMorph dla czułków lub anten
Do tej pory pozycje dla morfingu w tagu PoseMorph zostały utworzone poprzez przesunięcie lub obrót Stawów w naszej hierarchii IK. Patrząc na czułki lub anteny, widzimy, że także pozycja prostych obiektów zerowych zawiera wystarczające informacje do pracy z tagiem PosMorph.
Aby to zrobić, najpierw wybieramy dwa docelowe obiekty zerowe anteny za pomocą Managera obiektów. W istniejącym już tagu PoseMorph dodajemy kolejną pozycję dla anten za pomocą przycisku Dodaj pozycję.
Po dwukrotnym kliknięciu nazwy nowo utworzonej pozy nadajemy unikalną nazwę dla kontrolowania czułków lub anten w tagu PoseMorph.
Podczas docelowej pozy pozwalamy postaci obcego skrócić obie anteny. Wystarczy przesunąć wybrane obiekty docelowe anten wzdłuż swojej osi y w dół.
Po utworzeniu pozy jest przeprowadzany test - przełączamy się w tryb Animacja i sterujemy czułkami lub antenami postaci obcego za pomocą suwaka w tagu PoseMorph.
Jeśli nowy element sterujący ma być dodany do innych wpisów HUD, musimy usunąć już istniejący element HUD poprzez menu kontekstowe, klikając prawym przyciskiem myszy i wybierając polecenie Usuń.
Następnie zaznaczamy wszystkie wpisy parametrów odpowiednie dla HUD za pomocą Menadżera atrybutów i ponownie dodajemy je do HUD poprzez menu kontekstowe, klikając prawym przyciskiem myszy.
Aby grupa HUD pozostała widoczna w widoku Edytor, gdy tag PoseMorph nie jest zaznaczony, klikamy prawym przyciskiem myszy na elemencie HUD i wybieramy menu kontekstowe, a następnie w sekcji podrzędnej Pokaż wybieramy opcję Zawsze.
Dzięki istniejącym już możliwościom kontroli i kombinacji można już całkiem ładnie kontrolować postać obcego za pomocą PoseMorph.
To tylko krótka prezentacja możliwości nowego narzędzia PoseMorph z CINEMA 4D Release 12. Oczywiście możecie integrować znacznie więcej poz w ramach eksperymentów.