Table of Contents

Laboratorul 01. Vuforia

Ce e Vuforia

Vuforia Engine este un SDK (Software Development Kit) pentru crearea de aplicații ce integrează realitatea augmentată. Cu ajutorul Vuforia putem adăuga oricărei aplicații funcționalități complexe de computer vision. Astfel, putem dezvolta aplicații care să permită recunoașterea de imagini și obiecte și care să permită interacțiunea cu obiecte din lumea reală. Vuforia oferă suport atât pentru Android, cât și pentru iOS.

Adăugarea Vuforia în Unity

Vuforia Engine este disponibil sub forma unui pachet Unity care poate fi importat din meniu: Assets → Import Package → Custom Package…. Pachetul poate fi descărcat de aici.

Configurarea Vuforia

Vuforia Engine poate fi vizibil din meniul GameObject. Dacă acest meniu nu este vizibil, înseamnă că Vuforia nu s-a adăugat în Unity. Primul pas pentru a construi o aplicație folosind Vuforia este să adăugăm un obiect ARCamera. Acesta este un GameObject specific Unity, care simulează o cameră. Aceasta conține VuforiaBehaviour, necesar pentru a adăuga suport pentru aplicațiile AR.

  1. Adăugați un GameObject de tipul ARCamera din meniul Vuforia Engine.
  2. Ștergeți camera default din Unity. ARCamera conține deja o cameră.
  3. Selectați ARCamera și Open Vuforia Configuration din Inspector.
  4. Adăugați Vuforia Development License Key în App License Key.

Vuforia License Manager

Pentru a putea dezvolta aplicații folosind Vuforia Engine, avem nevoie de o licență. Orice licență poate fi folosită într-o singură aplicație. Deci va trebui să creăm o licență unică pentru fiecare aplicație care folosește Vuforia Engine.

  1. Pentru a putea crea o licență avem nevoie de un cont de developer pe site-ul Vuforia.
  2. O licență poate fi cretă în meniul License Manager (trebuie să fiți logați pentru a putea accesa acest meniu). De aici, apăsați butonul Get Basic pentru a putea crea licența.
  3. License Name: numele dorit pentru licență.
  4. Licența va apărea în License Manager de unde o putem deschide (dând click pe ea), copia și adăuga în Unity.

Image Targets

Image Targets sunt imagini care pot fi detectate și urmărite de Vuforia. Vuforia detectează o astfel de imagine comparând feature-uri din conținutul unei imagi obținute de la cameră cu o imagine deja cunoscută dintr-o bază de date. Odată ce imagea target este detectată, Vuforia va urmări imaginea și va afișa conținut augmentat peste imagine.

După activarea Vuforia Engine în Unity, putem adăuga feature-uri specifice Vuforia în proiect. Pentru început, o să importăm Vuforia Core Samples din Unity Asset Store. Astfel, vom avea un punct de start pentru a crea un prim proiect folosind Vuforia. În continuare, vom prezenta pașii pentru a crea o scenă de bază AR în Vuforia:

  1. Din meniul Vuforia Engine selectăm un GameObject de tipul Image Target.
  2. Selectăm obiectul Image Target nou creat. Setăm Type From Database (imaginile pot fi create online în Vuforia Target Manager sau putem folosi imaginile deja existente în Vuforia Core Samples)
  3. Dacă nu avem o bază de date cu Image Targets în proiect, ni se va cere să importăm baza de date default din Vuforia Core Samples (VuforiaMars_Images).
  4. Selectăm o imagine din baza de date selectată.

Crearea unei Baze de Date Proprii

  1. Accesăm meniul Target Manager de pe site-ul Vuforia (trebuie să fiți logați).
  2. Apăsăm butonul Add Database pentru a crea o nouă bază de date.
  3. După ce am creat baza de date, dăm click pe ea.
  4. Pentru a popula baza de date, apasăm butonul Add Target. Putem adăuga un cod QR.
  5. Odată adăugată imaginea, după ce s-a procesat, vom primi un scor. Cu cât scorul e mai bun, cu atât sunt șanse mai mari ca imaginea să fie detectată de Vuforia.
  6. După ce am adăugat toate imaginile dorite, descărcăm baza de date pentru Unity.
  7. Vom obține un pachet Unity, pe care îl putem importa în proiect.
  8. Odată importat, putem înlocui în obiectul Image Target baza de date default cu propria bază de date.

Adăugarea de Obiecte 3D

Acum putem adăuga obiecte pe care dorim să le augmentăm. Putem face acest lucru, adăugând un obiect 3D drept copil obiectului de tip Target Image. Automat vor fi făcute setările necesare pentru AR (DefaultObserverEventHandler.cs).

Adăugarea de Elemente UI. Buton

  1. Pentru a adăuga un buton, tot de obiectul Image Target ne vom folosi. Din meniul acestuia, Image Target Behaviour → Advanced → Add Virtual Button putem crea un buton virtual special pentru AR.
  2. Din meniul butonului nou creat, setăm un nume și o senzitivitate.
  3. Creăm un nou script pe Image Target, în care vom scrie o funcție și o vom atașa pe butonul virtual.
void Start()
{
        button.RegisterOnButtonPressed(OnButtonPressed);
}
 
public void OnButtonPressed(VirtualButtonBehaviour button)
{
        Debug.Log("Button was pressed!");
}

Build the App

Pentru a putea face debugging live din Unity, din meniul de configurare al Vuforia Engine setăm Play Mode Type să fie WEBCAM.

Pentru a putea rula aplicația de pe telefon, trebuie să facem aceleași setări necesare pentru a face un build specific pentru telefon. Urmați pașii de aici. Pe scurt, pentru Android:

  1. Activați Developer Mode și USB Debugging pe telefon.
  2. În Unity: File → Build Settings. Dublu click Android, apoi Switch Platform.
  3. Adăugați scenele pe care doriți să le includeți în build.
  4. Selectați Player Settings.
  5. Completați Company Name și Product Name.
  6. Înapoi în Build Settings, click Build and Run (telefonul conectat prin USB la calculator).

Tasks

Scheletul de cod pentru laborator poate fi descărcat de aici.

  1. Deschideți scena Vuforia din scheletul de cod.
  2. Creați o nouă licență de development pentru Vuforia Engine.
  3. Adăugați Vuforia Engine și Vuforia Core Samples în proiectul Unity.
  4. Adăugați un nou target image din baza de date default.
  5. Adăugați un obiect 3D de augmentat.
  6. Afișați un mesaj în consolă când apăsați pe un buton virtual.
  7. Adăugați o imagine custom pe post de target image și adăugați un obiect 3D asociat acestei imagini.
  8. Bonus: Animați obiectul 3D când apăsați pe un button virtual.