Volver al portfolio

Unity · C# · VR · Oculus Rift

Proyecto Sonrisas VR

Demo funcional VR para público infantil con enfoque terapéutico, educativo y lúdico, basada en escenas inmersivas, interacción con objetos, objetivos guiados, NPCs y retos con lanzamiento de tomates.

Ver GitHub Build próximamente

Resumen técnico

Proyecto Sonrisas VR es una demo funcional de realidad virtual desarrollada en Unity con C#. Su objetivo es crear una experiencia inmersiva accesible, clara y amable para un público infantil, combinando interacción, exploración guiada, feedback audiovisual y pequeños retos dentro del entorno virtual.

El proyecto incluye varias escenas, interacción mediante controladores, UI en mundo 3D, audio espacial, partículas, animaciones, NPCs, objetivos, menú, pausa y enemigos tipo cartel que pueden ser derrotados lanzándoles tomates.

Enfoque de experiencia

La experiencia combina varias escenas, interacción mediante controladores, objetos manipulables, objetivos guiados, NPCs y enemigos representados como carteles que el jugador puede derrotar lanzándoles tomates.

Accesibilidad y confort

El proyecto se plantea para Oculus Rift con build objetivo para Windows. Al tratarse de VR, prioriza comodidad, escala, lectura clara del entorno, feedback comprensible y reducción de fricción en los controles.

Mi contribución

  • Diseño e integración de una experiencia VR orientada a público infantil con enfoque terapéutico, educativo y lúdico.
  • Preparación de escenas inmersivas, objetivos, elementos guiados, NPCs y flujo de experiencia.
  • Implementación y documentación de interacción VR, objetos manipulables, ray interaction, UI en mundo 3D y feedback.
  • Trabajo técnico con splines, raíles y generación de props para recorridos, transiciones y organización de escenas.

Sistemas implementados

  • VR Rig y configuración para Oculus Rift.
  • Movimiento continuo, giro suave y giro por pasos.
  • Interacción con manos/controladores, agarre, soltado y activación de objetos.
  • Ray interaction y UI en mundo 3D.
  • Audio espacial, feedback visual, feedback sonoro, partículas y animaciones.
  • NPCs, objetivos, escenas, menús y pausa.
  • Carteles enemigos derrotables con lanzamiento de tomates.
  • Splines, raíles, props y recorridos guiados.

Características principales

  • Experiencia VR enfocada a público infantil.
  • Enfoque terapéutico, educativo y lúdico.
  • Soporte para Oculus Rift y build objetivo para Windows.
  • VR Rig, movimiento continuo, giro suave y giro por pasos.
  • Interacción con manos/controladores: agarrar, soltar y activar objetos.
  • Ray interaction y UI integrada en mundo 3D.
  • Audio espacial, feedback visual y sonoro, partículas y animaciones.
  • NPCs, elementos guiados, sistema de objetivos, sistema de escenas, menú y pausa.
  • Enemigos tipo cartel derrotables mediante lanzamiento de tomates.
  • Consideraciones de accesibilidad, escala, confort y claridad de interacción.

Flujo técnico previsto

En esta sección se recogen las próximas actualizaciones previstas para el proyecto en base a la especificación técnica.

  1. 01VR RigConfigurar VR Rig, tracking de cabeza/controladores, locomoción continua y modos de giro.
  2. 02InteractionPermitir agarrar, soltar, activar objetos y usar ray interaction sobre elementos de la escena.
  3. 03Scene FlowGestionar escenas, objetivos, NPCs, elementos guiados, portales, splines y raíles.
  4. 04FeedbackAplicar feedback visual, sonoro, partículas, UI en mundo 3D y ajustes de confort.

Arquitectura

La lógica principal se organiza alrededor de selección de escenas, transiciones, raíles, splines, generación de props y sistemas de recorrido guiado aplicados a una experiencia VR.

  • LevelSelector — selección de escenas, niveles o experiencias dentro del flujo VR.
  • MovementToPortal — movimiento o transición hacia portales y puntos de cambio de escena.
  • SplineEditor — edición y configuración de splines para recorridos y elementos guiados.
  • PropsRandomGenerator — generación aleatoria de props o elementos de escena.
  • Rail — definición de raíles, rutas o trayectorias dentro del entorno.
  • RailPositionerManager — gestión de posiciones sobre raíles.
  • RailSelectorManagement — selección y control de raíles.
  • SplineAdvanced — lógica avanzada de splines.
  • SplineFollower — seguimiento de trayectorias spline.
  • SplineMesh — representación o generación de mallas basadas en spline.

Tecnologías

  • Unity
  • C#
  • XR Interaction Toolkit
  • OpenXR
  • Oculus Integration
  • Rigidbody / Collider
  • World Space UI
  • AudioSource
  • Particle System
  • Lighting
  • Post Processing
  • Git LFS

Visuales previstos

El repositorio deja preparados nombres previstos para logo, portada, banner y miniaturas centradas en escena VR, interacción con objetos, carteles/tomates y diseño de confort.

  • proyectosonrisas-logo.png
  • proyectosonrisas-cover.png
  • proyectosonrisas-banner.png
  • proyectosonrisas-thumbnail-01-vr-scene.png
  • proyectosonrisas-thumbnail-02-object-interaction.png
  • proyectosonrisas-thumbnail-03-tomato-targets.png
  • proyectosonrisas-thumbnail-04-comfort-design.png

Estado y próximos pasos

Estado actual Demo funcional VR archivada

Actualmente no hay una release pública disponible; la build queda marcada como próxima publicación.

  • Añadir más escenas.
  • Añadir más objetos interactivos.
  • Mejorar interacción con manos.
  • Añadir tutorial de controles.
  • Añadir opciones de confort.
  • Añadir locomoción alternativa.
  • Mejorar feedback visual.
  • Mejorar audio espacial.
  • Añadir guardado de progreso y más elementos narrativos.
  • Optimizar rendimiento en VR.

Ruta recomendada de revisión

Para revisar técnicamente el proyecto, conviene empezar por los sistemas de selección de escena, transición, splines, raíles y generación de elementos.

  • SplineEditor.csEdición y configuración de splines para recorridos y elementos guiados.
  • PropsRandomGenerator.csGeneración aleatoria de props o elementos dentro de la experiencia.
  • Rail.csDefinición de raíles o rutas de movimiento.
  • RailPositionerManager.csGestión de posiciones sobre raíles.
  • RailSelectorManagement.csSelección y control de raíles.
  • SplineAdvanced.csLógica avanzada de splines.
  • SplineFollower.csSeguimiento de trayectorias spline.
  • SplineMesh.csGeneración o representación de mallas basadas en spline.

Aprendizajes

  • Configuración de un entorno VR en Unity, incluyendo VR Rig, controladores, locomoción y adaptación de la interacción a realidad virtual.
  • Interacción con objetos 3D, UI en mundo 3D, audio espacial y feedback visual/sonoro específico para experiencias inmersivas.
  • Diseño de una experiencia orientada a público infantil teniendo en cuenta accesibilidad, confort, claridad de interacción y objetivos guiados.
  • Uso de splines, raíles y generación de props aplicados a recorridos, movimiento guiado y organización de escenas VR.