Un esqueleto es una jerarquía que se utiliza para definir huesos (a veces denominados articulaciones) en una malla esquelética. En cierto modo, estos huesos imitan un esqueleto biológico real debido a su posición y al control sobre cómo se deforman los personajes.
En Unreal Engine, los esqueletos se utilizan para almacenar y asociar datos de animación, la jerarquía general de esqueletos y secuencias de animación. Los recursos de esqueleto también pueden compartirse mediante diversos métodos, lo que permite compartir animaciones y datos adicionales entre diferentes esqueletos.
Este documento proporciona un resumen de cómo crear y utilizar esqueletos.
Requisitos previos
Tu proyecto debe contener un actor de malla esquelética o un personaje con FBX para importarlo a Unreal Engine.
Cómo crear esqueletos
La forma principal de crear un esqueleto es importar un personaje con FBX, que luego se convierte en una malla esquelética en Unreal Engine. Al importar una malla esquelética, en la ventana Opciones de importación FBX, si dejas el campo Esqueleto vacío, se creará automáticamente un recurso de esqueleto basado en el personaje que se está importando.
Tras importar tu personaje, se creará el recurso de esqueleto junto con otros recursos de malla esquelética.
También puedes crear una copia de un esqueleto a partir de cualquier malla esquelética haciendo clic con el botón derecho sobre ella en el Explorador de contenido y seleccionando Esqueleto > Crear esqueleto. Esto crea un nuevo esqueleto asociado a una malla existente. Si esa malla tenía otro esqueleto asociado, se volverá a vincular al nuevo esqueleto y cualquier animación se vinculará entonces al nuevo esqueleto.
Haz doble clic en el recurso de esqueleto para abrir el editor de esqueletos.
Información sobre el árbol del esqueleto
Los huesos y otros objetos mostrados en el árbol del esqueletos pueden parecer diferentes en función de varios factores.
| Icono | Descripción |
|---|---|
Hueso normal que influye en los vértices de la malla esquelética. | |
Un hueso del esqueleto actual que no influye en los vértices de la malla esquelética. Estos huesos se suelen utilizar de forma auxiliar, por ejemplo para fijar armas o accesorios, sin dejar de ser animables como hueso. | |
Un acople, que es un punto estático que actúa como punto de anclaje desplazado para los huesos. | |
Un hueso virtual, que es un hueso que sigue las transformaciones de otro hueso, pero en un espacio de hueso diferente. Son útiles para bloquear movimientos articulares no deseados y se utilizan junto con IK. | |
Un hueso que existe en el esqueleto, pero que no es utilizado por la malla esquelética actual. Esto puede ocurrir si has fusionado esqueletos o si se están previsualizando diferentes LOD en este esqueleto que no están utilizando determinados huesos. |
Almacenamiento de datos de animación
Además de controlar la animación, los esqueletos en Unreal Engine también almacenan datos específicos de la animación. Cuando se crean datos a partir de esas fuentes, como crear una notificación de animación en una secuencia de animación, se añaden al esqueleto como datos compartidos.
Los esqueletos almacenan los siguientes tipos de datos de animación:
Estos datos pueden visualizarse en paneles de herramientas específicos haciendo clic en Ventana en el menú del editor de esqueletos y, a continuación, activando uno o varios de estos paneles.
Cómo compartir esqueletos
Una característica importante de los recursos de esqueleto es que un único recurso de esqueleto puede ser utilizado por varias mallas de esqueleto, siempre que las mallas de esqueleto utilicen la misma jerarquía general de rig. Esto significa que los nombres y el orden jerárquico de los huesos deben ser coherentes para que se pueda compartir correctamente.
Por ejemplo, vamos a imaginar una extremidad con tres huesos en una malla esquelética. Los huesos se llaman 1, 2 y 3:
Si quieres compartir este esqueleto con otra malla esquelética, tendrás que mantener estos huesos en el mismo orden y con los mismos nombres. La segunda malla esquelética, sin embargo, puede contener huesos que sean añadidos o periféricos a la jerarquía. Cada vez que se reciban datos de animación de un hueso que no esté incluido en la malla esquelética, esos datos de animación serán ignorados.
En ese caso, tu nueva jerarquía podría parecerse a la imagen siguiente. Aquí, la segunda malla esquelética tiene más huesos, pero conserva y no interfiere con la jerarquía original de la primera malla esquelética.
Sin embargo, para que ambas mallas esqueléticas utilicen el mismo recurso de esqueleto, no puedes cambiar el orden jerárquico ni renombrar los huesos. Si una segunda malla esquelética utiliza una jerarquía de huesos y una estructura de nombres diferentes, tendrás que crear un nuevo recurso de esqueleto.
Si insertas un hueso en la jerarquía sin cambiar el orden, podrás compartir correctamente. Sin embargo, en la mayoría de los casos, el hueso sobrante puede provocar desplazamientos de transformación involuntarios en tu esqueleto. Se recomienda evitarlo si es posible.
Teniendo en cuenta estas reglas de uso compartido, hay varias formas de compartir esqueletos entre mallas esqueléticas en Unreal Engine. Se detallan a continuación.
Cómo fusionar durante la importación
El primer método para compartir esqueletos se realiza durante el proceso de importación de FBX. Al importar tu nueva malla esquelética (con huesos adicionales y periféricos que cumplan las reglas anteriores), puedes seleccionar un esqueleto de una malla esquelética que ya exista en tu proyecto. Unreal Engine fusionará los esqueletos y añadirá los nuevos huesos a la jerarquía. Además, las proporciones del esqueleto estarán definidas por la malla esquelética original a partir de la cual se creó.
Si estás importando un esqueleto que es muy diferente del esqueleto con el que intentas fusionarte y rompe alguna regla de compartición, verás un mensaje de error:
En este caso, puede que tengas que crear un nuevo recurso de esqueleto para la malla esquelética que estás importando, en lugar de fusionarlo con uno existente.
Cuando veas el esqueleto fusionado, verás estos huesos adicionales en tu jerarquía, pero solo estarán visibles y activos para la malla esquelética para la que están destinados.
Esqueletos compatibles
Además, los esqueletos pueden compartir recursos de animación de forma no destructiva definiendo otros esqueletos como compatibles. Los esqueletos compatibles pueden compartir secuencias de animación, montajes, blueprints de animación y mucho más.
Para definir otro esqueleto como compatible para un personaje, abre el recurso del esqueleto del personaje en el editor de esqueletos y, luego, abre el gestor de reposición haciendo clic en el botón de la barra de herramientas.
En el gestor de reposición, busca la sección Gestionar esqueletos compatibles del panel Fuentes de reposicionamiento y haz clic en Añadir esqueleto para seleccionar otro recurso de esqueleto en tu proyecto desde el menú contextual.
Ahora, las animaciones se pueden compartir desde el esqueleto que se añadió a la lista Gestionar fuentes compatibles.
La compatibilidad de esqueletos es bidireccional. Si estableces que el Esqueleto 1 sea compatible con Esqueleto 2, eso significa también que Esqueleto 2 sea es compatible con el Esqueleto 1.
Crear y gestionar un sistema de esqueletos compatibles puede ser una forma eficaz de optimizar el número de recursos de animación que requiere tu proyecto para animar varios personajes. Sin embargo, para utilizar el sistema de esqueletos compatibles, todos los personajes deben tener estructuras jerárquicas de esqueletos y convenciones de nombres casi idénticas. Además, todos los personajes deben tener proporciones de malla similares para conseguir los resultados idóneos.
Para compartir animaciones entre personajes con la misma estructura de esqueleto pero con proporciones diferentes, consulta Reposicionamiento de animaciones en la documentación.
Si quieres reconstruir secuencias de animación para que funcionen en personajes con estructuras de esqueleto radicalmente diferentes, consulta Reposicionamiento de rig de IK en la documentación.
Características de los esqueletos
Los esqueletos en Unreal Engine admiten diversas funciones de fijación, mezcla y otros ajustes. Consulta las páginas siguientes para saber más sobre estas funciones:
Animation Retargeting
Describes how retargeted animations can be used with multiple Skeletal Meshes, allowing you to share animations.
Blend Masks and Blend Profiles
Exclude Bones or change their individual blend speed by using Blend Masks and Blend Profiles.
Skeletal Mesh LODs
Generate and modify LODs for Skeletal Meshes using the Skeletal Mesh Reduction Tool
Edición de esqueletos
Crear y editar recursos de esqueleto con las herramientas de edición de esqueleto.
Skeletal Mesh Sockets
Create attachment points within your Skeletal Mesh using Sockets.
Virtual Bones
Resolve layered animation problems by using Virtual Bones with IK.