Rubriky
Návody Software

Práce s modely v Game Makeru

V poslední době mě děsně baví znovuoživovat si práci s 3D v game makeru. A tak mě napadlo, že bych se mohl podělit o skriptíky co jsem v rámci testování napsal. Takže pokud vás zajímá 3D v gm, tenhle článek je pro vás jasná volba. Ještě bych rád upozornil že free verze game makeru není nijak zvlášť omezená. Blender je taky free, takže vás to nebude stát ani korunu!

 

Tak, a teď vás navnadím.

Něco takového se pokusíme vytvořit

Runner 2015-11-23 23-59-12-296

Kde začít?

No…. Asi na youtube. S uplnýma základama se nemá cenu srát. Je toho plný youtube a dokonce i na ITnetworku je český seriál jak si udělat základ pro parádní DOOM ovku. I já s tím začínal, takže rozdíl ve výsledku bude snad minimální 😀 Předem vás upozorňuji že k tomuto tutorialu musíte mít tenhle 3d základ. Jinak si ty modely můžete strkat tak akorát za anální klobouk.

Další nástroj co se vám bude hodit je BLENDER Stáhněte, nainstalujte a potom se v něm pohrabte. Budete muset umět alespoň vložit kostku pokud máte tutorial zvládnout. Pro to ostatní mám pro vás takové malé ulehčení!

STARTUP.BLEND

Stáhněte, otevřete v blenderu a nastavte jako spouštěcí soubor,

Jakou má ten speciální startovací soubor výhodu, se dozvíte … No hodně brzy 😀

Takže, začneme třeba tím, že si vymodelujeme stoleček. K tomu vám stačí zmáčknout shift + a , vybrat mesh a cube.

To bude naše vrchní část stolečku. Pomocí klávesy na numpadu (musíte mít zaplý numlock) přepneme do bočního pohledu, a klávesou S (scale) zmenšíme. Hned po klávese S zmáčkneme klávesu Z aby se předmět zmenšoval jen po ose Z.

Až budeme spokojeni s tloušťkou, provedeme to samé ještě 4x pro nohy stolu. Klávesou S zmenšíme kostky, ale tentokrát je zvětšíme po ose Z aby připomínaly nohy.

Klávesou G přesuneme na roh stolu, a potom kombinací shift + D zduplikujeme a přesuneme na ostatní strany stolu. Pokud chcete přesouvat přesně, stačí když po klávese G zmáčknete X,Y nebo Z a předmět bude klouzat po určité ose. Nakonec klávesou B vyvoláme označovací mod a označíme všechny nohy a vršek stolu. Ty poté kombinací ctrl + j spojíme v jeden objekt. A voilá! Stůl je na světě!

Teď je na čase přesunout origin objektu na spodek stolu, aby nám v game makeru stál stůl při zemi. Přepneme do bočního pohledu číslem 1 na numpadu, nastavíme ortografický view klávesou 5,  označíme stůl, klávesou tab přepneme do edit modu. Klávesou A označíme vše a nakonec klávesou G a poté Z posuneme objekt tak, aby oranžová tečka byla u spodku nohou.

 

A teď přijde to vylepšení o kterém jsem mluvil. Připravil jsem ve start up souboru mód game maker!

Jako první se budeme věnovat okýnku vpravo dole. To slouží pro unwraping.

Přepneme si na Face select mod,

zmáčkneme klávesu B, označíme vršek stolu a pomocí U vyvoláme nabídku kdy zvolíme project from view.

Na levé straně se objeví uv mapa pro vršek stolu. Najetím do jeho okna a klávesou G si ho přesuneme do rohu.

Stejný postup uděláme u boků a nohou stolu.

Zaklikneme si UV in sync, aby jsem měli přehled o všech uv plochách.

A zase pomocí výbeřu (B) si je označíme a nějak rozumě zarovnáme

A teď je čas na vychytávku číslo 2 a tou je speciálně připravené nastavení na pixelovaté textury.

Pokud jsme v edit modu, klávesou tab ho opustíme a klikneme na tlačítko New čímž přiřadíme objektu nový materiál. Objeví se nám takzvané nody. Kterých si budem hledět za malou chvilinku.

Nejdříve je totiž potřeba přiřadit obrázek k modelu. To provedeme kliknutím na tlačítko New v levém okně.

A protože je tenhle návod o low-res. Zvolím velikost textury 64×64 jako v navnaďovacím obrázku a jako pozadí color grid protože… Se mě to prostě líbí.

Klikněte na Ok a …. Nic 😀

Teď je třeba pohrát si s Node editorem vpravo nahoře.

Kombinací kláves shift + a vyvoláme menu, ze kterého vybereme textures a image texture. Myší propojíme položky color a  naklikneme browse image (NE OPEN) Z roletkového menu vybereme naší právě vytvořenou texturu a….

Nic…

A tady přichází to moje překvapení pro vás. Shift + A, group a vyberte pixelate. V hodnotách nodu nastavte vaší velikost textury (v našem případě 64×64)

To propojte s Image nodem a je hotovo.

Pak tady vyberete material.

 

A v liště v okně vlevo dole z podobného menu paint. Pak klávesou T vyvoláte menu pro nastavení štětců. S tím je třeba si malinko pohrát.

Ale pokud nejste uplní antitalenti, za půl hodinky máte hotovo. F- kem zvětšujete štětec a shift + F nastavujete sílu přítlaku. Uplně nahoře máte typy štětců.

 

O 30 minut později….

 

A je na čase si texturu uložit.

A nakonec vyexportovat model. To můžete přímo z blenderu pokud máte vhodný plugin. Ten lze stáhnout zde

KLIKNI PRAVÝM A DEJ ULOŽIT JAKO

Poté ho v blenderu aktivujete… (file, user preferences, instal from file a nezapomeňte ho v seznamu najít a zaškrtnout jako aktivní)

 

a model vyexportujete jako gm formát.

A tím práce v blenderu končí!

Nyní je čas vrhnout se na game maker. Jak jsem psal na začátku, počítám s tím že máte funkční 3D prostředí po kterém se dá jakš takš pohybovat. Pokud jste snad nepochopili návod na it networku který jsem doporučoval na začátku, můžete využít tento videonávod od Sivarta

Má to tuším i s mouse lookem 😀

Ale zpátky k modelům. Věřím že většina z vás už s gm něco málo udělala a tak nebudu tolik plýtvat obrázky.

Nejdřív si připravíme model a texturu. Texturu přidáme jednodušše jako background. Nic víc není potřeba.

Model je trošku složitější. V included files vytvořte group Data, a v něm group mdl. To kvůli … No protože to vypadá profesionálně ! 😀

Vidíte?!

A teď příprava několik skriptíků.

(Předem se omlouvám za chybějící komentáře, já totiž tak nějak nevím přesně co některé kódy znamenají :D)

 

Jako první vytvořte skript : init_model

Do něj vložte následující kód :

 

[pastacode lang=“markup“ message=“init_model“ highlight=““ provider=“manual“]

///init_model(filename,texture);
z = 0; //základní Z pozice
model = d3d_model_create();  //nastavení proměnné
//nahrání modelu, díky přípravě pak bude stačit jen název bez přípony
d3d_model_load(model,string("Data\mdl\")+string(argument0)+string(".d3d"); 
tex = background_get_texture(argument1); //nastavení textury

[/pastacode]

No a dál si připravíme skript na vykreslení modelu nazvaný : draw_model

[pastacode lang=“markup“ message=““ highlight=““ provider=“manual“]

///draw_model(xscale,yscale,zscale,zcorrect)

d3d_transform_set_identity() 

//nastaví rotaci modelu podle spritu. Takže pokud budete chtít mít stůl šejdrem, stačí nastavit image_angle spritu
d3d_transform_add_rotation_z(image_angle)

//Zvětší/zmenší objekt (pokud je to potřeba) 
d3d_transform_add_scaling(argument0,argument1,argument2)

//Nastaví origin modelu na náš objekt
d3d_transform_add_translation(x,y,z+argument3)

//Vykreslí model s předem nastavenou texturou
d3d_model_draw(model,0,0,z,tex);

//nastaví origin zpátky na celý svět .... myslím :D
d3d_transform_set_identity();

[/pastacode]

No, a už zbývá jen vytvořit objekt obj_stolecek Vytvořil jsem si pro něj obrázek o velikosti 64×64 a origin nastavil na prostředek. Nesedí to 100% ale alespoň vím kde přibližně stůl bude.

V objektu stůl vytvoříme Create event a Draw event

Do create eventu napíšeme :

init_model(„table“,tex_table);

//jak jsem psal předtím, není potřeba psát celou cestu k souboru nebo příponu, poté zadejte název vaší textury.

 

Do draw eventu napíšeme:

draw_model(10,10,13,0);

//draw model x-zvětšení, y-zvětšení z-zvětšení , úprava Z pozice

No, a pokud náš model vložíme do hry, uvidíme…

Runner 2015-11-24 02-22-05-370

Roztomilý malý stoleček….

Takže upravíme hodnoty na draw_model(20,20,25,0);

Runner 2015-11-24 02-23-19-346

Mnohem lepší!

A pokud vezmeme původní hodnoty, zduplikujeme objekt, upravíme Z hodnotu nového objektu z nuly na 28…

Runner 2015-11-24 02-25-43-649

No, a to je celý! Gratuluju! Už umíš portovat 3D objekty z blenderu do Game makeru!

Ale… Aby jste se nenudili, připravil jsem vám takový malý cvičení…

TADY

Najdete zip s modelem židle, knížky a poliček a jejich textur. Schválně kdo jako první okomentuje s linkem na obrázek jako je tenhle 😀

Runner 2015-11-24 02-26-37-417

 

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..