OKI 2. Kolokvijum Flashcards

1
Q

Objekati igre (GO)

A

su osnovni objekti na sceni koji predstavljaju aktivne učesnike igre (PC i NPC karakteri) ili statične
elemente (rekvizite i scenografija)
Dodavanjem komponenti (Rigidbody2D, Collider2D, skripte…) se definiše ponašanje objekta na sceni i međuodnos sa
drugim GO na sceni
GO se može izdvojiti od drugih objekata na sceni tagom, slojem, imenom

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Resursi igre (Assets) su

A

teksture, skripte, 3D modeli, zvuk…. Asset Store

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Prefab ili prefabrikovani objekat igre

A

predstavlja šablon objekta igre sa odgovarajućim komponentama i vrednostima
parametara tih komponenti.
Mogu se koristiti vise puta u sceni I u vise scena I nalaze se u asset folderu
Kada se doda Prefab u scenu, kreira se njegova instanca
Sve instance određenog objekta uvek imaju iste osobine - ako promenimo neku osobinu prefaba, ova promena biće
ažurirana automatski kod svih instanci

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Scena

A

Sadrzi okruzenje i menije igre

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Kamere

A

se koriste za prikazivanje sveta igre igracu,
Uvek mora biti jedna kamera na sceni, a moze ih biti i vise, npr ekran za vise igraca.
I one se takodje mogu animirati i kontrolisati fizikom.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Svetla

A

definišu boju i atmosferu na sceni, a teksture definišu oblik i izgled scene

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Korisnički interfejs (UI)

A

predstavlja skup elemenata ulazne/izlazne komunikacije preko kojih se igrač povezuje sa svetom
igre - u svakoj igrici mora postojati grafički oblik uvida u stanje karaktera, njegovog ‘zdravlja’ , pokupljenih poena,
napredovanje kroz nivo itd.
To se postize ubacivanjem u hijerarhiju Canvas, Text, Image, Button…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Sistem događaja (Event System)

A

povezuje komande od strane korisnika (unos preko tastature, džojstika ili klik miša) sa
GO na kojem je prikačena skripta koja omogućava i zahteva komandu od korisnika

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

KOMPONENTE OBJEKATA IGRE

A

(Transform, Animator, Collider2D, Rigidbody2D, Sprite Renderer…)
Ponašanje objekta igre odredjuju komponente koje su vezane za njega (prikazane u prozoru Inspektora)
Transform (pozicija, rotacija, velicina) obavezna za sve objekte igre
Animator dodaje se pri kreiranju nove animacije
Collider se koristi za definisanje prostora koji zauzima GO na sceni i može učestvovati u interakcijama i u aktiviranju
događaja
Rigidbody uloga mu je da doda objektu igre određenu masu kako bi ga pokretale spoljašnje sile kontrolisane skriptom ili
prouzrokovane interakcijom sa drugim objektima igre
SpriteRenderer zbog njega se prikazuje 2D grafika u igri (3D – MeshRendered)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Sprite:

A

: 2D grafički objekti u projektu, kreirani prema pravilu „u stepenu dvojke“ – 2
n
x 2m

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Spritesheet

A

obuhvata više pojedničnih sprajtova na istom listu Spritesheet se u 3D igrama nazivaju atlasi
Da bi bila aktivna opcija isecanja pojedinačnih sličica iz Spritesheet-a, potrebno je promeniti Sprite Mode na Multiple

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Načini isecanja pojedinačnih slika:

A

▪ Automatic ▪ Grid By Cell Size ▪ Grid By Cell Count

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Dve vrste igara na osnovu kreiranja ponavljajuce pozadine

A

sprite-based i tiled-based

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Tilemap

A

sluzi za kreiranje 2D nivoa od pojedinačnih pločica i koriste se Tilemap Renderer i Tilemap Collider 2D

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Sorting layer

A

– određivanje rasporeda renderovanja sprajtova na sceni

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Alati za rada sa sprajtovima:

A

▪ Sprite Editor – koristi se da se isecanje manjih slika iz velike slike
▪ Sprite Creator – koristi se za kreiranje placeholder sprajtova
▪ Sprite Packer – koristi se za optimizaciju korišćenja sprajtove

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Pixel per Unit

A

definiše kako će se dimenzije sprajta u pikselima preračunati u Unity jedinice

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Retro igre su koristile tiles

A

16x16, pa se podešavalo 16 Pixels per Unit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Pixel per Unit je bitan kada

A

definišemo veličinu kamere. Ako je pojedinačni sprajt od kojeg gradimo pozadinu 16x16,
onda se može podesiti da je Pixel per Unit 16. Ako želimo da ekran bude visine 224px, onda podešavamo veličinu kamere
kao jednu polovinu visine ekrana u Unity jedinicama što bi bilo 112/16 = 7

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Animacija

A

kompjuterskim igrama pruža dinamiku i time čini da elementi igre deluju prirodnije, obezbedjuje igrivost,
neko desavanje, kretanje
*frejm (kadar) – vremenska sekvenca u animaciju koja moze sadrzatijednu sliku, ilustraciju…
Animacija se ili uvozi u Unity ili se kreiraju u Unity okruženju
Klipovi animacija se podesavaju pomoću Animator Controller
Prozor Animation omogućava kreiranje i uređivanje klipova animacije
Može se animirati: Pozicija, rotacija i skala objekta igre, boja materijala, intenzitet sveta, jačina zvuka…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Vrste animacija

A

▪ spritesheet animacija
Ova vrsta animacija se kreira od niza sprajtova koje se ponavljaju u beskonačnoj petlji, animator nema uticaja, kreira se
automatski, moze se uticati na kadrove od kojih će animacija biti sastavljena i brzinu
▪ keyframe animacija
Vrši se u Animation kartici, u ključnim (key) frejmovima menjaju se vrednosti dimenzija objekta i njegove pozicije u
prostoru, objekat koji se animira se najčešće sastoji od više sastavnih delova
▪ uvezena animacija iz drugog programa
Već gotove ili bazične animacije rađene u drugom softveru, uglavnom se izvoze kao sekvenca slika što je nešto slično
sprite sheet animaciji

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Objekat igre koji je animiran ima komponentu

A

Animator

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Animator je

A

je prozor u kom se sagleda svaka kreirana animacija i kako i pod kojim uslovom će se ona aktivirati, koliko će
trajati, kakva će biti tranzicija između animacija itd. gde se stanja pojavljuju kao čvorovi povezani linijama
Preko parametara bool, float ili integer definišu se uslovi početka animacije, tranzicija u sledeću animaciju itd.
Blend čvorovi kada je potrebno napraviti fin prelaz između sličnih animacija

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Detektovanje sudara

A

se koristi radi provere da li je došlo do sudara između dva objekata u igri i kako se telo ponaša u
tom slučaju. Objekat u igri koji se može sudariti se naziva kolajder(nevidljiv u igri) I dodaje se komponentom Collider 2D
Kolajderi u zavisno od geometrijskog oblika: ▪ Kružni ▪ Kvadratni ▪ Poligonalni kolajder ▪ Kolajder ivica …

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Vrste kolajdera:
1. Statični kolajder se ne pomera nikad za vreme igranja igre (zid, pod, čvrsti stolovi itd.) 2. Pasivni kolajder je onaj koji se može premestiti u toku igren npr. karakter ga pomeri i može pravilno primiti fiziku. Naziva se pasivni jer nikada ne kreira neki pokret ili silu (sanduci, kutije, novčići itd.) 3. Aktivni kolajder je onaj koji se može pokrenuti i koji ima RigidBody komponentu (glavni karakter, neprijatelj itd.)
26
Tri vrste događaja koji se dešavaju zbog detektovanja sudara:
- Događaj prilikom dodira - Događaj prilikom dužeg dodira - Događaj prilikom razdvajanja
27
Samosudaranje (Self-collision)
Na primer: kosa karaktera koja dodiruje sopstveno rame, ruka karaktera koja dodiruje svoje telo ili krila leptira koja se međusobno dodiruju
28
3 minimalna fizicka svojstva povezana sa kolajderom:
1. Pozicija 2. Brzina 3. Ubrzanje
29
▪ Zahtevi za simulaciju fizike u realnom vremenu su:
1. Efikasnost 2. Stabilnost 3. Jednostavnost 4. Realizam
30
-Mehanizmi fizike se sastoje od tri glavna podsistema:
jedan koji izračunava novi položaj određenog fizičkog svojstva, drugi koji detektuje sudare između objekata i treci koji je zadužen za upravljanje sudarima
31
Dve vrste postupka prema kojima se izračunava pozicija određenog objekta:
: fiksni-korak i frejm-korak
32
▪ Razlikujemo fizike:
1. fizika čvrstih tela - za čvrsta tela 2. fizika mekih tela - za simulaciju kose, vode, tkanine, vegetacija, masti, misica...(Zadrzavaju svoj oblik donekle, rastojanje dve tačke na objektu nije fiksno) 3. fizika čestica - za simulaciju snega, kiše, prašine, varnica, dim, vatre, magije... može biti sačinjen i od hiljadu čestica 4. fizika lutke - za simulaciju pada karaktera ili njegove smrti, kad je upucan... Efekat može biti sačinjen od hiljadu čestica
33
Čvrsto telo
rastojanje između bilo koje dve tačke čvrstog tela ostaje konstantno, bez obzira na spoljašnje sile koje se na njega deluju Čvrsto telo se razlikuje od mekog jer se ne može deformisati
34
Rigidbody
RigidBody koristi se za primenu fizike cvrstog tela, da se objekat ubrza ili uspori, da pada pod uticajem gravitacije… Static Rigidbody dizajniran da se uopšte ne pomera Kinematic Rigidbody dizajniran da se kreće pod simulacijom, ali samo pod vrlo eksplicitnom kontrolom korisnika Dynamic Rigidbody dizajniran da se kreće pod simulacijom
35
Svetlo
osnovni deo svake scene, daje sceni boju i atmosferu Vrste svetla ▪ difuzno ▪ usmereno ▪ paralelno ▪ prostorno ▪ ambijentalno svetlo ▪ emisioni materijali
36
Difuzno svetlo (Point light)
svetlost dolazi iz jedne tačkastog izvora i rasipa se u svim pravcima podjednako, intenzitet svetla opada sa udaljavanjem od centralne tačke (lampa, luster)
37
Usmereno svetlo (Spot light)
svetlost dolazi iz tačkastog izvora i ima definisan prostorni ugao(baterijske lampe,farovi)
38
Paralelno svetlo (Directional light)
svetlost dolazi iz istog pravca iz izvora koji uopšte nije prisutan na sceni igre, intenzitet svetlosti je uvek isti (sunčeva svetlost, mesečina)
39
Prostorno svetlo (Area light)
svetlost koja se podjednako emituje sa površine, ali samo sa jedne strane pravougaonika i intenziteta koji opada (ulična rasveta)
40
Ambijentalno svetlo (Ambient light)
svetlo koje je prisutno svuda po sceni i ne dolazi iz izvora koristi se za: povećavanje nivoa osvetljenosti okruženja
41
Emisioni materijali (Emissive materials)
emisioni materijali emituju svetlost sa svoje površine
42
Realtime lighting
– koristi se za svetla koja menjaju svoje karakteristike ili koja se pozivaju pomoću skripti tokom igranja igre- Unity računa i ažurira osvetljenje svakog svetla ove vrste u svakom frejmu u realnom vremenu. ▪ mogu se menjati u zavisnosti od akcija koje preuzima igrač ili događaja koji se dešavaju na sceni ▪ bacaju senku i na statične i na dinamične objekte
43
Baked lighting
koristi se za svetlost koja se koristi kao ambijentalno osvetljenje - Unity unapred preračunava osvetljenje od svakog svetla ove vrste, i ne uključuje ih ni u kakve proračune osvetljenja za vreme rada ▪ onemogućavaju bacanje senki sa dinamičnih objekata na druge dinamične objekte
44
Mixed lighting
– svetla mogu da menjaju svoje vizuelne karakteristike (boju ili intenzitet) u toku igranja igre, ali je opseg promena strogo ograničen. ▪ Osvetljavaju i statične i dinamične objekte proizvodeći direktno osvetljenje, s tim da mogu proizvoditi I indirektno ▪ Dinamični objekti koji svetle pomoću ovog režima svetla uvek bacaju senke na druge dinamične objekte
45
Prednosti i mane baking rendera
prednosti: ▪ Senke visokog kvaliteta koje se bacaju sa statičnih gejm objekata na druge statične objekte ▪ Pruža mogućnost indirektnog osvetljenja ▪ Osvetljenje za sve statične gejm objekte može biti jedna tekstura mane: ▪ Ne postoji direktno osvetljenje u realnom vremenu ▪ Nema senki sa dinamičnih gejm objekata na statične gejm objekte ▪ Statični gejm objekti mogu bacati senke na dinamične ali su one jako malog kvaliteta
46
Kamera
a je deo svake scene, pomoću nje igrač ulazi u svet kompjuterske igrice, minimum jedna kamera, a može i više ▪ Full 3D igra – koristi 3D geometriju i kameru u perspektivi ▪ Ortogonalna 3D igra (2.5D) – koristi 3D geometriju, ali ortogonalnu projekciju kamere ▪ Full 2D igra – koristi “ravne” grafike koji nemaju 3D geometriju i kamera nije u perspektivi ▪ 2D igra sa 3D grafikom (2.5D) – koristi 3D geometriju i kameru u perspektivi, ali ograničavaju mehaniku igre na 2D ▪ 2D igra iz perspektive – koristi 2D grafiku, a kamera je u perspektivi
47
VRSTE KAMERA:
Fiksirana kamera (Fixed) – ne pomera se, za jednostavne 2D igre (npr. Tetris) Rotirajuća kamera (Rotating) - ne može da se pomera i nema mogućnost skrolovanja, ali može da se okreće Skrolujuća kamera (Scrolling) –pokreće se horizontalo, vertikalno ili u oba pravca Pokretna kamera (Movable) – pokreće se pomoću tastature ili miša Plutajuća kamera (Floating) – slična pokretnoj kameri ali bez fiksirane orijentacije Prateća kamera (Tracking) – prati igrača po predefinisanoj putanji Kamera koja može da se “odgurne” (Pushable) – kada ih igrač ne kontroliše, imaju predefinisanu poziciju, ali ih je moguće gurnuti korišćenjem dugmića tako da se rotiraju oko karaktera Kamera prvog lica (First Person) –kamera bukvalno predstavlja oči karaktera
48
Glavne odlike dobrog interfejsa
▪ upotrebljivost ▪ pristupačnost ▪ konzistentnost
49
UI komponente
▪ UI Canvas ▪ UI Button ▪ UI Image ▪ UI Text ▪ UI Slider ▪ UI Transitions …
50
Canvas (kanvas)
je oblast unutar koje bi svi UI elementi trebalo da se nalaze Vrste kanvasa prema načinu rendera ▪ Screen Space – Overlay ▪ Screen Space – Camera ▪ World Space - Screen Space - Overlay UI elementi se renderuju na „vrhu“ scene i sa promenom veličine ekrana ili rezolucije, kanvas će automatski prilagoditi veličinu - Screen Space – Camera slično prethodnom, ali se postavlja na određeno rastojanje ispred zadate kamere koja se može postaviti i u perspektivi - World Space kanvas će se ponašati kao bilo koji drugi objekat na sceni Tipovi korisničkog intefejsa u igrama ▪ Diegetic ▪ Spatial ▪ Meta ▪ Non-Diegetic
51
Čestice
su male, jednostavne slike, tacke u prostoru koje se emituju i kojima se manipuliše tokom njihovog „života“ Čestica ima vektor pozicije, vektor brzine i masu Sistem partikli emituje čestice na nasumične pozicije unutar unapred određenog prostora Simulacija čestica - potrebno je napraviti niz čestica sa određenim početnim stanjem, a se za svaku česticu izračunava sila koja trenutno na nju deluje
52
Uloga zvuka u igrama
utisak i atmosfera, realističnost, oživljavanje sveta igre – dijalog, koraci, pozadinska muzika
53
Pozicije:
dizajner zvuka, kompozitor, audio inženjer
54
Muzika je bila
monofona (sa jednim tonom), često repetitivna i javljala se na početku igre ili između nivoa
55
chiptune
– zvuci koji dolaze iz zvučnih čipova
56
Vrste zvukova u igri:
- pozadinski (ambijentalni) zvuk - zvučni efekti: in-game efekti koje „čuju“ likovi unutar igre i interface efekti koji su vezani za igračevu interakciju saelementima interfejsa -zvučni narativ- snimljen govor
57
Mogućnosti zvuka
▪ reprodukovanje zvukova u 3D prostoru ▪ eho efekat ▪ Doplerov efekat ▪ filtriranje
58
Podržani formati:
AIFF, WAV, MP3 i Ogg
59
Glavne komponente zvuka
Audio Source i Audio Listener Kada zvuk treba reprodukovati samo kada se nešto dogodi, npr. , kada objekat stigne do kraja i čuje se zvuk pobede, potrebno je ispisati skriptu za dati objekat.
60
Audio efekti
se dodavaju audio izvorima kako bi modifikovali audio fajl unutar njih i realizovali željeni zvučni efekat
61
Echo effect
omogućava ponavljanje audio fajla nakon zadatog vremena
62
Distortion effect
omogućava distorziju audio fajla na izlazu Audio Mixera, za simulaciju niskokvalitetnog radio prenosa
63
OPTIMIZACIJA 2D IGRE
▪ optimizacija igre utiče na igračko iskustvo I jako je vazno za mobilne platforme mogućnost odabira: nivo detalja, rezolucija i efekti ▪ grafičke postavke ‘nizak’, ‘srednji’, ‘visok’, ‘vrlo visok’, ‘ultra’ upućuju igrače koji kvalitet će dobiti ▪ današnji minimum za uređaje na kojima se igra 512MB RAMa ▪ igra ne bi trebalo da zauzima više od 250MB
64
Prvo pravilo svake optimizacije jeste pronalaženje problema
GPU je često preopterećena brojem učitanih piksela ▪ REŠENJE: Smanjiti rezoluciju ekrana i pokreniti igru. GPU ima previše verteksa za obradu. ▪ REŠENJE: generalno gledano, ne bi trebalo prelaziti broj od 100.000 poligona kad se radi igra za mobilne uređaje CPU mora da obradi prevelik broj vidljivih objekata
65
▪ izborom formata pravimo balans između tri stavke:
veličine tekstura na disku, veličine tekstura u grafičkoj memoriji i kvaliteta tekstura ▪ za UI koristi se png zbog relativno male veličine a velikog kvaliteta ▪ Teksture bi trebalo da ostanu što je moguće višeg kvaliteta, tako da rade na najvećem broju uređaja
66
Smernice za zadržavanje kvaliteta grafike pri hardverskim ograničenjima
▪ Pronaći gde je uticaj grafike visok ▪ Smanjiti broj vidljivih objekata ▪ Ne koristite više poligona nego što je potrebno ▪ Truditi se da broj UV mapa i oštrih ivica bude što manji ▪ Izbegavati 4k slike gde nije potrebno ▪ Biti pažljiv pri dodavanju novih prozora ili ekrana za interfejs ▪ Onemogućiti Raycast target kada nije potrebno
67
Optimizacija audio fajlova
▪ Veliki fajlovi treba da budu kompersovani i strimovani pri puštanju ▪ Mali fajlovi da budu učitani u memoriju pre puštanja kako ne bi bilo „seckanja“ prilikom puštanja. Nakon što se završi njihovo preslušavanje, trebalo bi da se izbace iz memorije kada više nisu potrebni. ▪ Jedino audio fajlove koji su vezani za interfejs igre treba držati sve vreme u memoriji jer se često puštaju Alati: Profiler alat I Frame Debugger
68
Unity Engine podržava:
▪ C# ▪ UnityScript ▪ Boo – zastarelo
69
Start() vs Update()
▪ Start() se, pod uslovom da je skripta aktivna, poziva samo jednom kada se GO pojavi na sceni pre prvog Update() poziva i koristi se najčešće za inicijalizaciju GO ▪ Update() funkcija se poziva posle svakog frejma i izvršava sve vreme u toku trajanja igre, odnosno sve dok je GO na kome se skripta nalazi aktivan
70
Awake() vs Start()
▪ Awake() – prva se poziva i izvršava koristi se za referenciranje ka drugim skriptama i inicijalizaciju promenljivih ili stanja igre pre nego što igra počne bez obzira da li je skripta aktivna ▪ Start() – ako postoji Awake() poziva se nakon nje koristi se za inicijalizaciju Awake() i Start() se pozvaju samo jednom u trajanju skripte
71
Update() vs FixedUpdate()
▪ Update() ▪ poziva se svaki frejm ▪ interval između dva Update() poziva ▪ koristi se za beleženje inputa igrača, za pomeranje objekata bez fizike i jednostavne tajmere ▪ FixedUpdate() ▪ poziva se svaki frejm proračuna fizike ▪ interval između dva FixedUpdate() je konstantan i to uobičajeno podešen na 0.02s ▪ koristi se za ažuriranje kretanja objekata sa Rigidbody komponentom
72
Time.deltaTime
▪ vreme između dva poziva Update() ili FixedUpdate()
73
Destroy() vs SetActive()
▪ Destroy() uklanja GO kompletno ▪ SetActive(false) ga deaktivira– i dalje je sve prisutno, ali ne radi ništa i koristi se ako želimo da ponovo upotrebimo GO
74
Translate()/Rotate()
▪ relativno u odnosu na roditelja  transform.localPosition  transform.localRotation  transform.localScale ▪ u odnosu na world space (globalni prostor)  transform.position  transform.rotation  transform.scale ▪ koriste se samo za non-rigidbody GO ▪ ako se GO u igri pomera na osnovu kolizije i intereaguje sa fizikom, onda se ne koriste transform funkcije Translate() i Rotate() već Rigibody metode AddForce() i AddTorque()
75
▪ gravity
– utiče na to koliko će se brzo vratiti vrednost na 0– veća gravitacija znači da će se brže vraćati na 0 ▪ sensitivity – suprotno od gravitacije, utiče na to koliko brzo će se dostići maksimalna vrednost ▪ dead – pomaže da se kod kontrola pomoću džojstika mali trzaji džojstika ne računaju kao non-zero vrednost ▪ snap – ako je uključen omogućava da input vrednost bude 0 ako se istovremeno drže pozitivno i negativno dugme