• No results found

}w!"#$%&'()+,-./012345<ya

N/A
N/A
Protected

Academic year: 2021

Share "}w!"#$%&'()+,-./012345<ya"

Copied!
54
0
0

Loading.... (view fulltext now)

Full text

(1)

Masarykova univerzita Fakulta informatiky

}w !"#$%&'()+,-./012345<yA|

Stereo adventúra

s využitím programu Adobe Flash

Bakalárska práca

Branislav Paulis

(2)

Kópia listu zadania bakalárskej práce

(3)

Prehlásenie

Prehlasujem, že táto bakalárska práca je mojím pôvodným autorským die-lom, ktoré som vypracoval samostatne. Všetky zdroje, pramene a literatúru, ktoré som pri vypracovaní používal alebo z nich čerpal, v práci riadne citu-jem s uvedením úplného odkazu na príslušný zdroj.

V Brne dňa 19. mája 2011 Branislav Paulis

(4)

Poďakovanie

Niekoľkými slovami by som chcel teraz poďakovať predovšetkým svojmu ve-dúcemu Mgr. Lukášovi Kalčokovi za jeho čas, rady a pripomienky, ktoré mi počas vedenia práce veľmi ochotne poskytoval. Veľké ďakujem rád vy-slovujem aj svojej milujúcej rodine a priateľom, ktorí ma podporovali počas všetkých dní môjho štúdia. Vďaka a česť patrí tým, ktorí mi závidia a hlavne aj tým, ktorým zasa závidím ja. Bez vás všetkých by nebola motivácia.

(5)

Zhrnutie

Cieľom tejto bakalárskej práce je vytvoriť krátku hru zo žánru adventúra vy-užívajúcu pasívnu stereoprojekciu. Hra je spracovaná ako 2D aplikácia, ktorá však vďaka vykresleniu trojrozmernej grafiky a stereoskopickému zobrazeniu vytvára ilúziu priestoru s treťou dimenziou. Implementovaná je pomocou ná-stroja Adobe Flash a jej programová čast demonštruje predovšetkým algo-ritmus na hľadanie cesty. Táto adventúra sa zameriava na interakciu človeka s počítačom v prostredí simulovanej virtuálnej reality a je ovládaná pomo-cou herných ovládačov Wiimote a Kinect. V texte práca oboznamuje čitatela s herným žánrom adventúra, s princípmi stereoskopie, popisuje tvorbu gra-fiky a programovej implementácie výslednej hry.

Abstract

The goal of this bachelor thesis is to create a short game of adventure genre that uses passive stereo projection. The game is 2D application with illusion of three-dimensional space because of 3D graphic rendering and stereoscopic representation. It is implemented using Adobe Flash and its program part demonstrates especially pathfinding algorithm. This adventure is centred on human-computer interaction in the simulated virtual environment and is controlled with the appropriate gaming devices such as Wiimote and Kinect. Thesis text acquaints the reader with adventure game genre, principles of stereoscopy, describes a graphics creation and a programming implementa-tion of the game development process.

(6)

Kľúčové slová

adventúra, stereo hra, Stroj #257, Adobe Flash, ActionScript 3.0, 3ds Max, 3D grafika, rendering, animácia charakteru, Biped, stereoskopia, pasívna stereoprojekcia, virtuálna realita, Human-Computer Interaction, Wiimote, Kinect, hľadanie cesty, plánovanie cesty, A* algoritmus

Keywords

adventure game, stereo game, Adobe Flash, ActionScript 3.0, 3ds Max, 3D graphics, rendering, character animation, Biped, stereoscopy, passive stereo projection, virtual reality, Human-Computer Interaction, Wiimote, Kinect, pathfinding, path planning, A* algorithm

(7)

Obsah

1 Úvod . . . 1

2 Herný žáner adventúra. . . 3

2.1 Vznik žánru . . . 4

2.2 Typy adventúr . . . 5

3 Stereoskopia a virtuálna realita . . . 8

3.1 Kľúče vnímania priestoru a hĺbky . . . 8

3.2 Princíp stereoskopického zobrazenia . . . 10

3.3 Metódy stereoprojekcie. . . 12

3.4 Interakcia v prostredí virtuálnej reality . . . 14

3.5 Laboratórium interakcie človeka s počítačom . . . 16

4 Návrh hry a tvorba grafiky . . . 18

4.1 Nástroj Adobe○R Flash○R CS4 Professional . . . . 18

4.2 Námet, scenár a grafický štýl . . . 19

4.3 Tvorba a animácia charakteru . . . 20

4.4 Tvorba scén . . . 23

5 Implementácia . . . 26

5.1 Dekompozícia aplikácie . . . 27

5.2 Generovanie priestorového zvuku . . . 29

5.3 Pohyb postavy a hľadanie cesty . . . 31

5.4 Rozširovanie aplikácie a jej ďalšia použiteľnosť . . . 35

6 Záver . . . 38

Literatúra . . . 40

Zoznam obrázkov . . . 43

Zoznam zdrojových kódov. . . 44

A Spustenie a ovládanie hry . . . 45

B Propagačný plagát hry . . . 46

(8)

Kapitola 1

Úvod

Počítačové hry sú dnes považované za druh zábavy, ktorý má človeku na-pomáhať zbaviť sa stresu a slúžiť ako určitá forma oddychu. Neustále sa však vedú dohady, ako by ideálne mala takáto hra vyzerať, najmä čo sa týka príbehu. Kým jedni zastávajú názor, že kvalitná zápletka a príbeh je niečo, čo človek hľadá len v knihách a filmoch, na druhej strane sú aj ľudia, ktorí absenciu silnejšieho príbehu výrazne odmietajú. Vzbudenie emócií je pre mnohých neoddeliteľnou súčasťou každého audiovizuálneho zážitku, či už u diváka, alebo hráča. Samozrejme aj hry majú svoje žánre, a tak vzniká široké spektrum rôznych typov hier určených pre daného konzumenta.

Táto bakalárska práca si kladie za cieľ vytvoriť krátku logickú hru s príbe-hom zo žánru adventúra. Má poslúžiť ako prezentačný materiál pre Labora-tórium interakcie človeka s počítačom (HCI Laboratory) sídliace na Fakulte informatiky Masarykovej univerzity. Z toho pramení snaha vniesť do klasickej 2D (prípadne možno hovoriť až o 2.5Dkap.2.2) adventúry tretí rozmer využi-tím v dnešnej dobe čoraz populárnejšej stereoprojekcie nachádzajúcej sa tiež práve v tomto laboratóriu. Nakoľko žiadny zo známych vývojových nástro-jov a herných enginov určených špeciálne na tvorbu adventúr momentálne nedisponuje podobnými stereoskopickými možnosťami, praktická časť práce zahŕňa okrem samotnej hry aj implementáciu základného herného jadra, na ktorom bola hra postavená.

Písomná časť bakalárskej práce je členená do niekoľkých kapitol. V prvej časti textu sa zaoberám herným žánrom adventúra, jeho históriou, logic-kými hádankami a ostatnými prvkami, ktorými je špecifický. Ďalej v práci uvádzam druhy adventúr, či už po stránke atmosférickej alebo z hľadiska grafického a technického spracovania. Nasledujúca obsiahlejšia časť je veno-vaná stereoskopickému zobrazovaniu – vnímaniu hĺbky človekom, princípom a metódam stereoprojekcie. S tým je úzko spätý pojem virtuálnej reality, o ktorej tiež pojednáva tretia kapitola. Nakoniec sa v tejto kapitole venujem technickému vybaveniu HCI laboratória, a to konkrétne pasívnej stereopro-jekcii i ovládačom Wiimote a Kinect. V ďalšej kapitole krátko spomínam program Adobe Flash CS4 Professional a prečo som sa rozhodol pre

(9)

imple-1. Úvod mentáciu hry práve pomocou tohto programového nástroja. Nasleduje popis ako vznikala už samotná hra, najmä jej grafická časť, čo zahŕňa modelova-nie, „oživenie“ hernej postavy, vykresľovanie herných scén a ich vzájomná spätosť.

V poslednej časti textu práce popisujem vývoj a implementáciu. Väčšiu pozornosť venujem jednému z najdôležitejších prvkov programu, a to pohybu hráča po scéne a jeho hľadaní si cesty pomocouA* algoritmu. Súčasťou tejto kapitoly je nakoniec i návod, ako možno aplikáciu rozšíriť a vyvinuté jadro ďalej použiť. V závere si dovoľujem zhrnúť niekoľko postrehov z procesu vývoja. Rovnako záver pojednáva o možnostiach, akými by sa mohol uberať prípadný ďalší vývoj herného jadra. Výsledkom práce je tradičná adventúra obohatená o stereo efekt, ktorá sa skladá z neveľkého počtu len 6 obrazoviek (herných lokácií). Napriek tomu však ponúka hráčovi priestor na rozvíjanie logického myslenia pomocou interakcie s rôznymi predmetmi a hernú dobu závislú na jeho počínaní.

(10)

Kapitola 2

Herný žáner adventúra

Adventúra je herný žáner dosahujúci svoju najväčšiu popularitu na prelome osemdesiatych a deväťdesiatych rokov 20. storočia. Založený je predovšetkým na narácii, čiže rozprávaní. Adventúry sa preto často vyznačujú hlbším prí-behom s prepracovanou zápletkou. Hráč v podobe hlavného hrdinu je súčas-ťou deja, väčšinou striktne lineárneho, kde sú mu predkladané rôzne logické úlohy, skladačky a iné hádanky, ktorých vyriešenie je nutnou podmienkou ďalšieho postupu v hre. Ďalším charakteristickými prvkami sú napríklad in-terakcia s NPC1 či inventár hlavného hrdinu, do ktorého sú počas hrania

zbierané rôzne predmety, ktoré je potrebné na príslušnom mieste v hre opäť použiť. Iba samotný pohyb hráča medzi jednotlivými lokáciami je v niekto-rých prípadoch dopĺňaný rôznymi medzihrami, no klasická adventúra dodr-žujúca konvencie predpísané žánrom neobsahuje žiadne, prípadne minimum akčných prvkov. Adventúra je z veľkej časti deterministická a prvky náhody sa v nej vyskytujú len zriedka. Často môže byť definovaná pomocou troch typických elementov.

Tri základné charakteristiky adventúry [11]:Rozprávanie

Dejová línia je pre adventúru nevyhnutná. Kým v akčnej hre typu

first-person shootermôže byť motiváciou k postupu v hre zneškodnenie

čo najväčšieho množstva nepriateľov, u adventúry to je predovšetkým postupné odhaľovanie príbehu, čo núti hráča prejsť hru do konca.

Hádanky

Logické hádanky, hlavolamy či skladačky (z angl. puzzles) môžu sú-visieť s príbehom viac alebo menej. Používajú sa také, čo sú do deja zakomponované sofistikovanejšie, ako napríklad kombinovanie určitých predmetov v inventári, komunikácia s postavami. Na druhej strane

1. Non-player character (z angl.) je postava v hre, ktorá nie je ovládaná hráčom, ale počítačom za účelom interakcie a poskytovania rôznych služieb alebo úloh.

(11)

2. Herný žáner adventúra v adventúrach nájdeme aj hlavolamy bez výraznejšej súvislosti s kon-textom, čo sú minihry podobné šachu alebo piškôrkam.

Preskúmavanie

Hráč hľadá na obrazovke klikateľné plochy, nazývané tiežhotspoty, re-prezentované objektami, ktoré je možné preskúmať alebo s nimi mani-pulovať, či miestami ovplyvňujúcimi pohyb hrdinu. Preto sú adventúry častokrát označované prívlastkom „point-’n-click“.

2.1 Vznik žánru

Názov „adventúry“ (z angl. Adventure games) siaha do úplných počiatkov žánru, do roku 1977. Prvá hra z tohto žánru niesla názov Colossal Cave

Adventure a jej autormi boli William Crowther a Don Woods. Jednalo sa

o textovú adventúru napísanú v jazyku Fortran, zloženú približne zo 700 riadkov zdrojového kódu a asi rovnakého počtu riadkov textových dát [12]. C L I G H T L A M P 9 4 0 4 IF(( I P L A C E ( 2 ) . NE . J ). AND .( I P L A C E ( 2 ) . NE . -1)) G O T O 5 2 0 0 P R O P ( 2 ) = 1 I D A R K =0 C A L L S P E A K ( 3 9 ) G O T O 2 0 1 1 C L A M P OFF 9 4 0 6 IF(( I P L A C E ( 2 ) . NE . J ). AND .( I P L A C E ( 2 ) . NE . -1)) G O T O 5 2 0 0 P R O P ( 2 ) = 0 C A L L S P E A K ( 4 0 ) G O T O 2 0 1 1 ... 39 Y O U R L A M P IS NOW ON . 40 Y O U R L A M P IS NOW OFF . 75 ANYWAY , N O T H I N G E X C I T I N G H A P P E N S .

77 Y O U R B O T T L E IS E M P T Y AND THE G R O U N D IS WET .

Kód 2.1: Ukážka pôvodných zdrojových kódov Colossal Cave Adventure v jazyku Fortran [13]

Hráčovi bol poskytnutý popis prostredia, v ktorom sa nachádza, a pred-metov ležiacich v jeho okolí. Zadávaním jednoduchých textových príkazov typu „otvor dvere“ či „vezmi kľúče“ potom hru ovládal. Takto nastával po-cit čítania literárneho diela, v ktorom je navyše možné interaktívne

(12)

ovplyv-2. Herný žáner adventúra ňovať jeho dianie. Preto to boli práve textové adventúry, nazývané aj

interaktívne fikcie, ktoré sa zakrátko stali veľmi populárne.

2.2 Typy adventúr

S príchodom grafických rozhraní bola do textových adventúr postupne vná-šaná prvá grafika. Tým, že jednotlivé lokácie už nebolo nutné podrobne opi-sovať v niekoľkých vetách, prestávala sa využívať fantázia a predstavivosť hráča v takom veľkom rozsahu. No na druhej strane grafické spracovanie hry prinieslo do jej hrateľnosti úplne nový rozmer. Súčasné obrovské možnosti grafického spracovania i vyspelá možnosť vizuálnej komunikácie a vyjadre-nia spôsobili diferenciu žánru. Kategorizovať adventúry môžme podľa prí-behu a celkovej atmosféry napríklad na investigatívne detektívky, hororové, fantastické, humorne ladené či s komiksovým alebo detským spracovaním. Väčšina atmosférických prvkov je však dosiahnutá práve prostredníctvom grafiky. Nasledujúce rozdelenie adventúrnych hier sa týka ich technického a grafického spracovania.

Rozdelenie adventúr podľa grafického spracovania [11]:2D ručne kreslená

Technika najpoužívanejšia začiatkom deväťdesiatych rokov. Jednotlivé scény, predmety a postavy sú kreslené rukou na papier a následne digitalizované pomocou skeneru, alebo kreslené na počítači priamo, napr. pomocou grafického tabletu. Tento grafický štýl možno považo-vať za najosobitejší, čo sa týka autorstva. Typickými predstaviteľmi sú veľmi populárne sérieBroken Sword,Runaway, humorom nabitýPolda

z dielne českých vývojárov alebo kúzelnéMachinarium. ∙ 2D predrenderovaná

Scény vznikajú vytvorením za pomoci modelovacieho softvéru na tvorbu trojrozmernej grafiky. Po pridaní textúr a svetiel sú následne vykres-ľené do rovinných obrázkov.

2.5D

Lokácie v hre sú rovnako predrenderované do dvojrozmerných „obra-zoviek“ ako v prípade 2D adventúr. Herný charakter je však 3D model vykresľovaný v reálnom čase. Hybridný názov 2.5D teda vznikol ako pomyselná hranica medzi hrami využívajúcimi dve alebo tri dimen-zie. V súčasnosti asi najpopulárnejší typ adventúr. Patria sem tituly fantazíjnej sérieSyberia i hororový Posel smrti.

(13)

2. Herný žáner adventúra ∙ 3D real-time

Do poslednej kategórie zaraďujeme niekoľko málo hier, ktoré skutočne využívajú 3D prostredie. Ako hrdina, tak aj lokácie sú vykresľované v reálnom čase, čo umožňuje rôzne zmeny pohľadov a natočenia ka-mery. Príkladom sú novšie epizódy Broken Sword. Avšak diela ako

Silent Hill, ktoré napriek tomu, že v istej miere využívajú prvky

ad-ventúry, zaraďujeme do iných žánrov (akčná adventúra alebo survival

horror).

Obr. 2.1: Ukážky z adventúr: a) Broken Sword 2, b) Runaway, c) Syberia 2, d) Posel Smrti 2 [11]

Prevažné množstvo dnešných adventúr je spracovaných z pohľadu tretej osoby, nazývané sú 3rd person, kde je celú dobu charakter viditeľný na ob-razovke. Pomernú časť však tvoria aj hry z pohľadu prvej osoby, inak 1st

person. Tu sa hráč dokáže jednoduchšie zosobniť s úlohou hlavného hrdinu.

V prvom prípade však neustály vizuálny kontakt s hernou postavou uceluje jej identitu a je jedným z nosných prvkov dopĺňajúcich atmosféru v hre.

(14)

2. Herný žáner adventúra Bohužiaľ, je nutné konštatovať, že pojmom „umierajúci žáner“ sa za-čína adventúra dnes označovať čoraz častejšie. Či tomu tak skutočne je, alebo ide len o výroky konzumentov počítačových hier, čo uprednostňujú nenáročnú zábavu v hre pred akousi mentálnou výzvou prameniacou z ad-ventúry, je polemizujúce. V dnešnej dobe, kedy sa trh s hrami zameriava predovšetkým už na herné konzole, adventúra bude musieť prejsť moderni-záciou a do určitej miery sa prispôsobiť súčasným trendom. Faktom zostáva, že stále sa každoročne na trhu objavuje niekoľko kvalitných adventúrnych titulov. Rovnako môžeme sledovať pomerne bohaté zastúpenie tohto žánru na poli voľne šíriteľných freeware hier. Veľkému množstvu takto vzniknutých amatérskych adventúr z radov fanúšikov vďačí aj existencia niekoľkých voľne dostupných herných enginov a vývojových nástrojov určených predovšetkým na tvorbu tohto typu hier. Medzi najznámejšie patrí zahraničné Adventure

(15)

Kapitola 3

Stereoskopia a virtuálna realita

Vnímanie priestoru u človeka je popri sluchovom ústrojenstve uskutočňované predovšetkým pomocou zraku. Pocit priestorového videnia vzniká v mozgu ako dôsledok zlúčenia a vyhodnotenia dvoch obrazov získaných z pravého a ľavého oka, ktoré sú premietané na sietnici. Vďaka vzdialenosti očí (v prie-mere 6,3 cm) sú jednotlivé obrazy získavané z mierne odlišného ulha v ho-rizontálnom smere. Toto má za následok spojenie dvoch obrazov v určitej vzdialenosti od pozorovateľa. Hĺbkový vnem zaisťujú vodítka monokulárne, pokiaľ platia iba pre jedno samostatné oko a binokulárne, ak sú potrebné obe oči. Z hľadiska vrodených či získaných schopností človeka je možné rozdeliť tieto kľúče na fyziologické a psychologické [15,16].

3.1 Kľúče vnímania priestoru a hĺbky

Vo všeobecnosti za psychologické vodítka označujeme väčšinu monokulár-nych kľúčov. Sú to poznatky o vlastnostiach okolitého sveta, ktoré človek získava zo skúseností počas raných fáz života. Oproti tomu časť našej schop-nosti vnímať hĺbku je vrodená a vypovedajú o nej fyziologické vodítka [14].

Psychologické kľúče:Svetlo a tieň

Je jedným zo základných kľúčov pri určovaní tvaru (reliéfu) a hĺbky. Jasné a kontrastné predmety sa zdajú byť bližšie ako predmety tmavé a upadnuté v chladných šedotónnych odtieňoch. Umiestnenie objektu v priestore môže byť zrejmé aj z tieňu, ktorý vrhá. Pomocou veľkosti a smeru vrhnutého tieňa rozlišujeme tiež vzájomnú polohu jednotlivých objektov [14].

Relatívna veľkosť

Pramení z jednoduchej vedomosti, že vzdialenejšie predmety vidíme menšie ako tie, ktoré sa nachádzajú v našej blízkosti. Spôsobuje to

(16)

3. Stereoskopia a virtuálna realita veľkosť obrazu premietaného na sietnici a znalosť rozmerov pozorova-ných predmetov. Napríklad ak vidíme dve ľudské tváre a jedna z nich je viditeľne väčšia, apriórne vieme usúdiť, že tento človek je vzhľadom k menšej tvári v popredí.

Perspektíva

Vzduch je nedokonale priehľadné prostredie, preto rozlišujeme tzv. von-kajšiu perspektívu, kde na svetelné podmienky vplývajú malé čias-točky v atmosfére. Príliš vzdialené objekty, čo je typické pre otvo-renú krajinu, sú rozostrené a málo kontrastné [14]. Na druhej strane sa stretneme s pojmom lineárna perspektíva, ktorej základom sú zákony stredového premietania, čiže zužovanie sa smerom k horizontu. Objekty sa na horizonte zbiehajú do jedného bodu (takzvaného úbež-níka).

Gradient textúry

Označuje hustotu skreslenia textúry rastúcu so vzdialenosťou pred-metu. Textúra vzdialeného povrchu je menej výrazná a „chudobnejšia“ na detaily. Tento efekt je najvýraznejšie pozorovateľný na pravidelných textúrach s geometrickými vzormi, ktoré sa v dôsledku lineárnej per-spektívy postupne zmenšujú [20].

Prekrývanie

Alebo tiežinterpozícia sa ukazuje ako veľmi výrazné vodítko pri určo-vaní relatívnej hĺbky objektov v obraze. Ak predmet disponuje neúpl-ným prekrytým obrysom, logicky sa jeho umiestnenie javí za predme-tom, ktorý ho prekrýva.

Fyziologické kľúče:Akomodácia

Prispôsobenie, teda zmena optickej mohutnosti šošovky. Svalové vlákna nachádzajúce sa v oku umožňujú zaostrovať na rôznu vzdialenosť, a tým vytvárať ostrý obraz práve na sietnici [14].

Pohybová paralaxa

Fyziologické vodítko, ktoré je spolu s akomodáciou monokulárne, vy-chádza z rýchlosti pohybu obrazu objektu po sietnici. Vzdialené pred-mety sa zdajú byť pomalšie. Preto pohybová paralaxa výrazne posil-ňuje priestorový efekt na scéne.

(17)

3. Stereoskopia a virtuálna realita

Obr. 3.1: Vplyv psychologických vodítok na vnímanie hĺbky (lineárna perspektíva, gradient textúry, relatívna veľkosť, svetlo a tieň)

Konvergencia

Ľudské oči sú schopné konvergovať, teda stáčať sa k sebe, za účelom premietania obrazu do stredu sietnic oboch očí. Pri pohľade na príliš vzdialené objekty sú optické osi prakticky rovnobežné. Pri simulácii 3D obrazu je nevyhnutné vyvarovať sa divergencii a súčasne i prehnanej konvergencii očí, inak sa obraz v mozgu nikdy nespojí.

Binokulárna disparita

Jedno z najvýraznejších vodítok pre priestorové videnie v stredných dĺžkach. Kvôli vzdialenosti očí (retinálnej disparite), každé z nich vy-tvorí vodorovne mierne posunutý obraz. Výsledný predmet potom leží na tzv.horopteri, čo je miesto, kde sa spájajú obrazy s rovnakou hĺb-kou. Teoreticky má tvar kruhu, no u každého človeka sa môže toto vnímanie mierne líšiť [14,16,20].

3.2 Princíp stereoskopického zobrazenia

Slovo „stereoskopia“ má pôvod v gréckych výrazoch stereos (pevný, pries-torový) a skopien (vidieť, pozerať sa). Jej princípy sú známe už viac ako 150 rokov [14]. V súčasnosti však nastáva obrovský rozmach 3D technológií najmä vo filmovom priemysle, čo je vlastne aplikácia dobre známych prin-cípov stereoskopie. Tak ako sa v ľudskom mozgu spájajú dva plošné obrazy očami pozorovaného skutočného sveta do trojrozmernej „ilúzie“, zhotovia sa záznamy z dvoch susediacich kamier. Existuje niekoľko typov nastavenia ka-mier. Prvé možné nastavenie popisujú uhlovo zbiehavé kamery (toed-in). Ďalším typom súparalelnékamery, kedy sú ich optické osi vzájomne

(18)

rovno-3. Stereoskopia a virtuálna realita bežné. Tu musíme rozlíšiť symetrický a asymetrický FOV1. Ak sú zorné polia kamier reprezentované symetrickými kužeľmi, dochádza k strate obrazovej informácie na bočných stranách týchto kužeľov. Preto sa v praxi častejšie využívajú snímacie zariadenia so schopnosťou asymetrického pohľadového kužeľa [20]. Táto technika zhotovovania stereoskopického záznamu neohýba vnímanie priestoru ako je to v prípade konvergujúcich kamier. Toed-in ka-mery disponujú ďalšou nevýhodou v podobe mierneho rozostupu obrazov aj vo zvislom smere (vertikálna disparita), čo je pre naše oko nežiaduce [17,7].

Obr. 3.2: Konvergujúce (vľavo) a asynchrónne paralelné kamery (vpravo) Binokulárnu disparitu, čiže horizontálnu vzdialenosť medzi súhlasnými bodmi v obrazoch pre pravé a ľavé oko, označujeme pojmom paralaxa. Ak sú tieto dva obrazy na premietacom zariadení totožné, teda nie sú vzájomne posunuté, hovoríme, že paralaxa jenulová. V tomto prípade sa jedná o

takz-vanú rovinu konvergencie. Pokiaľ rozdiel medzi obrazmi nadobúda kladnú

hodnotu, čo znamená, že obraz pre pravé oko je napravo a pre ľavé naľavo, k ich spojeniu dochádza až za plátnom. Tento jav popisuje termínpozitívna paralaxa. Opačným prípadom je negatívna paralaxa, ak sa optické osi prekrížia ešte pred samotnou premietacou rovinou [14,15,20].

Negatívna paralaxa sa s obľubou využíva práve vo filmovom priemysle, kedy má divák pocit, že predmet vystupuje pred plátno a približuje sa k nemu (efekt pop-up) [7]. Najčastejšie sa jedná o scény, kde daný objekt letí, pre-tože vtedy ho je možné jednoducho izolovať od ostatných predmetov v scéne. Naopak pri pozitívnej paralaxe je potrebné dávať veľký pozor, aby sa jej

1. Field of view(z angl.), v preklade „zorné pole“, je časť priestoru, ktorú je oko alebo iné optické zariadenie schopné zachytiť, a z ktorej doň vstupujú svetelné lúče.

(19)

3. Stereoskopia a virtuálna realita hodnota rovnala maximálne interokulárnej vzdialenosti, teda rozostupu očí. Tento jav je typický pre pozadie a krajinu, kedy zaostrujeme na vzdiale-nosť nekonečno. Ak vzdialevzdiale-nosť týchto 7 cm prekročíme, dôjde k divergencii očí –divergentná paralaxa. Túto skutočnosť je treba zohľadňovať hlavne pri väčších projekciách, kedy hrá významnú úlohu veľkosť projekčnej roviny a vzdialenosť diváka od nej. Ale aj samotná prílišná separácia obrazov spô-sobuje, že predmety sa pre diváka dostávajú do tzv. nekomfortných zón, čo môže spôsobiť bolesti v očiach a stratu trojrozmerného vnemu [7,15].

Obr. 3.3: Znázornenie komfortných oblastí a predmetov s negatívnou (hore) i pozitívnou paralaxou (dole)

3.3 Metódy stereoprojekcie

Na prezeranie stereoskopického páru sa využívajú rôzne technológie. Od pri-mitívnejších možností využívajúcich prekážky pred očami (tzv. metóda pre-krížených očí), až po sofistikované rozdelenie dvojice obrazov. V histórii sa objavovali rôzne zariadenia, napríklad masovo rozšírený meoskop2. Za ob-dobné, no samozrejme technologicky oveľa vyspelejšie, možno považovať i za-riadenia typuhead-mounted displays. Ide o stereoskopické displeje upevnené na hlave, teda pár miniatúrnych LCD obrazoviek je súčasťou „okuliarov“ alebo „helmy“, čím je zabezpečené premietanie obrazu len do korešpon-dujúceho oka. Tieto pomôcky však priamo pracujú s vyvolaním 3D efektu

2. Zariadenie s vymeniteľnými kotúčmi rôznych rozprávkových motívov či fotografií. Hľa-dením do dvoch okulárov (podobných ďalekohľadu) proti svetlu sa človeku „vo vnútri“ meoskopu spájal trojrozmerný obraz zachytený na dvojici malých políčok priesvitnej fólie.

(20)

3. Stereoskopia a virtuálna realita súčasne len u jedného pozorovateľa. Na stereoskopickú projekciu pre väčšiu skupinu divákov sa dnes používa viacero metód.

Základné typy stereoskopických projekcií:Anaglyf

Dlho známa a dnes už pomerne zastaraná metóda rozdeľuje obrazy po-mocou dvoch navzájom komplementárnych farebných filtrov. V jednom zábere sa odstráni farebná informácia tvorená prvou farbou, v druhom zábere sa odstráni farebná informácia tvorená druhou farbou a obrazy sa preložia jeden cez druhý. Následne sa na prezeranie takéhoto obrazu použijú okuliare s rovnakými farebnými filtrami [15]. Najčastejšie sa jedná o kombináciu farieb červená a zelenomodrá (red-cyan), zriedkavo sa používajú aj modro-žltá (blue-yellow) či zeleno-purpurová (

green-magenta). Výhodou tejto metódy je dostupnosť a nízke náklady.

Pou-žiteľná je ako pri všetkých typoch obrazoviek (CRT, LCD) či plátne, tak i v tlačenej podobe [20]. Obrovský úbytok farebnej informácie však v dnešnej dobe popri pokročilejších metódach veľmi neprospieva k po-užiteľnosti anaglyfu. Využitím farebných filtrov môžeme v podstate pl-nohodnotne vnímať iba obraz monochromatický, pretože plne farebný obraz je výrazne skreslený.

Obr. 3.4: Princíp filtrovania farieb pri použití red-cyan anaglyfu

Aktívna stereoprojekcia

Ďalšia metóda vnímania stereo obrazu využíva striedavé zakrývanie pravého a ľavého oka. Nutná je preto dvojnásobná zobrazovacia frek-vencia (minimálne 100 Hz) a špeciálne aktívne okuliare synchronizo-vané so zobrazovacím zariadením. Používajú sa priehľadné tekuté kryš-tály, ktoré sa dostávajú do nepriehľadného stavu ak je k nim privedené elektrické napätie. Aj v zatemnenom stave však prepustia určité malé množstvo svetla, čo má za následok nepriaznivý efekt rušivých tie-ňov známy ako ghosting. V dôsledku použitých technológií je celkový úbytok svetla veľmi výrazný – až 80 % [14]. Aktívne 3D okuliare sú väčšinou synchronizované bezdrôtovo, teda aj vybavené vlastným na-pájaním, preto majú vyššiu hmotnosť a sú robustnejšie ako pri iných

(21)

3. Stereoskopia a virtuálna realita technológiach. Tento druh projekcie je kvôli drahším okuliarom vhodný najmä do domácností pre menší počet divákov.

Pasívna stereoprojekcia

Prístup založený na polarizácii svetla vychádza z jeho duálnej povahy, konkrétne z elektromagnetických vĺn a ich opačnej orientácie. Pola-rizácia, čiže uhol natočenia vĺn, je rozdielny o 90∘, čo je základným predpokladom oddelenia obrazu pre pravé a ľavé oko [15]. Okrem po-larizácielineárnej (zvislá/vodorovná) je možné použiťkruhovú (pravo-točivá/ľavotočivá) [14]. K zachyteniu polarizovaného svetla je potrebné plátno so špeciálnou povrchovou úpravou a polarizačné filtre rovnako na projektoroch i okuliaroch pozorovateľa. Dané sklá s filtrami sú po-tom súčasťou 3D okuliarov, ktoré sú ľahšie a bez akejkoľvek elektro-niky, teda pasívne. Pomerne rozsiahly pozorovací uhol, plná farebnosť obrazu a nenákladné okuliare predurčujú používať túto stereoskopickú metódu na veľké projekcie. Tento princíp je využívaný tiež v sieti ste-reoskopických kín IMAX 3D [4].

Autostereoskopia

Jedná sa o technologicky najnovší spôsob reprezentácie stereo obrazu. Jeho výnimočnosť spočíva v absencii použitia okuliarov. Hĺbkový vnem vzniká pri pohľade na display voľným okom vďaka bariérovej maske, ktorá je preložená pred monitorom v tesnej blízkosti. Táto maska v po-dobe vertikálnych pásov povoľuje každému oku vidieť príslušný obraz a naopak blokovať obraz určený pre druhé oko (parallax-barrier). Na podobnom princípe funguje využitie lentikulárnych šošoviek, kde sa na separáciu obrazu využívajú zákony lomu svetla (lenticular lenses). Oba prípady však trpia zásadným nedostatkom, že pozorovateľ je li-mitovaný vzdialenosťou a predovšetkým pozorovacím uhlom. Preto sú takéto autostreoskopické obrazovky vhodné pre osobné použitie, čomu nasvedčuje aj dnešné využívanie tejto technológie v mobilných telefó-noch či ručných herných konzolách (napr. Nintendo 3DS) [18,15]. 3.4 Interakcia v prostredí virtuálnej reality

Virtuálna realita (virtual reality, VR) je spôsob zobrazenia zložitých infor-mácií, manipulácie a interakcie človeka s nimi prostredníctvom počítača. Spôsob dialógu človeka s počítačom sa nazýva rozhranie (z angl.interface) a virtuálna realita je len najnovšia z celej dlhej rady týchto rozhraní [5]. Cie-ľom systémov pre VR je poskytnúť užívateľovi či skupine spolupracujúcich užívateľov ilúziu, že sa nachádzajú v umelom prostredí, nazývanom virtuálny

(22)

3. Stereoskopia a virtuálna realita svet, scéna či virtuálne prostredie (virtual environment). Pocit prítomnosti užívateľa v tomto prostredí sa dosahuje ovplyvňovaním ľudských zmyslov, najčastejšie zraku a sluchu, prípadne hmatu i rovnováhy [4]. Stereo efekt, či už obrazový alebo zvukový, umocňuje pocit skutočnosti a „existencie“ vir-tuálneho sveta. V súčasnosti by preto každý správny virtuálny systém mal disponovať 3D prostredím, kde môže užívateľ plne vnímať aj jeho hĺbku. Druhy aplikácií virtuálnej reality:

Pohlcujúca

Immersive virtual reality je väčšinou spojená so špeciálnymi

technic-kými zariadeniami, ktoré majú v čo najväčšej miere odrezať užívateľa od vnímania reálneho sveta tak, že je úplne ponorený do sveta virtuál-neho [4]. Tu práve nachádzajú uplatnenie zobrazovacie zariadenia ako už spomínanéhead-mounted displeje a podobne. Pohlcujúca virtuálna realita nachádza najväčšie uplatnenie ako súčasť rôznych trenažérov a simulátorov.

Rozširujúca

Augmented VRkombinuje informácie z reálneho sveta s prvkami

virtu-álnymi. Súčasťou takéhoto systému býva kamera reagujúca na pohyb užívateľa a polopriepustné okuliare [4]. Videný obraz skutočnosti je doplnený o digitálne objekty existujúce jedine vo virtuálnom priestore, a tak vzniká virtuálny systém, ktorého uplatnenie nájdeme napríklad vo vojenskom, či leteckom priemysle. Súčasnosť zavádza použitie aug-mented reality aj v mobilných zariadeniach (operačný systém Android) a navigačných systémoch.

Jednoduchá

Posledným typom virtuálnej reality je takzvanádesktopalebolow-end. Ide o skupinu aplikácií nevyužívajúcich žiadne špeciálne technické za-riadenia. K ilúzii práce a pohybu vo virtuálnom prostredí postačuje obyčajná obrazovka a bežné ovládacie zariadenia ako myš a kláves-nica. Využitie jednoduchej VR je preto skutočne rozmanité – od zábavy a hier, cez vzdelanie až po profesionálne aplikácie [4].

Joe Gradecki v „The Virtual Reality Programmer’s Kit“ definuje virtu-álnu realitu ako technológiu, ktorá umožňuje užívateľovi prezerať si virtuálny svet z akéhokoľvek bodu a uhlu [6]. Zároveň mu dovoľuje interagovať s pred-metmi nachádzajúcimi sa v tomto prostredí. Interakcia je charakterizovaná dvoma typmi manipulačných techník. Prvá je takzvaná egocentrická me-tafora, kde človek nachádzajúci sa vo VE sa na scénu pozerá z vlastných očí.

(23)

3. Stereoskopia a virtuálna realita S objektmi manipuluje pomocou „virtuálnej ruky“ alebo „ukazovátka“, na-príklad metódou vrhania lúča (ray casting). Na druhej straneexocentrická metafora pracuje so zmenšeným virtuálnym svetom, kde má užívateľ ná-hľad nad celým prostredím, a tým je mu ponúknutá v podstate rýchlejšia a prehľadnejšia forma interakcie [8]. Aby v podobnom exocentrickom systéme virtuálnej reality užívateľ nestratil prehľad nad svojím umiestením v ňom, je reprezentovaný virtuálnou postavou –avatarom. Pri navigácii alebo po-hybe vo virtuálnom svete sa uplatňuje tzv. 6DOF3. Postava avatara tu ale často nebýva viditeľná, lebo jeho obraz nie je dôležitý. Naopak v systémoch pre viacužíveteľskú VR sa avatary stretávajú, a preto je potrebné im dodať skutočný vzhľad. Pre potreby sociálneho chovania sa avatar doplňuje ani-máciami vyjadrenými pomocou telesných gest, ktorými dáva najavo svoje pocity (súhlas, nesúhlas, nezáujem či nadšenie) [4].

3.5 Laboratórium interakcie človeka s počítačom

Laboratórium interakcie človeka s počítačom (Human-Computer Interaction

Laboratory) bolo založené s cieľom riešiť projekty z oblasti počítačovej

gra-fiky. V súčasnej dobe sa výskum zameriava na rozhrania slúžiace na komu-nikáciu človeka s počítačom, haptické rozhrania, systémy virtuálnej reality a geometrické vizualizácie. Laboratórium sídli na Fakulte informatiky Ma-sarykovej univerzity v Brne a jeho vedúcim je doc. Ing. Jiří Sochor, CSc. [9]. V súčasnosti sa v toto výskumnom laboratóriu nachádza niekoľko hardvé-rových technológií, využívaných pre rôzne typy projektov. Nasleduje krátky popis vybraných zariadení.

Technické vybavenie HCI laboratória:Stereoskopická projekcia

Jej súčasťou sú projektory s filtrami, ktoré prepúšťajú lineárne polari-zované svetlo. Toto svetlo dopadá na plátno so špeciálnou povrchovou úpravou, ktoré ho nedepolarizuje. Pozorovateľ je schopný na plátne po nasadení polarizačných okuliarov vnímať stereoskopický obraz. Jedná sa o pasívnu projekciukap.3.3, ktorá je doplnená sústavou reprodukto-rov s možnosťou prehrávať priestoreprodukto-rový 5.1 zvuk.

Herné ovládače Wii Remote

Ovládač prezývaný Wiimote je zariadenie primárne určené pre herné

3. Six degrees of freedom (z angl.), v preklade „6 stupňov voľnosti“, je systém po-hybu v trojdimenzionálnom priestore, kde okrem posúvania sa v troch smeroch pozdĺž súradnicových osí (3DOF) sú možné aj tri rotačné pohyby.

(24)

3. Stereoskopia a virtuálna realita

Obr. 3.5: Schéma pasívnej stereoskopickej projekcie v HCI laboratóriu

konzole Nintendo Wii. Je možné ho však použiť aj bez tejto konzoly, a to pripojením zariadenia k počítaču pomocou bezdrôtovej

technoló-gie Bluetooth. Okrem niekoľkých tlačidiel je vybavený i

akceleromet-rom na zachytenie natočenia ovládača. Polohu „Wiimotu“ je možné snímať aj prídavným zariadenímSensor Bar vyžarujúcim infračervené lúče, ktoré dokáže ovládač spracovať, a tým vyhodnotiť svoju polohu v priestore. Priamou komunikáciou a „odpočúvaním“ je možné na-mapovať funkcie tohto zariadenia na myš a klávesy. Slúži na to voľne dostupná utilitaGlovPIE [24].

Zariadenie Kinect

V súčasnosti novinka na hernom trhu, ktorá predstavuje novú generá-ciu ovládania konzolových hier. Zariadenie na snímanie pohybu človeka je doplnok ku konzole XBox 360 od spoločnosti Microsoft. K tomuto snímaniu nie je potrebné použiť žiadny špeciálny odev či reflexné body,

aleKinect si vystačí s dvoma kamerami. KlasickáRGBkamera

spolu-pracuje sinfrared, ktorá je doplnená oCMOS senzor, a tak je schopná presne určiť polohu hráča. Po pripojení k počítaču je ovládanie vlast-ným telom možné preniesť tiež na funkcie klasických vstupných zaria-dení – klávesnice a myši. Toto je možné vykonať použitím prídavného programuFAAST[25].

(25)

Kapitola 4

Návrh hry a tvorba grafiky

Praktická časť tejto bakalárskej práce spočívala vo vytvorení kratšej logic-kej hry – stereo adventúry. Snahou bolo držať sa konvencií predpísaných týmto herným žánrom a vytvoriť tak tradičnú point-’n-clickkap.2 adven-túru. Charakteristická je pohľadom z tretej osoby a svojím 2D spracovaním, ktoré však výrazne využíva 3D priestorového dojmu. Počas tvorby grafiky a z menšej časti i pri samotnej programovej implementácii boli okrem iného využité práve poznatky o stereoskopickom zobrazení popísané v predošlej kapitole. Táto časť práce zhrnie proces vytvárania grafiky od samotných návrhov a skíc herných scén i postavy, cez modelovanie, až po finálny ren-dering. Do tejto etapy vývoja zahrňujeme aj import vykreslených obrázkov do grafickej knižnice projektu v nástroji Adobe Flash. Najskôr si však túto technológiu krátko predstavíme.

4.1 Nástroj Adobe○R

Flash○R

CS4 Professional

Adobe Flash CS4 Professional je priemyselným štandardom v obore vytvá-rania multimediálnych aplikácií, pôsobivého interaktívneho obsahu a virtu-álnych prvkov prezentovaných konzistentne na osobných počítačoch, mobil-ných zariadeniach i displejoch rôznych veľkostí a rozlíšení [10]. Flash bol v minulosti vyvíjaný spoločnosťou Macromedia, momentálne je vo vlast-níctve Adobe Systems. Za uplynulé obdobie vyšlo pod Adobe už niekoľko verzií, od CS3 až po dnešnú CS5.5. Zameranie tohto vývojového nástroja sa počas jeho existencie prispôsobovalo súčasným trendom, a tak dnes pracuje so širokou škálou grafických, programovacích a komunikačných prostriedkov. Vo svojich počiatkoch bol používaný výlučne ako nástroj na tvorbu animácie s použitím vektorovej grafiky, no v súčasnosti je základom pokročilých we-bových aplikácií s bohatým obsahom (rich internet application, RIA). Flash obsahuje objektovo orientovaný jazykActionScript, v posledných verziách už v poradí jeho tretiu generáciu s označením3.0. Vychádza zo štandardov

EC-MAScript, do ktorých patrí aj známy dialektJavaScript. Dnes popri Adobe

(26)

4. Návrh hry a tvorba grafiky ActionScript 3.0predstavuje pomerne známu syntax, ktorá sa príliš ne-líši od jazykov podobného typu, ako napríklad Java alebo C++. Podobne ako v jazyku Java je základnou triedouObject, z ktorého dedia vlastnosti všetky ostatné triedy. Ďalej základné aplikačné programové rozhranie (application

programming interface, API) jazyku ActionScript disponuje dôležitými

ob-jektmi na ovládanie animácie. Za zmienku stojí spomenúťMovieClip, čo je priamy potomok zobraziteľného objektu Sprite obohatený o prácu s časo-vou osou. Touto triedou sú popísané všetky objekty vytvorené v grafickej knižnici prostredia Adobe Flash, v ktorom je ActionScript priamo integro-vaný. Nástroj Flash sa ukázal ako vhodné programové prostredie na reali-záciu riešeného projektu, pretože jeho použitie značne zjednodušuje tvorbu interaktívnej desktopovej či webovej aplikácie. Podpora bitmapovej grafiky, rôznych zvukových formátov a iných prvkov, ktoré boli pre vývoj hry nevy-hnutné, sú vo „flashi“ tiež samozrejmosťou.

4.2 Námet, scenár a grafický štýl

Vytvorená hra má slúžiť na prezentáciu možností HCI laboratória, vrá-tane stereoprojekčnej jednotky a herných ovládačov. Ďalej demonštruje pre-dovšetkým algoritmus hľadania cesty, ktorý je neodmysliteľnou súčasťou skoro každej hry. V neposlednom rade sa zameriava na použitie apliká-cií 3ds Max a Adobe Flash v kontexte prípravy interaktívneho materiálu. Všetky tieto ciele sa spájajú v snahe o vytvorenie stereo adventúry s názvom STROJ #257. Adventúra dostala názov podľa „mena“ hlavného hrdinu, čo je humanoidný robot1. Prostredie, do ktorého je hra zasadená, zahŕňa prevažne prírodné exteriéry, no použitá je aj jedna interiérová lokácia. To všetko formou, aby boli pokiaľ možno v čo najväčšej miere využité stereo-skopické možnosti a z nich prameniaci hĺbkový dojem scén bol pri hraní hry dobre pozorovateľný.

Námet hry je úzko spätý s podobou herného charakteru a jednotlivých lo-kácií. Jeho zámerom je dejovo prepojiť tieto dva zdanlivo odlišné elementy – hlavná postava je robotická a prostredie prirodzené. Rozsah samotnej adven-túry na niekoľko pár herných obrazoviek je však nedostačujúci na rozvinutie hlbšej zápletky, ktorá je pre tento druh hier špecifická. Jednoduchý príbeh je hráčovi v skromnej forme predložený pri štarte hry, len za účelom moti-vovať ho. K hre bol napísaný technický scenár, ktorý absentuje na dialógy,

1. Robot vykazujúci antropomorfné črty, t.j. svojím vzhľadom a konštrukciou pripomína-júci ľudské telo. Typický napríklad aj bipedálnou (dvojnohou) chôdzou.

(27)

4. Návrh hry a tvorba grafiky pretože sa v diele nevyskytujú NPCkap.2 postavy. Takisto hlavný charakter je nemý a pri komunikácii s hráčom používa len gestá.

Stroj #257 je hra spracovaná ako 2D adventúra, ktorá vďaka použi-tiu modelovacieho software Autodesk○R 3ds Max○R 2010 pripomína zá-stupcu zo skupiny 2.5D adventúr. Vzhľadom k tomu, že nezachytáva žiadny fantazijný či rozprávkový svet, nedisponuje ani žiadnym osobitým grafickým stvárnením. Všetky objekty sa snaží zachytiť reálne, ako sú známe človeku z jeho okolia (stromy, studňa a pod.). Podrobnejší popis ako vznikala grafika je rozdelený do dvoch častí v nasledujúcich podkapitolách.

4.3 Tvorba a animácia charakteru

Za ovládateľnú postavu v hre bol vybraný robot. V počiatočnej fáze je roz-umné najprv si predstavovaný charakter načrtnúť na papier vo forme skíc označovaných tiež pojmomartworky. Vhodné sú rôzne pózy postavy a obrazy na jednotlivých priemetniach, teda nárys, pôdorys, bokorys. Tieto náčrty nám neskôr pomôžu pri príprave referenčných materiálov, podľa ktorých bu-deme modelovať. Podobným spôsobom sa postupuje i pri vytváraní technic-kých modelov za pomociblueprintov. Rovnako ako herné scény, aj charakter vznikal v prostredí 3ds Max. Jeho telo sa skladá zo základných geometric-kých tvarov, ktoré sú z väčšej časti prevedené na objekty typu NURBS2. V tomto programe im zodpovedá modifikátor delenia a vyhladzovania povr-chu typuTurboSmooth alebo MeshSmooth, ktorý je napríklad ekvivalentom objektu HyperNURBS v prostredí Cinema 4D. Táto technika bola použitá, aby výsledný model pôsobil plastickejším dojmom.

Kĺby postavy tvoria gule, kosti končatín sú zasa tvorené valcami, prí-padne zrezanými kužeľmi. Na jej trupe je umiestnený displej, ktorý je v ne-utrálnom stave „vypnutý“. Opticky je tvorený z malých LED diód, ktoré sa rozsvecujú v závislosti na charakterom vyjadrovanom geste. Má 3 stavy zná-zorňujúce súhlas a úspech (zelená fajka), nesúhlas a neúspech (červený krí-žik), nerozhodnosť a pochyby (žltý otáznik). V súvislosti s displejom sa mení aj výraz tváre príslušným pokrivením úst. Po vymodelovaní robota nasledo-valo aplikovanie textúr. Tomuto procesu tesne predchádza „rozbalenie“ zloži-tejších častí modelu, typicky pomocou modifikátoruUnwrap UVW. Tým

za-2. Non uniform rational B-spline (z angl.) sú objekty resp. plochy, ktoré vznikajú zovšeobecnením B-spline plôch a predstavujú dnes priemyselný štandard v geometrickom modelovaní. Umožňujú definovať širokú triedu plôch, napr. voľne tvarovateľné plochy na

bázy racionálnych polynómov (free form surfaces) alebo plochy založené na priamkach

a kužeľosečkách [4]. Prvýkrát sa objavujú v polovici 20. storočia pre potreby presnej

(28)

4. Návrh hry a tvorba grafiky bezpečíme namapovanie textúry na presne určené miesta polygónovej siete. Použité materiály využívajú na optické vylepšenie modelu okrem difúzneho kanála aj spekulárny a bump kanál. Celé telo obsahuje prevažne textúry kovu a železa pripravené pomocou grafického editoru.

Obr. 4.1: Proces tvorby charakteru od ručne kreslených skíc (hore) po výsledné rendre (dole)

Animácia pohybu hernej postavy

Ďalšou úlohou pred animovaním charakteru bolo naviazanie kostry na mo-del. 3ds Max vďaka prídavnému moduluCharacter Studio, ktorý veľmi dobre ovláda biomechaniku ľudského pohybu, ponúka pomerne pohodlnú variantu

(29)

4. Návrh hry a tvorba grafiky preddefinovanej bipedálnej kostry. Jednotlivé kosti je možné upraviť presne na mieru pre konkrétny model dvojnohej postavy. Následne je na model ap-likovaný modifikátor Physique a nastavené sú prepojenia, ktoré kĺby majú ovplyvňovať ktorú časť tela a do akej miery. Aby sa predišlo rozbitiu polygó-nov pri pohybe kostry, musí byť polygópolygó-nová sieť v miestach ohybu dostatočne hustá a nasegmentovaná. To ale nebol prípad nášho modelu robota, pre-tože jeho telo nebolo tvorené jednou súvislou sieťou, ale viacerými útvarmi (hlava, rameno, predlaktie atď.). Momentálne bolo potrebné pridaťPhysique

na každú časť tela zvlášť. Aj v tomto prípade však bolo nutné presne určiť, ktoré vrcholy modelu budú korešpondujúcim kĺbom deformované. Tento pro-ces naviazania kostry na postavu sa nazýva character skinning and rigging. Po správnom vytvorení systémuBiped „vo vnútri“ charakteru môžeme prejsť už k samotnej animácii. Pri animácii chôdze, známej ako cycle walk, vychádzam najmä z publikácie od Georga Maestriho – Digital Character Animation 2 [1]. K dispozícii je tiež mnoho voľne dostupných online zdrojov a návodov, ako pri tvorbe cyklickej chôdze postupovať. Veľkou výhodou bi-pedálnej kostry v 3ds Max je kombinácia oboch typov kinematiky – inverznej

(inverse kinematics, IK) a doprednej (forward kinematics, FK).Dopredná

kinematika využíva hierarchiu kĺbov od rodiča na potomka, to znamená, že napríklad pohnutím ramena sa zmení aj poloha zápästia. Inverzná ki-nematikanaopak pri pohybe zápästia postupuje v hierarchii opačným sme-rom, teda rozhýbe ramenný kĺb. V 3ds Max je predvolená FK, ale je možné ju ľubovoľne meniť na IK kedykoľvek počas animácie. Všeobecne platí, že rodičovský kĺb by mal byť otáčaný s použitím doprednej kinematiky a jeho potomok posúvaný kinematikou inverznou. Využívať obe súčasne je možné v móde freeform animation, kde však nie je možné automaticky kontrolovať správnu polohu chodidla pri každom kroku [2,19]. George Maestri v „Digital Character Animation 2“ považuje za preferovanú metódu pri animácii chô-dze práve inverznú kinematiku [1]. V našom prípade však pre jednoduchý cyklický krok kontrola chodidiel so zemou nie je nevyhnutná.

Cyklický krok sa typicky skladá z ôsmich kľúčových snímkov, ktoré sa opakujú. Okrem výmeny samotných nôh pri chôdzi charakter pohybuje aj zvyšnými časťami tela. Ruky vyvažujú postavu protichodne k nohám, panva aj hrudný kôš sa mierne vytáčajú a celá postava sa tiež zvislo pohupuje. Tieto pohyby je nutné dodržať, aby animácia vyzerala čo najprirodzenej-šie. Okrem chôdze je charakter vybavený animáciami „zbierania predmetov“ a tromi pózami pre znázornenie gest (success, fail and confusion). Pre každú animáciu bolo vyrendrovných 16 alebo 8 obrázkov reprezentujúcich postupne jej snímky, ktoré boli importované do grafickej knižnice projektu v programe Adobe Flash. Charakter sa v hre otáča do ôsmich smerov, čo tvorí v rovine

(30)

4. Návrh hry a tvorba grafiky natočenie pozdĺž osí x, z a diagonál. Preto aj jednotlivé „klipy“ nesú po-stupne názvyfront,frorig,right,bacrig,back,baclef,left afrolef.

Obr. 4.2: Animovanie charakteru pomocou bipedálnej kostry v 3ds Max (vľavo) a výsledný Movie Clip tvorený z vyrendrovaných snímkov v Adobe

Flash (vpravo)

4.4 Tvorba scén

Práve herné prostredie je v adventúrach to, čo často zaberá najväčšiu časť obrazovky. A keďže pomocou zraku vnímame až 80 % informácií z okolitého sveta, je zrejmé, že práve prostredníctvom vzhľadu herných lokácií sa snažia vývojári hráča zaujať. AdventúraStroj #257 obsahuje 6 navzájom prepo-jených scén, medzi ktorými sa môže hráč voľne pohybovať. Ich dizajn pod-lieha potrebám tejto bakalárskej práce, v stereo zobrazení využíva napríklad i negatívnu paralaxu. Lokácie sú statické a pomerne jednoduché, obsahujú len niekoľko objektov. Taktiež ich rozmiestnenie je vhodne prisôsobené na demonštráciu algoritmu hľadania cesty. Základ však tvorí prírodný exteriér a stromy rozumne vypĺňajú jednotlivé scény. Na ich tvorbu v programe 3ds Max bol použitý nástrojFoliage, ktorý obsahuje niekoľko preddefinovaných typov drevín. Každá inštancia tohto objektu môže vyzerať mierne odlišne, pretože sa dá vygenerovať jednou z 224 vzoriek. Na trávnaté povrchy mal byť pôvodne použitý globálny modifikátor Hair and Fur. Kvôli náročnému renderovaciemu procesu však nakoniec nebola použitá žiadna podobná tech-nika, ktorá by pokročilým spôsobom simulovala trávu, a aplikovaný bol len materiál s bump kanálom. Ostatné objekty takisto využívali len základné materiály namapované pomocou triviálnych postupov (napr. sférické, cylin-drické alebo mapovanie na kváder). Pri zložitejších modeloch, podobne ako v prípade charakteru, sme využili rozbalenie pomocou UVW mapy.

(31)

4. Návrh hry a tvorba grafiky Svetlá a kamery

Pri umiestňovaní svetiel na scénu musíme brať na zreteľ dôležitú skutočnosť. Osvetlenie vo všetkých scénach by malo byť navzájom totožné alebo aspoň veľmi podobné. Súčasne musí približne korešpondovať s osvetlením charak-teru, ktorý sa bude na tejto scéne pohybovať, vzhľadom k tomu, že je do nej zasadený dodatočne programovo. Súčasné schopnosti herného jadra totiž ne-obsahujú možnosť farebnej a jasovej korekcie postavy na scéne v závislosti od pozadia. Ak sa teda charakter dostáva napríklad do tmavého kúta, sám zostane stále rovnako nasvetlený, čo pôsobí samozrejme pomerne nepriro-dzene. Preto sa pri tvorbe hernej „obrazovky“ treba vyvarovať výrazným tieňom, či práve naopak príliš vysvieteným plochám. Pri piatich vonkajších lokáciach bolo použité jedno spoločné Skylight svetlo, plus lokálny Omni

svetelný zdroj pre každú scénu samostatne. Umiestnený bol nad zorným po-ľom kamery, približne vo vzdialenosti konvergentnej roviny. Scéna interiéru nepoužíva slnečné svetlo, ale vhodne nasmerované svetlo bodové –Spotlight.

Obr. 4.3: Tvorba scény, umiestňovanie svetla a kamery s použitím modifikátoru od Louisa Marcouxa

Pri vykresľovaní scén do stereoskopického páru bolo treba použiť dve su-sediace kamery. Veľmi dobre tu poslúžil prídavný skriptStereoCam Modifier

(32)

4. Návrh hry a tvorba grafiky kužeľom. Asynchrónnosť docielil skosením (Skew) zbiehavých kamier. Po ap-likovaní tohto modifikátoru na kameru bez pevného cieľa Free Camera je možné nastaviť interaxiálnu vzdialenosť (implicitne 6,1 cm) a veľkosť stereo efektu, čo predstavuje vzdialenosť roviny konvergencie. V pracovnom pro-stredí potom máme možnosť prehľadným spôsobom vidieť pri každej kamere komfortné zóny jej zorného poľa. Ďalej sa v 3ds Max naskytuje možnosť na takto vytvorené stereo kamery použiť modifikátorCamera Correction, ktorý upraví perspektívu na 2 body (úbežníky) a vylepší tým ich perspektívne zo-brazenie.

Možnosť vykresľovať stereoskopický obraz ponúka aj nová verzia známeho pokročilého renderovacieho systému V-Ray 2.0. Pri vypracovávaní tejto ba-kalárskej práce bol však použitý len základný renderer prostredia 3ds Max založený na skenovaní riadkov. Scénam aj preto na pohľad chýba výraznej-šia atraktivita, ktorá je u väčšiny projektov často dosahovaná až vo fáze postprocesingu. Ten by v našom prípade bol už pomerne neistá záležitosť, pretože v dôsledku dvoch mierne disparitných obrazov by sa s veľkou pravde-podobnosťou vytratila ich zhoda, ktorá je pre spojenie stereo páru v ľudskom mozgu nevyhnutná. Dalo by sa uvažovať o korekcii svetla a farieb na obráz-koch, prípadne o aplikovaní niektorých konvolučných filtrov. Pravdepodobne by však nebolo rozumné zo zrejmých dôvodov uskutočňovať napríklad zásahy v podobe dodatočného dokresľovania trávy a iných lokálnych úprav.

(33)

Kapitola 5

Implementácia

Stroj #257je adventúra simulujúca 3D herné prostredie s využitím tech-nológie nachádzajúcej sa v laboratóriu HCIkap.3.5. Svojím grafickým spraco-vaním a herným ovládaním sa snaží priblížiť prostrediam virtuálnej reality. Podľa rozdelenia nachádzajúceho sa v kapitole 3.4 je možné túto hru za-radiť do skupiny aplikácií používajúcich jednoduchú virtuálnu realitu. Hráč sleduje dianie na plátne s využitím stereoprojekcie a ovláda hru pomocou herných zariadení Kinect aleboWii Remote. Pri použití technológie Kinect sú príkazy zadávané pohybmi hráčovho tela, ovládačom Wiimote zas s hrou interagujeme o niečo tradičnejším spôsobom pomocou tlačidiel nachádzajú-cich sa priamo na ňom. Vďaka týmto pokročilejším metódam sprostredko-vania herného zážitku môže nastávať pocit, že predložený systém patrí do kategórie pohlcujúcej virtuálnej reality. Nespĺňa ale hneď niekoľko predpo-kladov všeobecne platných v akomkoľvek virtuálnom systéme. Hneď v prvom rade je vhodné zdôrazniť, že hra je kompletne spracovaná ako 2D aplikácia. Aj o tom, čo je potrebné vykonať, aby bol dosiahnutý pocit trojrozmernosti predloženého herného sveta, pojednáva táto kapitola.

Ako je uvedené už v časti3.1, pri vnímaní hĺbky človeku napomáha hneď niekoľko javov či už psychologického, alebo fyziologického charakteru. Ok-rem základnej binokulárnej disparity, ktorá bola dosahovaná už v procese tvorby grafiky vykresľovaním obrazu pomocou dvoch kamier, je dôležité re-špektovať aj ostatné tieto javy. Spomenúť treba hlavne vnímanie relatívnej veľkosti predmetu, ktoré je základom pohybu hráča po „3D“ scéne. Na-miesto toho, aby využíval pohyb v smere hĺbkyz, stačí, ak sa na obrazovke zmenší a mierne posunie po zvislej osi y. Okolo svojej zvislej osi sa hlavný hrdina aj otáča a pohybuje do 8 smerov. Pri správnom usporiadaní objektov na scéne môžeme potom veľmi ľahko nadobudnúť ilúziu trojdimenzionálneho priestoru.

Hra bola vytvorená s použitím technológie Adobe Flash. Jedná o vyso-koúrovňový vývojový nástroj a vykompilovaný formát súboru sa v počítači prehrá až po doinštalovaní softvérových doplnkov. Preto sa kvôli vyššej kom-patibilite výsledný súbor s multimediálnym obsahom typu SWF (

(34)

shockwave-5. Implementácia

flash) dodatočne spracuje aplikáciouFlash EXE Builder 1.0. Výsledkom

je potom spustiteľnýEXEsúbor obsahujúci samostatnú desktopovú aplikáciu. Integrované vývojové prostredie v programe Adobe Flash je pomerne ťažko-pádne, preto sme pri vývoji používali aj voľne dostupný editor zdrojových kódov FlashDevelop 3.3 určený predovšetkým pre jazyky ActionScript druhej a tretej generácie. Prejdime však teraz k samotnému popisu progra-movej implementácie hry.

5.1 Dekompozícia aplikácie

Obr. 5.1: Neúplný diagram tried aplikácieStroj #257 s vyznačenými typmi objektov a kardinalitami

Hlavná trieda ovládajúca aplikáciu jeMain.asa za najrozsiahlejšiu triedu, ktorá je naprogramovaná všeobecne, možno považovaťScene.as. Tento ob-jekt popisuje funkčnosť spoločnú pre všetky scény, to zahŕňa vnorené obob-jekty jednotlivých vrstiev pozadia, hotspotovkap.2 či charakteru. Medzi triedy so samostatnou funkčnosťou patrí ajPathfinder.as, ktorý pracuje s objektmi typuWaypoint.as. Podrobne sa týmito dvoma triedami zaoberám až v na-sledujúcej časti5.3. TriedaMainz veľkej časti skriptuje už priamo konkrétnu hruStroj #257, preto ju nie je vhodné zahŕňať do čistého herného jadra. Táto trieda je ale pre beh nevyhnutná a popisuje aj niekoľko všeobecných súčastí, ako napríklad inventár, kurzor i samotné herné obrazovky. Hlavne sa

(35)

5. Implementácia stará o prepojenie týchto herných lokácií, čo je vlastne sled objektovScene. Povedzme si však niečo viac o tomto objekte .

Scéna, teda herná obrazovka, je potomkom objektuMovieClip, čiže hie-rarchicky najvyššie postavenému zobraziteľnému objektu v knižniciach prog-ramu Adobe Flash. Rozširuje ho o radu atribútov a metód starajúcich sa o chovanie postavy na scéne, o interakciu s predmetmi a preusporiadava-nie obrazových vrstiev na zachytepreusporiadava-nie „hĺbky“. Pri výmene poradia vrstiev s charakterom sa neuplatňujú žiadne zložité algoritmické konštrukcie, väč-šina práce musí byť poctivo zrealizovaná už počas tvorby grafiky. Rendering prebieha vo vrstvách, čo znamená, že modely s evidentne rôznou hĺbkou na scéne sú vykreslené do samostatných vrstiev. Ako príklad si uvedieme otvorenú krajinu. Kopce a stromy v ďalekom pozadí zrejme charakter ni-kdy neprekročí, preto budú vykreslené do obrázku ako súčasť Movie Clipu

scene#_layer1, kde # označuje poradové číslo – index scény. V druhej vrstve sa bude nachádzať objekt s obrázkom zobrazujúcim predmet, za ktorý môže postava zájsť alebo naopak sa bude pohybovať pred ním. V najbližšej vrstve smerom k pozorovateľovi bude inštancia Movie Clipuscene#_layer3, kde sa budú nachádzať napríklad koruny stromov, ktoré sú tak blízko ka-mery, že charakter sa pred ne nikdy nedostane.

Prehadzovať poradie vrstiev s charakterom môžeme v jazyku ActionScript 3.0 vykonávať pomocou funkcieswapChildren, resp.swapChildrenAtna ob-jekte typu DisplayObjectContainer alebo jeho potomkoch. Toto poradie sa určuje na základe polohy stredového bodu jednotlivých objektov. Cha-rakter má referenčný bod umiestnený presne pod nohami a ostatné gra-fické objekty už konkrétne v závislosti na ich povahe a výzore. Na scénu je „zavesený“ poslucháč udalosti zmeny snímku this.addEventListener-(Event.ENTER_FRAME, onEnterFrame). FunkciaonEnterFrame, ktorá je vo-laná v našom prípade 30 krát za sekundu (rovná sa hodnote fps), potom zisťuje aktuálnu polohu charakteru na osi y a porovnáva ju s hodnotou sú-radniceypre každú z vrstiev. V prípade, že inštancia Movie Clipucharacter

dosiahne v zvislom smere nižšiu hodnotu ako iný objekt, na pozadí sa zavolá už spomínaná funkcia, ktorá mení poradie „detí“ – this.background.swapChildren(this.background.character, this.background["scene" + -this.index + "_layer" + layerIndex]) a postava je prekrytá korešpon-dujúcou vrstvou pozadia. Akcia takéhoto preusporiadavania objektov je ne-smierne dôležitá na uplatnenie princípuprekrývaniakap.3.1 ako jedného z ve-dúcich psychologických kľúčov pri vnímaní hĺbky.

Ako sa spomína na začiatku kapitoly, charakteru sa pri pohybe mení vlastnosťscalev závislosti na jeho súradnici vo vertikálnom smere. V jednej z prvých alternatív sa zmena veľkosti vykonávala plynule s použitím triedy

(36)

5. Implementácia

Tweendefinovanej v knižniciach ActionScript 3.0. Vzhľadom k nepresným vý-počtom i zaokrúhľovacím chybám pri násobení a delení nad objektomNumber

dochádzalo k nežiadanému efektu, kedy sa objekt po niekoľkých presunoch postupne stále viac a viac zväčšoval. Preto sa nakoniec od použitia triedy

Tween upustilo a veľkosť sa mení tiež pri vyvolaní udalosti zmeny snímku, kedy sa prepočítava z aktuálnej polohy charakteru. Stereo efekt sa na po-stave odzrkadľuje tak, že sú vytvorené až dve inštanciecharacterViewLeft

a characterViewRight. V závislosti na umiestnení charakteru a jeho veľ-kosti sa potom príslušne „rozdvojujú“, čím hráč na postavu zaostruje v po-žadovanej vzdialenosti za alebo pred plátnom.

Z popísaných vlastností programu je vidieť takzvané udalostne riadené programovanie (event-driven programming). Vyplýva to z povahy progra-movanej aplikácie, kedy sa väčšinou čaká na akciu užívateľa či programu samotného, napríklad kliknutie myšou na objekt, zmena snímku a podobne. Pre tento typ programovania sú typické pojmy ako listener, handler alebo

callback, čo predstavuje funkcie reagujúce na vznik istej udalosti. V našej hre

bola vytvorená trieda udalostíCharacterEvents akciami typuTAKE,MAYBE,

YESa inými. Vlastné udalosti sú potom vyvolávané príkazomdispatchEvent

a zachytáva ich príslušný definovaný poslucháč. Ako príklad si uveďme mo-ment, kedy hlavná postava dokráča k vybranému predmetu a je vyvolaná udalosťnew CharacterEvent(CharacterEvent.TAKE, this.object). Uda-losť je zachytená a odovzdáva informáciu, na ktorý predmet užívateľ klikol. Následne môže program reagovať ďalším spracovaním tejto udalosti, teda nechať predmet vziať alebo ho odmietnuť. V nástroji Adobe Flash sa často používa tento typ programovania, preto má ActionScript 3.0 dobrú podporu toku udalostí (event flow). Nasledujúce podkapitoly teraz podrobnejšie po-pisujú vybrané časti implementačného procesu.

5.2 Generovanie priestorového zvuku

Okrem hlavnej melódie, ktorá znie počas celého hrania, bola hra ozvučená aj niekoľkými zvukovými efektmi. Pri všadeprítomnom stereozobrazení nesmel zostať ani stereofónny zvuk bez povšimnutia, a tak si v tejto časti ukážeme, ako sa pomocou pár riadkov zdrojového kódu generoval „priestorový“ zvuk. Ako príklad uveďme prehrávanie zvuku krokov pri chôdzi charakteru. Po-kiaľ by sa stále opakovane prehrával jediný zvuk došľapnutia nohy na zem, kráčanie by znelo veľmi neprirodzene. Vytvorená bola teda sada 5 kratuč-kých zvukov reprezentujúcich styk dolnej končatiny so zemou. Ťažko si však predstaviť uveriteľný zvuk, ktorý by zodpovedal napríklad kráčaniu na tráve a súčasne na kamennej dlažbe, preto boli použité hneď dve odlišné sady

(37)

5. Implementácia zvukov. Simulácia „3D zvuku“ bola vytvorená pomerne jednoduchým spô-sobom, ako môžeme vidieť v nasledujúcom úseku zdrojového kódu.

/**

* @ p a r a m s u r f a c e set of s t e p s o u n d s t h a t are u s e d for w al ki n g , * for e x a m p l e " g r a s s " or " f l o o r " */ p u b l i c f u n c t i o n p l a y S o u n d s ( s u r f a c e :S t r i n g) :v o i d { if (S c e n e(t h i s. g e t C h i l d A t (0) ) . b a c k g r o u n d . c h a r a c t e r . c h a r a c t e r V i e w L e f t . c u r r e n t L a b e l == " w a l k ") { if ((S c e n e(t h i s. g e t C h i l d A t (0) ) . b a c k g r o u n d . c h a r a c t e r . c h a r a c t e r V i e w L e f t . c h a r a c t e r W a l k . g e t C h i l d A t (0) . c u r r e n t F r a m e == 4) || (S c e n e(t h i s. g e t C h i l d A t (0) ) . b a c k g r o u n d . c h a r a c t e r . c h a r a c t e r V i e w L e f t . c h a r a c t e r W a l k . g e t C h i l d A t (0) . c u r r e n t F r a m e == 20) ) { v a r r a n d o m :N u m b e r = t h i s. r a n d o m N u m b e r (1 , 5) ; t h i s. s t e p S o u n d T r a n s f o r m . v o l u m e = S c e n e(t h i s. g e t C h i l d A t (0) ) . b a c k g r o u n d . c h a r a c t e r . c h a r a c t e r V i e w L e f t . s c a l e X ; t h i s. s t e p S o u n d T r a n s f o r m . pan = (S c e n e(t h i s. g e t C h i l d A t (0) ) . b a c k g r o u n d . c h a r a c t e r . x -(t h i s. S T A G E _ W I D T H /2) ) /(t h i s. S T A G E _ W I D T H /2) ; s w i t c h( r a n d o m ) { c a s e 1: t h i s. s t e p S o u n d C h a n n e l = t h i s[ s u r f a c e +" 1 s o u n d "]. p l a y () ; b r e a k; c a s e 2: t h i s. s t e p S o u n d C h a n n e l = t h i s[ s u r f a c e +" 2 s o u n d "]. p l a y () ; b r e a k; c a s e 3: t h i s. s t e p S o u n d C h a n n e l = t h i s[ s u r f a c e +" 3 s o u n d "]. p l a y () ; b r e a k; c a s e 4: t h i s. s t e p S o u n d C h a n n e l = t h i s[ s u r f a c e +" 4 s o u n d "]. p l a y () ; b r e a k; c a s e 5: t h i s. s t e p S o u n d C h a n n e l = t h i s[ s u r f a c e +" 5 s o u n d "]. p l a y () ; b r e a k; d e f a u l t: b r e a k; } t h i s. s t e p S o u n d C h a n n e l . s o u n d T r a n s f o r m = t h i s. s t e p S o u n d T r a n s f o r m ; } } }

Kód 5.1: Metóda prehrávania a simulácie priestorového zvuku

ActionScript 3.0 pri práci so zvukom používa triedySound,SoundChannel,

SoundTransform a iné z balíku flash.media. Pri každej udalosti zmeny snímku na scéne sa zisťuje, či je charakter v pohybe. Ak sa nachádzal Movie Clip postavy v stavewalk, vytvorili sme inštanciu objektuSoundTransform, ktorej sme upravovali 2 atribúty. Veľkosť charakteru na scéne vlastne vypo-vedá o jeho vzdialenosti od „pozorovateľa“, takže priamo ovplyvňuje hla-sitosť volume kroku. Podobného princípu využíva aj zmena atribútu pan, ktorý spôsobuje vyvažovanie stereo zvukových kanálov. V požadovanom roz-sahu -1 až 1ho naplníme prepočítanou hodnotou polohy postavy na vodo-rovnej osix. Ak sa charakter nachádza v pravom okraji obrazovky, jeho hori-zontálne umiestnenie nadobúda hodnotu konštanty šírky scénySTAGE_WIDTH, teda „transformátor zvuku“ nastaví vyváženie na maximálnu hodnotu 1

(38)

5. Implementácia a všetok zvuk bude vychádzať len z pravého reproduktoru. Ešte je potrebné náhodne vygenerovať poradové číslo zvuku zo sady pre daný povrchsurface

a náš objektstepSoundChannelprehrá požadovaný zvuk kroku. Týmto spô-sobom aktuálna poloha charakteru na scéne upravuje rozloženie zvuku, a tým je len umocnený pocit, že sme súčasťou trojrozmerného herného prostredia.

5.3 Pohyb postavy a hľadanie cesty

Herná umelá inteligencia (artificial intelligence, AI) je v súčasnej dobe jed-ným z najhorlivejšie sa rozvíjajúcich odvetví interaktívneho zábavného prie-myslu. Samostatný obor, ktorý vznikol z programovania hier a herného di-zajnu, sa v posledných rokoch začína uplatňovať dokonca aj pri akademickom výskume umelej inteligencie. Až do druhej polovice 90. rokov bola umelá in-teligencia v počítačových hrách považovaná za okrajovú záležitosť, pretože prioritou herných vývojárov v tom období bola dokonalejšia a realistickejšia grafika. Postupne s príchodom grafických akcelerátorov, kedy sa uvoľnil vý-kon hlavného procesoru i na algoritmy umelej inteligencie, si vývojári hier začali uvedomovať, že hra nemôže stavať iba na realisticky vyzerajúcej gra-fike a zamerali svoju pozornosť práve na umelú inteligenciu [21]. Ideálne AI jadro by malo riešiť obrovské množstvo problémov, ako napríklad komuniká-cia medzi objektmi v hre či zaznamenanie a reagovanie na všetky udalosti, ktoré sa počas hrania môžu vyskytnúť [3].

A* algoritmus plánovania cesty

Nosným algoritmickým riešením prezentovaným v tejto práci je plánova-nie a hľadaplánova-nie cesty. Pathfinding je jednou z najzákladnejších súčastí AI, keďže veľké množstvo hier obsahuje herné postavy a ich pohyb musí vyzerať prirodzene, čo znamená, že jeho simulácia zahŕňa napríklad výber najjed-noduchšej trasy či obchádzanie prekážok. Tento problém je možné previesť na algoritmy z teórie grafov slúžiace na prehľadávanie grafu alebo nájdenie jeho najkratšej cesty. Za jednu z najpoužívanejších metód v tejto oblasti môžeme považovať A* algoritmus. Pôvodne vychádza z veľmi známeho

Dijkstrovho algoritmu, ktorý navyše obohacuje o heuristický prvok. Názov

s použitím hviezdičky značiacej jeho úplnosť zaviedol Bertram Raphael po-tom, ako v roku 1968 podal dôkaz, že jeho nový algoritmus upravujúci pô-vodné A1 a A2 algoritmy je optimálny [22].

A* algoritmus využíva matematický princíp „hladného algoritmu“ na nájdenie optimálnej cesty z daného počiatočného uzlu do požadovaného kon-cového uzlu. Algoritmus ohodnocuje uzly v závislosti na hodnotách hrán,

References

Related documents

● Arrange direct debits: rubbish collection, community of owners etc... Quality Partner

1) When the attack angle changed from -8° to 13°, steady numerical methods could be applied to predict the aerodynamic performance of airfoil, the lift and drag coefficient curve

In forests with higher fertility levels, C allocation to mycorrhizal fungi would decline, with the consequence of decreased ECM fungal abundance (Högberg et al

Our analysis revealed that of all analyzed parameters only reduction in right heart size after ASD closure had a significant influence on improvement of the total SF36 scale as

• Class 1, Division 1 – LED and high-performance lighting, explosionproof fittings and enclosures, cable tray, strut and explosionproof visual signals from Cooper

Management Principles (English, since 2007) Human Resource Management (English, since 2007) Introduction on Management (Dutch, year 2008-2009) VUB:.. Exercises Management

provide patients with contact details of NCPs in other MS • Provide information on right of a healthcare provider to provide services and any restriction(s) on its practice. •

The purpose of this study is to explore the lived experiences of graduate student single mothers attending an online education program to describe factors influencing their