In het eerste bericht van deze serie hebben we gesproken over hoe geweldig Vuforia is voor het creëren van ervaringen met Augmented Reality, en nu zijn we klaar om deze concepten in een echte app te oefenen. In deze tutorial beginnen we met Augmented Reality te spelen met Vuforia op Unity 3D. We leren hoe we Vuforia kunnen opzetten en beginnen met het helemaal opnieuw ontwikkelen van een AR-game door een logica te gebruiken die lijkt op die van Pokémon GO!
Het is niet nodig om enige ervaring te hebben met Unity of Vuforia om deze tutorial te volgen.
Als u dieper wilt graven, waarom leert u dan niet over een van de meest fundamentele concepten van AR, markers, in onze korte cursus:
Vuforia gebruikt de camerafeed van het apparaat in combinatie met de gegevens van de versnellingsmeter en gyroscoop om de wereld te onderzoeken. Vuforia gebruikt de computervisie om te begrijpen wat het 'ziet' op de camera om een model van de omgeving te creëren. Nadat de gegevens zijn verwerkt, kan het systeem zichzelf globaal in de wereld lokaliseren, met de coördinaten ervan: waar is omhoog, omlaag, links, rechts, enzovoort.
Als je niet weet waar Vuforia over gaat, bekijk dan het eerste bericht in deze serie.
Deze tutorial is verdeeld in twee delen. Hierin zullen we een aantal van de bijzonderheden van Vuforia op Unity 3D zien, we zullen leren hoe we de omgeving kunnen instellen, en we zullen ook beginnen met het ontwikkelen van een klein AR-spel genaamd Shoot the Cubes. We zullen speciale aandacht besteden aan de ARCamera Prefab, een van de belangrijkste onderdelen van Vuforia in Unity.
In het tweede deel gaan we door met het ontwikkelen van het spel Shoot the Cubes, waardoor interactiviteit wordt toegevoegd en het interessanter wordt. Deze sectie zal niet te veel ingaan op Vuforia's bijzonderheden, omdat het idee zal zijn om enkele mogelijkheden te verkennen die Unity biedt om een boeiende ervaring met Augmented Reality te creëren..
Unity is een populaire en krachtige game-engine die gemakkelijk te gebruiken is en spellen voor meerdere platforms kan compileren. Er zijn enkele voordelen bij het gebruik van Unity om AR-ervaringen met Vuforia te creëren. Het is mogelijk om alle ondersteunde systemen van Vuforia te targeten, inclusief de slimme bril. Het is eenvoudiger te gebruiken, dankzij de Prefabs die door Vuforia's SDK worden gegeven. Met alleen Unity is het mogelijk om toegang te krijgen tot alle functies die beschikbaar zijn op Vuforia.
Je hebt toegang tot alle functies van Vuforia op Unity met behulp van de Vuforia prefabs. Het enige dat u hoeft te doen, is het object naar het werkgebied slepen en het configureren. Zoals de naam al doet vermoeden, zijn prefabs als sjablonen voor het maken en klonen van Unity-objecten, compleet met componenten en eigenschappen. Bijvoorbeeld de ImageTarget staat voor afbeeldingen die kunnen worden gebruikt als doelen. Laten we een kijkje nemen naar de Vuforia prefabs beschikbaar op Unity:
De game die we zullen ontwikkelen is eenvoudig, maar het illustreert goed de principes van de Augmented Reality, en het zal ons enkele van de grondbeginselen van Vuforia leren. Het doel van de game is om kubussen te vinden en te fotograferen die door de kamer vliegen. De speler zal met zijn of haar apparaat zoeken naar de kubussen en 'tikken' om op de vakken te schieten. We houden ons niet bezig met score, niveau of iets dergelijks, maar je kunt deze aspecten van het spel eenvoudig zelf uitbreiden.
Voordat we beginnen met spelen, moeten we Unity voorbereiden op Vuforia. Het proces is vrij eenvoudig en we moeten in principe het SDK-pakket van Vuforia importeren en een toevoegen ARCamera prefab aan ons project.
Het is tijd om te controleren of de omgeving correct werkt.
Als u een webcam op uw computer hebt, kunt u op de afspeelknop van Unity drukken om te controleren of ARCamera werkt. Het is mogelijk om doelen te herkennen met behulp van de webcam; het is echter niet mogelijk om sensorgegevens te gebruiken om uw AR-ervaring te testen. Als de camerafeed niet de Spel venster, is er een mogelijkheid dat uw camera niet compatibel is met het webcamprofiel geleverd door ARCamera.
De beste manier om uw Vuforia-applicatie te testen, is rechtstreeks op het apparaat. We zullen het project voor Android compileren, maar dezelfde stappen zouden van toepassing zijn op iOS-apparaten.
Na het bouwen wordt de applicatie op uw apparaat geïnstalleerd. Voorlopig is het enige dat je zou verwachten, de camerafeed op je apparaat te zien zonder fouten. Als je dat hebt, werkte alles naar behoren.
Het doel van het spel Shoot the Cubes is om rondvliegende kubussen uit te zoeken en deze te fotograferen met behulp van de camera en sensoren van het apparaat. Deze benadering lijkt op die van Pokémon GO. Om dit te bereiken, hoeven we alleen de Vuforia te gebruiken ARCamera prefab.
Er zijn veel scripts aan de ARCamera. Voor nu is de enige die je moet begrijpen, de Vuforia-gedrag script. Laten we de opties eens bekijken:
Voor nu, alles wat je nodig hebt om te veranderen in de ARCamera is de Word Center-modus. Klik op de ARCamera element in de hiërarchie en in de Inspecteur deelvenster, wijzig het Wereldcentrum-modus naar DEVICE_TRACKING.
Laten we een kubus aan het podium toevoegen en testen of de ARCamera correct werkt.
U moet rondkijken door uw apparaat te draaien om de kubus te vinden. U zult merken dat het object nog steeds op dezelfde plaats staat, zelfs nadat u het apparaat er vanaf hebt gedraaid. Het lijkt alsof de kubus 'in de echte wereld' bestaat, maar alleen te zien is met de camera van het apparaat.
Het eerste probleem met onze applicatie tot nu toe is dat de kubus overal kan verschijnen en dat de gebruiker rond moet kijken om hem te vinden. Aangezien het centrum van de wereld wordt gedefinieerd op basis van de sensoren van het apparaat, kunnen we niet zeker zijn van de feitelijke positie van de elementen. Dit komt omdat de gebruiker kan beginnen met het apparaat in elke richting, en omdat de manier waarop rotatie wordt gemeten varieert van apparaat tot apparaat.
Om ervoor te zorgen dat de AR-entiteiten vertrekken in het licht van de gebruiker, is de eenvoudigste manier om te wachten tot Vuforia het centrum van de wereld definieert en de ARCamera rotatie en vervolgens om de startlocatie van elementen volgens die richting in te delen.
We zullen een maken Spawn Manager om de positie te bepalen van de kubussen die moeten worden uitgezet. De manager zal zijn positie bepalen volgens de ARCamera rotatie. Het zal wachten tot de rotatie is ingesteld en vervolgens 10 eenheden naar de voorkant van de camera verplaatsen.
Laten we eerst het Vuforia-pakket toevoegen.
gebruikmakend van UnityEngine; met behulp van System.Collections; // We moeten het Vuforia-pakket gebruiken om te zorgen dat alles werkt met Vuforia; public class SpawnScript: MonoBehaviour
Om toegang te krijgen ARCamera, gebruik Camera.main
. Laten we een functie maken om de camerapositie te bepalen en de kubus in te stellen om vanaf dit punt 10 eenheden vooruit te spawnen.
public class SpawnScript: MonoBehaviour // Definieer de positie als het object // volgens ARCamera positie private bool SetPosition () // de camerapositie krijgt Transform cam = Camera.main.transform; // plaats de positie 10 eenheden naar voren vanuit de camerapositie transform.position = cam.forward * 10; geef waar terug;
We zullen de positie slechts één keer wijzigen vanuit de Begin
functie. Verander positie
is een coroutine die een korte tijd zal wachten voordat de positie wordt bepaald.
private bool mPositionSet; void Start () // Definitie van de spawnpositie StartCoroutine (ChangePosition ()); // We gebruiken een Coroutine om een beetje // delay te geven voordat de positie private IEnumerator ChangePosition () wordt ingesteld yield return new WaitForSeconds (0.2f); // Definieer de spawn-positie slechts één keer als (! MPositionSet) // de positie alleen wijzigt als Vuforia actief is als (VuforiaBehavi.Instance.ingeschakeld) SetPosition ();
Laten we het script testen:
De elementen beginnen overlappend; Zodra u de toepassing op een apparaat hebt gebouwd en uitgevoerd, ziet u dat _SpawnController en zijn bol zal voor de camera verschijnen, en de kubus zal op een andere plaats zijn. Ga je gang en test het! Zorg ervoor dat je naar het apparaat kijkt wanneer de app start.
Gefeliciteerd, je hebt je eerste Augmented Reality-ervaring gemaakt. Ja, het is een beetje ruw, maar het werkt! In deze tutorial heb je geleerd hoe je Vuforia's hoofd prefab gebruikt in Unity, de ARCamera. Je hebt ook geleerd hoe je het moet configureren en hoe je de sensors van het apparaat moet gebruiken om de illusie te creëren dat een virtueel object in de wereld wordt geplaatst.
In de volgende tutorial zullen we dit principe verbeteren om een echt spel en een boeiender ervaring te creëren. We blijven het Shoot the Cubes-spel ontwikkelen, voegen wat interactiviteit toe en onderzoeken de mogelijkheden van Unity voor het maken van een interessant AR-spel. We laten de kubussen spaaien en rondvliegen, en we zullen de speler laten zoeken en vernietigen door een laser uit het apparaat te schieten.
Tot ziens!
Speciale dank voor de beeldvector ontworpen door Freepik, gelicenseerd onder Creative Commons CC BY-SA.