01/11/2021
Adentrarse en el desarrollo de videojuegos con Unreal Engine es una aventura emocionante, pero para construir mundos y mecánicas complejas, es fundamental dominar sus cimientos. El concepto más importante que debes entender es el de las clases. Una clase es, en esencia, una plantilla o un molde a partir del cual se crean todos los objetos y lógicas de tu juego. Desde el personaje que controlas hasta un simple cofre del tesoro, todo en Unreal Engine comienza como una clase. En este artículo, desglosaremos todo lo que necesitas saber para crear tus propias clases, ya sea a través del sistema visual de Blueprints o del potente lenguaje de programación C++.

¿Qué es Exactamente una Clase en Unreal Engine?
Imagina que estás construyendo con bloques de LEGO. Antes de tener un coche o un castillo, tienes las instrucciones y los tipos de piezas. En Unreal Engine, una clase es como ese manual de instrucciones. Define las propiedades (variables) y los comportamientos (funciones) que tendrá un objeto. Por ejemplo, una clase `Personaje` podría tener propiedades como `Salud`, `Velocidad` y `Munición`, y comportamientos como `Saltar()`, `Disparar()` y `RecibirDaño()`. Cuando colocas un personaje en tu nivel del juego, estás creando una "instancia" de esa clase, un objeto único basado en esa plantilla original.
Todo en el motor se basa en este sistema jerárquico. Un `Personaje` es un tipo especializado de `Pawn` (una entidad que puede ser controlada), que a su vez es un tipo especializado de `Actor` (cualquier objeto que se puede colocar en el mundo del juego). Entender esta relación de herencia es clave para tomar decisiones correctas al crear tus propias clases.
Blueprint vs. C++: La Gran Decisión
Unreal Engine ofrece dos métodos principales para crear clases, cada uno con sus propias fortalezas y debilidades. La elección entre ellos dependerá de la complejidad de la tarea, tu nivel de experiencia y los requisitos de rendimiento de tu proyecto.
Clases Blueprint
Los Blueprint son el sistema de scripting visual de Unreal Engine. Permiten crear lógica de juego completa sin escribir una sola línea de código. En su lugar, conectas nodos visuales que representan funciones, eventos y variables. Es un sistema increíblemente poderoso y accesible, ideal para:
- Prototipado rápido de mecánicas.
- Tareas de diseño de niveles y scripting de eventos.
- Artistas y diseñadores que quieren implementar su propia lógica sin depender de un programador.
- Lógicas que no requieren un rendimiento extremo.
Clases C++
Crear una clase en C++ te da acceso directo al núcleo del motor. Escribirás código en archivos de texto (.h y .cpp) utilizando un entorno de desarrollo como Visual Studio. Este método ofrece el máximo rendimiento y control, siendo la opción preferida para:
- Sistemas centrales del juego (gestión de inventario, inteligencia artificial compleja, sistemas de red).
- Cálculos matemáticos pesados o algoritmos que deben ejecutarse miles de veces por segundo.
- Crear la base sobre la cual los diseñadores podrán construir clases Blueprint más específicas.
- Exponer funcionalidades personalizadas al editor de Blueprints.
Tabla Comparativa: Blueprint vs. C++
| Característica | Blueprint | C++ |
|---|---|---|
| Velocidad de Iteración | Muy Rápida (cambios en tiempo real) | Lenta (requiere compilación) |
| Rendimiento | Bueno, pero más lento que C++ | Óptimo (código nativo) |
| Facilidad de Uso | Fácil (visual e intuitivo) | Difícil (requiere conocimientos de programación) |
| Acceso al Motor | Limitado a lo expuesto en Blueprints | Completo |
| Ideal Para | Diseñadores, artistas, prototipado | Programadores, sistemas complejos |
El Visor de Clases: Tu Mapa de la Genética del Juego
Antes de crear tu primera clase, es útil familiarizarse con el Visor de Clases. Esta herramienta te muestra la jerarquía completa de todas las clases disponibles en el motor y en tu proyecto. Es como ver el árbol genealógico de tu juego.
Para abrirlo, ve al menú principal de Unreal Engine y selecciona Herramientas > Visor de Clases (Tools > Class Viewer).

Dentro de esta ventana, podrás explorar cómo una clase hereda de otra. Verás que `Character` hereda de `Pawn`, `Pawn` hereda de `Actor`, y `Actor` hereda de `Object`. Esta visualización es crucial para entender de dónde vienen las funcionalidades básicas y para decidir qué clase base es la más apropiada para tus necesidades.
Guía Práctica: Creando una Clase Blueprint
Crear una clase Blueprint es un proceso sencillo y directo que se realiza principalmente desde el Navegador de Contenido (Content Browser).
- Abre el Navegador de Contenido: Busca la carpeta donde quieres guardar tu nueva clase para mantener el proyecto organizado.
- Añadir Nuevo: Haz clic en el botón verde "Add New" o haz clic derecho en un espacio vacío del navegador de contenido.
- Selecciona "Blueprint Class": Esto abrirá una nueva ventana llamada "Pick Parent Class" (Elegir Clase Padre).
- Elige una Clase Padre: Este es el paso más importante. La clase padre que elijas determinará la funcionalidad base que tendrá tu nuevo Blueprint. Algunas opciones comunes son:
- Actor: La clase más básica para cualquier objeto que necesite existir en el nivel, tener una posición, rotación y escala. Ideal para objetos como puertas, cofres, proyectiles o interruptores.
- Pawn: Un tipo de Actor que puede ser "poseído" por un controlador, ya sea un jugador o una IA. Es la base para cualquier entidad controlable que no necesite caminar o correr, como un vehículo o una torreta.
- Character: Una subclase de Pawn que ya incluye funcionalidades para el movimiento humanoide, como caminar, correr, saltar y moverse en red. Es el punto de partida ideal para tu personaje jugable o enemigos con IA.
- Actor Component: No es un objeto que se coloca en el mundo, sino un componente que se puede añadir a cualquier Actor para darle una nueva funcionalidad. Por ejemplo, un componente de "Inventario" o un componente de "Salud".
- Nombra tu Blueprint: Una vez seleccionada la clase padre, Unreal te pedirá que le des un nombre a tu nuevo archivo. Una buena práctica es usar el prefijo `BP_` seguido de un nombre descriptivo (ej. `BP_CofreDelTesoro`).
¡Y listo! Al hacer doble clic en tu nuevo archivo Blueprint, se abrirá el Editor de Blueprints, donde podrás añadir componentes, crear variables y programar toda su lógica mediante nodos.
Guía Práctica: Creando una Clase C++
Si has decidido que necesitas el rendimiento y el control de C++, el proceso es un poco diferente e implica configurar un entorno de programación.
- Abre el Asistente de C++: En el menú principal del editor, ve a Herramientas > Nueva Clase C++... (Tools > New C++ Class...).
- Elige una Clase Padre: Al igual que con los Blueprints, verás la ventana para elegir una clase padre. La lógica es la misma: selecciona la clase que te proporcione la funcionalidad base que necesitas. Si no estás seguro, Actor es casi siempre un buen punto de partida.
- Nombra tu Clase: Dale un nombre a tu clase. Las convenciones de nomenclatura en C++ sugieren usar un prefijo según el tipo. Por ejemplo, `A` para clases que heredan de Actor (ej. `ACofreDelTesoro`), `U` para las que heredan de Object (ej. `UInventarioComponent`).
- Selecciona la Ruta: Elige si la clase será pública o privada (generalmente pública) y confirma la ruta donde se crearán los archivos. Haz clic en "Create Class".
- Compilación: Unreal Engine generará automáticamente dos archivos: un archivo de cabecera (`.h`) y un archivo de código fuente (`.cpp`). Luego, intentará abrir estos archivos en tu IDE configurado (normalmente Visual Studio).
- Escribe tu Código y Compila: Ahora puedes añadir tus propias variables y funciones en los archivos `.h` y `.cpp`. Una vez que hayas hecho cambios en el código, deberás compilar tu proyecto para que el editor de Unreal los reconozca. Puedes hacerlo cerrando el editor y compilando desde Visual Studio, o más convenientemente, haciendo clic en el botón "Compile" en la barra de herramientas principal del editor de Unreal.
Después de una compilación exitosa, tu nueva clase C++ aparecerá en el Visor de Clases y podrás crear Blueprints basados en ella para que los diseñadores puedan modificar sus propiedades fácilmente.

Preguntas Frecuentes (FAQ)
¿Qué clase padre debo elegir si no estoy seguro?
Si el objeto necesita estar físicamente en el mundo del juego, Actor es la opción más segura y versátil. Te proporciona una base para añadir cualquier tipo de componente y lógica. Si sabes que será algo que un jugador o una IA controlará, entonces `Pawn` o `Character` son mejores opciones.
¿Puedo cambiar la clase padre de un Blueprint después de haberlo creado?
Sí. Dentro del Editor de Blueprints, puedes ir a "File > Reparent Blueprint" y seleccionar una nueva clase padre. Sin embargo, ten cuidado, ya que esto puede romper la lógica existente si la nueva clase padre no tiene las mismas funciones o variables que la anterior.
¿Por qué mi nueva clase C++ no aparece en el editor para poder usarla?
La razón más común es que no has compilado el código. Después de crear una clase C++ o modificar su código, siempre debes compilar. Presiona el botón "Compile" en el editor de Unreal Engine. Si hay errores de compilación, el Log de Salida (Output Log) te dirá qué está mal en tu código.
¿Es mejor usar solo Blueprints o solo C++?
El enfoque más potente y comúnmente utilizado en la industria es un híbrido. Los programadores crean sistemas robustos y de alto rendimiento en C++, y luego exponen funcionalidades y variables a Blueprints. Esto permite a los diseñadores y artistas utilizar esos sistemas para construir el juego de forma rápida y visual, obteniendo lo mejor de ambos mundos.
Si quieres conocer otros artículos parecidos a Cómo Crear una Clase en Unreal Engine puedes visitar la categoría Juegos.
