Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Configurazione di importazione
Godot offre diversi modi per personalizzare i dati importati, come il pannello Importazione, la finestra delle impostazioni d'importazione avanzate e le scene ereditate. Possono servire per apportare ulteriori modifiche alla scena importata, come aggiustare le mesh, aggiungere informazioni sulla fisica e aggiungere nuovi nodi. È anche possibile scrivere uno script che esegue codice al termine del processo di importazione per applicare personalizzazioni arbitrarie.
Si noti che, se applicabile, è preferibile modificare i dati originali piuttosto che configurare la scena dopo l'importazione. Ciò aiuta a ridurre al minimo le differenze tra l'applicazione di modellazione 3D e la scena importata. Consultare gli articoli Considerazioni sull'esportazione di modelli e Personalizzazione del tipo di nodo tramite suffissi nel nome per ulteriori informazioni.
Procedure di importazione
Poiché Godot può salvare solo nel proprio formato di scena (.tscn/.scn), non può sovrascrivere il file originale della scena 3D (che utilizza un formato diverso). Questo approccio è anche più sicuro in quanto evita di apportare modifiche al file sorgente per sbaglio.
Per consentire di personalizzare la scena e i suoi materiali, l'importatore di scene di Godot offre diversi flussi di lavoro su come sono importati i dati.
Pannello Importazione dopo aver selezionato una scena 3D nel pannello Filesystem
Questa procedura di importazione è personalizzabile tramite 3 interfacce separate, a seconda delle esigenze:
Il pannello Importazione, dopo aver selezionato la scena 3D cliccando una volta su di essa nel pannello Filesystem.
The Advanced Import Settings dialog, which can be accessed by double-clicking the 3D scene in the FileSystem dock or by clicking the Advanced… button in the Import dock. This allows you to customize per-object options in Godot, and preview models and animations. Please see the Impostazioni avanzate del progetto page for more information.
indicazioni di importazione, che sono suffissi speciali aggiunti ai nomi degli oggetti nel software di modellazione 3D. Consentono di personalizzare le opzioni per ogni oggetto nel software di modellazione 3D.
Per le personalizzazioni base, basta utilizzare il pannello Importazione. Tuttavia, per operazioni più complesse, come la definizione di materiali sostitutivi per ciascun materiale, sarà necessario utilizzare la finestra Impostazioni di importazione avanzate, le indicazioni di importazione o possibilmente entrambi.
Utilizzo del pannello Importazione
Dopo aver selezionato una scena 3D nel pannello Filesystem, è possibile regolare le seguenti opzioni nel pannello Importazione:
Tipo di radice: il tipo di nodo da utilizzare come nodo radice. Si consiglia di utilizzare tipi di nodo che ereditano da Node3D. Se no, si perderà l'abilità di posizionare il nodo direttamente nell'editor 3D.
Root Name: The name of the root node in the imported scene. This is generally not noticeable when instantiating the scene in the editor (or drag-and-dropping from the FileSystem dock), as the root node is renamed to match the filename in this case.
Apply Root Scale: If enabled, Root Scale will be applied on the meshes and animations directly, while keeping the root node's scale to the default
(1, 1, 1). This means that if you add a child node later on within the imported scene, it won't be scaled. If disabled, Root Scale will multiply the scale of the root node instead.
Mesh
Garantisci tangenti: se selezionata, genera le tangenti dei vertici tramite Mikktspace se le mesh di input non contengono dati di tangenti. Quando possibile, si consiglia di lasciare che il software di modellazione 3D generi le tangenti durante l'esportazione anziché affidarsi a questa opzione. Le tangenti sono necessarie per visualizzare correttamente le mappe di normali e di altezza, nonché qualsiasi funzionalità di materiale/shader che le richieda. Se non servono funzionalità di materiali che richiedono tangenti, disabilitando questa opzione è possibile ridurre le dimensioni del file risultante e velocizzare l'importazione se il file 3D sorgente non contiene tangenti.
Genera LOD: Se selezionata, genera varianti a basso livello di dettaglio della mesh che saranno visualizzate in lontananza per migliorare le prestazioni di rendering. Non tutte le mesh traggono vantaggio dai LOD, soprattutto se non sono mai renderizzate da lontano. Disabilitando questa opzione è possibile ridurre le dimensioni del file risultante e velocizzare l'importazione. Consultare Livello di dettaglio (LOD) di una mesh per ulteriori informazioni.
Crea mesh d'ombra: se selezionata, abilita la generazione di mesh d'ombra durante l'importazione. Questo ottimizza il rendering delle ombre senza ridurre la qualità, unendo i vertici quando possibile. Ciò a sua volta riduce la larghezza di banda necessaria per renderizzare le ombre. La generazione di mesh d'ombra attualmente non supporta l'utilizzo di un livello di dettaglio più basso della mesh sorgente (ma il rendering delle ombre utilizzerà i LOD quando necessario).
Precalcolo della luce: configura la modalità di illuminazione globale delle mesh nella scena 3D. Se impostato su Static Lightmaps, imposta la modalità GI delle mesh su Static e genera le UV2 durante l'importazione per il precalcolo delle lightmap.
Dimensione dei texel della lightmap: visibile solo se Light Baking è impostato su Static Lightmap. Controlla la dimensione di ciascun texel sulla lightmap generata. Un valore inferiore produce lightmap più precise, a scapito di dimensioni maggiori e tempi precalcolo più lunghi.
Skin
Usa skin con nome: se selezionata, utilizza Skin con nomi per le animazioni. Il nodo MeshInstance3D contiene 3 proprietà rilevanti in questo caso: un NodePath dello scheletro che punta al nodo Skeleton3D (di solito
..), una mesh e una skin:Il nodo Skeleton3D contiene un elenco di ossa con i relativi nomi, la loro posa e riposo, un nome e un osso genitore.
La mesh è costituita da tutti i dati grezzi dei vertici necessari per visualizzare una mesh. In termini di mesh, essa conosce i pesi dei vertici e utilizza una numerazione interna spesso importata dai software di modellazione 3D.
La skin contiene le informazioni necessarie per associare questa mesh a questo Skeleton3D. Per ogni ID osso interno scelto dal software di modellazione 3D, contiene due cose. Primo, una matrice nota come Bind Pose Matrix, Inverse Bind Matrix o IBM in breve. secondo, la Skin contiene il nome di ciascun osso (se Usa skin con nome è abilitato) oppure l'indice dell'osso nell'elenco di Skeleton3D (se Usa skin con nome è disabilitato).
Assieme, queste informazioni sono sufficienti per indicare a Godot come utilizzare le pose delle ossa nel nodo Skeleton3D per renderizzare la mesh di ogni MeshInstance3D. Si noti che ogni MeshInstance3D può condividere le associazioni, come accade comunemente nei modelli esportati da Blender, oppure può utilizzare un oggetto Skin separato, come avviene comunemente nei modelli esportati da altri strumenti come Maya.
Animation
Importa: se selezionata, importa le animazioni dalla scena 3D.
FPS: Il numero di fotogrammi al secondo da utilizzare per precalcolare le curve di animazione su una serie di punti con interpolazione lineare. Si consiglia di configurare questo valore in modo che corrisponda al valore utilizzato come base nel software di modellazione 3D. Valori più elevati producono animazioni più precise con rapidi cambi di movimento, a scapito di dimensioni dei file e utilizzo della memoria maggiori. Grazie all'interpolazione, solitamente non è particolarmente vantaggioso andare oltre gli 30 FPS (poiché l'animazione apparirà comunque fluida anche a frame rate di rendering più elevati).
Ritaglio: taglia l'inizio e la fine delle animazioni se non ci sono modifiche ai fotogrammi chiave. Questo può ridurre le dimensioni dei file risultanti e l'utilizzo della memoria con determinate scene 3D, a seconda del contenuto delle loro tracce di animazione.
Rimuovi tracce immutabili: rimuove le tracce di animazione che contengono solo valori predefiniti. Questo può ridurre le dimensioni dei file risultanti e l'utilizzo della memoria con determinate scene 3D, a seconda del contenuto delle loro tracce di animazione.
Script di importazione
Percorso: percorso a uno script di importazione, che può eseguire codice dopo aver completato il processo di importazione per un'elaborazione personalizzata. Consulta Utilizzare script di importazione per l'automazione per ulteriori informazioni.
glTF
Gestione delle texture incorporate: controlla come gestire le texture incorporate nelle scene glTF. Discard All Textures non importa alcuna texture, il che è utile se si desidera configurare manualmente i materiali in Godot. Extract Textures estrae le texture in immagini esterne, ottenendo file di dimensioni inferiori e maggiore controllo sulle opzioni di importazione. Embed as Basis Universal e Embed as Uncompressed mantengono le texture incorporate nella scena importata, rispettivamente con e senza compressione VRAM.
FBX
Importer Quale metodo di importazione è utilizzato. ubfx gestisce i file fbx come file fbx. FBX2glTF converte i file FBX in glTF durante l'importazione e richiede una configurazione in più. FBX2glTF non è consigliato a meno che non si abbia un motivo specifico per usarlo al posto di ufbx o si stia lavorando con un formato di file diverso.
Consenti nodi ausiliari di geometria abilita o disabilita i nodi ausiliari per la geometria
Gestione delle texture incorporate: controlla come gestire le texture incorporate nelle scene fbx. Discard All Textures non importa alcuna texture, il che è utile se si desidera configurare manualmente i materiali in Godot. Extract Textures estrae le texture in immagini esterne, ottenendo file di dimensioni inferiori e maggiore controllo sulle opzioni di importazione. Embed as Basis Universal e Embed as Uncompressed mantengono le texture incorporate nella scena importata, rispettivamente con e senza compressione VRAM.
Opzioni specifiche di Blender
Visibile solo per i file .blend.
Nodi
Visibile: All importa tutto, anche gli oggetti invisibili. Visible Only importa solo gli oggetti visibili. Renderable importa solo gli oggetti contrassegnati come renderizzabili in Blender, a prescindere dalla loro visibilità effettiva. In Blender, la renderizzabilità si cambia cliccando sull'icona della fotocamera accanto a ciascun oggetto nell'Outliner, mentre la visibilità si cambia tramite l'icona dell'occhio.
Active Collection Only: se selezionata, sono importati solo i nodi presenti nella collezione attiva in Blender.
Punctual Lights: se selezionata, importa le luci (direzionali, omnidirezionali e spot) da Blender. "Puntuali" non va confusa con "posizionali", motivo per cui sono incluse anche le luci direzionali.
Cameras: se selezionata, importa le telecamere da Blender.
Custom Properties: se selezionata, importa le proprietà personalizzate da Blender come extra di glTF. Un'estensione dell'editor può poi utilizzare questi dati tramite GLTFDocument.register_gltf_document_extension(), che può impostare i metadati del nodo durante l'importazione (tra altri casi d'uso).
Modifiers: se impostato su No Modifiers, i modificatori degli oggetti saranno ignorati durante l'importazione. Se impostato su All Modifiers, i modificatori sono applicati agli oggetti durante l'importazione.
Mesh
Colors: se selezionata, importa i colori dei vertici da Blender.
UV: se selezionata, importa le coordinate UV1 e UV2 dei vertici da Blender.
Normals: se selezionato, importa le normali dei vertici da Blender.
Export Geometry Nodes Instances: se selezionato, importa le istanze del nodo geometrico da Blender.
GPU Instances se selezionata, importa istanze e sistemi di particelle come dati buffer/accessor di GLTF anziché come numerosi oggetti Mesh3D individuali. Questo non include l'istanziazione dei nodi di geometria.
Tangents: se selezionato, importa le tangenti dei vertici da Blender.
Skins: None salta l'importazione dei dati delle skin di scheletro da Blender. 4 Influences (Compatible) importa i dati delle skin per renderli compatibili con tutti i renderer, a scapito di una precisione inferiore per alcuni rig. All Influences importa i dati delle skin con tutte le influenze (fino a 8 in Godot), che è più preciso ma potrebbe non essere compatibile con tutti i renderer.
Export Bones Deforming Mesh Only: se selezionato, importa solo le ossa che deformano la mesh da Blender.
Materiali
Unpack Enabled: se selezionata, decomprime le immagini originali nel file system Godot e le utilizza. Questo consente di modificare le impostazioni di importazione delle immagini, come la compressione VRAM. Se deselezionata, consente a Blender di convertire le immagini originali, ad esempio rimpacchettando la texture di rugosità e di metallico in una singola texture con entrambi. Nella maggior parte dei casi, questa opzione si dovrebbe lasciare selezionata, ma se le immagini del file
.blendnon sono nel formato corretto, questa opzione si deve disabilitare per un funzionamento corretto.Export Materials: se impostata su Placeholder, non importa i materiali, ma mantiene gli slot delle superfici in modo che materiali diversi si possano assegnare a superfici diverse. Se impostata su Export, importa i materiali così come sono (si noti che i materiali procedurali di Blender potrebbero non funzionare correttamente). Se impostata su Named Placeholder, importa i materiali, ma non importa le immagini che sono incluse nel file
.blend. Sarà necessario riassegnare le texture manualmente nei materiali importati.
Animation
Limit Playback: se selezionata, questa opzione limita l'importazione dell'animazione entro l'intervallo di riproduzione definito in Blender (le opzioni Start e End a destra della timeline dell'animazione in Blender). Ciò può evitare di includere dati di animazione inutilizzati, rendendo la scena importata più piccola e più veloce da caricare. Tuttavia, potrebbe anche comportare la perdita di dati di animazione se l'intervallo di riproduzione non è impostato correttamente in Blender.
Always Sample: se selezionata, forza il campionamento dell'animazione durante l'importazione per avere coerenza tra il modo in cui Blender e glTF effettuano l'interpolazione dell'animazione, a scapito di file più grandi. Se deselezionata, potrebbero esserci differenze nel modo in cui le animazioni sono interpolate tra ciò che si vede in Blender e la scena importata in Godot, a causa delle diverse semantiche di interpolazione.
Group Tracks: se selezionata, importa le animazioni (attive e su tracce NLA) come tracce separate. Se deselezionata, tutte le azioni attualmente assegnate diventano un'unica animazione glTF.
Utilizzare script di importazione per l'automazione
È possibile fornire uno script speciale per elaborare l'intera scena dopo l'importazione. Questo è ottimo per elaborare in post, cambiare materiali, manipolare la geometria e altro ancora.
Creare uno script non allegato ad alcun nodo facendo clic destro nel pannello Filesystem e scegliendo Nuovo > Script…. Nell'editor di script, scrivere quanto segue:
@tool # Needed so it runs in editor.
extends EditorScenePostImport
# This sample changes all node names.
# Called right after the scene is imported and gets the root node.
func _post_import(scene):
# Change all node names to "modified_[oldnodename]"
iterate(scene)
return scene # Remember to return the imported scene
# Recursive function that is called on every node
# (for demonstration purposes; EditorScenePostImport only requires a `_post_import(scene)` function).
func iterate(node):
if node != null:
print_rich("Post-import: [b]%s[/b] -> [b]%s[/b]" % [node.name, "modified_" + node.name])
node.name = "modified_" + node.name
for child in node.get_children():
iterate(child)
La funzione _post_import(scene: Node) accetta come argomento la scena importata (il parametro è in realtà il nodo radice della scena). La scena che verrà ultimamente usata deve essere restituita (anche se la scena può essere interamente diversa).
Per utilizzare lo script, individuare lo script nell'opzione "Percorso" della scheda Importazione, nella categoria "Importa script".
Utilizzo di librerie di animazione
È anche possibile scegliere di importare solo le animazioni da un file glTF e nient'altro. Questa opzione è usata in alcune pipeline di risorse per distribuire le animazioni separatamente dai modelli. Ad esempio, ciò consente di utilizzare un insieme di animazioni per diversi personaggi, senza dover duplicare i dati di animazione per ogni personaggio.
Per farlo, selezionare il file glTF nel pannello Filesystem, poi cambiare la modalità di importazione in "Libreria di animazione" nel pannello Importazione:
Cambiare il tipo di importazione in "Libreria di animazione" nel pannello Importazione
Cliccare su Reimporta e riavviare l'editor quando richiesto. Dopo aver riavviato, il file glTF verrà importato come AnimationLibrary anziché come PackedScene. Questa libreria di animazione si può quindi referenziare in un nodo AnimationPlayer.
Le opzioni di importazione visibili dopo aver cambiato la modalità di importazione in "Libreria di animazione" funzionano allo stesso modo di quando si usa la modalità di importazione "Scena". Consultare Utilizzo del pannello Importazione per ulteriori informazioni.
Filtra script
È possibile specificare uno script di filtraggio con una sintassi speciale per decidere quali tracce di quali animazioni bisogna mantenere.
Lo script di filtraggio viene eseguito su ogni animazione importata. La sintassi è composta da due tipi di istruzioni: la prima per scegliere quali animazioni filtrare e la seconda per filtrare le singole tracce dentro l'animazione corrispondente. Tutti gli schemi di nomi vengono elaborati attraverso una corrispondenza di espressioni, senza distinzione tra maiuscole e minuscole, con supporto per i caratteri jolly ? e * (utilizzando String.matchn() internamente).
Lo script deve iniziare con un'istruzione di filtro animazione (indicata dalla riga che inizia con @). Ad esempio, se volessimo applicare filtri a tutte le animazioni importate il cui nome termina con "_Loop":
@+*_Loop
Similmente, è possibile aggiungere ulteriori schemi alla stessa riga, separati da virgole. Ecco un esempio modificato per includere anche tutte le animazioni con nomi che iniziano con "Arm_Left", ma anche escludere tutte le animazioni i cui nomi terminano con "Attack":
@+*_Loop, +Arm_Left*, -*Attack
Dopo l'istruzione di filtro per selezionare le animazioni, aggiungiamo gli schemi di filtro traccia per indicare quali tracce di animazione bisogna mantenere o scartare. Se non viene specificati schemi di filtro traccia, tutte le tracce dentro le animazioni corrispondenti verranno scartate!
È importante notare che le istruzioni di filtro traccia vengono applicate in sequenza, per ciascuna traccia dentro l'animazione. Significa che una riga può includere una traccia, ma una regola successiva può comunque escluderla. Similmente, una traccia esclusa da una regola iniziale può essere reintrodotta da una regola di filtro più avanti nello script di filtraggio.
Ad esempio: includi tutte le tracce nelle animazioni con nomi che terminano con "_Loop", ma scarta tutte le tracce che influenzano uno "Skeleton" che terminano con "Control", a meno che non abbiano "Arm" nel loro nome:
@+*_Loop
+*
-Skeleton:*Control
+*Arm*
Nell'esempio precedente, tracce come "Skeleton:Leg_Control" verrebbero scartate, mentre tracce come "Skeleton:Head" o "Skeleton:Arm_Left_Control" verrebbero mantenute.
Tutte le righe del filtro traccia che non iniziano con + o - sono ignorate.
Ereditarietà di scene
In molti casi, potrebbe essere necessario apportare modifiche manuali alla scena importata. Normalmente, questo non è possibile perché, se la risorsa 3D sorgente cambia, Godot reimporterà l'intera scena.
Tuttavia, è possibile apportare modifiche locali attraverso l'ereditarietà di scene. Se si tenta di aprire la scena importata tramite Scena > Apri scena… o Scena > Apri scena rapida…, verrà visualizzata la seguente finestra di dialogo:
Finestra di dialogo all'apertura di una scena 3D importata nell'editor
Nelle scene ereditate, le uniche restrizioni per la modifica sono:
I nodi della scena base non possono essere rimossi, ma è possibile aggiungerne altri ovunque.
Le sotto-risorse non possono essere modificate. È necessario salvarle esternamente come descritto in precedenza.
A parte questo, tutto è permesso.