Presentación

Unreal Engine es un motor de creación 3D en tiempo real desarrollado por Epic Games.

Es conocido principalmente como motor de videojuegos, pero su campo de uso es hoy mucho más amplio.

Unreal Engine puede utilizarse especialmente para producir:

  • videojuegos;
  • mundos abiertos;
  • experiencias multijugador;
  • aplicaciones interactivas;
  • cinemáticas;
  • películas de animación;
  • efectos visuales;
  • decorados virtuales;
  • visualizaciones arquitectónicas;
  • configuradores de automóviles;
  • simulaciones;
  • formaciones inmersivas;
  • experiencias de realidad virtual o aumentada;
  • gemelos digitales;
  • eventos retransmitidos en directo.

El motor reúne dentro de un mismo entorno:

  • programación;
  • renderizado 3D;
  • gestión de escenas;
  • animación;
  • física;
  • inteligencia artificial;
  • audio;
  • interfaces;
  • efectos visuales;
  • herramientas cinematográficas;
  • construcción de mundos;
  • exportación a varias plataformas.

Esta integración permite diseñar un proyecto interactivo sin tener que reconstruir por separado todos los sistemas fundamentales.

Unreal Engine ya proporciona los elementos necesarios para gestionar:

  • personajes;
  • controladores;
  • cámaras;
  • entradas de teclado, ratón y mando;
  • colisiones;
  • gravedad;
  • animaciones;
  • interfaces;
  • niveles;
  • partidas guardadas;
  • red;
  • compilación;
  • publicación.

El motor puede ser utilizado por programadores, artistas 3D, animadores, diseñadores, arquitectos, realizadores, técnicos de efectos visuales y especialistas en simulación.

Los proyectos pueden desarrollarse mediante el lenguaje C++, el sistema de programación visual Blueprints o una combinación de ambos.

Unreal Engine también se distingue por el acceso a su código fuente.

El motor no es open source en el sentido de una licencia libre como MIT, GPL o Apache, pero Epic permite a los usuarios autorizados acceder a todo su código C++.

De este modo pueden:

  • estudiar su funcionamiento;
  • modificar determinados sistemas;
  • crear su propia versión;
  • desarrollar plugins;
  • adaptar el motor a necesidades específicas;
  • proponer correcciones.

Estas posibilidades siguen estando reguladas por la licencia propietaria de Epic Games.

En el momento de la verificación, Unreal Engine 5.8 es la versión principal actual.

Epic la presenta como la última gran versión planificada de la generación Unreal Engine 5 antes de una transición progresiva hacia Unreal Engine 6.

Unreal Engine está disponible en Windows, macOS y Linux.

Estas plataformas corresponden a los sistemas en los que puede funcionar el editor.

Los proyectos creados pueden después dirigirse a otros dispositivos y sistemas, entre ellos Android, iOS, consolas y distintas plataformas XR.

La instalación, los proyectos y las cachés pueden ocupar mucho espacio en disco.

Unreal Engine también requiere un ordenador relativamente potente, especialmente para utilizar sus funciones avanzadas de renderizado, mundos abiertos, personajes realistas o herramientas cinematográficas.

Funcionalidades

Creación de juegos y aplicaciones interactivas

Unreal Engine proporciona una arquitectura completa para desarrollar experiencias interactivas.

Un proyecto puede contener:

  • varios niveles;
  • personajes;
  • vehículos;
  • objetos interactivos;
  • interfaces;
  • sistemas de juego;
  • animaciones;
  • sonidos;
  • efectos;
  • datos;
  • scripts;
  • recursos importados.

El motor gestiona especialmente:

  • colisiones;
  • física;
  • entradas del usuario;
  • cámaras;
  • eventos;
  • componentes;
  • clases;
  • partidas guardadas;
  • carga de niveles;
  • multijugador;
  • replicación de red;
  • gestión de plataformas objetivo.

Unreal Engine puede utilizarse para crear:

  • un juego de plataformas;
  • un juego de rol;
  • un juego de estrategia;
  • un juego de carreras;
  • un shooter;
  • una simulación;
  • una experiencia narrativa;
  • un juego móvil;
  • una experiencia multijugador;
  • un prototipo experimental.

No impone ningún género concreto.

El motor proporciona plantillas de proyecto que permiten empezar con una estructura ya configurada, por ejemplo:

  • personaje en tercera persona;
  • vista en primera persona;
  • vehículo;
  • realidad virtual;
  • proyecto arquitectónico;
  • escena cinematográfica.

Estas plantillas aceleran la toma de contacto, pero un proyecto serio necesita después una organización adaptada a sus propias necesidades.

Interfaz, proyectos y recursos

El editor de Unreal Engine está organizado alrededor de varios espacios de trabajo.

El viewport muestra la escena en tiempo real.

Permite:

  • colocar objetos;
  • mover elementos;
  • modificar cámaras;
  • visualizar luces;
  • probar colisiones;
  • ejecutar el proyecto;
  • observar efectos;
  • navegar por el mundo.

El Content Browser agrupa los recursos del proyecto:

  • modelos 3D;
  • texturas;
  • materiales;
  • sonidos;
  • animaciones;
  • Blueprints;
  • niveles;
  • datos;
  • efectos;
  • interfaces.

Cada recurso se guarda como un asset de Unreal.

Esta organización centralizada facilita la integración entre los distintos sistemas, pero exige mantener una estructura de carpetas coherente.

Un proyecto mal organizado puede acumular rápidamente:

  • archivos no utilizados;
  • duplicados;
  • referencias rotas;
  • nombres incomprensibles;
  • versiones concurrentes;
  • dependencias difíciles de identificar.

Unreal Engine también contiene numerosos editores especializados accesibles desde el proyecto, entre ellos:

  • editor de materiales;
  • editor de Blueprints;
  • editor de animaciones;
  • editor Niagara;
  • editor MetaSounds;
  • Sequencer;
  • Control Rig;
  • herramientas de terreno;
  • herramientas PCG;
  • editor de interfaces.

Esta riqueza evita tener que salir constantemente de la aplicación, pero también aumenta la curva de aprendizaje.

Blueprints y programación visual

Blueprints es el sistema de programación visual de Unreal Engine.

Permite construir lógica conectando nodos.

Estos nodos pueden representar:

  • un evento;
  • una condición;
  • una función;
  • una variable;
  • un cálculo;
  • un bucle;
  • una acción;
  • una referencia a un objeto;
  • una comunicación entre varios sistemas.

Blueprints puede utilizarse para crear:

  • una puerta interactiva;
  • un inventario;
  • un sistema de diálogo;
  • una interfaz;
  • una cámara;
  • un personaje;
  • una mecánica de combate;
  • una misión;
  • un prototipo completo;
  • una herramienta destinada al equipo.

La programación visual hace que el motor resulte accesible para personas que todavía no dominan C++.

También permite que artistas y diseñadores modifiquen comportamientos sin pedir cada cambio a un programador.

Sin embargo, Blueprints sigue siendo una verdadera forma de programación.

Para utilizarlo correctamente, es necesario comprender:

  • variables;
  • tipos de datos;
  • funciones;
  • eventos;
  • clases;
  • referencias;
  • arrays;
  • estructuras;
  • componentes;
  • dependencias;
  • herencia.

Un Blueprint complejo puede resultar difícil de leer cuando contiene demasiados nodos o conexiones.

En ese caso, es necesario:

  • dividir la lógica en funciones;
  • crear componentes reutilizables;
  • utilizar interfaces;
  • limitar las dependencias;
  • nombrar claramente las variables;
  • documentar los sistemas importantes.

Blueprints resulta muy adecuado para prototipado, interacciones y herramientas de producción.

Para determinados sistemas pesados o ejecutados con mucha frecuencia, C++ sigue siendo más apropiado.

Programación en C++

Unreal Engine utiliza principalmente el lenguaje C++ para su programación nativa.

C++ permite crear:

  • sistemas de gameplay;
  • clases personalizadas;
  • componentes;
  • plugins;
  • herramientas;
  • sistemas de red;
  • integraciones con servicios externos;
  • modificaciones profundas del motor.

El framework de Unreal añade sus propios conceptos a C++, entre ellos:

  • UObject;
  • Actor;
  • Component;
  • Pawn;
  • Character;
  • GameMode;
  • Controller;
  • propiedades expuestas al editor;
  • funciones accesibles desde Blueprints;
  • sistema de reflexión;
  • gestión específica de memoria.

Un programador puede desarrollar los fundamentos de un sistema en C++ y después exponer determinadas opciones a Blueprints.

Esta combinación permite que los diseñadores modifiquen parámetros o comportamientos sin recompilar todo el código.

C++ ofrece un mayor control, pero exige una buena comprensión de:

  • la arquitectura del motor;
  • la compilación;
  • los punteros;
  • la memoria;
  • las dependencias;
  • los módulos;
  • el rendimiento;
  • la depuración.

Los tiempos de compilación también pueden ralentizar el trabajo en proyectos importantes.

Acceso al código fuente y personalización del motor

Los usuarios con una cuenta de Epic Games pueden vincular su cuenta de GitHub para acceder al repositorio privado de Unreal Engine.

El código fuente permite especialmente:

  • comprender el funcionamiento interno del motor;
  • corregir un problema;
  • añadir una función;
  • modificar un sistema existente;
  • compilar una versión personalizada;
  • seguir las evoluciones técnicas;
  • crear una integración específica.

Esta accesibilidad es especialmente importante para:

  • grandes estudios;
  • equipos técnicos;
  • investigadores;
  • empresas de simulación;
  • desarrolladores de plugins;
  • proyectos que utilizan hardware especializado.

Sin embargo, un fork personalizado puede resultar difícil de mantener.

Cada nueva versión de Unreal Engine puede exigir:

  • volver a aplicar las modificaciones;
  • resolver conflictos;
  • recompilar el motor;
  • adaptar los plugins;
  • comprobar el rendimiento;
  • probar todas las plataformas.

El acceso al código fuente es, por tanto, una posibilidad potente, pero no una obligación para utilizar el motor.

Nanite y geometría virtualizada

Nanite es el sistema de geometría virtualizada de Unreal Engine.

Permite mostrar modelos 3D muy detallados adaptando automáticamente el nivel de geometría realmente necesario para la imagen.

Nanite puede utilizarse con:

  • entornos;
  • edificios;
  • rocas;
  • estatuas;
  • objetos fotogramétricos;
  • esculturas;
  • decorados complejos;
  • determinados tipos de vegetación.

En un flujo de trabajo tradicional, un artista suele tener que crear varias versiones del mismo modelo, llamadas niveles de detalle.

El motor muestra después una versión más simple cuando el objeto está lejos.

Nanite reduce parte de este trabajo al gestionar dinámicamente la densidad geométrica.

Esto facilita el uso de:

  • escaneos 3D;
  • modelos muy detallados;
  • decorados cinematográficos;
  • entornos complejos.

Sin embargo, Nanite no elimina todas las limitaciones de optimización.

Todavía es necesario vigilar:

  • la memoria;
  • las texturas;
  • los materiales;
  • las animaciones;
  • las transparencias;
  • las sombras;
  • la plataforma objetivo;
  • el número de objetos.

Una escena puede contener una geometría impresionante y seguir siendo demasiado pesada debido a sus materiales, texturas o efectos.

Lumen e iluminación dinámica

Lumen es el sistema de iluminación global y reflejos dinámicos de Unreal Engine.

Permite observar rápidamente cómo rebota la luz dentro de una escena.

Cuando un usuario:

  • mueve una luz;
  • abre una puerta;
  • modifica el sol;
  • añade un objeto;
  • cambia un material;

Lumen puede actualizar una gran parte de la iluminación sin necesitar un precálculo completo.

Esta tecnología resulta especialmente adecuada para:

  • mundos dinámicos;
  • ciclos día-noche;
  • entornos destructibles;
  • interiores;
  • escenas interactivas;
  • producciones virtuales.

Lumen puede utilizar distintos métodos según el hardware.

Los mejores resultados requieren una tarjeta gráfica moderna y una configuración compatible.

El sistema también puede producir:

  • ruido;
  • reflejos aproximados;
  • fugas de luz;
  • rendimiento insuficiente;
  • diferencias entre el editor y la plataforma final.

Para algunos proyectos, una iluminación precalculada o una solución híbrida sigue siendo más adecuada.

Materiales y shaders

El editor de materiales permite construir la apariencia de las superficies mediante un sistema de nodos.

Un material puede controlar:

  • color;
  • rugosidad;
  • propiedades metálicas;
  • normales;
  • transparencia;
  • emisión luminosa;
  • deformación;
  • reflejos;
  • desplazamiento;
  • máscaras.

Puede utilizarse para crear:

  • madera;
  • metal;
  • vidrio;
  • piel;
  • tejido;
  • agua;
  • lava;
  • nieve;
  • hologramas;
  • efectos estilizados;
  • postprocesado.

Las Material Instances permiten crear varias variantes de un material sin duplicar toda su lógica.

De este modo, un mismo sistema puede generar distintos colores, texturas o niveles de brillo.

Sin embargo, los materiales muy complejos pueden resultar costosos de renderizar.

Es necesario vigilar:

  • el número de muestras de textura;
  • las operaciones matemáticas;
  • las transparencias;
  • los efectos por píxel;
  • la cantidad de luces;
  • la resolución de pantalla.

Un material impresionante en una demostración puede volverse demasiado pesado al aplicarse a cientos de objetos.

World Partition y mundos de gran tamaño

World Partition es un sistema destinado a gestionar entornos de gran tamaño.

Divide automáticamente el mundo en celdas.

Estas celdas pueden cargarse o descargarse según:

  • la posición del jugador;
  • la posición de la cámara;
  • las fuentes de streaming;
  • las necesidades del proyecto.

Este enfoque resulta especialmente adecuado para:

  • mundos abiertos;
  • grandes ciudades;
  • paisajes;
  • simulaciones;
  • territorios explorables;
  • proyectos arquitectónicos extensos.

World Partition funciona con otros sistemas, entre ellos:

  • Data Layers;
  • One File Per Actor;
  • Hierarchical Levels of Detail;
  • herramientas procedurales;
  • streaming del mundo.

Las Data Layers permiten conservar distintas variantes o estados dentro de un mismo entorno.

Por ejemplo, pueden representar:

  • una ciudad intacta;
  • la misma ciudad destruida;
  • una versión nocturna;
  • una versión estacional;
  • distintos escenarios de simulación.

World Partition simplifica la gestión de mapas grandes, pero no convierte automáticamente un mundo en una experiencia eficiente.

Todavía es necesario optimizar:

  • texturas;
  • vegetación;
  • actores;
  • colisiones;
  • inteligencia artificial;
  • sombras;
  • efectos;
  • datos cargados.

Terreno, vegetación y creación procedural

Unreal Engine contiene herramientas de terreno para crear y esculpir paisajes.

El usuario puede:

  • elevar o hundir el suelo;
  • pintar capas;
  • añadir carreteras;
  • crear montañas;
  • definir zonas de vegetación;
  • importar mapas de altura;
  • integrar datos geográficos.

El sistema de vegetación permite distribuir:

  • árboles;
  • hierba;
  • rocas;
  • arbustos;
  • objetos de decoración.

El framework Procedural Content Generation, abreviado habitualmente como PCG, permite construir grafos procedurales.

Estos grafos pueden generar:

  • vegetación;
  • edificios;
  • carreteras;
  • objetos;
  • variaciones;
  • puntos de interés;
  • poblaciones;
  • elementos del terreno.

Las reglas pueden depender de:

  • la pendiente;
  • la altitud;
  • el material del suelo;
  • un volumen;
  • una distancia;
  • datos personalizados.

PCG puede acelerar enormemente la creación de un mundo.

También permite producir varias variantes a partir de las mismas reglas.

Sin embargo, la generación procedural no sustituye la composición artística.

Un entorno completamente automatizado puede parecer:

  • repetitivo;
  • uniforme;
  • artificial;
  • difícil de recorrer;
  • carente de lugares memorables.

Los mejores resultados suelen combinar generación procedural y retoques manuales.

Animación, esqueletos y retargeting

Unreal Engine puede importar personajes y animaciones procedentes de programas como:

  • Blender;
  • Maya;
  • Cinema 4D;
  • Houdini;
  • 3ds Max.

Los personajes suelen utilizar un esqueleto compuesto por huesos.

El motor permite después:

  • reproducir animaciones;
  • mezclar varios movimientos;
  • gestionar transiciones;
  • controlar poses;
  • adaptar animaciones a distintas situaciones;
  • reutilizar animaciones en varios personajes.

Los Animation Blueprints permiten construir la lógica de animación de un personaje.

Pueden gestionar:

  • caminar;
  • correr;
  • saltar;
  • atacar;
  • caer;
  • postura;
  • dirección de la mirada;
  • reacciones;
  • cambios de estado.

El retargeting permite transferir animaciones entre varios esqueletos o personajes.

No siempre produce un resultado perfecto.

Las diferencias de:

  • tamaño;
  • proporciones;
  • longitud de las extremidades;
  • orientación de los huesos;
  • morfología;

pueden requerir correcciones.

Control Rig

Control Rig permite crear y manipular rigs directamente dentro de Unreal Engine.

Puede utilizarse para:

  • añadir controles;
  • crear restricciones;
  • modificar una pose;
  • corregir una animación;
  • producir animación procedural;
  • animar un personaje en Sequencer;
  • adaptar un movimiento.

Control Rig reduce la necesidad de volver a un programa 3D externo para cada modificación.

Resulta especialmente útil para:

  • cinemáticas;
  • correcciones rápidas;
  • poses;
  • animaciones secundarias;
  • ajustes relacionados con el decorado.

No siempre sustituye las herramientas especializadas de Maya o Blender para crear un rig complejo completo.

Sequencer y puesta en escena

Sequencer es el entorno de puesta en escena temporal de Unreal Engine.

Funciona con una lógica similar a una timeline de edición o animación.

Sequencer puede organizar:

  • cámaras;
  • personajes;
  • animaciones;
  • luces;
  • sonidos;
  • eventos;
  • efectos;
  • propiedades;
  • transiciones.

Puede utilizarse para crear:

  • una cinemática;
  • un tráiler;
  • una película de animación;
  • un anuncio;
  • una previsualización;
  • una secuencia narrativa;
  • un evento interactivo.

El usuario puede crear varias cámaras y elegir después qué plano se muestra en cada momento.

Sequencer también permite animar directamente determinados parámetros, como:

  • posición;
  • rotación;
  • intensidad luminosa;
  • profundidad de campo;
  • visibilidad;
  • color;
  • efectos.

Las secuencias pueden renderizarse como imágenes o archivos de vídeo gracias a las herramientas de renderizado cinematográfico.

Para la edición final, el sonido, el etalonaje y la postproducción, un programa como DaVinci Resolve suele seguir siendo necesario.

MetaHuman

MetaHuman es el framework de Epic Games dedicado a humanos digitales realistas.

Permite crear personajes que incluyen:

  • rostro;
  • cuerpo;
  • piel;
  • cabello;
  • ropa;
  • esqueleto;
  • rig facial;
  • animaciones;
  • controles.

MetaHuman Creator está integrado en el ecosistema Unreal Engine.

Permite personalizar:

  • los rasgos del rostro;
  • la morfología;
  • la edad aparente;
  • la piel;
  • el cabello;
  • los ojos;
  • determinados atuendos.

MetaHuman Animator permite convertir una actuación grabada en animación facial.

Según el hardware y el flujo de trabajo, la captura puede utilizar:

  • una cámara;
  • un smartphone compatible;
  • un sistema de captura profesional;
  • datos de audio y vídeo.

MetaHuman puede utilizarse en:

  • juegos;
  • películas;
  • avatares;
  • simulaciones;
  • presentaciones;
  • formaciones;
  • multitudes digitales.

Los personajes MetaHuman son técnicamente avanzados, pero su realismo exige muchos recursos.

También pueden mostrar cierta uniformidad cuando los rostros, prendas, luces y animaciones no se personalizan lo suficiente.

Niagara y efectos visuales

Niagara es el sistema de efectos visuales de Unreal Engine.

Puede producir:

  • humo;
  • fuego;
  • polvo;
  • lluvia;
  • nieve;
  • chispas;
  • magia;
  • explosiones;
  • fluidos estilizados;
  • partículas;
  • efectos abstractos.

Niagara se basa en emisores, módulos y sistemas.

Las partículas pueden reaccionar:

  • al movimiento;
  • a las colisiones;
  • a la luz;
  • a los eventos;
  • a los parámetros del gameplay;
  • a la posición de un personaje.

Niagara puede utilizarse tanto en juegos como en producciones cinematográficas.

Sin embargo, los efectos complejos pueden consumir muchos recursos.

Es necesario vigilar:

  • el número de partículas;
  • su duración;
  • las colisiones;
  • las transparencias;
  • las simulaciones;
  • la cantidad de efectos visibles al mismo tiempo.

Chaos y simulación física

Chaos agrupa varias tecnologías físicas de Unreal Engine.

Cubren especialmente:

  • cuerpos rígidos;
  • colisiones;
  • destrucción;
  • vehículos;
  • tejidos;
  • cabello;
  • campos físicos;
  • fragmentos;
  • restricciones.

El sistema de destrucción permite fracturar objetos y simular su derrumbe.

Chaos Vehicles proporciona herramientas para crear vehículos.

Las simulaciones de tejidos y cabello pueden utilizarse con personajes.

Estas herramientas permiten producir efectos convincentes, pero no garantizan precisión científica.

Los resultados dependen de:

  • los parámetros;
  • el número de elementos;
  • el framerate;
  • el tamaño de los objetos;
  • las colisiones;
  • la plataforma objetivo.

Audio y MetaSounds

Unreal Engine permite importar y reproducir archivos de audio.

El motor gestiona especialmente:

  • espacialización;
  • atenuación;
  • reverberación;
  • zonas acústicas;
  • sonidos vinculados a objetos;
  • mezcla dinámica;
  • eventos de audio.

MetaSounds es un sistema de audio basado en nodos.

Permite construir:

  • sonidos procedurales;
  • variaciones;
  • efectos reactivos;
  • instrumentos;
  • música interactiva;
  • sistemas de audio vinculados al gameplay.

Un sonido MetaSounds puede reaccionar a:

  • la velocidad;
  • el entorno;
  • la posición;
  • el estado de un objeto;
  • una acción del jugador;
  • una variable del juego.

Este enfoque resulta especialmente adecuado para experiencias interactivas en las que el sonido debe evolucionar en tiempo real.

Para:

  • grabación multipista;
  • edición musical detallada;
  • mezcla;
  • mastering;
  • restauración de audio;

un software de audio especializado sigue siendo más adecuado.

Inteligencia artificial y comportamientos

Unreal Engine contiene varias herramientas para crear comportamientos controlados por el motor.

Los desarrolladores pueden utilizar:

  • Behavior Trees;
  • Blackboard;
  • navegación;
  • percepción;
  • State Trees;
  • sistemas de multitudes;
  • consultas ambientales;
  • lógica personalizada.

Estas herramientas pueden controlar:

  • enemigos;
  • aliados;
  • animales;
  • personajes no jugadores;
  • vehículos;
  • agentes de simulación.

Un Behavior Tree organiza las decisiones de un agente.

El Blackboard conserva la información necesaria, como:

  • la posición de un objetivo;
  • un estado de alerta;
  • un destino;
  • un recurso;
  • una prioridad.

La inteligencia artificial de juego no debe confundirse con los modelos generativos modernos.

Se basa principalmente en reglas, estados, árboles de decisión y sistemas de navegación.

Pueden integrarse modelos externos, pero no constituyen el funcionamiento predeterminado del motor.

Interfaces con UMG

Unreal Motion Graphics, generalmente llamado UMG, permite crear interfaces.

Puede utilizarse para producir:

  • menús;
  • inventarios;
  • barras de vida;
  • mapas;
  • diálogos;
  • botones;
  • pantallas de ajustes;
  • interfaces táctiles;
  • elementos integrados en el mundo.

El editor UMG utiliza widgets organizados en una jerarquía.

El comportamiento puede controlarse mediante Blueprints o C++.

Las interfaces complejas requieren una atención especial a:

  • resoluciones;
  • relaciones de aspecto;
  • idiomas;
  • tamaños de texto;
  • mandos;
  • pantallas táctiles;
  • rendimiento;
  • reglas de accesibilidad.

Multijugador y red

Unreal Engine incluye un sistema de replicación que permite sincronizar información entre un servidor y varios jugadores.

Puede gestionar:

  • posiciones;
  • estados;
  • acciones;
  • animaciones;
  • objetos;
  • eventos;
  • propiedades.

Un proyecto puede utilizar:

  • servidor dedicado;
  • servidor alojado por un jugador;
  • servicios online;
  • sesiones;
  • matchmaking;
  • cuentas;
  • partidas guardadas remotas.

Epic Online Services puede proporcionar determinadas funciones online, pero su uso sigue siendo distinto del propio motor.

El multijugador es uno de los ámbitos más complejos del desarrollo.

Un prototipo que funciona en local no garantiza:

  • buena latencia;
  • seguridad suficiente;
  • sincronización correcta;
  • infraestructura estable;
  • capacidad para acoger muchos jugadores.

La arquitectura de red debe pensarse desde el inicio del proyecto.

Cine, animación y producción virtual

Unreal Engine se utiliza ampliamente en producciones lineales.

Puede servir para crear:

  • películas de animación;
  • cinemáticas;
  • anuncios;
  • efectos visuales;
  • decorados virtuales;
  • previsualizaciones;
  • contenidos televisivos;
  • eventos en directo.

El renderizado en tiempo real permite modificar una escena y observar inmediatamente el resultado.

Un equipo puede ajustar:

  • la cámara;
  • la iluminación;
  • los decorados;
  • los personajes;
  • los efectos;
  • los materiales;

sin esperar varias horas de renderizado después de cada cambio.

La producción virtual puede utilizar pantallas LED que muestran un entorno Unreal en tiempo real.

La cámara física puede rastrearse para adaptar la perspectiva del decorado virtual.

Este método puede reducir determinadas necesidades de fondo verde y permitir que los actores vean parte del entorno durante el rodaje.

Sin embargo, requiere:

  • hardware especializado;
  • sincronización precisa;
  • pantallas adecuadas;
  • seguimiento de cámara;
  • un equipo técnico;
  • una preparación importante.

Arquitectura, automóvil y visualización

Unreal Engine también se utiliza para transformar datos de diseño en experiencias interactivas.

Puede producir:

  • visitas arquitectónicas;
  • configuradores;
  • showrooms virtuales;
  • presentaciones inmobiliarias;
  • demostraciones industriales;
  • interfaces de automóvil;
  • gemelos digitales;
  • simulaciones.

Una arquitectura puede explorarse en tiempo real en lugar de presentarse únicamente mediante imágenes fijas.

El usuario puede modificar:

  • materiales;
  • colores;
  • muebles;
  • iluminación;
  • hora del día;
  • configuración.

Los modelos procedentes de programas CAD o de diseño suelen necesitar preparación antes de utilizarse en tiempo real.

Pueden contener:

  • demasiados polígonos;
  • jerarquías complejas;
  • materiales incompatibles;
  • objetos duplicados;
  • datos innecesarios.

Siguen siendo necesarias herramientas de importación y optimización.

Realidad virtual, aumentada y XR

Unreal Engine puede dirigirse a distintos dispositivos de realidad virtual, aumentada o mixta.

Es compatible especialmente con estándares y tecnologías como:

  • OpenXR;
  • ARKit;
  • ARCore;
  • distintos cascos VR;
  • controladores de movimiento;
  • seguimiento de manos;
  • visionOS según las configuraciones disponibles.

El motor puede utilizarse para crear:

  • juegos VR;
  • formaciones;
  • visitas;
  • simulaciones;
  • experiencias artísticas;
  • presentaciones;
  • interfaces espaciales.

Los proyectos XR deben mantener un framerate alto y estable.

Una escena aceptable en una pantalla clásica puede resultar incómoda en un casco.

Es especialmente importante vigilar:

  • latencia;
  • rendimiento;
  • movimientos de cámara;
  • resolución;
  • legibilidad;
  • interacciones;
  • comodidad;
  • accesibilidad.

Exportación a varias plataformas

El editor de Unreal Engine funciona en Windows, macOS y Linux.

Después, los proyectos pueden prepararse para distintas plataformas objetivo.

Según las herramientas, licencias y kits disponibles, esto puede incluir:

  • Windows;
  • macOS;
  • Linux;
  • Android;
  • iOS;
  • iPadOS;
  • consolas;
  • cascos XR.

La publicación en consolas suele requerir:

  • una cuenta de desarrollador aprobada;
  • acceso al kit de desarrollo;
  • las herramientas del fabricante;
  • el cumplimiento de sus condiciones.

Un proyecto no puede exportarse a todas las plataformas sin adaptación.

Cada objetivo posee sus propias limitaciones:

  • rendimiento;
  • memoria;
  • arquitectura del procesador;
  • interfaz;
  • sistema de archivos;
  • formatos;
  • reglas de distribución.

Fab, recursos y plugins

Fab es el marketplace del ecosistema Epic.

Agrupa recursos procedentes especialmente de varios servicios anteriores y comunidades creativas.

Los usuarios pueden encontrar:

  • modelos 3D;
  • entornos;
  • texturas;
  • materiales;
  • animaciones;
  • personajes;
  • sonidos;
  • efectos;
  • plugins;
  • sistemas de gameplay;
  • proyectos de ejemplo.

Algunos recursos son gratuitos y otros de pago.

Fab puede acelerar mucho la creación de un prototipo o entorno.

Sin embargo, un proyecto puede perder su identidad cuando combina recursos de muchos packs sin adaptarlos.

Las diferencias pueden aparecer en:

  • el estilo;
  • las proporciones;
  • la calidad;
  • los materiales;
  • las animaciones;
  • la dirección artística.

Cada recurso también posee sus propias condiciones de licencia.

Un recurso puede integrarse generalmente en un proyecto, pero no redistribuirse por separado como archivo descargable competidor.

Plugins e integraciones

Unreal Engine posee un sistema de plugins.

Un plugin puede añadir:

  • un formato de importación;
  • una herramienta de desarrollo;
  • un sistema de gameplay;
  • una integración con un servicio;
  • un nuevo tipo de asset;
  • una función del editor;
  • una herramienta de renderizado.

Los plugins pueden proceder de:

  • Epic Games;
  • Fab;
  • un editor externo;
  • el equipo del proyecto.

Aceleran el desarrollo, pero también crean dependencias.

Durante una actualización del motor, un plugin puede:

  • dejar de compilar;
  • ser abandonado;
  • volverse incompatible;
  • exigir una nueva licencia;
  • modificar sus funciones.

Por tanto, los plugins esenciales deben evaluarse antes de integrarse en el núcleo del proyecto.

Colaboración y control de versiones

Los proyectos Unreal pueden utilizarse por varias personas.

El motor funciona con distintos sistemas de control de versiones, entre ellos:

  • Perforce;
  • Git;
  • soluciones compatibles con las necesidades del proyecto.

Perforce se utiliza a menudo en grandes equipos porque gestiona bien los archivos binarios y el bloqueo.

Git puede resultar adecuado para proyectos más pequeños, pero requiere una configuración adaptada a archivos pesados.

Muchos assets de Unreal son binarios.

No pueden fusionarse tan fácilmente como un archivo de código de texto.

Por tanto, dos personas que modifican al mismo tiempo el mismo nivel o asset pueden crear un conflicto difícil de resolver.

Sistemas como One File Per Actor reducen determinados conflictos en mundos grandes.

Sin embargo, un equipo debe definir:

  • convenciones de nombres;
  • organización de carpetas;
  • reglas de validación;
  • responsabilidades;
  • gestión de ramas;
  • copias de seguridad;
  • procedimientos de actualización.

Versiones y actualizaciones

Epic publica regularmente nuevas versiones de Unreal Engine.

Una versión principal puede introducir:

  • nuevas funciones;
  • cambios de renderizado;
  • nuevas herramientas;
  • mejoras de rendimiento;
  • modificaciones de API;
  • funciones experimentales.

Actualizar un proyecto no siempre es inmediato.

Una nueva versión puede crear:

  • incompatibilidades de plugins;
  • cambios de comportamiento;
  • problemas de compilación;
  • diferencias visuales;
  • nuevos requisitos de hardware;
  • regresiones.

Es prudente:

  • conservar una copia de seguridad;
  • probar una copia del proyecto;
  • comprobar los plugins;
  • leer las notas de versión;
  • evitar migrar durante una fase crítica.

Un proyecto en producción puede permanecer en una versión estable durante mucho tiempo.

El número de versión más reciente no siempre es la mejor elección para todos los proyectos.

Requisitos de hardware y almacenamiento

Unreal Engine puede funcionar en ordenadores relativamente variados, pero las funciones avanzadas requieren hardware potente.

Para un uso cómodo, las necesidades pueden incluir:

  • procesador multinúcleo reciente;
  • 32 GB de RAM o más;
  • tarjeta gráfica dedicada;
  • varios gigabytes de memoria de vídeo;
  • almacenamiento SSD;
  • mucho espacio en disco.

Las necesidades aumentan con:

  • Lumen;
  • Nanite;
  • MetaHuman;
  • texturas de alta resolución;
  • mundos abiertos;
  • compilación C++;
  • efectos Niagara;
  • renderizados cinematográficos;
  • varias plataformas de exportación.

Un proyecto Unreal también genera archivos intermedios y cachés.

El almacenamiento puede ser ocupado por:

  • la instalación del motor;
  • los proyectos;
  • los recursos fuente;
  • Derived Data Cache;
  • compilaciones;
  • builds;
  • copias de seguridad;
  • versiones archivadas.

Un único proyecto importante puede ocupar decenas o cientos de gigabytes.

Licencia, regalías y suscripciones

La licencia de Unreal Engine depende del tipo de proyecto y de los ingresos del usuario u organización.

El motor suele ser gratuito para:

  • particulares;
  • estudiantes;
  • profesores;
  • centros educativos;
  • creadores independientes;
  • pequeñas organizaciones situadas por debajo del umbral de ingresos previsto por Epic.

Esta versión gratuita no elimina deliberadamente funciones técnicas.

Incluye:

  • el editor;
  • las plataformas compatibles;
  • las herramientas avanzadas;
  • el código fuente;
  • las funciones de renderizado;
  • los sistemas de gameplay.

Para juegos y aplicaciones distribuidos que incorporan el motor, Epic aplica regalías después de un determinado umbral de ingresos brutos atribuibles al producto.

En el momento de la verificación:

  • el primer millón de dólares estadounidenses de ingresos brutos por producto está exento;
  • la tasa estándar por encima del umbral es del 5 %;
  • determinadas condiciones de distribución pueden reducir o excluir parte de las regalías.

Las regalías se aplican a los ingresos brutos correspondientes, no únicamente al beneficio.

Para determinados usos profesionales fuera de los videojuegos, las grandes empresas que superan el umbral anual previsto por Epic deben adquirir una licencia por puesto.

Esto puede afectar especialmente a:

  • arquitectura;
  • automóvil;
  • cine;
  • simulación;
  • producciones internas;
  • visualizaciones comerciales no distribuidas.

Las condiciones incluyen varias excepciones y casos particulares.

Por tanto, una empresa o proyecto comercial importante debe consultar directamente la licencia actual y, cuando sea necesario, obtener asesoramiento jurídico.

Casos de uso

Crear un prototipo de juego

Unreal Engine permite construir rápidamente una primera versión jugable.

Las plantillas de proyecto, Blueprints y recursos disponibles pueden ayudar a probar:

  • desplazamiento;
  • cámara;
  • combate;
  • inventario;
  • interacción;
  • nivel;
  • interfaz;
  • atmósfera.

El prototipo permite comprobar si la idea funciona antes de producir todos los contenidos definitivos.

Sin embargo, la riqueza del motor puede empujar a construir sistemas complejos demasiado pronto.

Un prototipo debe mantenerse centrado en las mecánicas esenciales.

Desarrollar un juego completo

Unreal Engine puede acompañar un proyecto desde el prototipo hasta su publicación.

Resulta adecuado para:

  • proyectos independientes;
  • juegos móviles;
  • producciones para PC;
  • juegos de consola;
  • proyectos multijugador;
  • producciones de gran escala.

La potencia del motor no sustituye:

  • una dirección clara;
  • una buena organización del proyecto;
  • un diseño coherente;
  • pruebas;
  • optimización;
  • una estrategia de publicación.

Un juego pequeño y bien definido suele ser más realizable que un enorme mundo abierto iniciado sin un equipo o recursos suficientes.

Construir un mundo abierto

World Partition, PCG, Nanite y las herramientas de terreno permiten crear grandes entornos.

Pueden utilizarse para producir:

  • territorios;
  • ciudades;
  • paisajes;
  • bosques;
  • mundos explorables;
  • simulaciones geográficas.

Estas herramientas aceleran la producción, pero un mundo abierto también exige:

  • contenido;
  • navegación;
  • narrativa;
  • actividades;
  • optimización;
  • streaming;
  • pruebas.

El tamaño del mundo no garantiza su interés.

Crear una cinemática o película de animación

Sequencer, Control Rig, MetaHuman, Niagara y las herramientas de renderizado permiten producir secuencias lineales.

Un creador puede:

  • construir un decorado;
  • colocar personajes;
  • animar cámaras;
  • gestionar luces;
  • añadir efectos;
  • renderizar planos.

Unreal Engine resulta especialmente interesante para previsualizar rápidamente el resultado.

La postproducción final puede continuar después en un programa de edición o compositing.

Preparar un storyboard animado

Un realizador o autor puede utilizar Unreal Engine para probar una escena antes del rodaje o de la animación definitiva.

Puede explorar:

  • encuadre;
  • colocación de personajes;
  • movimientos de cámara;
  • iluminación;
  • ritmo;
  • dimensiones del decorado.

Esta previsualización facilita la comunicación con un equipo.

Sin embargo, requiere más preparación que un simple storyboard dibujado.

Crear una visualización arquitectónica

Unreal Engine permite transformar una arquitectura en una experiencia interactiva.

El usuario puede recorrer el proyecto, cambiar materiales o comparar varias configuraciones.

Este enfoque resulta adecuado para:

  • edificios;
  • apartamentos;
  • espacios públicos;
  • showrooms;
  • proyectos inmobiliarios;
  • presentaciones para clientes.

Los modelos arquitectónicos deben optimizarse para funcionar correctamente en tiempo real.

Producir un configurador

El motor puede utilizarse para crear una aplicación que permita modificar un producto.

El usuario puede cambiar:

  • color;
  • material;
  • equipamiento;
  • iluminación;
  • entorno;
  • versión.

Este tipo de configurador resulta especialmente adecuado para:

  • automóvil;
  • mobiliario;
  • inmobiliaria;
  • industria;
  • comercio.

Los datos comerciales, opciones y reglas deben integrarse con precisión.

Desarrollar una simulación o formación

Unreal Engine puede reproducir un entorno, una máquina o una situación.

Puede utilizarse para:

  • formación profesional;
  • seguridad;
  • conducción;
  • mantenimiento;
  • medicina;
  • industria;
  • preparación operativa.

El realismo visual no garantiza por sí solo la validez pedagógica o científica de la simulación.

Los comportamientos y datos deben ser verificados por especialistas del ámbito.

Crear una experiencia VR o AR

El motor permite construir experiencias inmersivas para:

  • juego;
  • formación;
  • visita;
  • exposición;
  • arquitectura;
  • arte;
  • comunicación.

La realidad virtual exige una atención especial a la comodidad.

Los desplazamientos, interfaces y rendimiento deben diseñarse específicamente para el casco.

Aprender creación interactiva

Unreal Engine puede utilizarse como soporte para aprender:

  • programación;
  • lógica;
  • diseño de juego;
  • animación;
  • renderizado;
  • efectos visuales;
  • creación 3D;
  • puesta en escena;
  • optimización.

Blueprints permite empezar sin dominar inmediatamente C++.

Sin embargo, la cantidad de funciones disponibles puede dar la impresión de que hay que aprenderlo todo antes de crear.

Resulta más eficaz comenzar con un proyecto pequeño y aprender únicamente los sistemas realmente necesarios.

Crear herramientas internas

Gracias a C++, Blueprints, los plugins y las funciones del editor, Unreal Engine también puede utilizarse para construir herramientas destinadas a un equipo.

Es posible crear:

  • generadores;
  • validadores;
  • interfaces de producción;
  • automatizaciones;
  • importadores;
  • herramientas de colocación;
  • sistemas de previsualización.

Estas herramientas pueden acelerar mucho la producción de un proyecto importante.

Opinión de PANACHES

Unreal Engine es uno de los entornos creativos más completos disponibles actualmente.

No reúne únicamente herramientas técnicas destinadas a fabricar un juego.

Permite hacer funcionar conjuntamente:

  • el código;
  • la imagen;
  • el 3D;
  • la animación;
  • el sonido;
  • la narrativa;
  • la física;
  • la interacción;
  • la puesta en escena.

Esta capacidad de reunir varias disciplinas constituye su mayor fortaleza.

Un personaje puede modelarse en un programa 3D, animarse en Unreal Engine, integrarse en un mundo, ser controlado por el jugador, iluminarse con Lumen, acompañarse con efectos Niagara y ponerse en escena en Sequencer.

Pocas herramientas permiten recorrer una cadena creativa tan amplia dentro de un solo proyecto.

Esta riqueza también constituye la principal dificultad del motor.

Unreal Engine contiene tantos sistemas, editores y posibilidades que resulta fácil:

  • dispersarse;
  • multiplicar los plugins;
  • utilizar tecnologías innecesarias;
  • construir una arquitectura demasiado compleja;
  • crear un proyecto demasiado pesado;
  • seguir tutoriales sin comprender su lógica.

El motor da acceso a tecnologías avanzadas, pero no transforma automáticamente una idea en un proyecto realizable.

Nanite no sustituye la dirección artística.

Lumen no sustituye el trabajo de iluminación.

Blueprints no sustituye la comprensión de la programación.

PCG no sustituye la composición de un mundo.

MetaHuman no sustituye la creación de un personaje.

Fab no sustituye la coherencia visual.

Para Panaches, Unreal Engine resulta especialmente interesante como taller de mundos interactivos.

Conecta directamente varias áreas del proyecto:

  • Desarrollo;
  • Informática;
  • Digital Art;
  • Arte;
  • Música;
  • Escritura;
  • Video Game.

Permite pasar de una idea o universo a una experiencia en la que el usuario puede desplazarse, actuar e interactuar realmente.

Unreal Engine complementa bien un entorno local en el que se mantienen organizados:

  • documentos de diseño;
  • guiones;
  • referencias visuales;
  • modelos 3D;
  • texturas;
  • sonidos;
  • código;
  • versiones;
  • builds;
  • copias de seguridad.

La mejor manera de empezar no consiste en intentar dominar todo el motor de inmediato.

Es preferible elegir un objetivo concreto:

  • mover un personaje;
  • crear una habitación;
  • abrir una puerta;
  • activar un sonido;
  • construir una escena corta;
  • publicar un pequeño prototipo.

Cada sistema aprendido debe responder a una necesidad real del proyecto.

Unreal Engine no sirve únicamente para fabricar juegos con gráficos impresionantes.

Permite construir mundos en los que el código, la imagen, el sonido, la animación y la narrativa pueden funcionar juntos.

Puntos de atención

  • Unreal Engine es un software complejo con una curva de aprendizaje importante.
  • El motor contiene muchos sistemas que no son necesarios para todos los proyectos.
  • Es fácil dispersarse entre las herramientas, plugins y tecnologías disponibles.
  • La instalación completa puede ocupar mucho espacio en disco.
  • Los proyectos, cachés, builds y archivos intermedios pueden alcanzar decenas o cientos de gigabytes.
  • Un ordenador con poca memoria puede sufrir ralentizaciones importantes.
  • Las funciones avanzadas requieren una tarjeta gráfica reciente.
  • Lumen, Nanite, MetaHuman y los renderizados cinematográficos aumentan considerablemente los requisitos de hardware.
  • El rendimiento observado en el editor no siempre corresponde al del producto final.
  • Una escena que funciona en PC puede resultar demasiado pesada para un dispositivo móvil o un casco autónomo.
  • Nanite no elimina todas las necesidades de optimización.
  • Lumen puede producir ruido, fugas de luz o reflejos aproximados.
  • Los materiales complejos pueden resultar muy costosos.
  • Las texturas de alta resolución consumen mucha memoria.
  • Las transparencias, sombras y efectos pueden reducir significativamente el rendimiento.
  • Los mundos abiertos requieren una gestión cuidadosa del streaming y la memoria.
  • World Partition no hace que un mapa grande sea eficiente automáticamente.
  • PCG acelera la producción, pero puede crear entornos repetitivos o sin intención.
  • Los MetaHumans exigen muchos recursos.
  • Los personajes MetaHuman pueden parecer uniformes sin una personalización profunda.
  • El retargeting de animaciones puede producir poses o movimientos incorrectos.
  • Control Rig no siempre sustituye un software de animación especializado.
  • Las simulaciones Chaos no garantizan precisión científica.
  • Los efectos Niagara complejos pueden consumir muchos recursos.
  • MetaSounds no sustituye un DAW para una producción de audio completa.
  • Blueprints sigue siendo una forma de programación y necesita una arquitectura clara.
  • Un grafo Blueprint grande puede resultar difícil de leer y mantener.
  • Utilizar únicamente Blueprints no siempre resulta adecuado para los sistemas más pesados.
  • El C++ de Unreal posee sus propias convenciones y una curva de aprendizaje importante.
  • Los tiempos de compilación pueden ralentizar el desarrollo.
  • Modificar el código fuente del motor aumenta los costes de mantenimiento.
  • Un fork personalizado puede resultar difícil de actualizar.
  • Las versiones principales pueden romper determinados plugins o comportamientos.
  • Debe probarse una copia del proyecto antes de cualquier migración.
  • Las funciones experimentales no deberían integrarse en un proyecto crítico sin evaluación.
  • Los plugins de terceros pueden ser abandonados o volverse incompatibles.
  • Un proyecto que depende mucho de un plugin puede resultar difícil de mantener.
  • Los recursos de Fab no siguen todos exactamente la misma licencia.
  • Los recursos comprados normalmente no pueden redistribuirse por separado.
  • Combinar muchos packs puede producir una dirección artística incoherente.
  • Los assets descargados deben comprobarse y optimizarse antes de utilizarse.
  • Los proyectos Unreal contienen muchos archivos binarios difíciles de fusionar.
  • El trabajo en equipo exige un control de versiones correctamente configurado.
  • Git puede volverse pesado con muchos archivos binarios grandes.
  • Perforce requiere una infraestructura y organización adecuadas.
  • Los conflictos sobre niveles y assets pueden resultar difíciles de resolver.
  • Las copias de seguridad regulares siguen siendo indispensables.
  • El multijugador es mucho más complejo que un prototipo local.
  • La seguridad y la arquitectura del servidor deben pensarse desde el principio.
  • La publicación en consolas requiere autorización y herramientas del fabricante.
  • Cada plataforma objetivo posee sus propias limitaciones técnicas.
  • La exportación multiplataforma suele requerir adaptaciones.
  • Las experiencias VR deben mantener un framerate alto y estable.
  • Un mal diseño del desplazamiento en VR puede provocar molestias.
  • La accesibilidad debe diseñarse y no añadirse únicamente al final.
  • Unreal Engine no es open source a pesar del acceso al código fuente.
  • El código está sujeto a la licencia propietaria de Epic Games.
  • Algunas licencias copyleft no son compatibles con las condiciones de Unreal Engine.
  • La gratuidad depende de los ingresos, el tipo de proyecto y el método de distribución.
  • Los juegos y aplicaciones distribuidos pueden estar sujetos a regalías por encima del umbral previsto.
  • Las regalías se calculan sobre los ingresos brutos correspondientes y no únicamente sobre el beneficio.
  • Algunas grandes empresas deben adquirir licencias por puesto para usos profesionales no distribuidos.
  • Los umbrales, tasas y excepciones pueden evolucionar.
  • Un proyecto comercial importante debe consultar directamente la licencia actual.
  • Unreal Engine acelera la producción, pero no sustituye el diseño, la organización, la programación, la optimización y la dirección artística.
  • Empezar con un mundo abierto, un MMO o un proyecto fotorrealista muy ambicioso aumenta considerablemente el riesgo de abandono.
  • Un primer proyecto corto y definido con precisión sigue siendo la mejor manera de aprender el motor.