El Proyecto Garaje 3D es una experiencia interactiva desarrollada en Unity durante el curso 2023/24, que combina modelado 3D desde cero, texturas personalizadas, iluminación avanzada e interactividad en tiempo real para crear un entorno realista e inmersivo. Incluye elementos como una grúa controlada por el usuario, simulación física del gancho, modificación procedimental de objetos y control total de la iluminación mediante una interfaz gráfica. Este proyecto no solo destaca por su calidad visual, sino también por su enfoque didáctico, permitiendo a los desarrolladores aplicar conocimientos clave en gráficos por computadora, simulación y videojuegos.
Todas las texturas presentes en la escena han sido creadas, importadas y aplicadas manualmente, cuidando la coherencia visual y el nivel de detalle. Muchos de los objetos han sido modelados utilizando un add-on basado en CSG (Constructive Solid Geometry), lo que permitió construir geometrías complejas combinando formas básicas directamente dentro de la escena. Además, algunos elementos como los barriles han sido generados de forma procedural mediante código, lo que permite modificar características como la altura o el tamaño de los extremos simplemente ajustando parámetros. Incluso las abolladuras de los barriles han sido creadas manipulando directamente la geometría desde el propio código, aportando mayor realismo y control sobre el resultado final.
Los movimientos de la plataforma han sido programados en C#, gestionando su comportamiento de forma precisa y controlada. Para lograr que los tirantes se movieran correctamente junto con la plataforma, se implementó una jerarquía de objetos cuidadosamente estructurada. Esta jerarquía permite que todos los elementos involucrados —incluidos los tirantes y otros componentes— asciendan de forma sincronizada. Para conseguir los movimientos deseados, fue necesario crear objetos adicionales que actuaran como padres de los objetos reales. Estos objetos intermedios fueron configurados con ejes de coordenadas personalizados y ajustados de forma específica, lo que permitió obtener rotaciones y desplazamientos más complejos que serían difíciles de lograr directamente desde los modelos principales. Esta solución facilitó un control total sobre la animación y garantizó un resultado visual coherente.
Se ha programado una grúa con movimientos funcionales, incluyendo la posibilidad de subir y bajar el gancho de forma precisa. El gancho ha sido modelado mediante CSG (Constructive Solid Geometry), utilizando la combinación de formas básicas. Para implementar el movimiento vertical, se ha empleado una jerarquía de objetos junto con una estructura de pivotes. Esto permite simular el descenso del gancho escalando de forma específica dos cilindros fijos que forman parte del sistema. Además, se ha aplicado un algoritmo basado en un objeto pivote al que el gancho sigue con un leve retardo, generando así un efecto de inercia realista que aporta naturalidad al movimiento general de la grúa.
Se ha implementado un algoritmo para el control dinámico de las luces en la escena, permitiendo ajustar tanto la velocidad de parpadeo como la intensidad de cada fuente de luz. Este sistema ofrece una mayor flexibilidad a la hora de generar ambientes personalizados, ya que permite modificar en tiempo real parámetros como la frecuencia del parpadeo o la luminosidad, consiguiendo efectos visuales más ricos y adaptables a distintas situaciones dentro del entorno interactivo.
1. Modelado 3D desde cero: Creación manual de todos los objetos del garaje, incluyendo una grúa detallada, una bicicleta y un gancho.
2. Texturas personalizadas: Aplicación de materiales realistas diseñados a medida, algunos interactivos mediante shaders.
3. Simulación de materiales dinámicos: Suelo con aceite que reacciona a la iluminación del entorno.
4. Modificación procedimental: Alteración de la geometría de un coche mediante grafos de Unity para lograr efectos realistas.
5. Iluminación híbrida optimizada: Combinación de luces en tiempo real con iluminación precalculada para mejorar el rendimiento.
6. Control de luces desde la interfaz: Permite ajustar la intensidad, encender/apagar y activar efectos dinámicos como parpadeos.
7. Movimiento interactivo de la grúa: Sistema de control manual para mover la grúa de forma intuitiva dentro del entorno.
8. Física realista en el gancho: Simulación de inercia y movimiento natural del gancho al interactuar con la grúa.
9. Puntos de interés en la interfaz: Elementos que guían al usuario hacia las interacciones clave del entorno.
10. Barriles con geometría editable: Objetos en la escena que pueden ser modificados en tiempo real para mayor inmersión.
Lenguajes de programación
#C#
Tecnologías
#UNITY