Modelování válečné sekery. Log #16 (Blender)
11.03.2018

    V tomhle díle detailně popíšu jak vytvářím modely předmětů do hry v Blenderu (aktuální verze 2.78). Jako nový model jsem zvolil trochu složitější válečnou sekeru. Inspiraci vždy hledám na googlu, kde zároveň stáhnu i dobrý referenční obrázek. Samozřejmě pokud mě dostihne můza a napadne mě vlastní model, nejsou podklady potřeba pro modelování, jen pro zachování špetky realističnosti. Popíšu teké jak model mapuji a texturuji. Protože budu ve hře používat jedoduché barvy, využívám atlas textur, v mém případě spíše barev, který usnadňuje práci Unity a tak šetří výkon PC.

    Najdu tedy vhodný obrázek na googlu a stáhnu jej. V Blenderu ho pak vložím do scény jako pozadí. Pro vložení pozadí zapnu panel vlastnosti [N], a dole v záložce Background kliknu na tlačítko Add a přes Open najdu a vložím obrázek. Teď je potřeba nastavit pozadí, tak aby se zobrazovalo jen z pravé strany a bylo vyrovnané podle os. Přepnu si na ortografické zobrazení scény [num. 5], pravý boční pohled [num. 3] a v panelu nově přidaného pozadí, nahoře vyberu Axis - right, otočím ho tak aby topůrko směřovalo podle osy Z a bylo zhruba na středu. Důležité je také nastavit správnou velikost, tu nastavuji tak, že do scény vložím předmět ze hry a nastavuji poměr velikosti pozadí k předmětu, pokud chci objekt posouvat jen jemně držím klávesu Shift. Rukojeť posunu na středy os, jde o místo, kde bude předmět držený v ruce. Tohle samozřejmě vyžaduje mít už nějaký předmět hotový, úplně první předmět jsem nastavoval podle modelu postavy. Již vytvořené předměty vkládám do Blenderu přes tlačitko Append v menu záložce File. Najdu .blend soubor předmětu a jeho model, ten je vždy ve složce Objects. Pozadí tedy přizpůsobím modelu a vložený model pak odstraním [X, D]. Pozadí je připraveno k modelování.

 

 

    Úmyslně jsem zvolil složitější objekt, abych ukázal jak zhruba vytvářím komplikovanější meshe podle podkladů. Jednoduchou sekeru dokáže vymodelovat každý, ale aby měl tenhle log větší smysl, ukážu metodu, kterou používám například při modelování organických objektů. Jde o způsob, kdy není předem jasný mesh objektu, nebo když má objekt složitější strukturu. Snažím se vždy zachovat strukturu s polygony o maximálně 4 vertexech. Ovšem někdy jsou i trojuhelníky potřeba. Vytvářet ale takový čistý mesh za běhu pro mě není snadné a tak využívám metody která se v Blenderu používá u retopologie. Retopolgie se používá pokud je žádoucí dosáhnout co největších detailů. Model se vymodeluje do detailů například tzv. sculptingem, ale takový model by měl nejméně miliony polygonů což je ve hře pochopitelně nežádoucí. Model se tedy vymodeluje znovu, ale aby byly zachovány proporce, modeluje se na high poly meshi, už ručně a s čistým meshem. K tom je v blenderu skvělý nástroj Grase Pencil, který umožní kreslit na objekt, a Bsurface nástroj který z nákresu dokáže vytvářet rovnou polygony, aneb nový mesh. Takhle si můžu rozmyslet jak mesh bude vypadat aby byl čistý. Tuhle metodu pak budu používat. Až je hotová retopologie, z vysculptovaného meshe se upeče normálová, a ambientní mapa, která se pak použije na "retopo" mesh a objekt pak vypadá realisticky.

    Použiji tedy Grease Pencil a navrhnu si mesh hlavní části sekery dopředu, aby byl čistý. V panelu vlastností tedy najdu Grease Pencil záložku a do Scene, kliknu na tlačítko '+' a přidám novou vrstvu. V panelu nástrojů [T], pak v záložce Grase Pencil, žaškrtnu Continuous Drawing. Pak pomocí Draw, nebo Line navrhnu jak bych si představoval mesh.

 

Mesh

 

    Na low poly model je tam samozřejmě hodně polygonů, to ale také závisí na míře detailů které chci zachovat. Aby čáry moc nepřekážely v panelu vlastností snížím hodnotu Opacity pro navrhnutou vrstvu. Pro využití Bsurface je potřeba jej aktivovat v Preferences, v záložce Add-ons. Modul se objeví v nástrojové liště při editaci objektu. Jediným kritériem pro funkci je mít Grase Pencil nastavené na Object nikoliv na Scene. Abych mohl pracovat v edit modu musím vložit nějaký objekt do sceny, například plane [Shift + A, Mesh > Plane]. Přepnu se do edit modu [Tab] a smažu všechny vertexy [X, V]. Pro kreslení Grease Peancil držím klávesu D, pro rovné čáry Ctrl + D, pro mazání pravé tlačitko. Čáry jsou potřeba kreslit ve stejném směru a v pořadí v jakém je chci, jinak bude Bsurface spojovat opačné konce. V panelu nástrojů, v záložce Tools je pod Bsurface tlačítko Add Surface. Po kliknutí na tlačítko se mi vytvoří polygony které pák můžu editovat, v nástrojích dole, obvykle ponechávám beze změn. Pokud se chci napojit na nějakou část, vyberu vertexy na které se chci napojit a kreslím od další následující hrany. Opět kliknu na add surface...takhle pokračuji dokud není mesh hotový. Vytvořil jsem názornou ukázku i se zobrazením mačkaných kláves.

 

 

    Sekera ale není placatá, že? Proto je potřeba dodělat břit a napojit ji na třmen. Nejlepší způsob je modifikátor zrcadlení, který ušetří půlku práce. V modu objektu [Tab], v liště nastavení objektu přídám modifikátor (tlačítko nařádí - klíče) mirror. Nastavím zrcadlení v ose X, zapnu clipping a merge, ostatní ponechám. Přepnu se zpět do editace vertexů [Tab] a dodělám břit. Pro třmen vložím k objektu válec v edit modu [Shift + A, Mesh > Cylinder]. Nastavím na 6 stran po obvodu, přizpůsobím modifikátoru zrcadla a doupravuji velikost podle podkladu. Nakonec připojím čepel.

 

Blade mesh

 

    Dodělám ještě ostny na třmenech a hlavní část sekery je hotová.

 

Ostny

 

    Zbývá dodělat topůrko a rukojeť. K tomu použiju jen vytažení [E], vrchního obvodu s tím, že dodělám "detaily".

 

Model

 

    Celý model má 398 polygonů, což je relativně hodně na low poly model, ale jen protože jsem chtěl zachovat detaily. Takový model by se dal použít i do normální hry, pokud se na něj dá normálová, ambientní a UV mapa s texturou. Se smooth shadingem by nešlo poznat že jde o jednoduchý model. Pro moje účely je tenhle hranatý model ideální. Teď je potřeba sekeru "naseamovat", tedy rozdělit na části pro UV mapování a nakonec přiřadit texturu - můj atlas barev.

    Jako první musím aplikovat modifikátor zrcadla, abych mohl upravovat celý model. Modifikátor ale jde aplikovat jen v modu objektu, nikoliv v editovacím modu. Přepnu si do režimu hran [Ctrl + Tab, E] a začnu rozdělovat mesh. Při seamování pak postupuji následovně; jako první oddělím části které budou mít různou barvu, těmto částem pak označuji hrany tak, aby je bylo možné rozložit na 2D plochu. Začnu s topůrkem, to bude zvlášť, pak jílec sekery, ten se skládá z hlavice (to je ta spodní část), z rukojeti a ze záštity (názvosloví převzato s částí meče). Pro výběr smyček využívám Alt + pravé tlačítko myši a pro označení hrany Ctrl + E, A. Takhle vypadá rozložený model.

 

UV map

 

    Obvykle, pokud to model dovoluje, tak rozděluji části na půl. Pokud nejde rozeznat která je jaká část, pak dole v okně UV Editoru musí být zaplá synchronizace výběru mezi 3D modelem a UV mapou. To umožní při vybrání částí v UV Editoru označit části na 3D modelu. Je to ikonka krychle se dvěma vertexy a kurzorem myši. Když vím která část kam patří, uspořádám si je společně podle barev. Vypnu synchronizaci výběru, označím v 3D náhledu celý model a v náhledu UV editoru vybírám jednotlivé části. K tomu je velice nápomocná zkratka Ctrl + L. Když vyberu vertex, polygon, nebo hranu, tahle zkratka pak vybere všechny části které tvoří celek (v UV Editoru a v 3D náhledu se chová nezávisle na sobě). Takže si "ostrovy" meshe uspořádám aby se mi části se stejnou barvou překrývaly. 

    Na začátku jsem zmínil atlas barev. Jde o jeden obrázek ve kterém mám vloženy všechny barvy které ve hře využiji. Do toho pak vkládám moje UV části podle potřeby. Takhle vypadá natexturovaná sekera v atlasu.

 

Textured

 

    Blend soubor uložím do mých Unity assets, do Objects/Items/Weapons. Tím je téměř vše hotové, předmět mám v Unity, jen musím vytvořit ještě ikonu. Pro vytvoření ikony v Blenderu, vložím do scény novou kameru, v první záložce v nastavení kamery nastavím rozlišení na 64x64 a 100% a dole v záložce Shading změním Alpha na Transparent, aby bylo pozadí průhledné. Otočím sekeru o 45° po ose X, kameru otočím na -90° v ose Z a kameru posunu před sekeru. V záložce Camera ještě změním zobrazení na ortografické, pak se přepnu na přidanou kameru [num. 0] a Orthographic Scale přizpůsobím tak, aby sekera zabírala celý rámeček. Do scény je také potřeba přidat světlo aby sekera nebyla černá při renderu, stačí hemi v defaultním nastavení. A jako poslední přidat materiál a texturu na sekeru. V textuře pak v záložce Image jen vyberu můj atlas. Pro render stačí stisknout Render tlačítko v nastavení objektu v první záložce s obrázkem foťáku. Otevře se výsledek renderu a tam, dole v menu položce Image dám Save As Image a uložím do Assets do Resources/UI/Icons/Items.

 

Axe icon

 

    V Unity v nastavení ikony změním Texture type na Sprite (2D and UI), dole v panelu Max size na 64 a stisknu Apply. Ikonu pak přetáhnu do vytvořeného ScriptableObject do políčka Item icon. Pro vytvoření prefabu vložím objekt do scény a následně ho přetáhnu do Assets nastavím pozici na 0 a přejmenuji, pak prefab přetáhnu do ScriptableObject do políčka Item prefab. A je hotovo.