Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00163 013878 11052133 na godz. na dobę w sumie
Blender. Od planowania, modelowania oraz teksturowania do animacji i renderingu. Praktyczne projekty - książka
Blender. Od planowania, modelowania oraz teksturowania do animacji i renderingu. Praktyczne projekty - książka
Autor: Liczba stron: 328
Wydawca: Helion Język publikacji: polski
ISBN: 83-246-1465-6 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> grafika komputerowa >> blender
Porównaj ceny (książka, ebook, audiobook).

Poznaj tajniki Blendera i twórz wyjątkowe projekty w technologii 3D

Blender to znakomity, darmowy program do modelowania i renderowania obrazów oraz animacji trójwymiarowej. Posiada niekonwencjonalny interfejs użytkownika, bez zachodzących na siebie i blokujących się okien, własny silnik graficzny oraz wiele funkcji do edycji obiektów, pozwalających uzyskać praktycznie dowolny kształt. Istnieje kilka wersji Blendera -- na różne platformy sprzętowe i programowe. Za pomocą tej aplikacji można tworzyć przestrzenne projekty techniczne, gry komputerowe, reklamy telewizyjne i profesjonalne logotypy firm. To wszystko sprawia, że Blender jest niezwykle popularny i coraz szerzej wykorzystywany.

'Blender. Od planowania, modelowania oraz teksturowania do animacji i renderingu. Praktyczne projekty' to nietypowy podręcznik, pokazujący działanie programu i jego zaawansowane funkcje na przykładzie budowania konkretnego projektu -- czołgu M1A2 Abrams. Dzięki temu możesz nauczyć się, na czym polega modelowanie, teksturowanie, rozpakowywanie siatek, rigging oraz rendering. Taka konstrukcja to wielki atut książki, bowiem pozwala Ci podjąć pracę nad projektem w dowolnym miejscu, przyjrzeć się sposobowi rozwiązania danego problemu, poznać nie tylko narzędzia i funkcje, ale także sposoby organizacji pracy nad projektem.

Cała teoria i praktyka, których potrzebujesz, aby tworzyć niesamowite projekty 3D.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Blender. Od planowania, modelowania oraz teksturowania do animacji i renderingu. Praktyczne projekty Autor: Jaros‡aw Kolmaga ISBN: 83-246-1465-6 Format: 168x237, stron: 328 Poznaj tajniki Blendera i tw(cid:243)rz wyj„tkowe projekty w technologii 3D (cid:149) Jak wykonywa(cid:230) rendery statyczne? (cid:149) Jak przygotowa(cid:230) bazŒ modelu? (cid:149) Jak wykorzysta(cid:230) skrypty jŒzyka Python? Blender to znakomity, darmowy program do modelowania i renderowania obraz(cid:243)w oraz animacji tr(cid:243)jwymiarowej. Posiada niekonwencjonalny interfejs u¿ytkownika, bez zachodz„cych na siebie i blokuj„cych siŒ okien, w‡asny silnik graficzny oraz wiele funkcji do edycji obiekt(cid:243)w, pozwalaj„cych uzyska(cid:230) praktycznie dowolny kszta‡t. Istnieje kilka wersji Blendera (cid:151) na r(cid:243)¿ne platformy sprzŒtowe i programowe. Za pomoc„ tej aplikacji mo¿na tworzy(cid:230) przestrzenne projekty techniczne, gry komputerowe, reklamy telewizyjne i profesjonalne logotypy firm. To wszystko sprawia, ¿e Blender jest niezwykle popularny i coraz szerzej wykorzystywany. (cid:132)Blender. Od planowania, modelowania oraz teksturowania do animacji i renderingu. Praktyczne projekty(cid:148) to nietypowy podrŒcznik, pokazuj„cy dzia‡anie programu i jego zaawansowane funkcje na przyk‡adzie budowania konkretnego projektu (cid:151) czo‡gu M1A2 Abrams. DziŒki temu mo¿esz nauczy(cid:230) siŒ, na czym polega modelowanie, teksturowanie, rozpakowywanie siatek, rigging oraz rendering. Taka konstrukcja to wielki atut ksi„¿ki, bowiem pozwala Ci podj„(cid:230) pracŒ nad projektem w dowolnym miejscu, przyjrze(cid:230) siŒ sposobowi rozwi„zania danego problemu, pozna(cid:230) nie tylko narzŒdzia i funkcje, ale tak¿e sposoby organizacji pracy nad projektem. (cid:149) Bluprints (cid:149) Skrypty jŒzyka Python (cid:149) Przygotowanie projektu (cid:149) Modelowanie (cid:149) Rewaloryzacja (cid:149) PŒdzle, desenie i efekty ze zdjŒ(cid:230) (cid:149) Malowanie modelu hi-poly oraz low-poly (cid:149) UV Unwrapping (cid:149) Rigging (cid:149) Rendering i (cid:156)rodowisko renderingu Kerkythea (cid:149) Typy (cid:156)wiate‡ i o(cid:156)wietlenia Ca‡a teoria i praktyka, kt(cid:243)rych potrzebujesz, aby tworzy(cid:230) niesamowite projekty 3D Wydawnictwo Helion ul. Ko(cid:156)ciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: helion@helion.pl Spis treŁci WstĂp ..............................................................................................................7 RozdziaĪ 1. Przygotowanie projektu ....................................................................9 CzďŎý 1.1. Materiaķy ........................................................................................................................... 9 1.1.1. Zasoby referencyjne ........................................................................................................... 9 1.1.2. Blueprints ..........................................................................................................................10 1.1.3. Szkice .................................................................................................................................. 11 CzďŎý 1.2. Warsztat ...........................................................................................................................12 1.2.1. Opis skryptów jďzyka Python .........................................................................................12 1.2.2. Skrypt Geom Tool ...........................................................................................................13 1.2.3. Skrypt UV Tool ................................................................................................................15 1.2.4. Przygotowanie miejsca pracy .........................................................................................15 CzďŎý 1.3. Czoķg M1A2 Abrams .....................................................................................................16 1.3.1. Historia serii M1 ...............................................................................................................16 1.3.2. Opancerzenie ...................................................................................................................17 1.3.3. Uzbrojenie gķówne, dodatkowe i urzûdzenia celownicze ...........................................17 RozdziaĪ 2. Modelowanie .................................................................................19 CzďŎý 2.1. Przygotowanie bazy modelu ....................................................................................... 20 2.1.1. Bryķa korpusu .................................................................................................................. 20 2.1.2. WieŮyczka ........................................................................................................................ 24 2.1.3. Lufa i boczne pķyty pancerza ......................................................................................... 30 2.1.4. Koķa prowadzûce i napďdowe ........................................................................................ 34 CzďŎý 2.2. Detale ............................................................................................................................. 39 2.2.1. Przód pojazdu ................................................................................................................. 40 2.2.2. Przednia pķyta pancerza ................................................................................................ 52 2.2.3. Boki korpusu ................................................................................................................... 57 2.2.4. Tyķ pojazdu ..................................................................................................................... 62 2.2.5. Pķyty pancerza bocznego ............................................................................................... 75 2.2.6. Lufa ................................................................................................................................... 78 2.2.7. WieŮyczka: boki i tyķ ...................................................................................................... 84 2.2.8. WieŮyczka: czďŎý górna .................................................................................................. 90 2.2.9. Ukķad jezdny ..................................................................................................................110 CzďŎý 2.3. Rewaloryzacja ............................................................................................................... 116 2.3.1. Sharp Modifier i F-Gony .............................................................................................. 116 2.3.2. Dalsze detale .................................................................................................................. 122 4 Blender. Od planowania, modelowania oraz teksturowania do animacji i renderingu RozdziaĪ 3. Teksturowanie ............................................................................. 127 CzďŎý 3.1. UV Unwrapping .......................................................................................................... 128 3.1.1. Teoria .............................................................................................................................. 128 3.1.2. Siatki lufy i gniazda ....................................................................................................... 131 3.1.3. Siatki M2HB i M240 .....................................................................................................138 3.1.4. Siatki podstawowej bryķy wieŮy ....................................................................................167 3.1.5. Siatki systemu trakcji .....................................................................................................175 3.1.6. Siatki korpusu ............................................................................................................... 177 CzďŎý 3.2. Przygotowanie materiaķów .........................................................................................183 3.2.1. Logistyka .........................................................................................................................183 3.2.2. Pďdzle, desenie i efekty ze zdjďý ...................................................................................185 3.2.3. Opracowanie materiaķów dla czoķgu M1A2 ............................................................. 188 CzďŎý 3.3. Malowanie modelu hi-poly ....................................................................................... 189 3.3.1. Przygotowania i radzenie sobie ze szwami ................................................................ 189 3.3.2. Col BKG z maskowaniem leŎnym ............................................................................. 190 3.3.3. Highlighting .................................................................................................................. 192 3.3.4. Mapy bazowe (kompozycja Color) ............................................................................ 192 3.3.5. Mapy rozchodzenia siď Ŏwiatķa (kompozycja Diff) ..................................................195 3.3.6. Mapy wypukķoŎci (kompozycja Bump) ......................................................................196 3.3.7. Mapy odbijania Ŏwiatķa (kompozycja Spec), twardoŎci odbiý (kompozycja Hard) oraz odbiý lustrzanych (kompozycja Mirror) ................................ 198 CzďŎý 3.4. Malowanie modelu low-poly .................................................................................... 199 3.4.1. Proste wypukķoŎci i wgķďbienia ...................................................................................200 3.4.2. Wyciďcia ......................................................................................................................... 201 3.4.3. Sztuczne Ŏwiatķo ............................................................................................................ 203 CzďŎý 3.5. Tekstury w praktyce .................................................................................................... 205 3.5.1. Siatki UV ........................................................................................................................ 206 3.5.2. Malowanie tekstur ........................................................................................................ 206 RozdziaĪ 4. Rigging ........................................................................................213 CzďŎý 4.1. Podstawowy szkielet czoķgu ....................................................................................... 214 CzďŎý 4.2. Podstawowa funkcjonalnoŎý szkieletu .................................................................... 219 CzďŎý 4.3. Zaawansowana funkcjonalnoŎý szkieletu ............................................................... 223 4.3.1. Dualny system namierzania ........................................................................................ 223 4.3.2. Animacja ruchu gûsienic ............................................................................................. 225 RozdziaĪ 5. Rendering ................................................................................... 229 CzďŎý 5.1. Kompozycja .................................................................................................................229 5.1.1. Kadr ................................................................................................................................. 230 5.1.2. Perspektywa ................................................................................................................... 235 5.1.3. Kolor, kontrast, równowaga… ...................................................................................242 CzďŎý 5.2. OŎwietlenie .................................................................................................................. 243 5.2.1. Typy Ŏwiateķ i oŎwietlenia ............................................................................................244 5.2.2. Sposoby oŎwietlenia modelu ......................................................................................245 5.2.3. Kompozycja Ŏwietlna w róŮnych sytuacjach ............................................................249 Spis treŁci 5 CzďŎý 5.3. Silnik renderujûcy Yaf(a)Ray ..................................................................................... 251 5.3.1. Instalacja i uruchomienie renderera Yaf(a)Ray ........................................................ 251 5.3.2. Zakķadka Object/Light/Camera dla obiektów Mesh oraz kamery .......................252 5.3.3. Zakķadka Object/Light/Camera dla Ŏwiateķ ............................................................. 255 5.3.4. Zakķadka Material ........................................................................................................257 5.3.5. Zakķadka Render ...........................................................................................................260 CzďŎý 5.4. ōrodowisko renderingu Kerkythea ..........................................................................267 5.4.1. Rozpoczďcie pracy z Kerkytheû ..................................................................................268 5.4.2. Ustawienia sceny ..........................................................................................................276 5.4.3. Ustawienia nieba ...........................................................................................................282 5.4.4. Ustawienia materiaķów ................................................................................................284 5.4.5. Instancing Brush ...........................................................................................................311 5.4.6. Rendering ...................................................................................................................... 314 Skorowidz .................................................................................................... 317 RozdziaĪ 4. Rigging Niektórzy spoŎród grafików 3D uwaŮajû rigging za zbďdny podczas wykony- wania renderów statycznych. Po czďŎci jest to prawda — moŮna pracowaý bez koŎýca, a jego nieobecnoŎý wcale nie zmieni wyniku koĹcowego. WyobraŬ sobie jednak, Ůe chciaķbyŎ przetestowaý róŮne sposoby ustawienia czoķgu — bez koŎýca kaŮdorazowo konieczne byķoby rďczne ustawianie kursora 3D na osi obrotu da- nej bryķy, zaznaczanie wierzchoķków przynaleŮnych danej transformacji i wreszcie modyfikacja ustawienia ksztaķtu. Sytuacja mogķaby wyglûdaý znacznie gorzej — utworzenie szkieletu i jego skonfigurowanie pozwala bowiem w bardzo ķatwo modyfikowaý sposób ustawienia gûsienic, a wiďc na przykķad odwzorowanie ich znieksztaķcenia po wjechaniu pojazdu na nierówny teren. Bez wykorzystania ar- matur odpowiednie zmodyfikowanie gûsienic byķoby duŮo trudniejsze, zwķasz- cza jeŎli konieczne okazaķoby siď ich kilkukrotne poprawianie. JeŎli zaŎ chodzi o animacjď, trudno sobie wyobraziý, jak bez koŎýca mogķaby ona przebiegaý. Kiedy mowa o szkielecie czoķgu, naturalnie koncentrujemy siď na riggingu czoķ- gowej gûsienicy. Sam z tematem zetknûķem siď po raz pierwszy podczas mode- lowania i riggingu futurystycznego pojazdu z uniwersum znanej gry bitewnej. Po dniu peķnym pracy, rozczarowaĹ i sukcesów udaķo mi siď stworzyý funkcjo- nalny system, na tyle skuteczny, by animacja czoķgu staķa siď czystû przyjemnoŎciû, i na tyle skomplikowany, Ůe pod koniec pracy potrafiķem tylko jasno okreŎliý funkcje kilku zewnďtrznych kontrolerów — do nich teŮ odnosiķem siď, dobu- dowujûc kolejne elementy szkieletu — zupeķnie nie wiedziaķem jednak, „jak to dziaķa” w Ŏrodku. Specjalnie na okazjď pracy z czoķgiem M1 odŎwieŮyķem stary system, posprzûtaķem go nieco i uproŎciķem, wykonaķem teŮ dziesiûtki testów majûcych na celu odnalezienie „jedynych sķusznych rozwiûzaĹ”. Nie ukrywam, Ůe montaŮ tego szkieletu moŮe byý trudny, nie tylko ze wzglďdu na wieloŎý ele- mentów, ale teŮ pewne drobne niuanse, jak chociaŮby koniecznoŎý wykorzysty- wania poŎredników dla relacji dziecko – rodzic. Nie zraŮaj siď wiďc, jeŎli coŎ nie wychodzi — z pomocû poniŮszego tekstu oraz dostďpnego na pķycie CD mode- lu powinieneŎ móc stworzyý wķasnû wersjď systemu sterowania trakcjû czoķgu. 214 Blender. Od planowania, modelowania oraz teksturowania do animacji i renderingu Zachďcam teŮ do eksperymentowania na wķasnû rďkď — poniŮszy tekst jest w koĹ- cu najlepszym dowodem na to, Ůe blenderowy system modyfikatorów posiada olbrzymie moŮliwoŎci! KoŎciec wykorzystywany dla renderów statycznych oraz ten dla animacji sû nie- mal identyczne. RóŮnica polega na pewnych usprawnieniach, które wymagane sû podczas animowania obiektów — jak na przykķad kontrolery poruszania siď gûsienic czy inny system namierzania wykorzystywany dla dziaķa oraz karabinów maszynowych. W czďŎci poŎwiďconej riggingowi opiszď, w jaki sposób stworzyý intuicyjny interfejs uŮytkownika z wykorzystaniem systemu koŎci i ograniczni- ków Blendera. CzĂŁð 4.1. Podstawowy szkielet czoĪgu Podstawû dobrego szkieletu jest planowanie. Musimy wiďc siď zastanowiý, jakie grupy obiektów bďdû nam potrzebne, i odpowiednio podzieliý model. Podziaķ ten moŮe przebiegaý na dwa sposoby. JeŎli posiadasz wyjûtkowo szybki kompu- ter lub skupiķeŎ siď na nisko poligonowym modelu, wybierzesz zapewne naj- bardziej „naturalnû” metodď podziaķu poprzez tworzenie grup wierzchoķków. W przeciwnym razie Ŏwietnym pomysķem jest stworzenie kilku obiektów oraz kilku szkieletów, wspóķpracujûcych z sobû jak jeden, lecz pozwalajûcych na odse- parowanie poszczególnych systemów. W wypadku naszego czoķgu wystarczû trzy takie systemy: korpusu, trakcji oraz uzbrojenia. Pierwszy z koŎýców bďdzie sķu- Ůyķ do kontroli poķoŮenia czoķgu, jego przechyķu oraz elementów ruchomych takich jak kalpy; bďdzie teŮ systemem gķównym, do którego bďdû odwoķywaý siď pozostaķe koŎýce. System trakcji powinien odpowiadaý za kontrolď gûsienic oraz kóķ — w wersji statycznej ograniczy siď on do ustalania poķoŮenia poszczególnych kóķ oraz okreŎlenia, w jaki sposób na nie zostanie naķoŮona gûsienica. Ostatni system bďdzie kontrolowaķ obrót oraz pochylenie armaty oraz obu karabinów. Zanim przejdď do opisu koŎýca korpusu, sķów kilka o kwestiach nazewnictwa. Podczas tworzenia koŎýca niezwykle duŮo zaleŮy od odpowiedniego dobrania i przestrzegania nazewnictwa — zarówno koŎci jak i caķych obiektów. Pracujûc nad ogranicznikami, co chwilď bďdziemy musieli odnosiý siď do jakiegoŎ obiek- tu, stûd teŮ lepiej, ŮebyŎmy nie zastanawiali siď, jak wķaŎciwie nazywa siď koŎý odpowiadajûca za czwarte koķo z lewej strony. W miarď opisywania kolejnych systemów bďdď takŮe tķumaczyķ wykorzystane przeze mnie nazewnictwo. W swo- ich pracach z przyzwyczajenia uŮywam nazw angielskich (w koĹcu caķe Ŏrodo- wisko programu bazuje na tym jďzyku), takich teŮ bďdď uŮywaķ podczas pracy nad czoķgiem Abrams. Kwestiû pochodnû od nazewnictwa, o nieco tylko mniejszym znaczeniu, jest uŮywanie siatek Mesh podstawianych jako sposób wyŎwietlania koŎci (custom draw type) — ich wykorzystanie potrafi zmieniý uciûŮliwû pracď RozdziaĪ 4. ‹ Rigging 215 w zabawď. Co jednak jest znacznie waŮniejsze, koŎciec wykorzystujûcy dobre siatki podstawione pod koŎci moŮe byý uŮywany bez samego modelu — wystar- czy bowiem rzut oka na szkielet, by dowiedzieý siď, co w danej chwili dzieje siď z czoķgiem. Jest to niezwykle waŮne, gdy animujemy obiekty o doŎý duŮej zķoŮonoŎci. System sterowania korpusem, nazwany przeze mnie Main Sys musi siď opieraý na koŎci bazowej. Wbrew pozorom nie chodzi tu o koŎý sterujûcû korpusem, ale o koŎý-matkď, sterujûcû wszystkimi koŎými wszystkich systemów. KoŎý takû zazwyczaj nazywam mianem Omega i umieszczam w centrum obiektu — w tym wypadku wzdķuŮ dolnej krawďdzi kadķuba. Siatka reprezentujûca koŎý Omega powinna byý moŮliwie duŮa i ķatwo dostrzegalna — Ŏwietnie sprawdza siď fo- remny wieloŎcian, nadajûcy modelowi wyglûd jednostki z gier strategicznych. Do- piero w drugiej kolejnoŎci pojawia siď koŎý odpowiedzialna za korpus (Corpse), podķûczona oczywiŎcie do koŎci Omega i umieszczona nad niû. Wizualizacja kon- trolera korpusu moŮe przebiegaý na dwa sposoby. Jednym z nich jest umiesz- czenie niewielkiego znacznika w dowolnym ksztaķcie ponad czoķgiem, drugim zaŎ stworzenie trójwymiarowych obejm, znajdujûcych siď na wierzchoķkach prosto- padķoŎcianu, w jakim moŮna by nasz czoķg zamknûý. W dalszej kolejnoŎci nale- Ůy okreŎliý wszystkie ruchome czďŎci modelu — w naszym wypadku bďdzie to szeŎý otwieralnych (bûdŬ przesuwalnych) pokryw. OczywiŎcie nie wymodelowa- liŎmy wnďtrza czoķgu, wiďc ich peķne otworzenie nie jest byý moŮe najlepszym pomysķem, jednak samo ich uchylenie moŮe znacznie zmieniý wyglûd modelu. Nie ma teŮ problemu, by samû klapû lub innym elementem zasķoniý otwór — w takim wypadku stwarzamy pozory wielowymiarowoŎci przekraczajûcej na- wet to, co wymodelowaliŎmy. ōwietnie sprawdza siď tu moduķowy system nazew- nictwa — wykorzystamy przedrostek P_ oznaczajûcy ruchomû pokrywď oraz dwie litery oznaczajûce jej poķoŮenie — F i C oznaczajûce odpowiednio front i centrum oraz R, L, C oznaczajûce prawû stronď obiektu, lewû stronď obiektu lub jego Ŏrodek. Zgodnie z tym nazewnictwem przednia Ŏrodkowa klapa bďdzie nazywaý siď P_FC, Ŏrodkowa prawa zaŎ P_CR. O ile same nazwy sû byý moŮe maķo intuicyjne, to stosujûc taki system, nie musimy ich wcale znaý — moŮemy je bowiem wyprowadziý w kaŮdej chwili. Podczas tworzenia koŎci dla klap pa- miďtaj, Ůe musisz odpowiednio wycentrowaý kursor! W wypadku klap P_FR i P_FL jest konieczne dwukrotne centrowanie kursora. Za pierwszym razem okre- Ŏlamy miejsce, w którym znajduje siď oŎ obrotu obiektu i umieszczamy w nim trzon koŎci, za drugim — szukamy takiego punktu, by koŎý przyjďķa dobry zwrot, centrujûc do niego koniec koŎci. Drugie centrowanie kursora moŮna przeprowa- dziý wzglďdem prďta po przeciwnej stronie zawiasu. Wyglûd armatury Main Sys prezentuje rysunek 4.1. Nastďpny z systemów, Armanent Sys, skķada siď w sumie z oŎmiu koŎci, tworzûcych poķûczenia nieco bardziej skomplikowane niŮ w wypadku Main Sys. Podstawû bďdzie oczywiŎcie koŎý odpowiadajûca za caķoŎý wieŮy, która musi siď znaleŬý 216 Blender. Od planowania, modelowania oraz teksturowania do animacji i renderingu Rysunek 4.1. Armatura Main Sys na jej osi obrotu — Turret. KoŎý ta ukazuje doskonale, jak wygodne moŮe oka- zaý siď tworzenie siatek zastďpczych dla koŎci — tutaj warto stworzyý okrûgķy ksztaķt o duŮym promieniu lub krzyŮ, którego ramiona bďdû przenikaý przez Ŏcianki wieŮy. OczywiŎcie moŮna by teŮ przenieŎý koŎý wzwyŮ na osi obrotu, rozwiûzanie to jest jednak niepraktyczne — chcûc wykorzystaý je dla wszystkich koŎci znacznie zwiďkszymy panujûcy wŎród nich chaos. Nastďpna w kolejnoŎci jest koŎý Cannon, która musi odpowiadaý za unoszenie armaty. W tym wypadku jako siatkď zastďpczû zwykķem wykorzystywaý okrûgķy ksztaķt otaczajûcy armatď — jest on prosty do odnalezienia i doŎý dobrze komponuje siď z resztû szkiele- tu, nie wprowadzajûc baķaganu. Zaraz za koŎciû Cannon musi teŮ znajdowaý siď zaleŮna od niej koŎý Gun, która w przyszķoŎci pozwoli nam na symulowanie od- rzutu wynikķego z wystrzaķów. Do koŎci Cannon podķûczone powinno byý wy- ķûcznie gniazdo lufy, sama lufa zaŎ musi byý przyporzûdkowana koŎci Gun. Kolej- ne koŎci dotyczû karabinów maszynowych oraz ich pokryw — w tym wypadku zastosowaķem system nazewnictwa wykorzystujûcy nazwď karabinu oraz litery H, V oraz P dla oznaczenia koŎci sterujûcych kûtem w poziomie (od angielskiego horizontal), pionie (od vertical) oraz unoszeniem pokryw wķazów. Sposób tworze- nia koŎci w duŮej mierze zaleŮy od karabinów. W wypadku M2HB koŎci V i P sû dzieými koŎci H, jako Ůe ostatnia z nich porusza caķym wķazem; z kolei w wypad- ku karabinu M240 istnieje zaleŮnoŎý pomiďdzy koŎými V oraz H; koŎý P jest juŮ zaleŮna tylko od koŎci-matki caķego systemu, Turret. Dodatkowo zwróý uwagď na to, by koŎý M240 H byķa dobrze umiejscowiona — musisz jû wyrównaý do szyny otaczajûcej wķaz ķadowniczego, jednak szyna ta jest nieco obciďta — dlatego RozdziaĪ 4. ‹ Rigging 217 nie zaznaczaj jej caķej, lecz dwa naprzeciwlegķe wierzchoķki, krawďdzie lub po- wierzchnie! Armaturď naleŮy jeszcze uzaleŮniý od koŎci Corpse z koŎýca Main Sys. W jaki sposób to zrobiý? Procedura jest bardzo prosta — wystarczy, Ůe wķûczysz tryb Pose Mode dla koŎýca Main Sys, zaznaczysz koŎciec Armanent Sys, nastďpnie koŎý Corpse i wywoķasz menu tworzenia zwiûzku rodzic – dziecko standardowym skrótem Ctrl+P. Z menu kontekstowego wybierz opcjď Bone — dziďki temu caķy system Armanent Sys zostanie uzaleŮniony od koŎci Corpse. KoŎciec Armanent Sys pre- zentuje rysunek 4.2. Rysunek 4.2. Armatura Armanent Sys System trakcji (Traction Sys) nie jest byý moŮe wybitnie skomplikowanym koŎý- cem, wymaga jednak sporo pracy ze wzglďdu na liczbď kóķ. Wszystkie koķa noŎne naleŮy wyposaŮyý w parď koŎci, jednû odpowiadajûcû za ramiď zaczepu, drugû zaŎ, poķûczonû z niû bezpoŎrednio, okreŎlajûcû obrót i poķoŮenie koķa — koŎci te nie powinny przejmowaý zmian rotacji po swoim rodzicu, toteŮ naleŮy przy- pisaý im wķasnoŎý Hinge. Koķo napďdowe potrzebuje wyķûcznie jednej koŎci, od- powiadajûcej za obrót, którû podczas animowania bďdzie teŮ okreŎlaý obrót wszystkich innych kóķ. OczywiŎcie nie ma sensu tworzyý wszystkich koŎci rďcznie — wystarczy jedna para, którû potem bďdziesz kopiowaķ i centrowaķ do kursora przesuwanego pomiďdzy kolejnymi ramionami. Pamiďtaj przy tym, Ůe w wy- padku kaŮdego zaczepu-ramienia, kursor 3D musi znaleŬý siď dokķadnie w tym samym miejscu (z perspektywy danego ramienia, rzecz jasna)! Po przygotowaniu wszystkich koŎci po jednej stronie pojazdu, moŮna nadaý im nazwy skķadajûce siď z ich numeru (liczûc od frontu czoķgu), kolejnoŎci w parze (U od angielskiego 218 Blender. Od planowania, modelowania oraz teksturowania do animacji i renderingu Up dla koŎci bazowej oraz D od angielskiego Down dla koŎci-dziecka) oraz (po kropce) inicjaķu angielskiego sķowa, odpowiadajûcego lewej lub prawej stronie — L dla lewej (left) oraz R dla prawej (Right). Zapis taki, w formie na przykķad 1U.R, pozwala wykorzystaý funkcje odnoszûce siď do stron w koŎýcach. W naszym wy- padku moŮemy skopiowaý armaturď, wykonaý odbicie lustrzane, wszystkim ko- Ŏciom zmieniý nazwy na odpowiadajûce „drugiej stronie” za pocû funkcji Flip Left-Right Names dostďpnej z menu kontekstowego Specials [W] w trybie Edit Mode i scaliý obie armatury — mimo doŎý dķugiego opisu procedura zajmuje kilka sekund, co jest doŎý miķû odmianû wobec monotonnego nazywania kolejnych koŎci dla kaŮdego z kóķ. NaleŮy jeszcze caķy koŎciec uzaleŮniý od koŎci Main Sys Omega, zanim przejdziemy do etapu nastďpnego — a jest nim przygotowanie krzywej, na której „zawiniďta” jest gûsienica. Krzywa ta musi zostaý pociďta tak, by jej dolny fragment posiadaķ liczbď wierzchoķków równû dwukrotnej liczbie kóķ noŎnych w dolnej czďŎci pomniejszonej o jeden — innymi sķowy, kaŮde ko- ķo musi posiadaý „swój” wierzchoķek, dodatkowe wierzchoķki muszû teŮ zna- leŬý siď pomiďdzy kaŮdû parû kóķ. W efekcie w dolnej czďŎci gûsienicy powinno znajdowaý siď 13 wierzchoķków. KaŮdy z nich naleŮy nastďpnie przyporzûdkowaý pojedynczemu kontrolerowi Hook — moŮna to zrobiý, zaznaczajûc kolejno kaŮ- dy z 13 wierzchoķków i z menu kontekstowego Hooks (Ctrl+H) wybierajûc Add/To New Empty. Zostanie stworzonych 13 dodatkowych obiektów Empty, które wyko- rzystamy podczas pracy nad ogranicznikami systemu trakcji, a na razie moŮe- my je pominûý. Podobnie naleŮy takŮe przygotowaý drugû krzywû, odpowiadajûcû drugiej gûsienicy. System Traction Sys prezentuje rysunek 4.3. Rysunek 4.3. Armatura Traction Sys CzĂŁð 4.2. Podstawowa funkcjonalnoŁð szkieletu RozdziaĪ 4. ‹ Rigging 219 Teoretycznie szkielet jest juŮ w peķni funkcjonalny — poza systemem trakcji, rzecz jasna. WieŮa, karabiny, pokrywy wķazów — wszystkimi tymi elementami moŮna poruszaý wedle woli. Ostatnie sķowa nie majû jednak wydŬwiďku pozy- tywnego, wciûŮ jest bowiem moŮliwe takie modyfikowanie poszczególnych ele- mentów, które absolutnie nie byķoby moŮliwe w rzeczywistoŎci. Aby problem ten naprawiý, potrzebne bďdû ograniczniki. Zacznijmy od koŎýca Armanent Sys. Wykonaý naleŮy tutaj seriď ograniczeĹ. Przede wszystkim naleŮy uniemoŮliwiý przemieszczanie siď wszystkich elementów z wyjûtkiem dziaķa, jemu zaŎ naleŮy umoŮliwiý jedynie niewielkie przesuniďcie, majûce odwzorowywaý odrzut lufy po wystrzale. Stworzenie odpowiednich ogra- niczników jest w tym wypadku banalne — wystarczy, Ůe w trybie Pose Mode kaŮdej koŎci dodasz Limit Location Constraint, wķûczajûc wszystkie z podanych przycisków: MinX, MinY, MinZ, MaxX, MaxY, MaxZ i Local. Modyfikujûc wartoŎci liczbowe przy kaŮdym z przycisków, moŮesz ustaliý pewien zakres ruchu dla koŎci, pamiď- taj jednak, Ůe wartoŎci przyporzûdkowane przyciskom Min muszû byý ujemne! W podobny sposób dziaķa ogranicznik obrotu Limit Rotation — w jego wypadku naleŮy zaznaczyý przyciski LimitX, LimitY, LimitZ oraz Local. OczywiŎcie ogra- niczników nie musisz dodawaý pojedynczo — jeŎli zaznaczysz wszystkie koŎci tak, by wyróŮniý jednû z nich, kombinacjû Ctrl+C uzyskasz dostďp do menu kon- tekstowego pozwalajûcego kopiowaý wķaŎciwoŎci koŎci wyróŮnionej do reszty zaznaczonych koŎci. Wybierajûc opcjď Constraints… albo Constraints (All), moŮesz skopiowaý takŮe wybrane lub wszystkie ograniczniki. Dobrym pomysķem jest wiďc zdefiniowanie „pustych” ograniczników dla jednej koŎci i skopiowanie ich do pozostaķych — potem zaŎ modyfikowane bďdû tylko poszczególne wartoŎci. W wypadku koŎci Turret ograniczenie musi zakazywaý obrotu na dwóch osiach, pozwalaý zaŎ na peķen obrót wzglďdem osi Z, co jednak niekoniecznie musi ozna- czaý odznaczenie przycisku LimitZ. Kiedy koŎý jest ustawiona pionowo, bďdzie konieczne odznaczenie przycisku LimitY, jako Ůe interesujû nas osie lokalne, oŎ Y zaŎ biegnie wzdķuŮ koŎci i w tym wypadku pokrywa siď z osiû globalnû Z. W wy- padku okreŎlania ograniczeĹ, nie zaŎ zakazów, musimy jeszcze podaý wartoŎci maksymalnego obrotu bûdŬ przesuniďcia dla koŎci, takŮe posķugujûc siď osiami lokalnymi. Jedynû koŎciû wymagajûcû stworzenia ogranicznika (nie zaŎ zakazu) poķoŮenia jest oczywiŎcie koŎý Cannon. W wypadku koŎýca Main Sys takŮe naleŮy przygotowaý kilka ograniczników, w tym jeden pozwalajûcy na niewielki obrót (w zakresie do kilku stopni) koŎci Corpse — w animacji odpowiada ona za odwzorowanie bezwķadnoŎci korpusu np. podczas gwaķtownego hamowania. Kapy P_FC oraz P_CR naleŮy jednak ograniczaý nie tak, by dziaķaķy na zasadzie zawiasów, lecz by daķo siď je „wyjûý” z ich wgķďbieĹ i „odķoŮyý” na bok. W wypadku klap P_FR oraz P_FL sytuacja 220 Blender. Od planowania, modelowania oraz teksturowania do animacji i renderingu jest nieco bardziej skomplikowana — specyficzny system obsķugiwania koŎci w Blenderze sprawia, Ůe osie koŎci ustawionych pod kûtem innym niŮ 0, 90, 180 lub 270° na globalnej osi Z… nie odpowiadajû oczekiwaniom w nich pokķada- nych. MoŮemy wiďc zapomnieý o uŮywaniu ograniczników czy rotowaniu ko- Ŏci w ogóle, chyba Ůe w trybie Pose Mode obrócimy koŎci wzglďdem ich osi Y tak, by osie dopasowaý do naszych oczekiwaĹ, potem zaŎ w trybie Edit Mode siatki Mesh korpusu odpowiednie ksztaķty obrócimy „z powrotem”. Innym sposobem jest wykorzystanie zewnďtrznego rotatora. W takim wypadku tworzymy nowy okrûg Mesh Circle, który ustawiamy tak, by sam jego ksztaķt odwzorowywaķ ŎcieŮkď, po jakiej klapa powinna siď poruszaý. MoŮna to zrobiý, wykorzystujûc boczne powierzchnie zawiasów dla centrowania kursora 3D oraz jako koordynaty dla funkcji Align View. Nastďpnie centrujemy kursor 3D do jednego z wierzchoķków okrďgu i w tym wķaŎnie punkcie tworzymy obiekt Empty, który ķûczymy z okrď- giem jako jego dziecko. Wracamy do koŎci P_FR (P_FL) i dodajemy nowy ogra- nicznik Constraint — IK Solver. W polu Target wpisujemy nazwď obiektu Empty (w moim wypadku jest to odpowiednio P_FR Target oraz P_FL Target) i wartoŎý ChainLen ustawiamy na 1 — w przeciwnym razie nie tylko interesujûca nas koŎý, ale takŮe koŎci Corpse oraz Omega bďdû dostosowywane tak, by pokrywa znalazķa siď w odpowiednim miejscu! Wyķûcz takŮe przycisk Stretch, w koĹcu nie chcemy, by metalowy element rozciûgaķ siď jak guma. Po wykonaniu wszystkich tych ope- racji, obracajûc okrûg wzglďdem osi Local Z, moŮemy kontrolowaý stopieĹ otwar- cia klapy. Kontroler P_FR prezentuje rysunek 4.4. Rysunek 4.4. Kontroler P_FR pozwalajïcy obejłñ specyficzne ograniczenia Blendera w zakresie okrełlania osi lokalnych pojedynczych kołci RozdziaĪ 4. ‹ Rigging 221 W wypadku Traction Sys sytuacja jest duŮo bardziej skomplikowana. Na poczûtek moŮemy zrobiý to, co najprostsze — a wiďc zdefiniowaý i przypisaý wszystkim „dolnym” koŎciom (zawierajûcym znacznik D) ograniczenie obrotu takie, które pozwoli im obracaý siď wyķûcznie wzglďdem jednej osi. Ograniczenie poķoŮenia nie jest konieczne — tym zajmujû siď rodzice koŎci (wyjûtkiem sû oczywiŎcie koķa napďdowe). Owi rodzice (koŎci U) przysporzû nam nieco wiďcej problemów — musimy ograniczyý stopieĹ ich rotacji, a jednoczeŎnie umoŮliwiý sobie ich swobodnû kontrolď. Najlepszym sposobem byķoby wykorzystanie ogranicznika Track To lub IK Solver, jednak kiedy tylko ogranicznik taki zaczyna dziaķaý, wszystkie ograniczniki rotacji i lokacji sû ignorowane. Rozwiûzaniem jest wyko- rzystanie ograniczników nie dla koŎci bazowych (U), ale dla celów do których bďdû siď one odwoķywaý. Cele te muszû wiďc byý koŎými — obiektom Empty nie moŮna niestety przypisywaý ograniczników bazujûcych na przestrzeni lokalnej. KoŎci te naleŮy stworzyý w miejscu ķûczenia siď „górnych” (U) oraz „dolnych” (D) koŎci kóķ noŎnych. Nastďpnym etapem jest przypisanie nowo powstaķym koŎciom ograniczników poķoŮenia, umoŮliwiajûcych im niewielki ruch w górď oraz w dóķ, a takŮe dodanie do „górnych” (U) koŎci kóķ noŎnych ograniczników Track To, wykorzystujûcych jako cel jednû z nowo utworzonych koŎci — pamiď- taj, Ůe najpierw w polu Target musisz wpisaý nazwď armatury, a wiďc Traction Sys! W ten sposób utworzony zostaje kontroler kûta pochylenia zaczepów na koķa oraz poziomu kóķ, jednak daleko jeszcze do koĹca prac. W chwili obecnej moŮ- liwe jest symulowanie bezwķadnoŎci pojazdu, jednak jeŎli skorzystasz z tej moŮ- liwoŎci, zaczepy kóķ oderwû siď od korpusu — wynika to z faktu, Ůe caķa arma- tura kopiuje poķoŮenie i rotacjď koŎci Main Sys Omega, ale nie uwzglďdnia przesuniďý koŎci Corpse! Musimy wiďc kolejne koŎci U.L (U.R) oraz koŎci kóķ napďdowych (9.L, 9.R) uzaleŮniý od korpusu relacjû rodzic – dziecko. Nie jest to moŮliwe bezpoŎrednio pomiďdzy dwiema armaturami, my zaŎ nie chcemy ich ķûczyý — co zrobiý w takiej sytuacji? W koŎýcu Traction Sys utwórz koŎý Corpse Controller, poķoŮonû dokķadnie w tym samym miejscu co koŎý Main Sys Corpse, nadajûc jej jednoczeŎnie dla odróŮnienia inny zwrot. Do koŎci tej doķûcz relacjû rodzic – dziecko kolejne koŎci U.L (U.R), nastďpnie zaŎ dodaj trzy ograniczniki — Copy Location, Copy Rotation oraz Limit Rotation. Ostatni z ograniczników sko- piuj tak, by koŎý Corpse Controller realizowaķa dokķadnie taki sam zakres obrotu, co koŎý Corpse. Ogranicznik Limit Rotation jest wymagany ze wzglďdu na dziaķanie tego typu ograniczników: jeŎli ograniczymy koŎý do obrotu o wartoŎý 45° i nada- my jej obrót 90°, koŎý „zapamiďta” drugû wartoŎý wizualnie zostanie zaŎ obró- cona tylko o 45°. Odwoķujûc siď do rotacji takiej koŎci, otrzymujemy wiďc wartoŎý 90° z pominiďciem wpķywu ogranicznika. Ograniczniki Copy Location oraz Copy Rotation naleŮy skonfigurowaý tak, by wskazywaķy na armaturď Coprse Sys i jej koŎý Corpse, zaznaczajûc jednoczeŎnie opcjď Local. Tak skonfigurowana para koŎci po- zwala przenieŎý modyfikacjď z koŎci w jednej armaturze do koŎci w drugiej ar- maturze tak, jakby byķy jednû koŎciû. W tej chwili system powinien juŮ dziaķaý doŎý efektownie — spróbuj „pobawiý siď” koŎciû Corpse. Caķy czoķg powinien 222 Blender. Od planowania, modelowania oraz teksturowania do animacji i renderingu zmieniaý nieco swój przechyķ, jednak koķa zareagujû nieco odmiennie, starajûc siď zrównowaŮyý obciûŮenie, a ich zaczepy same dostosujû siď do zaistniaķej sytu- acji. Do zakoĹczenia pracy pozostaķa jeszcze najŮmudniejsza czďŎý — wszyst- kim obiektom Empty kontrolujûcym poķoŮenie gûsienic naleŮy utworzyý ogranicz- niki Copy Location, uzaleŮniajûce je od koŎci odpowiadajûcych im kóķ. OczywiŎcie efektem takiego dziaķania bďdzie nagķe przeniesienie w przestrzeni haka, co z kolei skutkuje niechcianû modyfikacjû krzywej. Aby temu zaradziý, wystarczy, Ůe po zaznaczeniu krzywej w panelu Modifiers znajdziesz odpowiedni hak i wybierzesz opcjď Reset — sprawi to, Ůe obecne poķoŮenie i rotacja obiektu Empty stanû siď wartoŎciami bazowymi. Do specyficznej sytuacji dochodzi, gdy edytujemy obiekt Empty ustawiony pomiďdzy dwoma koķami — w takim wypadku doda- jemy dwa ograniczniki, ustawiajûc je tak, by ich wpķyw rozķoŮyķ siď po poķowie, ustawiajûc dla pierwszego (dolnego) parametr Influence na 0,5, dla drugiego po- zostawiajûc zaŎ Influence ustawione na 1. Na pierwszy rzut oka moŮe siď to wy- dawaý bķďdem — w koĹcu interesuje nas, by obiekt ten pobieraķ poķoŮenie za- leŮnie od obu koŎci, na kaŮdej opierajûc siď jednakowo mocno, my jednak wprowadzamy róŮne wartoŎci parametru Influence — dlaczego? OdpowiedŬ jest prosta — w obliczaniu siķy wpķywu Blender dziaķa na wartoŎciach wzglďdnych, nie zaŎ globalnych. Oznacza to, Ůe parametr Influence drugorzďdnego modyfika- tora równy 100 (1,0) oznacza nie 100 wpķywu caķkowitego, ale 100 wpķywu pozostawionego przez pozostaķe modyfikatory. A zatem sposób ustawienia modyfikatorów sprawia teraz, Ůe pierwszy z nich wpķywa na obiekt w 50 , drugi zaŎ w 100 pozostaķych 50 , czyli po prostu w 50 . TakŮe koķa o numerach 1 i 9 wymagajû indywidualnego podejŎcia — dla koŎci kontrolujûcej dane koķo naleŮy dodaý poŎrednik oraz nowy obiekt Empty, który posķuŮy jako hak. PoŎrednik, o którym mowa, to koŎý, która stanie pomiďdzy koŎými Corpse Controller oraz ko- Ŏciû odpowiadajûcû za koķo — jest ona konieczna, by pozostawiý sobie moŮli- woŎý obracania koķem, inaczej obrót koķa spowoduje teŮ obrót krzywej! KoŎý ta musi byý ustawiona w tym samym miejscu, co koŎý odpowiadajûca koķu, naleŮy jû poķûczyý relacjû Parent z koŎciû Corpse Controller, do niej zaŎ naleŮy tû samû rela- cjû poķûczyý koŎý odpowiadajûcû za obrót koķa. Obiekt Empty musi byý poķû- czony z tym wķaŎnie poŎrednikiem za pomocû modyfikatora Copy Location oraz Copy Rotation. Do obiektu tego naleŮy jeszcze doķûczyý te wierzchoķki krzywej, które nie zostaķy poķûczone z Ůadnym z pozostaķych kóķ. W tym wypadku nale- Ůy zaznaczyý najpierw obiekt Empty, potem zaŎ krzywû i w trybie Edit Mode, z zaznaczonymi odpowiednimi wierzchoķkami, wybraý opcjď Add/To Selected Object z menu kontekstowego Hooks. Istnieje teŮ bardzo duŮe prawdopodobieĹstwo, Ůe modyfikator Copy Rotation spowoduje bķďdne przeksztaķcenie krzywych — w tym jednak wypadku wystarczy wykorzystaý funkcjď Reset dostďpnû w opcjach mo- dyfikatora Hook. MoŮliwe teŮ, Ůe w dalszym ciûgu obrót koŎci Main Sys Omega na jednej z osi spowoduje nieoczekiwane efekty, kiedy koĹcowe elementy krzywej nie obrócû siď tak jak caķa jej reszta. Wówczas naleŮy modyfikator Copy Rotation zmieniý tak, by odwróciý rotacjď na danych osiach — sķuŮû do tego przyciski „–” RozdziaĪ 4. ‹ Rigging 223 przy przyciskach odpowiadajûcych poszczególnym osiom. Inne z haków mogû „masowo” pobieraý obrót z koŎci Main Sys Omega za pomocû relacji dziecko – ro- dzic, nie jest wiďc potrzebne Ůmudne definiowanie modyfikatorów Copy Rotation. Na koniec musimy zaradziý jeszcze jednemu problemowi — jeŎli przechylisz czoķg tak, by jedna gûsienica znalazķa siď poniŮej drugiej, zauwaŮysz, Ůe gûsieni- ce nie zmieniajû swojej rotacji — co jest efektem co najmniej interesujûcym, nie- mniej jednak niechcianym. Aby problem zlikwidowaý, bďdziemy potrzebowali dwóch dodatkowych obiektów Empty, umieszczonych w Ŏrodkach obu krzywych. Obiekty te, nazwane przeze mnie LT i RT Driver (LeftRight Track Driver) naleŮy poķûczyý relacjû rodzic – dziecko z koŎciû Main Sys Omega, krzywymi oraz gûsie- nicami tak, by krzywe oraz gûsienice uzaleŮniý od obiektu Driver, a sam obiekt od koŎci Omega. Zwróý uwagď, Ůe bezpoŎrednie poķûczenie gûsienic z koŎciû Omega nie przyniesie spodziewanych efektów! W idealnej sytuacji nasza praca koĹczy siď w tym momencie, moŮliwe jednak, Ůe do jej zakoĹczenia potrzeba wciûŮ kilku drobnych modyfikacji. WeŬ teŮ pod uwagď, Ůe jeŎli do stworzenia gûsienic wykorzystaķeŎ krzywû Bezier, to wierzchoķki w jej spodniej czďŎci, podķûczone do poszczególnych kóķ noŎnych, muszû zostaý przeskalowane do zera! Inaczej podczas zmiany poķoŮenia kóķ krzywa moŮe zostaý wyrysowana w zķy sposób! WaŮne jest takŮe, by krzywa koĹczyķa siď od strony przeciwnej niŮ ta z koķem napďdowym — jeŎli natomiast tak jest, naleŮy odwróciý jej kierunek! KaŮda mo- dyfikacja poķoŮenia kóķ zmienia nieco dķugoŎý krzywej, a co za tym idzie, takŮe sposób „nawiniďcia” na niû gûsienicy — my natomiast nie moŮemy dopuŎciý, by precyzyjnie dopasowana do koķa napďdowego gûsienica nagle z niego „zjechaķa”. CzĂŁð 4.3. Zaawansowana funkcjonalnoŁð szkieletu 4.3.1. Dualny system namierzania System przypisany szkieletowi wieŮy moŮna na pewno nazwaý funkcjonalnym — w koĹcu pozwala wycelowaý zarówno dziaķo jak i karabiny w dowolne miej- sce na scenie. W tym wķaŎnie tkwi problem — spróbuj teraz wycelowaý lufď czoķgu w pewien daleko poķoŮony punkt. Nie jest to aŮ tak proste, jak byý po- winno, to pewne. WyobraŬ sobie teraz rotacjď wieŮy czoķgu podczas animacji — byķoby to niezmiernie czasochķonne i trudne, trzeba wiďc wyciûgnûý asa z rď- kawa i rozbudowaý system celowniczy naszego czoķgu. Systemy namierzania uŮywane w riggingu moŮna podzieliý na dwa rodzaje na- zywane przeze mnie systemami pierwotnymi i wtórnymi. Systemy pierwotne to dokķadnie to, co juŮ zamontowaliŎmy na naszym Abramsie — system celowania 224 Blender. Od planowania, modelowania oraz teksturowania do animacji i renderingu zaleŮny od kûta obrotu i uniesienia lufy podanych przez uŮytkownika progra- mu. System ten cechuje siď wysokû precyzjû i prostotû w uzyskiwaniu obrotu o dokķadnie zaķoŮony kût, stûd teŮ ten wķaŎnie system jest idealny, gdy chcemy obróciý wieŮď do pozycji spoczynku. Jak juŮ zauwaŮyliŎmy, nie jest on jednak najlepszû opcjû, gdy chcemy mierzyý do jakiegoŎ konkretnego celu. W tej chwi- li na scenď wkraczajû systemy wtórne — uŮytkownik podaje wyķûcznie koordy- naty celu, najczďŎciej przesuwajûc naĹ specjalnie do tego celu przygotowany ce- lownik, wieŮa zaŎ sama przyjmuje taki obrót, by lufa wskazywaķa dokķadnie zadany punkt. „MontaŮ” systemu wtórnego w Abramsie jest banalnie prosty — wystar- czy, Ůe koŎciom Turret i Cannon (lub M240 H i V oraz M2HB H i V) koŎýca Armanent Sys przypiszemy modyfikatory Locked Track, dobierajûc odpowiednie osie To i Loc. Bardzo przydaje siď wķûczenie opcji wyŎwietlania osi dla koŎci, dziďki czemu ķa- twiej jest okreŎliý, która z nich ma nakierowywaý siď na cel (To) oraz która ma pozostaý niezmieniona (Loc). W polu Target naleŮy wpisaý nazwď obiektu Empty lub jego siatkowego odpowiednika — obiektu bez powierzchni faces, widoczne- go w strefie 3D View, lecz niewidocznego na renderze. W moim wypadku nazwy poszczególnych „celowników” to Cannon Target, M2HB Target oraz M240 Target. Niestety, modyfikator Track To znosi ograniczenia obrotu, stûd teŮ naleŮy uŮy- waý go ostroŮnie! MoŮemy takŮe wykorzystaý maķû sztuczkď, dziďki której zyska- my dostďp do obu systemów jednoczeŎnie — starczy, Ůe na osi obrotu wieŮy stworzymy nowy obiekt Empty lub (co jest lepszym rozwiûzaniem) „pustû” siatkď — obiekt ten posķuŮy nam za kontroler, który naleŮy poķûczyý relacjû dziecko – rodzic z uŮytym wczeŎniej celem tak, by cel uzaleŮniý od obrotu kontrolera. Dziďki temu, obracajûc kontroler, moŮemy kontrolowaý wieŮď z uŮyciem sys- temu pierwotnego; przemieszczajûc cel, zyskujemy natomiast dostďp do syste- mu wtórnego. Sam kontroler naleŮy teŮ poķûczyý relacjû rodzic – dziecko lub modyfikatorem Copy Location z koŎciû Main Sys Omega. W pierwszym przypadku wieŮa czoķgu bďdzie obracaý siď razem z nim, w drugim — pozostanie niezaleŮ- na od obrotów korpusu. Dobrym rozwiûzaniem jest teŮ wykorzystanie modyfi- katorów Copy Location i Copy Rotation. Modyfikujûc parametr Influence drugiego z nich, zyskamy moŮliwoŎý kontrolowania sposobu zachowania siď wieŮy. Nie- stety, opcja taka wymaga uŮycia kolejnego poŎrednika, do którego przypiszemy ograniczniki, poķûczonego za pomocû modyfikatorów z koŎciû Main Sys Omega oraz relacjû rodzic – dziecko z kontrolerem wieŮy — modyfikator Copy Rotation uniemoŮliwia bowiem rďcznû kontrolď rotacji! Jako ciekawostkď wspomnď jeszcze, Ůe w ramach zabawy udaķo mi siď z pomocû modyfikatorów uzyskaý dynamiczny obiekt nazwany przeze mnie „peķzaczem” — skķadaķ siď on z krzywej oraz podróŮujûcego po niej obiektu Empty. Oba te obiekty byķy skonfigurowane tak, Ůe z poczûtku obiekt Empty przemieszczaķ siď na koniec krzywej, potem zaŎ krzywa przemieszczaķa siď tak, by znaleŬý siď w miej- scu wskazanym przez obiekt Empty. Powodowaķo to nieustanny ruch, przy kilku dodatkowych ogranicznikach pozwalajûcy na automatyczne ograniczenie szyb- koŎci obracania siď wieŮy — nawet jeŎli przemieŎciliŎmy cel z jednego koĹca RozdziaĪ 4. ‹ Rigging 225 sceny na drugi, mijaķ pewien czas, zanim wieŮa byķa w stanie weĹ wycelowaý. Ostatecznie jednak peķzacz okazaķ siď bardzo problematyczny — bazowaķ w koĹ- cu na niedoskonaķoŎci architektury programów komputerowych analizujûcych dane w pewnej kolejnoŎci, w przeciwnym razie stworzenie dwóch obiektów na- wzajem zmieniajûcych swoje poķoŮenie nie byķoby moŮliwe. JeŎli uŮyjesz modyfikatorów Python, wymagajûcych oczywiŎcie znajomoŎci tego jďzyka, moŮesz znacznie udoskonaliý system celowniczy. „Peķzacza” moŮna wiďc zastûpiý znacznie mniej zawodnym systemem, wtórny system celowania rozbudowaý zaŎ tak, by braķ pod uwagď trajektoriď pocisku, szybkoŎý poruszania siď czoķgu czy nawet wczeŎniej zdefiniowany wiatr… Teoretycznie jest nawet moŮliwe odwzorowanie komputera balistycznego zamontowanego w prawdziwych czoķgach M1! 4.3.2. Animacja ruchu gîsienic Posiadamy wiďc pierwszej jakoŎci system kontroli gûsienic — nie posiadamy jednak moŮliwoŎci poruszania nimi. Bķûd ten naleŮy oczywiŎcie czym prď- dzej naprawiý. Wykorzystamy w tym celu pewnû sztuczkď — chodzi mianowicie o to, Ůe jeŎli przemieŎcimy na odpowiedniej osi obiekt powielony na krzywej modyfikatorami Array i Curve, efekt tego powielenia równieŮ bďdzie podlegaý przesuniďciu. Jednak na poczûtek rzeczy pierwsze — musimy stworzyý dwa nowe, doŎý niety- powe koŎýce, skķadajûce siď z pojedynczych koŎci. Odpowiednio dla lewej i pra- wej gûsienicy bďdû to Track Sys.L oraz Track Sys.R, koŎci zaŎ okreŎliķem mianem Controler. Do koŎci tych naleŮy przyķûczyý ogniwo gûsienicy (obiekt, nie siatkď), uŮywajûc w tym celu relacji rodzic – dziecko (Make Parent to Bone), nie zaŎ typo- wej zaleŮnoŎci Armature! Oba koŎýce naleŮy z kolei poķûczyý z odpowiadajûcymi im krzywymi gûsienic, uŮywajûc w tym celu modyfikatorów Copy Location oraz Copy Roatation — relacja typu Parent nie zadziaķa, jako Ůe modyfikator Curve wy- korzystany dla czķonu gûsienicy i wykorzystujûcy tď wķaŎnie krzywû jako cel wymaga, by byķa ona interpretowana jako ŎcieŮka. W takim zaŎ wypadku do- wolny obiekt poķûczony z krzywû relacjû rodzic – dziecko bďdzie siď przemiesz- czaķ wzdķuŮ tejŮe ŎcieŮki — co jest oczywiŎcie efektem jak najbardziej niepoŮû- danym w naszej sytuacji. Czas zajûý siď czďŎciû nieco bardziej skomplikowanû — dla kaŮdego z koŎýców musimy dodaý nowû akcjď, prezentujûcû przesuniďcie siď gûsienicy o jednû jed- nostkď. Piszûc „jednû jednostkď” mam na myŎli tyle czķonów gûsienicy, ile sta- nowi podstawowy obiekt, pomijajûc powtórzenia wynikajûce z dziaķania mody- fikatora Array. Dlatego teŮ, jeŎli za pomocû wspomnianego modyfikatora na caķej dķugoŎci gûsienicy powtarzany jest jeden czķon, jego dķugoŎý bďdzie jednû jednostkû, jeŎli cztery czķony — jednostka bďdzie równa dķugoŎci czterech czķonów. KoniecznoŎý okreŎlenia wielkoŎci takiej jednostki wynika z faktu, 226 Blender. Od planowania, modelowania oraz teksturowania do animacji i renderingu Ůe nie bďdziemy przemieszczaý caķej gûsienicy, to bowiem wymagaķoby systemu tak skomplikowanego, by kaŮdy czķon gûsienicy byķ osobnym elementem, któ- rego poķoŮenie okreŎlaķby jego wķasny, miniaturowy koŎciec. OczywiŎcie stworze- nie takiego systemu byķoby moŮliwe, jednak eksperymenty pozostawiam Tobie — my zaŎ bďdziemy „oszukiwaý”, wykonujûc za kaŮdym razem to samo przej- Ŏcie gûsienicy. W praktyce bďdzie to wyglûdaý tak, jakby po przesuniďciu siď o jednû jednostkď gûsienica teleportowaķa siď z powrotem do pozycji bazowej i powtarzaķa swój ruch. Rzecz jasna widz nie bďdzie miaķ szans tej teleportacji zauwaŮyý — gûsienica jest przecieŮ powtarzalna, a wiďc jej nagķe przesuniďcie siď z powrotem do pozycji bazowej bďdzie wyglûdaķo zupeķnie tak samo jak kon- tynuacja ruchu. Wracajûc jednak do czďŎci praktycznej — koŎci Controler naleŮy nadaý dwa klucze IPO Loc, jeden z nich w pierwszej klatce w jej pozycji bazowej, drugi zaŎ w klatce dziesiûtej po przesuniďciu koŎci o odpowiedniû wartoŎý. WartoŎý tď, stanowiûcû dķugoŎý jednej jednostki, moŮna uzyskaý w bardzo prosty sposób — jest przecieŮ wpisana w jednym z pól Constant Offset modyfikatora Array czķonu gûsienicy! TakŮe oŎ, pod którû owa wartoŎý widnieje, ma znaczenie — to wķaŎnie na niej przesu- niďcie powinno siď odbyý. W oknie Action Editor moŮemy teraz nadaý takiej ak- cji odpowiedniû nazwď, na przykķad Move. WeŬ pod uwagď, Ůe wystarczy nam jedna akcja dla obu gûsienic — w koĹcu koŎci kontrolujûce przesuniďcie w obu koŎýcach majû tû samû nazwď. NaleŮy jeszcze wybraý odpowiedni rodzaj inter- polacji — obecnie ruch nie jest jednostajny, lecz przyŎpiesza z poczûtku i zwalnia na koĹcu trasy. Gdyby takû akcjď wykorzystaý do „napďdu” czoķgu, caķa gûsie- nica poruszaķaby siď ze zmiennû prďdkoŎciû, co poza fatalnym i nierealistycznym wyglûdem stanowiķoby koszmar synchronizacji ruchu gûsienicy i kóķ. Dlatego teŮ naleŮy zaznaczyý oba klucze i z rozwijanego menu Key panelu narzďdziowe- go okna Action Editor wybraý podmenu Interpolation Mode, tam zaŎ wskazaý na in- terpolacjď liniowû (Linear). Na koniec usuĹ akcjď Move — nie zostanie ona oczy- wiŎcie caķkowicie usuniďta, a jedynie wyķûczona, dziďki czemu nie bďdzie wpķywaý na przemieszczenie gûsienic, dopóki sami jej nie wywoķamy. Kolejnym elementem bďdzie uzaleŮnienie przemieszczenia czķonu gûsienicy od kontrolera. Nie bďdziemy jednak (jeszcze) tworzyý Ůadnej zewnďtrznej kontrolki — wykorzystamy innû metodď, która pozwoli nam zgrabnie zamknûý kwestiď przesuwania gûsienicy w innym mechanizmie. Sztuczka, o której mowa, polega na uzaleŮnieniu ruchu gûsienicy od koķa napďdowego — co jest oczywiŎcie od- wzorowaniem realnego stanu rzeczy, jednak stanowi to raczej efekt uboczny. NajwaŮniejszû zaletû takiego podejŎcia jest caķkowite wyeliminowanie problemu synchronizacji pomiďdzy koķami a gûsienicû — raz przeprowadzona przestanie byý istotna! Aby takû synchronizacjď przeprowadziý, trzeba najpierw akcjď Move koŎci Track Sys Controler uzaleŮniý od obrotu koķa napďdowego. W tym celu do koŎci tej dodajemy ogranicznik Action, w pole OB: wpisujûc nazwď koŎýca — Traction Sys, w pole BO: — 9.L (9.R), w pole AC: — Move, pola Start i End uzupeķniamy RozdziaĪ 4. ‹ Rigging 227 za pomocû wartoŎci 1 i 9, a w pola Min i Max wprowadzamy wartoŎci -180 i 180. Pierwszym zaskoczeniem moŮe byý wartoŎý 9 w polu End — przecieŮ akcja koĹ- czyķa siď w dziesiûtej klatce? Jest to oczywiŎcie prawda, jednak jej pierwsza i ostat- nia klatka sû identyczne, dlatego teŮ naleŮy jednû z nich pominûý. WartoŎci Min i Max odpowiadajû oczywiŎcie wartoŎci obrotu, na jaki reagowaý bďdzie akcja — nas interesuje oczywiŎcie, by dowolny obrót koķa aktywowaķ przemieszcze- nie gûsienicy. Zaznacz jeszcze przycisk Local i wybierz oŎ, która odpowiada ob- rotowi koķa. Nastďpnym krokiem jest przygotowanie synchronizacji — obecnie peķen obrót koķa powoduje przejŎcie jednego czķonu gûsienicy, co jest oczywi- Ŏcie bķďdem, poniewaŮ przemieszczenie powinno wynosiý 11 czķonów. Wystarczy jednak zmodyfikowaý akcjď Move tak, by realizowane przez niû przemieszcze- nie dotyczyķo wķaŎnie 11 czķonów gûsienicy. WartoŎý takiego przemieszczenia obliczysz na podstawie prostego wzoru: 11*(A/C), gdzie C oznacza liczbď czķo- nów w jednostce dķugoŎci, A oznacza zaŎ wartoŎý przesuniďcia wpisanû w mo- dyfikator Array. Na koniec naleŮy jeszcze uzaleŮniý motorykď pozostaķych kóķ od koķa napďdowego — wystarczy skopiowaý jego rotacjď za pomocû modyfi- katorów Copy Rotation. Tak przygotowany system trakcji jest juŮ praktycznie gotów do uŮycia — moŮ- na go oczywiŎcie dalej rozbudowaý, dodajûc zewnďtrzne kontrolery rotacji kóķ, a nawet wykorzystujûc kolejne akcje dla zautomatyzowania animacji gûsienic pod- czas poruszania siď czoķgu po ŎcieŮce — to jednak pozostawiam juŮ Twojej inwen- cji, jako Ůe w porównaniu do samego systemu trakcji bďdzie to dziecinnie proste.
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Blender. Od planowania, modelowania oraz teksturowania do animacji i renderingu. Praktyczne projekty
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: