În primul post al acestei serii am vorbit despre cât de minunat Vuforia este pentru a crea experiențe de realitate augmentată, iar acum suntem gata să practicăm aceste concepte într-o aplicație reală. În acest tutorial, vom începe să jucăm cu Realitatea Augmented utilizând Vuforia pe Unitatea 3D. Vom învăța cum să configuram Vuforia și să începem să dezvoltăm un joc AR de la zero, adoptând o logică similară cu cea folosită pe Pokémon GO!
Nu va fi necesar să aveți experiență anterioară despre Unity sau Vuforia pentru a urma acest tutorial.
Dacă doriți să săturați mai adânc, de ce să nu învățați despre unul dintre cele mai fundamentale concepte ale AR, markeri, în cursul nostru scurt:
Vuforia utilizează alimentarea pentru cameră a aparatului, combinată cu date de accelerometru și giroscop, pentru a examina lumea. Vuforia utilizează viziunea computerului pentru a înțelege ce vede "pe cameră pentru a crea un model de mediu. După procesarea datelor, sistemul se poate localiza aproximativ în întreaga lume, cunoscând coordonatele sale: unde este sus, jos, stânga, dreapta și așa mai departe.
Dacă nu știți ce este Vuforia, aruncați o privire la primul post din această serie.
Acest tutorial este împărțit în două părți. În acest moment, vom vedea unele dintre particularitățile Vuforia pe Unity 3D, vom învăța cum să configuram mediul și vom începe, de asemenea, să dezvoltăm un mic joc AR numit Shoot the Cubes. Vom acorda o atenție deosebită ARCamera Prefab, una dintre cele mai importante părți ale Vuforia în unitate.
În a doua parte, vom continua să dezvoltăm jocul Shoot the Cubes, adăugând interactivitate și făcându-l mai interesant. Această secțiune nu va merge prea mult în particularitățile lui Vuforia, deoarece ideea va fi aceea de a explora unele posibilități oferite de Unitate pentru a crea o experiență realistă îmbogățită.
Unitatea este un motor de joc popular și puternic care este ușor de folosit și poate compila jocuri pentru mai multe platforme. Există câteva avantaje în utilizarea Unității pentru a crea experiențe AR cu Vuforia. Este posibil să vizați toate sistemele suportate de Vuforia, inclusiv ochelarii inteligenți. Este mai simplu de utilizat, datorită prefabricatelor oferite de SDK-ul Vuforia. Folosind numai Unity este posibil să accesați toate funcțiile disponibile pe Vuforia.
Aveți posibilitatea să accesați toate caracteristicile Vuforia pe Unity folosind prefabricatele Vuforia. Tot ce trebuie să faceți este să trageți obiectul pe scenă și să îl configurați. După cum sugerează și numele, prefab-urile sunt ca șabloane pentru crearea și clonarea obiectelor Unity complete cu componente și proprietăți. De exemplu, ImageTarget reprezintă imaginile care pot fi folosite ca ținte. Să aruncăm o privire asupra prefabricatelor Vuforia disponibile pe Unity:
Jocul pe care îl vom dezvolta este simplu, dar ilustrează bine principiile augmentate ale realității și ne va învăța câteva dintre fundamentele lui Vuforia. Obiectivul jocului este de a găsi și trage cuburi care zboară în jurul camerei. Jucătorul va căuta în jurul cuburilor folosind dispozitivul său și "atinge" pentru a fotografia pe cutii. Nu ne vom ocupa de scor, nivel sau ceva de genul asta, dar vă puteți extinde cu ușurință pe aceste aspecte ale jocului.
Înainte de a începe să jucăm, va trebui să pregătim unitatea pentru Vuforia. Procesul este destul de simplu și, în principiu, trebuie să importăm pachetul SDF al Vuforia și să adăugăm un ARCamera prefab la proiectul nostru.
Este timpul să verificați dacă mediul funcționează corect.
Dacă aveți o cameră web pe computer, puteți apăsa butonul de redare al Unity pentru a verifica dacă ARCamera muncește. Va fi posibilă recunoașterea țintelor folosind webcam-ul; cu toate acestea, nu va fi posibil să utilizați date senzor pentru a vă testa experiența AR. Dacă alimentarea camerei nu afișează imaginea Joc fereastră, există posibilitatea ca aparatul foto să nu fie compatibil cu profilul webcam furnizat de ARCamera.
Cea mai bună modalitate de a testa aplicația dvs. Vuforia este direct pe dispozitiv. Vom compila proiectul pentru Android, dar aceiași pași se vor aplica dispozitivelor iOS.
După clădire, aplicația va fi instalată pe dispozitiv. Pentru moment, tot ce trebuie să vă așteptați este să vedeți alimentarea camerei de pe dispozitiv fără nici o eroare. Dacă ați reușit asta, totul a funcționat corect.
Obiectivul jocului Shoot the Cubes este de a căuta și de a trage cuburi de zbor folosind camera și senzorii dispozitivului. Această abordare este similară cu cea utilizată pe Pokémon GO. Pentru a realiza acest lucru, va trebui doar să folosim Vuforia ARCamera prefabricat.
Există o mulțime de scripturi atașate la ARCamera. Pentru moment, singura care trebuie să înțelegi este Comportamentul Vuforia script-ul. Să aruncăm o privire la opțiunile sale:
Deocamdată, tot ce va trebui să schimbați în ARCamera este Word Center Mode. Faceți clic pe ARCamera element în ierarhie și în Inspector fereastră, schimbați Modul Centru Mondial la DEVICE_TRACKING.
Să adăugăm un cub pe scenă și să încercăm dacă ARCamera funcționează corect.
Va trebui să vă uitați prin rotirea dispozitivului pentru a găsi cubul. Veți observa că obiectul rămâne în același loc, chiar și după rotirea dispozitivului. Este ca și cum cubul "există" în lumea reală, dar poate fi văzut doar cu camera aparatului.
Prima problemă cu aplicația noastră până acum este că cubul poate apărea oriunde și că utilizatorul va trebui să se uite în jur pentru al găsi. Deoarece centrul lumii este definit în funcție de senzorii dispozitivului, nu putem fi siguri de poziția reală a elementelor. Acest lucru se datorează faptului că utilizatorul ar putea începe cu dispozitivul în orice orientare și deoarece modul de rotație este măsurat variază de la dispozitiv la dispozitiv.
Pentru a se asigura că entitățile AR pornesc din perspectiva utilizatorului, cea mai ușoară abordare este aceea de a aștepta ca Vuforia să definească centrul lumii și să găsească ARCamera rotație și apoi aranjarea locației de pornire a elementelor în funcție de orientarea respectivă.
Vom crea o Managerul spawn pentru a defini poziția cuburilor care trebuie să fie create. Managerul își va defini poziția în funcție de ARCamera rotație. Se va aștepta până când se va seta rotirea, apoi se vor muta 10 unități în fața camerei.
Mai întâi să adăugăm pachetul Vuforia.
utilizând UnityEngine; utilizând System.Collections; // Va trebui să folosim pachetul Vuforia pentru a vă asigura că totul funcționează folosind Vuforia; clasa publica SpawnScript: MonoBehavior
A accesa ARCamera, utilizare Camera.main
. Să creați o funcție pentru a obține poziția camerei și a stabili cubul care urmează să fie dat de 10 unități înainte din acest punct.
clasa publică SpawnScript: MonoBehavior // Definiți poziția dacă obiectul // în funcție de poziția ARCamera privată bool SetPosition () // obține poziția camerei Transformare cam = Camera.main.transform; // setați poziția 10 unități înainte din poziția camerei transform.position = cam.forward * 10; return true;
Vom schimba poziția o singură dată din start
funcţie. Schimba poziția
este o corutină care va aștepta o scurtă perioadă de timp înainte de a stabili poziția.
bool privat mPositionSet; void Start () // Definirea poziției de reproducere StartCoroutine (ChangePosition ()); // Vom folosi un Coroutine pentru a da puțin // întârziere înainte de a seta poziția privată IEnumerator ChangePosition () randamentul randament nou WaitForSeconds (0.2f); // Definiți poziția Spawn o singură dată dacă (! MPositionSet) // modificați poziția numai dacă Vuforia este activă dacă (VuforiaBehavior.Instance.enabled) SetPosition ();
Să testăm scriptul:
Elementele încep să se suprapună; cu toate acestea, odată ce ați construit și rula aplicația pe un dispozitiv, veți vedea că _SpawnController și sfera sa va apărea în fața camerei, iar cubul va fi în alt loc. Mergeți și încercați! Asigurați-vă că vă uitați la dispozitiv exact la pornirea aplicației.
Felicitări, ați creat prima experiență a Realității Augmentate. Da, e un pic cam dur, dar funcționează! În acest tutorial ați învățat cum să utilizați prefabul principal al lui Vuforia în Unity, ARCamera. De asemenea, ați învățat cum să o configurați și cum să utilizați senzorii dispozitivului pentru a crea iluzia că un obiect virtual este introdus în lume.
În următorul tutorial vom îmbunătăți acest principiu pentru a crea un adevărat joc și o experiență mai atrăgătoare. Vom continua să dezvoltăm jocul Shoot the Cubes, adăugând o oarecare interactivitate și explorând posibilitățile Unity de a crea un joc AR interesant. Vom face ca cuburile să se arunce în aer și să zboare și vom lăsa jucătorul să le caute și să le distrugă prin împușcarea unui laser din dispozitiv.
Ne vedem în curând!
Mulțumiri speciale pentru vector de imagine proiectat de Freepik, licențiat sub Creative Commons CC BY-SA.