GuiasTutorial6 min de leitura
Rigue e anime um personagem 3D no Godot 4: O add-on do AFK AI, AnimationPlayer e AnimationTree
Clique num modelo no painel FileSystem, depois em Rig e, em cerca de um minuto, um GLB rigado com as animações aparece ao lado, com as caminhadas e os idles já em loop.
Signed in as you@example.comSign out
3 of 3 rigs left this month.
Model: hero.glb
Body typeHuman
AnimationsAll animations
FacingAuto
RigRigging...Cancel
- hero_riggedNode3D
- └Skeleton3DSkeleton3D
- └HeroMeshInstance3D
- └AnimationPlayerAnimationPlayer
- └Idle_Aloop ⟳
- └Walkloop ⟳
- └Jogloop ⟳
- └Sprintloop ⟳
- └…
O Godot é ótimo para tocar animações, mas não tem como criar um rig. Por isso, um personagem costuma fazer uma viagem de ida e volta: exportar, rigar no Blender (ou no Mixamo, só para humanoides), procurar animações, exportar um GLB e configurar de novo o loop de cada animação depois da importação.
O add-on do AFK AI faz essa viagem a partir de um painel no editor do Godot. Clique no seu modelo no painel FileSystem e depois em Rig. Cerca de um minuto depois, hero_rigged.glb é salvo ao lado de hero.glb, com um esqueleto feito para o corpo dele, pesos de skin e as animações num AnimationPlayer. Os idles, as caminhadas e as corridas já vêm em loop.
O que você precisa
- Godot
- 4.2 ou mais recente, a versão padrão ou a .NET.
- Seu modelo
- Um
.glb,.gltfou.fbxno projeto, de até 50 MB. Um.gltfprecisa ter tudo num único arquivo; se o seu tiver um.binao lado, exporte um.glb. - 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. Só o arquivo de modelo que você escolher é enviado.
Instale o add-on
- Baixe o add-on na página do plugin para Godot.
- Copie a pasta
addons/afk_aidele para a pastaaddonsdo projeto. Se o projeto não tiver uma pastaaddons, crie. - Abra Project > Project Settings > Plugins e marque Enable ao lado de AFK AI.
Um painel AFK AI aparece à direita, ao lado do Inspector.
Rigue um modelo
- Entre. Clique em Sign in no painel AFK AI. O navegador abre o afk.ai; entre com o Google por lá. O painel mostra seu e-mail e quantos rigs ainda restam neste mês. Se o navegador não conseguir voltar para o Godot, ele mostra um código de login: cole em I have a sign-in code e clique em Use.
- Escolha o modelo. No painel FileSystem, clique no arquivo do modelo.
- Escolha as opções. Body type: Human para pessoas e qualquer coisa com duas pernas, ou o animal ou a criatura que ele for. Animations: All animations, ou Rig only para receber só o esqueleto. Facing: deixe em Auto.
- Clique em Rig. O painel mostra o que está acontecendo: enviando, esperando, rigando e baixando. Enquanto isso, continue trabalhando.
Quando termina, hero_rigged.glb é salvo ao lado de hero.glb, importado e selecionado. O original continua intacto. Se rigar o mesmo modelo de novo, você recebe hero_rigged_2.glb, então nada é sobrescrito.
O que vem no GLB rigado
Para usar, arraste hero_rigged.glb para uma cena: ele entra como um único nó, com tudo dentro dele.
- Skeleton3D
- Um esqueleto feito para o tipo de corpo, com a sua malha vinculada a ele. Um humano recebe 66 ossos, incluindo todos os dedos, com nomes como pelvis, spine_01, hand_r, foot_l e assim por diante.
- AnimationPlayer
- Todas as animações, cada uma com o próprio nome. Para um humanoide, até 593: Idle_A, Walk, Jog, Sprint, Jump_Start, Sword_Attack, Dance_Groove e centenas de outras. Uma conta grátis recebe as animações grátis, e um plano libera o resto.
- Loops
- Idles, caminhadas, corridas, voos e nados já vêm em loop. O add-on grava isso nas configurações de importação do arquivo antes de o Godot importar.
- Orientação
- O personagem fica virado para +Z, como todo modelo glTF.
Toque animações com um AnimationPlayer
O personagem jogável mais simples: um CharacterBody3D com um CollisionShape3D (uma cápsula), e o modelo rigado arrastado para dentro dele e renomeado para Hero. Anexe este script ao CharacterBody3D:
extends CharacterBody3D
const SPEED := 4.0
var gravity: float = ProjectSettings.get_setting("physics/3d/default_gravity")
@onready var hero: Node3D = $Hero
@onready var anim: AnimationPlayer = $Hero/AnimationPlayer
func _physics_process(delta: float) -> void:
var input := Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
var direction := Vector3(input.x, 0.0, input.y)
velocity.x = direction.x * SPEED
velocity.z = direction.z * SPEED
if not is_on_floor():
velocity.y -= gravity * delta
move_and_slide()
if direction.length() > 0.1:
# the model faces +Z: turn that toward where it's going
hero.rotation.y = lerp_angle(hero.rotation.y, atan2(direction.x, direction.z), 10.0 * delta)
anim.play("Jog", 0.2) # 0.2 s blend from whatever was playing
else:
anim.play("Idle_A", 0.2)Rode a cena, e as setas do teclado fazem o personagem trotar por aí, voltando suavemente para o idle quando você solta. Chamar play com a animação que já está tocando só dá continuidade a ela, então não tem problema chamar a cada frame.
Misture as animações com uma AnimationTree
Uma AnimationTree mistura animações conforme a velocidade e cuida de ações únicas, como um ataque. Configure uma vez no editor:
- Adicione um nó AnimationTree ao personagem. No Inspector, defina Anim Player como
Hero/AnimationPlayere Tree Root como um novo AnimationNodeStateMachine. - No painel AnimationTree, embaixo, clique com o botão direito e adicione um BlendSpace1D. Dê o nome
Locomotion, abra e adicione três pontos: Idle_A em 0, Walk em 1,5 e Jog em 4 (defina o Max Space dele como 4). - Clique com o botão direito de novo e adicione a animação Sword_Attack. Conecte Start a Locomotion, Locomotion a Sword_Attack, e Sword_Attack de volta a Locomotion com Switch Mode em At End e Advance Mode em Auto.
- Em Project > Project Settings > Input Map, adicione uma ação chamada
attacke associe uma tecla a ela.
Depois, no mesmo script, apague as duas linhas de anim.play e controle a árvore:
@onready var tree: AnimationTree = $AnimationTree
@onready var playback: AnimationNodeStateMachinePlayback = tree.get("parameters/playback")
func _process(_delta: float) -> void:
tree.set("parameters/Locomotion/blend_position", Vector2(velocity.x, velocity.z).length())
if Input.is_action_just_pressed("attack"):
playback.travel("Sword_Attack")
Enquanto a AnimationTree estiver ativa, é ela que toca as animações, então não chame também o play do AnimationPlayer.
Segure uma espada, mude um loop
Para colocar algo na mão do personagem, selecione o Skeleton3D dele, adicione um BoneAttachment3D dentro dele, defina Bone Name como hand_r e coloque a espada dentro do attachment. Ela acompanha a mão em todas as animações.
Para mudar quais animações ficam em loop, clique duas vezes em hero_rigged.glb no painel FileSystem para abrir as Advanced Import Settings. Escolha a animação embaixo do AnimationPlayer, à esquerda, mude o Loop Mode e clique em Reimport.
Animais, criaturas e props
Escolha o tipo de corpo no painel antes de clicar em Rig: Fox para cachorros, gatos e lobos, Horse para qualquer animal com cascos, Bird, Dragon, Kaiju para dinossauros, Spider, Insect, Snake, Fish, Kangaroo, Frog, Turtle, Ghost, ou Object para props. Cada um recebe um esqueleto feito para o corpo dele e animações feitas para ele: galopes, batidas de asa, rugidos, nados, rastejos. Elas tocam do mesmo jeito, com o mesmo AnimationPlayer e a mesma AnimationTree. Todo modelo rigado com o mesmo tipo de corpo tem os mesmos nomes de ossos e de animações, então a AnimationTree de um lobo serve para todos os lobos. O guia de animais lista as animações de cada tipo.
- Dragão
- Quadrúpede
- Com cascos
- Dinossauro
- Aranha
- Peixe
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. Cancel encerra a espera, não o rig, que ainda conta. Rig que falha não conta. Quando seus rigs acabam, o painel avisa e mostra See plans, que abre os planos do afk.ai.
Perguntas frequentes
O Godot tem um auto-rigger embutido?
Não. O Godot importa esqueletos e animações que já existem, e o retargeting dele associa um esqueleto humanoide a outro, mas ele não riga uma malha. O add-on do AFK AI cuida dessa parte e entrega ao Godot um GLB comum.
Funciona no Godot 3?
Não. Precisa do Godot 4.2 ou mais recente. Com o Godot 3, rigue o modelo no afk.ai/rig e importe o GLB baixado.
Dá para usar num projeto em C#?
Sim. O add-on é em GDScript, que a versão .NET do Godot também roda, e o GLB rigado é o mesmo nos dois casos. Em C#, toque uma animação com GetNode<AnimationPlayer>("Hero/AnimationPlayer").Play("Jog", 0.2);.
Por que GLB e não FBX?
GLB é o formato que o Godot importa melhor: o esqueleto, os pesos de skin e todas as animações chegam do jeito que são, em qualquer versão do Godot 4. Seu original pode ser um FBX; o que volta é um GLB.
O add-on vai parar no jogo exportado?
O que o seu jogo usa é o GLB rigado. O add-on em si só faz alguma coisa no editor; para deixar os arquivos dele fora de uma exportação, exclua addons/afk_ai/* na aba Resources do preset de exportação.
Dá para rigar vários modelos de uma vez?
Um por vez, cerca de um minuto cada. Para rigar uma pasta inteira por script, use a API de rigging: ela gera o mesmo GLB.
Posso usar os personagens rigados num jogo comercial?
Sim. Os esqueletos e as animações são CC0, e o seu modelo continua sendo seu.
Também tem plugin do AFK AI para Blender, Unity ou Unreal?
Sim. Veja os guias do Blender, da Unity e da Unreal Engine, 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.
Mais guias
Tutorial
Auto-rig de personagem no Blender: o add-on grátis do AFK AI
Selecione seu modelo, clique em Rig e, em cerca de um minuto, uma cópia rigada com as animações aparece ao lado dele, no Blender 4.2 ou mais recente.
Tutorial
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.
Tutorial
Auto-rig de qualquer modelo 3D dentro da Unity: pronto como Humanoid, com os clipes de animação
Escolha um modelo na janela Project e clique em Rig. Um minuto depois, um FBX rigado aparece ao lado dele, configurado como Humanoid e com cada animação como um clipe.