Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
3D grafika
Kompletní animace v Blenderu: modelování - část 1/2
3. ledna 2008, 00.00 | Leckdo možná pochybuje o využitelnosti animačních technik v Blenderu. Takovýto skeptik nechť si přečte dnešní článek: v Blenderu budeme vytvářet a
animovat scénu s mechanickou paží.
Možná se někdo z vás, milí čtenáři, pozastavil nad tím, zdali jsou informace z předchozích článků použitelné v praxi na něco užitečného. I o užitečnosti CG by se dalo debatovat, protože na tuto problematiku existuje spousta úhlů pohledu, nicméně touto úvahou se chci dostat k obsahu článku - dnes si ukážeme jeden možný příklad využití znalostí z minulých článků. Po několika nápadech, které jsem již v počátku zavrhl, se mi nakonec v hlavě ukotvil jeden - a sice vymodelování mechanické paže, která bude myslím vhodným příkladem nejen pro ukázku několika "vychytávek".
Pozn.: vzhledem k reakcím na předchozí články se dnes budeme podrobně zabývat modelovou stránkou věci, zbytek (unwrap, textury, rigování a komponování) si necháme na příště.
Koncept
Jako je slušností odpovědět na pozdrav, je i "slušností" před samotnou tvorbou udělat si aspoň nějaký koncept. I když se možná řadíte do kategorie lidí, kteří tužkou či perem nevládnou, vůbec ničemu to nemusí vadit, ostatně i já se sem řadím. Stačí nějaká jednoduchá skica, například něco takového:
Když máme koncept, tedy materiál, o který se můžeme opřít, nic nebrání tomu, abychom se již pustili do samotného modelování. Popíšu postup tvorby od spodu (v praxi je v podstatě jedno, odkud začnete). Začneme vložením prostého circle s 16 vertexy a vytvoříme z něj tyto 3 objekty:
Podstava
Všechny objekty mají zapnutý modifikátor subsurf na 2. úrovni. Pokud už jednou aktivujete tento modifikátor, musíte si dávat pozor na hustotu vertexů v síti. Tady je detail zhuštění na okrajích:
Všimněte si, že dole síť sahá jen k okraji a nevede až do středu kruhu. Opět je potřeba myslet dopředu, konkrétně na texturování, a síť optimalizovat, jak to jen jde, abychom byli schopní udělat unwrap s co nejmenším počtem švů. Stejným způsobem jsou zhuštěné i ostatní objekty. Pokud už máte objekt vymodelován bez zhuštění a teprve později použijete modifikátor subsurf, není problém síť dohustit nástrojem loop cut - CTRL+R. Dalším krokem bude vytvoření tohoto objektu (pro přehlednost je lepší vložit ho s 3D kurzorem nastaveným na střed circle):
Pozn.: objekt jsem opět přizpůsobil texturování
Nyní máme dvě možnosti, jak tento "kvádrohranol" nakopírovat. Buď zkopírujeme každý objekt v object modu, budeme jím otáčet kolem centra a nakonec vzniklé objekty spojíme do jednoho meshe, nebo nastavíme obtáčení kolem kurzoru tímto tlačítkem:
a objekt zkopírujeme v edit modu. Já jsem si vybral druhou možnost. Výsledkem našeho krátkého snažení je následující:
Pozn.: první kopii jsem zrotoval o 180°, poté vybral obě, zkopíroval, zrotoval o 90°, atd. až do 22,5°.
Nyní vytvoříme z Plane spoj mezi podstavou a stojanem paže. Základ vymodelujeme jednoduše metodou extrude, a abychom odstranili nežádoucí zaoblení, použijeme Loop Cut (CTRL + R), který nám přidá loop na místo, které určíme:
Pozn.: Tento i všechny další meshe mají kvůli hustotě své sítě nastavený Subsurf na 1. úrovni
Protože budeme objekt texturovat LSCM metodou, už nyní si nachystáme unwrap, samotnou síť budeme upravovat později:
Pozn.: Náhled na síť je ovlivněn subsurfem díky tlačítku . Možná se vám bude zdát rozmístění švů nelogické, pokud si přejete švy udělat podle sebe, nebráním se tomu, ale zde jsou takto rozmístěny z jednoho prostého důvodu. Rohy meshe budou ve výsledku vidět, a proto je lepší, když budou v celku a textura na nich nebude rozdělená.
Pokračujeme vytvořením krytu z jednoduchého tvaru. Facy v podstavě vymažeme po extrudování a následném přidání loopů, abychom ušetřili nepotřebné polygony:
Nyní, v zájmu dodržení konceptu, vytvoříme dva loopy. Tentokrát bude postup poněkud odlišný, protože chceme mít řez rovný a ne nakloněný, jak by se nám to povedlo s nástrojem Loop Cut. Přepneme se do pohledu shora, vybereme všechny vertexy (resp. facy, na které chceme aplikovat řez) a stiskem K vyvoláme nabídku. Vybereme Knife (exact) a načrtneme čáru v požadovaném místě. Počátek i konec čáry určíme levým tlačítkem myši, i zde můžeme směr čáry ovlivnit tlačítky Shift a Ctrl. Po načrtnutí čáry potvrdíme řez klávesou Enter. Výsledek:
Metodou extrude a přesunutím bodů upravíme na požadovaný tvar:
Po zapnutí Subsurfu musíme opět použít Loop Cut a vymazat facy na spodu:
Po vytvoření příslušných loopů bude dobré, když vytvoříme opět švy (pro kontrolu správnosti můžeme zkusit unwrapovat v UV image editoru a případně přidat další švy):
Stojan
Když jsem si zpětně procházel koncept, zjistil jsem, že z něj nebudu moci vycházet při tvorbě kulového kloubu. Pokud se nad tím zamyslíme, kulový kloub se dá nahradit kladkovým, protože podstava bude otočná, mechanická paže tak dosáhne tam, kam potřebuje. Začneme vložením circle s 16 vertexy, spodních 8 vertexů umažeme a vyextrudujeme do požadovaného tvaru:
Pozn.: nikdo přece neříkal, že koncept se musí dodržet na 100 % :)
Někdo by možná mohl namítnout, že na samém vršku meshe vznikne trojúhelníkovitý face, až budeme na této straně tvořit plochu, ovšem vzhledem k faktu, že budeme přidávat další face loopy, zostření oblouku by nepůsobilo příliš esteticky. Začneme vytvářet facy:
Nyní stačí vyextrudovat spodní část stojanu. Na opačnou stranu budeme extrudovat celou část, ale je potřeba si uvědomit jednu věc. Extrude metoda funguje v Blenderu na tom principu, že odmaže facy, pokud najde uzavřený okruh. Tímto tedy vytváří díru a něco podobného by se nám stalo, kdybychom jednoduše vybrali všechny vertexy na obvodu a extrudovali. Navíc se nám nebude líbit ani přebytečný face na spodu oblouku:
Pomoc je snadná, stačí se přepnout před extrudováním do možnosti výběru pouze hran tlačítkem na headeru 3D okna (nebo stiskem CTRL+TAB a výběrem Edges) a vybrat všechny hrany kromě těch "spojovacích" a vyextrudovat. Poté ještě zarovnáme 3D kurzor k vyextrudovaným hranám:
Pozn.: Je dobré extrudovat se stisknutým tlačítkem CTRL, popř. CTRL+SHIFT, abychom dodrželi stejné vzdálenosti
Nyní zbývá jen vytvořit facy na příslušných vertexech, čímž dostaneme tzv. bezešvý model. To znamená, že jej můžeme libovolně kopírovat za sebou bez nežádoucích efektů:
Vytvoříme tedy dvě kopie a přesuneme je tak, aby se "vertexy švů" překrývaly, poté překrývající se polygony vymažeme funkcí Remove Doubles:
Pozn.: Pokud jste používali předtím při extrudování tlačítka SHIFT a CTRL a použijete je i teď, významně si usnadníte práci.
Nyní zploštíme podél jedné osy a necháme na okrajích trochu místa, které využijeme na domodelování ohraničení (záměrně jsem zatím ani jednou neuvedl žádnou konkrétní osu, je možné, že budete modelovat z jiného pohledu - byť po logickém výběru zbudou jen dvě). Obrázky jsou myslím dost výmluvné, tedy aspoň co se týče okraje:
Posledním krokem u stojanu bude opět aktivace Subsurf modifikátoru a patřičné zhuštění sítě:
Ulna
Ano, zjistil jsem, že mi došla slova k pojmenovávání jednotlivých částí paže, tak jsem si vypůjčil latinský název kosti loketní, snad se lékaři neurazí :). Začneme zarovnáním 3D kurzoru ke dvěma bodům stojanu, abychom mohli vytvořit kloub ulny. Konkrétně takto:
Vytvoříme nový mesh, konkrétně circle s 16 vertexy a opakujeme postup tvorby kloubu:
Spojíme, vymažeme nepotřebné facy a opět použijeme Remove Doubles:
Stále platí pravidlo č. 1 - fantazii se meze nekladou, a tak si můžeme dovolit například takovéto malé obohacení ulny. Postup je jednoduchý - stačí v pravidelných intervalech extrudovat horní loop a poté z pohledu shora extrudovat podél osy x a y:
Částečným extrudováním a scalováním dosáhneme tvaru, který jsme si dali za úkol v konceptu:
Kulový kloub na vrchu paže se ukázal být opravdovým oříškem. Začneme tak, že si vytvoříme nejdříve koule a upravíme je takto:
Nyní je potřeba vytvořit nějaké logické napojení na ulnu, takže zapneme Subsurf a zhustíme síť ulny. Poté podle počtu vertexů na horním loopu zjistíme, kolik vertexů budeme potřebovat na další postup (hned objasním). V našem případě tedy 37 vertexů:
Díky tomuto číslu víme, jakou kouli na napojení máme vytvořit. Bude to jednoduše koule s 37 segmenty. Počet prstenců nechť si každý navolí sám, já jsem použil 16. Poté scalujeme kouli na stejnou velikost, jakou má spodní koule kulového kloubu, a odstraníme přebytečné vertexy:
Nyní vytvoříme misce podobný tvar a vyselektujeme loop na vrchu ulny:
Poté stiskem tlačítka F a výběrem Skin Faces/Edge Loops vytvoříme spoj mezi oběma částmi. Možná se vám tento zdánlivě nehezký spoj nebude líbit, ale po přidání textur se změní k lepšímu:
Pokud si vyzkoušíme rotaci horní části kloubu, zjistíme, že tak lze činit pouze přibližně do 20°, což je docela málo. Řešením může být drobná úprava kloubu, která spočívá ve vymodelování koule a ulny jakožto jednoho celku. Odstraníme tedy kouli a v editmodu ulny přidáme jinou, která bude mít též 37 segmentů, a poté ji jednoduše napojíme opět Skin Faces/Edge Loops:
Nyní lze kloubem otáčet o 40° na každou stranu, což je dostačující. Teď můžeme odstranit přebytečné polygony v kouli, která bude překrývat horní část kloubu. K tomu, abychom zjistili, které to jsou, natočíme vršek kloubu na maximum a poté vertexy odstraníme:
Možná se vám tento krok zdá zbytečný, má ale jedno opodstatnění - optimalizaci. Čím méně polygonů ve finále budeme mít, tím rychleji se bude počítat animace a tím pohodlněji se nám bude pracovat. Někdo by mohl říct, že pár polygonů nic nezachrání, když ale ušetříme pár takových polygonů na každém z meshů, rozdíly se nakonec můžou vyšplhat až do řádu desítek tisíc polygonů, zvlášť při používání Subsurfu. Optimalizace se vyplatí i na silnějších strojích, na nich už je to ovšem spíše otázka profesionality grafika. Dost už ale úvah, vraťme se k modelování, zbývá nám nyní poslední část.
Manipulační část
V pohledu shora přidáme plane, roztáhneme ho a nástrojem Knife (multicut) - nachází se pod klávesou K - rozřežeme podélně čtyři řezy na pět částí:
Loop Cuty a extrudováním specifických faců upravíme:
Pokračujeme extrudováním a přichystáním spodní části na uzavření:
Uzavřeme:
Aplikujeme Subsurf a zhustíme síť:
Aby spojovacím článkem nebyly "suché" hranoly, použijeme tvar podobný traverzám:
Poté jej takto upravíme, a protože budeme objekt kopírovat a chceme mít v budoucnu snazší práci, vytvoříme rovnou i řez pro unwrap:
Teď už jen vytvoříme takovýto jednoduchý mesh, aby seděl do drážek:
Použijeme Subsurf, zhustíme a zkopírujeme:
Hydraulika
Nakonec se podíváme na zub hydraulice. Pro začátek bude dobré sehnat nějakou referenci, neboť kupříkladu já jsem si podrobně hydrauliku nikdy nedokázal představit :). Část bagru bohatě postačí:
Jak vidno, ani tento úkol nebude nijak těžký. Stačí upravit circle o 12 vertexech extrudováním a poté zploštěním podél jedné strany. Na mesh stačí přidat circle o 6 vertexech a po extrudování spojit facy. Lépe to osvětlí obrázek:
Nyní budeme kopírovat na druhou stranu, ale tentokrát již tlačítkem ALT+D, aby byla kopie identická i po úpravách na originálu. Jak možná někteří víte, budou se na ní ihned projevovat změny provedené na originálu:
Přidáme circle s osmi vertexy, vymodelujeme do tvaru válce a extrudujeme na okrajích dovnitř pouze podél dvou os. Je důležité dodržet posloupnost práce, aby přechod mezi dvěma různě natočenými válci byl zaoblený a ostrý přesně tam, kde potřebujeme. Přidáme Subsurf modifikátor a několik loopů:
Přidáme další řezy:
Jestli někdo hádal, že řezy rozmisťujeme podle kruhu, který přidáme nahoru, hádal správně:
Odmažeme tyto vertexy:
A nyní zjistíme, že loopů je na osmivertexový kruh příliš mnoho, takže dva loopy odstraníme (ALT+LMB = označení loopu; X - Edge loops = vymazání loopu):
Nyní přemostíme díry vyselektováním obou svrchních loopů a klasicky F - Skin Faces/Edge loops. Poté upravíme při pohledu z boku, aby vertexy lépe seděly na spodním kruhu a nebyly zarovnány v rovině. Pak stačí přidat jeden loop pro zostření přechodu:
Dále bude nejlepší, když zarotujeme paží, abychom věděli, kde může být horní hranice spodní části hydraulického pístu:
A nyní se objevila podstatná chyba - píst nedosahuje až po paži. Upozorňuji, že tento tutorial nebyl dopředu připraven na takovou situaci. V tom spočívá dvojsečná krása grafiky - nikdy nemůžete být připraveni na všechny chyby, které mohou nastat:
Nevadí, i na naši bolístku existuje jednoduchý lék. Stačí, když dostatečně protáhneme stojan nahoru:
Poté stačí nahoru přidat opět přechod mezi dvěma kruhy (nejsem technik, a tak nevím, jak lépe tento prvek nazvat :) ), třeba zkopírováním ze spodní části:
Spojíme jej se zasouvací částí. V dalším díle si ukážeme, jak vyřešit rendering zrcadlového materiálu a opotřebovaného železa na jednom meshi texturou:
Začneme vrch pístu napojovat na ulnu. Přidáme opět kruh s osmi vertexy, použijeme Subsurf a zhustíme síť. Poté protáhneme zčásti kruh směrem k paži, dokud se do ní úplně nevnoří:
Tuto část zkopírujeme a zrcadlově převrátíme konec, poté kolem kurzoru zrotujeme nahoru a v případě potřeby zploštíme. V této těžkopádně popisované operaci se skrývá následující jednoduchá úprava:
Pozn.: Konstrukce se samozřejmě neobešla bez úpravy rozměru vnitřního kruhu - postačí scalování (kvůli následujícímu osazení šroubem)
Přidáme známý šroub a celé zkopírujeme ALT+D zrcadlově na druhou stranu (podotýkám, že napojení pístu na ulnu je jeden mesh):
Abychom mohli z pohybů v příštím díle vyždímat každý další stupeň navíc, zrotujeme píst k paži a posuneme konstrukci napojení:
Nyní už jen screenshoty několika hydraulických hadiček - k modelování snad jen tolik, že samotné hadičky jsou křivky s tímto nastavením:
Tak a to by bylo k dnešnímu modelování vše. Posledním obrázkem bude pohled na celý náš dnešní počin:
Doufám, že jste se dnešním článkem úspěšně a se zájmem prokousali až sem. Chápu, že pro někoho zcela jistě nebude sáhodlouhé podrobné popisování modelování jednotlivých částí záživné, nicméně předpokládám, že to přivítá zejména těch pár lidí, kteří mě kontaktovali (byť se jejich dotazy týkaly organického modelování). Jak jsem předeslal, příště animaci dokončíme, tedy budeme unwrapovat a kreslit textury, dále nasvěcovat, nastavovat animační systém včetně omezení a ladění chyb a nakonec proženeme scénu node editorem. Těším se s vámi příště na shledanou.
Tématické zařazení:
-
23. dubna 2014
Konica Minolta přenesla výhody velkých zařízení do kompaktních modelů
-
11. května 2014
-
23. května 2014
Epson na konferenci Droidcon Berlin ukázal nové možnosti čekající na vývojáře OS Android
-
24. listopadu 2014
-
13. května 2014
Samsung NX3000: retro styl, špičkový výkon a snadná konektivita v jednom přístroji
-
30. listopadu 2014
Nový fotoaparát α7 II: první plnoformát s pětiosou optickou stabilizací obrazu na světě
-
15. prosince 2014
Konica Minolta pomůže živnostenským úřadům s digitalizací dokumentů
-
11. května 2014
-
26. listopadu 2014
Canon Junior Awards již posedmé ocení mladé fotografy v rámci Czech Press Photo
-
21. srpna 2014