Kuinka luoda tekoäly vihollisen liman tekemiseen | hyperPad Documentation

Loading...

Logo

IMG_0139.TRIM.GIF

Huomautus: Valmis projektitiedosto tätä opastusta varten löytyy tämän artikkelin lopusta.

Johdanto

Tässä oppaassa luomme uskottavan vihollisliman tekoälyn (AI) tasohyppelytyyliseen peliin. Käymme läpi joitakin edistyneempiä ominaisuuksia ja käyttäytymismalleja hyperPadissa, joten tämä opas edellyttää perustietoja hyperPad-editorista. Jos sinun tarvitsee ensin tutustua pelin tekemiseen alusta alkaen, voit katsastaa Kattavan oppaan - Tasohyppelypelin luominen.

Jotta lima näyttäisi "älykkäältä", sen tulisi tehdä enemmän kuin vain liikkua edestakaisin, ja sen pitäisi olla tietoinen ympäristöstään.

Kuulostaa jännittävältä! Mutta ennen kuin aloitamme, meidän tulisi ensin käsitellä, miten vihollislima käyttäytyy:

  • Sen sijaan että lima kävelisi, se hyppää vasemmalle tai oikealle liikkuakseen.
  • Lima hyppää pelaajaa kohti.
  • Jos pelaaja on liian kaukana, lima ei liiku (liikkumattomana).
  • Lima vie pelaajan terveyden kosketuksessa.
  • Pelaaja voittaa liman hyppäämällä sen päälle.

Nyt kun tiedämme, mitä haluamme tehdä, aloitetaan!

Osa 1: Projektin asetukset

Tässä oppaassa aloitamme uuden projektin alusta pitäen pitääksemme asiat yksinkertaisina. Luo uusi projekti ja aseta se "Sivunäkymäksi", voit jättää muut asetukset oletusarvoihinsa.

Kun uusi projektisi on luotu, siirry Aineistokirjastoon ja hae hyperPadin "Tasohyppelyalustapaketista". (Se on ilmainen!)

a7JUWwiO.jpg

Photo_2019-06-26__1_15_13_PM.png

Nyt kun meillä on joitain aineistoja, lisää maapohja-lohkoja ja luo maailmasi. Jos et ole vielä siellä, mene Aineistokirjastoon ja napauta "Lataukset", sitten "Tasohyppelyalustapaketti".

Kuvassa alla on joitain maapohjalohkoja ("Grass World"-kansio), jotka on asetettu, ja tausta ("Backgrounds"-kansio), joka on asetettu.

Photo_2019-06-26__1_16_22_PM.png

Nyt kun meillä on mukava kohtaus työstettävänä, lisää Pelaaja- ja Lima-objekteja. Siirry Aineistokirjastoon ja avaa Lataukset-kansio, sitten Tasohyppelyalustapaketin kansio, jos ne eivät ole jo auki.

Käytämme "Vihreää avaruusmiestä" pelaajana, joten napauta vihreän avaruusmiehen varaa nähdäksesi sen kaikki animaatiosyklit. Oletusarvoisesti haluamme, että pelaaja seisoo, joten napauta "Seiso"-animaatiota ja aseta se kohtaukseen.

Saman kansion Aineistokirjastossa on myös "Vaaleanpunainen lima"-animoitu hahmo. Täydellinen vihollislima käytettäväksi! Napauta liman varausta ja valitse "Liikuta"-animaatio ja aseta lima kohtaukseesi pelaajahahmon kanssa.

Photo_2019-06-26__1_17_03_PM.png

Toistaiseksi hyvin! Meillä on nyt pelaajaobjekti ja limaobjekti valmiina käyttöön. Mutta jos pelaamme projektia nyt, emme voi vuorovaikuttaa pelin kanssa lainkaan. Joten meidän on luotava logiikkaa elävöittääksemme peliämme.

Osa 2: Pelaajan ohjaus

Ennen kuin aloitamme liman vihollisen elävöittämisen, meidän pitäisi ensin saada joitakin pelaajan ohjauksia vihreälle avaruusmiehelle.

Napauta vihreää avaruusmiestä ja aseta sen fysiikkatila Seinältä Fysikaksi, mikä sallii pelaajan liikkua vapaasti. Sitten, napauta "Käyttäytymiset"-painiketta avataksesi pelaajahahmon käyttäytymiseditorin jotta voimme lisätä ohjaukset.

IMG_0054.JPG

Käyttäytymiseditorissa pelaajahahmolle pitäisi jo olla orpo Soita animaatio käyttäytyminen. Voimme jättää tämän käyttäytymisen rauhaan, mutta voimme antaa sille joitain kavereita.

Käyttäytyminen-osiossa aseta mihin tahansa Joystick-ohjattu käyttäytyminen sekä Hyppää näppäimellä käyttäytyminen. Näiden käyttäytymiset avulla pelaajamme on nyt valmis ohjattavaksi. Mutta, se on vailla animaatiota.

Napauta Joystick-ohjattua käyttäytymistä ja aseta "Joystick Vasen Animaatio" vihreän avaruusmiehen varan "Kävele"-animaatiosykliin. Tee sama "Joystick Oikea Animaatio"-osalle.

Photo_2019-06-26__1_18_28_PM.png

Nyt pelaajahahmomme kävelee, mutta ei edelleenkään animaatio hyppäämisen aikana.

Napauta Hyppää näppäimellä käyttäytymistä ja muuta sekä "Putouksen animaatio" että "Hyppäämisen animaatio" "Hyppää"-animaatiosykliin.

Photo_2019-06-26__1_18_56_PM.png

Jos pelaamme peliämme nyt, voimme liikkua ja hypätä ympäri! Seuraavaksi aloitamme liman vihollisen työstämisen.

Photo_2019-06-26__1_19_50_PM.png

Osa 3: Liman liikkuvuus

Kuten käsittelimme johdanto-osiossa, haluamme liman hyppäävän pelaajaa kohti. Jotta tämä tapahtuisi, liman on tiedettävä, missä pelaaja on maailmassa. Tästä syystä meidän tulisi lisätä Tunniste pelaajahahmolle, jotta käyttäytymisemme voi hakea pelaajahahmon mistä tahansa kohtauksesta.

Napauta pelaajahahmoa ja valitse Tunnisteet-välilehti ominaisuuksienäkymän alaosasta. Kirjoita "Pelaaja" tekstikenttään tulojen yläosassa ja paina Lisää (+) -painiketta sen vieressä. Nyt pelaajahahmo on merkitty "Pelaaja"-tunnisteella.

Photo_2019-06-26__1_23_06_PM.png

Samalla tavalla kuin mitä teimme pelaajahahmon kanssa, napauta limaa ja aseta sen fysiikkatila Seinältä Fysiikaksi. Sitten, napauta Käyttäytymiset-painiketta avataksesi liman käyttäytymiseditorin.

IMG_0058.JPG

Käyttäytymiseditorissa siirry Mukautettu-käyttäytymisten osioon ja pudota Aika-käyttäytyminen editoriin.

Napauta Aika-käyttäytymistä ja aseta sen väli 2 sekuntiin.

Photo_2019-06-26__4_21_59_PM.png

Tämä tulee olemaan logiikan alku liman tekoälylle.

Ajatus on, että joka 2 sekunnin välein lima "ajattelee" mitä tehdä seuraavaksi, esimerkiksi: Pitäisikö liman hypätä? Jos se päättää hypätä, mihin suuntaan se pitäisi hypätä?

Siirry sitten Muunna käyttäytymisten osioon ja aseta Hae sijainti -käyttäytyminen. Napauta sitä ja aseta sen kohteeksi aiemmin luomaamme "Pelaaja"-tunnistetta napsauttamalla Tunnisteet-välilehteä ominaisuuksienäkymän alaosassa ja valitsemalla "Pelaaja". Nyt yhdistä Aika käyttäytyminen Hae sijainti käyttäytymiselle.

Photo_2019-06-26__4_22_22_PM.png

Nyt tiedämme, missä pelaaja on maailmassa! Määrittääksemme, onko pelaaja liman vasemmalla tai oikealla puolella, meidän on myös tiedettävä, missä lima on maailmassa.

Vedä toinen Hae sijainti käyttäytyminen editoriin. Oletusarvoisesti käyttäytyminen kohdistuu jo limaan, joten meidän ei tarvitse tehdä mitään muuta kuin yhdistää se logiikkahaarukkaan. Yhdistä Hae sijainti pelaajalle Hae sijainti limalle.

Photo_2019-06-26__4_22_40_PM.png

Valinnainen: Helpottaaksesi asioiden ymmärtämistä olen nimennyt Hae sijainti käyttäytymiseni selkeästi osoittamaan, mitä ne seuraavat: "Hae sijainti pelaaja" ja "Hae sijainti lima". Tämä on valinnaista, mutta jos haluat muuttaa käyttäytymisen nimiä, voit tehdä sen napauttamalla käyttäytymistä ja napauttamalla sen nimeä ominaisuuksienäkymän yläosassa.

Toistaiseksi meillä on, että joka 2 sekunnin välein lima hankkii pelaajahahmon ja itsensä sijainnin. Nyt kun meillä on tätä tietoa, voimme määrittää, pitäisikö liman hypätä vasemmalle tai oikealle.

Logic-välilehdellä pudota ja yhdistä If käyttäytyminen. Sen ominaisuuksissa aseta ensimmäinen arvo ensimmäisen Hae sijainti käyttäytymisen ("Pelaaja"-tunniste) x-sijaintiin vetämällä käyttäytymisen tulonavarakohta If-ominaisuuksiin. Toiselle arvolle aseta toisen Hae sijainti käyttäytymisen (lima) x-sijainti. Lopuksi aseta If käyttäytymisen ehto "On vähemmän kuin" (<).

Huomautus: Objektin x-sijainti on arvo, joka kuvaa, missä objekti sijaitsee maailmassa x-akselilla. (Vasen ja oikea)

IMG_0061.JPG

Mitä tämä kaikki tarkoittaa? If käyttäytyminen tarkistaa, onko pelaajan x-sijainti pienempi kuin liman x-sijainti. Jos yllä oleva on totta, se suorittaa seuraavan yhdistetyn käyttäytymisen. Tämä tarkoittaa, että jos pelaaja on liman vasemmalla puolella, käyttäytymisen suoritusta jatketaan.

Hyvä, nyt meillä on logiikka asetettu liman hyppäämiseen vasemmalle, joten tehdään limasta todella juuri niin!

Fysiikka käyttäytymiset-osiossa pudota ja yhdistä Sovella voimaa -käyttäytyminen If käyttäytymiseen. Sen ominaisuuksissa aseta Voima: x = -0.5, y = 1. Sitten, aseta kerroin mukavasti suureksi, 200 riittää.

Photo_2019-06-26__1_28_06_PM.png

Nyt mitä meillä on, on se, että jos lima löytää pelaajan vielä vasemmalla kuin itse, se hyppää ylös (y = 1 × 200) ja hieman vasemmalle (x = -0.5 × 200).

Kokeile! Leiki peliä ja testaa varmistaaksesi, että kaikki toimii. Mitä sinun tulee nähdä on liman hyppivän vasemmalle joka 2 sekunti, kunhan pelaaja on sen vasemmalla puolella. Jos siirrät pelaajaa liman oikealle puolelle, sen pitäisi lopettaa hyppiminen, kunnes siirrät sen taas vasemmalle puolelle.

Photo_2019-06-26__1_28_50_PM.png

Huomautus: Jos lima ei liiku, käy läpi edelliset vaiheet varmistaaksesi, ettet unohtanut mitään. Varmista, että käyttäytymiset on yhdistetty oikein ja että liman fysiikkatila on asetettu Fysiikaksi (liikutettavaksi) eikä Seinäksi (ei liikuttavaksi). Pian korjaamme myös ongelman, jossa lima joskus kääntyy kyljelleen tai ylösalaisin.

Loistavaa edistystä tähän asti! Jos lima hyppii kuin odotettu, olemme valmiita jatkamaan. Viimeistelemme sen liikkuvuus käyttäytymiset antamalla liman hyppäämään myös oikealle.

Takaisin liman käyttäytymiseditoriin, monista If käyttäytyminen. Vedä ja napsauta uutta If käyttäytymistä vasemmalle olemassa olevan If käyttäytymisen viereen. Tämä muuttaa sen "Else If"-käyttäytymiseksi.

Monista myös Sovella voimaa käyttäytyminen, ja yhdistä se uuteen Else If käyttäytymiseen.

Else If -käyttäytymisen ominaisuuksissa muuta ehto "On suurempi kuin" (>). Tämä tuo toisenlaisen vaikutuksen ensimmäiselle If: lle. Jos ensimmäinen If käyttäytyminen ei ole totta, se tarkistaa, onko Else If totta sen sijaan. Tämä tarkoittaa, että jos pelaaja ei ole liman vasemmalla puolella, se tarkistaa, onko pelaaja liman oikealla puolella, ja jatkaa käyttäytymiset, jotka on liitetty Else If: ään.

Sinulla pitäisi nyt olla käyttäytymisosuus, joka näyttää jotenkin tältä:

Photo_2019-06-26__1_30_01_PM.png

Toisen Sovella voimaa käyttäytymisen (Else If -osassa) ominaisuuksissa muuta voimaksi x = 0.5, sen sijaan että x = -0.5. Nyt sen sijaan, että lima hyppäisi vasemmalle, se hyppää oikealle.

Photo_2019-06-26__1_30_05_PM.png

Leiki projekti ja kokeile vielä kerran! Nyt näet liman hyppivän suuntaan, johon pelaaja on. Erinomaista!

Yksi asia, jonka saatat huomata testatessasi, on se, että jos törmäät limaan, se voi joskus kaatua kyljelleen tai mennä ylösalaisin. Haluamme liman pysyvän pystyssä, joten korjataan se nopeasti.

Takaisin liman käyttäytymiseditoriin, siirry Muuntaminen käyttäytymiset-osioon ja pudota Lukitse kiertoa käyttäytyminen editoriin. Ei tarvitse yhdistää sitä toiseen käyttäytymiseen, haluamme sen lukitsevan kiertonsa heti, kun lima luodaan, joten voit jättää sen sellaisenaan. Kun olet tehnyt sen, kokeile peliä taas. Tällä kertaa sinun pitäisi olla tuskaa yrittää heiluttaa limaa kyljelleen.

Photo_2019-06-26__1_32_26_PM.png

Saatat myös huomata, että liman animaatio pyörii liian nopeasti. Jos näin tapahtuu, napauta Soita animaatio käyttäytymistä liman käyttäytymiseditorissa ja muuta Kehykset sekunnissa pienemmäksi luvuksi. 6 kehystä sekunnissa näyttää aika hyvältä.

Photo_2019-06-26__1_38_22_PM.png

Loistavaa! Nyt limamme ei vain liiku ympäriinsä hyvin, vaan se näyttää myös upealta. Suurimmaksi osaksi liman liikkuvuuslogiikka on valmis.

Kuitenkin, haluamme myös liman hyppäävän vain, jos pelaaja on lähellä. Tällä tavalla, jos rakennamme suuremman maailman, kaukana olevat limat eivät hyppää välittömästi pelaajan kimppuun. Seuraavassa osassa tarkastellaan toisen ehdon lisäämistä, joka estää hyppimisen logiikan, jos pelaaja on liian kaukana.

Osa 4: Liman paikallaan olo

Tässä osassa toteutamme joitakin liman käyttäytymisiä, jotka saavat sen olemaan paikallaan (toisin sanoen, ei liiku) kun pelaaja on liian kaukana.

Tämän saavuttamiseksi meidän täytyy löytää keino mitata etäisyys liman ja pelaajan välillä. Onneksi, käyttäytymiset ovat saatavilla juuri tätä varten! Aloitetaan työtä.

Avaa liman käyttäytymiseditori ja tuo alas Laske etäisyys käyttäytyminen Logiikka-osasta. Sen käyttäytymisominaisuuksissa ensimmäinen objekti on jo asetettu limaksi. Toiselle objektille, siirry Välilehtivalikkoon ja valitse "Pelaaja"-tunniste.

Photo_2019-06-26__1_48_54_PM.png

Tämä käyttäytyminen, kun se suoritetaan, laskee etäisyyden metreinä liman ja pelaajan välillä. Käyttämällä tätä tietoa voimme nähdä, onko pelaaja liian kaukana tarkistamalla, ylittääkö se tietyn etäisyyden.

Pudota uusi If käyttäytyminen Logiikka-osastosta ja yhdistä se Laske etäisyys käyttäytymiseen. If käyttäytymisen ominaisuuksissa aseta ensimmäinen arvo Laske etäisyyden tulovarakohtaan. Aseta ehto "On vähemmän kuin" ja toiseen arvoon 15.

Nyt meillä on keino tarkistaa, onko pelaaja liian kaukana näkemällä, onko välimatka liman ja pelaajan välillä pienempi kuin 15 (metriä). Jos tämä ehto ei ole totta, pelaaja on liian kaukana ja If käyttäytyminen ei suorita seuraavaa käyttäytymistä.

IMG_0085.JPG

Nyt kun meillä on uusi ehto valmiina käytettäväksi, irrota Hae sijainti (lima) ja vanha If käyttäytyminen aiemmasta osasta opasta ja tee hieman tilaa uudelle ehdolle. Voit irrottaa käyttäytymiset napauttamalla ja pitämällä käyttäytymisten välillä olevia yhteyksiä.

Uuden etäisyys ehdon paikalle asettamisen jälkeen, yhdistä Hae sijainti (lima) Laske etäisyys käyttäytymiseen ja yhdistä uusi If käyttäytyminen vanhaan If käyttäytymiseen. Nyt pitäisi olla jotain tällaista:

Photo_2019-06-26__1_50_57_PM.png

Aloittaa näyttää melko monimutkaiselta nyt, mutta idea on suhteellisen yksinkertainen. Nyt meillä on, ennen kuin tarkistamme, mihin suuntaan liman pitäisi hypätä, ensin tarkistamme, onko liman ja pelaajan välinen etäisyys alle 15 (metriä).

Jos pelaaja on lähempänä kuin 15 metriä, niin se jatkaa tarkistamaan mihin suuntaan meidän pitäisi hypätä normaalisti. Jos pelaaja on liian kaukana, emme jatka ja logiikka päättyy siihen, kunnes seuraavan kerran lima "ajattelee" uudelleen (2 sekunnin kuluttua).

Kokeile peliä! Jos pääset liian lähelle limaa, sen pitäisi alkaa hyppäämään kohti sinua, mutta jos siirryt liian kauas, sen pitäisi lopettaa liikkuminen ja odottaa, että pääset lähelle uudelleen.

Meidän lima alkaa näyttää melko uhkaavalta nyt, mutta se on vieläkin ilman mitään tapaa vahingoittaa pelaajaa. Seuraavassa osassa tätä opasta, annamme pelaajalle terveysmittarin ja toteutamme logiikkaa vähentääksemme vahinkoa pelaajalle.

Osa 5: Pelaajaan hyökkääminen

Kuten käsiteltiin johdanto-osiossa, toteutamme limahyökkäykset tekemällä limasta satuttaa pelaajaa, kun se koskettaa pelaajaa. Aloittaaksemme liman hyökkäyksen toteuttamisen, meidän on ensin annettava pelaajalle terveys.

Pääeditorissa valitse kohtaus UI kerros ja luo uusi objekti Erikoisobjektien painikkeella. Napauta "Terveysmittari" luodaksesi terveysmittarin pelaajalle.

IMG_0120.JPG

Koska se on asetettu kohtauksen UI-kerrokseen, jos päätämme laajentaa maailmaamme ja näyttää näytön seuraavan pelaajaa, se pysyy samassa kohdassa näytöllä.

Voit asettaa sen mihin tahansa kohtaan, joka näyttää sinut hyvältä näytöllä. Olen sijoittanut omani keskelle näyttöä lähelle pohjaa.

Photo_2019-06-26__1_39_49_PM.png

Kun olet valmis löytämään hyvän paikan terveysmittarillesi, voimme alkaa työstää tapaa, jolla poistetaan terveyttä terveysmittarista. Palaa Pää-kerrokseen, jossa lima on, ja avaa sen käyttäytymiseditori uudestaan.

Tyhjään kohtaan liman käyttäytymisissä pudota Törmäsi käyttäytyminen Objekti-osasta. Sen ominaisuuksissa aseta toinen objekti "Pelaaja"-tunnisteeksi.

Photo_2019-06-26__1_38_54_PM.png

Mukautettu käyttäytyminen -osiossa pudota Lähetä viesti käyttäytyminen ja yhdistä se Törmäsi käyttäytymiseen. Lähetä viesti -käyttäytymisen ominaisuuksissa aseta Tapahtumaväli "pelaaja osui", ja aseta arvo -10.

Muista: Tapahtumaväli on kirjainkooltaan herkkä! Tämän helppouden vuoksi tämä opas käyttää pieniä kirjaimia tapahtumaväleissä. Voit valita käyttää isoja kirjaimia, jos haluat, mutta muista myöhemmin, mitkä kirjaimet ovat isoja.

Photo_2019-06-26__1_41_06_PM.png

Nyt meillä on keino havaita, kun pelaajalta pitäisi viedä terveyttä. Kun pelaaja törmää limaan, lähetetään viesti tapahtumasta "pelaaja osui" ja arvo -10. Käytämme -10: ää kertomaan terveysmittarille, että "lisää" -10 terveyttä , ja koska arvo on negatiivinen, se poistaa 10 terveyttä.

Meidän tarvitsee vielä lisätä logiikka terveysmittariin, joten tehdään se nyt. Poistu liman käyttäytymiseditorista ja pääeditorissa napauta kohtauksen UI-kerrosta ja sitten terveysmittaria. Avaa terveysmittarin käyttäytymiseditori.

Käyttäytymiseditorissa terveysmittarille pudota Vastaanota viesti käyttäytyminen Mukautettu-osasta. Sen ominaisuuksissa aseta Tapahtumaväli "pelaaja osui". (Muista, se on kirjainkooltaan herkkä!)

Photo_2019-06-26__1_40_12_PM.png

Tämä käyttäytyminen toimii kuulijana "pelaaja osui" -viestille, joka lähetetään aina kun pelaaja osuu limaan. Kun tämä käyttäytyminen havaitsee lähetetyn viestin "pelaaja osui" pelissä, se suorittaa.

Lisää Lisää terveyteen käyttäytyminen käyttäjäliittymä käyttäytymiset -osastosta ja yhdistä se Vastaanota viesti käyttäytymiseen.

Lisää terveyserään, vedä Vastaanota viestin tulovarakohta "Lisättävä arvo"-kenttään. Tämä arvo on -10, jonka asetimme aiemmin liman lähettämisen käyttäytymiseen. Tällä tavalla, jos päätämme tehdä muista vihollisista erilaisia vahinkoja, meidän tarvitsee vain muuttaa arvoa, jota lähetetään viestin joukossa, ja terveysmittari käyttää tuota arvoa sen sijaan!

Varmista, että "Tapahtuma täynnä" on pois päältä ja "Tapahtuma tyhjänä" on päällä. Tämä tarkoittaa, että jos terveysmittari saavuttaa nollaterveyden, se suorittaa seuraavaa käyttäytymistä.

IMG_0080.JPG

Kohtaus käyttäytymiset-osastossa pudota Lataa päällekkäin käyttäytyminen ja yhdistä se Lisää terveyteen käyttäytymiset.

Muuta Lataa päällekkäin asetukset, jotta valitset