Pravidla Ucet
Nepřihlášen

Článek

Menu

Top down 3D - 2. část
Napsal: NicharCZ
Přidáno: 25.07. 2010

Je tady pokračování "Top down 3D", tentokrát se zaměříme na jednoduché modely stromů, ukážeme si, jak udělat nějaký ten keřík a plot... + Zdrojový soubor (GM8 Pro a GM6 Pro)

Obj_fence - Plot

Vytvoříme si jednoduchý, plot nebo zeď ještě jednodušší funkcí:

d3d_draw_wall(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat)

Budeme rozlišovat "vertikální" a "horizontální" plot. Napřed si vytvoříme nějaký sprite, který bude pro naší orientaci v room editoru. Jeden bude mír rozměry 32x1 a druhý 1x32, z důvodu kolizní masky. Potom ve složce Backgrounds si nakreslíme, jak bude plot vypadat, samozřejmě ze strany. Bude mít rozměry 32x16. Protože se tato "zeď", v našem případě plot vybarví z obou stran, bude nám stačit jedna textura. Horní část nebudeme potřebovat, protože plot je placatý. To je rozdíl od bloku, který "dostává" ten třetí rozměr. Náš plot je v tomto případě placka.


Až budeme všechny textury mít, tak si vytvoříme dva objekty, obj_vertical_fence a obj_horizontal_fence (ang. fence znamená plot). U obou objektů v create bude kód pro získání textury:

tex=background_get_texture(bck_fence_texture)


Následuje vykreslení plotu na určené pozici. Do draw objektu obj_vertical_fence:

d3d_draw_wall(x,y,-128,x,y+32,-160,tex,1,1)


A teď draw objektu obj_horizontal_fence:

d3d_draw_wall(x,y,0,x+32,y,-32,tex,1,1)


Opět si všiměte argumentů, co a jak je kde dané, z hodnoty jsou záporné.

Obj_bush - Keř


Keř bude přízemní, tedy argument z1 bude mít hodnotu 0. Co se týče kódu, tak vám hodlám představit:

d3d_draw_cone(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,closed,steps)

Tato funkce vám vykreslí kužel, nebo lépe "slzička", právě takový tvar bude mí náš keřík. Nakreslíme si opět sprite, tentokrát v kruhovém tvaru, třeba zelené barvy (32x32). Dále potřebujeme texturu listů, postačí velikost 32x32. Seženeme něco na Googlu nebo si něco nakreslíme. Pokud oboje dopadne katastrofálně, tak vám přikládám texturu listů.



Máme sprite, máme texturu, kód známe, jde se na vykreslení keře. Napřed ale zase získáme texturu, create:

tex=background_get_texture(bck_leaves_texture)

A jde se vykreslovat! Draw:

d3d_draw_cone(x,y,0,x+32,y+32,-48,tex,2,2,1,24)

Konečnou výšku keře určuje argument z2: Vyzkoušejte tam dát třeba -256 a uvidíte, co vám vznikne.


Obj_tree - Strom

Na tento jednoduchý stromek nám stačí jeden sprite (16x16),nezapomeňte ho vycentrovat pro kolizi. Bude mít půdorys kmenu, takže bude možno chodit pod listy. Dále budeme potřebovat jednu texturu, pro kmen stromu. Druhou pro listy už máme. Přestavíme si novou funkce:

d3d_draw_cyllinder(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,closed,steps)

Argumenty nám už nejsou cizí. Tato funkce nám vytvoří válec, což bude kůra stromu. Že nám chybí koruna stromu? Na tu použijeme už známou funkci

d3d_draw_ellipsoid(x1,y1,z1,x2,y2,z2,texid,hrepeat,vrepeat,steps)

Až budeme mít vše připravené, zadáme do create textury:

tex=background_get_texture(bck_tree)
tex2=background_get_texture(bck_leaves)

A jde se vykreslovat, pamatujte, že stromová koruna začíná tam, kde končí kmen. Takže pozor na argument z1 v druhém řádku.

d3d_draw_cylinder(x-8,y-8,0,x+8,y+8,-64,tex,4,4,1,8)
d3d_draw_ellipsoid(x-32,y-32,-64,x+32,y+32,-128,tex2,8,8,8)


To je zatím všechno, později nebo někdo jiný vám představí, jak udělat vlastní modely, na to slouží program Marzipan. Tak do té doby se mějte... ;)


Ještě jsem málem zapomněl na slíbený zdroják, kde je mimo jiné i zábradlí na domech a bludiště:

• D3D (GM8 Pro)
• D3D (GM6 Pro)

• Z argumenty jsou záporné
• Dejte si pozor na origin. Kolize a následné vykreslování jsou nastaveny origin na (0,0)! Výjimka je strom!
• Pokud máte GM6, zapomeňte na jednoduchá průhledná pozadí.


Co nás čeká příště?
• Domek s nakloněnou střechou
• Brána
• Hradby
• Další jednoduché modely (věž)
• Gmk. a .gm6 příklad


Děkuji za příspěvky...
Created by NicharCZ
Ostatní díly seriálu:
[25.07. 2010] - Top down 3D - 3. část
[25.07. 2010] - Top down 3D - 1. část
Klíčová slova: top down 3D ptačí perspektiva rozměr GM3D
 

Komentáře:

Napsal: NicharCZ
Přidáno: 27.07. 2010

Bohužel, na auto mi prachobyčejné vykreslování nestačí. To bych jsem musel v Marzipanu udělat model, o tom někdy jindy.. Na druhou stranu ale uvidíš opevnění s hradbami, otvírající se bránu a podobné věci. Dále už modelovat můžete sami. Já dělám v GM3D čtvrtý den a za tu dobu jsem byl schopný se nejen všechno naučit, ale také sepsat snad rozumný tutoriál a dokázat vám, že 3D je vlastně hračka... :)

Trvalý odkaz

Napsal: Tronf
Přidáno: 27.07. 2010

Super návod , skús spraviť aj auto :)

Trvalý odkaz

Napsal: NicharCZ
Přidáno: 26.07. 2010

A to jsi teprv neviděl domek :) Moc práce to nedá, jen musíš přemýšlet, kam co dát. Mě to baví a moc práce to zas nedá... ;)

Trvalý odkaz

Napsal: jackm
Přidáno: 25.07. 2010

Ten příklad, je opravdu super, muselo ti to dát dost práce.

Trvalý odkaz

Napsal: NicharCZ
Přidáno: 25.07. 2010

Díky moc :) Mimo to jsem také přidal zdroják .gm6, takže by to měli teoreticky otevřít všichni, co mají Game Maker Pro 6 a vyšší... :)

Trvalý odkaz

Napsal: Satik64
Přidáno: 25.07. 2010

Pěkný návod, pro můj projekt jsem si udělal 2.D engine, ale vidím že tento je lepší a i míň náročnější :D

Trvalý odkaz

Velkej Chytrák
Copyright (c) 2001-2010