maanantai 20. helmikuuta 2017

HYPE-HANKKEEN ILMEEN SUUNNITTELEMINEN

NAV16AP

3. jakso lukuvuonna 2016-17


Hype- eli hyötypelihanke tarvitsee uuden ilmeen.

Hype-hankkeessa luodaan uusia toimintatapoja ja malleja koulutusasteet, toimialarajat ja organisaatiorajat ylittävän hyötypelikoulutustarjonnan luomiseksi ja räätälöimiseksi elinkeinoelämän tarpeisiin digitalisaation mahdollistamaa ajasta ja paikasta riippumattomuutta hyödyntäen.

Koulutuksen kehittämisessä huomioidaan erityisesti elinikäisen oppimisen ja henkilökohtaisen osaamispääoman kerryttäminen mahdollistaminen.

Perimmäisenä tavoitteena on peliteknologian ja yleisemminkin pelillisyyden hyödyntäminen.

1. Uusien tarveperusteisten innovaatioiden synnyttämiseksi ja jalkauttamiseksi.

2. Luovien alojen osaajien työllistymistilanteen parantamiseksi.

3. Uuden liiketoiminnan synnyttämiseksi.

4. Elämänlaadun ja hyvinvoinnin parantamiseksi.

Miten ylläolevan tekstin kohdat 1-4 voi esittää muuten, ikoneilla ja kuvilla?

Esimerkiksi Uuden liiketoiminnan synnyttämiseksi kohdassa voisi olla tehtaan kuvia, joka kuvaa uuden liiketoiminnan syntyä.

Elämän laadussa voisi olla joku hymiönaama, joka tietenkin kuvaa hankkeen saavuttamaa hyvää vointia.

Näitä ei kannata ottaa kirjaimellisesti vaan vain auttamaan ideoinnissa.

1. Tehtävä

Suunnittele hankkeelle julistekokoinen juliste.


Tarvitaan siis ilme.

Logo mockup. Sitä ei tarvitse käyttää pohjana, mutta lähinnä se kuvaa mitä haetaan.

Logossa on yritys esittää kaikki haettavan ilmeen ydinasiat.

1. Fontti Myriad Pro. llmeen tyyliin kuuluu käyttää aina Myriad Pro fonttia vaikkapa Regular bold ja italic tyyleillä. Web sivuilla ja miksei julkaisuissamme voi olla käytössä joku lisäfontti jota käytetään otsikko-tasoilla


2. Tuodaan pelillisyys jotenkin vaivihkaa esille.


3. Päävärit (Googlesta ekalla haulla sattuneet material design värit) joita on helppo käyttää kaikessa viestimässämme materiaalissa.


2. Tehtävä

Suunnittele hankkeelle logo.



keskiviikko 15. helmikuuta 2017

UNITY FPS - Enemy spawning and shooting

NAV16AP

3. jakso lukuvuonna 2016-2017

Create a weapon to your enemy just like you did for the player and place in it the hierarchy so that weapon has a holder, the weapon itself is child to the holder and spawning point for the enemy bullet is child to the weapon.

Create health fsm for the player in the same way you did for the enemy.


You'll need two events death and damage which is a global event.  Create 1 float variable called health.


In the first state set health to 10 with set float value action.


Next state has float compare action which compares the health variable to 0. Make death transition for this state and select it in the less than and equal sections. The death transition goes to third state.
Third state has only restart level action so that when player dies the level is restarted.


Last state has the damage global transition. This is needed for the bullet to do damage. Select float subtract action and choose health for your float variable and 1 as the number to subtract. Make finished transition to the second state that has the float compare action.


Also make a new bullet for the enemy. The bullet will be almost the same as for the player.


First state has two events: hit and destroy. Remember to make game object variable named player object and float variable named speed. Select the speed for that variable or the bullet won't move.



Choose three actions: translate, raycast and wait for the first state.

Translate has the speed variable in the z axis.


In raycast write 1 in the z axis for direction, 0.9 for distance and select hit as hit event and store the hit object as player object. 

Wait for two seconds before sending event finished to the destroy state.


Second state has compare game object tag action in which you will compare your game object variable to the player tag. True event is hit player and false event is not player. You'll need to make these events in the event tab. Link true event to third state and false event to destroy state.


Third state has the send event by name action. Send the event to the player object and choose right fsm and event for the action. 

Create finished transition that links to the fourth state called destroy which has the destroy self action.


Next create a new fsm called enemy shoot for the enemy.


Create a bool variable named sight and two events: fire & keep firing.



In the first state you're going to have two actions. First is get fsm bool in which you select from your enemy movement fsm the insight variable and store it as the newly created sight variable. Bool test has the sight as variable and it sends is true event fire.


Second state has 4 actions: get fsm bool, bool test, create object and wait.
Get fsm bool has same selections as in the first state. Bool test has sight as bool variable and finished in false event. Create object has your enemy bullet prefab as the created object and enemy bullet spawn as spawn point. Wait action send finished event after 0.06.



Third state has the same actions except for the create object. In wait action choose the time to be 0.9.


Lastly you're going to spawn more enemies. Make an empty game object and name it as game controller. Select new fsm for it.


Create four variables. First is named position and it's a vector3 variable. Then you need two float variables named zaxis and xaxis. Create a global int variable called enemy.  Also create new event called create enemy.


In the first state choose action called random float and use it two times. The min and max values for these depend on your game scene space. You can create an empty object and move it around to check in what area you want your enemies to spawn in. After your have selected the values and stored those in the float variables make finished transition to the second state.


Second state has three actions: set vector xyz, create object and int add.

In the set vector xyz choose your xaxis and zaxis float variables in corresponding section. For the y value choose the y value from your enemy so it wills spawn at right height. Select your position variable in vector 3. Create your enemy prefab in the create object and select position variable as position. Int add actions has global enemy int variable  and add 1 each time enemy has spawned.


Third state has int compare action. This will compare your global enemy variable to a number you choose. This number will represent the number of enemies in the field. If the enemy variable is less than the number send event create enemy to the first state in less than section.



Lastly you want your enemy count to decrease. Make int add action in the enemy health fsm before the destroy self action. Choose your enemy variable in the variable section and make section add -1.


tiistai 14. helmikuuta 2017

UNITY FPS - Enemy

NAV16AP

3. jakso lukuvuonna 2016-2017

Now that you have done player movement and shooting it’s time to create some enemies.

Before creating the enemy, make some walls in your scene with different sized 3D cubes.

For this tutorial you’re going to need Playmaker ecosystem package. If you don’t have it already download it. Open the ecosystem window and type in the search pathfinding. Download and import the package.


Make every wall and floor in your scene static by selecting that object and pressing the static button. Open the navigation tool from the top tool bar under window. Then go to navigation and press bake.

Create new 3D capsule and insert new fsm for it. This fsm will work as ai for the enemy. Also make a new tag called enemy and tag your new capsule with it.


In the new fsm the first state has action find game object.


Create new game object variable and name it as Player object. Choose player tag as the tag and your game object variable in store section. This state identifies and stores the player object that can be used in later states.


Next state will have 5 actions: smooth look at, raycast, set agent destination as game object, set bool value and game object compare tag. For this, create a new game object variable called test, game object variable called empty and bool variable called insight.

Smooth look at should have your player game object variable as the target object and make finish distance 0 so the enemy will always look at the player.


Raycast on z axis and choose in the hit object section your test object.


Set agent destination as game object has you empty game object in the destination. Game object compare tag compares your player test object to the player tag. Create event called move and select it as the true event. Lastly create action set bool value and select insight as the bool variable.


Next state has also same 5 actions. This time use your player object as the destination in set agent destination as game object. Game object compare tag will have finished in the false event and insight bool value will be true.



Enemy will need a health pool so that player can damage it. Create new fsm for the enemy.
The fsm will need float variable called health and one event called death and second event that is global called hit.


In first state you need to set the health at 10. This is the max health the enemy has.


Next state will have action float compare. Choose float as your health variable and for the equal and less than sections make it send the death event, which will transition to a third state.


Third state will have destroy self action.


You also need fourth state which has the hit as global transition. In that state use float subtract action and choose 1 as the amount to subtract.


Lastly make some changes to the bullet movement fsm. Start by creating 3 new events: hit, hit enemy and not enemy. Also create new game object type variable named Enemy. 



In the first state add raycast action. Select the z axis to be the axis where raycast happens and make the distance 0.9. Select hit in the hit event and your enemy variable as the store hit object. Make a new transition named hit from the first state to a new state.


Third state will have game object compare tag action. Choose hit enemy and not enemy as transitions in this state and link those to the true and false event sections. Select your enemy variable as the game object and enemy as tag.



Fourth state has send event by name action. Select game object fsm and specify game object with your enemy object as the specified game object. Choose right fsm of the enemy and send hit global event.