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.


První díl série Hrátky s Unreal Engine - Část I: První krok do nereálna najdete zde.
Druhý díl Hrátky s Unreal Engine - Část II: Příběh dvou místností najdete zde.
Třetí díl Hrátky s Unreal Engine Část III: Konec modrobílých kachlíků najdete zde.
Čtvrtý díl Hrátky s Unreal Engine Část IV: Skriptujeme s Kismet najdete zde 
Pátý díl Hrátky s Unreal Engine Část V: Trocha pohybu neškodí najdete zde
Šestý díl Hrátky s Unreal Engine VI: Kamera, akce, jedem… najdete zde
Sedmý díl Hrátky s Unreal Engine VII: Klid před bouří najdete zde

Vítejte u čtvrtého dílu našeho seriálu o UDK. Minule jsem slíbil, že si připravíme vlastní interaktivní střelnici, takže toho musíme stihnout opravdu hodně. Dnes si vysvětlíme, co jsou a jak fungují triggery a ponoříme se do hlubin skriptovacího editoru Kismet. Díky tomu budeme moci na konci dílu likvidovat terče a připravíme si půdu pro díl příští, kde naší střelnici dopilujeme k úplné dokonalosti…

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

Jestliže chceme, aby se v naší úrovni začalo dít něco zajímavého, musíme to nejdříve nějak spustit. K tomu slouží například trigger. Trigger (či česky nejblíže spínač) je neviditelný objekt, který umístíte do úrovně buď v editoru, nebo třeba i ze skriptu za běhu programu. Jeho funkce je prostá – kromě jiného detekuje, jestli do něj někdo nebo něco vstoupilo, případně ho naopak opustilo. Úmyslně nepoužívám slovo hráč, protože i když vaše postava bude zřejmě nejčastěji tím, kdo bude nějaký trigger spouštět, tak onen trigger může reagovat v podstatě na libovolný předem nastavený druh objektů. Jakmile zaregistruje, že objekt, který ho zajímá (tedy například hráč) provedl akci, kterou si hlídá (třeba že hráč opustil jeho prostor), může vyvolat jednu nebo celý sled akcí a událostí, které mu nastavíte. Ty se připravují zejména ve schematickém vizuálním skriptovacím editoru Kismet, na který dnes také dojde řada.

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

Takže začneme vytvořením triggeru. Na libovolné místo ve vaší úrovni klikněte pravým tlačítkem a zvolte Add Actor a následně Add Trigger. Seznamte se – ta zelená podivnost (tedy zelená, pokud ji máte označenou) je váš první trigger. Ikona představující spínač vám usnadňuje jeho identifikaci, protože trigger nemá žádný viditelný model. Ten válec kolem ikony je vlastní prostor triggeru – tedy oblast, kterou si “hlídá”. Pokud postava vstoupí do této oblasti, trigger zavolá odpovídající událost (Touched). Když postava opustí tento prostor, zavolá se událost opačná (Untouched). Co se jeho umístění týká, tak nám pro teď postačí vědět, že je dobře ho umísťovat tak, aby se dotýkal povrchu, po kterém se postava pohybuje. Pokud chcete být přesní, klikněte na vybraný trigger pravým tlačítkem a pomocí Transform → Snap To Floor ho nechte přesně dosednout na podlahu. V tomto případě ale není přesnost nijak zvlášť nutná – když ho umístíte manuálně a i třeba trochu zanoříte do podlahy, tak to ničemu nevadí.

S triggerem můžete pohybovat, rotovat s ním – a hlavně ho zvětšovat a zmenšovat. Jak velkou oblast má trigger pokrývat, záleží na tom, čeho s ním chcete dosáhnout. Někdy bude malý (třeba na dlaždici, jejíž sešlápnutí otevře nějaké dveře), jindy může být veliký (pokud chcete například vědět, kdy hráč vstoupil do nějaké rozlehlé oblasti v herním světě). Občas se vám může hodit zase spíš trigger vysoký. Schválně, zkuste ho pomocí transformačního pomocníka udělat vyšší… Hm, moc se to nedaří, co? To proto, že standardně probíhá zvětšování či zmenšování objektů stejně ve všech směrech. Kostka tedy zůstane vždycky kostkou, nikdy ji neprotáhnete do kvádru. Něco podobného by se nám ale právě teď hodilo. Kdo z vás má nějaké zkušenosti s prací s víceméně jakýmkoliv modelovacím nástrojem, tak už ví, o čem je řeč. Musíme přepnout na tzv. neproporcionální změnu velikosti – tedy režim, kdy zvětšování a zmenšování můžeme provádět na vybraných osách. Do tohoto režimu se přepnete tlačítkem v horní liště (ikona před pulldown menu s přepínáním Local / World). Až mód přepnete, zkuste objekt znovu zvětšit – pokud potáhnete za vertikální táhlo transformačního pomocníka, trigger se protáhne pouze do výšky (resp. nahoru a dolů).

Takže trigger je nastaven a umístěn. Když se teď objevíte v místnosti a začnete do něj vbíhat, nebude se nic dít. To pochopitelně proto, že jsme mu ještě neřekli, na co má vlastně reagovat a co má pak udělat. Ještě než to ale provedeme, tak si ukážeme jedno usnadnění. Trigger není při hraní vidět. Z toho důvodu může být občas jeho ladění problematické, protože v určitých případech si nemusíte být jistí, jestli tam třeba vůbec je, nebo kde přesně se nachází. Abychom věděli, že ho tam opravdu máme, můžeme otevřít jeho vlastnosti (pravé tlačítko a Trigger Properties nebo F4) a v části Display odškrtnout Hidden. Při hraní teď uvidíte ikonu na místě jeho středu

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

Co tedy udělat, aby na nás trigger zareagoval? Použijeme zmíněný Kismet. Nechte označený trigger a otevřete editor Kismet ikonou zeleně orámovaného písmene K. Tak to je on, Kismet. Teprve tady začíná ta opravdová zábava při tvorbě hry, ale to uvidíte brzy sami. Ke Kismetu se budeme vracet velmi často, pro teď se ale jen rychle naučíme a vysvětlíme základy jeho používání.



 
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.