En esta oportunidad, queremos compartir un proceso que puede resultar útil a la hora de desarrollar videojuegos, se trata del rigging y animación de una puerta en Blender 4.1, y su posterior importación en Unreal Engine 5.4.
Para ello, tomamos parte del flujo de trabajo aprendido en este tutorial: How to rig folding windows/doors with Blender, y lo ajustamos a nuestras necesidades para la animación de la puerta.
Así que, ¡comencemos!
Espacio de trabajo y modelado
Ajustando el espacio de trabajo en Blender
Lo primero será ajustar nuestro espacio de trabajo en Blender para que no haya problemas de proporción al importar nuestro modelo a UE5. Para ello, abrimos Blender y eliminamos los elementos que trae por defecto (el cubo, la cámara y la luz).
Ingresando en el apartado de Scene Properties del panel lateral derecho, ajustamos la escala a 0.01 y cambiamos la longitud a centímetros (que es la unidad manejada en Unreal Engine).
Posterior a ello, notaremos que la retícula del Viewport pareciera haber desaparecido, esto es debido al cambio de unidades. Para corregir esto, simplemente presionamos la letra N, y nos desplazamos a la pestaña View. Allí cambiamos el parámetro Clip Start de 0.01 cm a 1 cm, y el parámetro End de 1000 cm a 10000000000 y notaremos como la cuadrícula aparece nuevamente.
Modelado de la Puerta
Para iniciar con el modelado de la puerta, presionamos el atajo de teclado Shift + A, a fin de crear un cubo en la escena.
Tomando en consideración el tamaño de los personajes en Unreal, que son de aproximadamente 181 cm de alto, se puede establecer el tamaño de la puerta en 215 cm de alto.
Para ello, nos vamos a Modo Edición y presionando la tecla numérica 1; podemos desde la Vista Ortogonal Frontal, subir el cubo para que esté justo sobre el eje X, así como establecer la altura del cubo al tamaño deseado.
Hecho esto, establecemos el grosor de la puerta en 6 cm y el ancho de la misma en 125 cm aproximadamente. Estas medidas son a gusto y dependen del tamaño que sea requerido de acuerdo al tipo de juego que se esté realizando.
Nota: Una vez establecidas las dimensiones, si se ha hecho desde el Modo Objeto, se debe presionar CTRL + A y aplicar la escala.
Posterior a ello, se agregan los detalles de modelado necesarios.
Rigging y animación de la puerta en Blender
Rigging de la puerta
Para iniciar con la creación del esqueleto, colocamos el pivote de la puerta en la esquina inferior izquierda y que éste coincida con el punto de origen.
En Modo Objeto, presionamos el atajo de teclado Shift + A y seleccionamos la opción Armature.
Una vez creado, le asignamos el valor Radius: 100 cm, ya que debido al cambio de Unidades en Blender, el mismo se creará por defecto a 1 cm.
En Modo Edición rotamos el hueso en el eje Y a 90º, lo posicionamos y renombramos como Root.
Duplicamos con Shift + D el hueso Root y este duplicado lo renombramos como Controller, ya que será el encargado de gestionar los movimientos de Root.
Es aconsejable ajustar el Roll de los huesos a 0, a fin de evitar comportamientos erróneos en la animación.
Emparentamos el hueso Root con la geometría. Para ello, en Modo Objeto seleccionamos la puerta, y luego en Modo Pose el hueso Root. Y presionando la opción CTRL + P, seleccionamos la opción Bone.
Al hacerlo, podemos notar que cualquier transformación en el hueso Root afecta directamente a la puerta.
En Modo Pose, seleccionamos el hueso Root, y le agregamos el constraint llamado Copy Rotation, indicando los parámetros Target: Armature y Bone: Controller. Para este constraint, es importante colocar los parámetros Target y Owner en Local Space.
Seleccionando el hueso Controller, y accediendo a Bone Properties, en el apartado Transform cambiamos el parámetro Mode a XYZ Euler. Seguidamente, bloqueamos todos los ejes de Location, y en el caso de Rotation sólo los ejes X y Y.
A este mismo hueso le agregamos un constraint llamado Limit Rotation, agregando los valores Min: 0 y Max: 90º para el eje Z, que es justamente el que hemos dejado desbloqueado en el paso anterior. Adicionalmente, cambiamos el parámetro Owner a Local Space. Esto permitirá controlar la apertura de la puerta en los ángulos establecidos.
Hecho esto, nuestra puerta está lista para ser animada.
Animación de la puerta
Nos dirigimos al Workspace Animation de Blender, allí nos encontraremos con el apartado Dope Sheet, que nos permitirá adicionar los fotogramas clave para nuestra animación.
Una vez allí, y estando posicionados en el fotograma 1, activamos la opción de Auto Keying.
En Modo Pose, y con el hueso Controller seleccionado, nos dirigimos al apartado Transform -> Rotation, colocamos el eje Z a 0 y marcamos el puntito del lado denominado Animate Property.
Nos desplazamos hasta el fotograma 15 y cambiamos el valor de rotación de Z a 25º. Como habíamos seleccionado previamente la opción Auto Keying, al colocar el valor, el fotograma clave se marcará de forma automática.
Luego, repetimos la acción anterior en el fotograma 20.
Nos desplazamos al fotograma 40 y cambiamos el valor de rotación de Z a 85º. Allí podremos comprobar que aunque coloquemos un valor superior a los 100º, la puerta no rotará más allá de 90º; que fue el límite que establecimos como máximo.
Posteriormente, nos desplazamos al fotograma 60 y cambiamos el valor de Rotación de Z a 0º.
Esto nos dará como resultado una animación que muestra inicialmente una apertura parcial, luego, abre por completo de acuerdo al ángulo que hayamos establecido, y finalmente cierra.
Para guardar la animación, debemos hacer click en la opción Action Editor y desde allí le damos un nombre a nuestra animación, marcando el ícono de escudo que está justo al lado.
Exportación desde Blender
Con los elementos seleccionado en el Viewport, seleccionamos File -> Export -> FBX.
Nota: Para exportar la puerta con colisiones, puedes consultar nuestro post anterior: Habitación en Blender con colisiones para UE5
Una vez desplegada la ventana de exportación, seleccionaremos las siguientes opciones:
Nota: Tomar en consideración que en el apartado Transform, se establecen los ejes pero de los huesos (es la forma que conseguimos para que la animación funcionara de forma correcta en Unreal)
En el apartado Armature, desactivamos la opción Add Leaf Bones y dejamos Bake Animation activada.
Importación en Unreal Engine
Con el motor abierto, y habiendo creado un proyecto en tercera persona, nos ubicamos en carpeta Content y desde allí presionamos clic derecho, para posteriormente seleccionar la opción Import to /Game.
Seleccionamos el archivo fbx y hacemos clic en el botón Open.
En la ventana desplegada marcamos la opción Import Animations, y luego hacemos clic en el botón Import All. (Aunque pueden aparecer algunos warnings durante la importación, estos no afectan el funcionamiento de la animación.)
Si arrastramos el archivo denominado Animation Sequence al escenario, veremos que nuestra animación se ejecuta sin problema.
Aquí dejamos el proceso de animación y su importación en Unreal Engine:
Y eso es todo, esperamos que de alguna forma esta información pueda ser de utilidad. Siempre hay diferentes formas de hacer las cosas y nuevas técnicas por descubrir, así que sería interesante experimentar y adaptar este proceso a diversas situaciones.
¡Gracias por leernos, hasta la próxima entrega!



