tiistai 23. elokuuta 2016

Unity platformer – animating sprites

NAV15AP & NAV16AP

1. jakso lukuvuonna 2016-2017

Animating sprites in Unity is fairly easy. First thing you’re going to need is a sprite sheet. It’s a (preferably) Photoshop document where all the sprites are evenly placed for animation. Make sure that there are no odd pixels in the sprite sheet since those are a real pain to remove later and if not removed they will create small selection areas in the sprite editor and those will be included in the animation.

When you have the sprite sheet import it into Unity. Select the usual settings from the inspector but this time choose multiple for the sprite mode. After applying the settings click open the sprite editor. 



If the sprites are placed correctly in the sprite sheet, then automatic slicing can be used. This will create the animation frames automatically. If the sprites are following a regular pattern on the sheet, then grid by cell size/count can also be used.

In the project window you can no click the sprite sheet open. Select all sprites with shift key and drag them to the scene. This should automatically open a window for saving your animation. Create a new folder named animations and save your animation under it.



Now you can start to work on your animation. Set your sample rate for 60. This means it plays 60 per second. Now move your frames in the animation window so that you get the right speed for a smooth animation. With the play button you can test the animation and when it’s complete push the record button to stop the recording. Create animation for both idle and walking states.


Then you need to open the animator window. It can be opened from the top tool bar under window tab. In the animator window you need to create a new state for walking. By default, there should already be idle state. Rename the created state and choose the correct motion for it. The motion will be the earlier created animation for walking which should be found in the list of motions.



You need to connect the states. This is done with transition. If you right click the idle state a window pops up allowing you to choose the make transition action. Do this both ways so the animation will flow back to the idle state.


Next stop is to create a new parameter. This will define which state will be used when moving the character. Create Boolean and name it. Boolean is a data type containing two values: true and false.


Now you need to use the newly created parameter in the states. You can open new options by clicking the transitions in the inspector. At the bottom in the conditions you can use your boolean parameter. The idle state will need to use true value because with true in transitions to the walking state. In the walking state it will be opposite.


Lastly you need an action for the playmaker to understand the animator. Use set animator bool action in your walking FSM. Put checkmark in the value section. This will make the bool true and walking animation will commence. Don’t put the checkmark in the idle state and the idle animation will play when the character is not moving.


Here are some Unity tutorials explaining the animation and animator more profoundly:




maanantai 22. elokuuta 2016

ANIMAATIOTEKNIIKKA

NAV16AP

1. jakso lukuvuonna 2016-17

Tällä kurssilla tutustutaan animaation sanastoon ja fraaseihin, ja harjoitellaan perusliikkeitä. Kurssin materiaali löytyy Yhteiset-aseman Animaatiotekniikka-kansiosta.

Pinterest


Piirtämisohjeiden aarreaitta löytyy täältä:

http://www.pinterest.com/characterdesigh/


Adobe Flash / Animate

Tunneilla käydään läpi Flash / Animate-ohjelman käyttöliittymä ja tehdään tuntiharjoituksia.


Tuntiharjoituksia:

Graafinen symboli
- piirrä haluamasi kuvio tai tuo kuva File-valikon Import-komennolla
- valitse piirros tai kuva
- muuta se graafiseksi symboliksi Modify-valikon Convert to Symbol-komennolla (anna sille nimi)
- siirrä symboli työskentelyalueen vasempaan reunaan
- klikkaa kuvapaikkaa 100
- kopioi edellinen pääkuva (kuvapaikasta 1) painamalla näppäintä F6
- siirrä symboli (kuvapaikassa 100) työskentelyalueen oikeaan reunaan
- klikkaa kuvapaikkaa 1 hiiren oikealla napilla ja valitse Create Classic Tween
- paina Enter-näppäintä niin symbolisi lähtee liikkeelle

Kiihtyvyys ja hidastuvuus
- klikkaa kuvapaikkaa 50
- kopioi edellinen pääkuva (kuvapaikasta 1) painamalla näppäintä F6
- klikkaa kuvapaikkaa 1
- muuta oikeassa reunassa (Properties > Tweening) Ease-arvoksi -100 (Ease In = kiihtyvyys)
- klikkaa kuvapaikkaa 50
- muuta oikeassa reunassa (Properties > Tweening) Ease-arvoksi 100 (Ease Out = hidastuvuus)
- paina Enter-näppäintä niin symbolisi lähtee liikkeelle

Läpinäkyvyys
- klikkaa kuvapaikkaa 1
- klikkaa graafista symbolia (valitse se)
- valitse oikeassa reunassa (Properties > Color Effect) Style.pudotusvalikosta Alpha ja säädä sen arvoksi   0 %
- klikkaa kuvapaikkaa 100
- klikkaa graafista symbolia (valitse se)
- valitse oikeassa reunassa (Properties > Color Effect) Style.pudotusvalikosta Alpha ja säädä sen arvoksi   0 %
- symbolisi on nyt animaation alussa ja lopussa läpinäkyvä

Polku
- piirrä kärpänen
- muuta se graafiseksi symboliksi Modify-valikon Convert to Symbol-komennolla (anna sille nimi)
- klikkaa kärpäsen Layeriä hiiren oikealla napilla ja valitse Add Classic Motion Guide
- piirrä uudelle Guide Layerille mutkitteleva viiva työskentelyalueen vasemmasta alareunasta oikeaan yläreunaan
- klikkaa kuvapaikkaa 50 ja tee uusia välikuvia painamalla näppäintä F5
- valitse kärpäsen Layer klikkaamalla sitä hiiren vasemmalla napilla
- siirrä kärpäsen symboli viivan päälle vasemmassa alareunassa, mistä viiva alkaa
- klikkaa kuvapaikkaa 50 ja kopioi pääkuva painamalla näppäintä F6
- siirrä kärpäsen symboli viivan päälle oikeassa yläreunassa, minne viiva loppuu
- klikkaa kärpäsen Layerin ensimmäistä kuvapaikkaa hiiren oikealla napilla ja valitse Create Classic Tween
- piilota polku (viiva) klikkaamalla hiiren vasemmalla napilla pientä palloa silmän kuvan alapuolella Guide Layerillä 


Kävelyt

1. Piirrä haluamasi näköisen hahmon kävelysykli sivulta referenssimateriaalia hyväksi käyttäen.

2. Piirrä haluamasi näköisen koiran kävelysykli sivulta referenssimateriaalia hyväksi käyttäen.

3. Piirrä  haluamasi näköisen hahmon kävelysykli edestäpäin referenssimateriaalia hyväksi käyttäen.

4. Piirrä haluamasi näköisen koiran kävelysykli edestäpäin referenssimateriaalia hyväksi käyttäen.


Elävöittäminen

5. Piirrä haluamasi esineen "kävely" niin, että esine säilyttää mahdollisimman pitkälle esinemäisyytensä.


Eadweard Muybridge

Googleta Eadweard Muybridge.

6. Rotoskopia

Piirrä hevosen tai ihmisen animaatio rotoskopiatekniikalla referenssimateriaalia hyväksi käyttäen. Tuo mallikuvat Flashiin / Animateen valitsemalla File-valikosta Import > Import to Stage ja valitsemalla ensimmäinen numeroitu kuva. Flash / Animate kysyy tuodaanko koko kuvasarja ja klikkaa Yes.Tee uusi layer piirrettäville kuville ja tee tyhjiä pääkuvia F7-näppäimellä sitä mukaa kun tarvitset.


Tex Avery

Googleta Tex Avery.


Emotional Sack

Googleta Emotional Sack.

Animaattoreiden harjoitusväline, esim. herneillä täytetty kangassäkki. Sellainen on helppo tehdä itsekin, tarvitset vain palan kangasta, pussillisen herneitä, neulan ja lankaa (tai ompelukoneen), ja ompelutaitoisen henkilön.

7. Säkki

Animoi aamuväsynyt säkki. Säkki makaa x-asennossa, liikahtelee, yrittää vaivalloisesti nousta istumaan joko "vatsalihaksillaan" ponnistaen tai toisella "kädellä" tukea ottaen. Istuu hetken "ylävartalo" lysähtäneenä, nousee sitten ensin "polvilleen" vetäen "jalat" alleen, ja lopulta seisomaan "ylävartalo" vasyneen lysähtäneenä.

KÄSIKIRJOITTAMINEN

NAV16AP

1. jakso lukuvuonna 2016-17

Käsikirjoitusta ei tehdä katsojalle tai pelaajalle, vaan tuotantoryhmälle.

Kirjoittakaa tehtävien vastaukset Wordilla tai CeltX:llä ja tallentakaa ne Yhteiset > Kasikirjoittaminen ja edelleen omalla nimellä varustettuun kansioon.

CeltX

CeltX -ohjelma on tehty käsikirjoittamista ja kuvakäsikirjoittamista varten. Siitä on saatavissa myös ilmainen versio (2.9.7). CeltX tekee käsikirjoituksen rakenteen automaattisesti oikein ja oikealla fontilla.

1. Idea

Elokuvakäsikirjoituksen ideointivaiheeseen uhrattu aika säästää aikaa, vaivaa ja rahaa muissa elokuvan tuotantovaiheissa. Seuraavat asiat kannattaa ottaa huomioon:

                      - Mikä on elokuvan tavoite?
                      - Mikä on elokuvan kohderyhmä?
                      - Kuinka pitkä elokuva on?
                      - Mikä on elokuvan tyylilaji?
                      - Mikä on elokuvan aihe?
                      - Kenen näkökulmasta elokuva tehdään?
                      - Mitä sen tekeminen maksaa?
                      - Mikä on elokuvan tekemisen aikataulu?

2. Kuningasajatus eli premissi

Elokuvan keskeinen sisältö voidaan tiivistää yhdeksi lauseeksi, jota kutsutaan kuningasajatukseksi tai premissiksi. Hyvässä elokuvassa on usein jonkinlainen ristiriita, johon kuningasajatus tarjoaa ratkaisun. Tässä muutama premissi:

                      - ”Ulkoinen loisto ja mahti ei tuo sisäistä onnea.” (Orson Welles: ”Citizen
    Kane”)
                      - ”Solidaarinen taistelu sortoa vastaan johtaa voittoon.” (Akira Kurosawa:
  ”Seitsemän samuraita”)
- ”Nälkä – ruoka” ("Roadrunner"-animaatiot)

Tehtävä 1.
Valitse haluamasi animaatioelokuva, animaatiosarja tai peli, ja yritä keksiä sen premissi. Perustele vastauksesi.

3. Synopsis

Synopsis on tiivistelmä elokuvan toiminnasta kerrottuna verbi- eli teonsanalausein, esim. ”Poika tapaa tytön kauppakeskuksessa. He menevät yhdessä kahvilaan. Tyttö haluaa kahvin kanssa myös palan Sacher-kakkua. Poika maksaa ostokset kassalla. He istuutuvat vapaaseen nurkkapöytään.” Ja niin edelleen…

Tehtävä 2.
Valitse haluamasi animaatioelokuvan kohtaus, animaatiosarjan jakso tai pelin kenttä, ja pura se synopsikseksi eli kerro verbilausein mitä siinä tapahtuu.

Kaikki pelien lajityypit eivät tietenkään sovellu tähän tehtävään, mutta esimerkiksi FPS, RPG ja tasoloikka toimivat. 

4. Treatment

 Synopsiksen ja varsinaisen käsikirjoituksen välimuoto, jossa on kirjoitettuna elokuvan rakenne ja juoni, mutta ei vielä kohtauksiin jakoa.

5. Käsikirjoitus

Elokuvakäsikirjoitus (screenplay, script) voi olla dramatisointi romaanista, novellista tai näytelmästä, tai se voi olla alkuperäinen kirjallinen teos.

Elokuvakäsikirjoituksesta ilmenevät mm. kuvauspaikka ja –aika, toiminta, dialogi, roolihahmojen nimet, ja otokset. Käsikirjoituksen pituus on yleensä 90-120 sivua.

Elokuvakäsikirjoituksen rakenne

Elokuvakäsikirjoittaminen on ainutlaatuinen taiteen laji siinä mielessä, että sen kirjoittajalta vaaditaan sekä tarinankertojan, että dramatisoinnin ja elokuvan tekemisen taitoja. Lisäksi elokuvakäsikirjoitus ei ole päämäärä, vaan lähtökohta muiden toiminnalle.

Yksinkertaisin määritelmä elokuvakäsikirjoituksen rakenteesta on Aristoteleen kolmen näytöksen rakenne. Tarinalla on alku, keskikohta ja loppu.

Elokuvakäsikirjoittaja Syd Field on laajentanut teoriaa neljään näytökseen, koska huomasi että 120-sivuisessa elokuvakäsikirjoituksessa toinen näytös oli yleensä hyvin pitkä ja tylsä, ja että elokuvan puolivälissä useimmiten tapahtui jokin dramaattinen käänne. Fieldin neljän näytöksen rakenteessa näytökset merkitään 1, 2a, 2b, 3.

Field kehitti myös ajatuksen juonenkäänteistä, jotka ovat rakenteellisia toimintoja, ja tapahtuvat suunnilleen samoissa kohdissa useimmissa menestyneissä elokuvissa:

Esittely (Opening image)
- elokuvan ensimmäisen kuvan tulisi toimia koko elokuvan, ja varsinkin sen
  sävyn, yhteenvetona

Alkusysäys (Inciting incident)
- tyttö tapaa pojan, dekkari saa jutun tutkittavakseen yms.

Ensimmäinen käännekohta (Turning point 1)
- ensimmäisen näytöksen viimeinen kohtaus, jossa päähenkilön elämä
  muuttuu radikaalisti yllättävän tapahtuman seurauksena, Star Wars-
  elokuvassa Imperiumi tappaa Luke Skywalkerin kasvatusvanhemmat

Ensimmäinen muistutus (Pinch 1)
- 2a-näytöksen puolivälissä (3/8) katsojaa muistutetaan elokuvan keskeisestä 
  ristiriidasta, Star Wars-elokuvassa stormtrooperit hyökkäävät Millenium
  Falconin kimppuun Mos Eisleyssä (Imperiumi jahtaa Luke Skywalkeria)

Puoliväli (Midpoint)
- tärkeä kohtaus elokuvan puolivälissä, onnen kääntyminen tai paljastus, joka
  muuttaa tarinan suunnan
  
Toinen muistutus (Pinch 2)
- 2b-näytöksen puolivälissä (5/8) katsojaa muistutetaan jälleen elokuvan
  keskeisestä ristiriidasta, Star Wars-elokuvassa stormtrooperit hyökkäävät
  Luke Skywalkerin ja hänen ystäviensä kimppuun heidän vapautettuaan
  prinsessa Leian (Imperiumi jahtaa Luke Skywalkeria)

Toinen käännekohta (Turning point 2)
- dramaattinen käänne 2b-näytöksen vaihtuessa kolmanteen, sankari saa
  tarpeekseen ja lähtee vihdoin kohtaamaan vastustajansa

Kaksintaistelu (Showdown)
- kolmannen näytöksen puolivälissä sankari voittaa vastustajansa, tai kohtaa
  traagisen loppunsa

Ratkaisu (Resolution)
- tarinan ongelmat ratkeavat

Jälkikirjoitus (Tag)
- tarinan viimeisetkin irtonaiset langanpäät solmitaan yhteen

Katso myös klassisen draaman malli (Freytag) (http://web.cn.edu/kwheeler/images/Freytag.jpg), ja elokuvan dramaturginen malli (Olsson) (http://elokuvantaju.uiah.fi/oppimateriaali/kasikirjoitus/alkusysays.jsp).

Elokuvakäsikirjoituksen muoto

Elokuvakäsikirjoitus kirjoitetaan yleensä käyttäen 12-pisteen Courier- tai Courier New-fonttia ilman lihavointia tai kursiivia.

Pätkä käsikirjoitusta voisi näyttää tältä:

EXT.MAANTIE.DAY

MAANTIEKIITÄJÄ juoksee tietä pitkin.

MAANTIEKIITÄJÄ
Meeb, meeb!

Elokuvakäsikirjoituksen etusivu (Title page)

Käsikirjoituksen nimen sijainti on 25 riviä yläreunasta, ja se kirjoitetaan alleviivattuna tai lainausmerkeissä. Kaksi riviä sen alapuolelle kirjoitetaan käsikirjoittajan nimi (Written By), ja tarvittaessa mistä teoksesta käsikirjoitus on dramatisoitu (Adapted From). Sivun alanurkkaan yhteys- ja tekijänoikeustiedot.

Kohtausotsikot (Scene headings)

Elokuvakäsikirjoituksen kohtausotsikot alkavat joko lyhenteellä EXT (jos ollaan ulkona), tai INT (jos ollaan sisätilassa). Seuraavaksi kirjoitetaan paikan nimi, esim. KALARAVINTOLA, ja sitten vuorokaudenaika, esim.NIGHT. Sanat erotetaan toisistaan pisteellä.

Toiminta (Action)

Kaksi riviä kohtausotsikon alapuolelle kirjoitetaan kuvaus toiminnasta, siitä mitä katsoja näkee, ja aina preesensissä. Kohtauksessa esiintyvien henkilöiden nimet kirjoitetaan isoilla kirjaimilla, esim. ARSKA istuu AMALIAN viereen.

Dialogi (Dialogue)

Elokuvakäsikirjoituksessa dialogi esitetään kirjoittamalla ensin puhujan nimi isoilla kirjaimilla, ja sitten seuraavalle riville puhuttu teksti, esim.

                                            ARSKA
                                            Taidan ottaa paistettua kuhaa.

Täsmennykset (Parenthesis)

Täsmennyksillä voidaan ilmaista pieniä liikkeitä tai ruumiinkieltä, ja ne kirjoitetaan kaarisulkuihin henkilön nimen ja dialogin väliin, esim.

                                            ARSKA
                                            (Vääntelehtii kärsimättömästi)
                                            Taidan ottaa paistettua kuhaa.

Siirtymät (Transitions)

Siirtymillä kerrotaan miten elokuvassa siirrytään kohtauksesta tai kuvasta toiseen. Siirtymät kirjoitetaan käsikirjoituksen oikeaan reunaan, esim.

INT. KALARAVINTOLA.NIGHT                                                     

ARSKA istuu AMALIAN viereen.                                                                        

                                            ARSKA
Taidan ottaa paistettua kuhaa.


Kohtausten numerointi (Scene numbering)

Kohtaukset numeroidaan yleensä vasta kuvauskäsikirjoituksessa (Shooting script). Numerot merkitään kohtausotsikoiden vasemmalle puolelle.

Henkilöhahmot (Character)

Ainakin päähenkilöistä tulisi kehittää kiinnostavia, koska juuri niihin katsojat samaistuvat. Yleistäen protagonisti on hyvis, antagonisti on pahis.

Dialogi (Dialogue)

Dialogin avulla katsojalle kerrotaan elokuvan juoni ja syvennetään henkilöhahmoja. Dialogi kannattaa rakentaa lyhyeksi ja ymmärrettäväksi.

Kuvakerronta (Imagery)

Kuvakerronnan avulla katsojalle voidaan tehdä myös abstrakteja viittauksia, esim. sade – päähenkilö on masentunut, auringonpaiste – päähenkilö on iloinen ja rauhallinen.

Juoni (Plot)

Juonella tarkoitetaan useimmiten sitä, miten elokuvan tarina (Narrative) kerrotaan (Narration). Toiminnan, dialogin ja kuvakerronnan avulla juonta kuljetetaan (mieluiten ennalta arvaamattomasti) eteenpäin elokuvan sisäisen logiikan (tyylilaji, miljöö ja henki) mukaisesti.

Elokuvakäsikirjoituksen muokkaus

Käsikirjoitus ei useinkaan ole yhdellä kirjoittamisella valmis. Se vaatii muokkaamista, kohtausten uudelleenkirjoittamista, ja oikolukemista.


Tehtävä 3.
Kirjoita 2-3 minuutin animaation käsikirjoitus. Aihe on vapaa.

Voit kirjoittaa sen Wordilla tai CeltX -ohjelmalla, mutta siinä pitää olla oikea fontti, oikea fontin pistekoko ja oikea käsikirjoituksen muoto. Siinä pitää olla myös käsikirjoituksen rakenne, vähintään Aristoteleen kolmen näytöksen malli. Katso ohjeet kohdasta 5. Käsikirjoitus.

6. Storyboard

Storyboardissa eli kuvakäsikirjoituksessa elokuvakäsikirjoituksen kohtaukset jaetaan kuviksi niin, että kohtauksen sisältö voidaan välittää mahdollisimman tehokkaasti katsojille. Kuvat numeroidaan, ja kuvien ulkopuolelle merkitään kuvakoko, kameran liikkeet, ajallinen kesto, ja kuvaus toiminnasta. Myös dialogi ja äänet kirjoitetaan. Storyboard pyrkii olemaan mahdollisimman tarkka kuvaus siitä, millainen elokuvasta tulee.

Tehtävä 4.
Tee animaatiosi käsikirjoituksesta (tehtävä 3) storyboard.

Animatic
Animatic on animaation kestoon leikattu storyboard.

Tehtävä 5.
Tee animaatiosi storyboardista (tehtävä 4) animatic.


7. Pelikäsikirjoittaminen

Pelin käsikirjoitus ei välttämättä eroa paljoakaan elokuvan käsikirjoituksesta toiminnan ja mahdollisen dialogin osalta, mutta tämä riippuu täysin pelin lajityypistä. Pelin käsikirjoitus on kuitenkin yleensä aina laajempi kuin elokuvan käsikirjoitus ja osa pelin suunnitteludokumenttia.

Kolme keskeistä asiaa pelikäsikirjoittamisessa

1. Kuvaile pelin maailma, miltä se näyttää (mitä kamera näkee) ja miltä se tuntuu.
2. Mitä pelaaja kuulee, musiikki ja tehosteäänet.
3. Mitä pelissä tapahtuu, mitä päätöksiä pelaaja tai tekoäly tekee ja mihin pelikentän osiin päätökset liittyvät.

Täällä yksityiskohtaisempi esimerkki pelin käsikirjoittamisesta:

http://www.stormthecastle.com/video-game-design/write_a_video_game_script.htm

Ja täällä toinen:

http://finegamedesign.com/script/#example

Tehtävä 6.
Kirjoita käsikirjoitus FPS, RPG tai tasoloikkapelin yhdestä kentästä.

Käsikirjoituksessa pitää olla seuraavat asiat:
- kattava kuvaus pelikentästä
- pelimaailman historia/taustatarina
- pelikentässä tehtävät päätökset tai valinnat ja niiden vaikutukset (flowchart)
- kuvaus pelihahmoista (myös npc)
- kuvaus toiminnasta (vuorovaikutus npc-hahmojen kanssa)
- kuvaus välianimaatioista (cut-scenes)
- kuvaus äänimaailmasta

keskiviikko 17. elokuuta 2016

Simple animation in Photoshop

NAV15AP & NAV16AP

1. Jakso lukuvuonna 2016-17

This is a short tutorial for how to animate objects in Photoshop. This will come in handy when you are animating a sprite for Unity project and want to test it before giving it to the programmer.
First you need to have animated sprite. We draw poke ball last time and are going to use it in this assignment. Open the file in Photoshop and save it under a different name. Next you’re going to use the layer with a complete poke ball and duplicate it. Use ctrl + J to duplicate the layer. Rotate the new ball little to the left using transform tool. It can be found from toolbar under edit tab or by using hotkeys ctrl + T. Do this multiple times so that you’ll get full rotation for the ball.



Next we need to open animation window. This is found from tool bar under window tab. Select timeline from there and it opens the animation window in Photoshop.

 Select create frame animation. If you accidentally chose the create video timeline, it can be changed from the bottom left corner of the animation timeline.


In the frame animations you’ll need to make more frames. This is done with duplicate selected frame button. Make as many frames as you have layers in Photoshop. Next you need to go frame by frame and choose correct layer to match with animation frames. Leave only the needed layer active in the layers tab.


Now you are going to fine-tune the animation. Choose no delay option from the right corner of every frame. This determines the speed the frame changes to the next one.


Then you want to make the animation loop. There’s a button on the bottom left corner that says once. Change it to forever for a constant loop. Now when you press play from the timeline, it animates the object according to your settings. 


Go check out instructions from adobe in Finnish if you want to know more about frame animation in Photoshop: https://helpx.adobe.com/fi/photoshop/using/creating-frame-animations.html#addframestoananimation

tiistai 16. elokuuta 2016

Unity platformer - Death zone and collectibles

NAV15AP

1. Jakso lukuvuonna 2016-17

This time we are going to learn how to create death zone and pick up collectibles.

At first we need to create empty game object from top gameobject menu. The object should be placed underneath the floor. Character dies if it drops below the walking platform. We need to add box collider 2D for the empty game object. Be sure that the collider is wide enough that when the character falls, it makes contact with the death zone. Then we are going check the is trigger box in collider window. This enables the use of trigger action in playmaker and makes the collider transparent so that character will not stop when hitting it.





Then it’s time to add FSM to the death zone. Start state will be idle and has an action trigger 2D event in it. When character hits the trigger event is sent to the next state. In the next state we are going to use set position action to set character back to the position it started. Put the start values in the x,y and z axes. When you test the game, the character should move back to the start position when it makes contact with the death zone.


We also want to count deaths. This is done with int add action. You need to make a new variable to use it in int add. There are two different kinds of variables for playmaker: local and global. Local variable is usually available only in the FSM it is designed to. Global variable works across all the scenes and FSM’s in the project. We are going to use the local variable which can be added in the variable tab in this FSM. Be sure to use int as variable type because we only need integer numbers for deaths. In the int add actions we are going to use newly created int variable and add 1 every time the character makes contact with the death zone.



Then we are going to pick up some objects. Draw a simple circle in Photoshop and import it into Unity. Add a circle collider 2D to it and tick the option is trigger. Make FSM for the new object. In the start state we are going to use trigger 2D action. Make a new event for the action and create a new state. In the next state were going to use destroy self action. When player comes in contact with the object it disappears.

ASSIGNMENT 1: Make the player parent object to the camera. This is done by dragging the camera in the hierarchy window under the player so that they are linked. Now you need to figure out how to stop the camera from following the player when it falls to its death. And set the camera back to the starting point when the player respawns. You’ll also need to make the game wait for a while before respawning the player.

ASSIGNMENT 2: Make a global int for the object that is being collected. Use it in the pick up FSM before destroying the object.


maanantai 15. elokuuta 2016

Unity platformer - character movement 2

NAV15AP

1. Jakso lukuvuonna 2016-17

Last time you learned how to make basic movement for a character in Unity. Now we're going to learn a different and perhaps even easier way to do this.

First we need to create two events: flip left and flip right. Then we need two new states: left and right. At the start state we need to connect the flip left transition event to left state and do the same for right. Then we need 4 actions. 2 actions are get key down and you need to assign movement buttons to them. A button for moving left and D button for moving right. These are needed for scaling the sprite in the two other states.



We also need action get axis. This is for defining the movement. Axis name will be horizontal because we need the horizontal axis to move left and right. The axis name can be found in edit -> project settings -> input. It has automatically wasd and arrow key movement in it. Then we need to put multiplier in which is the max speed character is moving. We also need to store the value and for that we need to create a new float variable named speed.




Lastly we are going to put set scale action in left and right state. This will scale the character like we did in the last movement assignment. Be sure to use 1 for moving right and -1 for moving left. If you have decided to scale your character so it's bigger or smaller in the game, then you need to match that scale in the set scale action.

Next we are going to do the ground detection differently. Last time we used raycast and now we're going to use collision.

First we need to make a new FSM. Name the FSM as you see fit. For this we need to create two events: in_air and collision. These are going to be used as global transitions. You can put a global transition in FSM by right clicking it and choosing: add global transition. We also need another state named as grounded.


In the first state we are going to use action Collision 2D event. This is for the detecting if character is colliding with an object that has a specific tag. We need to put tag for our ground object and use the same tag in this action. Then we need to send the global transition named collision. In the first state we also need to use action set property. In this actions we need to define that the FSM_JUMP is not enabled. In the grounded state we need to set property for FSM_JUMP and check enabled section.

Lastly we need to send event from FSM_JUMP to FSM_GROUND_CONTROL. This is done with send event by name action. There we can define which global event we are going to send to which FSM. We choose FSM_GROUND_CONTROL from the list and write the event name in_air because we want the ground control to know that we are jumping and not touching the ground. Then the ground control can disable the jumping FSM and character won't be able to jump again while in mid air.