Kurz počítačové grafiky
UNREAL ENGINE
Úvod do práce s grafickým vývojovým prostředím Unreal Development Kit Ing. Michal Kašpárek, DiS. Katedra aplikované kybernetiky Fakulta strojní Technická univerzita v Liberci Kurz vznikl za podpory projektu FRVŠ 715/2013. 1
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Grafický engine • Engine = motor – základ každého grafického programu • Software používaný aplikací pro vykreslení grafiky na obrazovku • Provádí renderování obrazu na základě požadavků řídícího programu • Engine může být: • text-to-speech engine, database engine, layout engine, database engine…. 2
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Existující grafické 3D enginy • Komerční • CryENGINE (firma CRYTEK) – 3. generace, Crysis série • Source Engine (firma VALVE) – Half Life 2, Portal, Team Fortress, Counter Stike: Source… • id Tech Engine (firma id Tech) – 10 generací enginu, známých zejména podle titulních představitelů: – Wolfenstein 3D, Doom, Quake a jejich pokračování – V přípravě next-gen id Tech 6, založený na OpenGL
• Unreal Engine (firma Epic) – 3. generace uvolněna i s vývojový prostředím pro nekomerční použití zdarma – V přípravě 4. generace enginu 3
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Existující grafické 3D enginy • Open Source/Free • The Nebula Device (firma Radonlabs) – open source • Ogre3D – open source, multiplatformní, existuje mnoho pluginů, obsáhlá dokumentace díky online komunitě • OpenSceneGraph – open source, OpenGL, multiplatformní, zaměřený zejména na použití v simulacích, modelování a virtuální realitě • Irrlicht – open source, zdarma i pro komerční vývoj, OpenGL i Direct 3D
4
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Využití 3D počítačové grafiky • Během posledních dvou desetiletí zažil obor 3D grafiky masivní nárůst • Zábavní průmysl: Animované filmy, počítačové hry, virtuální realita… • CAD systémy – návrhové 3D i 2D systémy • Vizualizace výsledků výpočtů, simulací, měření… • Rozšířená realita (Augmented reality) • Vylepšení či náhrada lidských smyslů • Lepší pochopení senzomotorického systému člověka 5
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Význam 3D počítačové grafiky • Rychlá, adaptivní a přenosná vizualizace komplexních jevů • Mnohdy výrazně levnější než reálný experiment • Např. vizualizace složité výrobní linky pro účely inovace či optimalizace výroby bez nutnosti zastavení výroby či rizika poškození systému
• Trenažéry a simulátory pro piloty, řidiče, vojáky… • Vědecká vizualizace • S rostoucí komplexitou jevů je přehledná vizualizace často jedinou cestou k přesnému a efektivnímu pochopení a řízení nejenom výrobních strojů a systémů. 6
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Unreal Engine • Při tvorbě vlastního vizualizačního nástroje je možné buď vyvinout kompletní projekt od začátku s použitím knihoven OpenGL či DirectX DirectX,, nebo využít některé z jich hotových vývojových protředí (IDE) nabízených obvykle firmami jako komerční řešení nebo v některých případech jako open source projekt v rámci internetové komunity. • Unreal Engine je moderní a profesionální grafický nástroj s vývojovým prostředím, který byl uvolněn pro nekomerční použití zdarma (včetně IDE a bohatého obsahu) 7
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Unreal Engine/Unreal Development Kit • Současná verze engine 3.0 použita mj. v PC hrách • Gears of War War,, Batman Batman:: Arkham Asylum Asylum,, Bioshock Bioshock,, Borderlands,, Splinter Cell Borderlands
• Trenažérech a simulátorech • NASA Moonbase Alpha Alpha,, HumanSim HumanSim,, Zero Hour: America`s Medic, USA Connected Vehicle Research
• Animacích • Show Lazy Town Town,, software Muvizu Play
8
Kurz počítačové grafiky
UNREAL ENGINE
Vývojové prostředí Unreal Development Kit
9
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Možnosti UDK • • • • • • • • • •
Komplexní správa scény Pokročilá práce se světlem a nasvícením Interaktivní knihovna textur a materiálů Fyzikální engine, kolizní systém AI (umělá inteligence), podpora davu Animační nástroje, práce s kamerou Objektově orientovaný skriptovací jazyk Unreal Script Multiplatformnost Fóra, tutoriály, dokumentace Možnost spuštění scény přímo v editoru 10
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Práce se světlem v UDK
11
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Instalace UDK • Instalátor ke stažení na http://www.unrealengine.com http://www. unrealengine.com// • Nepravidelně se objevují nové verze (obvykle v řádu několika měsíců) • Výuka probíhá na verzi July 2013 UDK Beta • Volte instalaci PSGameUT3Title • Obsahuje kompletní mapy, textury, modely atd. z titulu Unreal Tournament 3
• Po spuštění se zobrazí standardní editor se čtyřmi viewporty, výchozí scénou a Content Browserem 12
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Seznámení s UDK • Ve standardním open dialogu (File (File/Open) /Open) otevřete mapu DMDM-Deck • Objeví se 4 různé varianty zobrazení scény • Seznamte se s jejich vzájemným vztahem (Hlavní 3D zobrazení a 3 viewporty z pohledu jednotlivých os) • Seznamte se s pohybem ve scéně (WASD, Q, E, význam tlačítek myši během pohybu) • Pohyb kamerou stiskem pravého tlačítka myši (RMB) • Změna rychlosti pohybu – scroll kolečko při stisknutém RMB 13
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Zobrazení scény
14
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Interaktivní zobrazení a možnost Play in Viewport • Zvýrazněným tlačítkem nebo kombinací Alt+F8 lze spustit scénu přímo v editoru • Vyberte část scény (statický model) a přemístěte jej tažením myší • Po spuštění se zobrazí chybové hlášení
• Výběr transformačního nástroje • Pro posun, rotaci či transformaci je třeba zvolit odpovídající nástroj z nabídky 15
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky Posunutý statický model v editačním zobrazení
Posunutý statický model po spuštění v editoru. Na obou chybí stíny – je třeba přepočítat světlo ve scéně. 16
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
HW nároky a předem kompilované části scény • Vzhledem k množství výpočtů u náročných scén se předem počítá mnoho statických parametrů, které se za běhu nemění – zejména statická geometrie a statické osvětlení scény. • Mnoho grafiky také není ve scéně momentálně vidět (je zakryta objekty bliž ke kameře) – není tedy potřeba ji počítat a vykreslovat • Problém viditelnosti řeší CSG (Constructive (Constructive Solid Geometry), která využívá metodu rozdělení prostoru pomocí binárního stromu BSP (binary (binary space partitioning partitioning)) • Termíny CSG a BSP bývají často vzájemně zaměňovány 17
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
HW nároky a předem kompilované části scény • Pro využití základních částí scény (místnosti, budovy, schodiště…) je doporučeno využít CGS přímo v editoru UDK • CGS se vytváří pomocí „štětců“ – Brushes • Konvexní 3D objekt, obvykle základní (válec, kvádr, jehlan a jejich kombinace)
• U Geometrie záleží na přesnosti – modely by se měly dotýkat (bez mezer) – jinak mizí výhoda „neprůhlednosti“ pro engine • Rozměry zadávat numericky, vhodné jsou hodnoty mocnin 2x 18
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Tvorba vlastního prostředí v UDK • File/New File/New level level//Blank map • Right click (RMB) na vybraný Brush – Cube • V otevřeném dialogu vlastností vyplňte • • • • •
X = 2048 Y = 4096 Z = 512 Wall thickness = 16 Hollow (dutá)
• Click Build – vytvoří se štětec daných parametrů • Červený obrys zadaného tvaru. Pokud není viditelný, stiskněte klávesu B – ta zobrazí/skryje štětce ve scéně
19
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
20
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Tvorba vlastního prostředí v UDK • V tuto chvíli ještě není přidaná žádná geometrie! • Ta se přidá tlačítkem CSG Add (Ctrl + A) • Je přidána dutá místnost o daných rozměrech v CSG
21
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Tvorba vlastního prostředí v UDK • Možnosti zobrazení scény ve viewportu • 10 možností zobrazení. Základní jsou – Wireframe (drátový model) – Unlit (neosvětleno) – Lit (osvětleno)
• Vyzkoušejte různé varianty zobrazení • Proč při zobrazení „Lit“ nic nevidíme ?
22
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Budiž světlo! • Objekty ve tmě nejsou vidět – je nutné přidat světlo! • Najeďte s kamerou ve 3D viewportu dovnitř místnosti • Se stisknutou klávesou L klikněte a vytvořte bodové světlo • Světlo umístěte do jednoho z rohů místnosti • Ikona žárovky je pouze symbolickým zobrazením světla – po spuštění není vidět. • Dvojklikem na ikonu lze editovat vlastnosti objektu – například barvu světelného zdroje 23
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Tipy pro práci s UDK • Objekty lze kopírovat/duplikovat tažením myši při současném držení klávesy ALT • Skupinu objektů lze označit obdobně, pouze s klávesovou kombinací CTRL+ALT • Klávesou R se přepíná mezi zobrazením poloměru dosahu světel – Light Radius • Ve všech viewportech lze používat různé módy zobrazení, ovšem ve 2D portech je nejpřehlednější Brush Wireframe 24
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Budiž světlo! • Vytvořte síť světel pomocí zmíněných postupů tak, aby byla celá plocha dostatečně osvětlena
25
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Budiž světlo! • Zkuste spustit hru volbou Play in Viewport • Je vidět osvětlená scéna? • Světlo spolu s viditelností má zásadní vliv na HW náročnost dané scény, tedy na množství výpočtů pro grafickou kartu během renderování jednoho frame – proto se statická (tedy neměnná) světla „předpočítají“ a tím se odlehčí celkové náročnosti • Světla dynamická (np. světelný kužel baterky) z principu dopředu spočítat nelze 26
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Build options • Světla, geometrii a další komponenty je třeba zkompilovat – předpočítat • Build Geometry – pokud se změní poloha či konfigurace CSG štětců (Brushes (Brushes)) • Build Lightning – spočítá statické osvětlení scény (v editoru je použitý pouze hrubý náhled světel, který nemusí být ve složitějších scénách akurátní) • Build All – zkompiluje vše 27
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Úkol k procvičení: • Vytvořte dvě místnosti a pomocí vhodně zvoleného štětce a příkazu CSG Substract (vyjmout geometrii/hmotu z prostoru štětce) je propojte průchodem. • Experimentujte se světlem – bude světlo procházející průchodem dostatečně osvětlovat i druhou místnost? • Vyzkoušejte vliv různé barvy světelných zdrojů na dlaždicovou texturu CSG
• Tip: konstrukci scény/objektů pomocí příkazů CSG Add apod. musí obvykle následovat Build Geometry – CGS Add vloží jen jakýsi obrys geometrie. Stejně pokud přemístíte původně vytvořený štětec, zůstane CSG na místě do příštího stisku Build Geometry. 28
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Textury • Geometrii je třeba přiřadit 2D grafickou texturu • Jen textura ovšem nestačí – materiál v reálném životě má i jiné vlastnosti – np np.. Odrazivost • UDK pracuje s Materiály – balíky vlastností povrchu • Refraction, Refraction, Transparency Transparency,, Occlusion Occlusion,, Bump Bump//Normal mapping,, Glow mapping Glow,, Wet Wet…. ….
• UDK obsahuje množství již připravených materiálů • Materiály a další „Assety „Assety““ najdete v Content Browseru 29
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Content Browser • Prohlížeč obsahu = assetů • Assets = modely, zvuky, textury, materiály… • Je možné používat vše, co je v UDK naimportováno v Content Browseru • Importem je nejen zajištěna kompatibilita (např. že zvuk půjde přehrát), ale také ochrana před náhodným smazáním datového souboru (zvuku, obrázku), které by způsobilo pád či nestabilitu výsledné aplikace
• V množství assetů je dobré se orientovat pomocí typů (Materials (Materials,, Static Meshes Meshes,, Textures Textures…) …) a tagů 30
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Konec modrobílých kachlíků • V Content Browseru ve složce UDK Cool Materials • Vyberte materiál dle vaší libosti a vkusu • Přetažením jej aplikujte na stěnu existujícího modelu ve viewportu • Dvojklikem na danou plochu upravte vlastnosti povrchu: Pan (posun) v osách U/V o daný či libovolný počet pixelů Rotation o daný či libovolný počet stupňů Flip U, Flip V – osové zrcadlení textury Scaling – měřítko/lupa dané textury » Je třeba potvrdit tlačítkem Apply – Alignment – je možné měnit zarovnání – – – –
31
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Konec modrobílých kachlíků
32
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Úkol k procvičení: • Vyberte si z přítomných textur a upravte dosavadní prostor dle svého vkusu • Jak se chovají animované materiály v editoru a jak po spuštění? • Bude vidět textura po aplikaci na vnější stěny místnosti? Pokud není vidět, proč? • Jak se změní textury po změně barvy světla? • Dvojklik na ikonu světla PointLight Properties » Light » Light Component » Light Component » Light Color
33
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Import modelů • Pomocí CSG lze tvořit pouze relativně jednoduché modely a scény • Pro detailnější či animované/animovatelné animované/animovatelné modely je nutné využít externí modelovací programy • 3DS MAX, Blender Blender,, Google SketchUp SketchUp,, Wings 3D, …
• Alt+W v editoru skrývá a zobrazuje veškeré statické modely (static meshes meshes)) • Vyzkoušejte v některé z hotových UT úrovní, které části scény jsou tvořeny statickými modely.
34
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Import modelů • CSG nelze animovat či s nimi hýbat • Importované modely musí mít přiřazenou kolizní obálku, jejich osvětlení se počítá za běhu apod. • Importované modely mohou být: • Statické (Static meshes meshes)) – nelze měnit jejich tvar • Skeletální ((Skeletal Skeletal mesh mesh)) – obsahují „kostru“, díky které lze měnit jejich tvar (jako lidské postavy - kostry)
• Modely lze importovat pomocí Content Browseru
35
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Skeletální modely (Skeletal (Skeletal meshes meshes))
36
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Statické modely • Je možné je animovat • Měnit jejich polohu, rotovat, měnit velikost…
• Nelze měnit jejich tvar (na rozdíl od skeletálních modelů) • Import barelu do scény: • Otevřete Content Browser • Do vyhledávání v horním řádku zadejte Barrel • Pokud nic nevidíte, jste ve špatném balíčku » V záložce Packages vlevo označte UDKGame
• Vyberte si jeden z nalezených barelů… 37
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Import barelu
38
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Import barelu • Barel (či jiný objekt) lze přidat do scény pouhým přetažením z Content Browseru • Je přidán jako statický model bez jakékoliv interaktivity – Tak bychom mohli importovat například sochu, ovšem od barelu lze očekávat určitý stupeň interaktivity – například kolize
• V Content Browseru máme označený barel • Kliknutí do scény (na podlahu) pravým tlačítkem se rozbalí kontextové menu »» Add Actor » Add Rigid Body • Rigid Body přidá objekt jako tuhé/neohebné tělo, tedy animovatelnou část scény, jejíž tvar zůstane neměnný 39
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Import barelu
40
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Jeden barel - žádný barel • Je Je--li barel naimportován jako Rigid body • Stisknutím klávesy alt+tažení myši zkopíruje označený objekt
• Nakopírujte ve scéně větší počet barelů • Zkuste je skládat vedle sebe i na sebe do pyramidy
• Změňte typ hry na utgame • Záložka View » World Propeties » Game Type » » Default Game Type = utgame
• Otestujte chování barelu v roli Rigid Body 41
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Jeden barel - žádný barel
42
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
První střelnice • Použitím předdefinovaného typu utgame lze snadno využít existujících funkcí k vytvoření první interaktivní střelnice • Srovnejte rozdíl mezi Rigid Body a Statickým modelem • Statický model vytvoříme pouhým přetažením assetu z Content Browseru do scény
• Pověste několik barelů volně do vzduchu • Kdy se začne počítat fyzika objektů? Ihned při spuštění, nebo později? • Toto chování lze upravit v nastavení barelu v záložce Kactor » Wake On Level Start 43
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Základy skriptu v UDK – editor KISMET • V této kapitole vytvoříme sled událostí, který bude následovat definovanou akci • Jednoduché objekty tak mohou reagovat na akce uživatele a vyvolat více či méně komplexní odezvu • Skriptovací editor KISMET • způsob programování ve stylu vývojových diagramů • Obsahuje množství připravených jednotek • Akci spouští Trigger – neviditelný objekt, spínač
44
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Trigger poprvé • Do vytvořeného prostoru vložte nový trigger » Right click v editoru » Add Actor » Add Trigger
45
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Trigger podruhé • Vytvořenou ikonu neviditelného objektu Trigger lze posouvat, rotovat či zmenšovat transformačními nástroji dle libosti • Nastavte pomocí neproporcionální změny velikosti (Non-uniform Scaling Mode) tvar vysokého válce
• Tip: Pomocí kontextového menu (right click na Trigger) lze přichytit objekt k podlaze » Right click na trigger » Transform » Snap To Floor
• Co se stane nyní po spuštění? Reaguje Trigger na vstup hráče do své oblasti? 46
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Trigger potřetí • Trigger nereaguje, neboť nemá nadefinovaný typ akce, na kterou má reagovat, ani typ reakce • Otevřete editor Kismet tlačítkem na horní liště • Na ploše editoru right click • New Event Using Tigger_0
• Z typů události můžeme vybrat reakci na • Vstup do oblasti Triggeru (Touched) • Zásah (Take damage) • Upozornění na zacílení (Aim Notify) a další
• Pokud nelze vytvořit událost Triggeru, není v editoru označený! 47
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Úvod do práce s grafickým skriptovacím editorem • Vytvořte event typu Touch • Dále vložte: • New Action » » Voice Voice//Announcements » » Play Announcement
• Vyzkoušejte si navigaci a orientaci v Kismetu: • Ctrl+posun myší 48
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
První jednoduchý skript
49
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
První jednoduchý skript • Vytvořte dvě instance Play Announcment • Připojte obě k objektu trigger: • Touched– uživatel vstoupil do oblasti triggeru • Untouched – uživatel opustil oblast triggeru
• Ve vlastnostech oznámení zadejte text • Announcement Text
• V Content Browseru vyberte vhodný zvuk • Zeleným tlačítkem u položky Announcement Sound lze aplikovat zvuk, vybraný v Content Browseru, na aktuální oznámení 50
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
První jednoduchý skript • Po spuštění a následně po vstupu do oblasti spínače se zobrazí, případně přehraje, oznámení • Přehrají se obě oznámení? • Co se stane po opětovném vstupu do triggeru?
• Každý trigger má v nastavení položku Max Trigger Count, která uvádí, kolikrát nejvýše lze spínač aktivovat • Výchozí nastavení této hodnoty je 1 • Při nastavení nuly je limit spuštění neomezen (nekonečné opakování) 51
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Interaktivní střelnice 1 • Již umíme pracovat se statickými modely jako s Rigid Body • Známe základy práce v Kismetu • Pro vytvoření skutečně interaktivní střelnice využijeme oboje k tvorbě terčů, které budou reagovat na zásah • V Content Browseru najděte statický model Cube • Nejedná se o CSG objekt, nýbrž o neotexturovaný Static Mesh • Do scény ji vložte jako » Right click ve scéně » Add Actor » Add InterpActor EngineMeshes.Cube 52
Kurz počítačové grafiky
UNREAL ENGINE
Kurz počítačové grafiky
Kostka není terč! • Vložením modelu jako objekt InterpActor říkáme enginu,, že s tímto objektem lze provádět interakce enginu • Nyní ji je třeba upravit do podoby terče a otexturovat…tedy nic nového • Vzhledem k tomu, že již máme nastaven typ aplikace utgame, který obsahuje základní zbraně z UT3, stačí „pouze“ nastavit reakci na událost zásahu terče. 53
Kurz počítačové grafiky
UNREAL ENGINE
KISMET – skriptování terče • S označeným terčem vytvořte novou událost • New Event Using InterpActor_0 → Take Damage
• Tuto položku editujte: • Obj Comment – zadejte text „zasaženo“ pro potřeby testování • Upravte hodnoty Damage Treshold a Max Trigger Count – Co tyto údaje znamenají?
Proč terč nereaguje na kolizi se střelami? 54
Kurz počítačové grafiky
UNREAL ENGINE
KISMET – skriptování terče • Ve vlastnostech objektu terče je nutné upravit kolizní typ: • InterpActor InterpActor_0 _0 Properties » Collision » Collision Type
• Vyzkoušejte chování různých kolizních typů a zvolte ten nejvhodnější • Vytvořte v Kismetu novou akci a propojte ji s akcí terče: • New Action » Toggle » Toggle Hidden
• Nasměrujte Target Toggle Hidden na proměnnou New Object Var Using InterpActor_0 55
Kurz počítačové grafiky
UNREAL ENGINE
KISMET – záhada mizícího terče
56
Kurz počítačové grafiky
UNREAL ENGINE
KISMET – záhada mizícího terče • Pro tvorbu skriptu mizejícího terče jsou potřeba následující objekty a komponenty: • • • • • •
New Event Using InterpActor_0 → Take Damage New Ac on → Toggle → Toggle Hidden New Object Var Using InterpActor_0 New Action → Actor → Change Collision New Action → Misc → Delay New Variable → Float→ Random Float
• Tak lze vytvořit terč, který po zásahu na náhodnou dobu zmizí a potom se zase objeví. Neviditelný terč neblokuje ani hráče, ani výstřely – kolizní typ je ve skriptu upraven spolu s viditelností. 57
Kurz počítačové grafiky
UNREAL ENGINE
Terče pro pokročilé – animační editor Matinee • Animační nástroj s širokými možnostmi • Propojeno s Kismetem • Nové Matinee (nový klip) se vkládá do Kismetu jako samostatný objekt: • Right click → New Ma nee
• Editor lze otevřít i z hlavního panelu ikonou Matinee (hned vedle ikony Kismet) • V případě více vytvořených klipů je dobré využívat komentářů (Obj Comment) kvůli orientaci! 58
Kurz počítačové grafiky
UNREAL ENGINE
59
Kurz počítačové grafiky
UNREAL ENGINE
Terč v pohybu • V Matinee vytvořte novou prázdnou skupinu • Můžeme ji pojmenovat například pohybTerce • Skupina / Group může obsahovat větší množství stop
• Jedna stopa (track) upravuje změnu zvolených vlastností přiřazeného objektu dle určitého klíče • V našem případě bude měnit polohu terče
• Změna – transformace parametrů – může probíhat lineárně či podle křivkové interpolace apod. • Je nutné mít označený objekt terče během vytváření skupiny (Engine si prolinkuje skupinu s daným objektem) 60
Kurz počítačové grafiky
UNREAL ENGINE
Terč v pohybu • Klíč = bod na časové ose, udává momentální hodnotu • Terč je na začátku (v čase 0) na levé straně místnosti • V čase T je terč na straně opačné • Mezi těmito body/klíči probíhá interpolace polohy
• Right click na skupinu → Add New Movement Track. • Posunem červených trojúhelníků na časové ose lze měnit délku animace • Pro snazší úpravu časové osy je vhodné zapnout funkci Snap ikonou na horním panelu 61
Kurz počítačové grafiky
UNREAL ENGINE
Terč v pohybu
62
Kurz počítačové grafiky
UNREAL ENGINE
Terč v pohybu • S kurzorem na začátku časové osy stiskněte Add Key (přidat klíč) • V řádku Movement se objeví trojúhelník – klíč • V okně editoru se objeví hlášení ADJUST KEY Movement – Translačním nástrojem upravte polohu terče do výchozího stavu – tedy na jednu stranu místnosti
• Přidejte druhý klíč na konec časové osy a v editoru opět upravte polohu - na druhou stranu místnosti • Matinee vytvoří interpolovanou transformační funkci dle zadaných klíčů a časové osy; tuto lze uživatelsky editovat v Unreal Matinee Curve Editor v horní části Matinee. 63
Kurz počítačové grafiky
UNREAL ENGINE
Animace v pohybu – nebo ne? • V Matinee lze tlačítky Play/Play in Reverse přehrát vytvořenou animaci (zde pohyb terče do strany)
• Po spuštění se ale nic neděje – animace nebyla spuštěna v Kismetu! 64
Kurz počítačové grafiky
UNREAL ENGINE
Animace v pohybu – nebo ne? • Vytvořte v Kismetu event Level Loaded • Propojte jej se vstupem Play objektu Matinee • Co se stane po spuštění? Kolikrát animace proběhne? • Pro opakování animace je možné využít vlastnost Reverse a vzájemně propojit vstupy a výstupy objektu Matinee tak, aby terč neustále cykloval ze strany na stranu.
65
Kurz počítačové grafiky
UNREAL ENGINE
Animace v pohybu!
• V tuto chvíli máme pohybující se terč, který po zásahu zmizí a po náhodné době se opět objeví, ovšem díky pohybové animaci opět na jiném místě. 66
Kurz počítačové grafiky
UNREAL ENGINE
Když pohyb do stran nestačí! • Vytvořte nový terč (nebo kopii stávajícího) • Vytvořte animaci, která nový terč po zásahu sklopí na zem, jako terče na střelnici. Po náhodné době se terč opět zvedne. • Několik tipů: • Rotace je pouze další možnost pohybu • Objekty jsou rotovány okolo „Pivotu“ – jakéhosi jejich středu. Terč se ovšem chová jako dveře s panty u podlahy – je tedy třeba přesunout Pivot z geometrického středu do vhodné pozice: – Ve vlastnostech objektu/terče upravte hodnotu Display → PrePivot – Experimentujte se vztahem mezi polohou objektu a pivotem. 67
Kurz počítačové grafiky
UNREAL ENGINE
Závěr • V rámci kurzu byl představen Unreal Development Kit Kit,, jeho možnosti a úvod do práce s UDK • Byly popsány základní principy CSG, rozdíly mezi importovanými modely, práce se světlem a texturami a rozdíl v hardwarové náročnosti výpočtu statických a dynamických vlastností scény • Naučili jsme se pracovat se skriptovacím editorem Kismet a animačním nástrojem Matinee • Postupně byly vytvořeny tři varianty interaktivní střelnice: • Nejprve s využitím vhodně importovaných barelů • Střelnice se statickými mizejícími terči • Střelnice s animovanými terči v pohybu 68
Kurz počítačové grafiky
UNREAL ENGINE
Další informace a zdroje • http://www.unrealengine.com http://www.unrealengine.com//udk udk// • http:// http://udn.epicgames.com/Main/WebHome.html udn.epicgames.com/Main/WebHome.html • V českém a slovenském jazyce existuje několik kurzů a webů s tématikou UDK: • http://pctuning.tyden.cz/multimedia/hry http://pctuning.tyden.cz/multimedia/hry--a-zabava/17565 zabava/17565--hratky hratky--sunreal--engine unreal engine--cast cast--i-prvni prvni--krok krok--do do--nerealna • http://www. http://www.unrealeditor.cz unrealeditor.cz// • http://www. http://www.udk udk--site.net site.net--core.eu core.eu//
• Videotutoriály na youtube youtube:: • http://www. http://www.youtube.com youtube.com//watch watch?v= ?v=TpMA TpMA_DAByo0 _DAByo0 • http:// http://www. www.youtube.com youtube.com//watch watch?v=vVSg3q3gf_Q ?v=vVSg3q3gf_Q • http:// http://www. www.youtube.com youtube.com//watch?v=vgSUbmKOX24 watch?v=vgSUbmKOX24
69