Terabaitai referatas

23
KAUNO TECHNOLOGIJOS UNIVERSITETAS INFORMATIKOS FAKULTETAS DARBAS SU UNITY VARIKLIUKU, JO GALIMYBĖS Darbas Grupėje Darbą atliko: Martynas Diedonis, Simonas Penkinas, Tomas Kučinskas, Martynas Mitka, Liudas Butkus

Transcript of Terabaitai referatas

Page 1: Terabaitai   referatas

KAUNO TECHNOLOGIJOS UNIVERSITETAS

INFORMATIKOS FAKULTETAS

DARBAS SU UNITY VARIKLIUKU, JO GALIMYBĖSDarbas Grupėje

Darbą atliko:

Martynas Diedonis,

Simonas Penkinas,

Tomas Kučinskas,

Martynas Mitka,

Liudas Butkus

KAUNAS, 2015

Page 2: Terabaitai   referatas

Terabaitai

Turinys1. Įvadas.................................................................................................................................3

2. Vartotojo sąsaja (Martynas Mitka)................................................................................4

Vartotojo supažindinimas su programa..........................................................................4

Minimalistinė, švari aplinka...........................................................................................5

Tinkamai ir trumpai pavadinti funkciniai mygtukai.......................................................5

Funkcijų / informacijos grupavimas...............................................................................6

Valdymas turi būti intuityvus.........................................................................................6

Programa turi būti lengvai pasiekiama...........................................................................7

Pasiruošti vartotojų klaidoms.........................................................................................7

Sekti vartotojų apsiliepimus...........................................................................................8

3. Integruotos sistemos (Simonas Penkinas).....................................................................9

Fizika..............................................................................................................................9

Audio............................................................................................................................10

4. Palaikomos platformos (Martynas Diedonis)..............................................................11

Mono kūrimo platforma...............................................................................................11

Grafikos, fizikos...........................................................................................................11

Nuo platformos priklausanti kompiliacija(Platform dependent compilation)..............11

Šešėliuoklės(Shader)....................................................................................................11

5. Programavimas įvairiomis kalbomis (Liudas Butkus).................................................12

6. Efektai (Tomas Kučinskas)..........................................................................................13

Medžiagos....................................................................................................................13

Šešėliuoklės..................................................................................................................13

Tekstūros......................................................................................................................13

7. Greitis ir stabilumas (Tomas Kučinskas).....................................................................14

8. Išvados.............................................................................................................................15

Page 3: Terabaitai   referatas

Terabaitai

1. ĮvadasMes esame komanda „Terabaitai“. Esame žmonės, kurie yra susipažinę su Unity varikliuku,

jo aplinka ir tirme patirties dirbant šios technologijos aplinkoje.

Unity tai rinkoje įsitvirtinęs varikliukas, daugiausiai naudojamas žaidimų prototipams, telefoninių žaidimų kūrimui, tačiau retai sutinkamas aukščiausio lygio kompiuteriniuose žaidimuose. Ši technologija populiari savo įrankų intuityvumu ir greitu programų kūrimu.

Norėtume apžvelgi ir identifikuoti mums svarbiausias varikliuko savybes, kurios, mūsų manymu, padarė Unity technologiją populiaria.

1 pav. Žaidimo prototipas

Page 4: Terabaitai   referatas

Terabaitai

2. Vartotojo sąsaja (Martynas Mitka)

Žaidimo kūrimo platformos pamatinis tikslas visada turėtų išlikti vienodas - supaprastinti ir pagreitinti kūrėjų darbą, bei užtikrinti gerą galutinio produkto veikimą. Dėl šios priežasties platformų kūrėjai nenorėdami prarasti konkurencingumo su kiekviena versija stengiasi optimizuoti savo produktus, pridėti papildomų funkcijų, bei žinoma tuo pačiu metu stengtis, kad visa tai vartotojui būtų pateiktą patogiai ir aiškiai. Nors dažniausia viešai išafišuojami pirmieji punktai susiję su platformos galimybėmis, tačiau būtent pastarasis(vartotojo sąsajos) aspektas lemia platformos sėkmę. Kad ir kokia puiki platforma bebūtų, niekas ja nesinaudos, jei tai daryti bus ypatingai sudėtinga. Šioje srityje labai sėkmingai dirba Unity komanda, su tokio pačio pavadinimo nemokama žaidimų kūrimų platforma. Vienas pagrindinių šios platformos pranašumu prieš kitas yra būtent sugebėjimas tinkamai pateikti produktą ir įrankius visiems suprantamu būdu ir taip supaprastinti kūrėjų darbą.

Dažnai gera vartotoja sąsaja tampa tada, kai ne tik puikiai išpildoma viena ar kita rekomendacija, o tada, kai visa programa veikia dinamiškai, jos valdymas natūraliai įsilieją į darbą, tampa nepastebimas ir ji pati nesukelia papildomu sunkumų vartotojui. Šis tikslas gali būti pasiekiamas protingai įgyvendinat viešojoje erdvėje jau labai aiškiai suformuotus patrauklios vartotojo sąsajos, angliškai -„user interface“ (vėliau tiesiog UI) principus, pagal kuriuos ir nagrinėsiu Unity UI sistemą. Stengsiuosi panagrinėti kiekvieną aspektą atskirai ir savo pastebėjimais įvertinti ar šių principų laikomasi, galbūt Unity komanda sugalvojo dar profesionalesnių būtų juos realizuoti. Taigi štai šie principai, kuriais vadovaujantis pagal viešojoje erdvėje prieinamus šaltinius galima sukurti puikią UI sistemą:

Vartotojo supažindinimas su programa

2 pav. Mokomoji medžiaga

Page 5: Terabaitai   referatas

Terabaitai

Šioje srityje Unity komanda atrodo bene stipriausia, neminint to, kad šį platformą turi milžinišką bendruomene, kuri noriai dalinasi savo patirtimi, jos kokybiška mokymo sistemą leidžia labai patogiai ir greitai susipažinti su žaidimo platforma. Pradedantiesiems skirta ypač daug dėmesio, jiems sukurta ištisa mokymo programa video formatu youtube svetainėje, kurioje pradedantysis yra supažindinamas su pagrindinėmis funkcijomis, palaipsniui einama prie sudėtingesnių dalykų. Lygiagrečiai yra pateikiami baziniai modeliai, su kuriais Unity leidžia lengvai ir nemokamai eksperimentuoti vartotojams ir taip praktiniu būdu greičiau ir giliau įsisavinti informaciją. Norintiems gilintis į labiau specifinius dalykus yra pateikiamos nuorodos į šaltinius kuriuose jie gali gauti daugiau žinių. Vartotojas nuo pat pradžių neišsigąsta galybės aplink esančių įrankių, nes visada žino kur gali gauti papildomos informacijos. Vartotojo apmokymo srityje Unity kartelę iškėlusi tikrai aukštai, tokią gerą apmokymų sistemą pateikti sugeba tik vienetiniai produktai, todėl tai yra didelė UI sistemos pasisekimo priežastis

Minimalistinė, švari aplinka

Kiekvienas darbo langas turi būti lengvai skaitomas ir neapkrautas papildomomis dėtelėmis, kurios smarkiai vargina ir blaško vartotoją. Todėl patartina visuose languose išlaikyti minimalistinį stilių. Kadangi Unity UI sistemoje esama didelis kiekis skirtingų pasirenkamųjų funkcijų, visiško minimalizmo tikėtis negalima. Tačiau nepasakyčiau, kad principas liko neišpildytas visai. Atsisakyta papildomų ornamentinių detalių, įrankių bei papildomų langų kombinacijas galima susidėlioti visiškai rankiniu būdu, pagal kiekvieno poreikius. Tai suteikia vartotojui galimybę susikurti būtent jam patogią aplinka, neapkraunant ekrano dėmesnį blaškančiais langais. Sveikintina ir tai, jog spalvų gama pagrindinėje temoje susideda iš kontrastingu ir blankesnių atspalvių, kas platformai ir suteikia lengvumo jausmą ir iš dalies kompensuoja tą triukšmą, kurį mūsų akims suteikia nemažas kiekis mygtukų.

3 pav. Darbinė aplinka

Tinkamai ir trumpai pavadinti funkciniai mygtukai

Vartotojo sąsajoje nemaža dalis informacijos perduodama ne tik vaizdais, bet ir tekstu. Todėl būtina atsižvelgti, kad kiekvienas mygtukas būtų pavadintas prasmingai ir visiems suprantamai. Kadangi dauguma komandų šioje platformoje yra gan standartiškos, tai kūrėjams nereikėjo ilgai kvaršinti sau galvos, o jei ir reikėjo tai jų darbas nenuėjo veltui. Dažnas vartotojas mestelėjęs akį į

Page 6: Terabaitai   referatas

Terabaitai

mygtuką iškart supranta kokia jo paskirtis, o jei ir iškylą klausimų, tai visada galima pritraukus savo pelytės žymekli prie mygtuko ir išvysti platesnį paaiškinimą su pavyzdžiais. Taigi Unity pasinaudodama standartinių kitų platformų pavydžių puikiai pritaikė šį principą savo platformoje.

Funkcijų / informacijos grupavimas

Bet kokiam žmogui visą informacija įsisavinti daug lengviau, kai ji suskirstoma į tam tikras grupes, dažniausia pagal panašią ypatybę ar logine seką. Todėl, kad vartotojo sąsaja būtų efektyvi svarbu visas platformos funkcijas suskirstyti į tam tikrus blokus, kad vartotojui būtų kuo paprasčiau orientuotis ir naviguoti platformos viduje tarp skirtingų savo prasme funkcijų. Unity šioje srityje įgyvendino gan inovatorišką idėją ne tik visą informaciją tvarkingai ir pagal gan aiškias logines prasmes sugrupuoti blokais, langais, bet ir kurti atskirus tokių blogų modulius, kurie gali būti prijungti pasirinktinai pagal kūrėjo norus. Tai sutaupo daug laiko, kai kuriamos standartinės žaidimų scenos, nes pasirinkus visą modulį iš platformos patogioje vietoje atkeliami visi potencialiai vartotojui reikalingi įrankiai. Tarkim, kai dirbama su scenos fonu, galima vienu metu pasirinkti tekstūrą, ją apdoroti su vietoje esančiais įrankiais, pakeisti tekstūros atspalvį, matomumą. Žodžių visi potencialiai reikalingi įrankiai yra pateikiami viename funkcijų bloke, ir vartotojui nereikia ieškoti kiekvieno įrankio atskirai. Tai užtikrina patogų vartotojo darbą ir prideda didelį pliusą šiai žaidimų platformai.

Valdymas turi būti intuityvus

Vartotojui daug patogiau dirbti su programa kuri yra panaši į kitas, jau egzistuojančias programas. Būtent dėl to dauguma šių laikų vartotojų sąsajos sistemų iš pirmo žvilgsnio yra tarpusavyje labai panašios. Ne išimtis ir Unity UI sistema, kuri turi standartinio („Tab“) stiliaus įrankių juostą. Naudotojui intuityviai bus aišku, kaip išsaugoti ar atsidaryti failą. Unity taip pat neblogai išvystė ir „drag and drop“ sistemą. Pradedant nuo tiesioginio modelio įkelimo į žaidimo kurimo scena, modelių transformacijų atlikimo iki darbo langų kilnojimo iš vienos pozicijos į kitą.

4 pav. Komponentų grupavimas

Page 7: Terabaitai   referatas

Terabaitai

Programa turi būti lengvai pasiekiama

Gan paprasta, bet svarbi detalė. Neatkreipus į tai dėmesio, galima gan skaudžiai nudegti. Kiek vartotojų kantybės galėtų atimti, tai jog kiekvieną kartą naudojantis programą reikėtų paspausti dešimt skirtingų mygtukų. Mes mėgstame paprastuma ir greituma, nors tai gal ir teužimtų kelias papildomas sekundes. Unity ėmesi gan gudrios strategijos šioje dalyje, tačiau naudojantis programa vis tiek pastebėtume šiek tiek nesklandumu šioje sirtyje. Pagrinde norint patekti į norimą projektą užtenka spustelti kelis kartus ir tu jau norimame žaidimi projekte, visas papildomos parinktys, jei tokių reikia jau galima rasti ieškant rankiniu būdu. Tačiau, kai atsiranda platformos atnaujinimai ar skelbiama reklaminio pobudžio informacija ši procedura gali šiek tiek suerzinti, nes atsiranda keli papildomi langai.

Pasiruošti vartotojų klaidoms

Kartais visiems, o dažniausia naujokams pasitaiko atveju, kai netyčia ar iš nežinojimo pradanginame duomenis ar failus su kuriais dirbame. Tokios klaidoms išvengti kuriamos papildomos apsaugos sistemos. Viena paprasčiausiu, tai papildomas langas kuris aiškiai paklausia ar tikrai norime atlikti vienokius ar kitokius pakeitimus. Kas ypatinga Unity žaidimų platformoje, tai jog šie apribojimai apgalvoti labai gerai, išvengta daug vartotojo loginių klaidų, yra būdas viska perstatyti į „default“ reikšmes. Pavyzdžiui, jei vartotojas dirba su vieno tipo modeliais sistema neleis pritaikyti kito tipo savybių. Dar vienas didesnių pliusų, tai jog yra galimybė automatiškai saugoti projektus virtualiame projekte, taigi sumažėja duomenų praradimo rizika. Tačiau, kad ir kokie apribojimai galioje šioje platformoje, tai jokiu būdu nevaržo kūrėjo laisvės, tiesiog palengvina komunikavimą su platforma.

Sekti vartotojų apsiliepimus

Svarbi tobulėjimo dalis yra pastovus trūkumų ieškojimas ir šalinimas. Tam pasitelkiami testuotojai, tačiau naudingiausi atsiliepimai būna ir pačių vartotojų. Būtent dėl šios priežasties Unity turi gerą klientų aptarnavimo ir atsiliepimų rinkimų sistemą, kuri glaudžiai susėjusi su žaidimo kūrimo platforma. Kiekvienas gali patogiai ir greit parašyti savo apsiliepimas, klaidų pastebėjimus ar nusiskendimus, kad platforma galėtų būti toliau tobulinama. Abipusė nauda visada gerai, todėl toks Unity strategijos kūrimas yra pagirtinas.

6 pav. Pagalbinis meniu

Page 8: Terabaitai   referatas

Terabaitai

3. Integruotos sistemos (Simonas Penkinas)

Fizika

Norint suteikti žaidimui didesnį realumo jausmą, objektas žaidime turi tinkamai įsibegėti, turi būti veikiamas susidūrimų, žemės traukos ir kitų jėgų. Programoje „Unity“ esantys fizikos varikliukai suteikia komponentus, kurie sukuria fizinę imitaciją. Įrašius kelis parametrus, sukuriamas pasyvus objektas, kuris elgiasi realistiškai – yra veikiamas susidūrimų ir kritimų, bet pats objektas spontaniškai nejuda. Redaguojant objekto parametrus, galima objektui suteikti dinamiką, panašią į automobilio arba net judančios šluostės.

„Unity“ egzistuoja du fizikos varikliukai. Vienas yra trijų dimensijų fizikai, o kitas – dviejų. Pagrindinė idėja yra ta pati, tik jie įgyvendinami su skirtingom detalėm. Pavyzdžiui, „Unity“ yra įtaisytas Rigidbody (standusis komponentas) ir Rigidbody 2D.

Rigidbody(angl. standusis komponentas) yra pagrindinė detalė, kuri suteikia fizinį funkcionavimą objektui. Sukurtas standusis objektas iš karto paklus gravitacjos jėgai. Jeigu yra vienas ar daugiau Collider (susidūrimo komponentų) tada standusis objektas bus veikiamas susidūrimų.

7 pav. Fizikinė objekto reprezentacija

Rigidbody yra judinamas dviejų dimensijų fizikos varikliuko. Tai yra daroma veikiant objektą kokia nors jėga, kuri verčia patį objektą pasisukti ar pakeisti poziciją. Rigidbody turi savybę, kuri leidžia objektui pereiti į „miego“ būseną, kai jis juda mažesniu nei nustatytu minimaliu linijiniu ar sukamuoju greičiu. Tada varikliukas supras, kad objektas nejuda. Kitą kartą objektas pajudės, kai jį paveiks susidūrimas ar jėga. „Miego“ būsenoje esančiam objektui bus skirta mažiau procesoriaus darbo iki tol, kol objektas bus „pažadintas“.

Collider (angl. susidūrimo komponentai) nusako objekto formą dėl fizinio susidūrimo tikslų. Žaidime šis komponentas nebūtinai turi būti tos pačios formos kaip ir pats objektas. Net atvirkščiai – suapvalinimas yra efektyvesnis žaidimo metu.

Paprasčiausi ir mažiausiai procesoriaus darbo reikalaujantys, Collider komponentai vadinami primityviaisiais. Trijose dimensijose jie yra: Box (dėžės), Sphere (sferos), Capsule (kapsulės). Dviejose dimensijose yra naudojami: Box 2D ir Circle (apskritimo). Į objektą galima jų įdėti neribotą skaičių, norint sukurti sudėtinius susidūrimo komponentus. Kruopščiai dėliojant Collider galima gan gerai sukurti objekto formą ir neapkrauti procesoriaus darbo. Tačiau, norint gauti dar

Page 9: Terabaitai   referatas

Terabaitai

didesnį tikslumą galima objektui suteikti Mesh Colliders (tinklelinius susidūrimo objektus) trijose dimensijose, o dviejose dimensijose – Polygon Collider 2D. Šie Collider komponentai apkraus procesorių žymiai didesniu darbu.

Galima sujungti du Rigidbody objektus naudojant Joint (jungtį). Jų yra 2 rūšys: Hinge (ašinis) leidžia objektams suktis aplink jungtį, o Spring išlaiko objektus atskirais bet leidžia tarp jų sukurti nedidelį, slankiojantį atstumą. Jiems galima nustatyti jėgos ribą, kurią viršijus, jungtis trūks, arba galima priversti objektus suktis aplink jungtį.

Audio

Žaidimas negali būti be garso, nesvarbu, ar tai fono muzika ar garso effektai. „Unity“ audio sistema yra lankti ir galinga. Ji gali atkurti daugelį standartinių audio formatų ir gali atkurti garsus 3D erdvėje tokius kaip aidas. „Unity“ taip pat gali įrašyti garsus. „Unity“ taip pat leidžia naudoti trečios šalies įskiepius.

8 pav. Garso sistema

Norint skleisti iš objekto garsą, reikia prie objekto sukurti Audio Source (garso šaltinį). Tuomet jo skleidžiami garsai yra įrašomi Audio Listener (garso imtuvo), kuris yra pritvirtintas prie kito objekto. Tarp jų susidariusį atstumą gali panaudoti kuriant Doplerio efekto simuliaciją sustiprintam realumo jausmui.

Page 10: Terabaitai   referatas

Terabaitai

4. Palaikomos platformos (Martynas Diedonis)

Platformų sąrašas: iOS Android, Windows Phone, BlackBerry, Windows, Windows Store Apps, Mac OS X, Linux, PS 3, Xbox 360, Wii U, PS 4, Xbox One, Tizen, SamsungTV, PS Vita, Gear VR, Oculus Rift, WebGL.

Mono kūrimo platforma

Mono yra laisvai naudojama kūrimo platforma, kuri leidžia kurti cross-platform programas C# kalba. Ji buvo sukurta .NET Framework pagrindu. Mono sudaro C# kompiliatorius, Mono Runtime, ji implementuoja Common Language Infrastructure(CLI), pagrindines klasių bibliotekas(Base Class Library), Mono Class Library tai sudaro Gtk+, zip failų, LDAP, OpenGL ir daug kitų klasių.

Mono yra labai populiarus, rasi be galo daug pamokų, knygų, tinklapių. Taip pat an Mono kūrimo platforma automatiškai skirsto atmintį, paskirsto darbą per kelis procesorius.

Grafikos, fizikos

Unity palaikančios grafikos aplikacijų programavimo sąsajos(API): OpenGL, OpenGL, WebGL, Metal ir DirectX ir kiekviena iš jų yra skirta tam tikroms platformoms.

OpenGL yra pagrinde naudojama MacOS X ir kituose iOS prietaisuose, taip pat gali būti naudojamas ir Linux, Windows platformoms, mobiliesiems prietaisams.

WebGL yra skirtas tinklapiams skirtų žaidimų kūrimui, kuris pašalina reikalavimą turėti Flash ir Unity web player.

Metal yra naujas Apple grafinis API, tinkantis iOS prietaisams.

DirectX yra Microsoft kurtas grafinis API, kuris tinka Windows, Windows Phone ir Xbox.

Unity pastiki tik vieninteliu įrankiu, kuriant fizikas žaidimuose Nvidia PhysX, kuris palaiko visas anksčiau išvardintas platformas.

Nuo platformos priklausanti kompiliacija(Platform dependent compilation)

Unity variklis turi labai naudingą funkciją, kuri leidžia tam tikras kodo dalis leisti kompiliuoti tik tam tikroms platformoms. Ši komanda gali veikti visose Unity palaikomose platformose. Dažnai iškylantis klausimas yra: Ar parašytas „Platform dependent compilation“ kodas yra matomas kitose platformose? Ne, bet priklauso nuo programavimo kalbos ar klasės egzistuos. Unityscript sukurią tuščia klasę, o C# ne.

Šešėliuoklės(Shader)

Unity taip pat sugeba sukūrtus šešėliuokles naudoti kitose platformose, kur šešėliuoklės kalba visiškai skiriasi. Yra 2 populiariausios šešėliuoklių kalbos: HLSL ir GLSL. HLSL yra pagrinde naudojama su Direct3D, Xbox 360 ir Playstation 3. GLSL yra naudojama mobiliuosiuose įrenginuose(OpenGL ES 2.0), Mac OS X(OpenGL) ir WebGL. Unity variklyje pagrinde yra naudojama HLSL kalba, Unity sugeba konvertuoti HLSL į GLSL. Seniau šis būdas buvo labai neoptimizuotas, bet buvo sukurti kompiliatoriai, kurie optimizuodavo konvertuotą GLSL kodą.

Page 11: Terabaitai   referatas

Terabaitai

5. Programavimas įvairiomis kalbomis (Liudas Butkus)

Norint panaduoti visas Unity variklio galimybes būtina mokėti programuoti viena iš palaikomų programavimo kalbų: C#, UnityScript arba Boo.

Pagal populiarumą jos išsidėsčiusios štai taip. Net 80,4% Unity vartotojų naudoja C#, 18,9% vartotojų naudoja UnityScript ir 0,44% vartotojų naudoja Boo.

C# tai C kalbų grupės kalba plačiai naudojama visame pasaulyje, todėl ji ir yra pati populiariausia.

UnityScript tai JavaScript atmaina pritaikyta darbui su Unity, JavaScript taipogi yra labai populiari programavimo kalba naudojama internetinių puslapių kūrime, bet mano nuomone, kadangi Unity nenaudoja bendros JavaScript kalbos, o naudoja jos atmainą UnityScript, tai ir jos populiarumas nėra labai didelis.

Boo tai programavimo kalba apie kuria jūs tikriausiai nieko nesate girdėję, tai atsispindi ir jos populiarumo procente. Ji sintaksiškai yra panaši į geriau žinomą Python programavimo kalbą.

Dėl mažo Boo kalbos populiarumo Unity komanda nustojo kurti jai skirtą mokomąją medžiagą.

Taigi kurią programavimo kalbą pasirinkti? Jeigu jau esate programavę C kalbų grupės kalba (C, C++,etc.) tai C# bus jums artimiausia. Jeigu esate susidūrę su puslapių kūrimu ir JavaScript kodais, tai manau nebus sunku idėjus šiek tiek laiko išmokti UnityScript niaunsus. Na o jeigu mėgstate iššūkius ir norite išmokti dar vieną programavimo kalbą tai mokykitės Boo.

Betkokiu atvėju jums bus prieinamos visos Unity variklio galimybės.

9 pav. Programavimo kalbų populiarumas

Page 12: Terabaitai   referatas

Terabaitai

6. Efektai (Tomas Kučinskas)

Unity varikliukas atvaizduoja objektus jiems priskirdamas medžiagas(Material), šešėliuokles(Shaders) ir tekstūras. Šios trys sąvokos yra glaudžiai susijusios.

10 pav. Scena naudojanti efektus

Medžiagos

tai yra objektai, kurie nurodo varikliukui, kaip objektas turėtų būti piešiamas. Jame sudėtos modeliui priklausančios tekstūros, spalvos ir kiti parametrai. Šių parinkčių skaičius priklauso nuo medžiagos šešėliuoklės.

Šešėliuoklės

tai mažos programos, kurios apdirba smulkius grafikos elementųs pritaikydamos matematinius algoritmus. Šie kodai gali keisti modelio taškų padėtį, ekrano pikselių spalvą, modelio primityvų(trikampių) padėtį, pragerinti modelio detalumą ir t.t.

Tekstūros

yra paveiksliukai, siunčiami į šešėliuoklę. Šie objektai gali nuspalvoti objektą nemonotonišku užpildu, nurodyti ypatingas modelio vietas(švytinčios, atspindžios vietos) arba gali būti panaudoti netradiciniais būdais.

Unity varikliukas turi standartinių efektų biblioteką. Joje galima rasti nuo paprastų efektų, skirtų modeliams atvaizduoti iki ekrano efektų. Neradęs tinkamo efekto, programos kūrėjas gali parašyti savo efektą. Šiam tikslui pasiekti naudojama speciali programavimo kalba „ShaderLab“. Pragramuotojas gali rašyti viršūnių, pikselių, geometrijos, paviršiaus ir skaičiavimų šešėliuokes.

11 pav. Darbas su medžiagomis

12 pav. Kailio šešėliuoklė

13 pav. Vizualinis darbas su šešėliuklėmis

Page 13: Terabaitai   referatas

Terabaitai

7. Greitis ir stabilumas (Tomas Kučinskas)

Unity varikliuko pasižymi ypatingu stabilumu. Programos veikimo metu rasti klaidingi moduliai yra automatiškai išjungiami, neegzistuojantys resursai nenaudojami, o pati programa veikia toliau. Mūsų komandos patirtis taip pat liudija apie varikliuko atsparumą klaidoms ir nenumatytiems atvejams.

Daugelio žaidimų kūrėjų nuomone, Unity varikliukas nepasižymi spartumu. Ypatingas nepasitenkinimas yra išreiškiamas telefoninių žaidimų kūrėjų. Dažniausiai

problemos kyla naudojant 3D grafikos komponentus. Vis dėl to technologijos kūrėjai pripažįsta spartos problemas ankstesnėse versijose ir išleidžiant naują versiją, didelis dėmesys yra skiriamas programos veikimo greičio spartinimui. Taip pat Unity 3D kūrėjai pastebi, kad programuotojai naudoja blogas programavimo praktikas todėl varikliuko dokumentacijoje galima rasti naudingų patarimų kaip pagreitinti programos spartą.

14 pav. Unity greičio raidos palyginimas

Page 14: Terabaitai   referatas

Terabaitai

8. IšvadosUnity technologija nuolat tobulėja. Patrauklus varikliukas kasmet pritraukia vis daugiau

žaidimų kūrėjų. Stabilumą ir solidumą užtikrina užtikrina geriausios žaidimų industrijos technologijos. Be abejo galima teigti, kad Unity3D varikliukas dar ilgai bus tobulinamas ir palaikomas įvairių platformų.

Page 15: Terabaitai   referatas

Terabaitai

Šaltiniai

http://www.ambysoft.com/essays/userInterfaceDesign.html

http://usabilitypost.com/2009/04/15/8-characteristics-of-successful-user-interfaces/

http://blogs.unity3d.com/2014/09/03/documentation-unity-scripting-languages-and-you/

http://docs.unity3d.com/Manual/Shaders.html

http://docs.unity3d.com/Manual/ShadersOverview.html

http://answers.unity3d.com/questions/920984/bad-performance-on-certain-android-devices.html

http://forum.unity3d.com/threads/very-poor-performance-on-android-after-upgrading-to-unity-5.306572/

http://docs.unity3d.com/Manual/MobileOptimizationPracticalGuide.html

http://docs.unity3d.com/Manual/OptimizingGraphicsPerformance.html

Page 16: Terabaitai   referatas

Terabaitai

Iliustracijų sąrašas1 pav. Žaidimo prototipas...........................................................................................................32 pav. Mokomoji medžiaga........................................................................................................43 pav. Darbinė aplinka................................................................................................................54 pav. Komponentų grupavimas.................................................................................................65 pav. Valdymo įrankiai.............................................................................................................76 pav. Pagalbinis meniu..............................................................................................................87 pav. Fizikinė objekto reprezentacija........................................................................................98 pav. Garso sistema.................................................................................................................109 pav. Programavimo kalbų populiarumas...............................................................................1210 pav. Scena naudojanti efektus.............................................................................................1311 pav. Darbas su medžiagomis...............................................................................................1312 pav. Kailio šešėliuoklė.........................................................................................................1313 pav. Vizualinis darbas su šešėliuklėmis..............................................................................1314 pav. Unity greičio raidos palyginimas.................................................................................14

Page 17: Terabaitai   referatas

Terabaitai

TerminaiAplinka, 3, 5Audio Listener, 10Audio Source, 10Boo, 12C#, 11, 12Collider, 9DirectX, 11GLSL, 11HLSL, 11Medžiagos, 13Metal, 11

OpenGL, 11Rigidbody, 9, 10Šešėliuoklės, 11, 13Technologija, 3, 15Tekstūros, 13Unity, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,

14, 15UnityScript, 12Varikliukas, 3, 9, 13, 14, 15WebGL, 11