20 de abril de 2023
Desde que se convirtió en un proyecto de código abierto, Unreal Engine a aumentado su popularidad en el desarrollo de juegos. En este artículo, exploraremos algunos de los conceptos y elementos básicos de este motor de juegos. Incluiré vínculos a la página web oficial de documentación, con el único inconveniente que sólo está en inglés.
Es el sistema visual de programación de Unreal Engine. Permite a los desarrolladores crear lógica de juego y comportamientos a través de la creación de diagramas de flujo. Al igual que el lenguaje de programación del motor, C++, los blueprints pueden ser extendidos por herencia. Sólo se pueden editar y compilar en la aplicación de Unreal Engine.
Representa la acción de ejecutar código o un script de Blueprint en un intervalo regular. Cada ejecución individual se denomina Tick y generalmente se ejecuta cada frame o fotograma al que corre el juego. En cada actor o componente se puede modificar la frecuencia de cada Tick para ajustarlo a las necesidades del juego. El motor también cuenta con diferentes grupos de ticks que determinan el orden de ejecución de los ticks de los objeto del juego.
Los actores son todo objeto que existe en el mundo de un juego de Unreal. Tienen una posición, una rotación y una escala. Cada actor tiene un conjunto de componentes que determinan comportamiento y capacidad de interactuar con el mundo del juego. Contiene funcionalidad para su replicación en juegos multijugador en línea, un sistema de Ticking para que puedan ejecutar instrucciones en cada tick y un sistema de ciclo de vida que dicta cuándo son creados y destruidos durante el juego. No todos los actores tienen una representación visual en el juego.
Es un tipo de actor que representa al jugador o a un personaje controlado por inteligencia artificial. Los pawns pueden moverse y realizar acciones en el mundo del juego. Cada pawn tiene un controlador asociado, que determina su comportamiento y acciones.
Es un tipo de pawn que se utiliza para representar personajes en el juego. Los personajes tienen animaciones y controles específicos, como la capacidad de saltar y correr. También pueden tener habilidades especiales, como la capacidad de usar armas o habilidades mágicas. Por defecto incluye un Skeletal Mesh, una componente de colisión en forma de cápsula, y un componente de movimiento específico para personajes.
Los componentes son objetos que se adhieren a un actor para modificar su comportamiento. Cada actor puede tener múltiples componentes, como un modelo 3D, audio o un sistema de partículas. Al igual que los actores, tienen funcionalidad para ejecutar instrucciones cada tick, sin embargo su comportamiento por defecto es que no se actualizan con cada tick del juego y se deja a discreción del desarrollador definir cuándo debe actualizarse. Todo actor tiene un componente base al que se le llama Root Component y representa como mínimo su posición, rotación y escala.
DocumentaciónAPI UActorComponent
Es un tipo de componente que no tiene una representación visual en el mundo del juego, pero se utiliza como un punto de referencia en el espacio (posición, rotación y escala) del juego. Este componente se utiliza para agrupar otros componentes o para proporcionar una posición y orientación a otros componentes. Comúnmente se utiliza como el Root Component de un actor.
Es un tipo de componente que representa una forma geométrica primitiva, como una caja, una esfera o un mesh. Estos componentes se utilizan para definir la forma y el tamaño de los objetos en el mundo del juego. Los Primitive Components también pueden ser utilizados para detectar colisiones entre objetos. Las colisiones pueden ser de bloqueo, donde un objeto no puede atravesar a otro, o de traslape, donde se deteca si un objeto atraviesa a otro. Para ello a cada componente primitivo se le asigna un tipo de colisión que define qué clase de colisión tiene con los otros tipos o si los ignora.
Documentación ColisionesAPI UPrimitiveComponent
En Unreal Engine se pueden importar modelos 3D como meshes para representar la figura que los objetos del juego tienen. Los meshes definen también la forma en que colisionan con otros objetos, qué texturas y materiales usan por defecto y cómo afectan el mundo del juego. Los tipos de mesh que hay en Unreal Engine son:
Es un modelo 3D estático. Se utiliza para representar objetos en el mundo del juego que no necesitan movimiento.
Se asocia a un actor como un componente llamado Static Mesh Component.
Es un modelo 3D que se puede animar. Se utiliza para representar objetos en el mundo del juego que necesitan movimiento, como personajes jugables y enemigos.
DocumentaciónAPI USkeletalMesh
Se asocia a un actor como un componente llamado Skeletal Mesh Component.
Cada Skeletal Mesh puede moverse utilizando otros objetos que representan una animación. Estas animaciones pueden ser creadas en un software de animación en 3D o creados directamente en Unreal Engine. Generalmente las animaciones son controladas por un Blueprint de Animación.
Documentación Sistema de Animación
Es un componente que permite a los actores moverse en el mundo del juego.
DocumentaciónAPI UMovementComponent
Hay varios tipos de componentes de movimiento ya incluidos en Unreal Engine, algunos de las más utilizados son:
Este componente se utiliza para controlar el movimiento de los personajes en el juego. Proporciona una variedad de configuraciones, como la velocidad máxima y la capacidad de saltar. También contiene tipos de movimiento como volar, nadar o caminar agachado y cuenta con un sistema de navegación para movimiento automático.
DocumentaciónAPI UCharacterMovementComponent
Este componente se utiliza para controlar el movimiento de los proyectiles en el juego. Proporciona una variedad de configuraciones, como la velocidad inicial y la gravedad.
API UProjectileMovementComponent
Este componente se utiliza para controlar el movimiento de los pawns flotantes, como los vehículos aéreos o entidades que flotan en el agua.
Representan el grupo de Shaders que controlan cómo se ve un objeto primitivo en Unreal Engine. Se utilizan para crear texturas y efectos visuales. Se crean y editan en la aplicación de Unreal Engine. Tienen un sistema de edición visual similar al de los Blueprints.