Um esqueleto é uma hierarquia usada para definir ossos (às vezes chamados de articulações) em uma malha do esqueleto. De algumas formas, os Ossos simulam um esqueleto biológico real devido à sua posição e controle sofre como os personagens se deformam.
Na Unreal Engine, os esqueletos são usados para armazenar e associar dados, a hierarquia geral do esquelética e sequências de animação. Recursos de Esqueleto também podem ser compartilhados por meio de vários métodos, possibilitando que dados e animações adicionais sejam compartilhados entre Esqueletos diferentes.
Este documento fornece uma visão geral sobre como criar e usar Esqueletos.
Pré-requisitos
Seu projeto contém um ator de malha do esqueleto, ou você tem um personagem FBX com revestimento para importar para a Unreal Engine.
Como criar esqueletos
O principal modo de criar um esqueleto é importar um personagem FBX com revestimento, que será convertido em uma malha do esqueleto na Unreal Engine. Ao importar uma malha do esqueleto, na janela Opções de Importação de FBX, deixar o campo Esqueleto vazio criará automaticamente um ativo de esqueleto baseado no personagem com revestimento que será importado.
Após importar seu personagem, a malha do esqueleto será criada com outros ativos de malha do esqueleto.
Você também pode criar uma cópia de um esqueleto com base em qualquer malha do esqueleto ao clicar com o botão direito no Navegador de Conteúdo e selecionar Esqueleto > Criar esqueleto. Um novo Esqueleto será criado com uma malha existente. Se essa malha tiver outro Esqueleto associado, ela será vinculada novamente ao novo Esqueleto e qualquer animação será vinculada a ele.
Clique duas vezes no ativo de esqueleto para abrir o Editor de Esqueleto.
Informações da skeleton tree
Ossos e outros itens exibidos na skeleton tree poderão parecer diferentes a depender de vários fatores.
| Ícone | Descrição |
|---|---|
Um osso comum que influencia os vértices na malha do esqueleto. | |
Um osso no esqueleto atual que não influencia vértices na malha do esqueleto. Geralmente esses ossos são usados de maneira auxiliar, como para prender armas ou adereços, ainda que possam ser animados como um osso. | |
Um soquete, que é um ponto estático que age como ponto de anexo de deslocamento para ossos. | |
Um osso virtual, que é um osso que acompanha as transformações de outro osso, mas num espaço de osso diferente. Servem para bloquear movimentos indesejados de juntas e são usados em conjunto com CI. | |
Um osso que existe no esqueleto, mas não é usado na malha do esqueleto atual. Isso pode acontecer se você tiver mesclado esqueletos, ou estiver prevendo LODs diferentes neste esqueleto que não está usando determinados ossos. |
Armazenamento de dados de animação
Além de controlar a animação, Esqueletos na Unreal Engine também armazenam dados específicos de animação. Quando dados forem criados a partir dessas origens, como a criação de uma notificação de animação numa sequência de animação, serão adicionados ao esqueleto como dados compartilhados.
Esqueletos armazenam os tipos a seguir de dados de animação:
Esses dados poderão ser visualizados em painéis de ferramentas dedicadas ao clicar em Janela, no menu do Editor de Esqueleto, e em seguida habilitar pelo menos um painel.
Como compartilhar esqueletos
Um recurso importante de Recursos de Esqueleto é o fato de um único Recurso de Esqueleto poder ser usado por várias Malhas Esqueléticas, contanto que elas usem a mesma hierarquia geral de plataforma. Isso significa que os nomes e a ordem hierárquica dos seus Ossos devem ser consistentes de modo a compartilhar o trabalho corretamente.
Por exemplo, considere um membro com três Ossos numa Malha Esquelética. Os ossos se chamam 1, 2 e 3:
Se quiser compartilhar este Esqueleto com outra Malha Esquelética, você precisará manter os Ossos na mesma ordem e com os mesmos nomes. A segunda Malha Esquelética, contudo, pode conter Ossos que são adições ou periféricos para a hierarquia. Sempre que os dados de animação são recebidos para um Osso que não está incluso na Malha Esquelética, eles serão ignorados.
Nesse caso, sua nova hierarquia poderá ficar parecida com a imagem abaixo. Aqui, a segunda Malha Esquelética tem Ossos extras, enquanto ainda mantém e não interfere na hierarquia original a partir da primeira Malha Esquelética.
Contudo, para que ambas as Malhas Esqueléticas usem o mesmo Recurso de Esqueleto, você não poderá mudar a ordem da hierarquia ou renomear os Ossos. Se uma segunda Malha Esquelética usar uma hierarquia de Ossos diferente e nomear uma estrutura, você precisará criar um novo Recurso de Esqueleto.
Se inserir um Osso na hierarquia sem alterar a ordem, ela poderá ser compartilhada. Mas, na maioria dos casos, o Osso extra poderá causar deslocamentos de transformação não acidentais no seu Esqueleto. É recomendável evitar isso, se possível.
Ao considerar as regras de compartilhamento, há várias maneiras de compartilhar Esqueletos entre Malhas Esqueléticas na Unreal Engine. Confira detalhadamente abaixo.
Mesclagem durante a importação
O primeiro método ara compartilhar Esqueletos é realizado durante o processo de importação de FBX. Ao importar sua nova Malha Esquelética (com ossos adicionais e periféricos que atendam às regras acima), você poderá selecionar um Esqueleto a partir de uma Malha Esquelética que já existe em seu projeto. Em seguida, a Unreal Engine irá mesclar os Esqueletos, aplicando novos Ossos na hierarquia. Além disso, as proporções do seu Esqueleto serão definidas pela Malha Esquelética original a partir da qual foi criada.
Se você estiver importando um Esqueleto que é largamente diferente do Esqueleto para o qual está tentando mesclar e viola regras de compartilhamento, uma mensagem de erro será exibida:
Neste caso, talvez você precise criar um novo Recurso de Esqueleto para a Malha Esquelética que está sendo importada, em vez de mesclar numa existente.
Ao visualizar seu Esqueleto mesclado, você verá estes Ossos adicionais listados em sua hierarquia, mas eles estarão visíveis e ativos apenas para a Malha Esquelética para os quais foram destinados.
Esqueletos compatíveis
Além disso, esqueletos podem compartilhar ativos de animação sem destruir nada ao definir outros esqueletos como compatíveis. Os esqueletos compatíveis podem compartilhar sequências de animação, montagens, Blueprints de animação e muito mais.
Para definir outro esqueleto como compatível para um personagem, abra o ativo de esqueleto do personagem no Editor de Esqueleto e, em seguida, abra o Gerenciador de Redirecionamento ao clicar no botão na Barra de Ferramentas.
No Gerenciador de Redirecionamento, localize a seção "Gerenciar esqueletos compatíveis" no painel Origens de Redirecionamento e clique em "Adicionar esqueleto" para selecionar outro ativo de esqueleto no seu projeto por meio do menu de contexto.
Agora as animações poderão ser compartilhadas com base no esqueleto que foi adicionado à lista "Gerenciamento de origens compatíveis".
A compatibilidade do esqueleto é bidirecional. Se você definir o Esqueleto 1 para ser compatível com o Esqueleto 2, isso também significa que agora o Esqueleto 2 é compatível com o Esqueleto 1.
A criação e o gerenciamento de um sistema de esqueletos compatíveis pode ser uma maneira eficiente de otimizar a quantidade de recursos de animação que seu projeto requer para animar múltiplos personagens. Contudo, para utilizar o sistema de Esqueletos Compatíveis, todos os personagens devem ter praticamente estruturas idênticas de hierarquia de esqueleto e conversões de nome. Além disso, todos os personagens devem ter proporções de malha semelhantes para alcançar resultados ideais.
Para compartilhar animações em personagens com a mesma estrutura de esqueleto, mas proporções diferentes, consulte a documentação "Redirecionamento de animação".
Para reconstruir sequências de animação a fim de trabalhar em vários personagens com estruturas de esqueleto radicalmente diferentes, consulte a documentação "Redirecionamento de plataforma CI".
Recursos do esqueleto
Os Esqueletos na Unreal Engine são compatíveis com uma variedade de recursos para anexar, mesclar e realizar outras ações. Consulte as páginas a seguir para saber mais sobre eles:
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
Edição de esqueleto
Crie e edite ativos de esqueleto usando as ferramentas de edição 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.