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)