“ECLIPSE: La Búsqueda del Núcleo”: creación de un videojuego 3D en Unity 6
La industria de los videojuegos ha crecido considerablemente gracias a motores gráficos como Unity, permitiendo a estudiantes y desarrolladores crear experiencias interactivas cada vez más completas, en el ámbito académico, el desarrollo de videojuegos integra conocimientos de programación, modelado 3D y diseño de interfaces.
En este artículo se presenta el proceso de desarrollo del videojuego “ECLIPSE: La Búsqueda del Núcleo”, creado como proyecto final de la asignatura de Modelado 3D y Videojuegos, el proyecto fue desarrollado en Unity 6 utilizando herramientas como Starter Assets, Cinemachine, Avaturn y programación en C#.
Además, se explica el contexto del videojuego y el proceso técnico de construcción, incluyendo la implementación de personajes, diseño de interfaces, programación de mecánicas y solución de problemas durante el desarrollo.
Historia y contexto del videojuego
“ECLIPSE: La Búsqueda del Núcleo” es un videojuego de aventura y exploración en tercera persona ambientado en un universo afectado por una anomalía cósmica, después de una fractura dimensional, el núcleo principal de energía del universo se divide en múltiples fragmentos dispersos a través de distintas dimensiones.
Los protagonistas, Andrea y Erik, son exploradores dimensionales encargados de recuperar dichos fragmentos antes de que el universo colapse por completo. Durante la aventura, los jugadores deben atravesar diferentes escenarios hostiles, resolver desafíos de plataformas, evitar enemigos y completar objetivos antes de que el tiempo se agote.
El videojuego fue diseñado para ofrecer una progresión gradual de dificultad, iniciando con niveles tutoriales de exploración libre y avanzando hacia escenarios con enemigos, temporizadores y mecánicas más complejas.
Herramientas utilizadas
Para el desarrollo del videojuego se utilizaron diferentes herramientas y tecnologías especializadas:
| Herramienta | Función |
|---|---|
| Unity | Motor principal de desarrollo |
| Visual Studio | Programación en C# |
| Cinemachine | Sistema avanzado de cámaras |
| TextMeshPro | Interfaz y textos UI |
| Avaturn | Creación de avatares |
| glTFast | Importación de modelos GLB |
| Starter Assets | Sistema de movimiento y cámara |
Configuración inicial del proyecto
El desarrollo inició en Unity Hub mediante la creación de un nuevo proyecto utilizando la plantilla 3D URP (Universal Render Pipeline). Esta configuración permitió obtener mejores efectos de iluminación, sombras optimizadas y compatibilidad con compilaciones tanto de escritorio como WebGL.
Posteriormente se organizó el proyecto utilizando una estructura de carpetas profesional para mantener ordenados todos los recursos del videojuego:
- _Scenes
- _Scripts
- _Models
- _Materials
- _Audio
- _Prefabs
Esta organización facilitó considerablemente el desarrollo y permitió localizar rápidamente cada recurso dentro del proyecto.
- Crear un Nuevo Proyecto
- En la pestaña Projects, haz clic en el botón azul que dice New project en la esquina superior derecha.

2. Elegir la Versión Correcta
- En la parte superior, asegúrate de que el editor seleccionado sea Unity 2022.3 LTS. Usar una versión LTS (Long Term Support) es vital para proyectos universitarios porque te garantiza estabilidad y evita que el juego se rompa un día antes de la entrega.
3. Seleccionar la Plantilla (Template)
- En la lista de plantillas, selecciona 3D (URP) o 3D (Universal Render Pipeline).
Nota: En nuestro GDD definimos que usamos URP. Esto es clave porque nos dará mejores gráficos, sombras más bonitas y un rendimiento optimizado, que es justo lo que necesitamos para que corra bien tanto en el .EXE como en la página web (WebGL).
4. Nombrar y Ubicar el Proyecto
- Project Name: Se agrega un nombre claro y sin caracteres extraños, por ejemplo: ECLIPSE_LaBusquedaDelNucleo.
- Location: Se elige una carpeta en tu disco duro (si tienes un disco de estado sólido o SSD, guárdalo ahí para que Unity cargue mucho más rápido). ¡No lo guardes directamente en la USB de entrega todavía! Trabaja en tu PC y al final copias el proyecto.

5. Inicializar
- Haz clic en el botón Create project. Unity empezará a compilar e importar los paquetes básicos. Esto puede tardar unos minutos, así que es un buen momento para estirarse.

Configuración de personajes y animaciones
Para los protagonistas del videojuego se utilizaron modelos personalizados generados mediante Avaturn y posteriormente adaptados dentro de Unity.
Inicialmente surgieron problemas relacionados con la importación de archivos .glb, ya que Unity no reconocía correctamente las texturas de los modelos, para solucionar este inconveniente se instaló el paquete glTFast, permitiendo importar los personajes con materiales y texturas completas.
Después de importar los modelos, fue necesario configurar el sistema de animación Humanoid dentro del apartado Rig de Unity. Esto permitió conectar correctamente las animaciones del Starter Assets con los personajes personalizados.
Las animaciones de movimiento, carrera y salto fueron obtenidas desde Mixamo y posteriormente integradas dentro del sistema Animator del jugador.



Importación de avatares Avaturn a Unity 6 con texturas
Unity 6 no importa archivos .glb de Avaturn con texturas automáticamente, el método nativo (Extract Textures) no funciona correctamente con este formato.
Solución: paquete glTFast
1. Instalar glTFast
- Window → Package Manager
- Clic en + → Add package by name
- Ingresar: com.unity.cloud.gltfast
- Instalar
2. Exportar el avatar
- Descargar el avatar desde Avaturn en formato .glb
3. Importar a Unity
- Arrastrar el archivo .glb directamente a la carpeta Assets/_ModelsProject en el panel Project
- Unity lo procesa automáticamente con glTFast
4. Configurar el Rig
- Clic en el archivo en el panel Project
- Inspector → pestaña Rig
- Animation Type → Humanoid
- Avatar Definition → Create From This Model
- Clic en Apply
5. Resultado
- El modelo aparece en escena con texturas y materiales completos sin configuración adicional



Cómo revisar el Rig en el .fbx (Última validación)
Antes de darle Play, asegúrate de que el “traductor de huesos” esté activo:
- Ve a tu carpeta de proyectos abajo y haz un solo clic en tu archivo .fbx pintado (Erik_Rigged).
- Mira el Inspector a la derecha y haz clic en la pestaña Rig.
- Verifica que Animation Type diga Humanoid.
- Si cambiaste algo, dale a Apply.
- Despliega el archivo .fbx dándole a su flechita gris abajo en el proyecto y confirma que aparezca el icono del Avatar (la silueta humana blanca con cuadro azul).



Conectar el “Cerebro” de Animación:
- Haz clic en el objeto principal PlayerArmature (el papá de todos arriba en la jerarquía).
- Mira su componente Animator en el Inspector (derecha).
- En la casilla Avatar, haz clic en el pequeño círculo de la derecha. Se abrirá una lista; busca y selecciona el avatar de tu personaje (el que creamos en el paso anterior, ej: Erik_RiggedAvatar).
- Asegúrate de que la casilla Controller tenga asignado el archivo de animación del Starter Assets (si se desconfiguró, arrastra el archivo .controller desde la carpeta StarterAssets/ThirdPersonController/Animations).

Darle tamaño imponente al Título y los Botones
Como tu pantalla ahora es de 1920×1080, los textos y botones necesitan números mucho más grandes para verse bien:
Para el Título (Texto_Titulo):
- Selecciónalo y en su Rect Transform ponle: Width: 1200 y Height: 200.
- En Pos Y ponle 350 (para subirlo bastante).
- Baja a las opciones de TextMeshPro y súbele el Font Size (Tamaño de letra) a 90 o 100.
Para los Botones (Haz esto uno por uno o selecciónalos todos a la vez):
- En su Rect Transform ponles un tamaño decente: Width: 500 y Height: 80.
- Acomódalos en fila en el centro usando la herramienta de mover (W).
Entra al texto hijo de cada botón (Text TMP) y súbele el Font Size a un tamaño entre 30 y 40 para que las letras se lean perfectas desde lejos.

Importación de Starter Assets
Uno de los primeros pasos técnicos fue importar el paquete oficial Starter Assets – Third Person Character Controller desde la Unity Asset Store.
Este paquete permitió implementar un sistema completo de movimiento en tercera persona sin necesidad de programar desde cero funcionalidades como:
- Movimiento con teclado WASD
- Rotación de cámara con mouse
- Salto
- Sistema de gravedad
- Animaciones base
- Cámara en tercera persona
Durante la instalación fue necesario activar el nuevo sistema de entradas de Unity (Input System), lo que obligó a reiniciar el editor para que los controles funcionaran correctamente.




Construcción de niveles
Nivel 1 – La Ruina Antigua
El primer nivel funciona como tutorial del videojuego. Está ambientado en un templo antiguo rodeado de vegetación tropical.
En este escenario el jugador aprende:
- Movimiento básico
- Uso de cámara
- Recolección de objetos
- Exploración
El nivel no cuenta con temporizador ni enemigos, permitiendo una curva de aprendizaje progresiva.
Nivel 2 – El Lago Perdido
El segundo nivel introduce mecánicas de plataformas y saltos sobre cuerpos de agua.
El jugador debe recolectar reliquias antes de que el temporizador llegue a cero. Además, se implementaron checkpoints para evitar reiniciar completamente el nivel al caer al agua.
Nivel 3 – La Fábrica Oscura
Este nivel cambia completamente la ambientación hacia un entorno industrial abandonado.
Aquí se introducen enemigos y mayor presión sobre el jugador, aumentando considerablemente la dificultad del juego.
Nivel 4 – El Núcleo Final
El último escenario representa una dimensión colapsando debido a la destrucción del núcleo principal.
Este nivel combina todas las mecánicas aprendidas anteriormente:
- Plataformas
- Temporizador
- Enemigos
- Exploración
- Recolección
PASO A PASO DEL DESARROLLO TÉCNICO EN UNITY
A continuación, se detalla la implementación práctica de los sistemas transversales más importantes del juego:
Paso 1: Configuración de la Interfaz (UI) y Adaptabilidad de Pantalla
Diseñar un menú principal estático causa problemas visuales en monitores modernos. El proceso correcto para evitarlo fue:
- En la jerarquía del Canvas, se modificó el componente Canvas Scaler.
- Se cambió el modo de Constant Pixel Size a Scale With Screen Size.
- Se fijó la resolución de referencia estándar en 1920×1080 píxeles con un factor de ajuste (Match) total orientado a la altura (Height = 1).
- Para el fondo del menú, se utilizó un componente Raw Image (Fondo_Bueno) para cargar directamente texturas de alta definición de la galaxia, aplicando un anclaje (Stretch) con la combinación de teclas
Alt + Clicen el cuadro expansor inferior derecho para cubrir el monitor completamente.
Paso2: Arquitectura de Escenas y Programación del MenuManager
Para dar funcionalidad a los 4 botones obligatorios del menú principal (Iniciar Aventura, Selección de Niveles, Créditos, Salir) , se creó un script en C# llamado MenuManager.cs
using UnityEngine;
using UnityEngine.SceneManagement; // Librería indispensable para el cambio de escenas
public class MenuManager : MonoBehaviour
{
// Carga la primera escena del juego (Nivel 1)
public void IniciarAventura()
{
SceneManager.LoadScene(“Nivel1”);
}
// Cierra la aplicación de manera definitiva en el build final
public void SalirDelJuego()
{
Debug.Log("Saliendo del juego de forma segura...");
Application.Quit();
}
}
Conexión en el motor: Este script se adjuntó a un objeto vacío de la escena llamado _CerebroMenu. Posteriormente, en los eventos de interacción On Click() de los respectivos botones de la UI, se arrastró el objeto contenedor y se enlazaron las funciones públicas correspondientes.
Paso 3: Registro en el Build Settings
El código de salto entre escenas falla si el motor no tiene permisos de compilación explícitos. El paso técnico aplicado fue:
- Navegar a
File > Build Profiles(o Build Settings). - Arrastrar en orden jerárquico las escenas del juego al contenedor Scenes in Build.
- Se indexó la escena del menú principal (
MainMenu) con el valor lógico 0 y elNivel1con el valor 1, asegurando una transición fluida al iniciar la aventura.
Paso 4: Sistema de Selección de Personajes y Persistencia de Datos
Para permitir que el usuario decida con qué explorador jugar en cada nivel, se implementó un sistema de persistencia simple basado en la clase nativa de Unity PlayerPrefs:
- Se creó el script
SelectorPersonaje.csasociado a los botones de selección del Menú, guardando cadenas de texto identificadoras (PlayerPrefs.SetString("PersonajeSeleccionado", "Erik");). - En cada nivel, se diseñó un objeto
ControladorSpawnque lee el registro de memoria al cargar la escena (PlayerPrefs.GetString) para activar el GameObject del personaje elegido (Andrea o Erik) y desactivar el secundario de manera automatizada.
Implementación de la cámara y Cinemachine
La cámara del videojuego fue desarrollada utilizando Cinemachine, una herramienta avanzada de Unity para sistemas de seguimiento y cámaras dinámicas.
Se configuró un objeto denominado PlayerFollowCamera, el cual seguía automáticamente al jugador mientras permitía rotación libre mediante el mouse. Para lograrlo se asignó el objeto PlayerCameraRoot dentro de las propiedades Follow y Look At del componente Cinemachine Virtual Camera.
Esto permitió obtener una experiencia de cámara mucho más fluida y profesional.
Resultados obtenidos
El desarrollo del videojuego permitió integrar exitosamente múltiples áreas del desarrollo interactivo:
- Diseño 3D
- Programación en C#
- Sistemas de interfaz
- Cámaras dinámicas
- Gestión de escenas
- Mecánicas de videojuegos
- Animaciones
- Sistemas de puntuación
- Diseño de niveles
El resultado final fue un videojuego funcional en tercera persona con múltiples niveles y una narrativa coherente.
Créditos
Autor: Andrea Natalia Bolivar Duran y Erik Alessandro Galan Munevar
Editor: Magister Ingeniero Carlos Iván Pinzón Romero
Código: UCMV-10
Universidad: Universidad Central
Referencias:
