Featured image of post Aggiungere elementi 3D in AR con Geospatial Creator

Aggiungere elementi 3D in AR con Geospatial Creator

Geospatial Creator è uno strumento di Google che ti consente di creare mappe personalizzate utilizzando dati geospaziali reali. Tutorial per Unity.

Introduzione a Geospatial AR

In questo articolo, ti guiderò alla creazione di un’applicazione base con Geospatial Creator per Unity. Geospatial Creator è una piattaforma fornita da Google che consente di creare ambienti virtuali basati su dati geografici reali, creando con facilità scene virtuali dettagliate che si basano su informazioni geografiche accurate.

Semplicemente attraverso i dati geografici, possiamo aggiungere elementi visivi alle scene e personalizzare l’esperienza utente per creare ambienti geospaziali il tutto attraverso Unity e inserire elementi AR nell’ambiente direttamente dalla scena.

Puoi trovare ulteriori sul Geospatial AR dettagli in questo articolo: https://www.francescogarofalo.it/post/geospatial-ar-by-google-arcore/

Prepara l’ambiente di sviluppo

Prerequisiti

Prima di iniziare, sono necessari i seguenti componenti:

* Unity (versione 2019.4.22f1 LTS o superiore);
* Unity AR Foundation;
* Unity ARCore XR plugin;
* ARCore Extensions (https://github.com/google-ar/arcore-unity-extensions.git)
* Cesium (https://github.com/CesiumGS/cesium-unity/)

Preconfigurazione

  1. Crea un progetto Unity di tipo 3D.

  2. Installa i framework ARCore e AR Foundation dal package manger di Unity -> Click su Window > Package Manager.

  • ARCore XR Plugin
  • AR Foundation
  1. Build Settings
  • Click su File > Build Settings.
  • Nella sezione Platform selezionare Android e clicca su Switch Platform.
  1. Modificare le impostazioni di progetto
  • Dal menù Build Settings, seleziona Player Settings

AR Foundation deve essere configurato per inizializzare i sistemi XR all’avvio.

  • Open Edit > Project Settings e click sulla sezione XR Plug-in Management.
  • Nella scheda Android, abilitare ARCore con la spunta.

ARCore non funziona con l’API grafica Vulkan, per questa ragione è necessario rimuoverla e lasciare solo *Open GLES:

  • Dal pannello Project Settings click su Player,

  • rimuovere la spunta da Auto Graphics API e

  • rimuovere con il - l’API Vulkan;

  • selezionare ARM64 come architettura;

  • seleziona IL2CPP come scriptingBackend. Dal medesimo pannello, cerca Minimum API Level e selezione come Android 7.0 Nougat (API level 24), questo perché ARCore funzionanano a partire dal API level 24.

Crea un progetto Google Cloud

Per recuperare i dati dei riquadri 3D fotorealistici da Google Cloud, devi creare un’autorizzazione all’accesso.

  1. Creare un progetto nella Google Cloud Console. Console Google Cloud

  2. Inserisci un Nome Progetto e procedi con la creazione.

  3. Dopo qualche secondo il tuo progetto sarà creato.

Abilita le Map Tiles API

Per abilitare le Map Tiles API https://console.cloud.google.com/apis/library/tile.googleapis.com e sulla nuova scheda abilita le Map Tiles API.

Abilita inoltre le API di ARCore API https://console.cloud.google.com/apis/api/arcore.googleapis..com

Per l’abilitazione sarà necessario l’inserimento di un metodo di pagamento sul Google Account.

Crea un API key per il tuo progetto

  1. In Google Cloud Console, in API e servizi, seleziona Credenziali.
  2. Nella parte superiore della pagina, fai clic su Crea credenziali, quindi seleziona Chiave API.
  3. Salva la chiave perché ti servirà per i passaggi successivi.
  4. Facoltativo - Puoi proteggere l’API impostando un indirizzo ip oppure il nome del package android (questo passo richiederà modifiche aggiuntive al progetto unity).

Geospatial Editor

Per iniziare con Geospatial Editor, segui questi passaggi:

  1. In Unity Hub, crea un progetto 3D con Unity versione 2021.3.17f1 o successiva.
  2. Fare clic su Window > Package Manager, quindi seguire questi passaggi per aggiungere i pacchetti necessari:
    • Click + > Add package from git URL > https://github.com/google-ar/arcore-unity-extensions.git.
    • Fare clic su Samples, quindi importare il geospatial sample.
    • Scarica l’ultima versione di Cesium, fai click su + > Add package from tarball > com.cesium.unity-1.6.2.tgz (la versione di cesium fino al 22/09/23, puoi anche prendere l’ultima versione disponibile). Google Geospatial Sample

Configurare la scena AR Geospatial Creator Origin

  1. Nel pannello Project, fai doppio click su Assets > Samples > ARCore Extensions > 1.37.0 > Geospatial Sample > Scenes > Geospatial.

  2. Aggiungi alla scena l’oggetto AR Geospatial Creator Origin click col tasto destro del mouse sul pannello Hierarchy -> XR -> AR Geospatial Creator Origin.

  3. Ora devi inserire la chiave API creata in precedenza nelle impostazioni di progetto per ARCore Extension, per fare questo, vai su Player Settings, apri la scheda ARCore Extensions seleziona le label Geospatial e Geospatial Creator, seleziona come Android Authentication Strategy API Key e aggiungi nel campo Android API Key* la tua API.

  4. Torna al progetto e clicca sull’oggetto AR Geospatial Creator Origin e abilita lo script AR Geospatial Creator Origin. A questo punto ti chiederà una Google Map Tiles API Key per utilizzare i servizi di Cesium + Geospatial Creator. Inserisci l’API generata in precedenza; se hai fatto tutto correttamente dovresti riuscire a vedere la mappa, se invece dovesse comparti un errore verifica i log nella console, sono parlanti e facili da capire.

Da Google Maps ottieni latitudine e longitudine della zona d’interesse su cui vuoi lavorare ed inseriscile nei campi Latitude e Logintude dell’oggetto AR Geospatial Creator Origin.

Se tutto è stato fatto correttamente dovresti riuscire a vedere la mappa in 3D su Unity.

Configurare la scena un oggetto Anchor AR

A questo punto puoi aggiungere un qualsiasi oggetto all’interno della scena e poi configurarne l’anchor in questo modo.

Per esempio, crea un oggetto cube, dall’inpector dell’oggetto aggiungi il component AR Geospatial Creator Anchor e posizionalo mediante l’interfaccia Scene di unity dove vuoi all’interno della mappa.

L’operazione è estremamente semplice e visivamente si può inserire qualsiasi oggetto all’interno della scena.

Google Geospatial Example

Bug Fix

Se l’applicazione dovesse andare in crash potrebbe essere dovuto all’errore:

Error DynamiteClient Failed to load native library [packageName=com.google.ar.core,libraryName=arcore_c] …

Per risolverlo basta switchare a IL2CPP.

Se non dovesse risolversi, assicurati che il progetto sia su ARM 64.

Conclusioni

Geospatial Creator ha reso semplice l’utilizzo di ancore geospaziali all’interno dell’ambiente di sviluppo Unity, inoltre con Geospatial Anchor è semplicissimo anche visivamente inserire degli elementi nella scena AR ed avere un’anteprima visiva abbastanza accurata di come si vedranno nella scena finale.

Fonti

Grazie :)

Condividi:
Views
Create with Hugo, Theme Stack;
Sito creato e gestito da Francesco Garofalo;