GuiasTutorial8 min de leitura

Auto-rig de personagem na Unreal Engine 5: De static mesh a skeletal mesh animado

Clique com o botão direito numa malha, escolha Rig with AFK AI e, um minuto depois, um skeletal mesh com esqueleto, physics asset e animações está na mesma pasta.

Content Browser › Hero

Hero · Static Mesh

AFK AI

Rig with AFK AI

Edit… · Duplicate · Rename …

Content Browser › /Game/Characters
  • HeroStatic Mesh
  • Hero_riggedSkeletal Mesh
  • Hero_rigged_SkeletonSkeleton
  • Hero_rigged_PhysicsAssetPhysics Asset
  • …_Idle_AAnimation Sequence
  • …_WalkAnimation Sequence
  • …_JogAnimation Sequence
  • …
Desenho feito a partir do plugin, não uma captura de tela: Rig with AFK AI no menu de botão direito de uma malha e o skeletal mesh, o esqueleto, o physics asset e as animações que ele adiciona ao lado do original.

A Unreal Engine anima personagens muito bem, mas não faz o rig deles. Um static mesh vindo de um programa de escultura ou de um pack do marketplace não tem esqueleto nem pesos de skin, então o caminho de sempre é um desvio: exportar, rigar no Blender ou no Mixamo, importar de volta como skeletal mesh e depois procurar animações que encaixem.

O plugin do AFK AI elimina o desvio. Clique com o botão direito na malha no Content Browser e escolha Rig with AFK AI. Cerca de um minuto depois, um skeletal mesh chamado Hero_rigged aparece na mesma pasta, com o esqueleto, o physics asset e as animações, pronto para um Animation Blueprint. Não tem C++ para compilar, então funciona também em projetos só de Blueprint.

O que você precisa

Unreal Engine
5.1 ou mais recente, no Windows, Mac ou Linux. Projetos só de Blueprint funcionam.
Sua malha
Um static mesh ou skeletal mesh importado de um arquivo .fbx, .glb ou .gltf de até 50 MB. O AFK AI recebe esse arquivo original.
Uma conta do afk.ai
Grátis, com o Google. Cada rig usa um dos rigs do mês da sua conta, igual ao afk.ai/rig.
Internet
O rigging roda nos servidores do afk.ai.

Instale o plugin

  1. Baixe o plugin na página do plugin para Unreal Engine e descompacte. Você vai ter uma pasta chamada AFKAI.
  2. Coloque essa pasta na pasta Plugins do projeto, ao lado do arquivo .uproject: MyGame/Plugins/AFKAI/AFKAI.uplugin. Se não existir uma pasta Plugins, crie.
  3. Abra o projeto ou reinicie. O plugin ativa dois plugins que já vêm com a Unreal, Python Editor Script Plugin e Editor Scripting Utilities. Se a Unreal pedir para reiniciar, aceite.

Um menu AFK AI aparece na barra de menus do editor. Para ter o plugin em todos os projetos, coloque a pasta em Engine/Plugins/Marketplace/AFKAI na sua instalação da Unreal e ative em cada projeto em Edit > Plugins.

Entre e rigue

  1. Escolha AFK AI > Sign in.... O navegador abre o afk.ai; entre com o Google e volte para a Unreal. O menu AFK AI agora mostra seu e-mail e quantos rigs ainda restam neste mês.
  2. No Content Browser, clique com o botão direito na malha e escolha Rig with AFK AI. (Ou selecione a malha e escolha AFK AI > Rig the selected mesh....)
  3. Uma janelinha pede o Body type (Human, ou o animal ou a criatura que ele for), as Animations (All animations, ou Rig only para receber só o esqueleto) e o Facing (deixe em Auto). O título dela avisa que isso usa um dos seus rigs. Clique em OK.
  4. Continue trabalhando. O menu AFK AI mostra o andamento, e o Output Log também, nas linhas que começam com “AFK AI”.

Se o navegador não conseguir voltar para a Unreal (por causa de um firewall ou porque a Unreal está em outro computador), a página do afk.ai mostra um código de login. Escolha AFK AI > I have a sign-in code..., cole o código e clique em OK.

O que você recebe

  • Skeletal Mesh: Hero_rigged, na mesma pasta do original, já selecionado. A malha original continua intacta.
  • Skeleton: feito para o tipo de corpo. Um humano recebe 66 ossos, com três joints em cada dedo, com os nomes dos ossos do próprio mannequin da Unreal: pelvis, spine_01, clavicle_l, upperarm_l, thigh_l e assim por diante.
  • Physics Asset: criado na importação, para ragdolls e colisão.
  • Animações: uma Animation Sequence para cada animação. Para um humanoide, até 593: idles, caminhadas, trotes, sprints, pulos, esquivas, golpes de espada, escudo, arco e pistola, danças, reações a golpes e mortes. Uma conta grátis recebe as animações grátis, e um plano libera o resto.
  • O FBX: Hero_rigged.fbx, salvo ao lado do arquivo de origem do original, ou na pasta Saved/AFK AI do projeto se não der para gravar lá. Se rigar de novo, você recebe Hero_rigged_2: nada é sobrescrito.

Como em qualquer importação, os novos assets só vão para o disco quando você salva: File > Save All.

O personagem de anime em T-pose com os joints posicionados pelo afk.ai indicados por pontos, inclusive nos dedos
anime-girl.glb · skeleton
root  └ pelvis    └ spine_01      └ spine_02        └ spine_03          └ neck_01            └ head          └ clavicle_l            └ upperarm_l              └ lowerarm_l                └ hand_l                  └ thumb_01_l  thumb_02_l  thumb_03_l                  └ index_01_l  index_02_l  index_03_l                  └ middle_01_l  middle_02_l  middle_03_l                  └ ring_01_l  ring_02_l  ring_03_l                  └ pinky_01_l  pinky_02_l  pinky_03_l          └ clavicle_r ... (igual do lado direito)    └ thigh_l      └ calf_l        └ foot_l          └ ball_l    └ thigh_r ... (igual do lado direito)
O esqueleto usado em todo rig humanoide do afk.ai: 66 ossos, com três joints em cada dedo, incluindo o polegar, e os mesmos nomes usados no Mannequin da Unreal Engine.

Veja em movimento, sem código

Arraste Hero_rigged para o level. No painel Details dele, em Animation, defina Animation Mode como Use Animation Asset, escolha uma animação em Anim to Play (Walk, por exemplo) e deixe Looping ativado. Aperte Play, ou só olhe na viewport.

Para conferir todas as animações rapidinho, clique duas vezes em qualquer Animation Sequence: o editor de animação abre e toca a animação no personagem.

Um Animation Blueprint para um personagem jogável

A configuração clássica: idle quando está parado, depois walk e jog conforme o personagem ganha velocidade.

  1. Clique com o botão direito em Hero_rigged e escolha Create > Anim Blueprint. Dê o nome ABP_Hero.
  2. No Event Graph dele, adicione uma variável float chamada Speed. A partir de Event Blueprint Update Animation, chame Try Get Pawn Owner, confira com Is Valid, depois Get Velocity, depois Vector Length XY, e atribua o resultado a Speed.
  3. No AnimGraph, clique com o botão direito, escolha Add New State Machine, dê o nome Locomotion e conecte a Output Pose.
  4. Dentro dela, crie três estados, Idle, Walk e Jog, e arraste as animações Idle_A, Walk e Jog do Asset Browser para cada um, conectadas ao Output Animation Pose.
  5. Desenhe transições nos dois sentidos entre eles, com regras em Speed em centímetros por segundo: de Idle para Walk quando Speed > 10, de Walk para Jog quando Speed > 300, e de volta quando a velocidade cair abaixo disso.
  6. No seu Character Blueprint, selecione o componente Mesh, defina Skeletal Mesh Asset como Hero_rigged e Anim Class como ABP_Hero. Desça o mesh até a base da cápsula e gire para ficar de frente para a seta azul, como o mannequin do template.

Prefere começar pelo C++? A mesma ideia, na versão mais enxuta: tocar uma animação em loop quando o jogo começa.

// HeroCharacter.h
UPROPERTY(EditAnywhere, Category = "Animation")
TObjectPtr<UAnimSequence> IdleAnimation;

// HeroCharacter.cpp
#include "Animation/AnimSequence.h"

void AHeroCharacter::BeginPlay()
{
    Super::BeginPlay();
    if (IdleAnimation)
    {
        GetMesh()->PlayAnimation(IdleAnimation, /*bLooping=*/ true);
    }
}
EntryIdle_A↓ Speed > 10↑ Speed < 10Walk↓ Speed > 300↑ Speed < 300Jog
Desenho: a state machine Locomotion. Cada estado toca uma animação, e Speed, em centímetros por segundo, passa de um para outro.

Root motion, com um pouco de Python

Algumas animações movem o personagem para a frente sozinhas: os nomes delas terminam em _RM, como Roll_RM, Dodge_left_RM ou Sword_Dash_RM. As outras tocam no lugar. A Unreal exige que o root motion seja ativado animação por animação, e o plugin já ativou o Python da Unreal, então poucas linhas fazem isso em todas de uma vez. Cole isto na linha de comando do Output Log, trocada de Cmd para Python:

import unreal

folder = "/Game/Characters"  # the folder Hero_rigged is in
for path in unreal.EditorAssetLibrary.list_assets(folder, recursive=False):
    anim = unreal.EditorAssetLibrary.load_asset(path)
    if isinstance(anim, unreal.AnimSequence) and anim.get_name().endswith("_RM"):
        anim.set_editor_property("enable_root_motion", True)
        unreal.EditorAssetLibrary.save_loaded_asset(anim)
        unreal.log("Root motion on: " + anim.get_name())

Depois, nos Class Defaults do ABP_Hero, defina Root Motion Mode como Root Motion from Everything se você tocar essas animações na state machine, ou toque como montages.

Retargeting de e para o mannequin da UE5

Os ossos do esqueleto têm os nomes dos ossos do mannequin, então o retargeter da Unreal associa um ao outro com pouca ou nenhuma ajuda. Funciona nos dois sentidos: as animações do template Third Person no seu personagem, ou as animações do afk.ai no Manny e na Quinn.

Na Unreal 5.4 ou mais recente:

  1. Clique com o botão direito numa animação, por exemplo uma do template, e escolha Retarget Animations (Retarget Animation Assets nas versões mais novas).
  2. Defina o Target Preview Mesh como Hero_rigged. A origem é o mesh que veio com a animação.
  3. Deixe Auto Generate Retargeter ativado: a Unreal cria os IK Rigs e o IK Retargeter sozinha.
  4. Marque as animações que você quer, clique em Export Animations, escolha uma pasta e clique em Export.

Inverta a origem e o destino para levar as animações do Hero_rigged para o mannequin. Da 5.1 à 5.3, crie um IK Rig para cada esqueleto e um IK Retargeter entre eles, depois use Export Selected Animations no retargeter. Nos dois casos, assista a alguns resultados antes de confiar neles, principalmente as mãos.

Criaturas e props

O mesmo clique com o botão direito riga um dragão, um cavalo, um dinossauro, uma aranha ou um tubarão: escolha o tipo de corpo na janela de opções. Cada um recebe um esqueleto feito para o corpo dele e animações feitas para esse esqueleto, como bater asas, galopar, rugir ou nadar, então a fauna de um jogo de mundo aberto não precisa de um rigger. Props usam o tipo Object: quiques, giros, balanços e squash para itens coletáveis e portas. O guia de animais lista todos os tipos de corpo e as animações de cada um.

  • Dragão
  • Quadrúpede
  • Com cascos
  • Dinossauro
  • Aranha
  • Peixe
Seis dos outros tipos de corpo, rigados no afk.ai/rig e rodando as próprias animações.

O que conta como rig

Cada rig que chega ao AFK AI usa um dos rigs deste mês, igual ao afk.ai/rig e aos outros plugins do AFK AI. Stop waiting só faz a Unreal parar de esperar: o rig continua e ainda conta. Rig que falha não conta, e a mensagem explica por quê. O menu AFK AI mostra quantos rigs ainda restam; quando acabam, See plans abre os planos do afk.ai.

Quando algo dá errado

O menu AFK AI não aparece
Em Edit > Plugins, confira se AFK AI e Python Editor Script Plugin estão ativados e reinicie. Se o problema for outro, o Output Log mostra “AFK AI couldn't start” com o motivo.
“has no source file recorded”
Ou “was imported from a .obj file”: o AFK AI precisa do .fbx, .glb ou .gltf original. Exporte o modelo num desses formatos, importe e rigue esse.
“Couldn't find Hero's source file”
O arquivo foi movido depois da importação. Clique com o botão direito na malha, escolha Reimport With New File, selecione o arquivo onde ele está agora e rigue de novo.
“Unreal didn't import it as a skeletal mesh”
O rig deu certo, e o FBX está salvo onde a mensagem indica. Arraste o arquivo para o Content Browser e importe como Skeletal Mesh com as animações. Isso pode acontecer com o importador novo da Unreal 5.5 ou mais recente.
“Couldn't make a secure connection to AFK AI”
Um proxy, um antivírus ou o firewall da empresa está no caminho. Tente outra rede.
O rig falhou
Leia a mensagem. Em geral, trocar o tipo de corpo, ou deixar o modelo em pé e virado para a frente, resolve.

Perguntas frequentes

A Unreal Engine 5 consegue fazer o rig de um personagem sozinha?

Não a partir de um static mesh. A Unreal faz retargeting de animações entre esqueletos que já existem e tem ferramentas para criar e editar esqueletos na mão, mas nada que rigue uma malha para você. O plugin do AFK AI cuida dessa parte: transforma o static mesh num skeletal mesh com pesos de skin e animações, e a Unreal assume a partir daí.

Preciso de C++ ou do Visual Studio?

Não. O plugin é Python que a própria Unreal executa, sem nada para compilar, então funciona em projetos só de Blueprint. O C++ mais acima é só para projetos que já usam C++.

Funciona em quais versões da Unreal Engine?

Unreal Engine 5.1 ou mais recente, no Windows, Mac e Linux.

Dá para rigar um modelo que importei de um .obj?

Não diretamente: o plugin envia o arquivo de origem da malha e aceita .fbx, .glb ou .gltf. Exporte o modelo num desses formatos no seu programa 3D, importe e rigue.

Funciona com as animações do mannequin da UE5?

Sim. Os ossos têm os nomes dos ossos do mannequin, então o retargeter associa tudo com pouca ou nenhuma configuração, nos dois sentidos. Veja “Retargeting de e para o mannequin da UE5” mais acima.

Posso usar o personagem rigado num jogo que eu vendo?

Sim. Os esqueletos e as animações são CC0, e o seu modelo continua sendo seu.

Onde fica o arquivo rigado, se eu quiser usar em outro programa?

Hero_rigged.fbx fica salvo ao lado do arquivo de origem do original ou na pasta Saved/AFK AI do projeto. Ele abre no Blender, no Maya e em qualquer programa que leia FBX, com as animações.

Também tem plugin para Unity ou Blender?

Sim. Veja os guias da Unity e do Blender, e a visão geral de todos os plugins do AFK AI para os nove programas.

Rigue e anime seu modelo

Uma IA riga seu modelo no navegador. Depois, veja centenas de animações rodando nele. Baixe tudo em um único GLB para usar em qualquer engine.

Rigar um modelo

Mais guias