Tvoříme in-game movies pomocí TimeLine a Paths
V mnoha hrách jsou okamžiky, kdy potřebujeme aby se určité akce provedli
v daný moment. Můžete se pokusit o něco takového pomocí alarmů, ale pokud
to bude rozsáhlejší, začnete se v tom ztrácet a začne to být
přespříliš komplikované.
Pomocí TimeLine si jednoduše nastavíte v jaký moment se provedou zadané
akce. Vytvořený timeline můžete jednoduše přiřadit jakémukoliv objektu.
Instance poté bude provádět akce, uvedené v přiřazeném timeline dle
nastavených kroků. Kde kroky jsou brány dle rychlosti místnosti (výchozí
30 kroků za sekundu). Lze změnit v nastavení místnosti (pokud nastavíte
rychlost místosti méně jak 30 hra se bude zpomalovat).
Pokud například chcete nějakého strážce co bude chodit okolo hlídaného
místa (např. před hradem)... Jednoduše mu v timeline nastavíte:
- Step 0: akce pohyb doprava
- Step 60: akce pohyb nahoru
- Step 120: akce pohyb doleva
- Step 180: akce pohyb dolů
- A při přiřazování timeline nastavíte loop na true (stejně tak můžete použít akci na random a cestu generovat náhodně)
Pro vytvoření timeline stačí klepnout na ikonku přesýpacích hodin
nahoře v liště (pokud ji nevidítě -> zvolte File/Advanced mode ->
musí být zaškrtnutý).
Vyskočí vám okénko podobné tomu, v němž editujete objekt. Vlevo můžete
současný timeline pojmenovat a jsou zde akční tlačítka. Vedle je seznam
přidaných časových úseků. Pak akce přiřazené vybranému okamžiku. A
nakonec akce, jako v editaci objektu, které klasicky přetahujete nebo můžete
použít jazyk GML k zadání akcí, které chcete v daném okamžiku provést.
Popíšeme si jednotlivá tlačítka:
- Add - Slouží k přidání okamžiku do současné timeline. Zadáte moment - číslo v krocích (počítáno od spuštění timeline). Potvrdíte a můžete přidávat akce, stejně jako je tomu u nastavování objektů.
- Change - Slouží pro změnu počtu kroků pro současně vybraný časový okamžik
- Delete - Smaže všechny časové okamžiky v zadaném intervalu.
- Clear - Smaže všechny časové okamžiky
- Shift - Zadáte interval pro který chcete posunout všechny časové okamžiky v něm se nacházející o zadaný počet. Pokud změníte počet kroků na takové číslo, které se již v seznamu nachází - akce se přesunou.
- Duplicate - Funguje na stejném principu jako Shift s tím, že se zduplikují jednotlivé časové okamžiky s akcemi.
- Spread - Procentuálně rozšíří časové okamžiky v zadaném intervalu o zadané procento. Př.: máte následující kroky - 5, 8 a 12 a zadáte procento rozšíření 200 a interval <1;15> -> 9, 15 a 23 (kroky v intervalu se zdvojnásobili - počátek intervalu je 1 toto číslo odečteme od 5 -> 4 * 2 = 8 + 1 = 9; 8 - 1 = 7 * 2 = 14 + 1 = 15
- Merge - Slouží pro sloučení všech časových okamžiků nacházejících se v zadaném intervalu do vybraného.
Doplňek:
Nevytvářejte záporné časové okamžiky -> nikdy se nevykonají.
Tlačítko Show Information slouží k zobrazení současného
timeline pro čtení (co se kdy vykoná).
Ukážeme si to na jednoduchém příkladě:
Postavička ťukne na tlačítko - následuje scéna jak vyletí bomba a
odpálí překážku.
- Vytvoříme si objekt bomby a překážky a nastavíme jim příslušný sprite (pro překážku můžeme přidat sprite rozbité/rozstříštěné překážky)
- Vytvoříme nový timeline
- v kroku 0 (hned po spuštění timeline)
- nastavíme hspeed na 5 (pohyb bomby doprava)
- gravitaci na 0.5
- vspeed na -10 (jak kdyby byla vržena)
- vytvoříme instanci objektu překážky na souřadnicích 250x120 relativně ku bombě (aby se překážka vytvořila tam kde bomba vybuchne)
- v kroku 50 (bomba poletí 50 kroků (dle základní rychlosti místnosti 30
necelé dvě sekundy))
- smažeme bombu (destroy instance)
- vytvoříme efekt exploze
- změníme sprit překážky na roztříštěný nebo překážku smažeme
- v kroku 0 (hned po spuštění timeline)
- do objektu bomby přidáme create event a do něj vložíme akci Set Time Line ze záložky main2.
- bombu umístíme na začátek místnosti a hru spustíme
Co dělá která akce je popsáno zde: Ikonky záložka main2, zde jsou jejich ekvivalenty v kódu GML: GML zápis main2
S timeline se dají udělat velice pěkné meziscény, intra, outra. Stačí jen trocha fantazie a chuť si s tím pohrát
Nyní se podíváme na paths.
Pokud chcete nakreslit křivku po které se daný objekt bude pohybovat
(například máte meziscénu, kde poražené tělo bosse opustila jeho duše a
letí na určené místo nějakou kroutící se cestou - použijete paths).
Vytvořit cestu lze snadno pomocí červené zkroucené křivky nahoře v
liště. Objeví se vám takovéto okénko: Napravo nahoře pod
křížkem si můžete zobrazit libovolnou místnost pro lepší kreslení
cesty.
Cestu navrhujete klepáním na určitá místa.
Pomocí tlačítka add můžete přidat nový bod a následně upravit jeho
pozici případně rychlost instance v tomto bodě.
Insert má stejnou fci jako add s tím, ževloží bod pod vybraný bod v
seznamu.
Delete - smaže vybraný bod.
Můžete si dále zvolit zda propojením bodů vzniknou čáry nebo křivka
(křivka - curve má zaoblené rohy)
Closed - určuje zda bude cesta uzavřená (bude končit tam kde začíná)
Precision - určuje zaoblení křivky
Namalujte tedy nějakou uzavřenou křivku a vytvořte nějaký objekt třeba
kuličky.
Do create eventu vložíme Set Path ze záložky move. Vybereme
patřičnou cestu nastavíme instanci rychlost tak 5, at end - chceme aby se
nezastavovala takže zvolíme continue from start a absolutní (přesně po
zadané křivce)
Poté objekt přidáme někam do místnosti a hru pustíme.
Akce ikonek jsou popsány zde Ikonky
sada move a zde je jejich GML ekvivalence GML
zápis move
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 336x (12.95 kB)
Aplikace je včetně zdrojových kódů v jazyce GameMaker