GuideTutorial8 min di lettura

Rigging automatico di qualsiasi modello 3D dentro Unity: Pronto come Humanoid, con le sue clip di animazione

Scegli un modello nella finestra Project e fai clic su Rig. Un minuto dopo accanto trovi un FBX con rig, impostato come Humanoid, con ogni animazione come clip.

Window › AFK AI

AFK AI

Signed in as you@example.comSign out

Model

Hero.fbx

Body typehuman

All animationsRig only

FacingAuto

Adding the animations...

Stop waiting
Project › Assets/Characters
  • Hero.fbx
  • Hero_rigged.fbxHumanoid
  • └Idle_ALoop Time ✓
  • └WalkLoop Time ✓
  • └Jump_Startonce
  • └Sword_Attackonce
  • └…
  • └Hero_riggedAvatarAvatar
Disegnato sul modello del plugin, non è uno screenshot: la finestra di AFK AI mentre crea il rig di Hero.fbx e, dopo, la finestra Project con Hero_rigged.fbx impostato come Humanoid e le clip in loop contrassegnate.

Di solito, per far muovere un personaggio in Unity si passa da Mixamo. Esporti un FBX, lo carichi, posizioni i marker su mento, polsi, gomiti e ginocchia, scarichi le animazioni una per una, poi imposti ogni file come Humanoid e attivi Loop Time su ogni clip. E funziona solo con gli umanoidi.

Il package AFK AI fa tutto da una finestra dentro l’editor di Unity. Scegli il modello nella finestra Project e fai clic su Rig. Dopo circa un minuto Hero_rigged.fbx è accanto a Hero.fbx, già impostato come Humanoid, con ogni animazione come clip e camminate e idle in loop.

Mixamo o AFK AI in Unity

Mixamo è gratuito e ha una grande libreria di animazioni per umanoidi. AFK AI ti risparmia l’andirivieni, crea il rig anche di animali e oggetti di scena, e per un umanoide porta fino a 593 animazioni in un solo file. Un account gratuito riceve quelle gratuite, e un piano aggiunge le altre.

MixamoAFK AI in Unity
DoveUn sito web: carica, crea il rig, scaricaUna finestra nell’editor di Unity
Cosa faiPosizioni i marker su mento, polsi, gomiti, ginocchia e inguineScegli un tipo di corpo, fai clic su Rig
CorpiSolo umanoidiUmanoidi e altri 14 tipi di corpo
AnimazioniScaricate una alla voltaTutte le animazioni del tipo di corpo, in un solo FBX
Setup in UnityA mano: Humanoid, poi Loop Time su ogni clipGià fatto: Humanoid, una clip per animazione, loop attivi
AccessoUn account AdobeUn account afk.ai, con Google

Installa il package

  1. Scarica il package dalla pagina del plugin per Unity: un file .tgz. Tienilo in un posto fuori dal progetto dove possa restare, perché Unity legge il package da quel file.
  2. In Unity, apri Window > Package Manager, fai clic su + in alto a sinistra e scegli Add package from tarball....
  3. Seleziona il file .tgz che hai scaricato. Non decomprimerlo.
  4. Apri Window > AFK AI. Aggancia la finestra dove preferisci.

Funziona in Unity 2021.3 e successivi, Unity 6 compreso, con le pipeline Built-in, URP e HDRP allo stesso modo: il plugin tocca solo l’importazione del modello. Tutto il suo codice è solo per l’editor, quindi niente finisce nel tuo gioco.

Accedi

  1. Nella finestra di AFK AI, fai clic su Sign in. Il browser apre la pagina di accesso di afk.ai; accedi con Google.
  2. Il browser dice «You're signed in». Chiudi la scheda e torna in Unity: la finestra mostra la tua email e quanti rig ti restano questo mese.

Se il browser non riesce a tornare a Unity (alcuni software di sicurezza lo bloccano), afk.ai mostra invece un codice di accesso. Apri I have a sign-in code nella finestra di AFK AI, incollalo e fai clic su Use code.

L’accesso viene salvato nelle impostazioni di Unity per il tuo utente su questo computer, mai nel progetto, quindi non viene condiviso quando condividi il progetto o ne fai il commit.

Crea il rig di un modello

  1. Nella finestra Project, seleziona il modello: un file .fbx, .glb o .gltf fino a 50 MB. Va bene anche un modello che hai messo nella scena: il plugin invia il file da cui proviene. Unity mostra i file .glb come modelli solo se è installato un importer glTF, ma il plugin li invia in ogni caso.
  2. Nella finestra di AFK AI, imposta il Body type: human per le persone e tutto ciò che sta su due gambe, oppure l’animale o la creatura che è.
  3. Lascia attivo All animations, oppure scegli Rig only per il solo scheletro. Lascia Facing su Auto.
  4. Fai clic su Rig. La finestra mostra l’avanzamento: caricamento, attesa, rigging, aggiunta delle animazioni, download. Puoi continuare a lavorare, e chiudere la finestra non lo interrompe.

Quando ha finito, Hero_rigged.fbx viene salvato accanto a Hero.fbx, selezionato ed evidenziato nella finestra Project. Il file originale resta intatto.

Cosa riceve Unity

  • Humanoid: un umano arriva come rig Humanoid con il suo Avatar (Hero_riggedAvatar), quindi condivide le animazioni con tutti gli altri personaggi Humanoid, in entrambe le direzioni. Unity abbina da solo le ossa ai suoi slot Humanoid, dita comprese.
  • Generic: tutti gli altri tipi di corpo, da una volpe a un drago, arrivano come rig Generic.
  • Clip: ogni animazione è una clip a sé, con lo stesso nome che ha su afk.ai: Idle_A, Walk, Jog, Sprint, Jump_Start, Sword_Attack e così via.
  • Loop: le clip il cui nome indica che si ripetono (idle, walk, run, fly, swim e simili) hanno Loop Time attivo. Quelle singole come Jump_Start, Sword_Attack o Death_A si riproducono una volta.
  • Root motion: le clip il cui nome finisce in _RM (Roll_RM, Dodge_left_RM) fanno avanzare il personaggio da sole; le altre si riproducono sul posto.

Se Unity non riesce ad abbinare uno scheletro alle sue ossa Humanoid, il plugin imposta il modello come Generic e spiega perché. Le animazioni funzionano comunque; solo non si possono condividere con altri personaggi Humanoid.

Il personaggio anime in T-pose con i joint posizionati da afk.ai mostrati come punti, fino alle dita
anime-girl.glb · skeleton
root  └ pelvis    └ spine_01      └ spine_02        └ spine_03          └ neck_01            └ head          └ clavicle_l            └ upperarm_l              └ lowerarm_l                └ hand_l                  └ thumb_01_l  thumb_02_l  thumb_03_l                  └ index_01_l  index_02_l  index_03_l                  └ middle_01_l  middle_02_l  middle_03_l                  └ ring_01_l  ring_02_l  ring_03_l                  └ pinky_01_l  pinky_02_l  pinky_03_l          └ clavicle_r ... (uguale a destra)    └ thigh_l      └ calf_l        └ foot_l          └ ball_l    └ thigh_r ... (uguale a destra)
Lo scheletro umanoide che riceve ogni rig di afk.ai: 66 ossa, con tre joint in ogni dito e nel pollice, con gli stessi nomi del manichino di Unreal Engine.

Imposta un Animator

Un blend tree che passa da idle a camminata, corsa leggera e scatto man mano che il personaggio accelera, e un attacco con la spada su un pulsante:

  1. Trascina Hero_rigged.fbx nella scena. Ha già un Animator con il suo Avatar. Aggiungigli un Character Controller e disattiva Apply Root Motion sull’Animator (a muoverlo è lo script).
  2. Nella finestra Project, scegli Create > Animator Controller (in Unity 6, Create > Animation > Animator Controller), chiamalo Hero e trascinalo nel campo Controller dell’Animator.
  3. Aprilo (Window > Animation > Animator). In Parameters, aggiungi un Float chiamato Speed e un Trigger chiamato Attack.
  4. Fai clic destro sul grafo e scegli Create State > From New Blend Tree. Fai doppio clic, imposta il suo parametro su Speed e aggiungi quattro motion: Idle_A, Walk, Jog e Sprint da Hero_rigged.fbx (fai clic sulla sua freccia nella finestra Project per vedere le clip). Disattiva Automate Thresholds e imposta le soglie alle velocità a cui si muove il tuo personaggio, per esempio 0, 1,5, 3,5 e 6.
  5. Tornato nel Base Layer, trascina dentro la clip Sword_Attack. Crea una transizione dal blend tree verso di essa con la condizione Attack e Has Exit Time disattivato, così parte subito, e una di ritorno al blend tree con Has Exit Time attivo.
  6. Aggiungi questo script al personaggio:
using UnityEngine;

// Moves the character and tells its Animator how fast it's going.
[RequireComponent(typeof(Animator), typeof(CharacterController))]
public class HeroAnimation : MonoBehaviour
{
    static readonly int Speed = Animator.StringToHash("Speed");
    static readonly int Attack = Animator.StringToHash("Attack");

    [SerializeField] float runSpeed = 6f;
    Animator animator;
    CharacterController controller;

    void Awake()
    {
        animator = GetComponent<Animator>();
        controller = GetComponent<CharacterController>();
    }

    void Update()
    {
        // The Input Manager's axes. With only the Input System package, read your Move action here instead.
        var input = new Vector3(Input.GetAxis("Horizontal"), 0f, Input.GetAxis("Vertical"));
        var move = Vector3.ClampMagnitude(input, 1f) * runSpeed;
        controller.SimpleMove(move);
        if (move.sqrMagnitude > 0.01f) transform.rotation = Quaternion.LookRotation(move);

        animator.SetFloat(Speed, move.magnitude, 0.1f, Time.deltaTime); // eased, so the blend doesn't snap
        if (Input.GetButtonDown("Fire1")) animator.SetTrigger(Attack);
    }
}

Premi Play: il personaggio sta fermo, cammina, corre e scatta con lo stick o con i tasti freccia, e con un clic sferra un colpo di spada.

EntryLocomotionBlend Tree · Idle_A, Walk, Jog, Sprint↓ Attack↑ Has Exit TimeSword_Attack
Schema dell’Animator Controller. Il blend tree Locomotion va da Idle_A a Sprint in base a Speed; il trigger Attack riproduce Sword_Attack, che torna indietro quando finisce.

Condividi le animazioni con altri personaggi

Dato che un umano con rig è Humanoid, il retargeting lo fa Unity per te. Applicagli qualsiasi clip Humanoid, dall’Asset Store o dalla tua libreria, e si riproduce. Al contrario, le sue clip funzionano su qualsiasi personaggio Humanoid che hai già: trascina la clip Sprint di Hero_rigged.fbx nell’Animator Controller di un altro personaggio e quello corre.

Animali e creature sono Generic, quindi le loro clip si riproducono sul loro scheletro. Però ogni modello di cui AFK AI crea il rig con lo stesso tipo di corpo riceve gli stessi nomi di ossa e di animazioni, quindi l’Animator Controller di una volpe guida qualsiasi altra volpe a cui fai il rigging.

Animali, creature e oggetti di scena

Scegli il tipo di corpo nella finestra 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 che rimbalzano, ruotano e oscillano. Ognuno riceve uno scheletro fatto per il suo corpo e animazioni fatte per quello scheletro, e arriva come rig Generic con le stesse clip e gli stessi loop impostati. La guida agli animali elenca cosa include ciascuno.

  • 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 clic su Rig accettato da AFK AI consuma uno dei rig di questo mese, come il rigging su afk.ai/rig o in qualsiasi altro plugin AFK AI. Un rig non riuscito non viene conteggiato. Stop waiting interrompe l’attesa in Unity, ma il rig prosegue e viene comunque conteggiato. Se la connessione cade, Try again riprende lo stesso rig, e non viene mai conteggiato due volte. Quando li finisci, la finestra mostra See plans, che apre i piani di afk.ai.

Quando qualcosa va storto

Dopo l’accesso il browser non riesce a raggiungere la pagina
Usa I have a sign-in code.
Impossibile raggiungere AFK AI
Controlla la connessione, poi fai clic su Try again. Riprende lo stesso rig.
Il modello è troppo grande
AFK AI accetta modelli fino a 50 MB. Esportane uno più leggero, con meno poligoni o texture più piccole.
«keeps its data in separate files»
Un .gltf con il suo .bin accanto. Esporta invece un .glb.
Una clip va in loop quando non dovrebbe
Seleziona Hero_rigged.fbx, apri la scheda Animation nell’Inspector, scegli la clip, cambia Loop Time e fai clic su Apply.
Su Rig non succede nulla
Prima seleziona un .fbx, .glb o .gltf nella finestra Project. La finestra ti dice cosa manca.

Domande frequenti

Mi serve ancora Mixamo?

No. Il plugin crea il rig del modello e porta le sue animazioni in un solo passaggio, già impostato come Humanoid. Puoi comunque usarci le animazioni di Mixamo: scaricale per un qualsiasi personaggio Humanoid, impostale come Humanoid e funzionano sul tuo.

Il package AFK AI finisce nella build del mio gioco?

No. Tutto il suo codice è in un assembly solo per l’editor. Nel progetto resta l’FBX con rig, un normale asset di modello.

Funziona in Unity 6?

Sì. Funziona in Unity 2021.3 e in tutte le versioni successive, Unity 6 compreso.

Posso creare il rig di un modello .glb o .gltf in Unity?

Sì. Il plugin invia il file così com’è, anche quando Unity non ha un importer glTF per mostrarlo come modello. Torna un FBX, che Unity importa senza nient’altro. Un .gltf deve avere tutto incorporato; altrimenti esporta un .glb.

Il rig funziona per un avatar VRChat?

Sì. Un umano con rig è Humanoid, con tutte le dita, che è proprio ciò che serve a VRChat. La guida per VRChat spiega il resto del setup.

E se il personaggio è girato dalla parte sbagliata?

Rifai il rig con Facing impostato sull’angolo di rotazione (90°, 180° o 270°). Per la maggior parte dei modelli, Auto lo capisce da solo.

Posso creare il rig dei modelli da uno script, per un’intera cartella?

Il plugin crea il rig di un modello alla volta. Per i lotti e le pipeline di build, usa l’API di rigging, dalla riga di comando o dal tuo codice.

Esiste un plugin anche per Unreal, Godot o Blender?

Sì: Unreal Engine, Godot e Blender hanno le loro guide, e la panoramica di tutti i plugin AFK AI copre 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