6
8/21/2013 1 Timo Kellomäki [email protected] TIE-11300 PELIOHJELMOINTI ANIMAATIO, AI, MAAILMAT, VERKKO ANIMAATIO Eksplisiittiset menetelmät Valitaan ajastimella oikea versio valmiista Keyframet Tweening Implisiittiset menetelmät Lasketaan kulmapisteiden sijainnit liikkeen kuvauksesta Sopeutuminen maastoon, sama data eri malleille, muistin säästäminen Yleensä käytössä luurankomalli (skeletal animation / rigging) LUURANKOANIMAATIO Luut muodostavat hierarkian, juurena yleensä lantio Luu = suhdetta vanhempaan kuvaava muunnos Koordinaatistomuunnos: skaala, asento, siirtymä Esim. 4x3-matriisi tai SQT (scale- quaternion-translation) Kokonaismuunnos yhdistämällä muunnokset juuresta pohjalle asti Käsivarren liikuttaminen siirtää myös sormia Skinning: yhtenäinen iho, jossa kunkin kulmapisteen sijaintiin vaikuttaa useampi luu Verkko tallennetaan perusasennossa (bind pose) SUORA JA KÄÄNTEINEN KINEMATIIKKA Suorassa kinematiikassa (forward kinematics) tallessa nivelten kulmat, lasketaan sijainnit juuresta alkaen Esim. purkitetut kävelyanimaatiot motion capturella Käänteisessä kinematiikassa (inverse kinematics, IK) etsitään uskottavat nivelten asennot, jotta saadaan esim. käsi tai jalka sopivaan paikkaan Esim. kävelysyklin hienosäätö maaston mukaan, tarttuminen ANIMAATIOPÄTKÄT JA YHDISTELY Animaatiot koostetaan yhdistelemällä pieniä pätkiä (clip) Syklit (kävely), toimet Aikaa voidaan manipuloida, pätkä voi sisältää metadataa (ääniä ym) Yhdistäminen (blending) interpoloimalla painokertoimilla Keyframejen välillä, vaihdokset, samanaikainen yhdistely Interpolointi hankalaa matriiseille – kvaterniot suosittuja REALISTISET HAHMOT Animaatio on yksi tärkeimmistä hahmojen uskottavuuteen vaikuttavista tekijöistä, mutta hahmoihin on lisäksi monia erikoistekniikoita Huulisynkronisaatio, kasvojen animointi Hiukset: lyhyet onnistuvat teksturoiduilla polygoneilla, mutta pitkiin tarvitaan fysiikkaa Vaatteet: fysiikka, luurankoanimaatio Iho: subsurface scattering Silmät

8/21/2013...8/21/2013 1 Timo Kellomäki [email protected] TIE-11300 PELIOHJELMOINTI ANIMAATIO, AI, MAAILMAT, VERKKO ANIMAATIO • Eksplisiittiset menetelmät • Valitaan ajastimella

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 8/21/2013...8/21/2013 1 Timo Kellomäki timo.kellomaki@tut.fi TIE-11300 PELIOHJELMOINTI ANIMAATIO, AI, MAAILMAT, VERKKO ANIMAATIO • Eksplisiittiset menetelmät • Valitaan ajastimella

8/21/2013

1

Timo Kellomäki

[email protected]

TIE-11300 PELIOHJELMOINTIANIMAATIO, AI, MAAILMAT, VERKKO

ANIMAATIO• Eksplisiittiset menetelmät

• Valitaan ajastimella oikea versio valmiista• Keyframet

• Tweening

• Implisiittiset menetelmät• Lasketaan kulmapisteiden sijainnit liikkeen

kuvauksesta• Sopeutuminen maastoon, sama data eri

malleille, muistin säästäminen

• Yleensä käytössä luurankomalli (skeletalanimation / rigging)

LUURANKOANIMAATIO• Luut muodostavat hierarkian, juurena yleensä

lantio• Luu = suhdetta vanhempaan kuvaava muunnos

• Koordinaatistomuunnos: skaala, asento,siirtymä

• Esim. 4x3-matriisi tai SQT (scale-quaternion-translation)

• Kokonaismuunnos yhdistämällä muunnoksetjuuresta pohjalle asti• Käsivarren liikuttaminen siirtää myös sormia

• Skinning: yhtenäinen iho, jossa kunkinkulmapisteen sijaintiin vaikuttaa useampi luu

• Verkko tallennetaan perusasennossa (bind pose)

SUORA JA KÄÄNTEINEN KINEMATIIKKA• Suorassa kinematiikassa (forward kinematics) tallessa nivelten kulmat, lasketaan sijainnit

juuresta alkaen

• Esim. purkitetut kävelyanimaatiot motion capturella

• Käänteisessä kinematiikassa (inverse kinematics, IK) etsitään uskottavat nivelten asennot,jotta saadaan esim. käsi tai jalka sopivaan paikkaan• Esim. kävelysyklin hienosäätö maaston mukaan, tarttuminen

ANIMAATIOPÄTKÄT JA YHDISTELY• Animaatiot koostetaan yhdistelemällä pieniä pätkiä (clip)

• Syklit (kävely), toimet• Aikaa voidaan manipuloida, pätkä voi sisältää metadataa (ääniä ym)

• Yhdistäminen (blending) interpoloimalla painokertoimilla

• Keyframejen välillä, vaihdokset, samanaikainen yhdistely• Interpolointi hankalaa matriiseille – kvaterniot suosittuja

REALISTISET HAHMOT• Animaatio on yksi tärkeimmistä hahmojen uskottavuuteen vaikuttavista

tekijöistä, mutta hahmoihin on lisäksi monia erikoistekniikoita

• Huulisynkronisaatio, kasvojen animointi

• Hiukset: lyhyet onnistuvat teksturoiduilla polygoneilla, mutta pitkiintarvitaan fysiikkaa

• Vaatteet: fysiikka, luurankoanimaatio

• Iho: subsurface scattering

• Silmät

Page 2: 8/21/2013...8/21/2013 1 Timo Kellomäki timo.kellomaki@tut.fi TIE-11300 PELIOHJELMOINTI ANIMAATIO, AI, MAAILMAT, VERKKO ANIMAATIO • Eksplisiittiset menetelmät • Valitaan ajastimella

8/21/2013

2

PELIMAAILMAT• Useimmissa peleissä on jonkinlainen fysikaalinen pelimaailma

• 2D vai 3D: kumpi palvelee peliä paremmin• Nykyään 2D-maailmatkin toteutetaan usein 3D-grafiikalla

• Pelimaailmat mieluiten luonnollisesti rajattuja alueita

• Stadion, sisätiloissa lukitut ovet, läpitunkematon maasto, vesi, pallo/torus• Lentosimulaattorit?

• Turva ja vaara

• Avoimet paikat• Suljetut / korkeat

• Valaistuksen käyttö

MITTAKAAVA JA AIKA• Tosimaailma on laaja

• Ratkaisu: vääristymät• Suurin osa elämästä on odottamista

• Outo aika (Sims, Minecraft)

• Ajan ”kelaaminen”• Vuorokaudenajat, vuodenajat

• Elävyys: muutokset ilman pelaajan vaikutusta

• Aikarajat peleissä

PROSEDURAALINEN SISÄLTÖ• Pelisisältöä voidaan luoda ohjelmallisesti (PCG =

procedural content generation)• Kartat, radat, puzzlet, rakennukset, luonto,

tehtävät, dialogi, säännöt, aseet ja muu tavara,hahmot, vaatteet, juonet, musiikki, A-life, ...

• Satunnaisuuden käyttö• Esimerkkejä: Elite, Rogue, Diablo, Dwarf

Fortress, Spelunky, Far Cry 2, Civilization,Sudoku, Ludi,, Spore, Facade, .kkrieger

• Pseudosatunnaisluvut ja siemenluku• Korrelaatiot, jaksollisuus

• Loputtomasti yllättävää sisältöä ja pelejä ilmankäsityötä?

• Negatiiviset yllätykset, keinotekoisuus,toistuvuus, algoritmien raskaus

• Kompromissi: PCG työkaluna

KARTAT• Pseudosatunnaisluvuilla luodut kartat yleisiä

• Tähtikartat, maailmankartat, ulkotilat, luolastot• Diablo, Worms, Spelunky, Nethack

• Menetelmiä:

• Tähtien arpominen satunnaisiin paikkoihin• Luonnonvoimien simulointi

• Kaupungit ja provinssit Voronoi-diagrammeilla

• Kieliopit/L-systeemit, huoneet + käytävät, kaivajat, virittävät puut, soluautomaatit• Korkeuskentät: hiukkasten pudottelu, keskikohdan poikkeutus, fraktaaliset

menetelmät

PERLIN-KOHINA JA FRAKTAALINEN KOHINA• Luonnollinen kohina: kohinafunktio tuottaa

arvon kussakin n-ulotteisen avaruudenpisteessä

• Hyvin rajattu taajuusalue• Perlin-kohina, Simplex-kohina

• Kohinasta voi muodostaa oktaaveja:kaksinkertaistetaan taajuus, puolitetaanamplitudi

• Oktaaveja summaamalla muodostuufraktaalista kohinaa, jossa onyksityiskohtia kaikissa mittakaavoissa

• Soveltuu hyvin luonnonmallintamiseen: tekstuurit jakorkeuskentät

HAKUUN PERUSTUVA LUOMINEN• Yksi tapa on luoda valtavasti satunnaista

sisältöä ja valikoida vain parhaat käyttöön

• Kelpoisuusfunktio kriittinen

• Automaattinen heuristiikka• Käyttäjien valinta

• Sovelletaan hakualgoritmia (esim.evoluutio)

• Esim. RTS-kentät, Galactic Arms Race

Page 3: 8/21/2013...8/21/2013 1 Timo Kellomäki timo.kellomaki@tut.fi TIE-11300 PELIOHJELMOINTI ANIMAATIO, AI, MAAILMAT, VERKKO ANIMAATIO • Eksplisiittiset menetelmät • Valitaan ajastimella

8/21/2013

3

LUONNON MALLINTAMINEN• Luonto ei koostu palloista tai kolmioista, vaan yksityiskohtia on kaikissa mittakaavoissa

• Fraktaalisuus• Kaikkia yksityiskohtia ei millään ehditä piirtää

• LoD: maastonmuodot, tekstuurit, kasvillisuus• Puut monimutkaisia ja suuria; lähellä tarvitaan 10k+ kolmiota

• Mallintaminen esim. L-systeemeillä• Kauempana billboarding/impostors

• ristikkäiset billboardit• alfatestattu läpinäkyvyys

• Realistinen valaistus haaste (GI)• SpeedTree

RUOHO• Ruoho: korret yksinkertaisia, mutta tarvitaan miljoonia

• Raskaita luoda, piirtää ja varastoida• Aiheuttaa laskostumista

• Lähellä jokainen korsi erikseen, proseduraalisuus

• Kauempana mainostauluja, joissa lukuisia korsia• Alfatestattu läpinäkyvyys

• Toimii huonosti ylhäältä katsottuna

• Parallaksikartat, animointi• Päällekkäiset tekstuurit

• Hyvin kaukana pelkkä litteä tekstuuri maassa

TAIVAS• Perusratkaisu taivaaseen skybox

• 5 tai 6 teksturoitua neliötä, reunatyhteensopivia

• Pilvet mainostauluilla• Myös volymetrisia tekniikoita

olemassa

• Laskennalliset ilmakehämallitdynaamisempi ratkaisu

VESI• Yksinkertaisimmillaan (animoitu) teksturoitu taso• Realistisempi vesi vaatii geometriaa ja interaktiota valon

kanssa• Geometriaan useita tekniikoita:

• Kohina, FFT (Just Cause 2), aaltohiukkaset(Uncharted 3)

• Hiukkasmallit• Vesisimulaatio

• Raskasta• Hiukkaset sopivat pieniin määriin• 3D-ruudukot vielä liian raskaita, 2D-

korkeuskenttäsimulaatiot toimivat• Interaktio pelin liikkuvien esineiden kanssa

ongelma

VESI• Veden ulkoasu koostuu useista tekijöistä

• Heijastukset voi luoda ympäristökartalla• Tasovedelle saadaan melko helposti

dynaamisesti heijastuvat esineet• Läpinäkyvyys: Fresnel-termi

• Normaalikartat pienten aaltojen saamiseksi

• Voidaan animoida virran mukaan• Monimutkaisia ilmiöitä: valokeskittymät

(caustics), vaahto, roiskeet

• Säteenjäljitys?

TEKOÄLY PELEISSÄ• Mitä on tekoäly?

• Laskennallinen rationaalisuus vai ihmismäinen käytös?

• Tekoälyn rajat liikkuvat jatkuvasti• Tekniikassa tekoäly ratkoo ongelmia, peleissä luo illuusiota järjestä/ihmisestä

• Useissa peleissä tekoäly tekee tahallaan virheitä• Peleissä maailma on ”omalla puolella”

• Tekoälyn käyttökohteita: taktiset ja strategiset vastustajat, ystävät ja oppaat, kamera, tutoriaali,pelaajan sijainen, ohjaaja

• Pelitekoälyt monesti hyvin yksinkertaisia

• Vähäiset resurssit (CPU/muisti)• Luotettavuuden tarve: oppiminen voi sotkea pelin

• Erilaisia tekniikoita useita, voidaan yhdistellä

Page 4: 8/21/2013...8/21/2013 1 Timo Kellomäki timo.kellomaki@tut.fi TIE-11300 PELIOHJELMOINTI ANIMAATIO, AI, MAAILMAT, VERKKO ANIMAATIO • Eksplisiittiset menetelmät • Valitaan ajastimella

8/21/2013

4

TILAKONEET• Intuitiivisia, ei tarvitse olla ohjelmoija

• Tiloissa ajetaan jotain algoritmia, havainnotmaailmasta aiheuttavat tilasiirtymiä

• Tulos helposti itseään toistava

• Monipuolisuutta epädeterminismillä(opittavat todennäköisyydet)

• Rinnakkaisuuden ja hierarkkisuudenkäyttö

• Päätöspuut, behavior trees

• Esim. Black & White (ID3)

TILA-AVARUUSHAKU• Klassinen menetelmä (shakki)

• Digitaalisista peleistä strategiat, lautapelit, puzzlet• Tutkitaan toimintojen seuraukset etukäteen ja etsitään paras

lopputulos

• Puumainen rakenne, jonka juurena tämänhetkinen tilanne

• Jako omiin siirtoihin ja maailman/vihollisten siirtoihin

• Maailma ja aika täytyy diskretisoida• Tila-avaruus liian suuri kokonaan rakennettavaksi

• Lehtisolmuissa arvioidaan tilanteen hyvyys• Karsinta tarpeen

• Algoritmeja: A*, min-max, alfa-beta-karsinta

POLUNETSINTÄ• Tila-avaruushaun yleisin sovellus peleissä

on polunetsintä

• Lokaalit menetelmät ihmismäisiä

• Globaalit menetelmät vastaavattilannetta, jossa ihmisellä on kartta

• Jos maasto ei ole suoraan diskreetti,jaetaan esim. konvekseihin soluihin japortaaleihin

• Syntyy navigaatioverkko• Algoritmeja: törmää ja käänny, Dijkstra, A*,

IDA*

SÄÄNTÖJÄRJESTELMÄT• Sääntöjärjestelmissä pohjalla esim. propositio-, predikaatti- tai sumea logiikka

• Säännöt muotoa ehto → reaktio• Lisäksi muisti: tieto maailman tilasta

• Yksinkertainen esimerkki:

• Näkyy(vihollinen) → Pakene()• Nälkä AND Hallussa(ruoka) → syö(ruoka)

• Nälkä AND Näkyy(ruoka) → Poimi(ruoka)

• Nälkä → Etsi(ruoka)• TRUE → Nuku()

• Tässä valitaan ensimmäinen, jonka ehto toteutuu

SUUNNITTELU• Logiikkaa voi käyttää myös pidemmälle suunnittelevien agenttien toteutukseen• Maailma kuvataan logiikalla ja säännöillä kuten edellä

• Esiehto (milloin sääntöä voi käyttää), Toiminto (mitä tehdään), Jälkiehto (mitämaailmasta tiedetään toiminnon jälkeen)

• Edellä syömisen jälkiehtoihin kuuluu nälän poistuminen ja ruoan menetys• Regression planning –algoritmi abstraktilla tasolla:

• Valitaan tavoite ja tutkitaan, minkä säännön jälkiehdossa tavoite täyttyy• Otetaan uudeksi tavoitteeksi löytyneen säännön esiehdot, toistetaan

• Käytännön peleissä esiehtojen määrä on valtava• Matti haluaa leipää kaupasta, esiehtoja:

• Matilla rahaa, kaupassa leipää, kauppa auki, kauppias elossa, eizombieinvaasiota matkan varrella

• Jos itsestään selvä esiehto unohtuu mainita, koko suunnitelma voi kaatua

NEUROVERKOT• Neuroverkot jäljittelevät ihmisaivojen toimintaa

• Usein kerroksia ja niiden välisiä yhteyksiä• Toiminta koodattu yhteyksien painokertoimiin

• Opetusesimerkit muuttavat painokertoimia

• Autopelin kuski:• syötteinä etäisyydet esteisiin

• ulostuloina ohjaus ja kaasu/jarru

• Ongelmana läpinäkyvyyden puute• Neuroverkoista monia muitakin muunnelmia

Page 5: 8/21/2013...8/21/2013 1 Timo Kellomäki timo.kellomaki@tut.fi TIE-11300 PELIOHJELMOINTI ANIMAATIO, AI, MAAILMAT, VERKKO ANIMAATIO • Eksplisiittiset menetelmät • Valitaan ajastimella

8/21/2013

5

GENEETTISET ALGORITMIT• Geneettiset algoritmit jäljittelevät

luonnonvalintaa

• Pidetään yllä populaatiota

• Risteytetään parhaita yksilöitä

• Lisäksi mutaatioita

• Tasapainoilua elinkelpoisuuden ja riittävienmutaatioiden välillä

• Kelpoisuusfunktio?• Hidas konvergenssi

• Usein suora optimointi olisi tehokkaampaa

• Evoluution ohjaaminen sinänsä voi olla hauskaa

PARVEILU JA MUITA TEKNIIKOITA• Parveilu mallintaa yksinkertaisten olioiden joukkokäytöstä

• Linnut, kalat, muurahaiset, ihmisjoukot• Boids: ero, suuntaus, yhteneväisyys

• Voimakenttiä, esteet luotaantyöntäviä

• A-life: elämän simulointi keinotekoisessa ympäristössä• Esim. ekosysteemit, päämäärälliset ihmiset

• Sim-sarja, S.T.A.L.K.E.R.

• Sims ja fiksu maasto:• Creatures matkii feromoneja (esim. muurahaiset)

• Strategiset tekoälyt hierarkioita: ylempi määrää aina alemman tavoitteet

INFLUENCE MAP• Ihminen on hyvä analysoimaan karttoja visuaalisesti• Tekoäly ratkoo ongelmaa influence mapilla

• Kartta diskretisoidaan: ruudukko tai navigaatioverkko• Merkitään kartalle esim. omat (+) ja havaitut viholliset tms. uhat (-)• Vaikutus leviää ympäristöön etäisyyden mukana vähentyen• Kunkin paikan arvo summa osista• Osa vanhasta arvosta jää voimaan

• Esimerkkejä influence mapin käytöstä:

• Positiiviset alueet omilla ja päinvastoin• Suuri tulo: kiistelty alue• Tulo – abs(arvo): haavoittuvat kohdat• Turvallisten reittien etsiminen, vihollisen jakaminen kahtia, heikkojen yksiköiden hätistely

VERKKOPELIT• Verkkopelien toteutusta rajoittaa fyysisen alustan suorituskyky

• Kaistanleveys, latenssi, solmujen prosessointiteho• Siedettävä latenssi reaaliaikapelissä luokkaa 50 ms – 1 s

• Latenssin vaihtelu eli jitter on myös haitallista• Protokollat

• TCP yhteydellinen, varma, hidas: mukava mutta useinraskas reaaliaikapeleihin

• UDP yhteydetön, epävarma, nopea• Looginen rakenne

• Vertaisverkko (p2p) vs. palvelin-asiakas• Skaalautuvuus: p2p on O(n2), palvelin-asiakas O(n)• Datan hajautus: eheys vs. vasteajat• Kontrolli

VERKON RESURSSIT• Resurssien riittävyyden kaksi puolta:

• Datamäärä: viestit * kohteet * viestin koko * kiireellisyys

• Prosessointitarve: pakkaaminen, purkaminen, muulaskenta

• Resurssien säästäminen

• Pakkaaminen: redundanssi, erotukset, häviölliset

• Batching: monta asiaa samaan viestiin

• Kommunikointitarpeen vähentäminen

• läheisyyssuodatus

• ennustaminen

• samanaikainen simulaatio

ENNUSTAMINEN• Tilapäivityksiä voi lähettää harvemmin, jos käytetään

ennustamista• Lasketaan historian perusteella, missä muut sijaitsevat

• Tarvittaessa voidaan lähettää nopeus ja kiihtyvyyskin• Adaptiivisuus: lähetys vain kun tarpeen

• Päivityksen saapuessa aiheutuu hyppäys• Ratkaisu: konvergoidutaan uuden informaation

antamalle polulle vähitellen• Voi silti aiheuttaa seinien läpäisyä ym.

• Viiveestä aiheutuu haastava vuorovaikutusongelma

• Esim. viive 100 ms, A ampuu B:tä nopealla luodilla• B on ehtinyt 100 ms:ssa seinän taakse, joko A tai B

pettyy tilanteeseen

Page 6: 8/21/2013...8/21/2013 1 Timo Kellomäki timo.kellomaki@tut.fi TIE-11300 PELIOHJELMOINTI ANIMAATIO, AI, MAAILMAT, VERKKO ANIMAATIO • Eksplisiittiset menetelmät • Valitaan ajastimella

8/21/2013

6

SAMANAIKAINEN SIMULAATIO• Monet pelin tapahtumat ovat deterministisiä

• Parhaimmillaan vain ihmispelaajien toimet epädeterministisiä• Kaikilla sama simulaatio

• Lähetetään vain epädeterministiset tapahtumat

• Käytännössä ongelmia: toteutusyksityiskohdat, ajastus, ajatusvirheet• Tarkistusdata ja palvelimen auktoriteetti tarpeen

HUIJAAMINEN• Reiluuden kokemus hyvin tärkeä pelaajille

• Huijaamisen tavoitteita• Päteminen: maine ja kunnia

• Voiman tunne

• Taloudelliset hyödyt• Huijaamisen estämisen tavoitteita:

• Salatun informaation suojelu

• Pelin reiluuden takaaminen• Pelimaailman oikeuden turvaaminen

HAAVOITTUVUUDET• Palvelin-asiakas-rakenteen haavoittuvuuksia:

• Muunneltu asiakasohjelma• binääri, datatiedostot tai muistin sisältö

• fog of warin poisto, seinien läpinäkeminen, kirkkaat viholliset

• auktoriteetin väärinkäyttö

• Asiakkaalta lähtevä verkkoliikenne• tähtäysproxy, pakettien pysäytys tai

toisto, tahallinen viive

• Spoofing, palvelunesto

• Palvelimen hakkerointi, fyysiset hyökkäykset

SUOJAUTUMINEN• Viestien salaaminen

• Julkisen avaimen menetelmät• Viestien suojaaminen tiivisteillä

• Viestin muokkaamisesta jää kiinni

• ellei osaa laskea uutta tiivistettä• Toiston esto lisäämällä mukaan satunnaisluku

• Ohuet asiakkaat, kaikki äly palvelimella

• Palvelin lähettää vain julkista tietoa• Pelaajat antavat vain komentoja, palvelin tarkastaa lailliseksi ja toteuttaa

• Ainoa varma ratkaisu, mutta voi vaatia liikaa resursseja

SÄÄNTÖRIKKEET JA HUONO KÄYTÖS• Säännöissä on joskus aukkoja; onko niiden hyödyntäminen huijausta?• Salaliitto

• Jaetaan tietoa, toimitaan yhdessä kilpailullisissa peleissä• Ongelma nettipokerissa

• styling eli käyttäytymisen tarkkailu• Turnauksen manipulointi

• Pelin hengen vastainen käytös• Aloittelijoiden teurastus, PK-jengit

• voi kuolla vain jos antaa luvan, turvalliset alueet• Kulkuväylien tukkiminen, kämppäys, sanallinen loukkaus, omien

ampuminen, spämmäys, tunnelman pilaaminen, ...• ignore, kantelu valvojalle• ”koettakaa kestää”: huono käytös hyväksytään osaksi peliä