Desarrollo de una experiencia de Realidad Aumentada con Unity y EasyAR para instrumentos musicales

La realidad aumentada o AR es una de las tecnologías más usadas en aplicaciones interactivas, educación y entretenimiento. Gracias a motores de desarrollo como Unity y SDK especializados como EasyAR, hoy en día se puede desarrollar experiencias inmersivas que sean capaces de reconocer imágenes, objetos y superficies en tiempo real. EasyAR proporciona funciones como reconocimiento de imágenes, seguimiento de objetos y renderizado de contenidos en 3D, todo dentro de Unity.
Este artículo explica el desarrollo de una aplicación de realidad aumentada basada en reconocimiento de imágenes (Image Targets), donde el usuario puede visualizar tres instrumentos musicales diferentes. En cada marcador detectado, la aplicación despliega un modelo 3D del instrumento, reproduce un sonido representativo y despliega una breve información relacionada con sus características principales.
Introducción
La realidad aumentada nos permite insertar elementos virtuales en el entorno real mediante el uso de cámaras y sensores. A diferencia de la realidad virtual, la AR no reemplaza por completo el entorno físico, sino que añade información digital sobre éste.
Se utilizó para este proyecto:
- Unity como motor de desarrollo.
- EasyAR como SDK de reconocimiento y seguimiento de imágenes.
- Modelos 3D de instrumentos musicales.
- Archivos de audio para la reproducción de sonidos.
- Targets impresos o digitales para activar el contenido AR.
La aplicación fue diseñada con un propósito educativo e interactivo, permitiendo al usuario conocer información básica de distintos instrumentos musicales, mediante una experiencia visual y sonora.
Objetivo del proyecto
Desarrollar una aplicación Android de realidad aumentada en Unity utilizando EasyAR, capaz de reconocer tres imágenes objetivo diferentes y mostrar:
- Un modelo 3D del instrumento correspondiente.
- Sonido característico del instrumento.
- Información descriptiva básica.
Herramientas utilizadas
| Herramienta | Descripción |
|---|---|
| Unity | Motor gráfico utilizado para el desarrollo de la aplicación |
| EasyAR | SDK de realidad aumentada para reconocimiento de imágenes |
| Android Build Support | Compilación de la aplicación para dispositivos Android |
| Modelos 3D | Instrumentos musicales utilizados en la experiencia |
Instalación de Unity y EasyAR
Instalación de Unity Hub
El primer paso consiste en instalar Unity Hub desde el sitio oficial de Unity para ello encontraras en este link Unity Hub, la pagina oficial en la cual encontraras las documentación oficial y las intrucciónes de descarga e instalación.

Para poder acceder a este menu, se le pedirá que cree una cuenta de usuario y se autentique.

una vez se descargue y abra el el ejecutable de unity tendrás que aceptar la licencia y condiciones. Una vez este instalada la aplicación, podrás ver la siguiente pantalla:

Instalación de EasyAR
EasyAR proporciona un SDK compatible con Unity para el desarrollo de aplicaciones AR. sigue los siguientes pasos para la instalacion de EasyAR
Para instalar EasyAR:
Ingresa a EasyAR:

Crea una cuenta y autenticate con la misma:

Procederemos a crear una licencia de uso:

Ahora seleccionamos crear una cuenta personal:

Tambien vamos a seleccionar en no utilizar spartial Map y agregamos un bundle ID y un pakage Name, en este caso com.DiegoCastro.instrumentos:

Al crear la licencia, se crear la sense License Key:

Este string es importante puesto que posteriormente se utilizara en la instalación del plugin de EasyAR en nuestro proyecto de unity, ahora tenemos que descargar el plugin EasyAr Sence Unity Plugin, que lo encontraras en la sona de descargas:

Documentación oficial:
Creación del proyecto en Unity
Ahora en unity hub, vamos a crear un nuevo poryecto, para ello vamos a la pestaña Projects seleccionamos 3D render build in pipeline y finalmente en crear proyect:

Una vez se crea el proyecto, estaremos en la bentana principal de Unity:

Importar de Plugin EasyAR:
Para iniciar, vamos a instalar el paquete de EasyAR, en la parte superior en la opcion Windows vamos a la pestaña Package Management y finalmente Packages Manager:

Procedermos a la importación del plugin EasyAr Sence Unity Plugin, para ello en la parte superior izquierda, en el icono de mas vamos a utilizar Install Pakage FromTarball:

Se abríra la ventana del buscador e importaremos el archivos, buscamos el archivo que descargamos de la pagina de EasyAR llamado com.easyar.sense-4002.0.0+4956.1ec38c1ad.tgz:

una vez instalado en el Package Manager encontraremos lo siguiente:

y en Explorador del proyecto encontraremos el plugin en el folder de packages:

Configurar la escena principal.
Vamos crear dos carpetas en el proyecto, las cuales van a almacenar los modelos de 3d de los instrumentos y lo targets:

en la sección de escena, vamos renombrar la escena como Instrumentos:

Ahora vamos a configurar los AR Session y AR Camera, este es el que nos provee el plugin de EasyAR, para ello en la sección de jerarquía vamos a dar click derecho, en Easy Sense buscamos Image Tracking, y posteriormente AR Session (image Tracking Preset):

En la jerarquía del proyecto encontraremos que se a agregado un objeto AR Session (EAsyAR), en este contiene el Camera Device e Image Tracker:

Configuración de las Image Targets
La aplicación utiliza tres imágenes objetivo diferentes, cada una asociada a un instrumento musical, estas imágenes serán utilizadas como Marcadores (Targets), donde se van a proyectar los modelos de cada instrumentos, nuestros targets son los siguientes :
Marcador Guitarra:

Marcador Piano:

Marcador Saxofon:

Estas imágenes fueron creadas con inteligencia artificial, para los marcadores puedes utilizar cualquier imagen, pero hay que tener en cuenta que esta se adapte a tu la experiencia de tu aplicación, por ejemplo que se pueda ver con facilidad en el material que se va a imprimir etc.
Se tienen que importar estas imágenes a la carpeta que se creo previamente en llamada Targets, en los assets de nuestro proyecto:

Seleccionamos nuestras imágenes e importamos:

Creación del Target Image
Para la creación del marcador vamos de nuevo a la jerarquía y con click izquierdo agregamos un Image Target, creamos uno por cada instrumento:

Renombramos cada Image Target con el nombre de su respectivo instrumento:

Ahora vamos a configurar nuestros Images Targets, para ello seleccionamos el Image Target (Image Target Saxo) en la jerarquía, al costado derecho de la pantalla en la ventana de inspección vamos a la sección Image Target Controller (Script), en la propiedad Source, seleccionamos Texture 2D:

Ahora tenemos que agregar la imagen que se va a uitlizar para cada target, para ello seleccionamos la imagen correspondiente en la carpeta de targets de nuestro proyecto y lo configuramos para que sea una textura y actualizamos el formato de compreción para android, al seleccionar la imagen, en el inspector del asset confirmamos que el Texture Type tenga seleccionado el valor sprite(2D and UI), al igual que en el logo de android, el Format sea RGBA Crunched ETC2

Ahora si podemos asignar la imagen a nuestro Target Image, para ello seleccionamos el Target Image, luego en el inspector, en la seccion Image Targuet Controller (script), seleccionamos en Texture nuestra imagen:


Integración de modelos 3D
Para este ejercicio se utilizaron modelos descargados de la libreria Sketchfab, se seleccionaron los siguientes modelos:



La estructura implementada fue:
Modelos
├── Guitarra-20
├── Saxophone
└── piano
para ello se importaron en la carpeta modelos que se encuentra en los assets del proyecto, del mismo modo que se importan las imagenes, pero en este caso se importarn los archivos que se descargaron y descomprimieron de la libreria:

ahora vamos a seleccionar el modelo y agregarlo a la jerarquía, pero hijo de Target image:

Mejoramos la orientacion del modelo y de nuestro target image para que quede como se van a visualizar en nuestra experiencia de Realidad Aumentada:

Ahora como se puede observar, el modelo no tiene la textura bien configurada, para ello vamos a seleccionar el modelo, en la carpeta saxofon-20 en assets, y con el click izquierdo vamos a extraer los assets del material (Extract Material SubAsset):


Procederemos a configurar la textura labert1, al seleccionar el material en el inspector vamos a agregar las imagenes que vienen del modelo con su correspondiente mapa:

Ahora vamos a crear una luz dirigida para mejorar la vicibildad del objeto cuando se renderise en la patalla, para ello en la jerarquía, como hijo de Image Target, damos click drecho y buscamos Light y posteriormente Directional Light:

Ahora cambiamos la rotation para que mejore el efecto del objeto:

Reproducción de sonido
Para agregar la funcionalidad de escuchar el sonido del instrumento, vamos a crear un botón con el texto sonar y al tocarlo este emitirá del sonido del instrumento correspondiente.
Vamos a crear incialmente el botón, seleccionado en la jerarquía nuestro Target Image, damos click derecho, buscamos UI (canvas) y seleccionamos Button – TextMeshPro:

Ahora vamos a configurarlo para ello, vamos a la vista Game y en el tamaño seleccionamos 1280×720 Portrait, el canvas es lo que vamos a ver en nuestra pantalla siempre:

Ahora vamos a configurar nuestro canvas para que este escale automaticamente según el tamaño de la pantalla del dispositivo, para ello en el inspector del canvas, en la sección Canvas Scaler, la propiedad Scaler Factor, y seleccionamos Scale With Screen Size, adicionalmente una vez seleccionado asignamos la propiedad Mach en 0.5:


Ahora vamos a cambiar el texto del botón, para ello en la jerarquía seleccionamos el botón y el hijo que se llama Text (TMP) y posteriormente en el inspector le damos el texto Sonido:


Adicionalmente vamos a cambiar el color de botón para que combine con el color del instrumento, seleccionamos el boton en la jerarquía, y en el inspector en la parte inferior cambiamos la propiedad Normal Color:

Ahora necitamos que al presionar el botón suene el audio del instrumento correspondiente, importamos el archivo .mp3 que tiene el audio:

tambien tenemos que crear un objeto Audio Source, en la Jerarquía hijo de del Target Image:

Ahora en el inspector del objeto, agregamos en la propiedad Audio Generator y seleccionamos el asset del audio correspondiente, adicionalmente deseleccionamos las opciones de Play On Awake y Loop en False:

por ultimo, vamos a agregar la funcionalidad al botón parque al dar click suene, vamos a seleccionar el botón y en el inspector vamos a buscar el parametro Oncick, y agregamos el Audio generator:

Visualización de información
Ahora para la información basica del instrumento, agregamos un objeto Text – TextMeshPro, hijo del canvas en la Jerarquía, en el inspector agregamos el texto que se va a mostrar y posteriormente ubicamos el objeto en el canvas para saber como lo vera el usuario:
Agregando el objeto Text – TextMeshPro:


Realizamos lo mismo para los 3 instrumentos, y el proyecto ya estaria listo para compilar:

Compilación para Android
Para la configuración de compilación, primero vamos a realizar una configuracion en en el proyect manager del proyecto:

Agregamos el nombre del proyect ID que se asigno en la plataforma de EasyAR, en la seccion de Player, en la propiedad PackageName:

ahora en la seccion graphics selecionamos la Default Render Pipeline asignamos al
Mobile_RPAsset (Universal Render Pipeline Asset):

Finalmente vamos a la creacion del archivo .apk el cual instalaremos en el celular, en la parte superior en File, seleccionamos Build Profiles:

Para generar el APK se configuró:
File > Build Settings > Android

Al acabar la construcción encontraras un archivo .apk, el cual es la aplicación andriod.
Resultados obtenidos
Al instalar la palicación y abrirla podemos observar como se ve la realidad aumentada de los instrumentos:



La aplicación desarrollada logró:
- Reconocimiento correcto de los tres targets.
- Renderizado de modelos 3D en tiempo real.
- Reproducción de audio sincronizada.
- Visualización estable de información interactiva.
La experiencia demostró el potencial de Unity y EasyAR para el desarrollo de aplicaciones educativas basadas en realidad aumentada.
Ventajas de utilizar Unity y EasyAR
Unity
- Motor multiplataforma.
- Amplio soporte para gráficos 3D.
- Compatibilidad con Android y iOS.
- Integración sencilla con SDK AR.
EasyAR
- Fácil integración con Unity.
- Reconocimiento de imágenes eficiente.
- Soporte para seguimiento AR.
- Licencias accesibles para proyectos educativos.
Conclusiones
El desarrollo de aplicaciones de realidad aumentada utilizando Unity y EasyAR permite crear experiencias interactivas e inmersivas de manera relativamente sencilla. En este proyecto se implementó una aplicación capaz de reconocer tres instrumentos musicales mediante Image Targets, mostrando modelos 3D, sonidos y contenido informativo en tiempo real.
Este tipo de aplicaciones puede aplicarse en contextos educativos, culturales y de entretenimiento, facilitando nuevas formas de aprendizaje mediante tecnologías inmersivas.
La combinación entre Unity y EasyAR representa una alternativa sólida para desarrolladores interesados en iniciar proyectos de realidad aumentada con reconocimiento de imágenes y contenido multimedia.
Recomendaciones
- Optimizar modelos 3D para dispositivos móviles.
- Utilizar imágenes target con buen contraste.
- Implementar animaciones para mejorar la interacción.
- Agregar reconocimiento simultáneo de múltiples targets.
- Integrar interfaces más dinámicas y responsive.
Recursos oficiales
Referencias
Piano
Author https://sketchfab.com/aenikl (AEN)
Licencia CC Attribution
Guitarra:
Author: https://sketchfab.com/agusbm (Agustin Bertuzzi)
Licencia CC Attribution
Saxophone
Author https://sketchfab.com/MattCaddie ( Matt Caddie)
https://sketchfab.com/3d-models/saxophone-f72747715883480b9555a75558b3e9cd#commentsLicencia CC Attribution
Piano
AEN. (s.f.). Piano [Modelo 3D]. Sketchfab. https://sketchfab.com/3d-models/piano-6fdfd05ed18c4c8796f54b44e572e873
Guitarra
Bertuzzi, A. (s.f.). Guitarra 2.0 [Modelo 3D]. Sketchfab. https://sketchfab.com/3d-models/guitarra-20-38f24c1eb8ae44d5bf2a4f9b940c96ec
Saxophone
Caddie, M. (s.f.). Saxophone [Modelo 3D]. Sketchfab. https://sketchfab.com/3d-models/saxophone-f72747715883480b9555a75558b3e9cd
Créditos Finales
Autor: Diego Alejandro Castro Lopez
Editor: Magister Ingeniero Carlos Iván Pinzón Romero
Código: UCCG-1
Institución: Universidad Central
