MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY 1
Sommario 1. INTRODUZIONE... 3 2. GET METAIO... 4 2.1. PREREQUISITI... 4 2.2. INTALLAZIONE... 4 2.3. PROGETTI ESEMPLIFICATIVI... 4 3. USARE METAIO... 6 2
1. INTRODUZIONE La realizzazione di applicativi in grado di sfruttare tecnologie di realtà aumentata AR e quindi l utilizzo massivo di oggetti 3D, richiede che gli sviluppatori siano correttamente supportati da strumenti, framework e librerie, specializzate in questo contesto. A tal proposito nasce Metaio, un framework di supporto per lo sviluppo software dedicato all AR. L utilizzo di Metaio SDK consente quindi la realizzazione di software desktop oppure per piattaforme mobile (ios e Android). Da sottolineare che tale Framework necessita di licenza per uso commerciale, al contrario di quanto avviene nell uso personale/sperimentale. 3
2. GET METAIO Metaio viene distribuito mediante SDK. In questa sezione viene descritto come procurarsi ed installare il necessario in modo da poter iniziare ad utilizzare il framework. In particolare esso verrà utilizzato mediante Eclipse. L eseguibile di Metaio contiene anche progetti esemplificativi che ne mostrano il funzionamento e sono utili a capirne le potenzialità. 2.1. PREREQUISITI E necessario avere installato JAVA ed Eclipse sul proprio PC. 2.2. INTALLAZIONE Scaricare Metaio SDK. E necessario registrarsi. (http://ar.metaio.com/ download_sdk?_ga=1.228433054.2056019795.1426160146) Installare l eseguibile 2.3. PROGETTI ESEMPLIFICATIVI All interno della cartella di installazione creata dall eseguibile di Metaio si trovano gli esempi utili a capire le funzionalità messe a disposizione dall SDK. Copiare la cartella C:\Program Files\metaio SDK 5.5.1\_Android\Examples_SDK \Example all interno del workspace di Eclipse ed importare il progetto all interno dell IDE. Copiare la cartella C:\Program Files\metaio SDK 5.5.1\_Android\metaioSDK all interno del workspace di Eclipse ed importare il progetto all interno dell IDE. Copiare la cartella C:\Program Files\metaio SDK 5.5.1\tutorialContent_crossplatform all interno del workspace di Eclipse. In caso di errori di importazione: Creare un nuovo progetto Java Chiudere Eclipse 4
Copiare il contenuto della cartella Example nella cartella del nuovo progetto all interno del workspace Riaprire Eclipse In caso il primo progetto non riconosca il secondo impostare il corretto Build Path cliccando tasto destro del mouse sul progetto -> Build Path -> Configure Build Path -> Project -> Add Project Avviare il progetto Example sul dispositivo All interno della cartella C:\Program Files\metaio SDK 5.5.1\Doc\Printouts si possono trovare le immagini e i marker utili agli esempi da testare. ESEMPIO 1: Lanciando il primo esempio possiamo notare che inquadrando la foto di Metaioman (che si trova in MetaioSDK\tutorialContent_crossplatform\TutorialHelloWorld\Assets\metaioman_target.png) compare la sagoma di MetaioMan 5
3. USARE METAIO Per poter usare il Framework Metaio è necessario: Creare su Eclipse il nuovo progetto Android Copiare la cartella C:\Program Files\metaio SDK 5.5.1\_Android\metaioSDK all interno del workspace di Eclipse ed importare il progetto all interno dell IDE. Collegare il nuovo progetto con Metaio SDK mediante: Build Path -> Configure Build Path -> Project -> Add Project Sviluppare la propria applicazione (All interno della cartella Assets si trovano i file di configurazione di Metaio in cui settare le impostazioni principali (es. tracciamento con marker, markerless.) 6
ESEMPIO APPLICATIVO TRACKING DI UN IMMAGINE (Quando la fotocamera inquadra un immagine predefinita viene disegnato un modello 3d custom fornito all applicazione) 1.Eseguire il Download di Metaio SDK ed importare la relativa directory MetaioSDK all interno di un Workspace Eclipse come visto per gli esempi Tutorial precedenti. 2.Creare un nuovo progetto Android 3.Collegare il progetto appena creato con il Progetto MetaioSDK importato (E possibile farlo tramite BuildPath come visto precedentemente) 4.Salvare il proprio codice di licenza gratuita (attivabile dal sito di Metaio) come stringa all interno di res/values/strings.xml <string name= metaiosdksignature"> signature </string> 5.A questo punto non resta che scrivere la prima Activity la quale dovrà estendere la classe ARViewActivity (contenuta nel Framework Metaio) public class Prova extends ARViewActivity 6.Il metodo principale da implementare è il loadcontents() il quale permette di instanziare tutti gli strumenti forniti da Metaio in quest ordine: getassetpathasfile: Caricamento del file di configurazione di metaio, contenuto nella directory assets del progetto. Questo file contiene le impostazioni principali come il tipo di tracciamento desiderato o il path dell immagine da riconoscere (Modificare quello contenuto negli esempi tutorial) File trackingconfigfile = AssetsManager.getAssetPathAsFile(getApplicationContext(), TutorialHelloWorld/Assets/TrackingData_MarkerlessFast.xml"); settrackingconfiguration: Impostare il file di configurazione: boolean result = metaiosdk.settrackingconfiguration(trackingconfigfile); getassetpathasfile: Caricare il modello 3d che si andrà a visualizzare usando l applicazione (Estensione.md2) che andrà inserito precedentemente nella directory assets del progetto. File metaiomanmodel = AssetsManager.getAssetPathAsFile(getApplicationContext(), "TutorialHelloWorld/Assets/metaioman.md2"); 7
creategeometry: Creare il modello 3d in base al file appena referenziato: IGeometry geometry = metaiosdk.creategeometry(metaiomanmodel); 7. Implementare il metodo getguilayout() in modo che ritorni il layout dell activity che si sta progettando return R.layout. currentactivity ; 8.Se necessario implementare il metodo ongeometrytouched() che permette di catturare l interazione con il modello 3d. 9.Infine impostare i permessi sottostanti all interno del Manifest: <uses-permission android:name="android.permission.camera" /> <uses-permission android:name="android.permission.write_external_storage" /> <uses-permission android:name="android.permission.access_fine_location" /> <uses-permission android:name="android.permission.modify_audio_settings" /> <!-- Only needed if Visual Search is used --> <uses-permission android:name="android.permission.internet" /> <!-- These permissions are only needed for debugging --> <uses-permission android:name="android.permission.set_debug_app" /> <uses-permission android:name="android.permission.access_network_state" /> 8
ESEMPIO COMPLETO: public class TutorialHelloWorld extends ARViewActivity @Override protected int getguilayout() // Attaching layout to the activity return R.layout.tutorial_hello_world; public void onbuttonclick(view v) finish(); @Override protected void loadcontents() try File trackingconfigfile = AssetsManager.getAssetPathAsFile(getApplicationContext(), "TutorialHelloWorld/Assets/ TrackingData_MarkerlessFast.xml"); boolean result = metaiosdk.settrackingconfiguration(trackingconfigfile); MetaioDebug.log("Tracking data loaded: " + result); File metaiomanmodel = AssetsManager.getAssetPathAsFile(getApplicationContext(), "TutorialHelloWorld/Assets/ metaioman.md2"); if (metaiomanmodel!= null) // Loading 3D geometry IGeometry geometry = metaiosdk.creategeometry(metaiomanmodel); if (geometry!= null) geometry.setscale(4f); else MetaioDebug.log(Log.ERROR, "Error loading geometry: "+metaiomanmodel); catch (Exception e) MetaioDebug.printStackTrace(Log.ERROR, e); @Override protected void ongeometrytouched(igeometry geometry) 9