Unity3D – eerste poging

Unity3D – eerste poging

Ik ben in de afgelopen maanden eindelijk eens goed gaan kijken naar de Unity3D engine. Waarom? Omdat het een engine is met veel mogelijkheden, voor diverse target platforms (PC,Mac, Android, iOs, etcetera), met naast een betaalde Pro versie (€ 1100) ook een gratis versie die dus voor veel ontwikkelaars toegankelijk is. Unity3D beschikt over een webplugin, waardoor je dus eenvoudig vanuit je browser een 3D-game kunt spelen.

Inmiddels heb ik enige ervaring met Unity, ook voor “echte projecten”. Zelfs zoveel ervaring, dat deze pagina al verouderd is voor ik hem op deze blog zet. Maar ik doe het nu toch (omdat ik mijn eerste ervaringen wil doorgeven).

Mijn eerste doel is, onderzoeken wat er wel en niet kan met de gratis versie. Ik wil graag weten:

  • Kan ik snel een 3D game maken met Unity?
    Ik zou graag in staat zijn om snel bepaalde ideeën te testen in een 3D-engine. Is Unity3D daarvoor geschikt?
  • Hoe kan ik Augmented Reality (AR) applicaties maken met Unity?
    Van alle AR voorbeeld games die ik gezien heb, waren de spelen die in Unity gemaakt waren beduidend sneller dan de Flash varianten, dus daarom heel interessant.
  • Hoe kan ik Multiplayer games maken met Unity?
    Als ik snel prototypes zou kunnen maken met Unity, zou dat dan ook multiplayer kunnen?
  • Kan ik de Kinect eenvoudig combineren met Unity?

Een eerste begin

Ik begon natuurlijk met het downloaden van Unity 3.3. (Inmiddels is de versie 3.56 geloof ik).  Maar dan moet je het nog leren gebruiken:

  • Er waren eerder wat simpele video tutorials op de Unity site over de verschillende panelen, maar die zijn verdwenen?
  • Een goed startpunt zijn de video tutorials op www.unity3dstudent.com. Ik heb de “essentials” gedaan, en daarna kies je gewoon die stukjes die je denkt het eerst nodig te hebben.
  • Hele nuttige filmpjes (wel wat langer, maar ze gaan dan ook over meerdere onderwerpen) vond ik op de site van de Swinburne University: ik heb de filmpjes “Intro to Unity Scripting (Part 1 en 2)” allebei bekeken en veel van geleerd. (De filmpjes laden wat langzaam, maar als ze eenmaal op gang zijn, had ik er geen last van).

Augmented Reality met Unity3D

Bij mijn eerdere onderzoek naar Augmented Reality applicaties, bleken de games/voorbeelden die met Unity3D gemaakt waren veel sneller te zijn dan die met Flash. Zie bijvoorbeeld hier.

Maar … tot nu toe is het mij niet gelukt om een Augmented Reality applicatie te maken met de gratis versie van Unity3D. Hoewel er mensen zijn die beweren dat het wel degelijk kan met de gratis versie, heb ik daar nog geen concrete bewijzen voor gezien. Het probleem is volgens mij, dat je ergens een koppeling moet maken tussen een video-beeld en de 3D wereld; een natuurlijke manier om dat te doen is door het videobeeld als een texture te gebruiken op een object in de 3D wereld. Maar … in de gratis versie van Unity3D is dat niet mogelijk (zie hier en hier).

Een goede link om met AR en Unity3D te beginnen (als we de niet-gratis versie hebben), lijkt mij hier: “The Unity AR Toolkit (UART) is a set of plugins for the Unity Game Engine that allow users to easily develop and deploy Augmented Reality (AR) applications.” Ziet er wel overzichtelijk uit.

Sinds kort heb ik ook een Android tablet, en het zou met behulp van de “Vuforia AR Extension for Unity” mogelijk moeten zijn om eenvoudig Augmented Reality applicaties te maken. Ik heb het ook gezien bij mensen die ik vertrouw! Maar helaas is het mij nog niet gelukt …. (ik zal wel iets simpels fout doen).

Multiplayer games met Unity3D

(Inmiddels heb ik wel het een en ander geprobeerd, helaas niet even goed gedocumenteerd om hier overzichtelijk te herhalen. Belangrijkste conclusie:)

Het is goed mogelijk om (ook met de gratis versie) multiplayer games te maken met Unity3D.

Deze site laat een aantal voorbeelden zien.

Je hebt een server (pakket) nodig voor een multiplayer game. Er zijn verschillende opties, het schijnt dat Smartfox of Photon een beetje de meest gangbare zijn, maar er zijn er meer: op het Unity forum vond ik dit:  “Most of the [following links] are resources or solutions for large numbers of concurrent client connections playing real time games. Many of the […] links have all sorts of additional functionality. All have variable price tags and license agreements.

Om te beginnen met Multiplayer games kun je kijken naar de “Bootcamp Multiplayer Demo” die via de Unity website beschikbaar is. Maar … omdat je dan waarschijnlijk verdrinkt in de details en het overzicht verliest, is het volgens mij beter om te beginnen met een Tutorial. Twee tutorials voor Smartfox in combinatie met Unity3d zijn:

Hier ga ik zeker mee verder!

Een voorbeeld game

Ik wou kijken of het mogelijk was om de “island demo” (een standaard Unity applicatie die meegeleverd werd met versie 2.6) als basis voor een eigen spel te gebruiken.

[WP_UnityObject src=”http://www.geedesign.com/blog/extra/unity/island1.unity3d” width=”800″ height=”600″/]

(rechts klikken voor context menu – je kunt dan fullscreen spelen). In deze aanpassing van de “island demo”  loop je over het eiland, en moet je drie schatkisten vinden.  Elke keer als je de applicatie opstart, verschijnen de schatkisten op (3 van 10) random plaatsen op het eiland, je weet alleen de afstand tot de dichtstbijzijnde schatkist. Mijn idee was, dat dit de basis zou kunnen vormen voor een spel waarbij je ongemerkt ook kennis vragen moet beantwoorden. (Dat zit er in deze versie helaas nog niet in). Voor een discussie over details, kijk hier.

Maar mijn voorlopige conclusie: het is heel goed mogelijk om deze standaard demo aan te passen naar mijn eigen wensen!

De Kinect en Unity3D

Toen ik eenmaal de Kinect aan de praat had (zie mijn aparte pagina over de Kinect hier) was het heel eenvoudig om de koppeling naar Unity3D te maken. Inmiddels heb ik twee stagiaires begeleid die een acteur in 3D gemodelleerd hebben, en het bleek eenvoudig mogelijk om die avatar dan met de Kinect aan te sturen. Dus: je staat voor de Kinect camera, maakt bewegingen, en de avatar op het scherm neemt die bewegingen over. Er zijn toch wel wat haken en ogen, maar daar hoop ik in een aparte pagina op terug te komen.

Conclusie

Ik denk dat ik nog wel even doorga met Unity3D! Ik ben erg blij met hoe je kan programmeren in Unity3D, en ik hoop ook de multiplayer games en Augmented Reality over niet al te lange tijd aan de praat te krijgen.

Geen reactie's

Sorry, het is niet mogelijk om te reageren.