Jihočeská univerzita v Českých Budějovicích Pedagogická fakulta Katedra informatiky
Diplomová práce
Bezdotykové ovládání interaktivních výukových aplikací s využitím technologie Leap Motion Contactless control of interactive training applications using Leap Motion technology
Vypracoval: Bc. Tomáš Svatek Vedoucí práce: PaedDr. Petr Pexa Ph.D. České Budějovice 2015
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze svoji diplomovou pr´aci jsem vypracoval samostatnˇe pouze s pouˇzit´ım pramen˚ u a literatury uveden´ ych v seznamu citovan´e literatury. Prohlaˇsuji, ˇze v souladu s § 47b z´akona ˇc. 111/1998 Sb. v platn´em znˇen´ı souhlas´ım se zveˇrejnˇen´ım sv´e diplomov´e pr´ace - a to v nezkr´acen´e podobˇe - v u ´pravˇe vznikl´e vypuˇstˇen´ım vyznaˇcen´ ych ˇca´st´ı archivovan´ ych fakultou elektronickou cestou ve veˇrejnˇe pˇr´ıstupn´e ˇca´sti ˇ ych Budˇejovic´ıch na jej´ıch datab´aze STAG provozovan´e Jihoˇceskou univerzitou v Cesk´ internetov´ ych str´ank´ach, a to se zachov´an´ım m´eho autorsk´eho pr´ava k odevzdan´emu textu t´eto kvalifikaˇcn´ı pr´ace. Souhlas´ım d´ale s t´ım, aby tout´eˇz elektronickou cestou byly v souladu s uveden´ ym ustanoven´ım z´akona ˇc. 111/1998 Sb. zveˇrejnˇeny posudky ˇskolitele a oponent˚ u pr´ace i z´aznam o pr˚ ubˇehu a v´ ysledku obhajoby kvalifikaˇcn´ı pr´ace. Rovnˇeˇz souhlas´ım s porovn´an´ım textu m´e kvalifikaˇcn´ı pr´ace s datab´az´ı kvalifikaˇcn´ıch prac´ı Theses.cz provozovanou N´arodn´ım registrem vysokoˇskolsk´ ych kvalifikaˇcn´ıch prac´ı a syst´emem na odhalov´an´ı plagi´at˚ u.
V . . . . . . . . . . . . . . . . . . . . . . dne . . . . . . . . . . . . .
Podpis autora
3
Abstract Pr´ace pojedn´av´a v teoretick´e ˇc´asti o moˇznosti vyuˇzit´ı bezdotykov´e technologie Leap Motion ve v´ yuce na z´akladn´ı ˇskole pro ovl´ad´an´ı interaktivn´ıch aplikac´ı se zamˇeˇren´ım na v´ yuku fyziky. Zjiˇst’uje, jak´ ym zp˚ usobem je moˇzn´e ovl´adat jiˇz vytvoˇren´e aplikace, kter´e nejsou programov´any pˇr´ımo pro bezdotykovou technologii, ale jsou urˇceny pro pr´aci s interaktivn´ı tabul´ı ˇci klasickou pr´ac´ı na poˇc´ıtaˇci, a jejich v´ yhody a nev´ yhody. Zab´ yv´a se mimo jin´e dostupnost´ı aplikac´ı a nab´ız´ı souhrn informac´ı o technologii Leap Motion a moˇznost´ı nahrazen´ı interaktivn´ıch tabul´ı. Souˇca´st´ı pr´ace je i popis technologie a moˇznosti v´ yvoje vlastn´ıch aplikac´ı. C´ılem praktick´e ˇc´asti je pak naprogramovat vlastn´ı v´ yukovou aplikaci, kter´a bude otestov´ana v hodinˇe a souˇc´ast´ı bude i v´ yzkum, kter´ y zjist´ı z´ajem uˇcitel˚ u o tuto technologii.
Kl´ıˇ cov´ a slova: Leap Motion, Unity 3D, bezdotykov´e ovl´ad´an´ı, ovl´ad´an´ı gesty, fyzika, interaktivn´ı tabule, z´akladn´ı ˇskola
4
Abstract EN In its theoretical part, this thesis treats possibilities of using no-touch technology Leap Motion in elementary school lessons for operating interactive applications focused on physics education. The thesis investigates the ways in which it is possible to operate already published applications which are not programmed specifically for a no-touch technology and which are, however, intended for work with an interactive whiteboard or for a standard computer work. Their advantages and disadvantages are discussed as well. The thesis deals, among other things, with the availability of relevant applications and offers a summary of information about Leap Motion technology and of opportunities for replacing interactive whiteboards. The thesis also includes a description of the technology and of the potential for developing your own applications. The aim of the practical part is to create a new didactic application which will be tested in lessons. This part also includes a poll which will find out what is the interest in Leap Motion technology among teachers.
Keywords: Leap Motion, Unity 3D, hands free controller,Gesture Controller, physics, interactive board, primary school
5
Podˇ ekov´ an´ı R´ad bych t´ımto podˇekoval sv´emu vedouc´ımu pr´ace panu PaedDr. Petru Pexovi, Ph.D. za rady a ˇcas, kter´ y mi vˇenoval pˇri ˇreˇsen´ı dan´e problematiky a jeho doporuˇcen´ı, jakoˇz i za pevn´e nervy. D´ale tak´e dˇekuji kamar´ad˚ um, kteˇr´ı sv´ ymi n´apady pˇrispˇeli a v budoucnu jeˇstˇe urˇcitˇe pˇrispˇej´ı k lepˇs´ı funkˇcnosti naprogramovan´e aplikace, jmenovitˇe pak Ing. Onˇreji Nedvˇedovi, kter´ y mi pomohl s m´ ymi zaˇca´tky s 3D grafikou. Dˇekuji rovnˇeˇz sv´e rodinˇe, jeˇz se mnou mˇela trpˇelivost a ve studiu mne vˇzdy podporovala.
6
Obsah ´ 1 Uvod
10
1.1
C´ıle pr´ace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2
Metoda pr´ace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2 Tehnologie Leap Motion
13
2.1
Historie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2
Technologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.1
2.2.2
Leap Motion SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.1.1
Popis SDK . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.1.2
Leap Motion a matematika . . . . . . . . . . . . . . . . . 18
Gesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.2.1
Krouˇziv´ y pohyb . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2.2
Zm´aˇcknut´ı kl´avesy . . . . . . . . . . . . . . . . . . . . . . 20 ˇ Svihnut´ ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 ˇ Tuknut´ ı na obrazovku . . . . . . . . . . . . . . . . . . . . 20
2.2.2.3 2.2.2.4 2.3
Budoucnost Leap Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3 Leap Motion jako n´ astroj ve v´ yuce
24
3.1
Nebezpeˇc´ı Leap Motion ve v´ yuce . . . . . . . . . . . . . . . . . . . . . . . 26
3.2
Dostupnost softwaru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 ˇ a SS ˇ . . . . . . . . . 27 3.2.1 Pˇredstaven´ı nˇekolika aplikac´ı pro 2. stupeˇ n ZS ˇ . . . . . . 30 3.2.2 Aplikace pouˇziteln´e v pˇredˇskoln´ım vˇeku a na 1. stupni ZS 3.2.3
3.3
Leap Motion a v´ yvojov´e prostˇred´ı Scratch . . . . . . . . . . . . . . 31
Moˇznost ovl´ad´an´ı aplikac´ı nejen pro interaktivn´ı tabule . . . . . . . . . . . 32 3.3.1
Touchless . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.2
Airinput Trial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3.3
Pointable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.4
Mudra mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4
Shrnut´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.5
Z´ajem uˇcitel˚ u o technologii Leap Motion . . . . . . . . . . . . . . . . . . . 39 3.5.1
Vyhodnocen´ı dotazn´ıku
. . . . . . . . . . . . . . . . . . . . . . . . 40
3.5.2
Shrnut´ı dotazn´ıku . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7
4 Praktick´ aˇ c´ ast - vlastn´ı v´ yukov´ a aplikace
44
4.1
T´ema aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2
Popis aplikace a jej´ı c´ıle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3
V´ yvoj aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.3.1
Prostˇred´ı Unity 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.3.1.1
Skriptov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.3.1.2
Animace . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5 Aplikace - Sluneˇ cn´ı soustava
51
5.1
Interakce Leap Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2
Pohyb po obrazovce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.3
Pohyb ve sc´enˇe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.3.1
Interakce s uˇzivatelsk´ ym rozhran´ım a planetami . . . . . . . . . . . 52 5.3.1.1
5.4
5.3.2
Pohyb po sc´enˇe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.3.3
Ovl´ad´an´ı gesty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Planety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.4.1
5.5
Kliknut´ı aneb zobraz panel pomoc´ı Leap Motion . . . . . 54
Slunce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Sc´eny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.5.1
Intro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.5.2
Hlavn´ı sc´ena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.5.3
Sc´ena porovn´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.6
Kv´ız . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.7
Zvukov´ y doprovod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.8
Export a distribuce aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.9
Alternativn´ı v´ ystup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.10 Ovˇeˇren´ı aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6 Z´ avˇ er
66
7 Seznam pouˇ zit´ e literatury a zdroj˚ u
67
8 Pˇ r´ılohy
74
8.1
Vybran´e zdrojov´e k´ody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
8
8.1.1
Vykreslen´ı kurzoru dle pozice ukazov´aˇcku . . . . . . . . . . . . . . 75
8.1.2
Pohyb ve sc´enˇe pomoc´ı dlanˇe . . . . . . . . . . . . . . . . . . . . . 79
8.1.3
Gesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
8.2
Dotazn´ık . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
8.3
Vyhodnocen´ı dotazn´ıku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
8.4
Pˇr´ıloha CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
9
´ Uvod
1
Modern´ı technologie jsou vˇsude kolem n´as a jejich v´ yvoj jde st´ale dopˇredu. Nen´ı tedy divu, ˇze i ˇskoly se snaˇz´ı drˇzet krok a nakupuj´ı modern´ı technologie ke zjednoduˇsen´ı a zab´avnˇejˇs´ımu stylu v´ yuky. Tablety a interaktivn´ı tabule jsou dnes a dennˇe ve ˇskole ˇcast´ ym slovem. Uˇcitel se d´ıky tˇemto technologi´ım snaˇz´ı ˇz´aky motivovat a povzbudit ve v´ yuce. Pˇrin´aˇsen´a interaktivita je dalˇs´ı faktor ve veden´ı hodiny oproti prost´emu sezen´ı na ˇzidli. T´ım, ˇze ˇz´aci mˇen´ı aktivity se pro nˇe v´ yuka st´av´a snesitelnˇejˇs´ı a z´abavnˇejˇs´ı. Hodiny dost´avaj´ı nov´ y sp´ad. Uˇcitel m˚ uˇze pomoc´ı poˇc´ıtaˇcov´e technologie simulovat, nakreslit, namˇeˇrit ˇci jinak pˇredv´est vˇeci, kter´e by jinak s obyˇcejnou tabul´ı nemohl a nejvˇetˇs´ı v´ yhodou je zapojen´ı samotn´ ych ˇz´ak˚ u pˇri ˇreˇsen´ı probl´em˚ u pomoc´ı modern´ı technologie. Bohuˇzel, n´akup takov´eto technologie nen´ı zrovna nejlevnˇejˇs´ı (ˇr´adovˇe desetitis´ıce) a tud´ıˇz si ji nem˚ uˇze dovolit jak´akoliv ˇskola. Pr´avˇe cenov´a n´aroˇcnost a z´ajem o nov´e technologie mˇe pˇrimˇel zamˇeˇrit se na to, zdali by se tato technoligie nenechala nahradit levnˇejˇs´ı z´aleˇzitost´ı, a to napˇr´ıklad Leap Motion kontrolerem, jehoˇz cena se pohybuje kolem 2000 Kˇc, jeˇz pˇrin´aˇs´ı vˇetˇs´ı interaktivitu a pohyb do v´ yuky. Jedn´a se zaˇr´ızen´ı, kter´e dok´aˇze ovl´adat aplikace pomoc´ı gest prov´adˇen´ ych nad sn´ımaˇcem. Jak´a je ale efektivita ovl´ad´an´ı aplikac´ı, kter´e nejsou naps´any pˇr´ımo pro tuto technologii? Bude dˇeti bavit ovl´adat poˇc´ıtaˇc pohybem rukou ve vzduchu? Budou se dˇeti opravdu uˇcit z aplikace, nebo zabere v´ıce ˇcasu anuˇcit se ovl´adat aplikaci? Mˇeli by uˇcitel´e v˚ ubec z´ajem o takovou technologii? Na tyto a dalˇs´ı ot´azky se pokus´ım odpovˇedˇet pr´avˇe v t´eto diplomov´e pr´aci.
1.1
C´ıle pr´ ace
ˇ Nejvˇetˇs´ı pˇrek´aˇzkou zav´adˇen´ı nov´ ych technologi´ı do ˇskol jsou finance. Skoly se proto snaˇz´ı hledat alternativy k dnes nab´ızen´ ym produkt˚ um a leckdy stav´ı cenu pˇred kvalitu uˇcebn´ıch pom˚ ucek. Leap Motion je relativnˇe nov´a technologie, kter´a se st´ale vyv´ıj´ı a kter´a mˇe zaujala nejen cenou tzv. kontroleru, ale i moˇznostmi kter´e toto mal´e zaˇr´ızen´ı nab´ız´ı, stejnˇe jako poˇctem dostpun´ ych aplikac´ı v Leap App store1
1
https://apps.leapmotion.com/
10
C´ıli t´eto pr´ace tedy je: • posouzen´ı moˇznosti vyuˇzit´ı technologie Leap Motion na ˇskol´ach jako moˇznou n´ahradu za interaktivn´ı tabule • vyzkoum´an´ı moˇznost´ı ovl´ad´an´ı standardn´ıch i interaktivn´ıch aplikac´ı, kter´e nejsou ps´any pˇr´ımo pro tuto technologii • popis moˇznost´ı a technologie Leap Motion • vyhled´an´ı a pops´an´ı informac´ı o dostupnosti softwaru pro Leap Motion • naprogramov´an´ı vlastn´ı v´ yukov´e aplikace s manu´alem • natoˇcen´ı pouˇzit´ı v´ yukov´e aplikace v hodinˇe fyziky • zjiˇstˇen´ı n´azor˚ u uˇcitel˚ u na pouˇzit´ı technologie Leap Motion ve v´ yuce Vzhledem k zamˇeˇren´ı pr´ace do v´ yuky fyziky, bude i naprogramovan´a uk´azkov´a aplikace do tohoto pˇredmˇetu. Vybral jsem si t´ema ”Sluneˇcn´ı soustava”. Podobn´a aplikace na Leap App storu jiˇz existuje, ale bohuˇzel pouze na operaˇcn´ı syst´em MacOS. Aplikace poskytne ˇza´kovi moˇznost ”proletˇet”se po naˇs´ı sluneˇcn´ı soustavˇe.Od Slunce po Pluto a kousek d´al. Tato aplikace nab´ıdne popis jednoliv´ ych planet, jejich simulaci rotace nejen kolem Slunce, ale i rotace kolem jejich osy a mˇes´ıc˚ u okolo planet. Planety bud´e moˇzno zvˇetˇsit a urychlit ˇcas, takˇze se ˇza´k m˚ uˇze pod´ıvat, jak´ y je pohyb planet v ˇcase. Samozˇrejmost´ı bude moˇznost pozorov´an´ı pohybu planet a zkoum´an´ı napˇr´ıklad vrˇzen´eho st´ınu mˇes´ıce na zemi. Aplikace bude obsahovat jednoduch´ y kv´ız, jehoˇz odpovˇedi budou ˇza´ci moˇzni naj´ıt v informac´ıch o planet´ach. Cel´a aplikace bude programov´ana v prostˇred´ı Unity 3D. Jedn´a se o hern´ı engine. V´ ysledn´a aplikace bude dostupn´a online pro desktop, s ovl´ad´an´ım jak Leap Motion tak i pomoc´ı myˇsi, a pro web pouze s ovl´ad´an´ım myˇsi.
11
1.2
Metoda pr´ ace
Pr´ace byla rozdˇelena na nˇekolik etap. V prvn´ı se jedn´a seps´an´ı informac´ı o technologii Leap Motion a to nejen historie, ale i dostupnost softwaru a jej´ıho budouc´ıho v´ yvoje. Druh´a etapa se bude t´ ykat proˇc´ıt´an´ı tutori´al˚ u, online zdroj˚ u a dokumentace, aby bylo moˇzn´e naprogramovat v´ yukovou aplikaci v prostˇred´ı Unity 3D s bezdotykov´ ym ovl´ad´an´ım Leap Motion. S t´ım bude souviset vytvoˇren´ı myˇslenkov´e mapy pro rozvrhnut´ı aplikace a popisu jej´ıch funkc´ı. Ta se v pr˚ ubˇehu v´ yvoje aplikace mˇenila s pˇrib´ yvaj´ıc´ımi probl´emy a poˇzadavky. Bude n´asledovat seps´an´ı teoretick´e ˇc´asti a nav´az´an´ı na praktickou ˇc´ast, kter´a bude z teoretick´e vych´azet. Aplikace bude postupnˇe upravov´ana do fin´aln´ı podoby. Po zpracov´an´ı praktick´e ˇca´sti je tuto nutn´e otestovat ve v´ yuce na z´akladn´ı ˇskole. Zde se natoˇc´ı video z v´ yuky, kter´e bude souˇc´ast´ı elektronick´e pˇr´ılohy na DVD a bude proveden pr˚ uzkum, zdali by uˇcitel´e mˇeli o tuto technologii z´ajem. Poˇc´ıt´a se s nab´ıdnut´ım hotov´e aplikace na ofici´aln´ı obchod Leap Motion Apps Store ke staˇzen´ı zdarma jako v´ yukov´ y materi´al.
12
2
Tehnologie Leap Motion
Leap Motion je technologie, kter´a n´am umoˇzn ˇuje ovl´adat aplikace pomoc´ı pohyb˚ u cel´e ruky, dlanˇe, ˇc´ı prst˚ u. To vˇse dok´aˇze zaˇr´ıdit mal´e zaˇr´ızen´ı, kter´e je o neco vˇetˇs´ı neˇz flash disk.
Obr´azek 1: Leap Motion [3] Sama firma m´a vlastn´ı internetov´ y obchod s aplikacemi. Jedn´a se o Leap App Store neboli Airspace. Ke dni 28. 03. 2015 obsahuje kolem 220 aplikac´ı. Z´aroveˇ n klesla i cena zaˇr´ızen´ı. Dnes se pohybuje kolem $90. Mohlo by se zd´at, ˇze konkurenc´ı by mohl b´ yt Kinect. Nicm´enˇe d´ıky velikosti, je Leap Motion l´epe pˇrenosn´ y a m´a citlivˇejˇs´ı rozliˇsen´ı.
2.1
Historie
Spoleˇcnost Leap Motion byla zaloˇzena v roce 2010 a to Michaelem Buckwaldem a Davidem Holzem, nicm´enˇe samotn´a technologie spatˇrila svˇetlo svˇeta jiˇz v roce 2008. Jej´ı vyn´alezce byl pr´avˇe David Holz, kter´ y tehdy studoval v doktorandsk´em studium na Univerzitˇe v Severn´ı Carol´ınˇe v Chapel Hill. Pˇri pr´aci s 3D grafikou ho rozˇcilovala doba potˇrebn´a k vymodelov´an´ı objektu, stejnˇe jako omezen´ı pr´ace s myˇs´ı a kl´avesnic´ı.
13
Str´avil t´emˇeˇrpˇet let v´ yvojem ovladaˇce, kter´ y je schopen urˇcit pohyby rukou, jejich smˇer, rychlost, rotaci i jednotliv´e prsty. V roce 2012, 21. kvˇetna, firma ofici´alnˇe ozn´amila vyd´an´ı zaˇr´ızen´ı pod jm´enem The Leap. V ˇr´ıjnu t´ehoˇz roku byl uvolnˇen i software umoˇzn ˇuj´ıc´ı v´ yvoj aplikac´ı, a z´aroveˇ n s t´ım bylo d´ano do distribuce 12 000 kus˚ u kontroleru pro v´ yvoj´aˇre, kteˇr´ı projevili z´ajem o v´ yvoj aplikac´ı pr´avˇe pro zaˇr´ızen´ı The Leap. Kv˚ uli kritice se vˇsak zpozdilo ofici´aln´ı prodej a m´ısto bˇrezna roku 2013, se zaˇcal plnˇe prod´avat veˇrejnosti aˇz od ˇcervna t´ehoˇz roku. Na internetov´em port´alu TechCrunch2 , zab´ yvaj´ıc´ım se technologick´ ymi novinkami, bylo ozn´ameno, ˇze se prodalo kolem 500 000 kus˚ u zaˇr´ızen´ı, coˇz bylo m´enˇe, neˇz firma oˇcek´avala. V kvˇetnu 2014 vydala firma software pro zaˇr´ızen´ı ve verzi 2. K denˇsn´ımu dni je verze softwaru 2.2.4.[1]
Obr´azek 2: Leap Motion - historick´ y v´ yvoj [7]
2.2
Technologie
Jedn´a se o mal´e vstupn´ı USB zaˇr´ızen´ı, kter´e bylo p˚ uvodnˇe navrhnuto k um´ıstˇen´ı na st˚ ul. Jako sn´ımaˇce pouˇz´ıv´a dvˇe monochromatick´e infraˇcerven´e kamery a tˇri infraˇcerven´e LED diody. Zaˇr´ızen´ı je schopn´e sn´ımat pohyb rukou a to v prostoru o tvaru polokoule do vzd´alenosti cca 70 cm. V t´eto ploˇse diody generuj´ı 3D vzorek z teˇcek z infraˇcerven´eho 2
http://techcrunch.com/
14
svˇetla3 . Kamera pot´e sn´ım´a aˇz 300 sn´ımk˚ u za sekundu a vyhodnocuje data na z´akladˇe pˇreˇruˇsen´ı a odrazu. Ta jsou pˇren´aˇsena pomoc´ı USB kabelu do poˇc´ıtaˇce, kde je software analizuje. To se dˇeje za pomoci komplexn´ıch matematick´ ych operac´ı. Ty si spoleˇcnost dobˇre chr´an´ı a v´ yvoj´aˇr m´a, d´ıky SDK4 , pˇr´ıstup k metod´am, kter´e vrac´ı vyhodnocen´e v´ ysledky. Nav´ıc se jedn´a o syntetizaci 3D obrazu z 2D generovan´ ych sn´ımk˚ u.
Obr´azek 3: Leap Motion - rozebran´ y [11]
2.2.1
Leap Motion SDK
Firma Leap Motion vydala jiˇz nˇekolik verz´ı softwaru ke kontroleru. S t´ım se poj´ı i software pro v´ yvoj aplikac´ı tzv. SDK. Toto SDK obahuje potˇrebn´e kdnihovny, v nichˇz jsou zaneseny metody pro pr´aci s pˇr´ıchoz´ımi daty. Firma se snaˇz´ı, aby zaˇr´ızen´ı bylo moˇzno pouˇz´ıvat v co nejvˇetˇs´ı ˇsk´ale moˇznost´ı a proto jsou vyd´av´any SDK pro ˇradu programovac´ıch jazyk˚ u a v´ yvojov´ ych prostˇred´ı.
Obr´azek 4: Leap Motion - podporovan´e jazyky a v´ yvojov´a prostˇred´ı [4] Staˇc´ı knihovny pro konkr´etn´ı jazyk naimportovat do projektu. Pot´e se zpˇr´ıstupn´ı vˇsechny d˚ uleˇzit´e metody. SDK je velice dobˇre zdokumentov´ano [3]. J´a osobnˇe jsem pouˇz´ıval SDK pro Unity 3D[4] a C#. Ke kaˇzd´e verzi je vyd´an i seznam zmˇen. 3 4
https://www.youtube.com/watch?v=UI5EBzU_QqM Software Development Kit
15
2.2.1.1
Popis SDK
SDK n´am umoˇznuje pomoc´ı API5 pˇristupovat pr´avˇe k onˇem metod´am a informac´ım. J´a zde uk´aˇzi jen kr´atkou uk´azku. V´ıce se tomuto t´ematu budu vˇenovat pˇri popisu vytvoˇren´e aplikace. Nav´ıc jsou dostupn´e metody podrobnˇe pops´any v dokumentaci. Jak jsem zmiˇ noval v´ yˇse, ja nutn´e nejprve knihovny pˇrekop´ırovat k projektu, pot´e je naimportovat do jednoliv´ ych tˇr´ıd. Prvn´ı se mus´ı vytvoˇrit objekt kontroleru. using System; using Leap;
//import knihovny LEAP
using UnityEngine; using UnityEngine.UI;
public class MovingCameraByLeap: MonoBehaviour {
Controller controler;
void Start(){ controler = new Controller (); //vytvoˇ ren´ ı nov´ eho kontroleru } }
Z objektu kontroleru pak m˚ uˇzeme pˇristupovat k dalˇs´ım metod´am. N´asleduj´ıc´ı ˇra´dky n´am napˇr´ıklad umoˇzn´ı zjistit, kolik rukou je v dan´em sn´ımku, jak vytvoˇrit objekt ruky a zjistit, zdali je lev´a nebo prav´a. int handCount = controler.Frame().Hands.Count; Hand hand = controler.Frame().Hands[1]; if (hand.IsLeft){ print("Ruka je lev´ a"); }
5
Application interface
16
Pokud m´ame objekt ruky, m˚ uˇzeme zjistit, jak´ ym smˇerem se pohybuje za pomoc´ı proch´azen´ı histori´ı sn´ımk˚ u. M˚ uˇzeme zjistit, jestli, kolik a jak´e prsty jsou zavˇren´e v dlani nebo ne. Samozˇrejmost´ı je, ˇze veˇsker´e ˇca´sti ruky se daj´ı definovat jako objekt. Objekt ruky pot´e obsahuje dalˇs´ı metody napˇr´ıklad: • pro pr´aci s transforamˇcn´ı matic´ı • se zjiˇstˇen´ım smˇeru pohybu dlanˇe • s´ılu stisku • jestli je dlan´ı dol˚ u nebo ne • velikost dlanˇe • polomˇer koule kterou ruka opisuje • ...
Obr´azek 5: Leap Motion - polomˇer koule kterou ruka opisuje [4] Kromˇe ruky umoˇzn ˇuje Leap Motion sn´ım´an´ı a ukazov´an´ı pomoc´ı objekt˚ u, napˇr´ıklad propisky, pro lepˇs´ı a pˇresnˇejˇs´ı ukazov´an´ı. D´ıky dostupn´ ym informac´ım si program´ator m˚ uˇze omezit funkce programu podle poˇctu vztyˇcen´ ych prst˚ u, poˇctem rukou ve sn´ımku, vzd´alenost´ı od kontroleru nebo velikost´ı koule kterou opisuje ruka, rychlost´ı jej´ıho pohybu, jestli je zavˇren´a nebo otevˇr´a dlaˇ n, atp. 17
2.2.1.2
Leap Motion a matematika
Pˇri v´ yvoji aplikace je nutn´e si uvˇedomit, ˇze leap motion vyuˇz´ıv´a komplexn´ı matematick´e operace. Pohybujeme se ve 3D prosotru a proto je nejednoduˇsˇs´ı pouˇz´ıvat vektory a transformaˇcn´ı matice k popisu pohybu ruky nebo pˇredmˇetu.
Obr´azek 6: Leap Motion - smˇer os [2]
2.2.2
Gesta
Jednou vestavˇenou funkc´ı je rozpozn´av´an´ı z´akladn´ıch gest a to: • krouˇziv´ y pohyb prstem (Circle gesture) • zm´aˇcknut´ı kl´avesy - cvrknut´ı bez pouˇzit´ı palce (Key tap gesture) • t’uknut´ı na obrazovku (Screen tap gesture) • ˇsvihnut´ı ruky (Swipe gesture)
Obr´azek 7: Leap Motion - gesta: krouˇzen´ı, stiknut´ı kl´avesy, t’uknut´ı, ˇsvih [4] 18
Kaˇzd´e gesto m´a moˇznost nastaven´ı z´akladn´ıch parametr˚ u. Pro pouˇzit´ı v aplikaci se mus´ı gesta povolit. K tomu slouˇz´ı n´asleduj´ıc´ı ˇr´adky. Kaˇzd´e gesto se mus´ı povolit zvl´aˇst’. Ta jsou pot´e rozpozn´ana, jsou-li provedena kdekoliv ve sn´ımac´ım prostoru kontroleru. //povolen´ ı gest controller.EnableGesture(Gesture.GestureType.TYPE_CIRCLE); controller.EnableGesture(Gesture.GestureType.TYPE_KEY_TAP); controller.EnableGesture(Gesture.GestureType.TYPE_SCREEN_TAP); controller.EnableGesture(Gesture.GestureType.TYPE_SWIPE);
2.2.2.1
Krouˇ ziv´ y pohyb
Tato tˇr´ıda reprezentuje krouˇziv´ y pohyb prstem. Ten m˚ uˇze nab´ yvat tˇr´ı stav˚ u: y pohyb zaˇcal a pokraˇcoval dostateˇcnˇe dlouho, aby byl • STATE START – krouˇziv´ vyhodnocen jako kruh • STATE UPDATE – pohyb pokraˇcuje • STATE STOP – gesto bylo dokonˇceno U toho gesta m˚ uˇzeme nastavit n´asleduj´ıc´ı parametry, kter´e se musej´ı uloˇzit: • minim´aln´ı r´adius ter´ y mus´ y b´ yt proveden • minim´aln´ı obsan´ yu ´hel ontroller.Config.SetFloat("Gesture.Circle.MinRadius", 10.0f); controller.Config.SetFloat("Gesture.Circle.MinArc", .5f); controller.Config.Save();
19
2.2.2.2
Zm´ aˇ cknut´ı kl´ avesy
Tato tˇr´ıda reprezentuje simulaci zm´aˇcknut´ı kl´avesy. Dˇr´ıve neˇz je toto gesto rozpozn´ano, mus´ı se prst an chvili zastavit a pot´e zaˇc´ıt prov´adˇet gesto. U toho gesta m˚ uˇzeme nastavit n´asleduj´ıc´ı hlavn´ı parametry: • minim´aln´ı rychlost smˇerem dol˚ u (k dlani) • minim´aln´ı uraˇzenou vzd´alenost controller.Config.SetFloat("Gesture.KeyTap.MinDownVelocity", 40.0f); controller.Config.SetFloat("Gesture.KeyTap.HistorySeconds", .2f); controller.Config.SetFloat("Gesture.KeyTap.MinDistance", 1.0f); controller.Config.Save();
2.2.2.3
ˇ Svihnut´ ı
Tato tˇr´ıda reprezentuje simulaci ˇsvihu prstem nebo n´astrojem. U toho gesta m˚ uˇzeme nastavit n´asleduj´ıc´ı hlavn´ı parametry: • minim´aln´ı uraˇzen´a vzd´alenost • minim´aln´ı rychlost controller.Config.SetFloat("Gesture.Swipe.MinLength", 200.0f); controller.Config.SetFloat("Gesture.Swipe.MinVelocity", 750f); controller.Config.Save();
2.2.2.4
ˇ Tuknut´ ı na obrazovku
Tato tˇr´ıda reprezentuje simulaci t’uknut´ı do obrazovky. Z´akladem je, ˇze se prst mus´ı pohnout dopˇredu a pot´e se vr´atit pˇribliˇznˇe do v´ ychoz´ı polohy. Opˇet mus´ı nastat kr´atk´a pauza pˇred proveden´ım gesta. U toho gesta m˚ uˇzeme nastavit n´asleduj´ıc´ı hlavn´ı parametry: • minim´aln´ı rychlost smˇerem dopˇredu (k obrazovce) • minim´aln´ı uraˇzenou vzd´alenost
20
controller.Config.SetFloat("Gesture.ScreenTap.MinForwardVelocity", 30.0f); controller.Config.SetFloat("Gesture.ScreenTap.HistorySeconds", .5f); controller.Config.SetFloat("Gesture.ScreenTap.MinDistance", 1.0f); controller.Config.Save();
Obr´azek 8: Leap Motion - gesta: t’uknut´ı [9] Kaˇzd´e gesto samozˇrejmˇe obsahuje dalˇs´ı metody pro zjiˇstˇen´ı dodateˇcn´ ych informac´ı, jako je doba trv´an´ı prov´adˇen´ı gesta, jestli ej gesto validn´ı, ruku, kter´a gesto prov´ad´ı, v´ ychoz´ı pozici odkud je gesto prov´adˇeno, atp. Vˇse je opˇet pops´ano v dokumentaci k SDK.
2.3
Budoucnost Leap Motion
Obr´azek 9: Leap Motion - budoucnost? [9] Chv´ıli po vyd´an´ı technologie Leap Motion a chvylkov´em testov´an´ı nˇekteˇr´ı recenzenti tuto technologii odsoudili k z´ahubˇe. Je pravda, ˇze prvn´ı verze softwaru byla tak troˇsku nehoraban´a“. Kaˇzd´ y kdo to zkusil musel uznat, ˇze ovl´ad´an´ı obˇcas pokulh´avalo. Jednalo ” 21
se o horˇs´ı detekci ˇca´st´ı ruky. Obˇcas mizely prsty a to zp˚ usobovalo probl´em v ovl´ad´an´ı aplikace. Ale i tak se s kontrolerem nechaly dˇelat divy. Napˇr´ıklad m˚ uˇzete ovl´adat zn´am´ y przentaˇcn´ı sfotware Prezi pomoc´ı Leap Motin skoro jako Tom Cruise ovl´adal poˇc´ıtaˇcov´e rozhran´ı ve filmu Minority Report[10]. Nebo proˇc neovl´adat d´alkovˇe roboty6 ? Bylo by moˇzn´e ovl´adat pohybem ruky robota pro zneˇskodnˇen´ı bomb daleko jemnˇeji? Nicm´enˇe firma se nevzdala a software zlepˇsovala. Dnes, jak jiˇz bylo zm´ınˇeno, m´ame verzi softwaru 2.2.4. Ta pˇrinesla nˇekolik zlepˇsen´ı vˇcetnˇe lepˇs´ı detekce prst˚ u a doplˇ nuj´ıc´ıch metod pro pr´aci s objekty. D´ıky tomu se tato technologie spojila s technologi´ı Oculus. Rift7 [12]. Byl dokonce uvolnˇen i k´od pro Planet´arium[14].
Obr´azek 10: Leap Motion - Leap Motion a Oculus Rift [9] Dalˇs´ım projektem s Oculus Rift je tzv. OSVR 8 . Otevˇren´a platforma pro stavbu vaˇs´ı vlastn´ı virtu´aln´ı reality. To podporuj´ı zn´ame firmy jako: • Sensics – v´ yrobce br´ yl´ı pro virtu´alni realitu - http://sensics.com/ • Razer – v´ yrobce hern´ıho hardwaru a softwaru - http://razerzone.com/ • Gearbox software – softwarov´a v´ yvojov´a firma - http://gearboxsoftware.com • Sixense – v´ yrobce hardwaru k virtu´aln´ım br´ yl´ ym (ovladaˇc STEM) - http://sixense.com • Leap Motion – V´ yrobce bezdotykov´eho kontroleru - http://leapmotion.com
6
https://www.youtube.com/watch?v=sBzXRc9v7PU https://www.oculus.com/ 8 Open Source Virtual Reality - http://www.osvr.com/index.html 7
22
Obr´azek 11: Leap Motion - OSVR [13] Moment´aln´ı nev´ yhodou Leap Motionu je kabel, kter´ y potˇrebujete. Lid´e z komunity jsou vˇsak vynal´ezav´ı a snaˇz´ı se propojit konroler s technologi´ı bluetooth9 . To by v budoucnosti mohlo pˇrin´est vˇetˇs´ı volnost pohybu a to by mˇelo obrovskou v´ yhodou nejen ve ˇskolstv´ı ale i hern´ım pr˚ umyslu. Virtu´aln´ı a rozˇs´ıˇren´a realita je dnes na vzestupu, coˇz mohou dokl´adat i konkurenˇcn´ı br´ yle od Microsoftu Hololens10 , kter´e nejsou pˇr´ımo virtu´aln´ı realitou, ale onou rozˇs´ıˇrenou realitou.
Obr´azek 12: Leap Motion - Oculus Rift a planet´arium[14] 9 10
http://cs.wikipedia.org/wiki/Bluetooth http://www.microsoft.com/microsoft-hololens/en-us
23
3
Leap Motion jako n´ astroj ve v´ yuce
V u ´vodu bylo zm´ınˇeno, ˇze se v dneˇsn´ı dobˇe nasazuje modern´ı technologie do ˇskolstv´ı, abchom zabavili dˇeti, zkusili je motivovat a z´aroveˇ n pobavit tak aby se i pˇres z´abavu ˇ ak si sp´ıˇse vzpomene na to, nauˇcili to co mˇeli. Emoce jsou nejsilnˇejˇs´ı vyvol´avaˇc pamˇeti. Z´ jak se bavil pˇri pokusu nˇeco ovl´adat ˇci virtu´alnˇe rozb´ıt, neˇz ˇze sedˇel cel´ y den na ˇzidli a v˚ ubec jeho jedin´ y pohyb byl o pˇrest´avce na z´achod. S t´ım souvis´ı i doporuˇcovan´a zmˇen aktivit ve v´ yuce. Interaktivn´ı tabule tehdy pˇriˇsly jak na zavolanou. Bohuˇzel, spousta uˇcitel˚ u nedok´aˇze vyuˇz´ıvat software dod´avan´ y s tabul´ y dot efektivnˇe na to, aby dok´azali vytv´aˇret z´abvn´e aplikace. Na druhou stranu zahr´at si pexeso, poskl´adat spr´avn´e odpovˇedi, nebo si zahr´at riskuj je dobr´e rozpt´ ylen´ı a pln´ı u ´ˇcel. Nav´ıc s dod´avan´ ym softwarem nen´ı, pokud uˇcitel pronikne do taj˚ u v´ yvoje aplikac´ı, velik´ y probl´em si takov´e jednoduch´e hry vytvoˇrit. Profesion´alnˇe pˇripraven´ ych hodin je st´ale m´alo. Nav´ıc je rozd´ıl mezi ActiveBoardem a SmartBoardem. Ale je interaktivn´ı tabule dost z´abavn´a? Samozˇrejmˇe existuj´ı animace, ale spousta z nich reaguje na stisk myˇsi a t´ahnut´ı nic co by se nedalo udˇelat pˇres poˇc´ıtaˇc tak v ˇcem je v´ yhoda? Dˇeti se dostanou z lavic, tabule je schopna odchyt´avat nˇekolik vstup˚ u najednou, takˇze v podstatˇe nahrazuje multiplayer. Nav´ıc je interaktivn´ı tabule vhodnˇejˇs´ı do urˇcit´ ych pˇredmˇet˚ u. Tˇreba ˇceˇstina a pravopis, zemˇepis, prvouka, fyzika, matematika .... Vˇzdycky nach´az´ıme nˇejak´e ale. V tomto pˇr´ıpadˇe se naskytuje ot´azka: Neˇslo by to jeˇstˇe z´abavnˇeji a s vˇetˇs´ı interaktivitou?
Obr´azek 13: Aplikace Sluneˇcn´ı soustava pro Leap Motion 24
Je pˇekn´e, ˇze si m˚ uˇzete popohnat animaci napˇr´ıklad ˇstˇepen´ı atomu, ale co kdyby ˇza´k byl ten, kdo celou reakci inicializuje? Co kdyby bylo moˇzn´e simulovat fyzik´aln´ı jevy, jako napˇr´ıklad p˚ usoben´ı s´ıly tak, jak to opravdu odpov´ıd´a skuteˇcnosti? Co kdyby bylo moˇzn´e se proj´ıt po historick´em bojiˇsti a pˇrehr´at nasimulovan´e historick´e ud´alosti, ˇci se prol´etnou skrz naˇs´ı Sluneˇcn´ı soustavou? To je to v ˇcem vid´ım silnou str´anku Leap Motion kontroleru. Moˇznost pohybovat se ve 3D svˇetˇe pomoc´ı zapojen´ı dalˇs´ıch smysl˚ u, neˇz jen t´ahnut´ım elektornick´eho pera. Nav´ıc d´ıky gest˚ um by se nechali ovl´adat i roboti, takˇze by bylo moˇzn´e napˇr. propojen´ı 11 R Lega Mindstorm s kontrolerem.
D´ale jsem zmiˇ noval v´ yhodu, kterou by pˇrinesla technologie bluetooth v zaˇr´ızen´ı Leap Motion. Psan´e aplikace by mohly b´ yt pro v´ıce hr´aˇc˚ u (uˇzivatel˚ u) a s napsan´ ym softwerem pro omezen´ı pˇr´ıstupu pro konkr´etn´a zaˇr´ızen´ı by bylo moˇzno, aby uˇcitel pˇred´aval ovl´ad´an´ı jednotliv´ ym zaˇr´ızen´ım podle jeho potˇreby.
Obr´azek 14: Leap Motion - Uk´azka ovl´ad´an´ı Nav´ıc d´ıky jemn´ ym pohyb˚ um by zaˇr´ızen´ı mohlo uˇcit jemn´e motorice. To by se kromˇe ˇskolstv´ı nechalo vyuˇz´ıt i u rehabilitaˇcn´ıch program˚ u.
11
http://www.lego.com/en-us/mindstorms/
25
3.1
Nebezpeˇ c´ı Leap Motion ve v´ yuce
Vˇsechno to zn´ı moc hezky, ale ne vˇzdy vˇsechno jde tak jak si pˇrejeme a i tato technologie nen´ı v´ yjimkou. V ˇcem by tedy mohlo tkv´ıt nebezpeˇc´ı? Bohuˇzel ke komplexnosti 3D svˇeta je n´aroˇcn´e navrhnout ovl´ad´an´ı aplikace. To by mˇelo b´ yt co nejintuitivneˇejˇs´ı a nejednoduˇsˇs´ı, alespoˇ n co by se nasazen´ı ve v´ yuce t´ ykalo. A zde vid´ım velk´ y probl´em. Je pravdˇepodobn´e, ˇze se dˇeti zamˇeˇr´ı sp´ıˇse na to, jak ovl´adat aplikaci, neˇz aby alpikaci sledovaly. V tom pˇr´ıpadˇe by mˇel ˇcas str´aven´ y k nauˇcen´ı ovl´ad´an´ı aplikace b´ yt vykompenzov´an mnoˇzstv´ım informac´ı, kter´e si student odnese pot´e, co se nauˇc´ı aplikaci ovl´adat. V´ yhodou je, ˇze dneˇsn´ı generace si rychle zvyk´a na nov´e technologie a dok´aˇz´ı se rychleji nauˇcit zach´azet s nov´ ymi vˇecmi. Vˇetˇsina aplikac´ı nav´ıc disponuje poˇca´teˇcn´ım tutori´alem, kter´ y uˇzivatele nauˇc´ı vˇse co potˇrebuje od polohy ruky aˇz po rychlosti, gesta, stisknut´ı tlaˇc´ıtka ˇci uchopen´ı vˇeci.
3.2
Dostupnost softwaru
Vu ´vodu bylo zm´ınˇeno, ˇze Leap Motion disponuje vlastn´ım obchodem pro ˇs´ıˇren´ı aplikac´ı at’ uˇz zdarma, nebo za poplatek. Nˇekter´e jsou urˇceny jen pro dan´ y operaˇcn´ı syst´em jin´e jsou pˇr´ıstupn´e d´ıky moˇznosti ps´at program v Unity, JavaScriptu nebo Unreal Enginu. Samotn´ y obchod obsahuje moment´alnˇe zhruba 220 aplikac´ı ze vˇsech moˇzn´ ych kategori´ı: • Ovl´ad´an´ı poˇc´ıtaˇce • Creativn´ı n´astroje • V´ yuka • Experiment´aln´ı • Hry • Hudba a z´abava • Produktivita a utility • Vˇeda • Virtu´aln´ı realita
26
J´a se v tuto chv´ıli zamˇeˇr´ım na v´ ybˇer nˇekolika aplikac´ı, kter´e stoj´ı za zm´ıˇ nku. A to pˇrev´aˇznˇe z oblasti v´ yuky. Nev´ yhoda vˇetˇsiny aplikac´ı je jazykov´a mutace. Nenarazil jsem na aplikaci, kter´a by byla v jin´em jazyce, neˇz v angliˇctinˇe. 3.2.1
ˇ a SS ˇ Pˇ redstaven´ı nˇ ekolika aplikac´ı pro 2. stupeˇ n ZS
R´ad bych vyzdvihl nˇekolik aplikac´ı o kter´ ych si mysl´ım, ˇze maj´ı nadˇeji st´at se v´ yukov´ ymi. Prvn´ı se naz´ yv´a Cyber Science - Motion. Zab´ yv´a stavbou kostry, konkr´etnˇe lebky. Pomoc´ı Leap Motion ovladaˇce m˚ uˇzete lebku ot´aˇcet v prostoru, pˇribliˇzovat, oddalovat a rozeb´ırat na jednotliv´e kosti, ˇci si otestovat, jak rychle dok´aˇzete naopak kosti sloˇzit dohromady.
Obr´azek 15: Cyber Science - Motion Dalˇs´ı aplikace Form & Function 3D se zab´ yv´a obˇehov´ ym syst´emem konkr´etnˇe zv´ıˇrec´ıch srdc´ı. To m˚ uˇzete zpr˚ uhlednit, nat´aˇcet a sledovat cirkulaci krve. Vˇse m´a samozˇrejmˇe popisky. Tˇret´ı aplikace je od stejn´eho v´ yvoj´aˇre jako prvn´ı a to Cyber Science - Motion Zoology, ale tentokr´at se jedn´a o rozeb´ır´an´ı hmyzu. Ve verzi zdarma se jedn´a o terantuli.
27
Obr´azek 16: Form & Function 3D a Cyber Science - Motion: Zoology N´asleduj´ıc´ı aplikace se zab´ yv´a Sluneˇcn´ı soustavou. Bohuˇzel je dostupn´a pouze pro operaˇcn´ı syst´em MacOS. To tak´e vedlo ke zvolen´ı t´ematu m´e praktick´e ˇca´sti. Aplikace nese n´azev Solar Walk - 3D Solar System model. Vizu´alnˇe je kr´asnˇe zpracov´ana. Doplnˇena o informace o jednotliv´ ych planet´ach a kr´asn´ ymi efekty Slunce. Cena je e4,59.
Obr´azek 17: Aplikace Solar Walk[15] V poˇrad´ı p´at´a aplikace se jmenuje CrystlViewer. Je zdarma a m´a za u ´ˇcel zn´azornit krystalick´e mˇr´ıˇzky r˚ uzn´ ych l´atek a chemick´ ych slouˇcenin. Bohuˇzel je tato aplikace dostupn´a pouze pro MacOS. Jednotliv´e modely mˇr´ıˇzek m˚ uˇzeme ot´aˇcet. Tak´e umoˇzn ˇuje mˇeˇrit vzd´alenosti jednotliv´ ych atom˚ u od sebe.
28
Obr´azek 18: Aplikace CrystalViewer[16] Pˇredposledn´ı aplikac´ı pro vyˇsˇs´ı roˇcn´ıky je pitva ˇza´by. Apliakce nese jm´eno Frog Dissection a umoˇzn ˇuje pˇrip´ıchnout ˇz´abu k pracovn´ımu stolu a prov´est pitvu bez tr´apen´ı na re´aln´em vzorku. Aplikace je dostupn´a pro MS Windows i MacOS a stoj´ı e3,59.
Obr´azek 19: Frog Dissection[17]
29
Posledn´ı aplikac´ı kterou bych r´ad zm´ınil je 3D Geometry, kter´a stoj´ı e2,69 a je dostupn´a pro MS Windows i MacOS. Zde ˇz´aci budou moci manipulovat s 3D geoterick´ ymi objekty. Rozkl´adat je a pozorovat s´ıt’ objektu. Jednotliv´e strany si mohou obarvit r˚ uznou barvou. D´ale jsou k dispozici vzoreˇcky pro v´ ypoˇcet obsah˚ u a objem˚ u jednotliv´ ych tˇeles.
Obr´azek 20: 3D Geometry[18]
3.2.2
ˇ Aplikace pouˇ ziteln´ e v pˇ redˇ skoln´ım vˇ eku a na 1. stupni ZS
Kromˇe v´ yˇse zm´ınˇen´ ych aplikac´ı, bych r´ad pouk´azal i na dalˇs´ı, kter´e jsou vhodn´e pro prvn´ı stupeˇ n z´akladn´ı ˇskoly. Prvn´ı je Skywriting Alphabets. Jedn´a se o psan´ı a uˇcen´ı p´ısmen abecedy bud’ pomoc´ı prstu nebo n´astroje. Cena je e1,79. Druh´a aplikace nese n´azev Curious Kids a m´a za u ´kol nauˇcit dˇeti zvuk˚ um a poˇct˚ um. Bohuˇzel pro n´as jsou tyto aplikace poze v anglick´e lokalizaci.
Obr´azek 21: Skywriting Alphabets a Curious Kids[19][20]
30
3.2.3
Leap Motion a v´ yvojov´ e prostˇ red´ı Scratch
Scratch12 je obl´ıben´e, modern´ı a jednoduch´e v´ yvojov´e prostˇred´ı, jeˇz umoˇzn ˇuje vytv´aˇret i sloˇzit´e aplikace. D´ıky tomu, ˇze se ˇz´aci nemusej´ı zab´ yvat syntax´ı, jako je tomu u jin´ ych programovac´ıch jazyk˚ u, a d´ıky sv´e jednoduchosti skl´ad´an´ı pˇr´ıkaz˚ u, dostupnoti jednotliv´ ych ovl´adac´ıch prvk˚ u jako jsou cykly a podm´ınky, pˇrehlednosti a barevnosti je toto prostˇred´ı hojnˇe vyuˇz´ıv´ano pr´ave ve v´ yuce informatiky pro rozˇsiˇrov´an´ı schopnost´ı ˇz´ak˚ u ˇreˇsit probl´emy okolo nich. To, a nejsp´ıˇse moˇznost nab´ıdnout i ˇza´k˚ um z´akladn´ıch ˇskol moˇznost vytvoˇrit si vlastn´ı aplikaci pro bezdotykov´e ovl´adac´ı zaˇr´ızen´ı Leap Motion, vedlo Krega Hanninga13 k vytvoˇren´ı doplˇ nku pro offline Scratch editor. Prvn´ı co se mus´ı udˇelat je st´ahnout knihovnu napsanou v JSONu14 , kter´a se, po podrˇzen´ı kl´avesy SHIFT a kliknut´ı na SOUBOR a zvolen´ı nab´ıdky Imort experimental HTTP extension, mus´ı naimportovat. Pot´e se v nab´ıdce bloky zobraz´ı pˇr´ıkazy pr´avˇe pro pr´aci s Leap Motion. Na str´ance uveden´e v pozn´amce pod ˇcarou se nach´azej´ı i uk´azkov´e aplikace.
Obr´azek 22: Leap Motion - rozˇs´ıˇren´ı pro Scratch editor Existuje spousta dalˇs´ıch aplikac´ı. V´ yˇse zm´ınˇen´e jsou pouze vybran´e, kter´e mˇe zaujaly a kter´e jsem vyzkouˇsel 12
https://scratch.mit.edu/ http://khanning.com 14 JavaScript Object Notation 13
31
3.3
Moˇ znost ovl´ ad´ an´ı aplikac´ı nejen pro interaktivn´ı tabule
V podkapitole v´ yˇse jsme si uk´azali nˇejak´e aplikace, kter´e jsou programov´any pˇr´ımo pro technologii Leap Motion. Ale jak je to s jiˇz existuj´ıc´ımi aplikacemi? Naˇstˇest´ı se pˇredpokl´adalo, ˇze by leap mohl kompletnˇe ovl´adat poˇc´ıtaˇc. To vedlo k naps´an´ı hned nˇekolika softwar˚ u. Ty jsou dostupn´e v Leap App storu. Nˇekter´e jsou placen´e, jin´e zdarma. Jak uˇz to tak b´ yv´a, ne vˇzdycky aplikace zdarma je nejhorˇs´ı a ne vˇzdy je placen´a aplikace nejlepˇs´ı. Bylo otestov´ano nˇekolik z´akladn´ıch aplikac´ı, a to na jiˇz hotov´ ych programech, jakoˇz to na cel´em syst´emu. Co se t´ yˇce aplikac´ı pro interaktivn´ı tabule, je nutn´e m´ıt software k nim dod´avan´ y a to Promethean Activeinspire pro ActiveBoard a SMART Classroom pro SmartBoard. • Touchless - zdarma • Airinput trial - zdarma (premium e4,59) • Pointable - e4,59 • Mudra Mouse - e4,59 3.3.1
Touchless
Obr´azek 23: Touchless for Windows[22] Tato aplikace je zdarma a je z d´ılny Leap Motion. Princip fungov´an´ı je v rozdˇelen´ı sn´ıman´e plochy nad kontolerem na dvˇe ˇca´sti a to tzv. Hover area a Touch Zone (viz ˇ ım bl´ıˇze jsme k dotykov´e z´onˇe, Obr. 24) Indikaci pozice oznaˇcuje ˇsediv´ y vyplnˇen´ y kruh. C´ t´ım se kruh zmenˇsuje. Jakmile se dostaneme do dotykov´e z´ony, kruh zezelen´a, coˇz indikuje kliknut´ı myˇs´ı. Pokud jsme napˇr´ıklad ve webov´em prohl´ıˇzeˇci, je moˇzn´e po tomto zbarven´ı tahem nahor, dol˚ u nebo do stran nahradit scrollov´an´ı koleˇckem. Pokud vydrˇz´ıme na m´ıstˇe, objev´ı se okolo zelen´eho indik´atoru ˇctverec, signalizuj´ıc´ı prav´ y klik myˇsi. 32
Obr´azek 24: Touchless for Windows[22] Stejnˇe jako n´am pohyb umoˇzn ˇuje scrolovat, umoˇzn ˇuje n´am i tzv. drag and drop15 a to nejenom s objekty na ploˇse, ale i s objekty v jednotliv´ ych aplikac´ı, proto nen´ı probl´em ovl´adat t´ımto softwarem aplikace pro Aktiveboard. Aplikace podporuje i nˇekolik monitor˚ u a m´a moˇznou nastavitelnost ovl´ad´an´ı tzv z´akladn´ı a pokroˇcilou.
Obr´azek 25: Touchless for Windows[22] Tento ovl´adac´ı software je velice jednoduch´ y a intuitivn´ı. Nemus´ı se nic dlouze nastavovat. Pˇri zapnut´ı se automaticky zapne i virtu´aln´ı kl´avesnice, kter´a je skryt´a na liˇstˇe n´astroj˚ u. Pokud se pˇrepneme napˇr. do MS Word, kl´avesnice se sama objev´ı. Samozˇrejmost´ı je i pr˚ uvodce, kter´ y n´as provede zaˇca´tky pouˇz´ıv´an´ı programu. Nev´ yhodu vyd´ım v obˇcasn´em ”uj´ıˇzdˇen´ı” indik´atoru pozice prstu, stejnˇe jako v indikaci v´ıce prst˚ u i pˇres zavˇrenou ruku. Ale i pˇres tyto nedostatky se s ovl´adac´ım softwarem pracovalo dobˇre a jednoduˇse. 15
Drag and drop = t´ ahni a pust’
33
3.3.2
Airinput Trial
Obr´azek 26: Airinput Trial[23] Tento software narozd´ıl od pˇredchoz´ıho nerozdˇeluje sn´ımac´ı prostor, ale ovl´ad´a kurzor myˇsi, jeˇz m˚ uˇzeme ovl´adat pˇriˇrazen´ ymi gesty podle v´ ybˇeru ovl´ad´an´ı (viz Obr. 27). Kurzor je na pozici stˇredu dlanˇe. Pohyby by mˇely b´ yt plynul´e a klidn´e. M˚ uˇzeme pouˇz´ıvat: • prstov´ y reˇzim – Klik lev´ ym tlaˇc´ıtkem myˇsi - simulace pomoc´ı pohybu palce ke stranˇe ukazov´aˇcku – Drag and drop - vydrˇzen´ı v pˇredchoz´ı pozici a taˇzen´ı na poˇzadovan´e m´ısto – Prav´ y klik - palec a mal´ıˇcek k sobˇe – Dvojklik - rychl´e zopakov´an´ı kliku lev´ ym tlaˇc´ıtkem myˇsi • reˇzim dlanˇe - Umoˇzn ˇuje drag and drop • reˇzim u ´hlu - ovl´ad´an´ı pomoc´ı ot´aˇcen´ı dlanˇe kolem stˇredov´e osy Program ve verzi premium disponuje dalˇs´ımi tˇremi zp˚ usoby ovl´ad´an´ı: • sevˇren´ı do ”O”- experiment´aln´ı ovl´ad´an´ı • reˇzim n˚ uˇzek - experiment´aln´ı ovl´ad´an´ı pro lev´ y stisk a drag and drop • ovl´ad´an´ı jedn´ım prstem Dalˇs´ı nastaven´ı se t´ yk´a velikosti ohraniˇcen´ı, kter´e omezuje kam aˇz bude moˇzn´e sledovat pohyb ruky ˇci prst˚ u a citlivost pohybu a gest. Pod z´aloˇzkou s n´azvem Edge Action se nach´az´ı nastaven´ı pro akce, pokud pˇresuneme okno, nebo objekt do urˇcit´eho pozice na okraji monitoru. Tyto oblasti se nechaj´ı zobrazit a upravit. 34
Obr´azek 27: Airinput Trial Tato ovl´adac´ı aplikace je pˇr´ıvˇetiv´a, gesta v prstov´em reˇzimu jsou intuitivn´ı. Citlivost v z´akladn´ım nastaven´ı bohatˇe dostaˇcuje k plynul´emu ovl´ad´an´ı. K ”uj´ıˇzdˇen´ı” kurzoru doch´az´ı ojedinˇele. Nev´ yhodou je obˇcasn´e pˇrest´an´ı fungov´an´ı pˇri zavˇren´ı okna, to je moˇzn´a zp˚ usobeno ˇcasovˇe omezenou verz´ı. Ta dovoluje aplikaci spustit nˇekolikr´at a ovl´adat poˇc´ıtaˇc 10 minut dennˇe. 3.3.3
Pointable
Obr´azek 28: Pointable[21] Software pro ovl´ad´an´ı desktopov´ ych aplikac´ı. Cena e4,59. Software umoˇznuje klik, dvojklik, klik prav´ ym i prostˇredn´ım talˇc´ıtkem, pˇresouvat okna, zav´ırat okna a to vˇse jendou rukou. Pomoc´ı kl´aves SHIFT, ALT a CTRL je moˇzn´e pˇrizp˚ usobit kliknut´ı. Toto se n´ach´a v nastaven´ı vypnout. Stejnˇe jako se nechaj´ı nastavit citlivost, rychlost dropletu (zelen´e koleˇcko, kter´e se uk´aˇze na m´ıstˇe, kde chceme kliknout). Pomoc´ı rotace prstu ve smˇeru ˇci protismˇeru hodinov´ ych ruˇciˇcek n´am dovoluje scrollov´an´ı na str´ance ˇci ve sloˇzce. • klik lev´ ym tlaˇc´ıtkem - dojet prstem na pozici a pˇrejet nahoru a dolu pˇrez zelen´ y krouˇzek
35
• klik prav´ ym tlaˇc´ıtkem - dojet prstem na pozici a pˇrejet doprava a doleva k zelen´emu krouˇzku • klik prostˇredn´ım tlaˇc´ıtkem - dojet prstem na pozici a pˇrejet do leva a zpˇet k zelen´emu krouˇzku • SHIFT - simuluje prostˇredn´ı tlaˇc´ıtko myˇsi • ALT - simuluje prav´e talˇc´ıtko • CTRL - simuluje lev´e talˇc´ıtko • roztaˇzen´ı prst˚ u - vyvol´a nab´ıdku programu • ruka s roztaˇzen´ ymi prsty - vyvol´a funkci pˇrep´ın´an´ı oken (alt + tab), rotac´ı dlanˇe se mˇen´ı okna • rotace prstem - skrolov´an´ı • roztaˇzen´ı ukazov´aˇcku a palce nad oknem - aktivace windows managementu (viz n´ıˇze) • n´avod - http://pointable.net/guide/
Obr´azek 29: Pointable - nastaven´ı
36
Program m´a zabudov´an tzv. windows management. Coˇz je funkce, kter´a umoˇznuje pozicovat okna a to na polovinu, ˇctvrtinu, minimalizovat, maximalizovat, nebo vypnout.
Obr´azek 30: Pointable - pozicov´an´ı oken Roztaˇzen´ım prst˚ u se objev´ı nov´a, kruhov´a nab´ıdka tzv. programov´a. Pokud dlan´ı dojedeme vˇzdy dan´ ym smˇerem (nahoru, dolu, doprava, doleva) zachyt´ıme danu ikonu a pˇresunem na stˇred ji pouˇzijeme. Nˇekter´e programy umoˇznuj´ı i rotaci dlan´ı. Takto m˚ uˇzeme napˇr´ıklad mˇenit hlasitost ve Windows Media Playeru.
Obr´azek 31: Pointable - nab´ıdka programu V´ıce k tomuto softwaru m˚ uˇzeme naleznout v online pr˚ uvodci. Tento program nab´ız´ı celkem ˇsirokou ˇsk´alu moˇznost´ı a je jen o zvyku se ho nauˇcit pouˇz´ıvat. Jeho nejvˇetˇs´ı slabinou je ale rychl´a detekce pohybu prstu, takˇze sn´ım´a i m´ırn´e tˇresy. To vytv´aˇr´ı probl´em udrˇzet droplet na m´ıstˇe. 37
3.3.4
Mudra mouse
Obr´azek 32: Mudra mouse[31] Aplikace je dostupn´a pro MS Windows i MacOS. Jedn´a se o jednoduchou, intuitivn´ı a nen´aroˇcnou aplikaci, kter´a simuluje: • lev´ y klik - palec a uk´azov´aˇcek k sobˇe a od sebe • drag and drop - palec a ukazv´aˇcek k sobˇe, drˇzet a t´ahnout • prav´ y klik - palec a prostˇredn´ıˇcek k sobˇe a odsebe • scrollov´an´ı - krouˇziv´ y pohyb prstem Aplikace disponuje jednoduch´ ym nastaven´ım citlivosti, odeˇc´ıt´an´ı pozice kursoru, ˇcasov´ ych prodlev, rychlost scrollov´an´ı, atd.
Obr´azek 33: Mudra mouse - nastaven´ı[31]
38
3.4
Shrnut´ı
Vˇsechny tˇri v´ yˇse zm´ınˇen´e aplikace maj´ı potenci´al ovl´adat poˇc´ıtaˇc a programy, kter´e nejsou urˇcen´e pro Leap Motion. Pˇri vyd´an´ı techonlogie Leap Motion pro veˇrejnost byly dostupn´e pr´avˇe Touchless ve sv´e z´akladn´ı verzi. Tehdy bylo jeho ovl´ad´an´ı troˇsku tˇeˇzkop´adn´e. To se ale zmˇenilo s pˇr´ıchodem nov´e verze softwaru pro kontroler. Program Pointable m´a sv´e poˇc´atky tak´e v zaˇca´tc´ıch vyd´an´ı Leap Motion, nicm´enˇe nastavit ho co nejl´epe je umˇen´ı pro mistry. Program Airinput a Mudra mouse jsou nejnovˇeˇs´ı. Vˇeˇr´ım tomu, ˇze Airinput ve sv´e premuimu verzi, je druh´ y nejv´ yhodnˇejˇs´ı kandid´at, hned po Mudra Mous, pro ovl´ad´an´ı aplikac´ı pro interaktivn´ı tabule a syst´em. Z toho tedy vych´az´ı i vyhodnocen´ı aplikac´ı. Krit´erii byla jednoduchost, intuitivnost, jednoduch´e nastaven´ı, stabilita pohybu. 1. Mudra Mouse 2. Airinput 3. Touchless 4. Pointable Samozˇrejmˇe existuje dalˇs´ı ovl´adac´ı software. Napˇr´ıklad Game WAVE[30] je software pro kontroler, kter´ y umoˇzn ˇuje kompletn´ı ovl´ad´an´ı poˇc´ıtaˇcov´ ych her a syst´emu pomoc´ı r˚ uzn´ ych kombinac´ı gest jednotliv´e ruky a to t´ım stylem, ˇze gestu je pˇriˇrazena akce kl´avesy.
3.5
Z´ ajem uˇ citel˚ u o technologii Leap Motion
Byl proveden dotazn´ıkov´ y pr˚ uzkum (viz 8.2) a to v r´amci akce ”Dalˇs´ıho vzdˇel´av´an´ı ˇ ych Budˇejovic´ıch. uˇcitel˚ u”16 , poˇra´dan´e katedrou informatiky Jihoˇcesk´e univerzity v Cesk´ Vzhledem k nutnosti vyzkouˇsen´ı aplikac´ı a jejich ovl´ad´an´ı nebylo moˇzn´e udˇelat pr˚ uzkum pouze pˇres video. Dotan´ık se skl´adal celkem ze 13 ot´azek, z ˇcehoˇz pro v´ yzkum byly nejd˚ uleˇzitˇejˇs´ı: • Oslovila v´as pˇredstaven´a technologie Leap Motion? • Vidˇeli byste potenci´al ve vyuˇzit´ı Leap Motion ve v´ yuce? 16
http://wvc.pf.jcu.cz/ki/?article=/uchazec/dalsi-vzdelavani-ucitelu-informatiky.
html
39
• Co byste u t´eto technologie ocenili, nebo naopak zkritizovali? • L´ıbila se v´am nab´ıdka aplikac´ı? • Pˇriˇslo v´am ovl´ad´an´ı vyzkouˇsen´ ych aplikac´ı intuitivn´ı? • Pouˇzili byste zaˇr´ızen´ı Leap Motion ve sv´e v´ yuce? Kromˇe tˇret´ı ot´azky, kter´a byla tvoˇrena dlouhou odpovˇed´ı, d´avaly zbyl´e na v´ ybˇer z moˇznost´ı ano a ne. Jednalo se o uˇcitele technick´ ych i pˇr´ırodovˇedn´ ych obor˚ u r˚ uzn´eho vˇekov´eho uskupen´ı s r˚ uznou dobou uˇcitelsk´e praxe. 3.5.1
Vyhodnocen´ı dotazn´ıku
Oslovila v´ as pˇ redstaven´ a technologie Leap Motion? Z celkov´eho poˇctu 20 dot´azan´ ych odpovˇedˇelo kladnˇe 16 respondent˚ u.
Obr´azek 34: Oslovila v´as pˇredstaven´a technologie Leap Motion?
40
Vidˇ eli byste potenci´ al ve vyuˇ zit´ı Leap Motion ve v´ yuce? Z celkov´eho poˇctu 20 dot´azan´ ych odpovˇedˇelo 19, kladnˇe pak 11 respondent˚ u.
Obr´azek 35: Z celkov´eho poˇctu 20 dot´azan´ ych odpovˇedˇelo 19, kladnˇe pak 11 respondent˚ u.
Co byste u t´ eto technologie ocenili, nebo naopak zkritizovali? Z celkov´eho poˇctu 20 dot´azan´ ych odpovˇedˇelo 14. Vˇetˇsinˇe se l´ıbila interaktivita, ale odrazovala je sloˇzitost ovl´ad´an´ı aplikac´ı. Nˇekter´ ym vadil i nedostatek softwarov´eho z´azem´ı. L´ıbila se v´ am nab´ıdka aplikac´ı? Na tuto ot´azku odpovˇedˇelo odpovˇedˇelo 17 respondent˚ u, kladnˇe pak 13 respondent˚ u.
Obr´azek 36: L´ıbila se v´am nab´ıdka aplikac´ı?
41
Pˇ riˇ slo v´ am ovl´ ad´ an´ı vyzkouˇ sen´ ych aplikac´ı intuitivn´ı? Na tuto ot´azku odpovˇedˇelo 19, kladnˇe pak 14 respondent˚ u.
Obr´azek 37: Pˇriˇslo v´am ovl´ad´an´ı vyzkouˇsen´ ych aplikac´ı intuitivn´ı?
Pouˇ zili byste zaˇ r´ızen´ı Leap Motion ve sv´ e v´ yuce? Na tuto ot´azku odpovˇedˇelo 20 respondent˚ u, kladnˇe pak 12 respondent˚ u.
Obr´azek 38: Pouˇzili byste zaˇr´ızen´ı Leap Motion ve sv´e v´ yuce?
42
3.5.2
Shrnut´ı dotazn´ıku
Uˇcitele technologie Leap Motion zaujala. Nicm´enˇe je odradila nutnost uˇcit se nov´e ovl´ad´an´ı i kdyˇz jim pˇriˇslo intuitivn´ı. To bylo nejvˇetˇs´ı zdrˇzen´ı ve v´ yuce. Proto by ho vˇetˇsina uˇcitel˚ u doporuˇcila sp´ıˇse jako interaktivn´ı doplnˇek. 60% uˇcitel˚ u by pak tuto technologii pouˇzilo ve sv´e vlastn´ı v´ yuce, 55% pak vid´ı v nov´em zaˇr´ızen´ı vˇetˇs´ı potenci´al. Dalˇs´ı omezuj´ıc´ım faktorem byl nedostatek v´ yukov´ ych aplikac´ı. Kompletn´ı vyhodnocen´ı za pomoci Google Forms v pˇr´ıloze 8.3.
43
4
Praktick´ aˇ c´ ast - vlastn´ı v´ yukov´ a aplikace
V t´eto ˇc´asti se budu vˇenovat popisu v´ yvoje aplikace pro technologie Leap Motion a to za pomoci pouˇzit´ı program˚ u Blender17 , hern´ıho enginu Unity 3D a v Uinity integrovan´e v´ yvojov´e prostˇred´ı MonoDevelop. To slouˇz´ı pro psan´ı skript˚ u pro jazyk C# a JavaScript. Disponuje jako vˇetˇsina IDE18 naˇsept´avaˇcem bohuˇzel bez n´apovˇedy.
4.1
T´ ema aplikace
Zvolen´e t´ema se jmenuje Sluneˇcn´ı soustava. To jsem vybral proto, ˇze mˇe vesm´ır vˇzdy fascinoval a proletˇet se po ml´eˇcn´e dr´aze a pod´ıvat se na planety z bl´ızka, jako z nˇejak´eho dokument´arn´ıho filmu by mohlo ˇz´aky takt´eˇz velice zaujmout. D˚ uleˇzit´a str´anka aplikace je i jej´ı vizualizace jako textury, sluneˇcn´ı z´aˇre, asteroidov´e p´asy, rotace planet a jejich mˇes´ıc˚ u, popˇr´ıpadˇe nˇejak´eho vesm´ırn´eho satelitu, napˇr. ISS19 Bohuˇzel jsem s 3D grafikou nikdy nepracoval a tak bylo obt´ıˇzn´e dohnat alespoˇ n minimum potˇrebn´ ych znalost´ı. Stejnˇe tak bylo nutn´e proj´ıt spoustu tutori´al˚ u[22] k Unity a vyuˇz´ıvat vˇsemoˇzn´e zdroje, aby bylo doc´ıleno chtˇen´eho v´ ysledku.
4.2
Popis aplikace a jej´ı c´ıle
C´ılem aplikace je uk´azat ˇz´ak˚ um co nejvˇernˇeji a nejjednoduˇseji naˇsi Sluneˇcn´ı soustavu. Ovl´ad´an´ı pomoc´ı kontroleru by mˇelo b´ yt intuitivn´ı a co nejjednoduˇs´ı. Informace k planet´am a mˇes´ıc˚ um jsou pˇrˇcevz´any ze str´anek Aldebaran[44] a informaˇcn´ıho serveru NASA[45]. Aplikace se skl´ad´a ze ˇctyˇr hlavn´ıch sc´en: • Intro • Hlavn´ı sc´ena • Sc´ena porovn´an´ı planet • Kv´ız
17
http://www.blender.org/ Integrated development enviroment 19 International Space Station - mezin´arodn´ı vesm´ırn´a stanice 18
44
Intro je vlastnˇe sc´ena s menu. Zde bylo vytvoˇreno nˇekolik tlaˇc´ıtek a to: • Sluneˇcn´ı soustava - pˇrepne do hlavn´ı sc´eny • Porovn´an´ı objekt˚ u • Kv´ız • O aplikaci - informace o autorovi, a zdroj´ıch pouˇzit´ ych k v´ ytvoˇren´ı aplikace • Konec - ukonˇc´ı aplikaci Hlavn´ı sc´ena pak obsahuje kl´ıˇcov´e prvky aplikace. Jedn´a se o mode Sluneˇcn´ı soustavy, kter´ y je moˇzno ”prol´etnout”d´ıky kontroleru Leap Motion. Ten obsahuje jednotliv´e planety a p´as asteroid˚ u mezi Marsem a Jupiterem. Posledn´ı sc´ena je porovnovn´an´ı planet v mˇeˇr´ıtku vzhledem ke Slunci.
4.3
V´ yvoj aplikace
V´ yvoj aplikace proch´azel nˇekolika f´azemi. 1. V prvn´ı f´azi byla navrhnuta myˇslenkov´a mapa (viz Obr´azek 55) s t´ım, co vˇse by mˇela aplikace obsahovat. Rozvrhnut´ı a popis sc´en, navrˇzen´ı ovl´ad´an´ı, navrhnut´ı uˇzivatelsk´eho rozhran´ı. 2. Tato f´aze byla zamˇeˇrena na nabyt´ı znalost´ı co se t´ yˇce 3D grafiky a pouˇz´ıv´an´ı Unity 3D [22]. Tato ˇca´st zabrala nejv´ıce ˇcasu a d´a se ˇr´ıci, ˇze mˇe prov´azela i zbyl´ ymi f´azemi, protoˇze se poˇr´ad objevovaly nov´e probl´emy. 3. V t´eto ˇca´sti v´ yvoje byly vytvoˇreny jednotliv´e sc´eny. byly propojeny, ps´any skripty, vkl´ad´any modely. 4. Pˇred koneˇcnou finalizac´ı bylo nutn´e aplikaci otestovat alespoˇ n v moˇzn´ ych dostupn´ ych podm´ınk´ach. Toto testov´an´ı prob´ıhalo na spoluˇz´ac´ıch, ve ˇskole a v r´amci rodiny. 5. Koneˇcn´a f´aze v´ yvoje aplikace. Zde doˇslo na skompletov´an´ı aplikace.
45
4.3.1
Prostˇ red´ı Unity 3D
Prostˇred´ı Unity 3D nen´ı software pro modelov´an´ı 3D grafiky, jak by se mohlo z n´azvu zd´at, ale jedn´a se o hern´ı engine. To znamen´a, ˇze pracuje s jiˇz hotov´ ymi modely a objekty, na kter´e pˇrid´av´a jednotliv´e komponenty, kter´e zajiˇst’uj´ı objektu r˚ uzn´e funkce, jako fyzik´aln´ı z´akony, nepr˚ uchodnost svˇeteln´ ych paprsk˚ u, textury, kolize, navigace, hudebn´ı zdroje, skripty a mnoho dalˇs´ıho. Rozvrˇzen´ı okna je nen´ı nic neobvykl´eho. S podobn´ ym rozdˇelen´ım komponent se setk´ame ve vˇetˇsinˇe 3D editor˚ u. nav´ıc se nechaj´ı jednotliv´e komponenty pˇresouvat tak, jak to vyhovuje uˇzivateli. 1. N´astroje pro z´akladn´ı editaci objekt˚ u (posuv, rotace, zmˇena velikosti, ...) 2. Hlavn´ı okno editoru - v m´em pˇr´ıpadˇe rozdˇelen´e na rendrovac´ı ˇca´st a ˇca´st sc´eny 3. Z´aloˇzka se seznamem objekt˚ u vloˇzen´ ych ve sc´enˇe 4. Inspektor - Zde se nastavuj´ı veˇsker´e vlastnosti vybran´eho objektu a pˇrid´avaj´ı komponenty 5. Liˇsta s nˇekolika z´aloˇzkami (a) Project - zloˇzky projektu, Unity pracuje s tzv. Assety (jednotliv´e sloˇzky se vˇs´ım, co potˇrebujeme ke tvorbˇe) (b) Console - klasick´a console pro hl´aˇsen´ı chyb (c) Animation - okno anim´atoru, kde je moˇzn´e kl´ıˇcovat jednotliv´e sn´ımky a animovat pohyb a chov´an´ı objekt˚ u Pohyb v oknˇe sc´eny je pomoc´ı myˇs´ı. Prv´e tlaˇc´ıtko posun sc´eny, scrollov´an´ım zoomujeme a prav´ ym se prov´ad´ı rotace sc´eny pro lepˇs´ı n´ahled a pˇr´ıstup k objekt˚ um. D´ıky oknu projektu m˚ uˇzeme textury, skripty, shadery, objekty a dalˇs´ı vˇeci pˇriˇrazovat objekt˚ um napˇr´ımo pouh´ ym presunem na urˇcen´e pol´ıˇcko v Inspektoru. I pˇresto, ˇze s enejdn´a o modelovac´ı program, dok´aˇze Unity vytvoˇr´ıt p´ar z´akladn´ıch 3D objekt˚ u. Bohuˇzel uˇz je nedok´aˇze modifikovat na vyˇsˇs´ı u ´rovni neˇz je zmenˇsov´an´ı / zvˇetˇsov´an´ı, posun, nebo rotace. To sice omezuje, ale od tohou je zde software tˇret´ıch stran jako Blender nebo Daz 3D20 . 20
http://www.daz3d.com/home
46
Obr´azek 39: Okno Unity editoru
Obr´azek 40: Okno Unity editoru - tvorba z´akladn´ıch 3D objekt˚ u
47
Dalˇs´ımi potˇrebn´ ymi prvky pro pr´aci na sc´enˇe je zvukov´e pozad´ı, ˇc´asticov´ y syst´em a hlavnˇe pr´ace se svˇetlem[23] a to: • vˇsesmˇerov´e svˇetlo - nech´a se nastavit radius • bodov´e svˇetlo - nech´a se nastavit polomˇer dosahu a u ´hel osv´ıcen´ı (svˇetlomet) • smˇerov´e svˇetlo - sv´ıt´ı jedn´ım svˇerem Bohuˇzel prostˇred´ı Unity ve verzi zdarma neum´ı vrhat st´ıny pˇri pouˇzit´ı vˇsesmˇerov´eh´e svˇetla. Coˇz je probl´em, pokud chceme zn´azornit st´ın an pohybuj´ıc´ım se pˇredmˇetu. Naneˇstˇest´ı se tento probl´em nech´a obej´ıt pouˇzit´ım bodov´eho svˇetla, kter´e sleduje pohybuj´ıc´ı se pˇredmˇet. Nˇekter´a svˇetla mohou vyuˇz´ıt tzv. cucoloris nebo cookies. Coˇz je vlastnˇe maska, kter´a umoˇznuje vytv´aˇret r˚ uzn´e druhy st´ın˚ u [24].
Obr´azek 41: Smˇerov´e svˇetlo - Cucoloris Detailnˇejˇs´ı popis vˇsech funkc´ı a pr´ace s nimi je samozˇrejmˇe dostupn´ y v online dokumentaci [25]. Jeˇstˇe je potˇreba se v´ıce zm´ınit o tzv. assetech. Coˇz jsou pˇredpˇripraven´e sc´eny, skripty, gener´atory, kter´e usnadˇ nuj´ı v´ yvoj aplikace. Tyto assety lze z´ıskat z tzv. asset store [26], coˇz je obchod pr´avˇe pro tyto pˇredpˇripraven´e d´a se ˇr´ıci doplˇ nky pro Unity 3D. I j´a s´am jsem jeden vyuˇzil a to SpaceBuilder: Genesis [27]. Ten umoˇzn ˇuje vytvoˇren´ı vesm´ırn´eho 48
prostoru i s tvorbou planet. Tento doplˇ nˇek byl ale v m´e pr´aci vyuˇzit pouze k vygenerov´an´ı hvˇezdn´eho pozad´ı a p´asu asteroid˚ u mezi planetou Mars a Jupiter. Nˇekter´e assety jsou zdarma. Jsou rozdˇeleny do r˚ uzn´ ych kategori´ı podle potˇreby uˇzivatele. Jedin´e omezen´ı b´ yv´a pouˇzit´ı na jednotliv´e verze Unity, konkr´etnˇe na verzi Pro. D´ale je zde moˇzn´e z´ıskat i zvukov´e soubory, kompletn´ı projekty, skripty, ˇc´asticov´e syst´emy, 3D modely, animace, textury a materi´al, shadery21 a dalˇs´ı. 4.3.1.1
Skriptov´ an´ı
Unity 3D umoˇzn ˇuje skriptovat ve dvou jazyc´ıch: • C# • JavaScript Kaˇzd´ y objekt m˚ uˇze m´ıt aˇz nˇekolik skript˚ u. Jak bylo zm´ınˇeno v´ yˇse, Unity disponuje prostˇred´ım MonoDevelop. Pokud je promˇen´a ve skriptu jako public objev´ı se v prostˇred´ı Unity jako vyplˇ novac´ı pol´ıˇcko (viz Obr´azek 42). Objekt typu Transform m˚ uˇze zastupovat jak´ ykoli objekt, kter´ y urˇc´ıme. To umoˇzn ˇuje velkou flexibilitu programu, protoˇze z dan´eho objektu pak m˚ uˇzeme dostavat r˚ uzn´e u ´daje nejen o objektu, ale i komponent´ach, kter´e objekt m´a. Kaˇzd´ y skript, kter´ y se pˇrid´ava objektu, mus´ı b´ yt odvozeny od MonoBehavior[36]. To je z´akladn´ı tˇr´ıda, kter´a obsahuje z´akladn´ı metody pro pouˇzit´ı v programu. Nejd˚ uleˇzitˇejˇs´ı z nich je Update, kter´a se vol´a pˇri kaˇzd´em nov´em framu aplikace. public class MovingCameraByLeap: MonoBehaviour { public Transform target ; public float speed = 5.0f;
4.3.1.2
Animace
Prostˇred´ı Unity disponuje i Anim´atorem. Ten funguje na principu kl´ıˇcov´an´ı sn´ımk˚ u. Pokud chceme vytv´aˇret novou animaci, mus´ıme nejprve vytvoˇrit nov´ y soubor s koncovkou *.controller. Pot´e m˚ uˇzeme v jednom ˇcasov´em okamˇziku nastavit objektu jedny hodnoty a v druh´em ˇcasov´em okamˇziku jin´e hodnoty. Pokud animaci spust´ıme, objekt se plynule pˇretransformuje do poˇzadovan´eho tvaru, um´ıstˇen´ı, textury, ... Animace se v 21
http://cs.wikipedia.org/wiki/Shader
49
Obr´azek 42: Vliv veˇrejn´ ych promˇenn´ ych na zobrazen´ı v Unity z´akladn´ım nastaven´ı pˇrehr´av´a dokola. Pokud klikneme na soubor animac´ı m˚ uˇzeme toto v inspektoru vypnout. D´ale je moˇzn´e nastavovat pomoc´ı anim´atoru podm´ınky, za jak´ ych se bude animace prov´adˇet, napˇr´ıklad v z´avislosti na promˇen´ ych ve skriptu.
Obr´azek 43: Anim´ator, animace, kl´ıˇcov´an´ı Vˇse potˇrebn´e je pops´ano v pˇrehledn´em online dokumentu Unity - Scripting API [35]. Jazyk skript˚ u se nech´a kombinovat, to znamen´a, ˇze na jednom objektu m˚ uˇze b´ yt skript psan´ y jak v C# tak v JavaScriptu. Skripty pouˇzit´e v t´eto apliakci jsou souˇca´st´ı pˇr´ılohy.
50
5
Aplikace - Sluneˇ cn´ı soustava
Jak jiˇz bylo zm´ınˇeno v metodˇe pr´ace, cel´a aplikace se skl´ad´a ze ˇctyˇr sc´en, kter´e jsou pops´any v sekci 5.5. Kaˇzd´a sc´ena obsahuje 2 kamery: • Hlavn´ı kamera - ta se pohybuje a zab´ır´a sc´enu • UI kamera - kamera na kterou je vykresleno uˇzivatelsk´e rozhran´ı (User Interface) Pomoc´ı skritpt˚ u m˚ uˇzeme pˇrepoˇc´ıt´avat koordinace a to napˇr´ıklad z 3D sc´eny, kdy jsou jako Vector3 (x, y, z) pˇrepoˇc´ıt´any na souˇradnice pro obrazovku WorldToScreenPoint (Vector3 vector)[35], nebo opaˇcnˇe. V jednom pˇr´ıpadˇe je potˇreba vektor ve tˇrech smˇerech, v druh´em pak pozice myˇsi na obrazovce. MainCam.WorldToScreenPoint(transform.position);
5.1
Interakce Leap Motion
Jak vytvoˇrit nov´ y objekt kontroleru je posp´ano v sekci 2.2.1.1. Tato kapitola se zab´ yv´a t´ım, jak je to s ovl´ad´an´ım velikost´ı planet, rychlosti rotace, a pohybem po sc´en´ach a po obrazovce.
5.2
Pohyb po obrazovce
Cel´a interakce kurzoru stoj´ı na k´odu, kter´ y vytvoˇril Pohung Chen [38]. Jen je m´ırnˇe upraven´ y pro detekci kliknut´ı (viz 5.3.1.1). Pozice ukazov´aˇcku je znozornˇena ˇsedivou kruˇznic´ı. ˇ ım bl´ıˇze se ukazov´aˇcek bl´ıˇz´ı k monitoru, t´ım se kruˇznice zmenˇsuje, dokud nedos´ahneme C´ interakˇcn´ı vzd´alenosti, coˇz je vlastnˇe nulov´a pozice. Jedn´a se v podstatˇe o virtu´aln´ı dotykovou plochu. Cel´a detekce se skl´ad´a ze dvou tˇr´ıd LeapFingerDraw.cs a LeapInput.cs. Prvn´ı vykresluje kruhov´ y kurzor na pozici ukazov´aˇcku, druh´a zajiˇst’uje, jestli se ukazuje a jak daleko jsme od nulov´e pozice. Pokud se dostaneme za virtu´aln´ı dotykovou plochu, zmˇen´ı se kurzor na mal´e zelen´e koleˇcko. Pokud opˇet odjedeme ze stejn´e pozice, detekuje se toto jako kliknut´ı na dan´e pozici. Vˇse by mˇelo b´ yt prov´adˇeno plynule, bez trhan´ ych pohyb˚ u.
51
5.3
Pohyb ve sc´ enˇ e
Pohyb ve sc´enˇe se skl´ad´a ze tˇr´ı z´akladn´ıch akc´ı: • Interakce s UI a planetami • Pohyb po sc´enˇe • Ovl´ad´an´ı gesty 5.3.1
Interakce s uˇ zivatelsk´ ym rozhran´ım a planetami
ˇ ast t´eto sekce byla pops´ana v´ıˇse (viz 5.2). Proto se bude zab´ C´ yvat tlaˇc´ıtky a jejich metodami.Pˇres okno hierarchie a tlaˇc´ıtko create nebo pˇres liˇstu n´astroj˚ u GameObject vloˇz´ıme UI prvek Button. Ten se automaticky vloˇz´ı do canvasu.Kaˇzd´ y objekt m˚ uˇze b´ yt potomkem jin´eho. Od toho se pot´e odvij´ı hodnota pozice souˇradnic. Kaˇzd´emu objektu tak´e m˚ uˇzeme nastavit pozici tzv. pivotu. To je bod, od kter´eho se hodnoty pˇriˇc´ıtaj´ı ˇci odˇc´ıtaj´ı.
Obr´azek 44: Pozice pivotu: na levo (0.5 , 0.5) v pravo (0, 0) Grafika pro tlaˇc´ıtka planet jsou od Dana Wiersema[41] a pro zbyl´a tlaˇc´ıtka z volnˇe dostupn´eho setu od Unity[40]. Fonty jsou od Ndiscovered [42] a Tracer Tong[43]. Tlaˇc´ıtko se samo o sobˇe skl´ad´a defaultnˇe z nˇekolika komponent a to Image a Button. Obˇe komponenty jsou skritpy. Image n´am ˇr´ık´a, jestli m´a tlaˇc´ıtko nˇejak´a obr´azek, Button n´am umoˇzn ˇuje nastaven´ı stavov´ ych akc´ı jako highlited, pressed, disabled, normal. Umoˇzn ˇuje nˇekolik moˇznost´ı interakce: • Animace • Zmˇena barvy • Zmˇena ikony 52
Animace umoˇzn ˇuje animovat jednotliv´e stavy tlaˇc´ıtka za pomoci anim´atoru (viz 4.3.1.2). Zmˇena barev znamen´a jednoduch´e podbarven´ı nebo zbarven´ı tlaˇc´ıtka pˇri dan´em stavu a vneposledn´ı ˇradˇe m˚ uˇzeme mˇenit obr´azek ikony. Skript Button tak´e obsahuje pˇrednastavenou funkci OnClick(). Pˇrid´an´ım akce se zobraz´ı poloˇzka, kter´a vyˇzaduje objekt se scriptem, ve kter´em se nach´az´ı funkce, kterou chceme pouˇz´ıt. Po pˇr´ıd´an´ı objektu n´am rozbalovac´ı menu nab´ıdne pˇrehled komponent. Vybereme n´ami poˇzadovanou a vybereme konkr´etn´ı metody. Aby byla metoda pˇr´ıstupn´a, mus´ı b´ yt public a void. Jako argument m˚ uˇze b´ yt pouˇzita ˇc´ıseln´a hodnota nebo hern´ı objekt.
Obr´azek 45: Vlastnosti tlaˇc´ıtka Tlaˇc´ıtko na obr´azku m´a na metodu OnClick() pˇrid´an objekt ApplicationController, kter´ y obsahuje kompnentu (skript) UIManagerAnimationScript a tato tˇr´ıda pot´e obsahuje metodu toogleMenu(). Ta zajiˇst’uje vyj´ıˇzdˇen´ı panelu s tlaˇc´ıtky s planetami. 53
public Animator contentPanel;
public void toogleMenu(){ contentPanel.enabled = true; bool isHidden = contentPanel.GetBool ("isHidden"); contentPanel.SetBool ("isHidden", !isHidden); }
5.3.1.1
Kliknut´ı aneb zobraz panel pomoc´ı Leap Motion
Kliknut´ı na planetu pomoc´ı Leap Motion je uskuteˇcnˇen pomoc´ı tzv Ray Castu. Jedn´a se vlastnˇe o paprsek vyslan´ y, z kamery na pozici kurzoru, dopˇredu. Tento paprsek m´a nˇekolik variant. Bud’ se vr´at´ı po n´arazu na prvn´ı objekt nebo prol´ıtne do nekoneˇcna a vr´at´ı list vˇsech objekt˚ u, kter´ ymi proletˇel. N´ıˇze je uk´azka k´odu pro zjiˇstˇen´ı kliknut´ı na planetu. V unity je nejsnaˇz´ı hledat objekty pomoc´ı n´azvu. Ten mus´ı odpov´ıdat n´azvu v editoru. RaycastHit hit;
//vytvoˇ ren´ ı nov´ eho paprsku
Ray rayTest = MainCam.ViewportPointToRay(screenPos); //odkud parpsek bude vych´ azet if(Physics.Raycast(rayTest, out hit)){ ObjectName = hit.transform.gameObject.name;
// pokud na nˇ eco naraz´ ı //zjisti n´ azev objektu do
kter´ eho si narazil ObjectClicked oc=GameObject.Find (name).GetComponent
(); //z nalezen´ eho objektu dostaneme komponentu oc.SetActive(); //proveden´ a akce (zobrazen´ ı infromaˇ cn´ ıo panelu) }
Bohuˇzel UI pracuje troˇsku jinak. Zde mus´ıme pouˇz´ıt PointerEventData. Zbytek uˇz je podobn´ y pˇredchoz´ımu pˇr´ıpadu. Zde dost´av´ame vˇsak seznam objekt˚ u. PointerEventData pointer = new PointerEventData(EventSystem.current); //objekt eventu ukazatele pointer.position = UIcam.ViewportToScreenPoint(screenPos); //v´ ychoz´ ı pozice List rayResult = new List(); //list objekt˚ u EventSystem.current.RaycastAll(pointer, rayResult);
54
//vysl´ an´ ı paprsku
if(rayResult.Count >0){
//naˇ sli jsme nˇ eco?
buttonName = rayResult[0].gameObject.transform.parent.gameObject.name; //najdi nazev objektu Button button = GameObject.Find (name).GetComponent<Button> (); //vytvoˇ r objekt tlaˇ c´ ıtka button.onClick.Invoke (); //spust’ akci na tlaˇ c´ ıtku}
Cel´ y k´od je dostupn´ y v pˇr´ıloze (viz pˇr´ıloha: 8.1.1). 5.3.2
Pohyb po sc´ enˇ e
Pohyb po sc´enˇe je realizov´an otevˇrenou dlan´ı s roztaˇzen´ ymi prsty a to tak ˇze: • Pohyb bl´ıze k monitoru je pohyb dopˇredu, naopak d´ale od monitoru dozadu (posun ˇ ım je vzd´alenost od stˇredu kontroleru vˇetˇs´ı, t´ım je rychlost vˇetˇs´ı. v ose Z). C´ • Pohybem ruky doprava nebo doleva se ot´aˇc´ı kamera v ose Y. • Rotac´ı dlanˇe okolo osy se ot´aˇc´ı kamera v ose Z. • Zvednemeli dlaˇ n nahoru nebo dol˚ u, rotuje kamera okolo osy X. • Pohyb d´ale ˇci bl´ıˇze ke kontroleru znamen´a posun kamery nahoru nebo dol˚ u (posun v ose Y). Rychlost se mˇen´ı se vzd´alenost´ı. Uk´azka k´odu rotace kamery v pravo a v levo. void rotateRL(Hand hand) { float rotThreshold = 0.0f; float handX = hand.PalmPosition.ToUnityScaled ().x;
if (Mathf.Abs (handX) > rotThreshold) { transform.Rotate (Vector3.up, handX * 2.0f); }
}
Cel´ y kod je k dispozici jako pˇr´ıloha (viz 8.1.2).
55
5.3.3
Ovl´ ad´ an´ı gesty
Ve sc´enˇe se objevuj´ı tˇri z´akladn´ı gesta: • Rotace ukazov´aˇckem - scale planet • Rotace ukazov´aˇckem a prostˇredn´ıˇckem - rychlost rotace planet • Pinch gesto - jemnˇejˇs´ı posun kamery dopˇredu nebo dozadu (palec a ukazov´aˇcek k sobˇe ⇒ posun ruky ⇒ uvolnˇen´ı prst˚ u)
Obr´azek 46: Pinch gesto Uk´azka n´ıˇze ukazuje k´od pro zvˇetˇsov´an´ı a zmenˇsov´an´ı planet. Cel´ y k´od je dostupn´ y v pˇr´ıloze (viz 8.1.3) for (int i = 0; i < gl.Count; i++) { Gesture gesture = gl[i]; //velikost planet pomoc´ ı kruhov´ eho gesta ukazov´ aˇ cku if(gesture.Type == Gesture.GestureType.TYPE_CIRCLE && finger.Type() == Finger.FingerType.TYPE_INDEX && finger.IsExtended && fl.Extended().Count == 1) //detekce kruhov´ eho gesta a prstu, kter´ y ho vykon´ av´ a { CircleGesture circleG = new CircleGesture(gesture); Vector circleDirection = frame.Pointables.Frontmost.Direction; //jak´ ym smˇ erem je gesto prov´ adˇ eno float angle = circleDirection.AngleTo(circleG.Normal); if(SpaceObjectsScaling.planetScale2 <= 50.0){ 21
http://en.wikipedia.org/wiki/Multi-touch
56
//´ uhel
if(angle<= (3.14/4)&& SpaceObjectsScaling.planetScale2 != 50.0){ SpaceObjectsScaling.planetScale2 += 1f; //zvˇ etˇ sen´ ı velikosti o 1 }else if(angle >= (3.14/4))
//proti smˇ eru hodinov´ ych ruˇ ciˇ cek
double isSmall = SpaceObjectsScaling.planetScale-1.0; if(isSmall >= 2.0) SpaceObjectsScaling.planetScale2 -= 1f; //zmenˇ sen´ ı velikosti o 1 } } }
5.4
Planety
Pro model planet bylo nutno vyrobit model koule o vˇetˇs´ım poˇctu vertex˚ u, protoˇze jinak by pˇri pˇribl´ıˇzen´ı byly vidˇet nepravideln´e hrany v daleko vˇetˇs´ı m´ıˇre. Toho bylo doc´ıleno v programu Blender 3D. Pot´e bylo nutno nal´ezt textury na planety. Ty byly nalezeny na nˇekolika webov´ ych str´ank´ach [32],[33],[34]. Planety byly v prostˇred´ı rozm´ıstˇeny do vzd´alenosti odpov´ıdaj´ıc´ı v pomˇeru vzd´alenost´ı 1000 jednotek od stˇredu coˇz je rovno 1 astronomick´e jednotce (1 AU). Vˇetˇsina planet m´a shader typu diffuse nebo bumped diffuse. Rozd´ıl mezi nimi je ten, ˇze bumbed diffuse umoˇzn ˇuje sm´ıch´an´ı dvou textur, obyˇcejn´e a plastick´e mapy. Proto textura planety Zemˇe vypad´a vystoupleji. Nˇekter´e planety ob´ıhaj´ı jejich mˇes´ıce. Vˇsechny planety se ot´aˇcej´ı kolem Slunce a kolem sv´e osy.
Obr´azek 47: Slunce s panelem a zelen´ ym indik´atorem kliknut´ı 57
D´ale maj´ı vˇsechny planety komponentu Rigid Body, kter´a umoˇzn ˇuje ovl´ad´an´ı objektu skrz fyziku Unity editor, a Sphere Collider, kter´a hl´ıd´a kolize a zabraˇ nuje napˇr´ıklad svˇeteln´ ym efekt˚ um proch´azet skrze textury planet. Tyto komponenty jsou potˇrebn´e ke zjiˇstˇen´ı kliknut´ı pomoc´ı skritpu a metody OnMouseDown() a OnMouseUp(), kter´e zobrazuj´ı informaˇcn´ı panel v reˇzimu bez Leap Motion kontroleru[39]. public class ObjectClicked: MonoBehaviour{ public GameObject panel; public Camera cam; Vector3 startMousePosition; Vector3 endMousePosition; void OnMouseDown(){ startMousePosition = cam.ScreenToWorldPoint (Input.mousePosition);} void OnMouseUp() { endMousePosition = cam.ScreenToWorldPoint (Input.mousePosition); if(startMousePosition == endMousePosition) panel.SetActive (!panel.activeSelf);} public void SetActive(){ panel.SetActive (!panel.activeSelf);} }
5.4.1
Slunce
Jedin´a planeta s jin´ ym shaderem je Slunce. To m´a self-illumin shader pro pr˚ uchod svˇetla zevnitˇr skrze texturu. Z´aroveˇ n s t´ım m´a na sobˇe nˇekolik efekt˚ u: • Vˇsesmˇerov´e svˇetlo • Halo efekt - vytv´aˇr´ı jednoduchou iluzi korony • Rotace textury - simuluje efekt pohybu atmosf´ery • Flare - vytv´aˇr´ı efekt paprsk˚ u
58
Obr´azek 48: Pohled na Slunce z Venuˇse
5.5
Sc´ eny
Cel´a aplikace je rozdˇelena do ˇctyˇr sc´en a to: 1. Intro - u ´vodn´ı obrazovka s menu 2. Hlavn´ı sc´ena - stˇeˇzejn´ı sc´ena aplikace 3. Sc´ena porovn´an´ı - sc´ena pro porovn´an´ı velikosti planet a hvˇezd 4. Kv´ız - jednoduch´ y kv´ız sloˇzen´ y z infromac´ı v aplikaci 5.5.1
Intro
Intro je u ´vodn´ı obrazovka. Obsahuje vlastnˇe jenom rozcestn´ık ro jednotliv´ ych sc´en, titulky, tlaˇc´ıkto pro ukonˇcen´ı aplikace a tutori´al. Pokud se bˇehem nˇekolika sekund nepˇrepneme do jin´e sc´eny, tak se zmˇen´ı pohled kamery a to tak, ˇze dojede k Zemi a natoˇc´ı se na slunce. Titulky s podˇekov´an´ım a zdroji se zobraz´ı v posuvn´em panelu. Tutorial je panel s obr´azky pohybu ruky. Uk´azka k´odu naˇc´ıt´an´ı sc´eny. Jednotliv´e sc´eny mus´ı b´ yt pˇrid´any do build dialogu (viz Obr´azek: 53). Ve scriptu se pak sc´ena naˇc´ıt´a bud’ celoˇc´ıselnou hodnotou, kter´a je vidˇet i ve zm´ınˇen´em dialogu, ˇci textov´eho ˇretˇezce jako n´azev sc´eny.
59
Obr´azek 49: Obrazovka intra
public void loadMainScene(){ Application.LoadLevel("mainScreen"); } public void loadComparationScene(){ Application.LoadLevel("compare"); } public void loadMenu(){ Application.LoadLevel("intro"); }
public void exitApp(){ Application.Quit (); }
60
5.5.2
Hlavn´ı sc´ ena
Sc´ena s modelem sluneˇcn´ı soustavy. Tato sc´ena obsahuje: • Slunce • 8 planet • 1x trpasliˇc´ı planeta • P´as asteroid˚ u mezi Marsem a Jupiterem • Nˇekolik mˇes´ıc˚ u V prav´em horn´ım okraji se nach´az´ı tlaˇc´ıtko pro rozbalovac´ı menu. To obsauje ikony planet. Po kliknut´ı se kamera pˇresune k dan´e planetˇe a otoˇc´ı se na Slunce. V lev´em horn´ım rohu je talˇc´ıtko pro n´avrat do menu. Ve spodn´ı ˇca´sti obrazovky se nach´az´ı informaˇcn´ı text o vzd´alenosti od Slunce. Kaˇzd´a planeta m´a nad sebou sv˚ uj n´azev. Ten z˚ ust´av´a pˇrichycen u boku obrazovky, pokud je planeta mimo pˇr´ım´ y dohled. Nav´ıc napom´ah´a orientaci v tmav´em voln´em 3D protoru. Ovl´ad´an´ı sc´eny je posp´ano v kapitole 5.2.
Obr´azek 50: Pohled na sluneˇcn´ı soustavu se zvˇetˇsen´ ymi planetami
61
5.5.3
Sc´ ena porovn´ an´ı
Kamera v t´eto sc´enˇe zaˇc´ına na pozici, kdy zab´ır´a Slunce a pˇred n´ım jsou naskl´ad´any planety. Smˇerem doleva se nach´az´ı v´ ybˇer zn´am´ ych hvˇezdy vˇetˇs´ıch neˇz naˇse Slunce a to v tomto poˇrad´ı: 1. Slunce 2. Sirius 3. Pollux 4. Aldebaran 5. Rigel 6. Betelgueze 7. UY Scuti Sc´ena obsahuje talˇc´ıtko pro reset kamery do v´ ychoz´ı polohy. To m´a ikonu slunce a nach´az´ı se pod tlaˇc´ıtkem menu.
Obr´azek 51: Porovn´avac´ı sc´ena
62
5.6
Kv´ız
Kv´ız je sc´ena, ve kter´e se snaˇz´ıte roztoˇcit Zemi poˇctem spr´avn´ ych odpovˇed´ı. Ty vid´ıte pod oknem s ot´azkou. Odpovˇedi na jednotliv´e ot´azky lze nal´ezt v aplikaci po pˇreˇcten´ı informac´ı k jednotliv´ ym planet´am ˇci mˇes´ıc˚ um.
Obr´azek 52: Porovn´avac´ı sc´ena
5.7
Zvukov´ y doprovod
V aplikaci je pouˇzita hudba z volnˇe dostupn´ ych zdroj˚ u z asset storu, a to Epic Orchestral Free Music Pack od Richarda Daskase[46] a Stars a Euphorium Suite od Stephena Lu[47],[48].
63
5.8
Export a distribuce aplikace
Prostˇred´ı Unity 3D je schopno exportovat aplikace do nˇekolika form´at˚ u a operaˇcn´ıch syst´em˚ u a to od mobiln´ıch po ty desktopov´e. Aplikace je distribuov´ana skrze vlastn´ı webovou prezentaci a to pro Windows x86 a x64, MacOS a Linux. Aplikace se sestavuje stisknut´ım talˇc´ıtka File a Build Settings. V nov´em oknˇe si vybereme platformu. M˚ uˇzeme d´at Build a program se n´as zept´a na uloˇzen´ı. Zad´ame n´azev *.exe souboru a program pˇrebere skripty, assety a pouˇzije jen to, co je skuteˇcnˇe ve sc´enˇe. Pokud budeme cht´ıt pˇri spuˇstˇen´ı dailog s v´ ybˇerem kvality grafiky ˇci rozliˇsen´ı mus´ıme zvolit Player Settings. To n´am v inspektru zpˇr´ıstupn´ı zm´ınˇen´a dodateˇcn´e nastaven´ı. D´ale n´am umoˇzn ˇuje nastavit ikonu, zdali aplikace pobˇeˇz´ı na pozad´ı, ˇci bude defaultnˇe nastaven fullscreen. Pokud vybereme webovou platformu, m˚ uˇzeme si zvolit barvu templaty a rozliˇsen´ı okna. J´a nastavuji HD Redy tedy 1280 * 720 pixel˚ u.
Obr´azek 53: Dialogov´e okno pro sestaven´ı aplikace
64
5.9
Alternativn´ı v´ ystup
Vzhledem k testov´an´ı aplikace pomoc´ı myˇsi a kl´avesnice, je moˇzn´e tuto aplikaci ovl´adat pr´avˇe pˇres zm´ınˇen´a zaˇr´ızen´ı. Myˇs´ı se prov´ad´ı rotace, kl´avesami W, A, S, D se prov´ad´ı pohyb dopˇredu, dozadu a do stran. Kl´avesami Q a E potom pohyb nahor˚ u a dol˚ u. Pomoc´ı posuvn´ık˚ u mˇen´ıme hodnoty velikosti planet, rychlost posunu kamery a rychlost rotace. Unity 3D umoˇzn ˇuje export i pro webovou prezentaci, takˇze je aplikace dostupn´a i pro vˇsechny, kteˇr´ı nemaj´ı Leap Motion kontroler, ale chtˇeli by si s aplikac´ı hr´at aniˇz by ji museli stahovat. Pro spuˇstˇen´ı je nutn´e m´ıt nainstalovan´ y Unity3D doplnˇek do prohl´ıˇzeˇce.
Obr´azek 54: Zmˇena UI pro ovl´ad´an´ı kl´avesnic´ı a myˇs´ı
5.10
Ovˇ eˇ ren´ı aplikace
ˇ ych budˇejovic´ıch Aplikace byla ovˇeˇrena v hodinˇe v 6. roˇcn´ıku Z´akladn´ı ˇskoly Nerudova v Cesk´ pod dohledem pana Mgr. Radovana Mikeˇse. Video z hodiny je pˇriloˇzeno na CD v pˇr´ıloze8.4. I pˇres poˇca´teˇcn´ı pˇrek´aˇzku s ovl´ad´an´ım, se dˇeti se zaˇr´ızen´ım rychle sˇzili a po mal´e chvilce jim ovl´ad´an´ı nedˇelalo vˇetˇs´ı probl´em a aplikace je bavila. D´ale dˇeti zkouˇsely i jin´e aplikace pro zaˇr´ızen´ı Leap Motion. Postup byl stejn´ y jako u testovan´e aplikace, nicm´enˇe pan uˇcitel by zaˇr´ızen´ı vidˇel tak´e jenom jako z´abavn´ y doplnˇek v´ yuky, ne ve v´ yuce natrvalo, coˇz potvrdily i v´ ysledky dotazn´ıkov´eho ˇsetˇren´ı. 65
6
Z´ avˇ er
V pr´aci bylo ovˇeˇreno, ˇze jiˇz napsan´e aplikace se nechaj´ı ovl´adat Leap Motion kontrolerem, pokud je nainstalov´an pˇr´ısluˇsn´ y software, kter´ y je dostupn´ y i zadarmo. Bylo pops´an´e nˇekolik v´ yukov´ ych aplikac´ı, jakoˇz i technologie Leap Motion a jej´ı moˇzn´ y budouc´ı v´ yvoj. Byl zjiˇstˇen n´azor uˇcitel˚ u na tuto technologii, kter´ y uk´azal, ˇze uˇcit´el´e maj´ı obavu ze sloˇzitosti ovl´ad´an´ı aplikac´ı a z nedostatku softwaru pro v´ yuku. Aplikace byla ovˇeˇrena ve v´ yuce. Zde se i pˇres mal´e nedostatky a prvotn´ı probl´emy s ovl´ad´an´ım aplikace l´ıbila a dˇeti zaujal nov´ y syst´em ovl´ad´an´ı. Uˇcitel tak´e ocenil moˇznosti aplikace a jej´ı grafick´e zpracov´an´ı. Pr´ace mi pˇrinesla nov´ y pohled na bezdotykovou technologii. Nauˇcila mˇe pracovat s hern´ım enginem Unity 3D a vym´ yˇslet nov´e pˇr´ıstupy k probl´em˚ um i pˇres des´ıtky hodin str´aven´ ych kouk´an´ım a proˇc´ıt´an´ım tutori´al˚ u
66
7
Seznam pouˇ zit´ e literatury a zdroj˚ u
[1] Leap
Motion.
Wikimedia
In:Wikipedia:
Foundation,
the
2013,
free
encyclopediaSan
23.03.2015
[cit.
Francisco
2015-03-28].
(CA):
Dostupn´e
z:
http://en.wikipedia.org/w/index.php?title=Leap Motion&oldid=653086724 [2] Engadget.Leap on
Motion
[online].
gesture
2012
[cit.
control
technology
2015-03-28].
hands-
Dostupn´e
z:
http://www.engadget.com/2012/05/25/leap-motion-gesture-control-technology -hands-on [3] Openlab.com.au.Build ideas - Leap Motion [online]. [cit. 2015-03-28]. Dostupn´e z: http://openlab.com.au/shop/leap-motion/ [4] LEAP.Leap Motion Developer portal [online]. [cit. 2015-03-28]. Dostupn´e z: https://developer.leapmotion.com/documentation/index.html [5] Unity 3D.Game engine [online]. [cit. 2015-03-28]. Dostupn´e z: http://unity3d.com/ [6] LEAP.Leap
Motion
blog
[online].
[cit.
2015-03-28].
Dostupn´e
z:
http://blog.leapmotion.com/rethinking-menu-design-in-the-natural-interface -wild-west/ [7] CDR.cz.Leap Motion klepe na dveˇre. [online]. 2013 [cit. 2015-03-28]. Dostupn´e z: http://cdr.cz/clanek/leap-motion-klepe-na-dvere-jak-pohybove-ovladanispolupracuje-s-windows-8-video [8] monleap.fr.Le kit de d´eveloppement Leap Motion en photos [online]. [cit. 2015-03-28]. Dostupn´e z: http://monleap.fr/537-kit-developpement-leap-motion-photos/ [9] hanselman.com.Leap Useless
[online].
Motion: 2013
Amazing,
[cit.
2015-03-28].
Revolutionary, Dostupn´e
z:
http://www.hanselman.com/blog/LeapMotionAmazingRevolutionary Useless.aspx [10] theprezenter.com.Leap
into
Prezi
[online].
[cit.
2015-03-28].
http://theprezenter.com/hints-and-tips/prezi-and-leap-motion
67
Dostupn´e
z:
[11] sparkfun.com.Leap Motion Teardown [online]. [cit. 2015-03-28]. Dostupn´e z: https://learn.sparkfun.com/tutorials/leap-motion-teardown [12] LEAP.Leap Motion virtual reality
[online]. [cit. 2015-03-28]. Dostupn´e z:
https://www.leapmotion.com/product/vr [13] LEAP.Leap Motion virtual reality
[online]. [cit. 2015-03-28]. Dostupn´e z:
http://blog.leapmotion.com/osvr-hacker-dev-kit-will-feature-embedded-leap -motion-technology/ [14] LEAP.Leap Motion developer portal [online]. [cit. 2015-03-28]. Dostupn´e z: https://developer.leapmotion.com/gallery/planetarium [15] LEAP.Leap App Store - Solar Walk [online]. [cit. 2015-03-28]. Dostupn´e z: https://apps.leapmotion.com/apps/solar-walk-3d-solar-system-model/osx [16] LEAP.Leap App Store - CrystlViewer [online]. [cit. 2015-03-28]. Dostupn´e z: https://apps.leapmotion.com/apps/crystalviewer/osx [17] LEAP.Leap App Store - Frog Dissection [online]. [cit. 2015-03-28]. Dostupn´e z: https://apps.leapmotion.com/apps/frog-dissection/windows [18] LEAP.Leap App Store - 3D Geometry [online]. [cit. 2015-03-28]. Dostupn´e z: https://apps.leapmotion.com/apps/3d-geometry/windows [19] LEAP.Leap App Store - Skywriting Alphabets [online]. [cit. 2015-03-28]. Dostupn´e z: https://apps.leapmotion.com/apps/skywriting-alphabets/windows [20] LEAP.Leap App Store - Curious Kids [online]. [cit. 2015-03-28]. Dostupn´e z: https://apps.leapmotion.com/apps/curious-kids/windows [21] LEAP.Leap App Store - Pointable [online]. [cit. 2015-03-28]. Dostupn´e z: https://apps.leapmotion.com/apps/pointable/windows [22] LEAP.Leap App Store - Touchless For Windows [online]. [cit. 2015-03-28]. Dostupn´e z: https://apps.leapmotion.com/apps/touchless-for-windows/windows [23] LEAP.Leap App Store - Touchless For Windows [online]. [cit. 2015-03-28]. Dostupn´e z: https://apps.leapmotion.com/apps/airinput-trial/windows 68
[24] Unity3DStudentt.com.Unity 3D Video Tutorials [online]. [cit. 2015-03-28]. Dostupn´e z: http://www.unity3dstudent.com/ [25] Unity3D.com.Unity - Manual: Lighting Overview [online]. [cit. 2015-03-28]. Dostupn´e z: http://docs.unity3d.com/Manual/Lighting.html [26] Unity3D.com.Unity - Manual: Cookies [online]. [cit. 2015-03-28]. Dostupn´e z: http://docs.unity3d.com/Manual/Cookies.html [27] Unity3D.com.Unity - Manual: Unity Manual [online]. [cit. 2015-03-28]. Dostupn´e z: http://docs.unity3d.com/Manual/ [28] Unity3D.com.Unity - Assets Store
[online]. [cit. 2015-03-28]. Dostupn´e z:
https://www.assetstore.unity3d.com [29] Unity3D.com.Unity - SpaceBuilder: Genesis [online]. [cit. 2015-03-28]. Dostupn´e z: https://www.assetstore.unity3d.com/en/#!/content/22175 [30] LEAP.Leap App Store - Game Wave [online]. [cit. 2015-03-28]. Dostupn´e z: https://apps.leapmotion.com/apps/gamewave/windows [31] LEAP.Leap App Store - Mudra Mouse [online]. [cit. 2015-03-28]. Dostupn´e z: https://apps.leapmotion.com/apps/mudra-mouse/windows [32] imgkid.com.Saturn
Texture
Map
[online].
[cit.
2015-03-28].
Dostupn´e
z:
http://imgkid.com/saturn-texture-map.shtml [33] galleryhip.com.Uranus Planet Texture [online]. [cit. 2015-03-28]. Dostupn´e z: http://galleryhip.com/uranus-planet-texture.html [34] planetpixelemporium.com.JHT’s Planetary Pixel Emporium [online]. [cit. 2015-0328]. Dostupn´e z: http://planetpixelemporium.com/index.php [35] Unity3D.com.Unity - Scripting API [online]. [cit. 2015-03-28]. Dostupn´e z: http://docs.unity3d.com/Manual/index.html [36] Unity3D.com.Unity - Scripting API: MonoBehaviour [online]. [cit. 2015-03-28]. Dostupn´e z: http://docs.unity3d.com/ScriptReference/MonoBehaviour.html
69
[37] Answers inst
GUI
Unity3D.com.Answers objects
Unity
[online].
-
[cit.
How
to
raycast
2015-03-28].
aga-
Dostupn´e
z:
http://answers.unity3d.com/questions/821590/unity-46-how-to-raycastagainst-ugui-objects-from.html [38] LEAP.Leap Legacy API Examples
[online]. [cit. 2015-03-28]. Dostupn´e z:
https://developer.leapmotion.com/forums/forums/7/topics/leap-legacy-apiexamples [39] Youtube.com.Unity nels,
Panes
&
-
Live
Windows
Training [online].
13th [cit.
October
2014
2015-03-28].
-
UI
Pa-
Dostupn´e
z:
https://www.youtube.com/watch?v=0L-Y8dPJHDM [40] Unity3D.com.Unity - Assets Store: Unity Samples: UI [online]. [cit. 2015-03-28]. Dostupn´e z: https://www.assetstore.unity3d.com/en/#!/content/25468 [41] iconarchive.com.Iconset: Wiersema
Solar
[online].
System
[cit.
Icons
2015-03-28].
by
Dan
Dostupn´e
z:
http://www.iconarchive.com/show/solar-system-icons-by-dan-wiersma.html [42] ndiscovered.com/.NDISCOVERED - Multimedia design [online]. [cit. 2015-03-28]. Dostupn´e z: http://ndiscovered.com/ [43] tracertong.co.uk.Coalition Font — Tracer Tong Font Works [online]. [cit. 2015-0328]. Dostupn´e z: http://tracertong.co.uk [44] Aldebaran.cz.Aldebara
home
[online].
[cit.
2015-03-28].
Dostupn´e
z:
http://aldebaran.cz/ [45] Solar System Exploration.Nasa - Solar System Exploration [online]. [cit. 2015-03-28]. Dostupn´e z: https://solarsystem.nasa.gov/index.cfm [46] Unity3D.Epic Orchestral Free Music Pack by Richard Daskas [online]. [cit. 2015-0328]. Dostupn´e z: https://www.assetstore.unity3d.com/en/#!/content/34417 [47] Unity3D.Euphorium Suite by Stephen Lu [online]. [cit. 2015-03-28]. Dostupn´e z: https://www.assetstore.unity3d.com/en/#!/content/22673
70
[48] Unity3D.Stars
by
Stephen
Lu
[online].
[cit.
2015-03-28].
https://www.assetstore.unity3d.com/en/#!/content/17497
71
Dostupn´e
z:
Seznam obr´ azk˚ u 1
Leap Motion [3] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2
Leap Motion - historick´ y v´ yvoj [7] . . . . . . . . . . . . . . . . . . . . . . . 14
3
Leap Motion - rozebran´ y [11] . . . . . . . . . . . . . . . . . . . . . . . . . 15
4
Leap Motion - podporovan´e jazyky a v´ yvojov´a prostˇred´ı [4] . . . . . . . . . 15
5
Leap Motion - polomˇer koule kterou ruka opisuje [4] . . . . . . . . . . . . . 17
6
Leap Motion - smˇer os [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7
Leap Motion - gesta: krouˇzen´ı, stiknut´ı kl´avesy, t’uknut´ı, ˇsvih [4] . . . . . . 18
8
Leap Motion - gesta: t’uknut´ı [9] . . . . . . . . . . . . . . . . . . . . . . . . 21
9
Leap Motion - budoucnost? [9] . . . . . . . . . . . . . . . . . . . . . . . . . 21
10
Leap Motion - Leap Motion a Oculus Rift [9] . . . . . . . . . . . . . . . . . 22
11
Leap Motion - OSVR [13] . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
12
Leap Motion - Oculus Rift a planet´arium[14] . . . . . . . . . . . . . . . . . 23
13
Aplikace Sluneˇcn´ı soustava pro Leap Motion . . . . . . . . . . . . . . . . . 24
14
Leap Motion - Uk´azka ovl´ad´an´ı . . . . . . . . . . . . . . . . . . . . . . . . 25
15
Cyber Science - Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
16
Form & Function 3D a Cyber Science - Motion: Zoology . . . . . . . . . . 28
17
Aplikace Solar Walk[15] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
18
Aplikace CrystalViewer[16] . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
19
Frog Dissection[17] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
20
3D Geometry[18] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
21
Skywriting Alphabets a Curious Kids[19][20] . . . . . . . . . . . . . . . . . 30
22
Leap Motion - rozˇs´ıˇren´ı pro Scratch editor . . . . . . . . . . . . . . . . . . 31
23
Touchless for Windows[22] . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
24
Touchless for Windows[22] . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
25
Touchless for Windows[22] . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
26
Airinput Trial[23] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
27
Airinput Trial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
28
Pointable[21]
29
Pointable - nastaven´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
30
Pointable - pozicov´an´ı oken . . . . . . . . . . . . . . . . . . . . . . . . . . 37
31
Pointable - nab´ıdka programu . . . . . . . . . . . . . . . . . . . . . . . . . 37
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
72
32
Mudra mouse[31] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
33
Mudra mouse - nastaven´ı[31] . . . . . . . . . . . . . . . . . . . . . . . . . . 38
34
Oslovila v´as pˇredstaven´a technologie Leap Motion? . . . . . . . . . . . . . 40
35
Z celkov´eho poˇctu 20 dot´azan´ ych odpovˇedˇelo 19, kladnˇe pak 11 respondent˚ u. 41
36
L´ıbila se v´am nab´ıdka aplikac´ı? . . . . . . . . . . . . . . . . . . . . . . . . 41
37
Pˇriˇslo v´am ovl´ad´an´ı vyzkouˇsen´ ych aplikac´ı intuitivn´ı? . . . . . . . . . . . . 42
38
Pouˇzili byste zaˇr´ızen´ı Leap Motion ve sv´e v´ yuce? . . . . . . . . . . . . . . 42
39
Okno Unity editoru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
40
Okno Unity editoru - tvorba z´akladn´ıch 3D objekt˚ u . . . . . . . . . . . . . 47
41
Smˇerov´e svˇetlo - Cucoloris . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
42
Vliv veˇrejn´ ych promˇenn´ ych na zobrazen´ı v Unity . . . . . . . . . . . . . . 50
43
Anim´ator, animace, kl´ıˇcov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . 50
44
Pozice pivotu: na levo (0.5 , 0.5) v pravo (0, 0) . . . . . . . . . . . . . . . . 52
45
Vlastnosti tlaˇc´ıtka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
46
Pinch gesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
47
Slunce s panelem a zelen´ ym indik´atorem kliknut´ı . . . . . . . . . . . . . . 57
48
Pohled na Slunce z Venuˇse . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
49
Obrazovka intra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
50
Pohled na sluneˇcn´ı soustavu se zvˇetˇsen´ ymi planetami . . . . . . . . . . . . 61
51
Porovn´avac´ı sc´ena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
52
Porovn´avac´ı sc´ena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
53
Dialogov´e okno pro sestaven´ı aplikace . . . . . . . . . . . . . . . . . . . . . 64
54
Zmˇena UI pro ovl´ad´an´ı kl´avesnic´ı a myˇs´ı . . . . . . . . . . . . . . . . . . . 65
55
Myˇslenkov´a mapa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
73
8
Pˇ r´ılohy
Obr´azek 55: Myˇslenkov´a mapa 74
8.1 8.1.1
Vybran´ e zdrojov´ e k´ ody Vykreslen´ı kurzoru dle pozice ukazov´ aˇ cku
K´od pro vykreslen´ı kurzoru v z´avislosti na souˇradnic´ıch prstu [38]. using UnityEngine; using UnityEngine.UI; using System.Collections; using Leap; using UnityEngine.EventSystems; using System.Collections; using System.Collections.Generic;
//https://developer.leapmotion.com/forums/forums/7/topics/leap-legacy-api-examples // Draws the fingers onto the screen. public class LeapFingerDraw : MonoBehaviour { Controller m_leapController; public Texture2D m_noTouch; public Texture2D m_touch; public Texture2D m_borderTexture;
public Camera UIcam; public Camera MainCam;
string buttonName; string objectName;
bool wasClicked = false; bool wasClickedOnPlanet = false;
void Start () { m_leapController = new Controller ();
75
}
// visual feedback for finger positions void OnGUI () { Frame frame = m_leapController.Frame (); InteractionBox interactionBox = frame.InteractionBox; Finger finger = frame.Hands.Frontmost.Fingers.Frontmost;
if (frame.Pointables.Extended ().Count == 1) { if (frame.Pointables [0].Hand.Fingers.Extended () [0].Type () == Finger.FingerType.TYPE_INDEX) { for (int i = 0; i < frame.Pointables.Extended().Count; ++i) { //Debug.Log (frame.Pointables [i].Hand.Fingers.Extended()[0].Type()); Vector3 screenPos = interactionBox.NormalizePoint (frame.Pointables [i].StabilizedTipPosition).ToUnity ();
float x = screenPos.x * UnityEngine.Screen.width; // y is flipped in GUI space. float y = (1 - screenPos.y) * UnityEngine.Screen.height;
// compute the size scalar of the finger circle. float touchScalar = Mathf.Clamp (frame.Pointables [i].TouchDistance, -0.05f, frame.Pointables [i].TouchDistance); float size = 100.0f * Mathf.Sqrt (Mathf.Min (Mathf.Max (Mathf.Abs (touchScalar), 0.001f), 0.9f));
Vector2 normXY = new Vector2 (frame.Pointables [i].TipVelocity.x, frame.Pointables [i].TipVelocity.y);
// non uniform scaling for ellipsoid effect when finger is
76
moving. float yScale = 1.0f + Mathf.Min (0.6f, normXY.magnitude / 2000.0f); float xScale = Mathf.Sqrt (1.0f / yScale); Matrix4x4 mat = GUI.matrix; float angle = Mathf.Rad2Deg * Mathf.Atan (normXY.x / normXY.y); // rotate the ellipsoid based on direction of the finger velocity. GUIUtility.RotateAroundPivot (angle, new Vector2 (x, y)); if (frame.Pointables [i].TouchDistance > 0) { if(wasClicked){ Button button = GameObject.Find (buttonName).GetComponent<Button> (); button.onClick.Invoke (); } wasClicked = false; if(wasClickedOnPlanet){ ObjectClicked oc = GameObject.Find (objectName).GetComponent (); oc.SetActive(); } wasClickedOnPlanet = false;
float outerSizeX = ((size + 10) * xScale); float outerSizeY = ((size + 10) * yScale); GUI.DrawTexture (new Rect (x - outerSizeX / 2, y - outerSizeY / 2, outerSizeX, outerSizeY), m_borderTexture, ScaleMode.StretchToFill, true); float innerSizeX = (size * xScale); float innerSizeY = (size * yScale); GUI.DrawTexture (new Rect (x - innerSizeX / 2, y - innerSizeY / 2, innerSizeX, innerSizeY), m_noTouch, ScaleMode.StretchToFill, true); } else {
77
float scaleX = (size * xScale + 10); float scaleY = (size * yScale + 10); GUI.DrawTexture (new Rect (x - scaleX / 2, y - scaleY / 2, scaleX, scaleY), m_touch, ScaleMode.StretchToFill, true);
//bylo kliknuto? RaycastHit hit; Ray rayTest = MainCam.ViewportPointToRay(screenPos); if(Physics.Raycast(rayTest, out hit)){ objectName = hit.transform.gameObject.name; wasClickedOnPlanet = true; } PointerEventData pointer = new PointerEventData(EventSystem.current); pointer.position = UIcam.ViewportToScreenPoint(screenPos); List rayResult = new List(); EventSystem.current.RaycastAll(pointer, rayResult);
if(rayResult.Count >0){ Debug.Log(Time.deltaTime); buttonName = rayResult[0].gameObject.transform.parent.gameObject.name; wasClicked = true; } } GUI.matrix = mat; } } } } }
78
8.1.2
Pohyb ve sc´ enˇ e pomoc´ı dlanˇ e
using System; using Leap; using UnityEngine; using UnityEngine.UI; using System.Collections; using MatrixMath; using GlobalParameter;
public class MovingCameraByLeap: MonoBehaviour {
float speed = 0.2f; float speedUD = 0.1f; Controller controller; bool m_handOpenThisFrame = false; //bool m_handOpenLastFrame = false; bool m_handCloseThisFrame = false;
//http://callmeavarice.blogspot.cz/2013/08/creating-leapmotion-gestures.html
private bool fingersPinched = false; //private bool fingersPinchedDraging = false; private float pinchStartZPosition = 0f; private float pinchEndZPosition = 0f;
private float FINGERS_PINCHED_X_AXIS_THRESHOLD = 20.5f; private float FINGERS_PINCH_RELEASED_X_AXIS_THRESHOLD = 6.5f; private int PREVIOUS_FRAME_ID = 1;
//private bool palmFBMovement = false;
79
private bool palmDraging = false; private float palmStartZPosition = 0f; private float palmEndZPosition = 0f;
void Start(){ controller = new Controller (); }
// gets the hand furthest away from the user (closest to the screen). Hand GetForeMostHand() { Frame f = controller.Frame(); Hand foremostHand = null; float zMax = -float.MaxValue; for(int i = 0; i < f.Hands.Count; ++i) { float palmZ = f.Hands[i].PalmPosition.ToUnityScaled().z; if (palmZ > zMax) { zMax = palmZ; foremostHand = f.Hands[i]; } }
return foremostHand; }
void rotateRL(Hand hand) { float rotThreshold = 0.0f; float handX = hand.PalmPosition.ToUnityScaled ().x;
if (Mathf.Abs (handX) > rotThreshold) { transform.Rotate (Vector3.up, handX * 2.0f); }
80
}
void rotateUpDown(Hand hand) {
float HandNormal = hand.Direction.Pitch;
if (HandNormal > 0.6f) { transform.Rotate (Vector3.left, HandNormal * 2.0f); } if (HandNormal < 0) { transform.Rotate (Vector3.left, HandNormal * 2.0f); }
}
void rotateY(Hand hand) {
float HandNormal = hand.PalmNormal.Roll;
if (HandNormal < -0.6f) { transform.Rotate (Vector3.back, HandNormal * 2.0f); } if (HandNormal > 0.4f) { transform.Rotate (Vector3.back, HandNormal * 2.0f); }
}
void moveUpDown(Hand hand) { float handY = hand.PalmPosition.ToUnityScaled ().y;
if (handY > 4.5f || handY < 0.8f) {
81
speedUD = 30f; } else { speedUD = 0.1f; }
if (handY > 3.5f ) { transform.position += transform.up * speedUD; }
if (handY < 1.3f) { transform.position -= transform.up * speedUD; }
}
void moveFB(Hand hand) { float handZ = hand.PalmPosition.ToUnityScaled ().z;
if (Mathf.Abs(handZ) > 0.2f) speed = 0.2f; if (Mathf.Abs(handZ) > 0.8f) speed = 1.0f; if (Mathf.Abs (handZ) > 1.0f) speed = 3f; if (Mathf.Abs (handZ) > 1.2f) speed = 5f; if (Mathf.Abs (handZ) > 1.7f) speed = 50f; Debug.Log (speed.ToString ()); if (handZ > 0.2f) { transform.position += transform.forward *speed;
} if (handZ < -1.0f) {
82
transform.position -= transform.forward *speed;
}
}
void moveFBbyPinch(Hand hand) { Finger thumb = hand.Fingers.Leftmost; Finger index = hand.Fingers.Frontmost; float pos1 = thumb.TipPosition.x; float pos2 = index.TipPosition.x;
Vector thumbPosition = thumb.TipPosition; Vector indexPosition = index.TipPosition;
float pinchDist = pos2 - pos1;
if (pinchDist <= FINGERS_PINCHED_X_AXIS_THRESHOLD) { if (!fingersPinched) { fingersPinched = true; pinchStartZPosition = indexPosition.z; pinchEndZPosition = pinchStartZPosition; } else { int indexFingerId = index.Id; float currentZPosition = indexPosition.z; Frame previousFrame = controller.Frame (PREVIOUS_FRAME_ID);
if (previousFrame != null && previousFrame.IsValid) { Finger indexFingerLastFrame = previousFrame.Finger (indexFingerId);
if (indexFingerLastFrame != null && indexFingerLastFrame.IsValid) {
83
float indexfingerLastFrameZPosition = indexFingerLastFrame.TipPosition.z; float indexFingerPositionDelta = currentZPosition indexfingerLastFrameZPosition; //moved away from the screen if (indexFingerPositionDelta > 0) { pinchEndZPosition = currentZPosition; //moving towards screen } else { if (currentZPosition < pinchStartZPosition) { pinchEndZPosition = currentZPosition; } else { pinchEndZPosition = pinchStartZPosition; } } } } } } else if (fingersPinched && pinchDist > (FINGERS_PINCHED_X_AXIS_THRESHOLD + FINGERS_PINCH_RELEASED_X_AXIS_THRESHOLD)) { Debug.Log ("FINGERS PINCH RELEASED"); fingersPinched = false; pinchEndZPosition = indexPosition.z; Debug.Log ("Distnce pinched: " + (pinchEndZPosition pinchStartZPosition)); transform.position += transform.forward * (pinchEndZPosition pinchStartZPosition) * 0.5f; }
}
void moveFBByClosedHand(Hand hand){ Vector handPosition = hand.PalmPosition; if (IsHandFullClosed(hand)) {
84
if (!palmDraging) { palmDraging = true; Debug.Log ("Palm draging"); palmStartZPosition = handPosition.z; palmEndZPosition = palmStartZPosition; } else { float currentZPosition = handPosition.z; Frame previousFrame = controller.Frame (PREVIOUS_FRAME_ID); if (previousFrame != null && previousFrame.IsValid) { Hand handLastFrame = previousFrame.Hands.Frontmost; if (handLastFrame != null && handLastFrame.IsValid) { float handLastFrameZPosition = handLastFrame.PalmPosition.z; float handPalmPositionDelta = currentZPosition handLastFrameZPosition;
if (handPalmPositionDelta > 0) { palmEndZPosition = currentZPosition; } else { if (currentZPosition < palmStartZPosition) { palmEndZPosition = currentZPosition; } else { palmEndZPosition = palmStartZPosition; } } } } } } else if(palmDraging && !IsHandFullClosed(hand)){ Debug.Log("End palm draging"); palmDraging = false; palmEndZPosition = handPosition.z;
Debug.Log ("Distance pinched: " + (palmEndZPosition palmStartZPosition));
85
transform.position += transform.forward * (palmEndZPosition palmStartZPosition)*2f; } }
bool IsHandOpen(Hand h) { return h.Fingers.Extended ().Count == 5; }
bool IsHandFullClosed(Hand h) { return h.Fingers.Extended ().Count == 0; }
void Update () { Hand foremostHand = controller.Frame ().Hands.Frontmost; m_handOpenThisFrame = IsHandOpen(foremostHand); m_handCloseThisFrame = IsHandFullClosed (foremostHand); if (foremostHand != null && m_handOpenThisFrame) { rotateRL (foremostHand); rotateUpDown (foremostHand); moveUpDown (foremostHand); moveFB(foremostHand); rotateY (foremostHand);
} else if (foremostHand != null ) { moveFBbyPinch(foremostHand); //moveFBByClosedHand(foremostHand); } } }
86
8.1.3
Gesta
using System; using Leap; using UnityEngine; using UnityEngine.UI; using System.Collections; using MatrixMath; using GlobalParameter;
public class GestureHands: MonoBehaviour { Controller controller;
void Start(){ controller = new Controller (); controller.EnableGesture (Gesture.GestureType.TYPECIRCLE); controller.EnableGesture (Gesture.GestureType.TYPESWIPE);
controller.Config.SetFloat("Gesture.Circle.MinRadius", 20.0f); controller.Config.SetFloat("Gesture.Circle.MinArc", 4f); controller.Config.SetFloat("Gesture.Swipe.MinLength", 150.0f); controller.Config.SetFloat("Gesture.Swipe.MinVelocity", 500f); controller.Config.Save(); }
void Update(){ Frame frame = controller.Frame (); GestureList gl = frame.Gestures ();
Hand foremostHand = null; float zMax = -float.MaxValue; for(int i = 0; i < frame.Hands.Count; ++i) { float palmZ = frame.Hands[i].PalmPosition.ToUnityScaled().z; if (palmZ > zMax) {
87
zMax = palmZ; foremostHand = frame.Hands[i]; } } FingerList fl = foremostHand.Fingers; Finger finger = foremostHand.Fingers.Frontmost;
for (int i = 0; i < gl.Count; i++) { Gesture gesture = gl[i];
//planet scaling by ginger rotation if(gesture.Type == Gesture.GestureType.TYPE_CIRCLE && finger.Type() == Finger.FingerType.TYPE_INDEX && finger.IsExtended && fl.Extended().Count == 1) { CircleGesture circleG = new CircleGesture(gesture);
Vector circleDirection = frame.Pointables.Frontmost.Direction; float angle = circleDirection.AngleTo(circleG.Normal); Debug.Log(SpaceObjectsScaling.planetScale); if(SpaceObjectsScaling.planetScale2 <= 50.0){
if(angle<= (3.14/4)&& SpaceObjectsScaling.planetScale2 != 50.0){ SpaceObjectsScaling.planetScale2 += 1f; }else if(angle >= (3.14/4)) { double isSmall = SpaceObjectsScaling.planetScale-1.0; if(isSmall >= 2.0) SpaceObjectsScaling.planetScale2 -= 1f; } } } if(gesture.Type == Gesture.GestureType.TYPE_CIRCLE && fl.Extended().Count == 2) { CircleGesture circleG = new CircleGesture(gesture);
88
Vector circleDirection = frame.Pointables.Frontmost.Direction; float angle = circleDirection.AngleTo(circleG.Normal); Debug.Log(SpaceObjectsScaling.timeSpeedUp2); if(SpaceObjectsScaling.timeSpeedUp2 <= 451365){
if(angle<= (3.14/4)&& SpaceObjectsScaling.timeSpeedUp2 < 450000){ SpaceObjectsScaling.timeSpeedUp2 += 1000; }else if(angle >= (3.14/4)) { double isSmall = SpaceObjectsScaling.timeSpeedUp2-1000; if(isSmall >= 2.0) SpaceObjectsScaling.timeSpeedUp2 -= 1000; } } } if(gesture.Type == Gesture.GestureType.TYPE_SWIPE) { SwipeGesture swipe = new SwipeGesture(gesture); Vector swipeDirection = swipe.Direction;
if(swipeDirection.x < 0){ Debug.Log("Left"); } else if(swipeDirection.x > 0) { Debug.Log("Right"); } } }
} }
89
8.2
Dotazn´ık
Využití bezdotykové technologie Leap Motion při ovládání interaktivních aplikací ve výuce. Dobrý den, v rámci své diplomové práce provádím výzkum využití a podpory výuky pomocí bezdotykového ovladače Leap Motion. Zjišťuji, zda a jakým způsobem by mohla být tato technologie využívána ve výuce jako interaktivní doplněk, či jako kompenzační pomůcka. Budu velmi vděčný za Vaši pomoc a vyplnění tohoto anonymního dotazníku. Pokyny k vyplnění: Dotazník se skládá z 12 otázek. Každá otázka, u které jsou uvedené možnosti má právě jednu možnou odpověď, pokud není u otázky určeno jinak. U otázek bez daných možností odpovězte svými slovy. Pokud se Vám otázka bude zdát nesrozumitelná, nejednoznačná nebo byste odpověděli jinak, můžete pod ni napsat libovolně dlouhou odpověď.
1. Jaké je vaše pohlaví? ☐ Muž ☐ Žena 2. Jaký je Váš věk? ☐ do 30 let ☐ 31 až 40 let ☐ 41 až 50 let ☐ více než 50 let 3. Jaká je délka praxe na pozici učitele? ☐ do 5 let ☐ 6 až 10 let ☐ 11 až 20 let ☐ více než 20 let 4. Jaký je Váš obor, popřípadě kombinace oborů?
90
5. Na jaké škole učíte? ☐ 1. stupeň ZŠ ☐ 2. stupeň ZŠ ☐ střední škola ☐ vysoká škola 6. Používáte interaktivní prvky ve výuce? (Možno označit více odpovědí) ☐ interaktivní tabule ☐ tablety ☐ hlasovací zařízení ☐ audiovizuální techniku ☐ jiné (napište jaké)
7. Jak často využíváte interaktivní zařízení? ☐ každou hodinu ☐ téměř na každé hodině ☐ příležitostně ☐ velmi výjimečně
8. Oslovila vás představená technologie Leap Motion? ☐ Ano ☐ Ne 9. Viděli byste potenciál ve využití Leap Motion ve výuce? ☐ Ano ☐ Ne 10.
Co byste u této technologie ocenili, nebo naopak
zkritizovali?
11. Líbila se vám nabídka aplikací? ☐ Ano ☐ Ne 12. Přišlo vám ovládání vyzkoušených aplikací intuitivní? ☐ Ano ☐ Ne 13. Použili byste zařízení Leap Motion ve své výuce? ☐ Ano ☐ Ne Elektronická verze dotazníku: http://goo.gl/forms/EFWshAkrJb
8.3
Vyhodnocen´ı dotazn´ıku
PŘIHLÁSIT SE
Souhrn 1. Jaké je vaše pohlaví? Žena
10
50 %
Muž
9
45 %
2. Jaký je váš věk?
do 30 let
5
25 %
31 až 40 let
5
25 %
41 až 50 let
4
20 %
více než 50 let
6
30 %
3. Jaká je délka vaší praxe? < 5 let
5
25 %
6 - 10 let
5
25 %
11 - 20 let
5
25 %
> 20 let
5
25 %
4. Jaký je váš obor, popřípadě kombinace oborů? M - Zpv
1z5
93
23. 4. 2015 19:33
2z5
M-AJ-ICT M - ICT Př - TV Př - Ch M - VT F - IT Nj - Občanka Tv - Inf
5. Na jaké škole učíte?
1. stupeň ZŠ
5
25 %
2. stupeň ZŠ
13
65 %
střední škola
5
25 %
vysoká škola
0
0%
Ostatní
1
5%
6. Používáte interaktivní prvky ve výuce? (Možno označit více odpovědí)
interaktivní tabule
18
90 %
tablety
3
15 %
hlasovací zařízení
2
10 %
13
65 %
1
5%
audiovizuální technika Ostatní
23. 4. 2015 19:33
3z5
7. Jak často využíváte interaktivní zařízení?
každou hodinu
3
15 %
téměř na každé hodině
0
0%
příležitostně
5
25 %
velmi výjimečně
1
5%
8. Oslovila vás představená technologie Leap Motion? Ano
16
80 %
Ne
4
20 %
Ano
11
55 %
Ne
8
40 %
9. Viděli byste potenciál ve využití Leap Motion ve výuce?
10. Co byste u této technologie ocenili, nebo naopak zkritizovali? + přiblížení ovládání realitě - Náročnost na přesnost "manipulace" - je to nové, takže si myslím, že by to žáky oslovilo líbila se mi aplikace Sluneční soustava, lebka - těžší ovládání pro začátečníka - nedostatečné množství SW pro výuku různých předmětů Lze použít jako dopněk výuky, ale vzhledem k ceně si myslím, že by se jednalo o velký komfort novinka, která může zaujmout studenty "elegance" ovládání Zatím si nedovedu představit, v čem bych toto zařízení využil (možná ve stereometrii)
23. 4. 2015 19:33
4z5
jednoduchost ovládání (po zvládnutí) plynulost ovládání aplikací Zajímavé pro rozšíření výuky Nemáme k tomu schopné žáky - softwarové zázemí - ovládání - nedostatek výukových materiálů + jednoduchost použití - Poměrně náročné ovládání, mořnost testovat? + názornost aplikací (lebka ...), interaktivita + Postiženým žákům umožní lepší ovládání - mě, jako neohrabanou učitelku značně znervózní, pokud se hned nepřesunu tam, kam mám - velká ztráta času (naučení ovládání), kvůli chvilce zábavy + vhodný jako doplněk + určitě má potenciál
11. Líbila se vám nabídka aplikací? Ano
13
65 %
Ne
4
20 %
Ano
14
70 %
Ne
5
25 %
Ano
12
60 %
Ne
8
40 %
12. Přišlo vám ovládání vyzkoušených aplikací intuitivní?
13. Použili byste zařízení Leap Motion ve své výuce?
Počet odpovědí za den
23. 4. 2015 19:33
5z5
23. 4. 2015 19:33
8.4
Pˇ r´ıloha CD
Pˇr´ıloha na CD obsahuje text diplomov´e pr´ace, vytvoˇrenou aplikaci se zdrojov´ ymi soubory a dotazn´ıkem.
98