Hlavní stránka Multimédia Hry a zábava Hrátky s Unreal Engine Část IV: Skriptujeme s Kismet
Hrátky s Unreal Engine Část IV: Skriptujeme s Kismet
autor: Aleš Ulm , publikováno 25.6.2010
Hrátky s Unreal Engine Část IV: Skriptujeme s Kismet

Ve čtvrté části seriálu o Unreal Development Kitu si posvítíme na skriptovací editor Kismet. Díky němu lze ve hře vytvářet nejrůznější události, určovat jak budou objekty reagovat na vaše počínání a vůbec určovat, jak bude hra fungovat. Je to mocný nástroj, který je ale překvapivě jednoduchý i díky přehlednému vizuálnímu zpracování vazeb.


Klikněte do tmavě šedivého prostoru pravým tlačítkem a zvolte New Event Using Trigger_0 (jméno triggeru může být jiné – pokud tam takováhle volba není vůbec, nemáte nejspíš trigger označený). Následně vyberte Touch. Vytvořili jste nový objekt typu event – událost. Teď klikněte pravým tlačítkem někam kousek vedle a vyberte New Action → Voice/Announcement → Play Announcement. Tak a tím jste vytvořili objekt typu akce. Teď ještě klikněte na černý čtvereček označený Touched u eventu, potáhněte kurzor na černý čtvereček u objektu akce označený In a pusťte. Vytvořilo se spojení.

Hrátky s Unreal Engine Část IV: Skriptujeme s Kismet
Hrátky s Unreal Engine Část IV: Skriptujeme s Kismet
Hrátky s Unreal Engine Část IV: Skriptujeme s Kismet

Pojďme se podívat, co jsme to vlastně stvořili. Abychom mohli pochopit základní principy fungování Kismetu, řekneme si hned teď, co to je událost (častěji však o ní budeme mluvit jako o eventu – budeme na ni narážet na různých místech, tak ať vždy víme, o čem je řeč) a co akce.

Event je událost vyvolaná nějakou akcí. Eh, dost kostrbaté a nesrozumitelné, že? Představte si, že se v herním světě něco stane – postava vstoupí do nějaké zóny, jedno auto narazí do druhého, dohoří oheň po výbuchu, hráč klikne na tlačítko v menu, nebo se třeba nahraje a začne nová úroveň hry. Když se některá z těchto nebo řady dalších dostupných událostí stane, počítač zjistí, jestli k ní neexistuje v Kismetu odpovídající event. Zjednodušeně řečeno – pokud třeba v našem případě hráč vstoupil do prostoru triggeru, engine to zjistí a provede některé úkony. Předně se podívá do jeho nastavení a zkontroluje, jestli má trigger reagovat na druh objektu, který do něj vstoupil. Pokud ano, pak zjistí, jestli v Kismetu existuje pro tento trigger event typu Touch. Protože jsme takový event vytvořili, engine ho aktivuje.

Samotná aktivace eventu ale nic neudělá. Představte si to, jako že do objektu eventu engine vpustí proud. Pokud bychom neudělali vazbu na akci, nic by se nestalo. Protože jsme ale tento event propojili s akcí, v momentě kdy se aktivuje, pokračuje program (stejně jako by se spojem rozeběhl proud) po vytvořené vazbě dál, do akce.

Hrátky s Unreal Engine Část IV: Skriptujeme s Kismet

Blade & Soul - Korejská MMORPG

Možná se ptáte, proč má na sobě náš event tři černé čtverečky – různě popsané výstupy. Tohle je věc, která by vás mohla trochu zmást, ale přece jen už se trochu známe a vím, že o vás nemusím mít strach. I když jsme nechali vytvořit event typu Touch, ve skutečnosti vznikl souhrnný event, který se bude aktivovat nejen při dotyku (vstupu) do oblasti triggeru, ale i v různých souvisejících případech. Aktivuje se také, například pokud postava daný trigger opustí (untouched). Jakmile si eventy trochu „osaháte“ a pár jich projdete, rychle pochopíte, podle jaké logiky jsou seskupeny.

V našem případě se na eventu vyskytuje Touched, Untouched a Empty. K aktivaci tohoto eventu tedy může dojít více než jedním způsobem a „proud“ z něj pokračuje ven výstupem odpovídajícím způsobu jeho aktivace. Pokud je tento event aktivován, protože hráč vstoupil do oblasti triggeru, program bude z eventu (pokud nějaká vazba dál existuje) pokračovat vazbou vycházející z výstupu označeného Touched. Pokud hráč trigger opustí, aktivuje se ten samý event, ale „proud“ vyjede výstupem Untouched a bude aktivovat další do něj napojené objekty.



 
Komentáře naleznete na konci poslední kapitoly.
92 čtenářů navrhlo autorovi prémii: 46Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.