Unidad III: Despliegue y publicacion de aplicaciones de RA
UNIVERSIDAD TECNOLÓGICA DEL PACÍFICO
Asignatura: Aplicaciones para Realidad Aumentada
Unidad III: Despliegue y publicación de aplicaciones
Alumno: ___________________________ · Cuatrimestre: _______
Desarrollar una aplicación móvil de Realidad Aumentada (RA) que permita a los estudiantes de la Universidad Tecnológica del Pacífico explorar e interactuar con modelos 3D de elementos arquitectónicos y científicos mediante sus dispositivos móviles, mejorando la experiencia de aprendizaje en el campus universitario.
Problemática a resolver: Los estudiantes tienen dificultades para comprender conceptos abstractos en materias como arquitectura, biología y química, que requieren la visualización tridimensional de estructuras complejas. Los materiales didácticos tradicionales (libros, diapositivas) no ofrecen la interactividad necesaria.
Audiencia: Estudiantes y profesores de la Universidad Tecnológica del Pacífico, particularmente de las carreras de Ingeniería, Arquitectura y Ciencias.
Justificación: La Realidad Aumentada permite superponer objetos digitales 3D sobre el mundo real, brindando una experiencia inmersiva que facilita la comprensión de conceptos complejos. La implementación de esta tecnología en el ámbito educativo ha demostrado incrementar la retención de información hasta en un 40% (según estudios de la Universidad de Maryland, 2018).
Unity 2022 LTS con AR Foundation
Framework multiplataforma para RA con soporte para ARCore (Android) y ARKit (iOS).
Vuforia Engine 10.x
SDK para reconocimiento de imágenes/marcadores con tracking robusto y base de datos de targets en la nube.
Blender 3.6 + Sketchfab
Modelado y texturizado de objetos 3D. Exportación en formato .fbx y .glb para Unity.
Realidad Aumentada Educativa
Bienvenida y acceso rápido a las escenas de RA
Cámara AR con detección de marcadores
Listado de modelos 3D disponibles
Información del proyecto y créditos
Duración: 3 segundos
Logo de la UTP con animación fade-in. Nombre de la app "UTP AR Explorer". Barra de carga con progreso visual.
Elementos:
Bienvenida al usuario, botón "Escanear Marcador" (acceso a cámara AR), acceso rápido a las 5 escenas, indicador de conexión a internet.
Opciones:
Inicio, Escanear (Cámara AR), Catálogo de Modelos, Historial, Acerca de, Ayuda. Navegación tipo bottom tab bar.
Información del proyecto, versión de la app, créditos del equipo de desarrollo, logo de la universidad, enlace a la página institucional.
Tutorial interactivo de uso, instrucciones para escanear marcadores, preguntas frecuentes (FAQ), solución de problemas comunes.
Modelo 3D a escala del edificio principal. El usuario puede rotar, escalar y explorar con gestos táctiles. Incluye etiquetas informativas en cada sección del edificio.
Multimedia: Modelo 3D (.fbx) + Audio narración + Etiquetas 2D
Modelo 3D de los planetas con órbitas animadas. Al tocar cada planeta se muestra información, imagen en alta resolución y un video corto con datos curiosos.
Multimedia: 8 Modelos 3D + Video (MP4) + Imágenes 2D + Audio
Modelo 3D detallado de una célula eucariota. Se pueden separar los organelos y ver información individual de cada uno (mitocondria, núcleo, ribosomas, etc.).
Multimedia: Modelo 3D con partes separables + Audio + Texto informativo
Motor 3D animado que muestra los 4 tiempos del ciclo Otto. Animación paso a paso con narración en audio y etiquetas de cada componente.
Multimedia: Modelo 3D animado + Video explicativo + Audio narración
Representación 3D de un circuito con LED, resistencia, capacitor y fuente de energía. Animación del flujo de corriente eléctrica con partículas.
Multimedia: Modelo 3D + Animación de partículas + Audio + Imagen 2D del diagrama
El proceso de integración de modelos 2D, 3D, audio y video en la aplicación de RA sigue una secuencia específica para cada tipo de elemento:
| Parámetro | Smartphone | Tablet |
|---|---|---|
| Escala base del modelo | 0.3 - 0.5 | 0.5 - 0.8 |
| Distancia de tracking | 30 - 100 cm | 40 - 150 cm |
| Max polígonos | 50,000 | 100,000 |
| Resolución texturas | 512x512 | 1024x1024 |
| FPS objetivo | 30 fps | 30-60 fps |
El objeto se posiciona en el espacio 3D real usando coordenadas relativas al marcador detectado o a un plano horizontal/vertical. Se usa ARRaycastManager para detectar superficies y anclar objetos.
Tap: Seleccionar objeto / mostrar info.
Drag: Mover objeto en el plano.
Pinch: Escalar (zoom in/out).
Rotate: Dos dedos para rotar.
Detección de planos horizontales (mesas, pisos) y verticales (paredes) usando ARPlaneManager. Los objetos se anclan a superficies detectadas manteniendo su posición en el mundo real.
Uso de GPS + brújula para experiencias de RA geolocalizadas. Activación de contenido AR según la ubicación física del usuario en el campus (geo-anchors).
// ARRaycastManager para detectar superficies
ARRaycastManager raycastManager;
List<ARRaycastHit> hits = new List<ARRaycastHit>();
void Update() {
if (Input.touchCount > 0) {
Touch touch = Input.GetTouch(0);
if (touch.phase == TouchPhase.Began) {
if (raycastManager.Raycast(touch.position, hits,
TrackableTypes.PlaneWithinPolygon)) {
Pose hitPose = hits[0].pose;
// Instanciar modelo 3D en la posición detectada
Instantiate(prefabModelo, hitPose.position,
hitPose.rotation);
}
}
}
}
// Escalar objeto con gesto de pinch (dos dedos)
void HandlePinchScale() {
if (Input.touchCount == 2) {
Touch t0 = Input.GetTouch(0);
Touch t1 = Input.GetTouch(1);
float prevDist = (
(t0.position - t0.deltaPosition) -
(t1.position - t1.deltaPosition)
).magnitude;
float currDist = (t0.position - t1.position).magnitude;
float scaleFactor = currDist / prevDist;
transform.localScale *= scaleFactor;
// Limitar escala mínima y máxima
float clampedScale = Mathf.Clamp(
transform.localScale.x, 0.1f, 3.0f);
transform.localScale = Vector3.one * clampedScale;
}
}
// Listener para cuando se detecta un marcador
public class MarkerHandler :
MonoBehaviour, ITrackableEventHandler
{
void OnTrackingFound() {
// Activar modelo 3D y multimedia
modelo3D.SetActive(true);
audioSource.Play();
// Ajustar posición relativa al marcador
modelo3D.transform.localPosition =
new Vector3(0, 0.1f, 0); // 10cm arriba
modelo3D.transform.localScale =
Vector3.one * 0.5f; // 50% escala
}
void OnTrackingLost() {
// Desactivar al perder el tracking
modelo3D.SetActive(false);
audioSource.Stop();
}
}
// Rotar objeto con gesto de rotación
void HandleTwoFingerRotation() {
if (Input.touchCount == 2) {
Touch t0 = Input.GetTouch(0);
Touch t1 = Input.GetTouch(1);
Vector2 prevDir = (t0.position - t0.deltaPosition)
- (t1.position - t1.deltaPosition);
Vector2 currDir = t0.position - t1.position;
float angle = Vector2.SignedAngle(prevDir, currDir);
transform.Rotate(Vector3.up, angle);
}
}
| Plataforma | SDK/Framework | Requisito del Dispositivo | Tienda de Apps |
|---|---|---|---|
| Android | ARCore (Google) | Android 7.0+, procesador compatible con ARCore | Google Play Store |
| iOS | ARKit (Apple) | iPhone 6s+, iPad Pro+, iOS 11+ | App Store |
| Web (WebXR) | AR.js / Three.js / 8th Wall | Navegador compatible con WebXR (Chrome, Safari) | URL directa (sin tienda) |
| HoloLens | Mixed Reality Toolkit (MRTK) | Microsoft HoloLens 2 | Microsoft Store |
| Meta Quest | Passthrough API + Unity | Meta Quest 3 / Quest Pro | Meta Quest Store |
| Snapchat | Lens Studio | Smartphone con Snapchat instalado | Snapchat Lens Explorer |
| Instagram/Facebook | Spark AR Studio (Meta) | Smartphone con Instagram/Facebook | Spark AR Hub |
Para el ámbito académico, una alternativa práctica es la distribución directa del APK:
| Herramienta | Versión | Propósito |
|---|---|---|
| Unity | 2022.3 LTS | Motor de desarrollo principal |
| AR Foundation | 5.1 | Framework de RA multiplataforma |
| Vuforia Engine | 10.18 | Reconocimiento de marcadores |
| Blender | 3.6 | Modelado y texturizado 3D |
| Visual Studio | 2022 | Editor de código C# |
| Android SDK | 33+ | Compilación para Android |
| Figma | Web | Diseño de UI/UX |
| Audacity | 3.4 | Edición de audio |
| Tipo | Cantidad | Formato | Descripción |
|---|---|---|---|
| Modelos 3D | 12 | .fbx | 5 modelos principales + 7 sub-modelos (planetas, organelos) |
| Imágenes 2D | 15 | .png | Etiquetas informativas, diagramas, íconos de UI |
| Audio | 8 | .ogg | 5 narraciones + 3 efectos de sonido |
| Video | 3 | .mp4 | Clips informativos de 30-60 segundos |
| Animaciones | 5 | Unity Anim | Órbitas planetarias, ciclo del motor, flujo de corriente |
El desarrollo del proyecto de Realidad Aumentada permitió integrar conocimientos de modelado 3D, programación en C#, diseño de interfaces móviles y procesos de publicación de aplicaciones. La experiencia de crear una aplicación AR funcional desde cero demostró el potencial de esta tecnología en el ámbito educativo.
Los principales aprendizajes incluyen: la importancia de optimizar modelos 3D para dispositivos móviles, el manejo de interacciones táctiles (gestos) para una experiencia de usuario intuitiva, la correcta integración de elementos multimedia (audio, video, imágenes) en entornos AR, y el conocimiento del proceso completo de publicación en las diferentes plataformas.
La aplicación "UTP AR Explorer" representa un paso hacia la modernización de los métodos de enseñanza en la universidad, demostrando que la Realidad Aumentada puede ser una herramienta accesible y efectiva para mejorar el aprendizaje.
Abre la app UTP AR Explorer directamente en tu navegador. En Android puedes instalarla como aplicacion nativa desde Chrome.
Abrir UTP AR ExplorerCompatible con Android (Chrome) — PWA instalable
Artículo fundacional que define los principios y taxonomía de la Realidad Aumentada.
Documentación oficial de AR Foundation para desarrollo de aplicaciones de RA multiplataforma. docs.unity3d.com
Documentación del SDK de RA de Google para Android. developers.google.com/ar
Documentación del SDK de reconocimiento de imágenes Vuforia. library.vuforia.com
Guía práctica para desarrolladores sobre implementación de aplicaciones de RA con Unity y ARCore/ARKit.
Guía oficial para publicar aplicaciones en Google Play Store. support.google.com