GuidesTuto6 min de lecture

Rigger et animer un personnage 3D dans Godot 4 : L’add-on AFK AI, AnimationPlayer et AnimationTree

Cliquez sur un modèle dans le dock FileSystem, puis sur Rig et, environ une minute plus tard, un GLB riggé avec ses animations se trouve à côté, les marches et les attentes déjà en boucle.

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 ⟳
  • └…
Dessin d’après le plugin, pas une capture d’écran : le dock AFK AI pendant le rigging de hero.glb, et la copie riggée qu’il enregistre à côté, avec ses animations dans un AnimationPlayer.

Godot excelle à jouer des animations, mais ne sait pas créer de rig. Un personnage fait donc généralement un aller-retour : l’exporter, le rigger dans Blender (ou dans Mixamo, pour les humanoïdes uniquement), trouver des animations, exporter un GLB, puis remettre en boucle, après l’import, chaque animation qui doit boucler.

L’add-on AFK AI fait cet aller-retour depuis un dock de l’éditeur Godot. Cliquez sur votre modèle dans le dock FileSystem, puis sur Rig. Environ une minute plus tard, hero_rigged.glb est enregistré à côté de hero.glb, avec un squelette conçu pour son corps, des poids de skinning et ses animations dans un AnimationPlayer. Les animations d’attente, de marche et de course sont déjà réglées en boucle.

Ce qu’il vous faut

Godot
4.2 ou plus récent, en version standard ou .NET.
Votre modèle
Un .glb, .gltf ou .fbx dans votre projet, jusqu’à 50 Mo. Un .gltf doit tout contenir dans ce seul fichier ; si le vôtre est accompagné d’un .bin, exportez plutôt un .glb.
Un compte afk.ai
Gratuit, avec Google. Chaque rig est décompté des rigs du mois de votre compte, comme sur afk.ai/rig.
Internet
Le rigging se fait sur les serveurs d’afk.ai. Seul le fichier de modèle que vous choisissez est envoyé.

Installer l’add-on

  1. Téléchargez l’add-on depuis la page du plugin Godot.
  2. Copiez son dossier addons/afk_ai dans le dossier addons de votre projet. Créez le dossier addons si votre projet n’en a pas.
  3. Ouvrez Project > Project Settings > Plugins et cochez Enable à côté d’AFK AI.

Un dock AFK AI apparaît à droite, à côté de l’Inspector.

Rigger un modèle

  1. Connectez-vous. Cliquez sur Sign in dans le dock AFK AI. Votre navigateur ouvre afk.ai ; connectez-vous avec Google. Le dock affiche votre e-mail et le nombre de rigs qu’il vous reste ce mois-ci. Si le navigateur ne parvient pas à revenir à Godot, il affiche un code de connexion à la place : collez-le sous I have a sign-in code et cliquez sur Use.
  2. Choisissez le modèle. Dans le dock FileSystem, cliquez sur le fichier du modèle.
  3. Choisissez les options. Body type : Human pour les humains et tout ce qui marche sur deux jambes, ou l’animal ou la créature dont il s’agit. Animations : All animations, ou Rig only pour le squelette seul. Facing : laissez-le sur Auto.
  4. Cliquez sur Rig. Le dock indique où en est le rig : envoi, attente, rigging, téléchargement. Continuez à travailler pendant ce temps.

Une fois le rig terminé, hero_rigged.glb est enregistré à côté de hero.glb, importé et sélectionné. L’original n’est pas modifié. Riggez à nouveau le même modèle et vous obtenez hero_rigged_2.glb : rien n’est écrasé.

Ce que contient le GLB riggé

Pour l’utiliser, faites glisser hero_rigged.glb dans une scène : il arrive sous la forme d’un seul nœud, avec tout le reste en dessous.

Skeleton3D
Un squelette conçu pour le type de corps, auquel votre mesh est lié par skinning. Un humain reçoit 66 os, doigts compris, nommés pelvis, spine_01, hand_r, foot_l, etc.
AnimationPlayer
Toutes les animations, chacune sous son propre nom. Pour un humanoïde, jusqu’à 593 : Idle_A, Walk, Jog, Sprint, Jump_Start, Sword_Attack, Dance_Groove et des centaines d’autres. Un compte gratuit reçoit les animations gratuites, et une formule ajoute toutes les autres.
Boucles
Les attentes, les marches, les courses, le vol et la nage bouclent déjà. L’add-on l’inscrit dans les réglages d’import du fichier avant que Godot ne l’importe.
Orientation
Le personnage regarde vers +Z, comme les modèles glTF.

Jouer des animations avec un AnimationPlayer

Le personnage joueur le plus simple : un CharacterBody3D avec un CollisionShape3D (une capsule), et le modèle riggé glissé en dessous et renommé Hero. Attachez ce script au 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)

Lancez la scène : les flèches du clavier font trottiner le personnage, qui revient en douceur à l’attente quand vous relâchez. Appeler play avec l’animation déjà en cours la laisse continuer : l’appeler à chaque image ne pose donc aucun problème.

Les mélanger avec un AnimationTree

Un AnimationTree mélange les animations selon la vitesse et gère les mouvements ponctuels, comme une attaque. Configurez-le une fois dans l’éditeur :

  1. Ajoutez un nœud AnimationTree au personnage. Dans l’Inspector, réglez Anim Player sur Hero/AnimationPlayer et Tree Root sur un nouveau AnimationNodeStateMachine.
  2. Dans le panneau AnimationTree, en bas, faites un clic droit et ajoutez un BlendSpace1D. Nommez-le Locomotion, ouvrez-le et ajoutez trois points : Idle_A à 0, Walk à 1,5 et Jog à 4 (réglez son Max Space sur 4).
  3. Faites à nouveau un clic droit et ajoutez l’animation Sword_Attack. Reliez Start à Locomotion, Locomotion à Sword_Attack, et Sword_Attack à Locomotion avec Switch Mode réglé sur At End et Advance Mode sur Auto.
  4. Dans Project > Project Settings > Input Map, ajoutez une action nommée attack et associez-lui une touche.

Ensuite, dans le même script, supprimez les deux lignes anim.play et pilotez l’arbre à la place :

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

Tant que l’AnimationTree est actif, c’est lui qui joue les animations : n’appelez donc pas aussi la méthode play de l’AnimationPlayer.

StartLocomotionBlendSpace1D · Idle_A, Walk, Jog↓ travel("Sword_Attack")↑ At EndSword_Attack
Schéma : la state machine d’un AnimationTree. Locomotion mélange Idle_A, Walk et Jog selon la vitesse ; travel() passe à Sword_Attack, qui revient à son état précédent une fois terminé.

Tenir une épée, modifier une boucle

Pour placer un objet dans la main du personnage, sélectionnez son Skeleton3D, ajoutez-y un BoneAttachment3D, réglez Bone Name sur hand_r et placez l’épée sous ce nœud. Elle suit la main dans toutes les animations.

Pour changer les animations qui bouclent, double-cliquez sur hero_rigged.glb dans le dock FileSystem pour ouvrir Advanced Import Settings. Choisissez l’animation sous l’AnimationPlayer, à gauche, modifiez Loop Mode et cliquez sur Reimport.

Animaux, créatures et props

Choisissez le type de corps dans le dock avant de cliquer sur Rig : Fox pour les chiens, les chats et les loups, Horse pour tout animal à sabots, Bird, Dragon, Kaiju pour les dinosaures, Spider, Insect, Snake, Fish, Kangaroo, Frog, Turtle, Ghost, ou Object pour les props. Chacun reçoit un squelette conçu pour son corps et des animations conçues pour lui : galops, battements d’ailes, rugissements, nage, reptation. Elles se jouent de la même façon, avec le même AnimationPlayer et le même AnimationTree. Tous les modèles riggés avec le même type de corps ont les mêmes noms d’os et d’animations : l’AnimationTree d’un loup fonctionne donc pour tous les loups. Le guide des animaux liste les animations de chaque type.

  • Dragon
  • Quadrupède
  • À sabots
  • Dinosaure
  • Araignée
  • Poisson
Six modèles de morphologies différentes, riggés sur afk.ai/rig, avec leurs propres animations.

Ce qui compte comme un rig

Chaque rig qui atteint AFK AI consomme un des rigs du mois, comme sur afk.ai/rig et dans les autres plugins AFK AI. Cancel arrête l’attente, pas le rig, qui reste décompté. Un rig qui échoue n’est pas décompté. Quand vous n’avez plus de rigs, le dock l’indique et affiche See plans, qui ouvre les formules d’afk.ai.

Questions fréquentes

Godot a-t-il un auto-rigger intégré ?

Non. Godot importe des squelettes et des animations qui existent déjà, et son retargeting fait correspondre un squelette humanoïde à un autre, mais il ne rigge pas un mesh. L’add-on AFK AI s’en charge, et remet à Godot un GLB ordinaire.

Fonctionne-t-il dans Godot 3 ?

Non. Il nécessite Godot 4.2 ou plus récent. Avec Godot 3, riggez le modèle sur afk.ai/rig et importez le GLB téléchargé.

Puis-je l’utiliser dans un projet C# ?

Oui. L’add-on est écrit en GDScript, que la version .NET de Godot exécute aussi, et le GLB riggé est le même dans les deux cas. En C#, jouez une animation avec GetNode<AnimationPlayer>("Hero/AnimationPlayer").Play("Jog", 0.2);.

Pourquoi un GLB et pas un FBX ?

Le GLB est le format que Godot importe le mieux : le squelette, les poids de skinning et toutes les animations arrivent tels quels, dans toutes les versions de Godot 4. Votre original peut être un FBX ; ce qui revient est un GLB.

L’add-on se retrouve-t-il dans mon jeu exporté ?

Votre jeu utilise le GLB riggé. L’add-on lui-même n’agit que dans l’éditeur ; pour exclure ses fichiers d’un export, ajoutez addons/afk_ai/* aux exclusions dans l’onglet Resources du preset d’export.

Puis-je rigger plusieurs modèles à la fois ?

Un à la fois, environ une minute chacun. Pour rigger tout un dossier depuis un script, utilisez l'API de rigging : elle produit le même GLB.

Puis-je utiliser les personnages riggés dans un jeu commercial ?

Oui. Les squelettes et les animations sont sous licence CC0, et votre modèle reste le vôtre.

Existe-t-il aussi un plugin AFK AI pour Blender, Unity ou Unreal ?

Oui. Consultez les guides pour Blender, Unity et Unreal Engine, et la présentation de tous les plugins AFK AI pour les neuf logiciels.

Riggez et animez votre modèle

L’IA le rigge dans votre navigateur. Vous pouvez ensuite jouer des centaines d’animations sur votre modèle. Téléchargez le tout dans un seul GLB, à importer dans le moteur de votre choix.

Rigger un modèle

Autres guides