Come esportare animazioni 3D per il web e i motori di gioco
Per esportare animazioni 3D per il web o un motore di gioco, usa glTF — GLB è la sua forma binaria a file singolo — o FBX. Entrambi memorizzano la gerarchia dei nodi, gli scheletri, i pesi della skin e le clip con keyframe. glTF è lo standard aperto che i browser e la maggior parte dei motori leggono nativamente; FBX è il formato di interscambio consolidato delle pipeline di Maya, 3ds Max, Unity e Unreal. Ciò che sopravvive al trasferimento dipende dall'esportatore, quindi constraint, IK e movimento procedurale vengono prima “baked” in keyframe.
La risposta breve
Fai il bake di tutto ciò che il formato non può memorizzare — IK, constraints, driver e simulazioni — in keyframe, controlla i nomi e le lunghezze delle clip, quindi esporta GLB per il web e la maggior parte dei motori moderni, o FBX dove una pipeline lo richiede. Transform, animazione scheletrica e pesi delle shape key vengono trasferiti; i controlli del rig, le curve personalizzate e i valori dei materiali keyframati di solito no. Apri il file nel target prima di farci affidamento.
Passo dopo passo
- 1
“Bake” ciò che il formato non può memorizzare
I formati di file memorizzano i keyframe, non i sistemi che li hanno creati. I risolutori IK, i constraint, i driver, le espressioni e le simulazioni devono essere campionati in keyframe ordinari prima dell'esportazione, altrimenti il file arriverà senza movimento dove si trovavano. In Studio, “Bake IK” nel pannello Rigging e “Animate ▸ Bake motion to keyframes…” per i driver fanno entrambi questo.
- 2
Nomina e taglia le clip
I motori importano ogni animazione nel file come una clip separata, per nome. Dai alle clip nomi che un programmatore riconoscerà — Walk, Idle, Open — e controlla la lunghezza di ciascuna, perché una clip con un keyframe fuori posto venti fotogrammi dopo la fine riprodurrà venti fotogrammi di nulla.
- 3
Scegli il formato
GLB per il web e per Godot, Blender, three.js e Babylon.js, che leggono glTF nativamente; Unity lo legge tramite un package come glTFast, e anche Unreal lo importa. FBX dove la pipeline è costruita attorno ad esso — Maya, 3ds Max e molti progetti Unity e Unreal.
- 4
Esporta
In Studio, File ▸ Esporta modello 3D… e scegli GLB o glTF — i due formati che supportano l'animazione. Ogni clip nella scena viene scritta, con quella su cui stavi lavorando per prima. Esporta per il web… produce una pagina, un embed, un componente React o un modulo three.js che riproduce l'animazione.
- 5
Verifica nel target
Importa il file nel motore o nel viewer a cui è destinato e riproduci ogni clip. Controlla la scala, la direzione, il looping e se il movimento eased è ancora fluido — i problemi elencati di seguito si manifestano qui o per niente.
glTF e GLB per l'animazione
glTF 2.0 memorizza l'animazione come canali, ciascuno mirato alla traslazione, rotazione o scala di un nodo, o ai pesi del morph-target (shape-key) di una mesh. Ogni canale campiona i keyframe con interpolazione LINEAR, STEP o CUBICSPLINE, i tempi sono memorizzati in secondi anziché fotogrammi e le rotazioni sono quaternioni. Le mesh skinned trasportano i loro joint, le matrici di inverse bind e fino a quattro pesi per vertice per set.
Questo è intenzionalmente ristretto, motivo per cui glTF si carica quasi ovunque senza conversione. Qualsiasi cosa al di fuori di esso — un colore di materiale keyframe, l'intensità di una luce, la lunghezza focale di una telecamera — richiede un'estensione come KHR_animation_pointer, e il supporto per le estensioni varia tra i motori. glTF è anche in metri e con Y-up per definizione, quindi raramente arriva con la dimensione sbagliata.
FBX per l'animazione
FBX è il formato proprietario di Autodesk ed è stato il predefinito per il trasferimento di personaggi riggati e animati tra DCC e motori di gioco per due decenni. Memorizza scheletri, skinning, blend shape, take multipli e un frame rate, e Mixamo, Unity e Unreal lo “parlano” tutti fluentemente.
Le sue debolezze sono le stesse che lo rendono flessibile: le convenzioni di unità e assi variano a seconda dell'esportatore, quindi un FBX da uno strumento può arrivare cento volte troppo grande o sdraiato sulla schiena, e i dettagli differiscono tra le versioni SDK. Molti file da Maya e Mixamo sono in centimetri, mentre glTF è in metri.
Cosa viene trasferito e cosa no
Trasferito in modo affidabile: trasformazioni degli oggetti, animazione scheletrica sulle ossa, pesi degli shape-key e la struttura della clip. Solitamente perso: IK e constraint, driver ed espressioni, controlli rig personalizzati e valori keyframe di materiale, luce e lente della telecamera. “Bake” il primo gruppo di perdite in keyframe; per il secondo, verifica se il target supporta un'estensione o necessita che l'effetto venga ricostruito.
Le curve sono l'aspetto più delicato. Gli esportatori differiscono nel mantenere le tangenti di Bézier, scrivere dati cubic-spline o campionare la curva in keyframe. Un esportatore che scrive solo i keyframe impostati, con interpolazione lineare tra di essi, appiattisce un forte easing tra keyframe ampiamente distanziati. Se l'easing esatto è importante nel motore, aggiungi keyframe all'interno dell'easing o “bake” il movimento al frame rate.
Esportare animazioni da Mixos Studio
Le esportazioni GLB e glTF di Studio trasferiscono le trasformazioni degli oggetti con keyframe e i pesi degli shape-key, mantengono la gerarchia della scena in modo che ogni oggetto si animi nel proprio spazio locale e scrivono ogni clip nella scena. I target FBX, OBJ, STL e USDZ non trasportano animazioni, e la finestra di dialogo di esportazione lo indica prima del download.
Due limiti sono importanti da conoscere. I keyframe vengono scritti nei momenti in cui li imposti e interpolati linearmente tra di essi nel file, quindi aggiungi un keyframe all'interno di un lungo easing se un motore deve riprodurlo esattamente. E i valori keyframe di materiale, luce e telecamera rimangono nella scena, perché il glTF “core” non ha un canale per essi. Il file di scena .mxs mantiene tutto ciò che un formato modello non può — generatori, modificatori, animazione e impostazioni di rendering — per quando la destinazione è Studio stesso. L'esportazione è inclusa in un piano a pagamento; animare e visualizzare in anteprima sono gratuiti.
Domande frequenti
GLB o FBX è migliore per l'animazione?
GLB per il web e per i motori che leggono glTF nativamente, come Godot e three.js — è uno standard aperto, metrico e coerente tra gli strumenti. FBX dove una pipeline è costruita attorno ad esso, in particolare Maya, 3ds Max e molti progetti Unity e Unreal. Entrambi supportano l'animazione scheletrica e gli shape key.
glTF supporta l'animazione?
Sì. glTF 2.0 anima la traslazione, rotazione e scala dei nodi e i pesi dei morph-target, con interpolazione lineare, a gradini o cubic-spline, e supporta le mesh skinned. Animare altre proprietà, come i valori dei materiali, richiede un'estensione.
Perché la mia animazione esportata non si muove?
Di solito perché il movimento proviene da qualcosa che il formato non memorizza — un risolutore IK, un constraint, un driver o una simulazione — e non è stato “baked” in keyframe prima dell'esportazione. L'altra causa comune è che il motore non riproduce la clip: la maggior parte richiede che la clip sia assegnata o impostata per l'autoplay.
Perché la mia animazione ha la dimensione sbagliata o è ruotata nel motore?
Convenzioni di unità e assi. glTF è sempre in metri e con Y-up; FBX dipende dall'esportatore ed è spesso in centimetri. Imposta le opzioni di unità e assi all'esportazione, o applica una singola scala all'importazione, piuttosto che correggerla per ogni clip.
Posso esportare animazioni da un browser?
Sì. Mixos Studio esporta scene animate come GLB o glTF con ogni clip, o come pagina web o modulo three.js che le riproduce. Animare è gratuito; l'esportazione è inclusa in un piano a pagamento.
Anima una scena ed esportala come GLB — ogni clip, nel formato che il web e la maggior parte dei motori leggono nativamente.