Pokémon GO Style Augmented Reality With Vuforia

1. Introduktion

Tack vare den vilda framgången hos Pokémon GO, ökar verkligheten (AR) mycket uppmärksamhet i den mobila utvecklingsvärlden. Tanken om ökad verklighet är inte ny, men bara nu är tekniken äntligen nära till mognad och kommersiell bärkraft. Men vad är förstärkt verklighet exakt?

Detta är ett väldigt brett koncept som kan ta många olika former. Tanken kan tillämpas på underhållning, vetenskap, militär, utbildning, du heter det. Vad dessa applikationer alla har gemensamt är dock en realtidsförbindelse mellan den fysiska världen och det digitala.  

En direkt eller indirekt syn på en fysisk, verklig miljö vars element kompletteras (eller kompletteras) med datorgenererad sensorisk ingång, såsom ljud, video, grafik eller GPS-data. - Wikipedia

Konkret realiseras AR ofta i interaktiva upplevelser som överlagrar ett kameraflöde med 2D eller 3D-objekt, informerad av vissa sensordata. 

Att skapa en engagerande förstärkt verklighetserfarenhet från grunden kan dock vara en riktig utmaning. Lyckligtvis finns det några lösningar som kan göra jobbet enklare. Ett av de mest solida förstärkta verklighetsverktygen där finns Vuforia, ett AR-bibliotek som är kompatibelt med Android, IOS, UWP och några märken av smarta glasögon. 

I denna handledning kommer vi att utforska förstärkt verklighet med hjälp av Vuforia. Vi utforskar Vuforias funktioner, möjligheter och utmaningar, och vi ska också titta på hur SDK fungerar och dess huvudfunktioner. Vi kommer inte utforska någon kod i den här handledningen - framtida handledning i denna serie kommer att gräva in i kodningen i Vuforia, med stegvisa guider som riktar sig mot alla bibliotekets huvudfunktioner.

Om du vill gräva djupare, varför inte lära dig om ett av de mest grundläggande begreppen AR, markörer, i vår korta kurs:

2. Vuforia

Ursprungligen utvecklad av Qualcomm och nyligen köpt av PTC, är Vuforia på sin sjätte version. Dess SDK utvecklas ständigt och är kompatibel med Android, IOS, UWP och Unity. Tyvärr är Vuforia inte öppen källkod, men prisklassen är rimlig, och det finns ingen upfront-kostnad för utveckling eller utbildning. Du kan skapa nästan vilken typ av AR-upplevelse på de populäraste mobila plattformarna med hjälp av Vuforia. 

2,1. Hur fungerar det?

Vuforia använder enhetens kameraflöde i kombination med accelerometer och gyroskopdata för att undersöka världen. Vuforia använder datasyn att förstå vad det ser på kameran för att skapa en modell av miljön. Efter bearbetning av data kan systemet grovt lokalisera sig i världen, känna till dess koordinater: var är upp, ner, vänster, höger och så vidare. Vad du gör med detta beror på dina utvecklingsmål.

Det finns flera möjligheter:

  • Använda världskoordinater: Vilken typ av objekt som helst kan utställas med hjälp av någon godtycklig referens, ignorera verkliga hinder men med tanke på den uppnådda World Localization. Objektet kan vara osynligt och fortsätta att "existera" i samma position. Detta är ett system som liknar det som används av Pokémon GO.
  • Erkänna mål: Vuforia kan leta efter specifika bilder som "mål". VuMarks, till exempel en QR-kodstilsbild som är mycket igenkännbar av systemet, kan användas som ankarpunkter eller referenser för någon form av objekt som projiceras i världen. En tidning kan utökas med den här resursen, med sidor som öppnar rika interaktioner som video, ljud och så vidare.
  • Erkänna enkla objekt: Enkla föremål som lådor och cylindrar kan identifieras och användas som ankarpunkter. Denna metod är användbar för att känna igen paket och göra dem interaktiva.
  • Erkänna komplexa objekt: Vuforia kan också leta efter komplexa föremål, som leksaker, datordelar, prylar och så vidare. Dessa objekt skannas tidigare, i enlighet med specifika krav, och kan senare erkännas av systemet. Denna funktionalitet kan exempelvis användas för att göra leksaker till levande varelser eller för att skapa interaktivt hjälpmedel för mekaniker eller servicepersonal.
  • Letar efter ord: Engelska ord kan också förstås av Vuforia. Systemet kan leta efter specifika ord och rikta in någon form av interaktion på dem. Detta kan vara användbart för lärande av verktyg för barn eller för översättning av språk.
  • Erkänner världens terräng: En av de mest kraftfulla funktionerna på Vuforia är förmågan att känna igen världen som den är. Vuforia låter användaren skanna sin omgivning och kan göra lite hardcore-bearbetning för att tolka världen genom att skapa en 3D-datorvision om den verkliga världen och dess föremål. Tänk dig ett Pokémon GO-liknande spel där Pokémons kan gömma sig bakom riktiga föremål. Skulle inte det vara jättebra?

2,2. Utveckla med Vuforia

Vuforia är kompatibel med flera system. Dess programvaruutvecklingspaket (SDK) finns tillgängliga för Android, IOS, UWP och Unity. När du har hämtat och installerat SDK måste du registrera dig för ett utvecklarkonto och skapa en appnyckel innan du kan börja koda.

Trots att Vuforia är kompatibel med många system, använder det enklaste sättet att skapa engagerande AR-erfarenheter med hjälp av SDK-enheten definitivt Unity. Förse mig inte, du kan få tillgång till nästan allt som Vuforia erbjuder när du utvecklar direkt för Android eller iOS. Emellertid är processen mycket enklare när det görs med prefabs som erbjuds på Vuforias SDK för Unity.

3. Vuforia Mål

Som tidigare nämnts kan Vuforia söka "mål" på kameraflödet för att skapa förankringspunkter eller referenser som ska användas av AR-upplevelser. Dessa mål kan utgå från många former, och alla filer som tidigare har bearbetats av Vuforia målchef kan identifieras. Mål kan skapas av utvecklaren eller skapas under körning av användaren.

3,1

3,1. Bildsmål

Vilken typ av bild som helst kan vara ett Vuforia bildmål. Men ju mer detaljerad och invecklad bilden desto bättre är att känna igen av algoritmen. Många faktorer kommer att ingå i beräkningen, men i princip måste bilden ha en rimlig nivå av kontrast, upplösning och särskiljande element. En blå himmelbild skulle inte fungera bra, men en bild av något gräs skulle fungera graciöst. Bildsmål kan skickas med programmet, skapas senare och laddas upp till programmet via ett molnsystem eller direkt skapas på appen av användaren.

3,2. VuMarks

En VuMark fungerar väldigt lik en QR-kod; Det är dock mycket mer mångsidigt. Det kan ta många former och färger och anpassa sig till ett stort antal miljöer. Den största fördelen är att den överensstämmer med Vuforias erkännandealgoritm och kommer lätt att "hittas" av någon Vuforia AR-applikation. Vuforia erbjuder också ett Adobe Illustrator-plugin som skapar VuMarks.

3,3. Cylinder och Cube Mål

Det är också möjligt att använda kuber och cylindrar som bildmål. Det här är mycket lämpligt att skapa förlovning med produktpaket. När det är erkänt används det primitive objektet som en ankarpunkt, och det verkar existera för systemets datorvision, så att virtuella objekt kan interagera direkt med primitiva. Det virtuella objektet kan spåra det verkliga objektets position och orientering, till exempel.

3,4. Objekt som mål

En av de mest intressanta funktionerna i Vuforia är möjligheten att känna igen komplexa objekt. En leksak, en telefon, en datortavla och andra föremål kan användas som mål. 

För att använda den här resursen måste du skanna objektet med verktyget Vuforia Object Scanner, som endast gäller Samsung Galaxy S6 och S7. Datascanningen laddas upp till Vuforia Target Manager, och det skannade objektet kommer att identifieras av en kompatibel enhet med den dataen.

3,5. Hantera mål

Det finns flera sätt att skapa ett mål: 

  • Ansökan kan skickas med en rad mål inbäddade.
  • Appen kan ta emot mål online via det molnsystem som erbjuds av Vuforia.
  • Användaren själva kan använda enhetens kamera för att skapa ett mål. 

Som utvecklare har du inte mycket kontroll över hur användaren ska skapa sitt mål. allt du kan göra är att ge användaren några tips om hur du väljer en lämplig bild som ett mål. Situationen är emellertid annorlunda för de mål som bearbetas med hjälp av målhanteraren.

Vuforias utvecklingsportal ger oss verktyget Target Manager för att hjälpa till att hantera alla våra apps mål. Chefen är väldigt enkel att använda: du skapar en databas för att hålla målen, ladda upp en fil som motsvarar ett mål och vänta tills filen är bearbetad. Målet kommer att få ett unikt ID och en poäng relaterad till hur igenkännbar den är och kommer då att bli en del av databasen, tillgänglig för nedladdning eller för lagring i molnet. 

Det finns tre olika typer av måldatabaser:

  • Enhetsdatabaser är lokala databaser med bilder eller objektmål som lagras på användarens enhet.
  • VuMark Databaser är lokala databaser av VuMarks som lagras på användarens enhet.
  • Cloud databaser är databaser av bildsmål lagrade på nätet och frågade över internet.

4. Smart Terrain

När du utvecklar en Vuforia app på Unity finns det ett riktigt spännande alternativ, Smart Terrain. Det tillåter en applikation att replikera 3D-maskor av objekt som ses av kameran. 

Processen fungerar som en sorts skanning, där användaren använder enhetens kamera som en 3D-skanner. När kameran skannar genom omgivande miljö skapar programmet 3D-modeller av de igenkända objekten, vilket ger programmet möjligheten att anpassa scenariot till den verkliga världen och skapa en djupt engagerande upplevelse.

5. Sammanfattning

Det finns hundratals möjligheter att utforska med ökad verklighet, och vi börjar precis att klia på ytan. Många tror att AR kommer att vara en del av vår framtid och att vi kommer att använda det på ett dagligt sätt. Detta är ett fält som lovar att växa mycket under de närmaste åren, och Vuforia ger oss snygga verktyg för att skapa intressanta upplevelser.

5.1 Vad är nästa

I följande tutorials i denna serie arbetar vi med några av Vuforias viktigaste verktyg. Vi utvecklar många små experiment för att illustrera SDK-kapaciteterna, och eftersom Unity är den mest AR-vänliga miljön som är tillgänglig kommer allt att utvecklas på det. 

Det kommer inte vara nödvändigt att vara en expert inom unionen för att följa handledningen - eftersom vårt fokus är Vuforia SDK, kommer jag att ge dig steg-för-steg-guider som endast kräver minimal tidigare erfarenhet av Unity.

Om du vill lära dig lite mer om Unity under tiden, kolla in några av våra andra handledning.

  • Skapa ett basketfritt kasta spel med enighet

    I den här handledningen skapar du ett basketfyllnadsspel i Unity. Du lär dig om 3D-modeller, nätkolliderare, fysikmaterial, kollisionsdetektering, ...
    Carlos Yanez
    Mobil utveckling
  • Skapa en 3D-stad i enhet 5

    Välkommen till vår Unity-handledning där vi ska skapa en 3D-stad i Unity 5-spelmotorn. Du kan använda detta projekt för din första person eller tredje person ...
    Sandra Gerber
    Enhet 3D
  • Textinmatning för spel med bara en Intel RealSense-kamera

    I det här inlägget delar jag vad jag har lärt mig om de bästa (och värsta!) Sätten att låta spelare skriva in text via gest enbart och visa hur du konfigurerar Intel ...
    Chris Skaggs
    Intel RealSense

Ses snart!