Nel primo post di questa serie abbiamo parlato di quanto sia impressionante Vuforia per creare esperienze di Realtà Aumentata, e ora siamo pronti a mettere in pratica questi concetti in un'app vera e propria. In questo tutorial, inizieremo a giocare con Augmented Reality usando Vuforia su Unity 3D. Impareremo come impostare Vuforia e iniziare a sviluppare un gioco AR da zero, adottando una logica simile a quella utilizzata su Pokémon GO!
Non sarà necessario avere alcuna esperienza precedente su Unity o Vuforia per seguire questo tutorial.
Se vuoi approfondire, perché non apprendere uno dei concetti più fondamentali di AR, marcatori, nel nostro breve corso:
Vuforia utilizza l'alimentazione della fotocamera del dispositivo combinata con i dati dell'accelerometro e del giroscopio per esaminare il mondo. Vuforia usa la visione artificiale per capire cosa "vede" sulla fotocamera per creare un modello dell'ambiente. Dopo aver elaborato i dati, il sistema può approssimativamente trovarsi nel mondo, conoscendo le sue coordinate: dove è su, giù, sinistra, destra e così via.
Se non sai cos'è Vuforia, dai un'occhiata al primo post di questa serie.
Questo tutorial è diviso in due parti. In questo, vedremo alcune particolarità di Vuforia su Unity 3D, impareremo come impostare l'ambiente, e inizieremo anche a sviluppare un piccolo gioco di AR chiamato Shoot the Cubes. Presteremo particolare attenzione al ARCamera Prefabbricato, una delle parti più importanti di Vuforia in Unity.
Nella seconda parte, continueremo a sviluppare il gioco Shoot the Cubes, aggiungendo l'interattività e rendendola più interessante. Questa sezione non entrerà troppo nelle particolarità di Vuforia, poiché l'idea sarà di esplorare alcune possibilità offerte da Unity per creare un'esperienza di Realtà Aumentata coinvolgente..
Unity è un motore di gioco popolare e potente che è facile da usare e può compilare giochi per più piattaforme. Ci sono alcuni vantaggi nell'usare Unity per creare esperienze AR con Vuforia. È possibile scegliere come target tutti i sistemi supportati da Vuforia, inclusi gli occhiali intelligenti. È più semplice da usare, grazie alle prefabbricate fornite dall'SDK di Vuforia. Usando solo Unity è possibile accedere a tutte le funzionalità disponibili su Vuforia.
Puoi accedere a tutte le funzionalità di Vuforia su Unity utilizzando i prefabbricati Vuforia. Tutto ciò che devi fare è trascinare l'oggetto sullo stage e configurarlo. Come suggerisce il nome, le prefabbricate sono come modelli per la creazione e la clonazione di oggetti Unity completi di componenti e proprietà. Ad esempio, il ImageTarget rappresenta immagini che possono essere utilizzate come target. Diamo un'occhiata ai prefabbricati Vuforia disponibili su Unity:
Il gioco che svilupperemo è semplice, ma illustra bene i principi della Realtà Aumentata e ci insegnerà alcuni dei fondamenti di Vuforia. L'obiettivo del gioco è quello di trovare e sparare cubetti che volano in giro per la stanza. Il giocatore cercherà i cubi usando il suo dispositivo e "tocca" per sparare sulle scatole. Non ci interesseremo con punteggio, livello o qualcosa del genere, ma puoi facilmente espandere questi aspetti del gioco da solo.
Prima di iniziare a giocare, dovremo preparare Unity per Vuforia. Il processo è abbastanza semplice e in pratica è necessario importare il pacchetto SDK di Vuforia e aggiungere un ARCamera prefabbricato al nostro progetto.
È tempo di controllare se l'ambiente funziona correttamente.
Se hai una webcam sul tuo computer, puoi premere il pulsante di riproduzione di Unity per verificare se il ARCamera sta lavorando. Sarà possibile riconoscere i bersagli usando la webcam; tuttavia, non sarà possibile utilizzare alcun dato del sensore per testare la tua esperienza AR. Se l'alimentazione della telecamera non mostra il Gioco finestra, è possibile che la fotocamera non sia compatibile con il profilo webcam fornito da ARCamera.
Il modo migliore per testare l'applicazione Vuforia è direttamente sul dispositivo. Compileremo il progetto per Android, ma gli stessi passaggi si applicano ai dispositivi iOS.
Dopo la costruzione, l'applicazione verrà installata sul tuo dispositivo. Per ora, tutto ciò che dovresti aspettarti è vedere il feed della videocamera sul tuo dispositivo senza errori. Se hai capito, tutto ha funzionato correttamente.
L'obiettivo del gioco Shoot the Cubes è quello di cercare e sparare cubetti volanti usando la fotocamera e i sensori del dispositivo. Questo approccio è simile a quello usato su Pokémon GO. Per realizzare questo, avremo solo bisogno di usare la Vuforia ARCamera prefabbricato.
Ci sono molti script allegati al ARCamera. Per ora, l'unico che devi capire è il Comportamento di Vuforia script. Diamo un'occhiata alle sue opzioni:
Per ora, tutto ciò che devi cambiare nel ARCamera è il Modalità Word Center. Clicca sul ARCamera elemento nella gerarchia e nel Ispettore riquadro, cambia il Modalità World Center a DEVICE_TRACKING.
Aggiungiamo un cubo allo stage e testiamo se ARCamera funziona correttamente.
Dovrai guardarti intorno ruotando il tuo dispositivo per trovare il cubo. Noterai che l'oggetto rimane fermo nello stesso punto, anche dopo averlo allontanato. È come se il cubo "esista" nel mondo reale, ma può essere visto solo con la fotocamera del dispositivo.
Il primo problema con la nostra applicazione è che il cubo può apparire ovunque e l'utente dovrà guardarsi attorno per trovarlo. Poiché il centro del mondo è definito in base ai sensori del dispositivo, non possiamo essere sicuri della posizione effettiva degli elementi. Questo perché l'utente può iniziare con il dispositivo con qualsiasi orientamento e poiché il modo in cui viene misurata la rotazione varia da dispositivo a dispositivo.
Per assicurarsi che le entità AR inizino dal punto di vista dell'utente, l'approccio più semplice è aspettare che Vuforia definisca il centro del mondo e trovare il ARCamera rotazione e quindi per organizzare la posizione di partenza degli elementi secondo tale orientamento.
Creeremo un Responsabile spawn per definire la posizione dei cubi da generare. Il manager definirà la sua posizione secondo il ARCamera rotazione. Attenderà fino a quando non viene impostata la rotazione, quindi sposta 10 unità nella parte anteriore della videocamera.
Per prima cosa aggiungiamo il pacchetto Vuforia.
usando UnityEngine; usando System.Collections; // Avremo bisogno di usare il pacchetto Vuforia per // assicurarsi che tutto funzioni usando Vuforia; classe pubblica SpawnScript: MonoBehaviour
Accedere ARCamera, uso Camera.main
. Creiamo una funzione per ottenere la posizione della telecamera e impostare il cubo da generare 10 unità in avanti da questo punto.
spawnScript di classe pubblica: MonoBehaviour // Definire la posizione se l'oggetto // in base alla posizione di ARCamera bool privato SetPosition () // ottiene la posizione della telecamera Transform cam = Camera.main.transform; // imposta la posizione 10 unità in avanti dalla posizione della telecamera transform.position = cam.forward * 10; ritorna vero;
Cambiamo la posizione solo una volta dal Inizio
funzione. Cambiare posizione
è una coroutine che attenderà un po 'di tempo prima di impostare la posizione.
private bool mPositionSet; void Start () // Definizione della posizione di spawn StartCoroutine (ChangePosition ()); // Useremo una Coroutine per dare un piccolo // ritardo prima di impostare la posizione IEnumerator privato ChangePosition () yield return new WaitForSeconds (0.2f); // Definisce la posizione Spawn una sola volta se (! MPositionSet) // cambia la posizione solo se Vuforia è attivo se (VuforiaBehaviour.Instance.enabled) SetPosition ();
Proviamo lo script:
Gli elementi iniziano a sovrapporsi; tuttavia, una volta creato ed eseguito l'applicazione su un dispositivo, vedrai che il file _SpawnController e la sua sfera apparirà davanti alla telecamera, e il cubo sarà in un altro posto. Vai avanti e provalo! Assicurati di guardare il dispositivo giusto all'avvio dell'app.
Congratulazioni, hai creato la tua prima esperienza in Realtà Aumentata. Sì, è un po 'approssimativo, ma funziona! In questo tutorial hai imparato come utilizzare il prefabbricato principale di Vuforia in Unity, il ARCamera. Hai anche imparato come configurarlo e come usare i sensori del dispositivo per creare l'illusione che un oggetto virtuale sia inserito nel mondo.
Nel prossimo tutorial miglioreremo questo principio per creare un vero gioco e un'esperienza più coinvolgente. Continueremo a sviluppare il gioco Shoot the Cubes, aggiungendo un po 'di interattività ed esplorando le possibilità di Unity per la creazione di un gioco AR interessante. Faremo in modo che i cubi si generino e volino in giro, e lasceremo che il giocatore li cerchi e li distrugge sparando un laser dal dispositivo.
A presto!
Un ringraziamento speciale per il immagine vettoriale disegnata da Freepik, sotto licenza Creative Commons CC BY-SA.