GuidesHow-to6 Min. Lesezeit

3D-Charaktere in Godot 4 riggen und animieren – mit dem Add-on von AFK AI, AnimationPlayer und AnimationTree

Klicke im FileSystem-Dock auf ein Modell und dann auf Rig. Etwa eine Minute später liegt daneben eine geriggte GLB-Datei mit ihren Animationen, Geh- und Idle-Animationen laufen schon in Schleife.

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 ⟳
  • └…
Nach dem Plugin gezeichnet, kein Screenshot: das Dock AFK AI, während es hero.glb riggt, und die geriggte Kopie, die es daneben speichert, mit ihren Animationen in einem AnimationPlayer.

Godot spielt Animationen hervorragend ab, kann aber selbst kein Rig erstellen. Ein Charakter geht deshalb meist auf eine Rundreise: exportieren, in Blender riggen (oder in Mixamo, aber nur bei Humanoiden), Animationen suchen, eine GLB-Datei exportieren und nach dem Import jede Animation, die sich wiederholen soll, erneut auf Loop stellen.

Das Add-on von AFK AI erledigt diese Rundreise aus einem Dock im Godot-Editor heraus. Klicke im FileSystem-Dock auf dein Modell, dann auf Rig. Etwa eine Minute später ist hero_rigged.glb neben hero.glb gespeichert: mit einem Skelett, das zum Körper passt, mit Skin Weights und mit den Animationen in einem AnimationPlayer. Idles, Geh- und Laufanimationen sind schon auf Loop gestellt.

Was du brauchst

Godot
4.2 oder neuer, der Standard-Build oder der .NET-Build.
Dein Modell
Eine .glb-, .gltf- oder .fbx-Datei in deinem Projekt, bis 50 MB. Bei einer .gltf-Datei muss alles in dieser einen Datei stecken; liegt bei deiner eine .bin daneben, exportiere stattdessen eine .glb-Datei.
Ein afk.ai-Konto
Kostenlos, über Google. Jedes Rig verbraucht eines der Rigs, die dein Konto im Monat hat, genau wie auf afk.ai/rig.
Internet
Das Rigging läuft auf den Servern von afk.ai. Gesendet wird nur die Modelldatei, die du auswählst.

Das Add-on installieren

  1. Lade das Add-on von der Seite des Godot-Plugins herunter.
  2. Kopiere seinen Ordner addons/afk_ai in den addons-Ordner deines Projekts. Hat dein Projekt noch keinen addons-Ordner, leg einen an.
  3. Öffne Project > Project Settings > Plugins und hake Enable neben AFK AI an.

Rechts neben dem Inspector erscheint ein Dock AFK AI.

Ein Modell riggen

  1. Melde dich an. Klicke im Dock AFK AI auf Sign in. Dein Browser öffnet afk.ai; melde dich dort mit Google an. Das Dock zeigt deine E-Mail-Adresse und wie viele Rigs du diesen Monat noch hast. Findet der Browser nicht zurück zu Godot, zeigt er stattdessen einen Anmeldecode an: Füge ihn unter I have a sign-in code ein und klicke auf Use.
  2. Wähle das Modell. Klicke im Dock FileSystem auf die Datei des Modells.
  3. Wähle die Optionen. Body type: Human für Menschen und alles, was auf zwei Beinen läuft, sonst das Tier oder die Kreatur, um die es geht. Animations: All animations oder Rig only, wenn du nur das Skelett willst. Facing: lass es auf Auto.
  4. Klicke auf Rig. Das Dock zeigt, was gerade passiert: Hochladen, Warten, Riggen, Herunterladen. Du kannst währenddessen weiterarbeiten.

Danach ist hero_rigged.glb neben hero.glb gespeichert, importiert und ausgewählt. Das Original bleibt unangetastet. Riggst du dasselbe Modell noch einmal, bekommst du hero_rigged_2.glb – überschrieben wird also nichts.

Was in der geriggten GLB-Datei steckt

Ziehe hero_rigged.glb in eine Szene, um das Modell zu verwenden: Es kommt als einzelner Node an, mit allem darunter.

Skeleton3D
Ein Skelett, das zum Körpertyp passt und an das dein Mesh per Skinning gebunden ist. Ein Mensch bekommt 66 Bones, alle Finger inklusive, mit Namen wie pelvis, spine_01, hand_r, foot_l und so weiter.
AnimationPlayer
Alle Animationen, jede unter ihrem eigenen Namen. Für einen Humanoiden bis zu 593: Idle_A, Walk, Jog, Sprint, Jump_Start, Sword_Attack, Dance_Groove und Hunderte mehr. Mit einem kostenlosen Konto bekommst du die kostenlosen Animationen, ein Tarif schaltet den Rest frei.
Loops
Idles, Gehen, Laufen, Fliegen und Schwimmen laufen schon in Schleife. Das Add-on schreibt das in die Importeinstellungen der Datei, bevor Godot sie importiert.
Ausrichtung
Der Charakter schaut in Richtung +Z, wie es bei glTF-Modellen üblich ist.

Animationen mit einem AnimationPlayer abspielen

Der einfachste Spielercharakter: ein CharacterBody3D mit einer CollisionShape3D (einer Kapsel), darunter das geriggte Modell, hineingezogen und in Hero umbenannt. Hänge dieses Skript an den 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)

Starte die Szene, und mit den Pfeiltasten joggt der Charakter herum; lässt du los, geht er sanft wieder ins Idle über. Rufst du play mit der Animation auf, die gerade schon läuft, spielt sie einfach weiter. Der Aufruf in jedem Frame ist also kein Problem.

Mit einem AnimationTree überblenden

Ein AnimationTree überblendet je nach Geschwindigkeit zwischen Animationen und kümmert sich um einmalige Bewegungen wie einen Angriff. Du richtest ihn einmal im Editor ein:

  1. Füge dem Charakter einen Node AnimationTree hinzu. Setze im Inspector Anim Player auf Hero/AnimationPlayer und Tree Root auf eine neue AnimationNodeStateMachine.
  2. Klicke unten im AnimationTree-Panel mit der rechten Maustaste und füge einen BlendSpace1D hinzu. Nenne ihn Locomotion, öffne ihn und füge drei Punkte hinzu: Idle_A bei 0, Walk bei 1,5 und Jog bei 4 (stell dazu seinen Max Space auf 4).
  3. Klicke noch einmal mit der rechten Maustaste und füge die Animation Sword_Attack hinzu. Verbinde Start mit Locomotion, Locomotion mit Sword_Attack und Sword_Attack zurück mit Locomotion, dabei mit Switch Mode auf At End und Advance Mode auf Auto.
  4. Lege unter Project > Project Settings > Input Map eine Aktion namens attack an und weise ihr eine Taste zu.

Entferne dann im selben Skript die beiden Zeilen mit anim.play und steuere stattdessen den Tree:

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

Solange der AnimationTree aktiv ist, spielt er die Animationen ab. Ruf also nicht zusätzlich play am AnimationPlayer auf.

StartLocomotionBlendSpace1D · Idle_A, Walk, Jog↓ travel("Sword_Attack")↑ At EndSword_Attack
Gezeichnet: die State Machine eines AnimationTree. Locomotion blendet Idle_A, Walk und Jog nach Geschwindigkeit; travel() wechselt zu Sword_Attack, das danach zurückwechselt.

Ein Schwert halten, einen Loop ändern

Um dem Charakter etwas in die Hand zu geben, wähle sein Skeleton3D aus, füge darunter einen BoneAttachment3D hinzu, setze Bone Name auf hand_r und hänge das Schwert unter das Attachment. Es folgt der Hand durch jede Animation.

Um festzulegen, welche Animationen in Schleife laufen, doppelklicke im FileSystem-Dock auf hero_rigged.glb, um die Advanced Import Settings zu öffnen. Wähle links unter dem AnimationPlayer die Animation aus, ändere Loop Mode und klicke auf Reimport.

Tiere, Kreaturen und Props

Wähle im Dock den Körpertyp, bevor du auf Rig klickst: Fox für Hunde, Katzen und Wölfe, Horse für alle Huftiere, Bird, Dragon, Kaiju für Dinosaurier, Spider, Insect, Snake, Fish, Kangaroo, Frog, Turtle, Ghost oder Object für Props. Jeder bekommt ein Skelett, das zu seinem Körper passt, und Animationen, die dafür gemacht sind: Galoppieren, Flügelschlagen, Brüllen, Schwimmen, Schlängeln. Sie spielen genauso ab, mit demselben AnimationPlayer und AnimationTree. Jedes Modell mit demselben Körpertyp bekommt dieselben Bone- und Animationsnamen, deshalb funktioniert der AnimationTree eines Wolfs für jeden Wolf. Welche Animationen jeder Typ hat, steht im Guide zu Tieren.

  • Drache
  • Vierbeiner
  • Huftier
  • Dinosaurier
  • Spinne
  • Fisch
Sechs weitere Körpertypen, auf afk.ai/rig geriggt und mit ihren eigenen Animationen.

Was als Rig zählt

Jedes Rig, das AFK AI erreicht, verbraucht eines deiner Rigs für diesen Monat, genau wie auf afk.ai/rig und in den anderen Plugins von AFK AI. Cancel beendet nur das Warten, nicht das Rig – das zählt trotzdem. Ein fehlgeschlagenes Rig wird nicht gezählt. Sind deine Rigs aufgebraucht, sagt dir das Dock Bescheid und zeigt See plans an, das die Tarife von afk.ai öffnet.

Fragen

Hat Godot einen eingebauten Auto-Rigger?

Nein. Godot importiert Skelette und Animationen, die es schon gibt, und sein Retargeting überträgt ein humanoides Skelett auf ein anderes – ein Mesh riggen kann es aber nicht. Diesen Teil übernimmt das Add-on von AFK AI und übergibt Godot eine ganz normale GLB-Datei.

Funktioniert es in Godot 3?

Nein. Es braucht Godot 4.2 oder neuer. Mit Godot 3 riggst du das Modell auf afk.ai/rig und importierst die GLB-Datei, die du dort herunterlädst.

Kann ich es in einem C#-Projekt nutzen?

Ja. Das Add-on ist in GDScript geschrieben, das auch der .NET-Build von Godot ausführt, und die geriggte GLB-Datei ist in beiden Fällen dieselbe. In C# spielst du eine Animation mit GetNode<AnimationPlayer>("Hero/AnimationPlayer").Play("Jog", 0.2); ab.

Warum GLB und nicht FBX?

GLB ist das Format, das Godot am besten importiert: Skelett, Skin Weights und jede Animation kommen unverändert an, in jeder Version von Godot 4. Dein Original darf eine FBX-Datei sein; zurück kommt eine GLB-Datei.

Landet das Add-on in meinem exportierten Spiel?

Dein Spiel nutzt die geriggte GLB-Datei. Das Add-on selbst tut nur im Editor etwas. Um seine Dateien aus einem Export herauszuhalten, schließe addons/afk_ai/* im Tab Resources des Export-Presets aus.

Kann ich mehrere Modelle auf einmal riggen?

Eins nach dem anderen, jeweils etwa eine Minute. Um einen ganzen Ordner per Skript zu riggen, nimm die Rigging-API: Sie liefert dieselbe GLB-Datei.

Darf ich die geriggten Charaktere in einem kommerziellen Spiel verwenden?

Ja. Die Skelette und Animationen sind CC0, und dein Modell bleibt deins.

Gibt es auch ein Plugin von AFK AI für Blender, Unity oder Unreal?

Ja. Sieh dir die Guides für Blender, Unity und Unreal Engine an, und für alle neun Apps die Übersicht aller Plugins von AFK AI.

Rigge und animiere dein Modell

Eine KI riggt dein Modell im Browser. Danach kannst du Hunderte Animationen darauf abspielen. Lade alles als eine GLB-Datei herunter, die in jeder Engine läuft.

Modell riggen

Weitere Guides