Você pode usar as ferramentas de edição de esqueleto da Unreal Engine para editar e modificar esqueletos existentes e realizar ações como renomear ossos, editar a posição dos ossos ou alterar a hierarquia dos ossos.
Você também pode criar novos ativos de esqueleto para qualquer malha estática sem precisar importar um arquivo FBX usando ferramentas como criação de ossos e preenchimento do peso de revestimento. Em conjunto com ferramentas como Control Rig e Sequencer, você pode usar a Unreal Engine para revestimento e animação de personagens totalmente no editor.
Pré-requisitos
Habilite o Plugin de Ferramentas de edição de Malha esquelética. Vá até Editar > Plugins na barra de menus e encontre Ferramentas de edição de malha de esqueleto na seção Animação ou use a barra de pesquisa. Habilite o plug-in e reinicie o editor.
Seu projeto contém um objeto de Malha estática que você pode usar para criar um esqueleto ou um personagem de malhas do esqueleto cujo ativo de esqueleto você deseja editar.
Como criar uma malha esquelética
Clique com o botão direito em qualquer objeto de Malha estática no Navegador de Conteúdo e selecione a opção Converter em malha de esqueleto no menu de contexto.
Depois de selecionar a opção Converter em malha de esqueleto, será exibido um menu permitindo que você selecione um ativo de esqueleto existente que será vinculado à Malha estática. Outra opção é selecionar Criar novo para criar um ativo de esqueleto.
Ao criar um ativo de esqueleto, será criado um único osso-raiz no ponto de origem da Malha estática.
Como editar um ativo de esqueleto
Após criar um ativo de esqueleto ou selecionar um ativo existente que deseja editar, abra o esqueleto no Editor de esqueleto. Depois de abrir o editor, selecione o botão Ferramentas de edição na barra de ferramentas para começar a editar o esqueleto.
Aqui, você pode consultar uma visão geral das ferramentas e dos painéis do Editor de esqueleto.
Painel de ferramentas
Skeleton Tree
Detalhes/Detalhes do ativo/Pré-visualização
Como criar e editar ossos
Para começar a criar ossos, selecione o modo Esqueleto no Painel de ferramentas.
A ferramenta Editar esqueletopermite posicionar ossos dentro da malha na janela de visualização.
Ative o modo Adicionar (N), selecione um osso na janela de visualização e arraste-o até o comprimento e a posição corretos no personagem. O primeiro osso selecionado atuará como o pai do novo osso.
Depois de criar novos ossos, selecione Aceitar para confirmar o osso e sua posição.
Use Comprimento do eixo e Espessura do eixo para visualizar a direção dos novos ossos.
Quando habilitado, a propriedade Atualizar filhos moverá os ossos filhos do osso selecionado quando editado. Isso é útil para ajustar cadeias inteiras.
Como criar ossos pais
Os ossos podem ser reatribuídos na hierarquia do esqueleto. Para isso, selecione os ossos no painel Skeleton tree, arraste-os e solte-os em um novo pai.
Como renomear ossos
Para renomear ossos (F2), clique com o botão direito no osso e selecione a opção Renomear osso no menu de contexto.
Também é possível renomear ossos em massa ao selecionar vários ossos de uma cadeia. Além disso, você pode usar um operador de hashtag (#) no final do nome para renomear vários ossos usando um numeral sucessivo. Por exemplo, você pode fazer uma seleção múltipla de uma cadeia e renomear o primeiro osso como tail_##1. Após inserir a alteração, o primeiro osso se tornará tail_001 e os ossos sucessivos se tornarão tail_002 etail_003.
Modo de edição
Para editar os ossos existentes no esqueleto , selecione Modo de edição e use ferramentas como Orientar ossos e Espelhar ossos.
Orientar ossos
Os ossos precisam apontar para a direção correta para girar de uma maneira desejável. Isso se chama Orientação dos ossos. Para orientar os ossos, selecione a cadeia que deseja orientar e expanda a seção Orientar.
Aqui você pode consultar uma lista das propriedades de Orientação dos ossos e uma descrição de sua função:
| Propriedade | Descrição |
|---|---|
Primário | Defina a direção dos ossos, que costuma ser o eixo X. |
Secundário | Defina o eixo que representará a direção para cima dos ossos. |
Usar plano como secundário | Quando habilitada, essa propriedade criará um plano pelos ossos para ajudar na orientação. |
Destino secundário | Defina a posição a ser usada para o eixo secundário. |
Orientar filhos | Quando habilitada, essa propriedade orienta todos os filhos abaixo do osso selecionado. |
Você também pode orientar os ossos manualmente selecionando o osso e usando o dispositivo de Girar (R) ou especificando explicitamente um valor de transformação em cada eixo (X, Y e Z).
Espelhar ossos
Para acelerar o processo de criação do esqueleto, você pode usar a ferramenta Espelhar ossos para espelhar uma cadeia de ossos e copiar membros ou outras estruturas ósseas espelhadas. Para o espelhamento de uma cadeia de ossos, selecione a cadeia ou os ossos que deseja espelhar e use o botão Espelhar no Modo de edição.
Aqui você pode consultar uma lista das propriedades de Espelhamento dos ossos e uma descrição de sua função:
| Propriedade | Descrição |
|---|---|
Espelhar eixo | Defina o plano do eixo para espelhar. |
Espelhar rotação | Quando essa opção é habilitada, a rotação no plano será invertida. Em geral, isso é necessário para animação. |
String esquerda | Defina o nome que será usado para pesquisar no lado esquerdo. |
String direita | Defina o nome que será usado para pesquisar no lado direito. |
Espelhar filhos | Quando essa opção é habilitada, os ossos espelhados também espelham todos os filhos na cadeia de ossos selecionada. |
Pesos de revestimentos
Quando adicionar novos ossos à sua Malha esquelética, a ferramenta Vincular revestimento ajudará a adicionar pesos de revestimento a esses ossos para que os ossos tenham influência na geometria da malha. Pesos de revestimento são valores atribuídos a cada vértice da geometria da Malha esquelética que representam a influência que um osso tem para deformar o vértice quando o osso se move. Cada vértice pode ser influenciado por vários ossos no esqueleto. Como usuário, você precisa atribuir um peso a cada vértice de cada osso para informar a quais ossos ele deve ser anexado. Cada vértice contém um valor de 0,0 a 1,0 para cada osso. Um valor de 0 significa que o vértice não é afetado pelo osso e um valor de 1 significa que o vértice está totalmente anexado ao osso. Valores entre 0 e 1 permitem que um vértice seja parcialmente afetado por um osso. Não é prático definir o peso do revestimento para cada vértice individualmente. Preencher mapas de peso de revestimento é uma solução melhor para criar deformações elegantes em um personagem inteiro.
Os valores de peso de revestimento para cada vértice são normalizados, ou seja, o peso total em cada vértice deve ser igual a 1. Isso garante que, quando o esqueleto como um todo for translado, os vértices na malha se movam com ele. Se o peso total de um vértice fosse inferior a 1, o movimento do vértice pareceria atrasado em relação ao movimento do esqueleto. Por outro lado, se o valor total for maior que 1, o vértice se moverá mais que o esqueleto. Por esse motivo, a Unreal Engine impõe um valor total de 1 ao normalizar os valores de peso do revestimento para cada vértice da malha.
Por exemplo, se um vértice no cotovelo tiver um valor de 0,7 no osso do antebraço, o peso de 0,3 restante será atribuído a um ou mais ossos. Neste caso, ele pertence ao braço.
Quando você edita um peso de vértice, a Unreal normaliza automaticamente os outros pesos para garantir que o valor total seja sempre igual a 1. Isso pode fazer com que a Unreal Engine ajuste automaticamente os valores dos pesos de revestimento.
Se o vértice tiver apenas uma influência, ou seja, um osso com peso maior que zero, não será possível modificar o peso desse osso. Se você definir um valor diferente de 1,0, o procedimento de normalização será acionado, o que retornará o valor a 1,0, independente do valor atribuído. Quando um vértice tem um peso diferente de zero atribuído a vários ossos, o procedimento de normalização descarregará peso adicional nas outras influências conforme necessário para atingir o peso definido pelo usuário.
Considere o exemplo anterior com um vértice com peso de 0,7 no antebraço e 0,3 no braço. Se o usuário tentar remover peso do antebraço, definindo-o com um valor inferior a 0,6, o procedimento de normalização alterará automaticamente o valor do braço de 0,3 para 0,4, de modo a manter um valor total de 1.
É melhor adicionar apenas pesos de vértice explícitos, permitindo que o procedimento de normalização remova o peso conforme necessário para atingir o valor desejado.
Se quiser que um osso tenha menos influência, é melhor adicionar peso a um osso diferente. Isso permite que você seja explícito sobre o lugar da influência, em vez de depender da normalização para dividi-la igualmente entre as outras influências.
Como vincular pesos de revestimento
Para começar a preencher pesos de revestimento, selecione o modo Revestimento no Painel de ferramentas e selecione a ferramenta Vincular revestimento para definir as configurações de linha de base dos ativos.
Aqui você pode consultar uma lista das propriedades da ferramenta Vincular revestimento e uma descrição de sua função:
| Propriedade | Descrição |
|---|---|
Tipo de vinculação | Selecione o método a ser usado para a vinculação. Você pode selecionar entre os seguintes métodos.
|
Rigidez | Defina a rigidez da vinculação. Valores mais baixos permitem que ossos mais distantes contribuam para a vinculação. |
Máximo de influências | Defina o número máximo de ossos que influenciarão cada vértice. |
Resolução de voxel | Quando o Tipo de vinculação estiver definido como Voxel geodésico, você poderá usar essa propriedade para definir a resolução da grade voxelizada. Valores altos podem afetar o desempenho, mas podem ajudar a resolver detalhes mais sutis. |
Preencher pesos
Com um conjunto de pesos base, você pode preencher mapas de peso de revestimento para definir a área da malha sobre a qual cada osso tem influência. Para começar a preencher mapas de peso de revestimento, selecione o botão Editar pesos no modo Revestimento.
Em seguida, você pode selecionar a ferramenta que deseja usar para preencher mapas de peso de revestimento na malha. Há dois modos de edição de peso:
Pincel: usa uma ferramenta de pincel para preencher pesos na malha inteira. Esse modo é usado principalmente para preencher pesos em áreas grandes ou estruturas simples.
Vértices: usa uma ferramenta de seleção para você selecionar vértices individuais para editar pesos de revestimento. Esse modo é usado principalmente para edição e mascaramento de peso detalhado.
Modo pincel
Para começar a preencher pesos usando o modo Pincel, selecione um osso da hierarquia no painel Skeleton tree. Isso exibirá os pesos atribuídos a esse osso na malha.
O modo Pincel contém um conjunto de operações de pincel para ajudar a editar pesos:
| Operação | Descrição |
|---|---|
Adicionar | Esse modo é o pincel padrão que adicionará pesos aos valores de peso atuais até que o valor máximo de |
Substituir | Esse modo substitui os pesos atuais, menos o valor de intensidade. |
Multiplicar | Esse modo multiplica os pesos atuais pelo valor de intensidade. |
Relaxar | Esse modo aplica a média dos pesos dos vértice conectados, por bordas, aos pesos atuais. Esse modo funciona de forma semelhante à suavização. |
Você também pode selecionar entre dois tipos de pincéis:
| "Brush" | Descrição |
|---|---|
Superfície | O Pincel de Superfície afeta os vértices proporcionais à distância ao longo da superfície da malha, conhecida como Distância geodésica. Isso é útil ao preencher em locais estreitos com muita curvatura, como lábios. O Pincel de Superfície não afetará o lábio superior ao preencher o inferior, e vice-versa. |
Volume | O Pincel Volumétrico afeta os vértices proporcionalmente à distância em linha reta do centro do pincel ao vértice. Independentemente da conectividade ou da distância ao longo da malha. |
Cada pincel também pode ser modificado com as seguintes configurações:
| Configuração | Descrição |
|---|---|
Raio | Defina o tamanho do pincel. |
Intensidade | Defina a intensidade do Pincel que influencia o resultado das operações do Pincel. |
Enfraquecimento | Define o enfraquecimento exponencial do pincel ou como as influências do pincel apontam ao redor do centro do pincel. |
Depois de selecionar o pincel e o modo, você pode começar a preencher o mapa de peso da revestimento do osso selecionado clicando e arrastando a ferramenta pincel na malha na janela de visualização.
A tecla de atalho B pode ser usada para editar visualmente o tamanho do pincel e a intensidade do pincel.
Segure B e arraste para esquerda e para a direita para editar o raio do pincel.
Segure B e arraste para cima e para baixo para editar a intensidade do pincel.
Quando terminar de editar os pesos, clique em Aceitar para finalizar os novos pesos e saia da ferramenta.
Se você não estiver satisfeito com o resultado, poderá desfazer facilmente as modificações, mesmo depois de aceitar os pesos, usando Ctrl+Z.
Modo de vértices
Com o modo de Vértices, você pode selecionar vértices específicos cujos pesos deseja editar usando a ferramenta de seleção Marquee.
Aqui você pode consultar uma lista das operações do Modo de vértices e uma descrição de sua função:
| Operação | Descrição |
|---|---|
Espelhamento | Espelha os ossos selecionados e os pesos de vértice no outro lado com base na direção do plano de espelhamento. |
Inundar pesos | Inunde os pesos selecionados usando as operações de Pincel. Para inundar pesos, selecione vértices e ossos e use a operação Adicionar. Se os pesos em um osso forem inundados para |
Podar pesos | Os pesos abaixo do valor de limite fornecido serão removidos. Isso é particularmente útil para melhorar o desempenho. |
Para suavizar perímetros rígidos de mapas de peso, selecione vértices, um osso e use a operação Relaxar.
Espelhar pesos
Para acelerar o fluxo de trabalho de preenchimento com peso de revestimento, você pode espelhar estruturas simétricas, como membros ou outras estruturas espelhadas, usando o botão Espelhar. Para espelhar uma estrutura, selecione o osso, a cadeia de ossos ou os vértices que deseja espelhar e, em seguida, selecione o botão Espelhar no Painel de ferramentas, na aba Editar pesos.
Ao usar o modo de vértices, se nenhum vértice estiver selecionado, as operações serão executadas em todos os vértices afetados pelo osso selecionado. Isso pode ser útil para espelhamento de pesos de todo o lado esquerdo de um personagem para o seu lado direito.
Preencher mapas de atributos
Os mapas de atributos são mapas de peso por vértice que podem ser preenchidos e enviados como dados a qualquer lugar na Unreal Engine, como o Gráfico do deformador. Para criar um novo mapa de atributos para começar a preencher, vá até a aba Editar atributos, dê um novo nome ao mapa e execute Adicionar camada de mapa de peso.
Esse novo mapa será exibido na seção Atributos de vértice, em Inspetor de atributos.
Depois de criar um mapa de atributo, você pode preencher o mapa selecionando a aba Preencher mapas no painel de ferramentas. Você pode escolher o tipo de mapa para preencher em Atributo selecionado e começar a preencher a malha clicando e arrastando a Janela de Visualização.
Referência de teclas de atalho
Aqui, você pode conferir uma lista das teclas de atalho disponíveis para cada modos de criação de esqueleto.
Edição de peso
| Teclas de atalho | Descrição |
|---|---|
B (Segure) (arraste para a esquerda e para a direita) | Alterar tamanho do raio do pincel |
B (Segure) (arraste para cima e para baixo) | Alterar intensidade do pincel |
Shift | Relaxar pincel |
Ctrl | Inverter pincel atual |
Clique com o botão do meio do mouse (em um osso) | Selecionar visualmente a influência para preencher |
F | Enquadre a câmera nos vértices ou ossos selecionados |
Edição de ossos
| Teclas de atalho | Descrição |
|---|---|
N | Criar novo osso |
ESC | Editar osso |
B | Reclassificar pai |
Shift + P | Desconectar (remover pai) |
Delete | Remover osso |
API Python
Aqui você pode conferir a API Python para as ferramentas de edição de esqueleto, que você pode usar para escrever código para automatizar seu fluxo de trabalho.
Como acessar ossos e pesos
mesh_path = "/Game/Characters/Mannequins/Meshes/SKM_Quinn_Simple"
asset_editor = unreal.EditorAssetLibrary()
skel_mesh = asset_editor.load_asset(mesh_path)Carregar as bibliotecas de modificadores
# load the weight modifier
weight_modifier = unreal.SkinWeightModifier()
# load the skeleton modifier
skeleton_modifier = unreal.SkeletonModifier()Como criar novos ossos
# Create two bones, a and b
skeleton_modifier.set_skeletal_mesh(skel_mesh)
skeleton_modifier.add_bones(["a", "b"],["root", "root"], [unreal.Transform(), unreal.Transform()])Como criar ossos pais
# Parent bone b to bone a
skeleton_modifier.parent_bone("b", "a")Confirmar alterações
# Commit the changes
skeleton_modifier.commit_skeleton_to_skeletal_mesh()