Jak na modely z Blenderu do GM

Ostatní jazyky GameMaker 3D hry Jak na modely z Blenderu do GM

Předem upozorňuji, že v souborech jsou jen materiály na domácí úkol. Nečekejte, že vám dodám textury nebo zdroják. Od toho je to tutoriál - aby jste se to naučili SAMI.

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:

Kde začít?

No.... Asi na youtube. S uplnými základy se nemá cenu zabývat. Je toho plný youtube a dokonce i zde, na ITnetworku je český seriál, jak si udělat základ pro parádní hru ve stylu DOOM. I já s tím začínal. Předem vás upozorňuji, že k tomuto tutoriálu musíte znát tento 3D základ.

Další nástroj, který se vám bude hodit, je Blender. Stáhněte, nainstalujte a potom si s ním trošku pohrajte.

Tvorba 3D modelu v Blenderu

Připravil jsem pro vás drobné ulehčení. Stáhněte si STARTUP.BLEND, otevřete v Blenderu a nastavte jej jako spouštěcí soubor.

Začneme modelováním stolečku. Prvním krokem bude zmáčknout shift+a a vybrat mesh a cube.

To bude naše vrchní část stolečku. Pomocí klávesy na numpadu (musíte mít zapnutý numlock) přepneme do bočního pohledu a klávesou S (scale) stůl 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 opět upravíme kostky, tentokrát je ale zvětšíme po ose Z, aby připomínaly nohy.

Klávesou G se přesuneme na roh stolu, a ten 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í mód 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 se do bočního pohledu číslem 1 na numpadu, nastavíme ortografický view klávesou 5 (num), označíme stůl, klávesou tab přepneme do edit modu. Klávesou A označíme vše a nakonec klávesami G a poté Z posuneme objekt tak, aby oranžová tečka byla u spodku nohou.

A teď využijeme můj startovací soubor. Připravil jsem v něm totiž 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:

Posléze zmáčkneme klávesu B, označíme vršek stolu a pomocí U vyvoláme nabídku, kde 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 jsme měli přehled o všech uv plochách.

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

Teď je čas na "vychytávku" číslo 2. 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 budeme všímat až 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 64x64 jako v navnaďovacím obrázku a jako pozadí color grid protože... Se mi to prostě líbí.

Klikněte na OK a .... Nic se nestane. Nejprve 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... Opět nic.

A tady právě přichází to mé překvapení pro vás. Shift+A, group a vyberte pixelate. V hodnotách nodu nastavte vaší velikost textury (v našem případě 64x64). 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 úplní "antitalenti", za půl hodinky máte hotovo. Klávesou F zvětšujete štětec a shift + F nastavujete sílu přítlaku. Úplně 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.

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.

Použití textury v game makeru

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á pohybovat. Pokud jste snad nepochopili návod na ITNetworku který jsem doporučoval na začátku, můžete využít tento videonávod od Sivarta:

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.

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

Jako první vytvořte skript : init_model

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

///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

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

///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();

No, a už zbývá jen vytvořit objekt obj_stolecek. Vytvořil jsem si pro něj obrázek o velikosti 64x64 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, prostě zadejte název vaší textury.

Do draw eventu napíšeme:

draw_model(10,10,13,0);

(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 roztomilý malý stoleček:

Asi bychom ho chtěli větší, takže upravíme hodnoty na draw_model(20,20,25­,0);

Výsledek

Mnohem lepší!

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

No, a to je celé! Gratuluji! Právě ses naučil portovat 3D objekty z Blenderu do Game makeru!

Na závěr jsem připravil takové malé cvičení.

V souborech k článku najdete zip s modelem židle, knížky a poliček a jejich textur. Uvidímet, kdo jako první okomentuje s linkem na obrázek, jako je například tento:


 

Stáhnout

Staženo 102x (35.72 kB)

 

  Aktivity (3)

Článek pro vás napsal Druid
Avatar
Autor se věnuje koukání na anime a sem tam zprasí hru.

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


 


Miniatura
Všechny články v sekci
GameMaker - 3D hry

 

 

Komentáře

Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:

Chtělo by to dodat, že free verze GM 3D nepodporuje, používat ho lze jen v GameMaker Studio ;)

Odpovědět 24.11.2015 11:42
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Druid
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Druid:

Vidíš, já už tak nějak nepočítám s tím že někdo používá demo osmičky :D Buď má origo a nebo free studio co je (téměř) bez omezení.

Odpovědět 24.11.2015 13:35
Život je tak trapný bože, jak uprdnutí do soulože.
Avatar
Honza Šebek
Člen
Avatar
Honza Šebek:

Jen se chci zeptat jestli tam nemůžu rovnou udělat třeba dům a nebo když zajdu do extrému celou mapu nebo město pujde to stále dát do Game Makeru?

 
Odpovědět 9. března 20:32
Avatar
Druid
Redaktor
Avatar
Odpovídá na Honza Šebek
Druid:

Půjde :3 (resp. mělo byto jít.)

Odpovědět 9. března 21:31
Život je tak trapný bože, jak uprdnutí do soulože.
Avatar
Honza Šebek
Člen
Avatar
Odpovídá na Druid
Honza Šebek:

Super :D má blender nějaké omezení na prostor objektu ? 8-)

 
Odpovědět 10. března 12:09
Avatar
Honza Šebek
Člen
Avatar
Honza Šebek:

Btw mám problém s vložením toho addonu do blenderu.Když dám to instal from file,tak to ten staženej addon nenajde :/

 
Odpovědět 10. března 13:01
Avatar
Odpovídá na Honza Šebek
Garrom Orc Shaman:

Pokud vám nejde ten exporovací script můžete zde stáhnout exportovací script pocházející přímo z fóra yoyogames. http://uloz.to/…y-drmrkev-py

Odpovědět 21. března 13:08
We're orcs, maybe we are not always wise or beautiful, but we will always be strong, outnumbered and well armed
Avatar
Honza Šebek
Člen
Avatar
 
Odpovědět 17. dubna 20:45
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 8 zpráv z 8.