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.

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

PackedStringArray

_get_extensions() virtual required const

void

_get_import_options(path: String) virtual

Variant

_get_option_visibility(path: String, for_animation: bool, option: String) virtual const

Object

_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

Unused flag (this has no effect when enabled).

ImportFlags IMPORT_ANIMATION = 2

Import animations from the 3D scene. When importing a scene as an AnimationLibrary, this flag is always enabled.

ImportFlags IMPORT_FAIL_ON_MISSING_DEPENDENCIES = 4

Unused flag (this has no effect when enabled).

ImportFlags IMPORT_GENERATE_TANGENT_ARRAYS = 8

If true, generate vertex tangents using Mikktspace if the input meshes don't have tangent data. When possible, it's recommended to let the 3D modeling software generate tangents on export instead of relying on this option. Tangents are required for correct display of normal and height maps, along with any material/shader features that require tangents.

If you don't need material features that require tangents, disabling this can reduce output file size and speed up importing if the source 3D file doesn't contain tangents.

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

Ignore meshes and materials on import. When importing a scene as an AnimationLibrary, this flag is always enabled.

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 di importazione principale 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().