woensdag 21 maart 2018

Informatie

Dit is een blog waar ik bijhoud wat ik geleerd heb in mijn 38 uur zelfstudie. In de link op de volgende regel houdt ik bij hoelang ik overal mee bezig ben geweest.



Urenbesteding: http://bit.ly/22EGDfo



Elke tutorial beschijf ik los in een blogpost, wanneer het een tutorial reeks is komt het in de zelfde blog. De losse filmpjes (hoofdstukken) worden dan onder kopjes verdeeld.

donderdag 7 april 2016

Xbox controller setup

Link

https://www.youtube.com/watch?v=0CHw5M-gIDs&nohtml5=False


Waarom deze tutorial

Voor een project moet ik Xbox controllers gebruiken in Unity. Dit heb ik nog nooit gedaan dus vandaar deze tutorial


Wat heb ik er van geleerd

In de input manager kan je inputs verwerken voor je game.
Bij Name: vul je de naam voor de axes in, bijvoorbeeld horizontal. Deze gebruik je dan ook in code.
Bij Descriptive name kan je invullen wat deze precies doet. Bijvoorbeeld: Links en rechts lopen.

Voor elke speler moet je dan een Joy num invullen. (je kan ook voor alle joysticks aangeven voor bijvoorbeeld een start menu).

De deadzone geeft aan hoeveel de stick minimaal moet bewegen voordat hij input geeft.

Op de unity site is een schema te vinden wat elke knop doet in (A knop is 0 bijvoorbeeld)

Wanneer je een xbox controller aansluit wordt hij gewoon gezien als controller. Het is dus erg simpel!

particles

Link

https://www.youtube.com/watch?v=uDUO0jPDYXk

Waarom deze tutorial

Ik weet hoe particles werken, maar ik doe meestal maar wat. Ik wil beter begrijpen wat alles doet.


Wat heb ik er van geleerd

De basis is dat er een syteem is dat particles uitschiet.

Een particle system is een system dat particles emit. Een particle effect zijn een aantal particles systems bij elkaar.

Wanneer je een particle system als child maakt van een andere particle system, worden ze allebij geanimeerd in de editor.

Onderdelen van een particlesystem heten modules.

Boven al die modules, staat editor. Daar kan je particle systems maken.
In de editor kan je ook direct extra particle systems maken.

Bij het plustekentje boven de modules kan je aangeven welke modules je wil laten zien.

Elke waarde kan je ook veranderen in een curve, zodat ze over de tijd veranderen inplaats van een vast getal.

Bij de module emmision, kan je op time of distance emitten. Op distence emmit de particle alleen wanneer het object beweegt.

Met een burst kan je om de X seconden een lading particles afschieten. (handig voor explosions)

Particles kunnen ook collision hebben. Daarin kan je aangeven hoeveel 'bounce' ze hebben.
Naast een mesh collide kan je ook alleen een plane collide doen. Dan geef je een plane aan en scheelt erg veel rekenkracht.

Met subemitters kan je een extra emmiter maken wanneer er iets gebeurt (particle wordt gemaakt of gaat dood etc)

Een billboard render mode is dat de particles op een vlakke plaat ge-rendered worden. Mesh gebruikt 3d particles.

Om een eigen particle te renderen moet je een sprite aanmaken en die op een matterial gooien met een particle shader. Dan sleep je de matierial op de particle emitter.

woensdag 6 april 2016

Unity 5 Tutorial: First VR App

Link

https://www.youtube.com/watch?v=MH64yrOq8Vo

Waarom deze tutorial

Met de VR brillen die allemaal opkomen is het natuurlijk handig om even te kijken hoe het nou werkt in unity.

Wat heb ik er van geleerd?

Op de site van oculus kan je de pc runtime downloaden (je hebt de sdk niet nodig).

Misschien heb je specefieke drivers nodig voor je graphics card.

In de Oculus configuration utility kan je alle instellingen aanpassen van de occulus. Dan klik je op show demo scene. Klik op start en recenter.
Als je op tracker bounds klikt zie je een soort camera, dat moet overeenkomen met de camera die je in het echt hebt opgezet voor je oculus.
Alle objecten in de test scene zijn objecten waarvan je de grootte kan inschatten zodat je ongeveer weet of de schaal goed is.

In unity
Bij settings for PC klik je bij other settings op virtual reality supported. De occulus werkt nu.
Je hoeft dus alleen een camera en een (aantal) object(en) te hebben om ze te bekijken.

De anti-aliasing moet minimaal op 2X staan omdat je zo dicht op het scherm zit.

Het unity logo dat je ziet wanneer je een game opstart is nu ook in vr.

In vorige verzies van unity had je twee cemeras waardoor je een verschillend plaatje kon doen voor elk oog. Dit kan nogsteeds in unity 5.

Op je cemera kan je instellen welk oog de camera moet zien (nu staat 'ie op both). Je kan nu de camera kopieren en ze allebij een los oog geven.
Daarna kan je voor sommige objecten een tag geven dat ze alleen door een bepaald oog gezien worden, die alleen gezien wordt door het bepaalde oog.

Op de site van oculus kan je ook een aantal tools downloaden zoals player controllers en meer efficiente camera's

PERSISTENCE SAVING & LOAD DATA

Link

https://www.youtube.com/watch?v=yxziv4ISfys

Waarom deze tutorial?

Wanneer je een spel afsluit en weer opstart, is het spel opnieuw gestart. Ik wil kijken hoe het moet om een save and load systeem te maken.


Wat heb ik er van geleerd?

Met PlayerPrefs kan je dingen opslaan en later weer laden. 
PlayerPrefs.SetInt("Variable",100);
Maar dit is niet echt veilig aangezien het maar een text file is.

Met serialization vergrendel je een bestand. Je kan een languege sirialization gebruiken of de ingebouwde verzie van serialization, maar die is heel uitgebreid terwijl je dat niet nodig hebt.

Hiervoor moet je de namespace Using System; en Using System.Runtime.Serialization.Formatters.Binary; Using System.IO;

Hiermee maak je ze binary (ze zijn dus nog wel te lezen maar erg lastig te veranderen). Het is toch veel veiliger dan playerprefs.

In een Save() method zet je dan deze code:
public void Save()
{
     BinaryFormatter bf = new BinaryFormatter();
     FileStream file = File.Create(Application.persistentDataPath + "/playerInfo.dat");
     PlayerData data = new PlayerData();
     data.health = health;
     data.experience = experience;
     bf.Serialize(file, data);
     file.Close();
}

public void Load()
{
     if (File.Exists(Application.persistantDataPath + "/playerInfo.dat"))
     {
          BinaryFormatter bf = new BinaryFormatter();
          FileStream file = File.Open(Application.persistentDataPath + /playerInfo.dat",FileMode.open);
          PlayerData data = (PlayerData)bf.Deserialize(file);
          file.Close();

         health = data.health;
         experience = data.experience;
     }
}

//In deze class maak je een class aan waarmee je variables kan opsturen.
[Serializable]
class PlayerDate
{
   public float heath;
   public float experience;
}





maandag 4 april 2016

FMOD + Unity Integration Tutorial

Link


Waarom deze tutorial?

In sommige projecten werk je samen met audio designers die vaak met Fmod werken. Het lijkt me handig om zelf ook wat verstand te hebben van het programma en hoe je dit importeert.


Wat heb ik er van geleerd?

In fmod kan je een boel geluiden inladen in de audiobin.
Op de timeline kan je een multi sound aanmaken. Deze bevat meerdere sounds.
Wanneer er meerdere files in een multi sound zitten pakt het programma elke keer een random sound.

Met een parameter kan je bepaalde dingen in fmod aansturen vanuit unity.
Door elke audiofile een losse track te geven kan je de volume los aansturen. Op deze manier kan je bijvoorbeeld steeds meer geluiden toevoegen op basis van een variable

Een bank wordt ingeladen door unity dus alle audio event moeten in de bank worden gestopt in fmod.

In unity moet je de Fmod integration package downloaden en installeren.
Hierdoor krijgt de UI van unity een Fmod tab erbij.
In die tab kun je de sounds importeren van Fmod voor unity.

Wanneer je fmod gebruikt moet je op de main camera de listener veranderen naar de Fmod_listener.

Op de fmodcontroller kan je dan een geluid aanroepen met FMOD_StudioSystem.instance.PlayOneShot('Path','Position')

Om de variables te gebruiken van Fmod moet je dit toevoegen:
private FMOD.Studio.EventInstance 'Variable name';

Dan kan je met een 'Variable name'.setValue(); de value aanpassen.

met 'Variable name'.Stop(); stopt de muziek of soundeffect.



Content Scrolling

Link


Waarom deze tutorial?

Ik wil weten hoe je meer text stopt op een plek waar weinig ruimte is (dus met scrollen)


Wat heb ik er van geleerd?


Met een scroll rect maak je heel gemakkelijk een text die je can scrollen met de muis of met je cursor.

In de scroll rect kan je aangeven of je alleen horizontaal of verticaal wil scrollen (of allebij).

Een scrollbar object kan dienen als scrollbar (dit geef je dan aan in de scroll rect)

Je hebt verschillende vormen van hoe de text zichgedraagt. Het kan elastisch, statisch of gelimiteerd.


Wat heb ik er mee gedaan?

In mijn eigen game heb ik een stuk text gemaakt dat mee-scrolled met je muis en cursor. Ook is een een slider die je kan verslepen.