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.

AFK AI (dock)

Signed in as you@example.comSign out

3 of 3 rigs left this month.

Model: hero.glb

Body typeHuman

AnimationsAll animations

FacingAuto

Rig

Rigging...Cancel

Scene › hero_rigged
  • hero_riggedNode3D
  • └Skeleton3DSkeleton3D
  • └HeroMeshInstance3D
  • └AnimationPlayerAnimationPlayer
  • └Idle_Aloop ⟳
  • └Walkloop ⟳
  • └Jogloop ⟳
  • └Sprintloop ⟳
  • └…
Desenho feito a partir do plugin, não uma captura de tela: o painel AFK AI rigando hero.glb e a cópia rigada que ele salva ao lado, com as animações num AnimationPlayer.

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, .gltf ou .fbx no projeto, de até 50 MB. Um .gltf precisa ter tudo num único arquivo; se o seu tiver um .bin ao 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

  1. Baixe o add-on na página do plugin para Godot.
  2. Copie a pasta addons/afk_ai dele para a pasta addons do projeto. Se o projeto não tiver uma pasta addons, crie.
  3. 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

  1. 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.
  2. Escolha o modelo. No painel FileSystem, clique no arquivo do modelo.
  3. 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.
  4. 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:

  1. Adicione um nó AnimationTree ao personagem. No Inspector, defina Anim Player como Hero/AnimationPlayer e Tree Root como um novo AnimationNodeStateMachine.
  2. 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).
  3. 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.
  4. Em Project > Project Settings > Input Map, adicione uma ação chamada attack e 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.

StartLocomotionBlendSpace1D · Idle_A, Walk, Jog↓ travel("Sword_Attack")↑ At EndSword_Attack
Desenho: a state machine de uma AnimationTree. Locomotion mistura Idle_A, Walk e Jog conforme a velocidade; travel() vai para Sword_Attack, que volta quando termina.

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
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. 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.

Rigar um modelo

Mais guias