vrijdag 13 december 2013

2D in Unity en UNITE!

2D games is al langer in Unity mogelijk, maar sinds de uitgave van versie 4.3 is er een aparte mode gekomen, waarin je helemaal kan werken in een aangepaste versie van de editor. Om dit te nieuwe deel bekend te maken heeft Unity zelf een video vrijgegeven waarin ze de nieuwe verschillende aspecten laten zien waarmee je zelf kan maken.

Ik heb gekeken naar de nieuwe verschillende mogelijkheden waarin dit mogelijk is. Het filmpje heb ik twee keer gekeken omdat het nieuwe deel erg interessant is. En misschien voor een project in het volgende semester een meerwaarde kan hebben. 2D projecten heb ik nog niet eerder gemaakt, hierdoor lijkt het me erg interessant om hiermee te werken. Het geheel wat het filmpje laat zien, is dat er met de nieuwe animatie editor het mogelijk is om 2D te animeren en hoe de structuur van de opbouw van een 2D game in Unity is. Het opbouwen van een scene met directe PSD's vind ik erg handig omdat het nu direct painten is en daarmee er gelijk kan worden gewerkt. Dit moedigt mij persoonlijk aan om hiermee een keer een demo scene te maken of voor een project een prototype te maken.

De walkthrough laat zien de productie van een simpele demo in elkaar zit, de verschillende onderdelen worden getoond en hoe deze met elkaar in verbinding staan. De verschillende mogelijkheden waaronder psychics die met BOX2D worden berekend, zijn nu mogelijk om toe te passen. De nieuwe mogelijkheden die Unity nu biedt zijn meer dan welkom. Daarnaast heeft Unity een mogelijkheid in gebouwd om zelfs in de 2D scene, nog verschillende 3D objecten erin toe te passen.

Daarnaast heb ik de recente UNITE! gekeken om te zien wat de plannen voor Unity en de ontwikkeling van de engine, editor en de toekomstige games zijn. Daarnaast wordt er een trailer getoond waarin er wordt laten zien dat er allerlei nieuwe mogelijkheden op het gebied van onder andere animatie, post-processing en rendering mogelijk zijn. De Workflow hebben ze ook aan gewerkt, er zijn dingen verandert om verschillende dingen sneller te laten verlopen.

Ze vertellen dat ze met Unity een ondersteuning bieden voor vele nieuwe systemen en consoles. Hierdoor kunnen ze nieuwe mogelijkheden toepassen qua ondersteuning. Ze hebben het ook over de  ondersteuning van nieuwe technologie waaronder Oculus Rift. Deze nieuwe hardware zal in de toekomst zeker meer worden gebruikt. En ze hebben het over dat met Unity de data in the Cloud willen gaan. De ondersteuning voor cross development is een nieuwe optie wat ze aankondigen en ontwikkelen om de ontwikkeling te versnellen en te vorderen.



Uitgebreide tutorial voor het maken van en 2d sidescroller

Na het zien van de bovenstaande video's heb ik gekeken naar de volgende tutorials die verder gingen op dit onderwerp. Daardoor ben ik gaan kijken naar de tutorial die in verschillende stappen uitlegd hoe een 2D game moet worden gemaakt. De tutorial legt in 6 delen uit hoe er een 2D platformer kan worden gemaakt in Unity. Hierdoor ben hoe dit wordt opgebouwd. Het bouwen van een 2D game zoals in deze tutorial laat zien hoe het proces is met het maken van een sidescroller. In deze tutorial wordt er een sidescroller gemaakt aan de hand van 3d objecten binnen een scene. In begin laat hij de basis principen zien hoe een begint van de code moet worden opgemaakt om de basis om te werken in elkaar zit. Waaronder hoe de ridgetbody van de object wordt toegepast.

Daarna begint hij met coden van de een camera tracking, die de speler volgt wanneer deze door het level heen loopt. Het coden van deze camera kwam ik deels volgens, maar hij werkt veel met coordinaten, wat leerzaam was om te zien hoe hij dit in elkaar zet. Later volgt een simpel level design dat bestaat uit wat objecten. Tevens voegt hij een karakter dat bestaat uit geometrische vormen toe aan het level en past hij de animaties toe. Deze worden met code gelinkt aan het model, dat plaatst heeft gemaakt voor de placeholder.

Daarna gaat hij stap voor stap verschillende animaties aan verschillende states van het karakter toepassen. Hiermee gaat wordt het karakter voorzien verschillende functies. En uiteindelijk kan het hiermee door het level heen, verschillende functies uitvoeren.

En deze tweede tutorial is daarentegen wel gebaseerd op de nieuwe 2D mogelijkheden van Unity 4.3. Deze beschrijft hoe er met de nieuwe 2D editor werkt en wat de nieuwe functies zijn. De tutorial is niet zo uitgebreid als de eerste, maar geeft wel een korte blik hoe de nieuwe editor in de basis werkt.

Als laatste ben ik nog gaan kijken hoe het zit met het invoegen van 2D sprites in Unity4.3. Het nieuwe sprite systeem dat erin is verwerkt geeft de mogelijkheid om verschillende frames efficient in Unity te importeren tot een animatie. In deze tutorial wordt het proces beschreven hoe dit wordt gedaan. De frames worden per frame op de timeline toegepast waardoor de animatie duidelijk wordt. In de Unity Animator wordt deze animatie state samengevoegd zodat het kan worden gebruikt als een animatie die kan worden aangeroepen op een object.  De tutorial is helaas niet voorzien van een voiceover, maar is visueel goed te volgen.



Totale tijd: 6,5 uur

maandag 9 december 2013

Verschillende effecten in Unity Pro

Bij het kijken wat image effects kunnen bedragen aan het project heb ik informatie gedaan over de verschillende effecten die deze toevoegen aan een scene. Maar heb niet gekeken naar wat het effect doen in mijn scene zelf, maar ik ben achtergrond informatie over de betreffende effecten zelf gaan doen.

Deze video gaf mij een goede indruk hoe Ambient Occlusion ongeveer werkt, maar ook wat het doet >
http://www.youtube.com/watch?v=eeKQAXg-Qo8
http://www.youtube.com/watch?v=-IFxjKT7MXA

Niet specifiek in Unity, maar wel een goed voorbeeld hoe het werkt en ingame wordt toegepast.
http://www.youtube.com/watch?v=RQDAQvEDiLg

Het gebruik van image effects in Unity geeft een breedscala een mogelijkheden. Een video van Unity zelf die ik op Youtube tegenkwam was deze, de making-of van de demonstratie trailer "the Butterfly Effect" waarin de meeste nieuwe technieken van Unity4.0 worden laten zien en lichtelijk beschreven.

http://youtu.be/BwMu3PxHOEc

Een mogelijkheid waarin de Image effects worden gebruikt om een scene aan te kleden, is van belang voor een sterk sfeer. In deze video wordt er getoond hoe subtiel gebruik van deze mogelijkheden deze space scene echt aankleden.
http://www.youtube.com/watch?v=d61opleiD24

Totaal Uren: 1,5

(wordt nog bijgewerkt...)

Cubemaps in Unity

Vorige week heb ik voor project Design for Space gekeken naar mogelijkheden om ons project uit te breiden. Uit wat onderzoek en overleg wat onze scene mistte, bleek het onder andere te zijn dat we de grond een reflectie wilde geven. Voor reflectie heb je de mogelijkheid om te kijken naar twee punten, namelijk realtime en faken dmv cubemaps. Gezien Unity (nog) niet anders werkt dan met cubemaps om een reflectie op een object weer te geven, ben ik me gaan verdiepen hoe dit werkt.

In het eerste moment waarop ik dit had toegevoegd door middel van deze pagina. Hierin wordt er een script gegeven waarin je deze in de map editor moet toevoegen. Dit geeft je de optie om een cubemap te renderen van je omgeven. Doormiddel van een nieuwe cubemap aan te maken en een tweede camera te gebruiken voor het renderen van de cubemap moet dit lukken. Deze pagina gaf me een inzicht hoe het ook mogelijk was, maar ik heb hier na het doorlezen naar gekeken wat hier de mogelijkheden zijn.

Zo dacht ik tenminste, met hulp van de leraar (Aaron) kreeg ik in eerste instantie de reflectie deels werkende, maar de reflectie was niet ondersteboven, maar het toonde de scene zoals die was, alleen dan in de grond. Dit hoorde natuurlijk niet... dus ben ik na deze les gaan kijken wat hiervan de oorzaak kan zijn. Ik begon met het draaien van de camera, werken en testen verschillende opties in de camera. Maar dit mocht alleen niet helpen. Ook de camera 180 graden horizontaal omkeren, wilde geen effect hebben. Uiteindelijk heb een nieuwe camera gemaakt, deze weer gedraaid, maar de afstand van de achterhoek in de kamer genomen. Daarbij de reflectie shader in Unity zelf te hebben gekozen als shader en een Parallax Diffuse te hebben gekozen, wilde opmerkelijk genoeg werken. Ik kan niet snel bedenken wat het echte probleem was met de eerdere setup van de scene, maar het lijkt nu goed te werken. Een betaald script vond ik echter toen ik informatie zat op te doen over Cubemaps. Het lijkt te werken met nodes en simpel in gebruik.

Daarnaast ben ik einde van vorige week tevens aan de slag gegaan met licht. Deze taak heb ik op me genomen om in het project te onderzoeken. Gezien ik al eerder met licht bezig was, heb ik deze onderdelen ik heb geleerd meegenomen, naar deze week. Maar waar ik geen echte ervaring mee had, was het gebruik maken van Lichtmapping in een scene. Ik heb allereerst gekeken naar het materiaal dat we in de les hadden behandeld. Maar daarnaast heb ik deze tutorial erbij gehouden om een test low quality versie uit te rekenen. Al heb ik uit deze tutorial een idee gekregen wat er mogelijk is met lichtmapping.

Al kwam ik dit script tegen, waarin er wordt gesproken over een realtime reflection, ik heb deze shader nog niet getest, maar hier ga ik zeker nog naar kijken, hoe deze shader werkt. De pagina Virtual Anatomy gaf me een inzicht hoe het ook mogelijk was, maar ik heb hier na het doorlezen naar gekeken wat hier de mogelijkheden zijn.

Totale tijd: 8 uur.

zondag 10 november 2013

Beschrijving Eerste Eindopdracht Unity

Vorige week ben ik bezig geweest met de eindopdracht van Unity, de shader die is gemaakt heb ik gemaakt aan de hand van het materiaal dat we hebben geleerd. De shader die ik wilde maken moest een aantal voorwaarden hebben, deze waren:

- Een aangepast Rimlight
- Twee texturen die aan de hand van een trigger in Unity in elkaar overliepen
- Een lak/glans die de metaal textuur een meerwaarde geeft

Als eerst ben ik de Rimlight shader gaan bewerken, door met de multiply  de kleuren wat minder intens te maken. Doordat er een lak laag overheen komt wordt de intensiteit van de het object al hoger. Doordat ik er een range aan heb toegevoegd, heb ik dit zelf kunnen schalen

Daarna ben ik aan de sla gegaan met de textures, door de textures aan te passen en ze om te draaien met een invert, heb ik de twee textures erin gekregen. Dit was in de les ook uitgelegd, maar ik heb de textures aangestuurd met een Float4 waardoor Unity dit herkend als een object die kan worden aangepast dmv animations. De twee textures die over het model heen liggen veranderen daardoor in de animatie van textuur. De waarde die ik in de float heb meegegeven liggen tussen 0 en 1.


Als laatste heb ik de shader een laklaag meegegeven. Dit geheel heb ik mee zitten experimenteren. De shader zelf is opgebouwd uit een Add om de kleur intenser mee te maken en deze in waar te verhogen. Het geheel waarmee het lak effect voornamelijk worden aangestuurd zijn de "Floor" operation aangestuurd met een Fresnel met daaraan de optie om de lak te tonen wanneer erop wordt gekeken, Ook deze heb ik voorzien van een "Range" om dit effect zelf te kunnen schalen qua intensiteit.





Hierna ben ik gaan testen en hoe het geheel mooi op elkaar kon worden afgestemd, zodat het beeld klopt. En kon de omgeving worden gemaakt. Zoals is te zien heb ik gekozen voor een eiland scene waarin het vliegtuigje zou kunnen staan.



De animatie in de scene heb ik weer toegepast door middel van een camera om het object heen te laten gaan om zowel de textuur verandering als de lak duidelijk weer te geven. En is er een animatie gemaakt om de verandering van de textuur te kunnen toepassen. Hierbij had ik een paar problemen zoals dat de textuur overgang te snel ging en schitterde. Dit bleek te zijn omdat de curve niet tussen 0 en 1 zat. Maar er soms overheen ging. Dit heb ik kunnen verbeteren door de berzierpunten handmatig aan te passen.



Aantal uur: 14

Shader / Unity Jetsons Room

Een twee weken geleden heb ik mijn oude project van kamer, waarin er een kamer is gemaakt in de stijl van The Jetsons. In de originele versie vond ik de kamer redelijk klaar, maar grafisch niks boeiends. Ik ben begonnen met het toepassen van een nieuwe shader.

De shader die ik heb gebruikt is een Rim Light-shader. Maar aan deze heb ik een texture toegevoegd. Dit heb ik gedaan door simpel wel op de diffuse een Sampled2D toe te passen. Daarna heb ik met hulp van deze tutorial een normalmap op de shader toegevoegd.

Het rimlight deel heb ik bewerkt door de kleur met Saturate toe te voegen, wat verandert. 

Daarnaast heb ik met Unity gekeken wat de mogelijkheden zijn om een sfeer te zetten met belichting. Opties als Bloom/Flares maken een scene vaak al too much of gewoon lelijk. Dit gebeurd ook met veel image effect (in Unity Pro). Maar ik wilde met al deze opties een natuurlijk getrouwe licht werking opzetten. Met deze opties ben ik aan de slag gegaan, ik gebruikte ze hiervoor al, maar vaak kreeg ik een heel onnatuurlijk uitziende scene. Dus besloot ik me een goed hierin te verdiepen.




Maar voordat ik begon met het aanpassen van de belichting, heb ik eerst van alle textures opnieuw normals zitten maken. Hiervoor heb ik het programma CrazyBump gebruikt. dit programma is net als NDO2, een editor om normal maps te maken. Maar heeft een directere interface waardoor ik het persoonlijk sneller vind werken.





Hieronder een eigen gemaakte texture en een normal map die is gemaakt met CrazyBump:







Aantal uur 12 uur.

zondag 13 oktober 2013

Strumpy Shade editor // Unity week 3

Gisteravond en vandaag ben ik met Strumpy gaan experimenteren om te kijken hoe deze in elkaar steekt. Nadat we er in de les al mee bezig waren geweest ben ik zelf ermee aan de slag gegaan. Nadat ik begon met bewerken van de distortion shader, ben ik gaan kijken hoe deze in elkaar zit. De distortion shader is interessant om ermee aan de slag te gaan. Maar ik ben begonnen met het bekijken van hoe de de RimLight shader werkt.

De rimlight shader zit op zich niet heel complex in elkaar, maar het bewerken van deze shader is voor mij de meeste tijd in gaan zitten. Als eerste ben ik begonnen met het kijken hoe de shader de rimlight toepast. Hiervoor heb ik met de instellingen zitten spelen om te zien wat het effect van de verschillende onderdelen is. Maar na een uur of twee vond ik het genoeg geweest en ben ik begonnen met maken van een nieuwe shader.



De alloy(?) like shader

De basis voor de shader is de Rimlight shader, die ik heb bewerkt door een kopie te maken van de shading die ervoor zorgt dat de shading aan de randen van het betreffende model verschijnt. Om de donkere shading in de model te krijgen heb ik eerste een copy gemaakt van de opzet voor een normale rimlight. Echter heb ik een substract toegepast op om de kleuren eraf te halen met daaraan nog een Add om weer kleuren toe te voegen. Maar aan de add heb ik om deze van een nieuwe kleur te voorzien een color toegepast, waarin een donkere kleur moet worden gekozen om dit effect te krijgen (zie de _Shade_color_Dark). Deze color optie heb ik twee keer op de Add toegevoegd, dit omdat de midde toon te donker was.

Echter vond ik het effect wat te sterk overkomen, om de dit minimaal te verlagen, heb ik een toggle toegevoegd (de Range optie) om dit tussen twee waarden aan te passen en het effect qua sterkte precies in te stellen. Om het geheel van een milde textuur te voorzien heb ik op de Diffuse een textuur toegepast, dit om het geheel van een patroon te voorzien.




Het testen van de mogelijkheden van Strumpy Shader Edtor is niet gegaan zonder te kijken hoe de game die vorig jaar tijdens de Unity lessen is gemaakt, te bewerken met wat shaders. Mijn test game Breaker Blocks heb ik aangepast met een bewerkte Rimlight shader. Ik heb gekeken met deze test of de shader ook toepasbaar een resultaat kan neerzetten. De shader zelf heb ik aangepast om er een texture in toe te kunnen passen. 





Later op de middag heb ik een begin gemaakt om met NDO2 normal/specular en heightmaps te begrijpen toe te passen in Unity. In mijn volgende update hier meer over.





Totaal gewerkte tijd: 8.5 uur.

maandag 7 oktober 2013

Selfstudy: eerste week met Unity

Vandaag ben ik met Brenda en Denver onderzoek gaan doen naar welke onderdelen wij voor ons project willen gebruiken. We hebben nog niet echt een goed beeld van wat we gaan doen voor de game zelf, maar we weten al wel welke sfeer we op willen gaan.

Bumpmapped Textures

Als eerste kwam ik deze tutorial tegen voor Unity. Deze tutorial beschrijft hoe je met Normal Maps objecten diepte kan geven. In het filmpje wordt er gebruik gemaakt van Crazy Bump! maar NDO2 lijkt me net zo goed.

http://www.youtube.com/watch?v=C2uFD2R1IN0

Volumetrisch sfeer aanbrengen

Ik moet nog aankomende weken verder hiernaar kijken, maar dit vind ik zeker handig om hierop verder te gaan. Tevens wil ik ook kijken naar de mogelijkheden die Unity biedt wanneer het aankomt op Normal Maps, Displacement maps en Specular Maps.

Daarnaast kwam ik tegen hoe ik volumetrisch rook en licht kan toepassen. Deze tutorial lijkt me erg handig om sfeer aan een omgeving te geven. Erg handig wanneer ik dit nodig hebt.

http://www.youtube.com/watch?v=HPo2gfy675o

Rook met Shuriken Parcticle system

Het toepassen en maken van effecten is ook iets waar ik de komende tijd meer tijd en onderzoek in wilt steken. Het particle systeem in Unity is erg krachtig en uitgebreid, maar het vergt tijd om deze goed te gebruiken en te kennen. Aankomende weken zal ik hier wel meer over posten.

Aantal uur: 5,5