dinsdag 8 december 2015

IMAGE EFFECTS: OVERVIEW


Link


Waarom deze tutorial?

In deze tutorial wordt van alles uitgelegd over image effect zoals bloom, screen space abient occlusion, global fog en aberration. Ik heb geen idee wat dit allemaal betekend dus ik hoop dat de tutorial me daarover kan uitleggen.

Wat heb ik er van geleerd?

Image effects komen pas nadat de frames gerendered zijn, dus het is wel wat zwaar om te gebruiken.

In component - image effects - rendering ; zitten allerlij image effects. Dit maakt een script aan op je object.

Met de screen space ambient occlusion kan je de occlusion intensity aanpassen om donkere plekken in de scene donkerder maken. Met blur kan je danaangeven hoe veel zachter de image moet worden. Hoe meer blur hoe zachter het word. Rond 2 is mooi, hoe meer je dit doet hoe zwaarder het voor de pc.

Het verschil tussen de normale fog en de global fog is dat je de hoogte van de fog aanpassen.

Met normale fog kan je de kleur aanpassen om zo water effecten te creeeren.

Component - image effect - bloom and glow; hierin staan 3 opties: Bloom is de normale, BloomAndFlares is alleen voor oudere projecten en Bloom(optimized) is handig voor mobile devices.

Bloom legt een extra laag op het beeld dat alleen de lichtste punten blurred. Dus bijvoorbeeld licht, zo geef je een beetje het glow effect op lichte gedeeltes. Met de treshold kan de de sterkte aanpassen.

Vignette and chromatic aberration maakt een mask aan over het scherm dat de randen van de camera ietsje donkerder maakt. Je kan ook de randen blurren om een depth of field achtig effect te krijgen.
Met Chromatic Aberration geef je nog een effectje aan de camera wat niet echt uitgelegd wordt.

Met depth of field zorg je ervoor de hoe verder weg, hoe meer blurred het plaatje word. Dit geeft een beetje het idee van iets wat ver weg is, is niet scherp te zien.

2D PHYSICS



Link


Waarom deze tutorial?

Ik weet hoe physics werken in 3D, maar hoe werken ze in 3D? Is dat heel anders? Ik ga er achter komen in deze tutorial reeks.

Wat heb ik er van geleerd?

2D Physics Overview

Ze bewegen bijna hetzelfde als in 3d maar inplaats van rigidbody is het rigidbody 2D.

2D en 3D physics kunnen samen in een scene zitten maar ze zullen niet met elkaar colliden.

Je kan alles aanpassen aan 2D physics in het menu.

Er zijn verschillende colliders, die je verschillend moet gebruiken, zoals een bal zou een ronde collider zijn maar een doos een vierkante.

Rigidbody 2D

Rigidbody 2D's moeten ook een colider hebben om te kunnen interacteren met andere objecten.

Met liniear en angular drag kan je een object snelheid of een draaisnelheid meegeven.

Wanneer een object stil ligt kan je hem laten slapen totdat hij weer collision krijgt, handig om geheugen te besparen voor objecten die niet veel bewegen.

Collider 2D

Er zijn verschillende colliders, maar bij de polygon collider kan je een sprite pixel perfect op collision checken. 

Met een polygon collider kan je ook vertexes aanmaken en veranderen om je eigen apparte colliders te maken.

Het is handig om een object dat niet beweegt te verzien van alleen een collider 2D en niet een rigidbody zoals de bewegende objecten.

Hinge Joint 2D

Met hingejoints kan je een object om een punt laten draaien, dit kan je ook op een object doen zodat je een ketting krijgt.

Door de anchor position aan te passen zorg je er voor dat de joint daar om draait.

Met use motor draait het object automatisch met een maximale druk kracht.

Door angle limits te gebruiken zorg je dat het object een maximale draai kan maken.

Area Effector 2D

Een area effector is een object dat kracht kan uitoefenen op een rigidbody2D. Zoals wind of iets dergelijks.

Om een erea effector te gebruiken moet je een collider op trigger zetten, anders werkt het (niet) goed.

Je kan dan een erea effector 2D component toevoegen.

Distance Joint 2D

Met distance joints kan je twee objecten aan elkaar koppelen, ze blijven dan aan elkaar hangen (of aan de wereld)

Met collider connecter kan je kiezen of de objecten elkaar aan kunnen raken of niet.

Wanneer de twee objecten verder uit elkaar verweiderd zijn dan dat je officieel hebt aangegeven dat ze mogen, schieten ze naar elkaar.

Point Effector 2D

Point effectors kunnen dingen doen zoals expolosions. Ze geven dus vanuit een punt effecten.

Met een collider mask kan je kiezen welke objecten wel of niet aangetast moeten worden.

Door de force magnitude negatief te maken zorg je dat een object naar de point effector wordt gezogen.

Bouncing & Sliding in 2D

Met physics material kan je aangeven of een object moet stuiteren of glijden.




Beginner Unity Basics #5 - Hotkeys


Link


Waarom deze tutorial?

Het lijkt mij erg handig om alle shortcuts te weten in de editor van unity, zodat ik nog sneller kan werken.

Wat heb ik er van geleerd?


Met de q toets krijg je het hand icoontje. W is bewegen, E draaien en R scalen maar dat wist ik al.

Met V verander je de pivot scale.

Met X verander je van local naar global.

Wanner je V inhoud kan je een object met een vertext verslepen en dan snapt het.

Met ctrl-shift-N maak je een nieuw leeg game object aan.

Ctrl-alt-F beweegt een object in je view.

Met crtl + cijfer, ga je door verschillende windows. Wanneer een venster niet open is maakt het programma deze open.

Ctrl - Y is redo.


zaterdag 5 december 2015

UNITY TIPS AND TRICKS GRAB BAG


Link


Waarom deze tutorial?

Veel dingen in unity kunnen makkelijker, sneller of georganiseerder dan dat ik het nu doe. Ik hoop dat deze tutorial mijn kennis kan verrijken in dit gebied.

Wat heb ik er van geleerd?


Wanneer je een package importeerd uit de asset store komt het allemaal in de assets folder, dus wanneer je veel assets importeerd komen ze allemaal door elkaar.

Wanneer je op het balkje boven de preview van het model klikt in een prefab krijg je een grote window waar het het model beter kan bekijken.

Rechtermuisknop op een prefab en dan export package exporteerd een pakketje van de prefab. In het scherm wat je dan ziet zie je ook dat er veel meer geexporteerd wordt dan je denkt nodig te hebbben, dit is alles wat het object nodig heeft.

http://www.adamtuliper.com/2015/06/open-unity-5-project-with-right-click.html - met dit programmatje kan je folders openen in unity door er met de rechtermuisknop op te klikken.

Wanneer je in de inspector van normal naar debug mode gaat kan je ook de private veriables zien.

Met de carve optie in navmesh kan je live obstacles de navmash aan laten passen. Dus wanneer er een steen in de weg staat gaat de character omlopen totdat je de steen weg haalt. Dit is wel redelijk zwaar voor het programma dus gebruik het niet te veel.

Wanneer je een navmesh hebt kan je een lijn tekenen van de character naar zijn doel dat update met welke obstakels er tussen staat.

Inplaats van 1400 objecten te maken kan je ook particles gebruiken. Normaal gesproken zou je bijvoorbeeld een muntje kunnen op pakken. Door particles te verkleden als objecten kan je net alsof doen.

Door physics te gebruiken wordt een spel snel zwaar. Wanneer 1400 muntjes stuiteren op de grond zorgt dit voor enorm veel lag. Gebruik particles om precies dezelfde effecten te krijgen.


donderdag 3 december 2015

CREATING A CASUAL JEWEL MINING GAME

Link


Waarom deze tutorial?

Dit spel was vroeger altijd al een van mijn favoriete games. Het lijkt me erg interessant om te zien hoe dit in unity is gemaakt. Hopelijk leer ik wat meer over C# en unity interface.

Wat heb ik er mee gedaan?

De tutorial heb ik mee gevolgd en ook gemaakt in unity, daarna heb ik alles goed terug gekeken en bekeken hoe het werkt. Als laatste heb ik toegevoegd dat de snelheid van de grijper aangepast is op basis van welke steen je pakt. hoe groter de steen hoe langzamer deze binnen wordt gehaald.



Wat heb ik er van geleerd?

Door op add emty gameobject child te klikken maak je een gameobject aan als child van een object.

Door de animationspeed op 0 te zetten pauzeer je de animatie. Daarna kan je de speed weer op 0 zetten om verder te gaan.

Door een linerenderer te gebruiken kan je een soort touw maken dat vanuit een punt schiet. Dit is dus eigenlijk een raycast die controleerd of hij iets raak maar er uitziet als een touw.

Door invoke te gebruiken kan je erg gemakkelijk een timer maken.

Met compareTag kan je tags vergelijken. Als het object dat je raakt de tag heeft gebeurt er iets.

woensdag 2 december 2015

Scriptable Objects

Link


Waarom deze tutorial?

Scriptable objects zijn een data container. Ze hoeven niet in de scene te staan maar zijn opgeslagen als assets. Het lijkt me interessant om te kijken wat hiermee allemaal kan.

Wat heb ik er van geleerd?

Scriptable obects zijn parralel aan monobehaviour. Ze hoeven niet aan een gameobject te zitten. Ze kunnen als assets worden opgeslagen, ze moeten gemaakt worden met code.

Ze worden voornamelijk gebruikt om data op te slaan tijdens een edition sessie en om data op te slaan als asset. Daarnaast hoef je ook geen xml, json of text files te maken buiten unity.

Serialization betekend dat je data encode voor opslag (op een disk of in een file). 

Private fields moeten eerst serialized worden om zichtbaar te worden in de editor.

Je kan public fields ook niet sirializen door [nonSerialized] ervoor te zetten.

In een script om een gameobject maak je een referentie naar een script die niet op een object zit. Om dat te doen moet je een instance maken van dat script.

Met [menuitem("Assets/create/myscriptableobject")] maak je een nieuwe knop aan in de editor. Dan kan je een asset aanmaken met AssetDatabase. De asset geef je dan aan dat het, het script is.

Door een scriptable object te maken kan je ook data opslaan zonder xml te gebruiken of een ander programma van een 3rd party.


Unite 2014 - New Unity Networking in 5.x

Link


Waarom deze tutorial?

Ik heb zelf alleen nog maar offline games gemaakt, wel met 2 spelers op een computer maar nog nooit via lan of wifi. Ik hoop dat deze tutorial wat meer uitleg geeft hierover. 

Wat heb ik er van geleerd?

Instantiate maakt een nieuw gameobject aan en Spawn voegt hem toe aan de server (netwerk). Dan zit hij in de spawning system. Alle nieuwe spelers die binnenkomen krijgen dan dat object in zijn huidige staat.

Door een nieuw game object te maken met een network manager component er op maak je een network manager. Hier kan je dan alles aan passen.

Met offline scene en online scene kan je aangeven waar de speler heen moet wanneer hij offline en online is (gaat).

Dan kan je spawnable objecten in de network manager gooien om aan te geven welke objecten er gespawned kunnen worden.

Met de network manager hud component krijg je simpele buttons waarmee je de network dingen kan aanpassen. (inplaats van een losse scene waar je die buttons intergreerd).

Door isLocalPlayer te gebruiken kan je kijken of iets alleen moet gebeuren bij een client of op de hele server. Zoals bewegen van je character moet alleen gebeuren bij de speler die beweegt.

Om met andere computers te verbinden moet je een ip adress invullen inplaats van lokaal verbinden. Dit kan je ook in de network manager aangeven.

dinsdag 1 december 2015

Procedural Cave Generation tutorial


Link


Waarom deze tutorial?

Deze tutorial legt uit hoe je een random grot maakt. Het lijkt me interessant om te zien hoe je nou daadwerkelijk meshes kan maken met script en hoe je gangen kan maken die op elkaar door lopen.

Wat heb ik er van geleerd?

Cellular Automata

Door int[,] map; te typen maak je een grid aan van int's.

Door [Range(0,100)] neer te zetten voor een in kan die int niet grooter of kleiner worden dan die je aangeeft.

Door de tijd (Time.time) te gebruiken voor random, krijg je een semi random getal omdat de tijd altijd veranderd.

Door een seed te gebruiken met randomize kan je het random maken maar ook controle houden door een seed te geven die elke keer dezelfde randomize geeft.


Marching Squares

Door Gizmos.DrawCube te gebruiken kan je een kubus tekenen op het scherm.

In deze tutorial worden kubussen getekend om zo een grot te maken. De randen van deze kubussen worden afgeschaaft om zo zachte randen te krijgen. Elke kubus krijgt nu een binear getal mee om aan te geven welke randen afgeschaaft moeten worden.

Verder wordt er veel code getypt maar niet echt goed uitgelegd wat er mee wordt bedoeld, ik heb zo goed mogelijk er naar gekeken.


Creating Meshes


Tijdens deze tutorial kwam ik er achter dat deze tutorial-reeks net iets te hoog gegrepen is voor mij. Ik kan niet echt goed volgen wat hij aan het doen is en probeer nu een andere tutorial te vinden die beter bij mij past.