Modelujeme chaloupku v Milkshape

Ostatní jazyky Petr Lite 3D grafika Modelujeme chaloupku v Milkshape

Myslíme-li to s 3D vývojářskou prací vážně, neobejdeme se bez vlastnoručně vytvořených 3D modelů. V tomto tutoriálu se seznámíme s 3D modelovacím nástrojem Milkshape. Je zaměřen na herní modelování a je jednodušší než jeho "velcí" bratři, jako je 3D Studio Max či Maya. Obsahuje mnoho speciálních herních pluginů a je oblíbeným nástrojem mnoha amatérských herních vývojářů. Často i těch, kteří autora finančně nepodpoří.

Nebudeme se zabývat základním ovládáním a přejdeme hned k stavbě ukázkového příkladu, kterým bude model malé chaloupky. Během editace můžete prostředním tlačítkem myši posouvat okno pohledu a kolečkem pohled zoomovat. Doporučuji alespoň zpočátku zapnout Window / Show Viewport Caption, abyste si udrželi přehled, který pohled je ze kterého směru.

Začneme vytvářením bočních stěn. Jsou podobné a tak je můžeme klonovat. Vyberte tlačítko pro vytváření vrcholů Vertex. V levém pohledu položte rohové vrcholy vyznačující levou stěnu (tj. přední strana chakoupky je vpravo a zadní vlevo). Využívejte přitom orientační podkladové sítě. Při dodatečném posouvání vrcholů aktivujte přepínač Auto Tool, který zajistí automatické přepínání mezi nástrojem Select a Move. Po rozmístění vrcholů zvolte Vertex / Snap To Grid, tím se vrcholy přesně usadí do základní sítě.

Použijte tlačítko Face a spojte vrcholy do trojúhelníků. Používejte přitom orientaci pořadí vrcholů proti směru hodinových ručiček. V 3D pohledu si můžete kontrolovat, že ze správné (levé) strany vidíte šedé plošky. Vidíte-li zleva černé a zprava šedé, použili jste opačné pořadí vrcholů - v tom případě přepněte na Select se Select Options - Face, vyberte plošku a volbou Face / Reverse Vertex Order ji obraťte.

Postupně spojte všechny vrcholy do trojúhelníků. Ve 3D pohledu byste měli vidět celou levou stěnu. Nakonec jsme se přece jen rozhodli zadní stěnu trochu snížit, aby chaloupka nebyla tak fádní. Vybrali jsme horní vrchol zadní stěny (pomocí Select se Select Options - Vertex) a pomocí Move vrchol přesunuli trochu níže. Aby nám vrchol neujel v ostatních souřadnicích, vypnuli jsme tlačítka pro směry X a Z a ponechali povolený jen směr Y.

Vyberte celou stěnu pomocí Ctrl+A. Přejděte na přední pohled, zapněte režim Move s aktivním směrem X (směry Y a Z vypněte) a stěnu přesuňte doleva. Příkazem Vertex / Snap To Grid vrcholy usadíte do sítě. Volbou Edit / Duplicate Selection stěnu rozmnožíte. V této chvíli zůstala vybraná jedna ze stěn. Pomocí volby Vertex / Mirror Left <--> Right stěnu přesunete symetricky na pravou stranu za současného otočení správným směrem. Ve 3D pohledu byste měli vidět vlevo šedou stěnu a vpravo černou stěnu, u té vidíme při pohledu zleva jen zadní strany plošek. Neplánujete-li symetrické rozmístění stěn, přesuňte stěnu po duplikaci doprava ručně (s povolenou osou X) a po přesunu plošky otočte do protisměru.

Budeme vytvářet dveře. V předním pohledu vytvořte 4 vrcholy tvořící vnější obrys dveří. Dolní dva vrcholy jsou ve stejné výšce jako spodní okraj zdí. Jak vidíte v bočním pohledu, vrcholy se vytvořily se souřadnicí Z = 0. Označte je v levém pohledu a přesuňte na úroveň přední stěny, ponechejte přitom povolený jen směr osy Z. Po přesunu vrcholy usaďte do sítě (Grid). Vytvořte nové 4 vrcholy uvnitř dveří, rám dveří chceme mít mírně sbíhavý. Dolní dva vrcholy budou zvednuté trochu výše, k nim budeme připojovat práh. Vrcholy opět přesuňte k přední stěně, ale ne až úplně k ní. Dveře budou do stěny zapuštěné.

V předním pohledu vrcholy dveří pospojujte do trojúhelníků.

Pokud si ve 3D pohledu pravým tlačítkem myši přepnete zobrazení na Smooth Shaded nebo Textured můžete pozorovat, že vnitřek dveří není hranatý, ale spojitě stínovaný. Plošky spadají do stejné stínovací skupiny a proto jsou vyhlazeny jako jedna souvislá plocha. Postupně vybírejte jednotlivé souvislé plochy (levá stěna, pravá stěna, levý rám dveří,...) a přiřazujte je do samostatných stínovacích skupin Smoothing Groups volbou Groups / Assign / číslo skupiny. Mějte přitom zapnutý přepínač Auto Smooth.

Před dveřmi vytvoříme práh. Bude to jednoduchý kvádr přesahující dveře do šířky a vystupující ven ze zdi. Vytvořte 4 vrcholy tvořící přední čelo prahu. Budou mírně vysunuty před přední stěnu chaloupky. Další 4 vrcholy budou tvořit zadní stranu prahu a budou v hloubce dveří. Budou-li se vám při výběru vrcholů prahu vybírat i vrcholy které nechcete, můžete nepotřebné vrcholy odznačit v jiném pohledu pomocí pravého tlačítka myši spolu s klávesou Shift. Na práh položte plošky z přední strany, z horní a z obou bočních. Přiřazením ploch do stínovacích skupin zajistíte hranatost prahu.

Nemáte-li vrcholy prahu přesně usazené do rastrové sítě může se vám stát, že se při pokládání plošek použijí jiné vrcholy než očekáváte. Pro tyto účely je možné skrýt nepotřebné části scény. V některém z pohledů nepotřebné vrcholy (ne plošky) označte a zvolte Edit / Hide Selection, vrcholy zmizí. Opětovné zobrazení obnovíte pomocí Edit / Unhide All.

Podobně jako dveře vytvořte i okno. Také bude zapuštěné do zdi.

Pokryjte ploškami přední stěnu chaloupky. Vrcholy v úrovních před i za stěnou si skryjte - nejen aby se nechtěně nepoužily, ale ať nemusíte přemýšlet, který vrchol k přední stěně patří a který ne. Na závěr opět vyberte všechny plošky přední stěny a přiřaďte je k nové stínovací skupině. Pokud by vám počet stínovacích skupin někdy nestačil, není problém přiřazovat jedné skupině více ploch, nejsou-li plochy spolu spojené. Plynulé stínování se provádí pouze mezi sousedními ploškami, patří-li do stejné skupiny. Podobně vytvoříte také zadní stěnu chaloupky, při zadním pohledu a odznačení všech vrcholů z přední stěny. Označení více plošek najednou zajistíte současným stiskem klvávesy Shift. Pokud se vám označí se zadní stěnou i přední stěna, zapněte volbu Ignore Backfaces nebo přední plošky odznačte v bočním pohledu pravým tlačítkem myši spolu se Shift.

Další v pořadí bude střecha. Chceme pořádnou silnou šindelovou střechu. Nejdříve v levém pohledu vytvořte vrcholy tvořící bočnici střechy. Vrcholy zbytku chaloupky skryjte ať vám nepřekáží. Vrcholy bočnice přesuňte vlevo, kousek před levou stěnu.

Levou bočnici vyplňte ploškami. Celou bočnici vyberte, volbou Edit / Duplicate Selection ji rozmnožte a pomocí Vertex / Mirror Left <--> Right přesuňte symetricky vpravo. Při pohledu shora pokryjte horní stranu střechy a při pohledech zepředu a zezadu přední a zadní čelo. Při přiřazování do stínovacích skupin vyberte pro přední půlku horní části střechy jednu skupinu a pro zadní půlku druhou, aby místo prohybu střechy zůstalo stínované plynule. Spodní stranu střechy pokryjte podobně jako horní stranu, jen při pohledu zespodu. Bylo by možné vyplnit plošky jen po začátek zdi, ale pro rychlost renderování je efektivnější zvolit raději menší počet plošek než menší zabranou plochu.

Posledním prvkem modelu bude komín. Je to jednoduchý kvádr bez dolní podstavy.

Po dokončení modelu domku rozdělte části domku (jednotlivé stěny) na skupiny, bude se s nimi lépe manipulovat při mapování textury - přední stěna, zadní stěna, jedna půlka střechy atd. Rozdělení provedete tak, že vyberete plošky jedné stěny, tlačítkem Regroup označenou část vyjmete ze společné skupiny, zapsáním jména a stiskem Rename novou skupinu pojmenujete.

Nyní přistoupíme k pokrytí chaloupky texturou. Nejdříve si vyhledáme výchozí suroviny, ze kterých budeme texturu vytvářet. Potřebujeme podklad zdi, střechu, dveře, okno a dřevěnou laťku. S texturami budeme pracovat ve vyšším rozlišení a teprve až v závěru výsledek zmenšíme.

Nejdříve budeme vytvářet textury jednotlivých stěn samostatně, začneme u přední stěny. Základem budou 2 textury zdi položené vedle sebe. V 3D editoru vyberte přední stěnu a sejměte obsah obrazovky v předním pohledu. Vezměte výřez přední stěny a natáhněte ho přes texturu přední stěny. Budeme ho používat jako vodítko při umisťování prvků stěny.

Na texturu usadíme dveře a okno. Prvky nechejte v samostatných vrstvách. Rám kolem dveří a oken je šedá barva s operací ztmavení podkladu, je v samostatné vrstvě. Práh je bílá barva s operací zesvětlení podkladu, také v samostatné vrstvě. Laťkou osadíme obložení zdi, všechny laťky sloučíme do jedné vrstvy. Nastavením reliéfu a vrženého stínu vrstvy vytvoříme trojrozměrný vzhled. Nakonec vypneme vrstvu s vodítky a texturu si prozatímně uložíme.

Základem boční stěny bude 1 textura zdi. Opět použijeme snímek boční stěny z editoru jako vodítko. Stěna bude obsahovat pouze laťky. Tip: Styl vrstvy můžete ve Photoshopu snadno kopírovat do jiného okna pomocí pravého tlačítka myši.

U zadní stěny už vodítka nepotřebujeme. Obsahuje opět jen laťky dřevěného obložení.

Na hřeben střechy jsme použili úzký výřez ze střechy (několik šindelů), který jsme roztáhli na šířku střechy. Zapnutím reliéfu a vrženého stínu vrstvy jsme dosáhli dojem plastičnosti.

Texturu pro komín jsme vytvořili z textury zdi, kterou jsme silně zesvětlili. Přidali jsme vrstvu kde jsme se vyřádili se šmouhami a jejich rozmazáváním. Na bočnice jsme použili laťku, kterou jsme odbarvili a jasově a kontrastově upravili.

Nakonec připravené textury sestavíme do výsledné kompletní textury. Připravíme si prázdnou čtvercovou texturu s rozměry např. 512 x 512 a do ní budeme segmenty skládat. Přední stěna je nejdůležitější a nejvíce viditelným prvkem domku, proto jsme jí vyhradili největší prostor textury, celou polovinu. Tím jsme zajistili dobrou kvalitu textury přední stěny. Boční stěna je ve viditelnosti na druhém místě, proto je zmenšená jen v jednom směru. Zadní stěna je ještě méně důležitá, je zmenšená v obou směrech a bude tedy mít dost sníženou kvalitu. Podobně střecha, navíc střechu bude efektivnější mít roztaženou do šířky. Komín zabírá zbývající místo, ale nemusel by. Kdybychom někdy potřebovali přidat např. erb na domek, snížili bychom komín a erb umístili na uvolněné místo.

Texturu uložte do JPG souboru a přidejte ji do složky k modelu chaloupky. V Milkshape vytvořte nový materiál a načtěte do něj připravenou texturu. Materiál přiřaďte všem skupinám objektu a to tak, že vyberete vše s Ctrl+A a pro materiál použijete tlačítko Assign. V 3D pohledu zapněte zobrazení textur (v menu přes pravé tlačítko myši), model by měl změnit barvu. Bude zbarven některým bodem z textury.

K samotnému mapování textur. Ponechejte označený celý objekt a otevřete edtor souřadnic textury přes Ctrl+T. V editoru vidíte vaši texturu. Upravte si velikost okna ať ji vidíte celou, případně texturu v okně posuňte levým tlačítkem myši spolu s klávesou Ctrl.

V rozbalovacím seznamu skupin vyberte přední stěnu. Zvolte tlačítko Region a na textuře označte obdélníkovou oblast patřící přední stěně. V rozbalovacím seznamu směrů projekce vyberte směr Front (tedy zepředu) a stiskněte Remap. Vrcholy přední stěny se rozloží do označeného regionu. Podíváte-li se do 3D pohledu editoru, uvidíte přední stěnu otexturovanou. Musíte ovšem mít zapnutý přepínač Redraw a ve 3D okně aktivní mód zobrazení Textured (pravým tlačítkem myši).

Chcete-li vrcholy přední stěny po textuře posouvat, rotovat či měnit velikost, zvolte Select a označte všechny vrcholy, Poté přepněte mód tlačítkem Move, Rotate či Scale a proveďte s vrcholy požadovanou operaci. Můžete označovat i jednotlivé vrcholy a dolaďovat jejich přesnou pozici.

Podobným způsobem namapujte i ostatní stěny, jen budete používat jiné směry projekce. V případě levé a pravé bočnice střechy upravte rozložení vrcholů tak, aby ležely rovnoměrně na textuře lišty. Pro zadní část střechy přesuňte dolní řadu bodů nahoru a horní zas dolů - tím mapování jakoby otočíte vzhůru nohama. Přední a zadní část střechy budou k sobě zrcadlově otočené, čímž zajistíte symetrii obrazu a spojitost v místě svázání. Pro komín a práh se nenamapují správně boční a horní plošky. Musíte je v závěru vybrat samostatně (označením v editoru) a namapovat zvlášť, pro správný směr projekce.

Tím je celý model hotov. Můžete jej uložit a vyzkoušet v Petrovi. Objekt exportujte přes volbu File / Export / DirectX (JT). V okně voleb zapněte přepínač Mesh Only.

Objekt se exportuje do souboru s příponou X. Je to textorý soubor. Otevřte ho a obsah přeneste do textové proměnné v programu v Petrovi, kde objekt vytvoříte prvkem objekt z textu. K objektu musíte přidat do programu i vaši texturu a nastavit ji prvkem textura.

Výhodou 3D modelů je, že prostou výměnou textury za jinou můžeme modelu snadno a rychle převlékat kabátek.


 

Stáhnout

Staženo 303x (20.35 MB)
Aplikace je včetně zdrojových kódů v jazyce Petr Lite (jsou obsaženy v EXE souboru, který lze v programu přímo otevřít)

 

  Aktivity (1)

Článek pro vás napsal Panda38
Avatar
Programátor C++, WinAPI, ASM.

Jak se ti líbí článek?
Celkem (1 hlasů) :
333 33


 


Miniatura
Předchozí článek
Vytváříme textury - plochy
Miniatura
Všechny články v sekci
3D grafika
Miniatura
Následující článek
Metody 3D grafiky (1. část, úvod)

 

 

Komentáře
Zobrazit starší komentáře (4)

Avatar
Kit
Redaktor
Avatar
Kit:

Proto mám raději Open Source. Je tam větší výběr aplikací a nebývá velký problém dodělat chybějící funkce.

Odpovědět 4.3.2013 13:24
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
popon2
Člen
Avatar
popon2:

A jaký jiný zdarma stažitelný program mi navrhujete. Já mám akorát blender a ten se nedá dát do textové podoby (nabo to neumím).

 
Odpovědět 4.3.2013 16:00
Avatar
matesax
Redaktor
Avatar
Odpovídá na popon2
matesax:

Exportovat do textu musí jít všude...

 
Odpovědět  +1 4.3.2013 16:03
Avatar
Kit
Redaktor
Avatar
Odpovídá na popon2
Kit:

V textovém tvaru funguje Yafray, který je součástí instalace Blenderu, ale skvělý je i Povray.

Odpovědět 5.3.2013 8:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):

Není Yafray jen alternativní vykreslovací plugin?

Odpovědět 5.3.2013 10:01
:)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Kit:

Yafray (dnes YafaRay) je i samostatný program, který renderuje scénu z XML.

http://www.yafaray.org/…ion/XMLspecs

Odpovědět 5.3.2013 10:08
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):

Sice je už tedy i samostatný program, ale je to jen renderer statické scény (pokud se někde používají animace, tak mu to musí třeba Blender předžvýkat), žádnou grafiku v něm nevytvoříš, takže se obávám, že Yaf(a)ray není to, co popon2 v tuhle chvíli hledá :) .

Odpovědět 5.3.2013 10:32
:)
Avatar
Kit
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
Kit:

To by znamenalo, že i Povray je nepoužitelný, protože se v něm dělají scény a animace jako v běžném programovacím jazyku.

Odpovědět 5.3.2013 10:47
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Luboš Běhounek (Satik):

Povray neznám, netuším, jak funguje, tak nemůžu soudit :)

Odpovědět 5.3.2013 11:05
:)
Avatar
Panda38
Redaktor
Avatar
Panda38:

Povray není pro herní modely moc vhodný. Objekty definuje jako matematické modely a je určený pro paprskové renderování. Nejspíš existuje i možnost exportu do trojúhelníkových modelů (které jsou potřebné v herní 3D grafice, např. DirectX formát), ale tyto modely nebudou nikdy tak optimalizované jako při ručním návrhu. Modelovací programy jako např. Blender jsou pro herní modelování dost složité. Milkshape je pro herní modelování jeden z nejlepších - právě díky velmi snadnému ovládání zaměřenému na trojúhelníkové modely a texturování. Jedinou nectností je že je shareware, ale amatérští herní vývojáři si umí poradit kde získat plnou verzi.

 
Odpovědět 6.3.2013 14:46
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 14. Zobrazit vše