Hlavní stránka Multimédia Hry a zábava Hrátky s Unreal Engine VIII: Můj dům, můj hrad
Hrátky s Unreal Engine VIII: Můj dům, můj hrad
autor: Aleš Ulm , publikováno 15.10.2010
Hrátky s Unreal Engine VIII: Můj dům, můj hrad

Minulý značně teoretický díl našeho seriálu zakončil zběžné seznámení se základními funkcemi UDK editoru a jeho součástí. Dneska už začneme pracovat na konkrétním projektu a jako základ vystavíme našemu virtuálnímu hrdinovi útulný domov. Vylepšíme ho vlastními texturami a také pěkně osvětlíme. Příště ho pak vypustíme i dále.


Jak už bylo řečeno v úvodu, počínaje tímto dílem, najdete zde vždy kratší část věnovanou skriptování. Dnes to bude pořád ještě trochu zahřívací kolo – což ale neznamená další teoretizování, právě naopak.

Shrňme si rychle co o skriptování víme a trochu to rozšiřme:

Zásadní prvek jsou třídy objektů jako je například Light, InterpActor, StaticMesh atp. Třída je vlastně vzor, který říká, jaký takový objekt je, jaké jsou jeho vlastnosti a co se s ním dá dělat. Třídy jsou uloženy v různých podadresářích adresáře Development – každá třída je přitom soubor s koncovkou uc. Jméno toho souboru je stejné jako název této třídy. Proto, kdybyste si dali tu práci, našli byste tu InterpActor.uc, Light.uc, PointLightMova­ble.uc atp. Třídy existují v určitém stromu dědičnosti – PointLight rozšiřuje třídu Light, PointLightMovable rozšiřuje třídu PointLight. Když otevřete soubor se třídou hned v úvodu uvidíte, z čeho tato třída vychází.

Problém samozřejmě je, že při stovkách tříd (nenechte se vystrašit – i až budete dělat pokročilé věci, budete pracovat s jejich nepatrným zlomkem) je dost těžké si představit, jak vlastně ten celý strom vypadá. A v tu chvíli přichází na pomoc (jak už dle fóra někteří uživatelé vědí) mimo jiné i prográmek UnCodex, stáhnutelný zde. Ten je schopný načíst celou strukturu tříd v UDK a přehledně vám je zobrazit.

Hrátky s Unreal Engine VIII: Můj dům, můj hrad

Využití tohoto programu není nezbytné, ale pro pokročilejší práci je neocenitelné.

Když budu mluvit o skriptování, budu tím myslet vytváření nových nebo editaci existujících tříd. To v praxi znamená vytvářet a editovat právě tyto uc soubory, jejichž návaznost UnCodeX zobrazuje. Protože se jedná o běžné textové soubory, stačí k jejich editaci standardní Notepad z Windows, ale věřte mi, že práce s ním vás neskutečně zpomalí. Pokud jste to ještě neudělali, stáhněte si libovolný pokročilejší textový editor nahrazující notepad. Sám používám k práci Notepad++. Netroufám si posuzovat jeho kvality vůči jemu podobným, ale mně zcela vyhovuje.

Tak a teď, abychom alespoň vlastního udělali, vytvoříme vlastní třídu. Bude to sice jen kopie třídy již existující, ale to nevadí – ukážeme si tak, jak funguje kompilace a kde se naše třída pak objeví.

Nalezněte soubor PointLightMova­ble.uc. Udělejte jeho kopii na stejném umístění a nazvěte ji PointLightMova­bleTest.uc. Tento soubor nyní otevřete. Název třídy je zadán vždy v souboru (předchází slovu extends, takže vy tam teď uvidíte původní PointLightMovable) a soubor se musí vždy jmenovat stejně jako třída. Pokud byste na to zapoměli, engine vám to neodbytně připomene. Takže v našem souboru zaměňte PointLightMovable extends… za PointLightMova­bleTest extends… a soubor uložte. Zdrojové soubory UDK jsou standardně read-only, takže vaše kopie zřejmě také – tuto ochranu musíte nejprve odstranit (buď přímo ve vašem textovém editoru, pokud to umožňuje, nebo z Exploreru, Total Commanderu nebo něčeho podobného).

Když teď zkusíte spustit editor, stane se následující: engine projde automaticky adresáře se třídami, objeví novou, vámi vytvořenou a upozorní vás, že zkompilované skripty jsou zastaralé a je nutné je znovu skript zkompilovat (zjednodušeně: převést z formy textu do svého interního formátu). Potvrďte, že chcete provést kompilaci. Objeví se textová konzole a proběhne kompilace. K tomu je třeba si říct pár drobností:

  • rekompilaci je nutné udělat jen tehdy, když dojde ke změně ve skriptech a v tomto případě bude trvat déle, než naše pozdější snažení z důvodu, ke kterému se teprve dostaneme
  • pokud kompilace skončí úspěchem – to poznáte ze závěrečné (v případě úspěchu zelené, jinak červené) hlášky Compilationi succeeded – konzoli zavřete a zkuste znovu spustit editor. Teď to již půjde.
  • pokud se v konzoli objeví chyba, zkuste z ní odhadnout, v čem je problém – s největší pravděpodobností tam bude uveden soubor a číslo řádku, kde k chybě došlo.
  • pokud se vám nepodaří chybu najít a odstranit (což by snad, vzhledem k tomu, že jsme zeditovali jediné slovo, nemělo nastat), inkriminovaný soubor prostě smažte a tím se vrátíte k původnímu stavu.

Protože jsme vytvořili duplikát třídy PointLightMovable, můžete ji používat úplně stejně, jako originál. V seznamu tříd ji také naleznete na příslušném místě.

Hrátky s Unreal Engine VIII: Můj dům, můj hrad

Takže teď už zřejmě chápete, co konkrétně taková třída je, jak se edituje a kde jí můžeme hledat. To je dost pro to, abychom se příště podívali na zoubek herní kameře…



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ář!
15.10.2010 12:00:49   89.103.241.xxx 35
Hele kde si ten engine mužu stáhnout???Teď dělám v cryenginu 2 a na ten neni moc návodu a napište kde si to mužu stahnout díky.
15.10.2010 12:32:58   90.178.125.xxx 82
Nejnovější verze je na http://udk.com/download. V úvodu článku doporučuji zvolna projít odkazy na předchozí díly.
15.10.2010 19:00:12   62.240.178.xxx 52
Opravte si prosím hrubku hned v úvodním odstavci...
16.10.2010 06:24:52   94.113.113.xxx 40
Fossil007 napsal:
Opravte si prosím hrubku hned v úvodním odstavci...


Úvodní odstavec není mým dílem, každopádně ale díky za upozornění . Napíšu redakci, aby to někdo opravil.
16.10.2010 15:37:38   82.100.3.xxx 71
Díky za další díl, těším se na další a doufám, že už konečně něco vytvoříme, jako např. ty louče - oheň atp. Přímo particle efekty musíme vytvořit v externím SW?

Mám nějaké dotazy:

Když jsem si vytvořil obydlí, tak PointLight, které je uvnitř, vydává světlo i ven, to platí i pro nějaké stíny. Jak tohle redukovat? Myslel jsem si, že přes CSG světlo neprojde.

Jak vytvořit událost, abych po použití nějakého objektu spustil animaci/akci?
Vzal jsem InterpActor a použil Event-USE, ale na objektu se mi ikonka použití nezobrazí.

Díky za rady a těším se na další výtvory. Jdu na 3Ds Max.
16.4.2011 17:52:58   78.99.41.xxx 00
po dlhšom čase som konečne spustil moj web o UDK http://www.udk-site.tym.sk
13.1.2012 19:34:18   88.100.236.xxx 10
Prosím Vás, stáhl jsem si nejnovější (december 2011) UDK přímo na http://udk.com/download
Ovšem, když jsem postupoval podle vašeho návodu, tak jsem se zastavil u střílení do barelu. Zjistil jsem totiž, že v content browseru žádný barel nemám. Už od začátku mi přišlo divné, že tam mám jen 44 struktur (tags). Znamená to, že jsem si stáhl nějakou LITE verzi?
Je možnost stáhnout si někde plnou zadarmo? Nebo stáhnout si knihovnu těch struktur? Děkuji předem za odpověď.
Jinak samozřejmě děkuji za tyto návody!!

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

83 čtenářů navrhlo autorovi prémii: 41.5Kč 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.