Introducció
ARCore és la plataforma de Google per a la creació d'experiències de realitat augmentada (AR) en dispositius Android. Utilitza diverses tecnologies per integrar contingut virtual amb el món real a través de la càmera del dispositiu. En aquest tema, aprendrem a configurar ARCore en un projecte Android, a crear una experiència bàsica de realitat augmentada i a explorar algunes de les funcionalitats avançades que ofereix ARCore.
Objectius
- Comprendre què és ARCore i com funciona.
- Configurar un projecte Android per utilitzar ARCore.
- Crear una aplicació bàsica de realitat augmentada.
- Explorar funcionalitats avançades d'ARCore.
Requisits Previs
- Coneixements bàsics de desenvolupament d'Android.
- Familiaritat amb Android Studio.
- Coneixements bàsics de programació en Java o Kotlin.
- Comprensió d'ARCore
Què és ARCore?
ARCore és una plataforma de Google que permet als desenvolupadors crear aplicacions de realitat augmentada. Utilitza tres capacitats clau per integrar contingut virtual amb el món real:
- Seguiment de Moviment: Permet al dispositiu entendre i seguir la seva posició relativa al món.
- Comprensió de l'Ambient: Detecta superfícies horitzontals i verticals i estima la il·luminació de l'ambient.
- Estimació de la Llum: Permet que els objectes virtuals es comportin de manera realista segons les condicions de llum del món real.
- Configuració d'un Projecte ARCore
Pas 1: Instal·lació de les Dependències
Primer, hem d'afegir les dependències necessàries al nostre projecte Android. Obre el fitxer build.gradle
del mòdul de l'aplicació i afegeix les següents línies:
dependencies { implementation 'com.google.ar:core:1.23.0' implementation 'com.google.ar.sceneform.ux:sceneform-ux:1.17.1' }
Pas 2: Configuració del Manifest
Afegeix els permisos necessaris i la configuració d'ARCore al fitxer AndroidManifest.xml
:
<uses-permission android:name="android.permission.CAMERA"/> <uses-feature android:name="android.hardware.camera.ar" android:required="true"/> <application> <meta-data android:name="com.google.ar.core" android:value="required" /> </application>
Pas 3: Creació de l'Activitat Principal
Crea una nova activitat anomenada MainActivity
i configura-la per utilitzar ARCore. Aquí tens un exemple bàsic en Kotlin:
import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.google.ar.core.ArCoreApk import com.google.ar.sceneform.ux.ArFragment class MainActivity : AppCompatActivity() { private lateinit var arFragment: ArFragment override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Verifica si ARCore està instal·lat when (ArCoreApk.getInstance().checkAvailability(this)) { ArCoreApk.Availability.SUPPORTED_INSTALLED -> { // ARCore està instal·lat arFragment = supportFragmentManager.findFragmentById(R.id.ux_fragment) as ArFragment } else -> { // ARCore no està disponible finish() } } } }
Pas 4: Configuració del Layout
Crea un fitxer de disseny activity_main.xml
per a la teva activitat principal:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <fragment android:id="@+id/ux_fragment" android:name="com.google.ar.sceneform.ux.ArFragment" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
- Creació d'una Aplicació Bàsica de Realitat Augmentada
Pas 1: Afegir un Objecte Virtual
Per afegir un objecte virtual a la nostra escena, podem utilitzar el següent codi dins de MainActivity
:
import com.google.ar.core.HitResult import com.google.ar.core.Plane import com.google.ar.sceneform.AnchorNode import com.google.ar.sceneform.rendering.ModelRenderable import com.google.ar.sceneform.ux.TransformableNode class MainActivity : AppCompatActivity() { private lateinit var arFragment: ArFragment override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) arFragment = supportFragmentManager.findFragmentById(R.id.ux_fragment) as ArFragment arFragment.setOnTapArPlaneListener { hitResult: HitResult, plane: Plane, motionEvent: MotionEvent -> if (plane.type != Plane.Type.HORIZONTAL_UPWARD_FACING) { return@setOnTapArPlaneListener } val anchor = hitResult.createAnchor() val anchorNode = AnchorNode(anchor) anchorNode.setParent(arFragment.arSceneView.scene) ModelRenderable.builder() .setSource(this, R.raw.model) .build() .thenAccept { renderable -> val node = TransformableNode(arFragment.transformationSystem) node.setParent(anchorNode) node.renderable = renderable node.select() } } } }
Pas 2: Afegir un Model 3D
Per afegir un model 3D, necessitem un fitxer .sfb
o .glb
. Pots crear aquests fitxers utilitzant eines com Blender o descarregar models des de llocs com Poly de Google. Afegeix el model al directori res/raw
del teu projecte.
- Funcionalitats Avançades d'ARCore
Seguiment de Moviment
ARCore pot seguir el moviment del dispositiu i actualitzar la posició dels objectes virtuals en conseqüència. Això permet crear experiències més immersives i realistes.
Comprensió de l'Ambient
ARCore pot detectar superfícies horitzontals i verticals, així com estimar la il·luminació de l'ambient. Això permet col·locar objectes virtuals de manera més precisa i realista.
Estimació de la Llum
ARCore pot estimar la quantitat de llum present en l'ambient i ajustar la il·luminació dels objectes virtuals per fer-los semblar més realistes.
Exercici Pràctic
Objectiu
Crear una aplicació de realitat augmentada que permeti col·locar un model 3D en una superfície horitzontal detectada.
Passos
- Configura un projecte Android amb ARCore seguint els passos anteriors.
- Afegeix un model 3D al directori
res/raw
. - Modifica
MainActivity
per col·locar el model 3D en una superfície horitzontal detectada.
Solució
La solució es troba en els passos detallats anteriorment. Assegura't de seguir cada pas i verificar que el model 3D es carrega correctament.
Conclusió
En aquest tema, hem après a configurar ARCore en un projecte Android, a crear una aplicació bàsica de realitat augmentada i a explorar algunes de les funcionalitats avançades que ofereix ARCore. Amb aquests coneixements, estàs preparat per crear experiències de realitat augmentada més complexes i immersives.
Curs d'Android Studio
Mòdul 1: Introducció a Android Studio
- Introducció a Android Studio
- Configuració d'Android Studio
- Comprensió de la Interfície d'Android Studio
- Creació del teu Primer Projecte Android
Mòdul 2: Desenvolupament Bàsic d'Android
- Comprensió de l'Estructura del Projecte Android
- Introducció als Dissenys XML
- Components Bàsics de la Interfície d'Usuari
- Introducció a les Activitats
- Executar la teva Aplicació en un Emulador
Mòdul 3: Desenvolupament Intermedi d'Android
- Introducció als Intents
- Treballar amb Fragments
- Gestió de l'Entrada de l'Usuari
- Ús de RecyclerView
- Xarxes en Android
Mòdul 4: Desenvolupament Avançat d'Android
- Persistència de Dades amb SQLite
- Ús de Room per a la Gestió de Bases de Dades
- Components Avançats de la Interfície d'Usuari
- Vistes Personalitzades i Canvas
- Treballar amb Tasques en Segon Pla
Mòdul 5: Desenvolupament Professional d'Android
- Implementació de l'Arquitectura MVVM
- Injecció de Dependències amb Dagger
- Proves Unitàries i Proves de la Interfície d'Usuari
- Publicació de la teva Aplicació a Google Play
- Optimització del Rendiment