HandleidingenStappenplan6 min leestijd

Een 3D-personage riggen en animeren in Godot 4: De AFK AI-add-on, AnimationPlayer en AnimationTree

Klik op een model in het FileSystem-dock en op Rig, en ongeveer een minuut later staat er een gerigde GLB met zijn animaties naast, de wandel- en idle-animaties al op herhalen.

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 ⟳
  • └…
Nagetekend, geen screenshot: de AFK AI-dock terwijl hij hero.glb rigt, en de gerigde kopie die hij ernaast opslaat, met de animaties in een AnimationPlayer.

Godot speelt animaties uitstekend af, maar een rig maken kan het niet. Een personage maakt daarom meestal een rondje: exporteren, riggen in Blender (of in Mixamo, alleen voor humanoïden), animaties zoeken, een GLB exporteren en na het importeren elke herhalende animatie opnieuw op loop zetten.

De AFK AI-add-on maakt dat rondje vanuit een dock in de Godot-editor. Klik op je model in het FileSystem-dock en dan op Rig. Ongeveer een minuut later staat hero_rigged.glb naast hero.glb, met een skelet dat voor zijn lichaam is gemaakt, skin weights en zijn animaties in een AnimationPlayer. De idle-, wandel- en renanimaties staan al op herhalen.

Wat je nodig hebt

Godot
4.2 of nieuwer, de standaardversie of de .NET-versie.
Je model
Een .glb, .gltf of .fbx in je project, tot 50 MB. Een .gltf moet alles in dat ene bestand hebben; staat er een .bin naast, exporteer dan een .glb.
Een afk.ai-account
Gratis, met Google. Elke rig kost een van de rigs van je account voor die maand, net als op afk.ai/rig.
Internet
Het riggen gebeurt op de servers van afk.ai. Alleen het modelbestand dat je kiest, wordt verstuurd.

De add-on installeren

  1. Download de add-on van de Godot-pluginpagina.
  2. Kopieer de map addons/afk_ai daaruit naar de map addons van je project. Maak de map addons aan als je project er nog geen heeft.
  3. Open Project > Project Settings > Plugins en vink Enable aan naast AFK AI.

Rechts, naast de Inspector, verschijnt een AFK AI-dock.

Een model riggen

  1. Log in. Klik op Sign in in het AFK AI-dock. Je browser opent afk.ai; log daar in met Google. Het dock toont je e-mailadres en hoeveel rigs je deze maand nog hebt. Komt de browser niet terug bij Godot, dan toont hij in plaats daarvan een inlogcode: plak die onder I have a sign-in code en klik op Use.
  2. Kies het model. Klik in het FileSystem-dock op het bestand van het model.
  3. Kies de opties. Body type: Human voor mensen en alles op twee benen, of het dier of wezen dat het is. Animations: All animations, of Rig only voor alleen het skelet. Facing: laat dat op Auto staan.
  4. Klik op Rig. Het dock toont wat er gebeurt: uploaden, wachten, riggen, downloaden. Je kunt intussen gewoon doorwerken.

Als het klaar is, staat hero_rigged.glb naast hero.glb, geïmporteerd en geselecteerd. Het origineel blijft onaangeroerd. Rig je hetzelfde model opnieuw, dan krijg je hero_rigged_2.glb, dus er wordt niets overschreven.

Wat er in de gerigde GLB zit

Sleep hero_rigged.glb een scène in om het te gebruiken: het komt binnen als één node met alles eronder.

Skeleton3D
Een skelet dat voor het lichaamstype is gemaakt, met je mesh eraan gekoppeld. Een mens krijgt 66 bones, elke vinger inbegrepen, met namen als pelvis, spine_01, hand_r, foot_l enzovoort.
AnimationPlayer
Elke animatie, onder zijn eigen naam. Voor een humanoïde tot 593: Idle_A, Walk, Jog, Sprint, Jump_Start, Sword_Attack, Dance_Groove en honderden meer. Met een gratis account krijg je de gratis animaties, en een pakket voegt de rest toe.
Loops
Idle-, wandel-, ren-, vlieg- en zwemanimaties herhalen al. De add-on schrijft dat in de importinstellingen van het bestand voordat Godot het importeert.
Kijkrichting
Het personage kijkt naar +Z, zoals glTF-modellen dat doen.

Animaties afspelen met een AnimationPlayer

Het eenvoudigste spelerpersonage: een CharacterBody3D met een CollisionShape3D (een capsule), en daaronder het gerigde model, dat je erin sleept en hernoemt naar Hero. Koppel dit script aan de 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)

Start het, en met de pijltjestoetsen jogt het personage rond en gaat het vloeiend terug naar idle als je loslaat. Roep je play aan met de animatie die al speelt, dan loopt die gewoon door, dus het elk frame aanroepen is geen probleem.

Blenden met een AnimationTree

Een AnimationTree blendt tussen animaties op basis van snelheid en regelt eenmalige bewegingen zoals een aanval. Je stelt hem één keer in, in de editor:

  1. Voeg een AnimationTree-node toe aan het personage. Zet in de Inspector Anim Player op Hero/AnimationPlayer en Tree Root op een nieuwe AnimationNodeStateMachine.
  2. Klik onderaan in het AnimationTree-paneel met rechts en voeg een BlendSpace1D toe. Noem hem Locomotion, open hem en voeg drie punten toe: Idle_A op 0, Walk op 1.5 en Jog op 4 (zet zijn Max Space op 4).
  3. Klik nog eens met rechts en voeg de animatie Sword_Attack toe. Verbind Start met Locomotion, Locomotion met Sword_Attack, en Sword_Attack terug met Locomotion, met Switch Mode op At End en Advance Mode op Auto.
  4. Voeg in Project > Project Settings > Input Map een action toe met de naam attack en geef die een toets.

Haal daarna in hetzelfde script de twee regels met anim.play weg en stuur in plaats daarvan de tree aan:

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

Zolang de AnimationTree actief is, speelt die de animaties af, dus roep dan niet ook nog play van de AnimationPlayer aan.

StartLocomotionBlendSpace1D · Idle_A, Walk, Jog↓ travel("Sword_Attack")↑ At EndSword_Attack
Getekend: de state machine van een AnimationTree. Locomotion mengt Idle_A, Walk en Jog op snelheid; travel() gaat naar Sword_Attack, dat aan het eind terugkeert.

Een zwaard vasthouden, een loop aanpassen

Wil je het personage iets in de hand geven, selecteer dan zijn Skeleton3D, voeg daaronder een BoneAttachment3D toe, zet Bone Name op hand_r en hang het zwaard onder de attachment. Het volgt de hand in elke animatie.

Wil je aanpassen welke animaties herhalen, dubbelklik dan op hero_rigged.glb in het FileSystem-dock om Advanced Import Settings te openen. Kies links de animatie onder de AnimationPlayer, pas Loop Mode aan en klik op Reimport.

Dieren, wezens en props

Kies het lichaamstype in het dock voordat je op Rig klikt: Fox voor honden, katten en wolven, Horse voor alles met hoeven, Bird, Dragon, Kaiju voor dinosaurussen, Spider, Insect, Snake, Fish, Kangaroo, Frog, Turtle, Ghost, of Object voor props. Elk type krijgt een skelet dat voor zijn lichaam is gemaakt en animaties die daarvoor zijn gemaakt: galopperen, fladderen, brullen, zwemmen, kronkelen. Ze spelen op dezelfde manier af, met dezelfde AnimationPlayer en AnimationTree. Elk model dat als hetzelfde lichaamstype is gerigd, heeft dezelfde bone- en animatienamen, dus de AnimationTree van de ene wolf werkt voor elke wolf. De handleiding voor dieren zet de animaties van elk type op een rij.

  • Draak
  • Viervoeter
  • Hoefdier
  • Dinosaurus
  • Spin
  • Vis
Zes van de andere lichaamstypes, gerigd op afk.ai/rig en met hun eigen animaties.

Wat telt als rig

Elke rig die AFK AI bereikt, kost een van de rigs van deze maand, net als op afk.ai/rig en in de andere AFK AI-plugins. Cancel stopt het wachten, niet de rig, en die telt dus nog steeds. Een mislukte rig telt niet. Zijn je rigs op, dan meldt het dock dat en toont het See plans, dat de pakketten van afk.ai opent.

Veelgestelde vragen

Heeft Godot een ingebouwde auto-rigger?

Nee. Godot importeert skeletten en animaties die al bestaan, en met zijn retargeting zet je het ene humanoïde skelet om naar het andere, maar het rigt geen mesh. Dat deel doet de AFK AI-add-on, en die levert Godot een gewone GLB.

Werkt het in Godot 3?

Nee. Het heeft Godot 4.2 of nieuwer nodig. Met Godot 3 rig je het model op afk.ai/rig en importeer je de GLB die je daar downloadt.

Kan ik het gebruiken in een C#-project?

Ja. De add-on is GDScript, en dat draait ook in de .NET-versie van Godot. De gerigde GLB is hoe dan ook dezelfde. In C# speel je een animatie af met GetNode<AnimationPlayer>("Hero/AnimationPlayer").Play("Jog", 0.2);.

Waarom een GLB en geen FBX?

GLB is het formaat dat Godot het best importeert: het skelet, de skin weights en elke animatie komen erdoor zoals ze zijn, in elke versie van Godot 4. Je origineel mag een FBX zijn; wat terugkomt, is een GLB.

Komt de add-on in mijn geëxporteerde game terecht?

Je game gebruikt de gerigde GLB. De add-on zelf doet alleen iets in de editor; wil je zijn bestanden buiten een export houden, sluit dan addons/afk_ai/* uit op het tabblad Resources van de export-preset.

Kan ik meerdere modellen tegelijk riggen?

Eén tegelijk, ongeveer een minuut per model. Wil je een hele map vanuit een script riggen, gebruik dan de rigging-API: die levert dezelfde GLB.

Mag ik de gerigde personages gebruiken in een commerciële game?

Ja. De skeletten en animaties zijn CC0, en je model blijft van jou.

Is er ook een AFK AI-plugin voor Blender, Unity of Unreal?

Ja. Zie de handleidingen voor Blender, Unity en Unreal Engine, en het overzicht van alle AFK AI-plugins voor alle negen apps.

Rig en animeer je model

Een AI rigt het in je browser, waarna je er honderden animaties op afspeelt. Download één GLB voor elke engine.

Model riggen

Meer handleidingen