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.


V tuto chvíli máme desku, kterou když zasáhneme, tak zmizí a objeví se po pevně daném čase. To je ale trochu nudné a předvídatelné. Nebylo by možné to upravit tak, aby byl ten čas čekání náhodný? Asi nečekáte, že bych vám teď řekl, že to nejde, že? Způsobů je víc, tak si jeden ukážeme.

Tím způsobem, kterým zadáváme dobu, kterou bude program na výstupu z nějakého objektu čekat, náhodný čas nedocílíme. Existuje však jiná možnost, jak donutit program počkat. Existuje speciální akce, která sama o sobě dělá to, že v sobě běh programu pozdrží a teprve po zadané době pustí dál. Tuhle akci vytvoříme pomocí New Action → Misc → Delay. Tato akce defaultně pozdrží běh programu o 1 vteřinu. Zrušte to naše čekání na výstupním konektoru (zadáním doby čekání 0) a vazbu mezi skrytím a objevením desky „protáhněte“ skrze akci delay – do vstupu Start (tím se delay rozběhne) a z výstupu Finished (ten se aktivuje, když se delay dokončí) do akce zobrazení desky.

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

Když se teď podíváte do vlastností akce Delay, uvidíte, že jsme si zatím moc nepomohli. Délka čekání se opět zadává v sekundách a po možnosti nastavit nějakou náhodnost tu není ani památky. Zapátráme tedy přímo na zobrazení objektu – vidíte ten modrý vstup označený Duration? To je další možnost, jak do akce vložit informaci o tom, jak dlouho má čekat. Jak na to?

Při kliknutí do Kismetu pravým tlačítkem máte v nabídce položku New Variable. Tím vytvoříte novou proměnnou. Protože se čas zadává jako desetinné číslo, pokračujeme do Float a protože chceme, aby bylo náhodné, tak na závěr odklikneme Random Float. Vytvoří se objekt, který představuje náhodně vytvořené desetinné číslo. V jeho vlastnostech pod Min a Max nastavíme minimální a maximální hodnotu čísla (a tedy doby, po kterou zůstane deska skrytá). Zkusíme třeba 2 a 5. Objekt připojíme do vstupu Duration akce Delay – čas uvedený přímo v nastavení akce Delay se teď bude ignorovat.

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

A je to! Deska se už po zásahu objevuje v náhodném intervalu od dvou do pěti vteřin.

Jestli jste dočetli až sem a všechno pochopili, tak si můžete gratulovat, protože jste zvládli základy skriptování v Kismetu. Ta spousta věcí, které jsme se dnes naučili, už vám nepochybně stačí k tomu, abyste si začali se skriptováním hrát. Teď by pro vás neměl být problém udělat objektů víc a pořádně si zastřílet. A aby nezůstalo jen u střílení – co si udělat někde dveře a nechat je zmizet když vstoupíte do nějakého triggeru? To přece zvládnete, ne? Ještě vám do příště poradím jeden důležitý event – pokud budete chtít něco spustit hned při startu úrovně (třeba rovnou něco skrýt nebo zobrazit), využijte pro to event Level Startup, který se zavolá při každém startu úrovně.

V příštím díle dovedeme naší střelnici k dokonalosti. Ukážeme si další zajímavé akce v Kismetu a také jak docílit toho, aby se deska při zásahu položila a jak ji donutit, aby scénou projížděla. Začneme si také počítat a zobrazovat skóre,



Tagy: UDK  Unreal  Unreal Engine  Unreal Development Kit  programování  hry  engine  tutoriál  návod  seriál  


 
Komentáře k článku
RSS
Pouze registrovaní uživatelé mohou přidat komentář!
25.6.2010 09:51:53   77.48.125.xxx 251
moc pěkný článek ...;-)
25.6.2010 16:00:57   90.177.211.xxx 90
Tady mate nejake videotutorialy v CZ jsem az za terenem a meterialy, bohuzel nastrihat to a publikovat trva dele nez to natacet

postaveni mistnosti

cast1:
http://www.youtube.com/watch?v=Sd0vCD4hc84

Cast2:
http://www.youtube.com/watch?v=OxZDRUApp34

Otexturovani mistnosti:
http://www.youtube.com/watch?v=Bf6B9-YT6dE

Content browser:
http://www.youtube.com/watch?v=Bf6B9-YT6dE

Dnes v noci by melo byt dokoncene vysvetleni nasvetleni.

jinak tady kdyby nekdo potreboval poradit

http://terra-empire.ic.cz/

v sekci UDK

Je to na free hostingu dodnes pres rok jsem nebyl schopny to presunou na muj placeny hosting tak mejte ztrpeni kdyby to vypadlo nebo "pretizilo"
25.6.2010 16:12:32   89.190.52.xxx 42
jen tak tál
26.6.2010 03:58:10   85.207.174.xxx 40
Výbornej seriál s tutoriálama k UDK 3.Je mě jasný že ty návody jsou teprv na záčátku UDK,ale chtěl bych se zeptat autora p. A.Ulm a DukeNukemCZ jestli se také dočkáme návodu,jak si rozpohybovat a následně ovládat v UDK vlastní postavu s vlastníma animacema (chůze,skok,atd..) vytvořenou v 3DS MAX. UDK sem se naučil za tu dobu tak nějak ovládat z videotut. z ofic. webu jenže mě dost teď brzdí ta skutečnost že nikde nikdo nepopisuje jak si vytvořit vlastní postavu v UDK všude ukazujou jak ji tam dostanu i s texturama,ale co dál je potřeba,to už nikdo nepíše.Pojem PSK a PSA znám,jenže toto na to bych svou postavu ovládal (podotýkám se svejma animacema) prostě netačí. Pokud mě toto někdo dokáže vysvětlit,pak už není nic,co by mě bránilo v tvorbě vlastní hry.Pokud to někdo zvás umí a ví jak na to nampište mi prosím na e-mail agentcipisek007@seznam.cz nebo ICQ 413-840-366 děkuju moc předem!!!!

PSokud jde o tu premii autorovi měla by bejt možnost příhozu tak min po 100,- a ne po 50 hal.. Pač toto jsou informace k nezaplacení.
26.6.2010 08:36:44   90.177.211.xxx 20
ja tedy animator nejsem ani coder ale co z UT2004 vim tak myslim ze bylo nutne neco udelat v UC (unreal scriptu) pokud jste si vkladaly vlastni postavy ci automobily a predpokladam ze zde to bude to same, me znalosti codovani ale konci u jednoduchych modu na zbrane (zmenit model, pozmenit parametry atd) tvz mutatory to jsem ale delal do UT2004 v UT3 se zajimam ciste o level building + aby jsem si mohl udelat nejake cinematics sekvence nebo sem tam neco jednoducheho nascriptovat v kismetu.

Mozna bych se na to kouknul, vlozit fyzikalni objekt s kostrou z Maya a nechat to reagovat na fyziku neni problem ale u postavy nebo automobilu asi bude nutne neco codit v UC

Kazdopadne delam na jinych projektech (jedne hre) ktera me dost vysiluje a po dokonceni serie na youtube bude nejaka urcita pauza, pak bych se dystak na vytvoreni postavy podival (pri nejhorsim mam to stesti ze mam 3D engine programatora nadosah) tak by nemusel byt problem v codovani (coz u me osobne by bylo)
26.6.2010 15:53:06   90.177.175.xxx 10
Ano pro vlastní postavu je potřeba v development/src/"složkamódu"/classes vytvořit "definici hry" díky (customgame), které si nastavíte pie (play in editor). Uf nevím jak to napsat pořádně, před týdnem jsem nevěděl co je 3dmax a skripty.
No nic, dál je potřeba playercontroller a pawn. Zkus si pogooglit tyhle tři pojmy. jinak s tím characterem v maxu bych ti poradil .. podívej se na animsety v browseru a zapni si zobrazení skeletonu a podle toho se pokus vytvořit vlastní kostru na kterou pak nahodíš svůj char a nebudeš muset řešit animace, sám bych to tak udělal, kdybych na to měl čas. No nic vím, že je to zmatek, ale sám ještě nevím jak udělat ten zatracenej aiming. DukeNukemCZ ten kóder by se nám hodil, nechceš ho přemluvit k nějakejm pár kouskům?
26.6.2010 18:02:58   195.168.109.xxx 10
No tohle je lepší vysvětlení http://forecourse.com/2010/01/beginning-your-game-part-1/, teď máš buďto čas a naučís se uscript nebo si ten kód někde potaháš, což je hlazení kimg čong ila bosou nohou.
27.6.2010 08:43:00   90.178.105.xxx 20
Chaythere napsal:
http://forecourse.com/2010/01/beginning-your-game-part-1/, teď máš buďto čas a naučís se uscript nebo si ten kód někde potaháš, což je hlazení kimg čong ila bosou nohou.


Tenhle blog patří určitě k těm zajímavějším a taky ho doporučuju. Jestli vám jde čistě o import vlastní postavy, doporučil bych prohledat přímo dokumentaci UDK na webu - najdete třeba tohle http://udn.epicgames.com/Three/UT3CustomCharacters.html. Jinak co se skriptování týká - jestli chcete začít už teď a nepřišel jste vůbec do styku s objektově orientovaným programováním (pojmy jako "třída" nebo "dědičnost" jsou vám úplně neznámé), tak bych opravdu doporučil někde nejdřív načíst alespoň jeho úplné základy, protože jinak budete mít opravdu velké problémy udělat správně složitější editaci existujícího skriptu - natož pak napsat sám cokoliv komplexnějšího. K základům OOP toho na internetu najde spoustu i v češtině...
27.6.2010 11:35:20   90.177.175.xxx 11
Jj, děkuju. Postavu mám naimportovanou i se zbraní, ale bohužel toho kódu je moc a času tak málo, třídy jsem si načetl v popiscích přímo v udkáčku, ale teď už jen najít správné kódy pro input, nastavit animaci aimingu, a nějaké drobnosti. Teď jsem se naučil s 3dmaxem ikdyž to chtělo spíš blender, jak to pude s kódem uvidíme.
28.6.2010 20:05:40   85.71.70.xxx 10
Jen dodam par veci. Pokud mas vlastni character, mel by mit stejne animace (a stejne sockety - mista na ktere se prilepuji napr zbrane), jako pouzivaji puvodni charaktery v udk. Pokud ne: potrebujes novy Animtree pro skeletal mesh a umet si to zapojit. Kazda nova animace znamena take akci. Tudiz napsat o jakou akci se jedna (napr vytvorit tridu Myweapon (subclas UTweapon, vytvorit funkci a upravit stavajici)), potom napsat jak tuhle akci ma pouzivat AI (nikdo napr. nechce, aby booti ficeli kolem bez naboju (reload )), priradit klavesy k akci (player controler) a pokud mozno delat subclass (rozes*at si napr. MyPawn - nektere veci nejen v kismetu ti nebudou fungovat). Takze vlastne vlastni character s novymi animacemi asi nechces. Unreal script neni tezky. Nicmene potrebuje cas.
http://tinyurl.com/yl4u8bo - tu mas maly tutorial
28.6.2010 21:25:46   195.168.109.xxx 00
JJ, taky díky, jak říkám to všechno bych měl, jenom prostě není čas se naučit uscript, bohužel tak za rok bych ho uměl tímhle tempem. Mám vlastní scripty jak pro charakter, vlastní pro zbraň i se sockety, jenom teda zarovnání toho všeho je hnus s tím mám největší problém, protože us prostě neumím. Dál mám take script na input v podstatě vše co k tomu potřebuji, takže děkuju za všechny rady, ale asi je to marné hold se budu muset naučit pořádně script, bez toho ani ránu, což mě přivedlo na myšlenku, nenašel by se člověk, podle facebooku tu musí být spousta lidí a někdo musí být scripter , co by udělal nějakou odnož tohoto tématu, ale o uscriptu? Případně 3d modelovacím programu, tam se také určitě dá naučit od profíků hodně. Ale jak říkám, uscript asi to nejtěžší pro člověka co nepřišel s kóděním nějak extra do styku. Jinak jsem si našel něco málo na ofic. fóru, no uvidíme jak to půjde, každopádně děkuju.
30.6.2010 23:53:09   85.71.70.xxx 00
Pokud chcete pomoct, musite byt akcni. Ucit se, ucit se, ucit se. Pokud to nezvladas (klidne casove), zalozit si klidne forum, nebo nekde cesky vlakno ;) Dnes bychom nebyli nikde, bez sdileni informaci
3.7.2010 11:24:42   90.177.175.xxx 00
Vždyť jsem akční jak Arnold, to bych tu jinak nepsal. Jenom jsem podal malej návrh, protože bez znalosti scriptu v udk vlastně tvoříš jenom ut mapu v podstatě. Myslím, že tady je to dobrý místo na hledání kódera, já nemůžu zakládat fóra o věci o které vím prd.
6.7.2010 21:43:54   85.71.70.xxx 00
Pokud nezvladas kodovani, je na case byt dobrym designerem Spravny designer je schopen ztopit svuj navrh a nasledujicich dalsich par dni vytvorit novy ;) Co v UDK jde? Napr. nejaka predelavka starych automatovek. Hodis kameru z vrchu v kismetu, das tam auto ze kteryho muzes vylezt a udelat si napr. levely - projizdis a kosis nepratele, pripadne skaces pres prekazky, kosis bose, atd. Skorpion ma super jizdni model, mas tam i mantu, udelas par barevnych variaci, zjistis si, jak je zapojeny(nikoli v Uscriptu, ale Animtree, atd) a udelas jiny model s totoznou kostrou a zmenis tusim jen konfig (ale tohle nevim jiste - DefaultCharInfo.ini). A voala - mas malou automatovou projizdecku, deatmatch, nebo dovezes "vlajku" v jinym provedeni. Muzes vystoupit z vozidla, udelas tam par opustenych vozitek, nechas to v kabate Mad Maxe a je to v suchu. Problem je v tom, ze kazdy dostane do ruky mocny nastroj a hned megalomansti (neboj, ja take ). Takze se zkrotit a prizpusobit sobe ;)
6.7.2010 22:09:52   85.71.70.xxx 00
Pokud nevite co tvorit, doporucuji http://www.system16.com/ Jedna seo muzejni databazi nekdejsich automatovek. Na boku nahore v seznamu "Museums" je seznam firem, po kliknuti naskoci seznam hardwaru, pro ktery psali hry, po kliknuti vyskociseznam i her s obrazkem. Pak si clovek stahne napr. nejaky emulator starych her - mame32, do toho romku s prislusnou hrou: http://www.romnation.net/ http://www.rom-world.com/dl.php?name=MAME http://www.arcade.estranky.cz/ Na mensi rozjezd a nabrani zkusenosti to bohate staci ;) S velkym skokem si clovek vetsinou rozbije i hodne hubu.
Proc treba nepredelat staryho Froggera? http://www.mamedb.com/game/froggerNekdo by rekl "na mobil s tim", ale nevim zda UDK je na mobilu bez chyb. Tusim ze potrebuje i licenci. Ale to uz je jina otazka, zda unity, apod. Za zadnou cenu nemegalomanstit !!! Spoustu dobrych myslenek ma kazdy. Zpracovat je, umi malokdo ;) Udelat si radsi dopredu prurez hrou (napr. 1 auto, 1character, 1 jednoduchy level) Nezvladnute megalomanstvi, je vetsinou zaklad amaterismu. Vzit papir a delat si ruzny nacrty. Hrat si na kluky kteri si chteji hrat. Nikoli hollywoodskeho producenta Drzim palce s tvorbou. Nakonec, kreativita je tak krasna vec. Zkuste prizpusobit to co mate. Vytvaret to co nemate je casove (a vetsinou i financne) hodne narocne ;)
28.6.2010 20:12:07   85.71.70.xxx 00
Aimink uz tam vlastne je. Jen udelat animaci zoomin, zoomout, idle, zoomfire a pouzivat je ve scriptu weaponclass misto zoomu ve sniper modu (podobne to ma delany napr. crysis). Je to funkce altfire (defaultne jako zoom).
27.6.2010 11:14:38   217.12.62.xxx 20
cawte, skušal som sa zabavat s tým Kismet-om a je to celkom sranda, ale jedna vec mi tam nefunguje :/
Napr.: do miestnosti si dám Scorpiona (Content Browser--->v hornej lište Actor Classes--->v zozname najdem Navigation point---->UDKVehicleFactory---->UTVehicleFactory---->UTVehicleFactory_Scorpion)
Ďalej si do hry vložím Trigger a idem do Kismetu s označeným Triggerom. Tam vytvorím prislušný event a k nej akciu Self Destruct (New action---> Vehicle---->Self Destruct). Z Eventu vediem spoj z Touched do In v akcii Self Destruct + určím objekt, ktory sa má zničit, teda Scorpion (označím si Scorpiona a v kismete dám New Object Var Using UTVehicleFactory_Scorpion_0) a spojím ho s Target v akcii a tadaaaa nejde to a za boha neviem príst na to, prečo??? píše že tam chýba ešte nejaký spoj, ale ktorý, to neviem ...neviete niektooo?
28.6.2010 20:27:35   85.71.70.xxx 00
Absolutne nechapu, jak v kismetu zapojit Camerashake... Spinac funguje, vypisuje koment na obrazovku, ale proste ne a ne a ne. Kdyz prahraji stejnym zpusobem animaci, tak to jde. Ale je to skoda. Stejne tak look At. Ach jo. Takze nezbyva nez matinee.
29.6.2010 18:01:45   82.100.3.xxx 00
Moc se mi líbil další díl, ale stále nemůžu přijít na to, jak aktivovat např. světlo.

Když nejsem v triggeru, tak chci, aby bylo vypnuté a když jsem v něm, tak ho chci zapnout. Zkoušel jsem to s Toggle hiden, ale stále světlo svítí.

Díky za rady.
1.7.2010 00:07:37   85.71.70.xxx 00
Svetlo nechces skryvat. Svetlo se vypina. Takze zapojit do toogle / turn off. Skryva se napr. karta, kterou vezmes na otevreni dveri ze stolu ;)
1.7.2010 10:10:35   82.100.3.xxx 00
Díky, ale stejně mi to nejde.
Prostě vložím trigger - dám událost touch, poté akci toggle, nastavím off a on (touch, untouch), target Light_0 např. a nic, stále to svítí, na obrazovce mi to napíše Warning - Light rejected.
Nemusí se světlo vložit jako nějaký Actor, nebo nějaké nastavení?

Také se mi nedaří rozject kameru, např. že pokud vstoupím do triggeru, tak mi kamara zaostří na nějaký předmět, ale nic se neděje. Je to akce Look At?
2.7.2010 09:28:02   85.71.70.xxx 00
Musi to byt svetlo ktere ma v nazvu toogleable - napr Pointlighttoogleable. Pokud se bude pohybovat, musi byt Moveable.

Mas na to tady tutorial http://udn.epicgames.com/Three/VideoTutorials.html
3dbuzz / lightning / zip obsahuje: 03_-_Lighting__004_Toggleable_Movable.mp4

Dole je link na Titlte. Nechte si to od nekoho prelozit (pokud neovladate eng), budete toho umet mnohem vic. Vysvetluje tam toho opravdu hodne.
2.7.2010 21:10:55   82.100.3.xxx 00
Díky moc za radu, už to funguje. Na tutoriály se určitě podívám.
6.7.2010 21:32:59   85.71.70.xxx 00
Rozhodne nemas za co ;)
7.7.2010 19:35:50   84.16.61.xxx 00
chcel by som sa spýtať či sa dá v Kismete určiť za cieľ udalosti aj samotnú hernú postavu a ak áno tak ako a ešte či sa niekde dajú zohnať assety z iných hier a ak áno ako ich importovať do UDK
18.7.2010 21:24:41   213.220.216.xxx 00
Díky za super článek. Mám bohužel problém s tímhle postupem. Nevím proč, ale i když dodržím "výrobní postup" při Buildu mi to hodí jako jednu z chyb toto: Package_0 StaticMeshActor_1 Kismet object Package_0.TheWorldersistentLevel.Main_Sequence.SeqAct_ToggleHidden_2 will fail to modify Actor referenced through a linked variable: Actor is static Díky čemuž se potom po výstřelu nic nestane a objekt/terč nezmizí. Nemáte někdo nápad co s tím?
26.7.2010 20:25:42   178.40.92.xxx 00
AHOJ. Zakladám CZ/SK web o UDK. Je tam zoznam návodov a fórum a iné veci. Chcel by som aby táto stránka bola takou základňou CZ/SK UDK komunity. http://www.unreal-dev-kit.webs.com/

Odkaz si skopírujte ručne kedže blbne.
16.4.2011 17:51:56   78.99.41.xxx 00
po dlhšom čase som konečne spustil moj web o UDK http://www.udk-site.tym.sk

Redakce si vyhrazuje právo odstranit neslušné a nevhodné příspěvky. Případné vyhrady na diskuze(zavináč)pctuning.cz

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.