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...
EditorSceneFormatImporter
Eredita: RefCounted < Object
Ereditato da: EditorSceneFormatImporterBlend, EditorSceneFormatImporterFBX2GLTF, EditorSceneFormatImporterGLTF, EditorSceneFormatImporterUFBX
Importa scene da file 3D di terze parti.
Descrizione
EditorSceneFormatImporter consente di definire uno script di importazione per un formato 3D di terze parti.
Per utilizzare EditorSceneFormatImporter, registrarlo prima attraverso il metodo EditorPlugin.add_scene_format_importer_plugin().
Metodi
_get_extensions() virtual required const |
|
void |
_get_import_options(path: String) virtual |
_get_option_visibility(path: String, for_animation: bool, option: String) virtual const |
|
_import_scene(path: String, flags: int, options: Dictionary) virtual required |
|
void |
add_import_option(name: String, value: Variant) |
void |
add_import_option_advanced(type: Variant.Type, name: String, default_value: Variant, hint: PropertyHint = 0, hint_string: String = "", usage_flags: int = 6) |
Enumerazioni
flags ImportFlags: 🔗
ImportFlags IMPORT_SCENE = 1
Flag non utilizzato (non ha alcun effetto quando abilitato).
ImportFlags IMPORT_ANIMATION = 2
Importa le animazioni dalla scena 3D. Quando si importa una scena come AnimationLibrary, questo flag è sempre abilitato.
ImportFlags IMPORT_FAIL_ON_MISSING_DEPENDENCIES = 4
Flag non utilizzato (non ha alcun effetto quando abilitato).
ImportFlags IMPORT_GENERATE_TANGENT_ARRAYS = 8
Se true, genera le tangenti dei vertici usando Mikktspace se le mesh sorgenti non hanno dati per le tangenti. Quando possibile, si consiglia di lasciare che il software di modellazione 3D generi le tangenti durante l'esportazione invece di affidarsi a questa opzione. Le tangenti sono necessarie per visualizzare correttamente le mappe di normali e heightmap, insieme a qualsiasi funzionalità di un materiale o shader che le richiede.
Se non c'è bisogno di funzionalità che richiedono le tangenti, disabilitando questa opzione potrebbe ridurre le dimensioni del file risultante e velocizzare l'importazione se il file 3D sorgente non contiene tangenti.
ImportFlags IMPORT_USE_NAMED_SKIN_BINDS = 16
Se spuntato, usa Skin denominate per l'animazione. Il nodo MeshInstance3D contiene 3 proprietà qui rilevanti: un NodePath che punta al nodo Skeleton3D (solitamente ..), una mesh e una skin:
Il nodo Skeleton3D contiene una lista di ossa con nomi, la loro posa e il loro riposo, un nome e un osso padre.
La mesh è composta da tutti i dati grezzi dei vertici necessari per visualizzare una mesh. In termini di mesh, sa come i vertici sono dipinti con peso e usa una numerazione interna spesso importata dal software di modellazione 3D.
La skin contiene le informazioni necessarie per associare questa mesh a questo Skeleton3D. Per ognuno degli ID delle ossa interne scelti dal software di modellazione 3D, contiene due cose. Innanzitutto, una matrice nota come Bind Pose Matrix, Inverse Bind Matrix o IBM in breve. Inoltre, la Skin contiene il nome di ogni osso (se questo flag è abilitato), o l'indice dell'osso all'interno della lista dello Skeleton3D (se questo flag è disabilitato).
Insieme, queste informazioni sono sufficienti per dire a Godot come usare le pose dell'osso nel nodo Skeleton3D per renderizzare la mesh da ogni MeshInstance3D. Nota che ogni MeshInstance3D può condividere i bind, come è comune nei modelli esportati da Blender, oppure ogni MeshInstance3D può usare un oggetto Skin separato, come è comune nei modelli esportati da altri strumenti come Maya.
ImportFlags IMPORT_DISCARD_MESHES_AND_MATERIALS = 32
Ignora mesh e materiali durante l'importazione. Importando una scena come AnimationLibrary, questo flag è sempre abilitato.
ImportFlags IMPORT_FORCE_DISABLE_MESH_COMPRESSION = 64
Se true, la compressione della mesh non sarà utilizzata. Considera di abilitarla se noti artefatti a blocchi nelle normali o UV della mesh, o se hai mesh più grandi di qualche migliaio di metri in ogni direzione.
Descrizioni dei metodi
PackedStringArray _get_extensions() virtual required const 🔗
Restituite le estensioni di file supportate per questo importatore di scene.
void _get_import_options(path: String) virtual 🔗
Sostituisci per aggiungere opzioni generali di importazione. Queste appariranno nel pannello principale di importazione nell'editor. Aggiungi opzioni tramite add_import_option() e add_import_option_advanced().
Nota: Tutte le istanze di EditorSceneFormatImporter e EditorScenePostImportPlugin aggiungeranno opzioni per tutti i file. È buona norma verificare l'estensione del file quando path non è vuoto.
Quando l'utente modifica le impostazioni del progetto, path sarà vuoto. Si consiglia di aggiungere tutte le opzioni quando path è vuoto per consentire all'utente di personalizzare i predefiniti di importazione.
Variant _get_option_visibility(path: String, for_animation: bool, option: String) virtual const 🔗
Dovrebbe restituire true per mostrare l'opzione specificata, false per nascondere l'opzione specificata o null per ignorarla.
Object _import_scene(path: String, flags: int, options: Dictionary) virtual required 🔗
Esegui qui la maggior parte della logica di importazione della scena, ad esempio tramite GLTFDocument o FBXDocument.
void add_import_option(name: String, value: Variant) 🔗
Aggiunge un'opzione di importazione specifica (solo il nome e il valore predefinito). Questa funzione può essere chiamata solo da _get_import_options().
void add_import_option_advanced(type: Variant.Type, name: String, default_value: Variant, hint: PropertyHint = 0, hint_string: String = "", usage_flags: int = 6) 🔗
Aggiunge un'opzione di importazione specifica. Questa funzione può essere chiamata solo da _get_import_options().