GuideTutorial6 min di lettura

Rig e animazioni per un personaggio 3D in Godot 4: L’add-on AFK AI, AnimationPlayer e AnimationTree

Fai clic su un modello nel dock FileSystem, poi su Rig, e dopo circa un minuto accanto trovi un GLB con rig e animazioni, con camminate e idle già in 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 ⟳
  • └…
Disegnato sul modello del plugin, non è uno screenshot: il dock AFK AI mentre crea il rig di hero.glb, e la copia con rig che salva accanto, con le animazioni in un AnimationPlayer.

Godot è bravissimo a riprodurre animazioni, ma non ha modo di creare un rig. Così, di solito, un personaggio fa un giro di andata e ritorno: lo esporti, crei il rig in Blender (o in Mixamo, solo per gli umanoidi), cerchi le animazioni, esporti un GLB e dopo l’importazione reimposti in loop ogni animazione ciclica.

L’add-on AFK AI fa tutto il giro da un dock nell’editor di Godot. Fai clic sul modello nel dock FileSystem, poi su Rig. Dopo circa un minuto hero_rigged.glb viene salvato accanto a hero.glb, con uno scheletro fatto per il suo corpo, i pesi di skinning e le animazioni in un AnimationPlayer. Idle, camminate e corse sono già in loop.

Cosa ti serve

Godot
4.2 o successivo, la build standard o quella .NET.
Il tuo modello
Un .glb, .gltf o .fbx nel progetto, fino a 50 MB. Un .gltf deve avere tutto nello stesso file; se il tuo ha un .bin accanto, esporta invece un .glb.
Un account afk.ai
Gratuito, con Google. Ogni rig consuma uno dei rig mensili del tuo account, come su afk.ai/rig.
Internet
Il rigging avviene sui server di afk.ai. Viene inviato solo il file del modello che scegli.

Installa l’add-on

  1. Scarica l’add-on dalla pagina del plugin per Godot.
  2. Copia la sua cartella addons/afk_ai nella cartella addons del progetto. Crea la cartella addons se il progetto non ce l’ha.
  3. Apri Project > Project Settings > Plugins e spunta Enable accanto ad AFK AI.

A destra, accanto all’Inspector, compare un dock AFK AI.

Crea il rig di un modello

  1. Accedi. Fai clic su Sign in nel dock AFK AI. Il browser apre afk.ai; accedi con Google. Il dock mostra la tua email e quanti rig ti restano questo mese. Se il browser non riesce a tornare a Godot, mostra invece un codice di accesso: incollalo in I have a sign-in code e fai clic su Use.
  2. Scegli il modello. Nel dock FileSystem, fai clic sul file del modello.
  3. Scegli le opzioni. Body type: Human per le persone e tutto ciò che sta su due gambe, oppure l’animale o la creatura che è. Animations: All animations, o Rig only per il solo scheletro. Facing: lascialo su Auto.
  4. Fai clic su Rig. Il dock mostra cosa sta succedendo: caricamento, attesa, rigging, download. Nel frattempo continua pure a lavorare.

Quando ha finito, hero_rigged.glb viene salvato accanto a hero.glb, importato e selezionato. L’originale resta intatto. Se rifai il rig dello stesso modello ottieni hero_rigged_2.glb, quindi niente viene sovrascritto.

Cosa c’è nel GLB con rig

Per usarlo, trascina hero_rigged.glb in una scena: arriva come un unico nodo con tutto al suo interno.

Skeleton3D
Uno scheletro fatto per il tipo di corpo, con la tua mesh legata con lo skinning. Un umano riceve 66 ossa, tutte le dita comprese, chiamate pelvis, spine_01, hand_r, foot_l e così via.
AnimationPlayer
Tutte le animazioni, ognuna con il suo nome. Per un umanoide, fino a 593: Idle_A, Walk, Jog, Sprint, Jump_Start, Sword_Attack, Dance_Groove e centinaia di altre. Un account gratuito riceve quelle gratuite, e un piano aggiunge le altre.
Loop
Idle, camminate, corse, volo e nuoto sono già in loop. L’add-on lo scrive nelle impostazioni di importazione del file prima che Godot lo importi.
Orientamento
Il personaggio è rivolto verso +Z, come i modelli glTF.

Riproduci le animazioni con un AnimationPlayer

Il personaggio giocante più semplice: un CharacterBody3D con una CollisionShape3D (una capsula), e sotto di esso il modello con rig trascinato dentro e rinominato Hero. Collega questo 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)

Avvialo: con i tasti freccia il personaggio corre in giro e, quando li lasci, torna dolcemente in idle. Chiamare play con l’animazione già in corso la lascia proseguire, quindi chiamarlo a ogni frame va bene.

Fondile con un AnimationTree

Un AnimationTree fonde le animazioni in base alla velocità e gestisce le mosse singole come un attacco. Si imposta una volta nell’editor:

  1. Aggiungi un nodo AnimationTree al personaggio. Nell’Inspector, imposta Anim Player su Hero/AnimationPlayer e Tree Root su una nuova AnimationNodeStateMachine.
  2. Nel pannello AnimationTree in basso, fai clic destro e aggiungi un BlendSpace1D. Chiamalo Locomotion, aprilo e aggiungi tre punti: Idle_A a 0, Walk a 1,5 e Jog a 4 (imposta il suo Max Space a 4).
  3. Fai di nuovo clic destro e aggiungi l’animazione Sword_Attack. Collega Start a Locomotion, Locomotion a Sword_Attack e Sword_Attack di nuovo a Locomotion con Switch Mode su At End e Advance Mode su Auto.
  4. In Project > Project Settings > Input Map, aggiungi un’azione chiamata attack e assegnale un tasto.

Poi, nello stesso script, togli le due righe anim.play e guida invece l’albero:

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

Finché l’AnimationTree è attivo, è lui a riprodurre le animazioni, quindi non chiamare anche play dell’AnimationPlayer.

StartLocomotionBlendSpace1D · Idle_A, Walk, Jog↓ travel("Sword_Attack")↑ At EndSword_Attack
Schema della state machine di un AnimationTree. Locomotion fonde Idle_A, Walk e Jog in base alla velocità; travel() passa a Sword_Attack, che torna indietro quando finisce.

Impugnare una spada, cambiare un loop

Per mettere qualcosa in mano al personaggio, seleziona il suo Skeleton3D, aggiungici sotto un BoneAttachment3D, imposta Bone Name su hand_r e metti la spada sotto l’attachment. Seguirà la mano in ogni animazione.

Per cambiare quali animazioni vanno in loop, fai doppio clic su hero_rigged.glb nel dock FileSystem per aprire Advanced Import Settings. Scegli l’animazione sotto l’AnimationPlayer a sinistra, cambia Loop Mode e fai clic su Reimport.

Animali, creature e oggetti di scena

Scegli il tipo di corpo nel dock prima di fare clic su Rig: Fox per cani, gatti e lupi, Horse per qualsiasi animale con zoccoli, Bird, Dragon, Kaiju per i dinosauri, Spider, Insect, Snake, Fish, Kangaroo, Frog, Turtle, Ghost, oppure Object per gli oggetti di scena. Ognuno riceve uno scheletro fatto per il suo corpo e animazioni fatte apposta: galoppi, battiti d’ali, ruggiti, nuotate, strisciate. Si riproducono allo stesso modo, con gli stessi AnimationPlayer e AnimationTree. Ogni modello con lo stesso tipo di corpo ha gli stessi nomi di ossa e di animazioni, quindi l’AnimationTree di un lupo funziona per tutti i lupi. La guida agli animali elenca le animazioni di ciascun tipo.

  • Drago
  • Quadrupede
  • Ungulato
  • Dinosauro
  • Ragno
  • Pesce
Sei degli altri tipi di corpo, riggati su afk.ai/rig, ognuno con le sue animazioni.

Cosa conta come rig

Ogni rig che arriva ad AFK AI consuma uno dei rig di questo mese, come su afk.ai/rig e negli altri plugin AFK AI. Cancel interrompe l’attesa, non il rig, che viene comunque conteggiato. Un rig non riuscito non viene conteggiato. Quando hai finito i rig, il dock te lo dice e mostra See plans, che apre i piani di afk.ai.

Domande frequenti

Godot ha un auto-rigger integrato?

No. Godot importa scheletri e animazioni già esistenti, e il suo retargeting adatta uno scheletro umanoide a un altro, ma non crea il rig di una mesh. L’add-on AFK AI si occupa di questa parte e consegna a Godot un normale GLB.

Funziona in Godot 3?

No. Serve Godot 4.2 o successivo. Con Godot 3, crea il rig del modello su afk.ai/rig e importa il GLB che scarichi.

Posso usarlo in un progetto C#?

Sì. L’add-on è in GDScript, che gira anche nella build .NET di Godot, e il GLB con rig è lo stesso in entrambi i casi. In C#, riproduci un’animazione con GetNode<AnimationPlayer>("Hero/AnimationPlayer").Play("Jog", 0.2);.

Perché un GLB e non un FBX?

GLB è il formato che Godot importa meglio: scheletro, pesi di skinning e ogni animazione arrivano così come sono, in tutte le versioni di Godot 4. Il tuo originale può essere un FBX; quello che torna è un GLB.

L’add-on finisce nel gioco esportato?

Il tuo gioco usa il GLB con rig. L’add-on lavora solo nell’editor; per lasciare fuori i suoi file da un’esportazione, escludi addons/afk_ai/* nella scheda Resources del preset di esportazione.

Posso creare il rig di più modelli insieme?

Uno alla volta, circa un minuto ciascuno. Per creare il rig di un’intera cartella da uno script, usa l’API di rigging: scrive lo stesso GLB.

Posso usare i personaggi con rig in un gioco commerciale?

Sì. Scheletri e animazioni sono CC0, e il tuo modello resta tuo.

Esiste un plugin AFK AI anche per Blender, Unity o Unreal?

Sì. Vedi le guide per Blender, Unity e Unreal Engine, e la panoramica di tutti i plugin AFK AI per tutte e nove le app.

Rigga e anima il tuo modello

Un'AI lo rigga nel tuo browser, poi lo vedi muoversi con centinaia di animazioni. Scarica un unico GLB per qualsiasi engine.

Rigga un modello

Altre guide