Spine a'la Paul Neale
Postanowiłem przygotować ten sam model na wszystkie dostępne w uczelni programy i w tym celu również wykorzystać różne wpływy a nie tylko trzymać się w całość jednego oprogramowania. Wynikiem tego "składaka" jest nasz rigg dla początkujących wykorzystujący trochę pomysłów z programów Maya, 3ds max i Blender. Kręgosłup podpatrzyłem ok 2004 roku w video tutorialu Paula Neale i wydał mi się on wtedy banalnie prosty i bardzo funkcjonalny. Każdy kto naprawdę myśli o riggowaniu powinien zapoznać się z tym tytułem bez względu na oprogramowanie bo jak pokazałem można tą wiedzę wykorzystać na prawie każdym programie do 3D. Zainteresowanych zapraszam na: CG ACADEMY
Przygotowania
Program Maya ma Shader 'Surface Shader' pozwalający wyświetlać w widoku 3D jedynie sylwetkę naszego obiektu bez żadnego cieniowania, co bardzo przyspiesza prace i ułatwia skupienie sie na tworzeniu kości idealnie dopasowanych do sylwetki. Shader dla naszego obiektu przypisujemy przytrzymując prawy przycisk myszy (PPM) na obiekcie lub też w oknie 'Attribute Editor' (Ilustracja1). Po wybraniu naszego shadera możemy ustawić kolor w jakim będzie on wyświetlał nasz obiekt w przykładzie - jasny szary. Ten krok nie jest obligatoryjny ale wydał mi sie bardzo pomocny ponieważ ukrywa niepotrzebne podczas riggowania elementy obiektu.
Bones
Maya jest programem który ukrywa niepotrzebne funkcje ergo będąc przełączonym na interfejs 'Polygony' nie będziemy mieli dostępnych funkcji potrzebnych przy animacji itp. Zmieniamy interface na 'Animation' znajdujemy w menu kontekstowym lub na ikonach 'Create Joint' i zaczynamy tworzyć kości naszego kręgosłupa składającego się z trzech grup:
- Waist
- Groin(END)
- -----
- Spine_base
- Spine_mid
- Chest
- Chest(END)
- -----
- Neck
- Throat
- Head
Korzystając z narzędzia typu magnes, przyciągamy kość karku w położenie kości Chest(END) dzięki temu przypisany później Constrain Piont będzie poprawnie działał.
Custom Controler
Program Maya rozkłada wszystko na części pierwsze, i tak jeżeli w innym programie zrobimy krzywą o kształcie kwadratu to outliner pokaże jeden obiekt w programie maja będą to zgrupowane cztery linie. Pomimo że w widoku 3D mamy to samo to już w oknie outlinera zaczyna sie robić bałagan i dlatego jeżeli już robimy jakieś kontrolery tworzymy je z krzywych Bezjera lub CV Curves za jednym pociągnięciem!!. Jeżeli podczas tworzenia przerwiemy ciągłość to outliner pokaże nam zgrupowane dwa obiekty. Oczywiście to kwestia estetyki a nie tego czy rigg będzie działał czy nie bo zawsze można użyć kształtu 'Circle' ale możemy również zrobić kontroler jak na Ilustracji 3. Wybieramy krzywą beziera i w trzech widokach rysujemy jednocześnie naszą bryłę. Bardziej to zadanie na orientacje w przestrzeni niż z riggowania. Aby nasz kontroler spełniał swoje zadanie musi on posiadać pozycje zerową do której zawsze będziemy mogli nim powrócić. Najprostszym sposobem na to jest sparentowanie naszego kontrolera do pustej grupy której nie można zaznaczyć w widoku 3D ergo animator będzie poruszał kontrolerem w układzie lokalnym grupy. Tworząc obiekt musimy tworzyć go w punkcie świata 0.0.0, unikniemy dzięki temu mozolnego ustawiania pozycji zero, resetowania jej i za każdym razem gdy dodamy nowy kontroler będziemy musieli to powtarzać, tworząc obiekt poprawnie możemy go swobodnie kopiować. Po stworzeniu kształtu naciskamy 'ctlr+G' i automatycznie mamy kontroler sparentowany do grupy. Ustawiając kontroler we właściwym miejscu łapiemy w outlinerze Grupe! a animator porusza krzywą która zawsze powraca tam gdzie my ustawiliśmy grupę. Ilustracja4
Controls Setup
Stworzone kontrolery ustawiamy w odpowiednich miejscach jak również nazywamy je odpowiednio (licząc od dołu)(Ilustracja5):
- G_CTR_Waist
- CTR_Waist
- G_CTR_Spine
- CTR_Spine
- G_CTR_Chest
- CTR_Chest
- G_CTR_Head
- CTR_Head
Align/Orient
Orientacja kości najgorsza cześć riggowania, ponieważ musimy zadbać o to by wszystkie kości naszego układu posiadały podobną orientacje. Jaka to będzie orientacja to już zależy od grafika byle by sie jej trzymać. Włączamy wyświetlanie lokalnych osi dla zaznaczonych elementów (ilustracja 6) a następnie otwieramy narzędzie 'Orient Joint', teraz zakładamy że w naszym riggu oś Y będzie zawsze wskazywała kolejną kość, a oś X będzie skierowana w bok i tak pozostaje nam oś Z która będzie skierowana do przodu. Oczywiście to założenie jest prawdziwe jedynie przy kościach kręgosłupa bo w kościach palców jeżeli Y będzie wskazywał kolejną kość to X będzie skierowany ku dołowi a Z do przodu. Po ustawieniu orientacji wszystkich kości musimy taką sama orientacje nadać naszym kontrolerom ale to już możemy zrobić szybciej. Wybieramy kość Waist następnie z shift G_CTR_Waist i z menu Constrain wybieramy 'Constrain Orient', klikając na ikonę kwadratu otwieramy menu danej funkcji, upewnijmy sie że offset jest wyłączony i Apply. Przypisując ograniczenia musimy pamiętać o kolejności najpierw obiekt który daje położenie a później ten który je ma dostać. Constrain który pokaże nam sie pod grupą G_CTR_Waist musimy skasować, powtarzamy tą czynność z pozostałymi kontrolerami. G_CTR_Spine orientujemy do kości Spine_base, G_CTR_Chest do kości Chest a kontroler G_CTR_Head do kości Head, podobnie kasujemy wszystkie Constraint w outlinerze.(ilustracja 6)
Constraints
Zanim zaczniemy tworzyć pierwsze ograniczenia musimy stworzyć pozycje wyjściowa dla naszego kręgosłupa. Z menu kontekstowego wybieramy Create>Locator zmieniamy mu nazwę na Spine_Base_Point i przypisujemy mu Constraints Piont i Orient. Gdy nasz lokalizator przesunie się na pozycje kości usuwamy przypisane powiązania. Teraz mając dwa punkty odniesienia dla naszej kości możemy ustawić dla niej ograniczenia. Najpierw zaznaczamy nasz lokalizator 'Spine_Base_Point' następnie z shift kość Spine_Bone i przypisujemy Constrain Orient, następnie wybieramy CTR_Spine ponownie z shift Spine_Bone i ponownie Constrain Orient. Po wykonaniu tej operacji w oknie parametrów po prawej stronie 'Channel Box/Layer Editor' pojawią sie dwa dodatkowe wpisy na końcu rozwijanej zakładki '(nazwa kośći)_(nazwa ograniczenia)' opisane jako:
'Spine Base Point W0 1'
'CTR_Spine W1 1'
Wartości te możemy również znaleźć w 'Atribut Editor' w nodzie ograniczenia. Wartości tych parametrów oznaczają wpływ jaki mają poszczególne kontrolery na naszą kość zmieniając wartości w obu parametrach na 0,5 ustawiamy, że nasza kość będzie podążała za naszym kontrolerem CTR_Spine w 50%. Suma wartości wszystkich ograniczeń nie powinna przekraczać 1 czyli 100% w przeciwnym wypadku nasz rigg może zachowywać się w nieprzewidywalny sposób
Pozostaje nam powtórzyć poprzedni punkt ze wszystkimi kośćmi naszego układu, i dopasowanie tak wag wpływów by nasz kręgosłup płynnie się poruszał. Zanim zaczniemy przypisywać kolejne ograniczenia musimy pamiętać że kontroler CTR_Spine, Spine_Base_Point i kośc Spine_Base miały tą sama orientacje teraz orientacje naszych kontrolerów i kości będą się różniły więcw oknie Constrain Orient musimy włączyć opcje 'Maintain Offset' (Ilustracja 8) by nasze kontrolery nie poprzestawiały kości. Na początek możemy przypisać Constrain Point do naszego karku tak aby podążał na kością Chest(END). Teraz kolejne kości do Spine_Mid przypisujemy CTR_Spine 70% i CTR_Chest 20%, do Chest przypisujemy CTR_Spine 20% i CTR_Chest 70%, do Neck przypisujemy orientacje kości Chest 50% i CTR_Chest 50%, do Throat przypisujemy orientacje kości Neck 50% i CTR_Head 50% i na końcu kość Head dostaje 100% CTR_Head. Podobnie do kości głowy do kości Waist przypisujemy 100% CTR_Waist. (Ilustracja9)
Podane procentowe wartości są wartościami wyjściowymi jeżeli szkielet nie zachowuje sie tak jak powinien lub nasz bohater ma większy brzuch i bardziej powinien zginać się w klatce a nie w pasie to właśnie tymi wartościami jesteśmy wstanie ładnie to wyregulować. Najlepiej robić rigg mając pod ręką szkice artysty na których będziemy mogli określić jakie ruchy i ich zakresy potrzebne naszemu bohaterowi.