GuíasTutorial6 min de lectura

Rigging y animación de un personaje 3D en Godot 4 con el plugin de AFK AI, AnimationPlayer y AnimationTree

Selecciona un modelo en el panel FileSystem y pulsa Rig. En un minuto aproximadamente tendrás a su lado un GLB con rig y animaciones, con los ciclos de caminar y de reposo ya en bucle.

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 ⟳
  • └…
Esquema basado en el plugin, no una captura de pantalla: el panel AFK AI mientras hace el rig de hero.glb y la copia con rig que guarda junto al original, con sus animaciones en un AnimationPlayer.

Godot reproduce animaciones muy bien, pero no permite hacer el rig de un modelo. Por eso, preparar un personaje suele exigir varios pasos fuera del editor: exportarlo, hacer el rig en Blender o Mixamo (este último solo para humanoides), buscar animaciones, exportar un GLB y volver a configurar los bucles después de importarlo.

El plugin de AFK AI se encarga de todo el proceso desde un panel del editor de Godot. Selecciona tu modelo en el panel FileSystem y pulsa Rig. En un minuto aproximadamente tendrás hero_rigged.glb junto a hero.glb, con un esqueleto adaptado a su cuerpo, los pesos de skinning y sus animaciones en un AnimationPlayer. Las animaciones de reposo, caminar y correr ya vienen configuradas en bucle.

Qué necesitas

Godot
4.2 o posterior, tanto la versión estándar como la .NET.
Tu modelo
Un archivo .glb, .gltf o .fbx de hasta 50 MB dentro de tu proyecto. Si usas .gltf, debe incluirlo todo en un solo archivo; si tiene un .bin al lado, expórtalo como .glb.
Una cuenta de afk.ai
Puedes crearla gratis con Google. Cada rig consume uno de los rigs disponibles en tu cuenta este mes, igual que en afk.ai/rig.
Conexión a internet
El rigging se ejecuta en los servidores de afk.ai. Solo se envía el archivo del modelo que selecciones.

Instalar el plugin

  1. Descarga el plugin desde la página del plugin para Godot.
  2. Copia su carpeta addons/afk_ai dentro de la carpeta addons de tu proyecto. Si no existe, créala.
  3. Abre Project > Project Settings > Plugins y marca Enable junto a AFK AI.

A la derecha, junto al Inspector, aparece el panel AFK AI.

Hacer el rig de un modelo

  1. Inicia sesión. Pulsa Sign in en el panel AFK AI. Se abre afk.ai en tu navegador; inicia sesión ahí con Google. El panel muestra tu correo y los rigs que te quedan este mes. Si el navegador no consigue volver a Godot, te enseña un código de inicio de sesión: pégalo en I have a sign-in code y pulsa Use.
  2. Selecciona el modelo. Haz clic en su archivo dentro del panel FileSystem.
  3. Elige las opciones. En Body type, selecciona Human para personas y otros personajes bípedos, o el tipo de animal o criatura que corresponda. En Animations, elige All animations para incluir todas las animaciones o Rig only si solo quieres el esqueleto. Deja Facing en Auto.
  4. Pulsa Rig. El panel va mostrando el progreso: subida, espera, rigging y descarga. Mientras tanto puedes seguir trabajando.

Cuando termina, hero_rigged.glb queda guardado junto a hero.glb, importado y seleccionado. El original no se toca. Si vuelves a hacer el rig del mismo modelo, obtienes hero_rigged_2.glb, así que nunca se sobrescribe nada.

Qué incluye el GLB con rig

Para usarlo, arrastra hero_rigged.glb a una escena: entra como un único nodo con todo lo demás dentro.

Skeleton3D
Un esqueleto adaptado al tipo de cuerpo, con los pesos de skinning ya asignados a tu malla. El esqueleto de un modelo humanoide tiene 66 huesos, incluidos los de todos los dedos, con nombres como pelvis, spine_01, hand_r y foot_l.
AnimationPlayer
Todas las animaciones, cada una con su nombre. Para un humanoide, hasta 593: Idle_A, Walk, Jog, Sprint, Jump_Start, Sword_Attack, Dance_Groove y cientos más. Con una cuenta gratuita tienes las animaciones gratuitas; un plan añade las demás.
Bucles
Las animaciones de reposo, caminar, correr, volar y nadar ya se reproducen en bucle. El plugin configura estos bucles en los ajustes de importación del archivo antes de que Godot lo importe.
Orientación
El personaje mira hacia +Z, como cualquier modelo glTF.

Reproducir animaciones con un AnimationPlayer

Para crear un personaje controlable básico, añade un CharacterBody3D con un CollisionShape3D de tipo cápsula. Arrastra el modelo con rig dentro del CharacterBody3D y cámbiale el nombre a Hero. Asigna este script al 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)

Al ejecutarlo, podrás mover al personaje al trote con las flechas del teclado. Cuando las sueltes, vuelve suavemente a la animación de reposo. Si llamas a play con la animación que ya se está reproduciendo, esta continúa sin reiniciarse, así que puedes llamar a play en cada frame.

Combinar animaciones con un AnimationTree

Un AnimationTree permite combinar animaciones según la velocidad y gestionar acciones puntuales, como un ataque. Solo tienes que configurarlo una vez en el editor:

  1. Añade un nodo AnimationTree al personaje. En el Inspector, asigna Hero/AnimationPlayer a Anim Player y crea un AnimationNodeStateMachine nuevo en Tree Root.
  2. En el panel AnimationTree de la parte inferior, haz clic derecho y añade un BlendSpace1D. Llámalo Locomotion, ábrelo y añade tres puntos: Idle_A en 0, Walk en 1,5 y Jog en 4. Ajusta su Max Space a 4.
  3. Vuelve a hacer clic derecho y añade la animación Sword_Attack. Conecta Start con Locomotion, Locomotion con Sword_Attack y Sword_Attack de vuelta a Locomotion. En esta última transición, pon Switch Mode en At End y Advance Mode en Auto.
  4. En Project > Project Settings > Input Map, añade una acción llamada attack y asígnale una tecla.

Después, en el mismo script, elimina las dos líneas de anim.play y controla el árbol con este código:

@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")

Mientras el AnimationTree está activo, es él quien reproduce las animaciones, así que no llames también al play del AnimationPlayer.

StartLocomotionBlendSpace1D · Idle_A, Walk, Jog↓ travel("Sword_Attack")↑ At EndSword_Attack
Esquema de la máquina de estados de un AnimationTree. Locomotion mezcla Idle_A, Walk y Jog según la velocidad; travel() pasa a Sword_Attack y, cuando termina, vuelve a Locomotion.

Poner una espada en la mano y cambiar un bucle

Para colocar algo en la mano del personaje, selecciona su Skeleton3D y añade un BoneAttachment3D como nodo hijo. Pon hand_r en Bone Name y añade la espada como hijo del BoneAttachment3D. Así seguirá a la mano en todas las animaciones.

Para cambiar qué animaciones se repiten en bucle, haz doble clic en hero_rigged.glb en el panel FileSystem para abrir Advanced Import Settings. Selecciona la animación bajo el AnimationPlayer, a la izquierda, cambia Loop Mode y pulsa Reimport.

Animales, criaturas y props

Elige el tipo de cuerpo en el panel antes de pulsar Rig: Fox para perros, gatos y lobos; Horse para cualquier animal con pezuñas; Kaiju para dinosaurios; Object para props; y Bird, Dragon, Spider, Insect, Snake, Fish, Kangaroo, Frog, Turtle o Ghost según corresponda. Cada modelo recibe un esqueleto adaptado a su tipo de cuerpo y animaciones pensadas para él: galopar, aletear, rugir, nadar o reptar. Se reproducen igual, con el mismo AnimationPlayer y el mismo AnimationTree. Todos los modelos con rig del mismo tipo de cuerpo comparten los nombres de huesos y de animaciones, así que el AnimationTree de un lobo sirve para cualquier otro lobo. En la guía de animales encontrarás las animaciones de cada tipo.

  • Dragón
  • Cuadrúpedo
  • Con pezuñas
  • Dinosaurio
  • Araña
  • Pez
Otros seis tipos de cuerpo, con el rig hecho en afk.ai/rig, reproduciendo sus propias animaciones.

Qué cuenta como un rig

Cada tarea de rig que llega a AFK AI consume uno de tus rigs del mes, igual que en afk.ai/rig y en el resto de plugins de AFK AI. Al pulsar Cancel, dejas de esperar el resultado, pero la tarea continúa y sigue contando. Si el rig falla, no se descuenta. Cuando te quedas sin rigs, el panel te lo avisa y muestra See plans, que abre los planes de afk.ai.

Preguntas frecuentes

¿Godot incluye un auto-rigger?

No. Godot importa esqueletos y animaciones ya creados, y permite adaptar las animaciones de un esqueleto humanoide a los huesos de otro (retargeting), pero no hace el rig de una malla. De esa parte se encarga el plugin de AFK AI, que entrega a Godot un GLB normal y corriente.

¿Funciona en Godot 3?

No. Necesita Godot 4.2 o posterior. Si usas Godot 3, haz el rig del modelo en afk.ai/rig e importa el GLB que descargues.

¿Puedo usarlo en un proyecto en C#?

Sí. El plugin está escrito en GDScript, que la versión .NET de Godot también ejecuta, y el GLB con rig es el mismo en ambos casos. En C#, puedes reproducir una animación con GetNode<AnimationPlayer>("Hero/AnimationPlayer").Play("Jog", 0.2);.

¿Por qué un GLB y no un FBX?

GLB es el formato que mejor importa Godot: el esqueleto, los pesos y todas las animaciones llegan tal cual, en cualquier versión de Godot 4. Tu archivo original puede ser un FBX; lo que recibes de vuelta es un GLB.

¿El plugin acaba dentro de mi juego exportado?

Lo que usa tu juego es el GLB con rig. El plugin solo actúa dentro del editor; para dejar sus archivos fuera de la exportación, excluye addons/afk_ai/* en la pestaña Resources del preset de exportación.

¿Puedo hacer el rig de varios modelos a la vez?

El plugin procesa un modelo a la vez y tarda alrededor de un minuto por modelo. Para hacer el rig de una carpeta entera desde un script, usa la API de rigging: genera el mismo GLB.

¿Puedo usar los personajes con rig en un juego comercial?

Sí. Los esqueletos y las animaciones son CC0 (dominio público), y tu modelo sigue siendo tuyo.

¿También hay un plugin de AFK AI para Blender, Unity o Unreal?

Sí. Consulta las guías de Blender, Unity y Unreal Engine y el resumen de todos los plugins de AFK AI, que incluye las nueve apps.

Haz el rig de tu modelo y anímalo

Una IA hace el rig en tu navegador y después puedes ver cientos de animaciones en tu modelo. Descarga un solo GLB para cualquier motor de videojuegos.

Hacer el rig de un modelo

Más guías