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.

GLTFObjectModelProperty

Eredita: RefCounted < Object

Descrive come accedere a una proprietà come definito nel modello d'oggetto glTF.

Descrizione

GLTFObjectModelProperty definisce una mappatura tra una proprietà nel modello d'oggetto glTF e un NodePath nell'albero di scene di Godot. Può essere utilizzato per animare le proprietà in un file glTF attraverso l'estensione KHR_animation_pointer o per accedervi tramite uno script indipendente dal motore, come un grafico di comportamento definito dall'estensione KHR_interactivity.

La proprietà glTF è identificata da puntatori JSON memorizzati in json_pointers, mentre la proprietà di Godot a cui è mappata è definita da node_paths. Nella maggior parte dei casi json_pointers e node_paths avranno ciascuno un solo elemento, ma in alcuni casi un singolo puntatore JSON glTF sarà mappato a più proprietà Godot, oppure una singola proprietà Godot sarà mappata a più puntatori JSON glTF, oppure potrebbe trattarsi di una relazione molti-a-molti.

È possibile usare gli oggetti Expression per definire conversioni tra i dati, come quando glTF definisce un angolo in radianti e Godot usa gradi. La proprietà object_model_type definisce il tipo di dati memorizzati nel file glTF come definito dal modello d'oggetto, vedi GLTFObjectModelType per i valori possibili.

Tutorial

Proprietà

Expression

gltf_to_godot_expression

Expression

godot_to_gltf_expression

Array[PackedStringArray]

json_pointers

[]

Array[NodePath]

node_paths

[]

GLTFObjectModelType

object_model_type

0

Variant.Type

variant_type

0

Metodi

void

append_node_path(node_path: NodePath)

void

append_path_to_property(node_path: NodePath, prop_name: StringName)

GLTFAccessorType

get_accessor_type() const

bool

has_json_pointers() const

bool

has_node_paths() const

void

set_types(variant_type: Variant.Type, obj_model_type: GLTFObjectModelType)


Enumerazioni

enum GLTFObjectModelType: 🔗

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_UNKNOWN = 0

Tipo di modello d'oggetto sconosciuto o non impostato. Se il tipo di modello d'oggetto è impostato su questo valore, il tipo reale deve ancora essere determinato.

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_BOOL = 1

Tipo di modello d'oggetto "bool". Rappresentato nel JSON glTF come un valore booleano e codificato in un GLTFAccessor come "SCALAR". Quando codificato in un accessor, un valore di 0 è false e qualsiasi altro valore è true.

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT = 2

Tipo di modello d'oggetto "float". Rappresentato nel JSON glTF come un numero e codificato in un GLTFAccessor come "SCALAR".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT_ARRAY = 3

Tipo di modello d'oggetto "float[]". Rappresentato nel JSON glTF come un array di numeri e codificato in un GLTFAccessor come "SCALAR".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT2 = 4

Tipo di modello d'oggetto "float2". Rappresentato nel JSON glTF come un array di due numeri e codificato in un GLTFAccessor come "VEC2".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT3 = 5

Tipo di modello d'oggetto "float3". Rappresentato nel JSON glTF come un array di tre numeri e codificato in un GLTFAccessor come "VEC3".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT4 = 6

Tipo di modello d'oggetto "float4". Rappresentato nel JSON glTF come un array di quattro numeri e codificato in un GLTFAccessor come "VEC4".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT2X2 = 7

Tipo di modello d'oggetto "float2x2". Rappresentato nel JSON glTF come un array di quattro numeri e codificato in un GLTFAccessor come "MAT2".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT3X3 = 8

Tipo di modello d'oggetto "float3x3". Rappresentato nel JSON glTF come un array di nove numeri e codificato in un GLTFAccessor come "MAT3".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT4X4 = 9

Tipo di modello d'oggetto "float4x4". Rappresentato nel JSON glTF come un array di sedici numeri e codificato in un GLTFAccessor come "MAT4".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_INT = 10

Tipo di modello d'oggetto "int". Rappresentato nel glTF JSON come un numero e codificato in un GLTFAccessor come "SCALAR". L'intervallo di valori è limitato agli interi con segno. Per KHR_interactivity, sono supportati solo gli interi a 32 bit.


Descrizioni delle proprietà

Expression gltf_to_godot_expression 🔗

Se impostata, questa Expression verrà utilizzata per convertire il valore della proprietà dal modello d'oggetto glTF al valore previsto dalla proprietà di Godot. Ciò è utile quando il modello d'oggetto glTF utilizza un sistema di unità diverso o quando è necessario trasformare i dati in qualche modo. Se null, il valore verrà copiato così com'è.


Expression godot_to_gltf_expression 🔗

Se impostata, questa Expression verrà utilizzata per convertire il valore della proprietà dalla proprietà di Godot al valore previsto dal modello d'oggetto glTF. Ciò è utile quando il modello d'oggetto glTF utilizza un sistema di unità diverso o quando è necessario trasformare i dati in qualche modo. Se null, il valore verrà copiato così com'è.


Array[PackedStringArray] json_pointers = [] 🔗

I puntatori JSON del modello d'oggetto glTF utilizzati per identificare la proprietà nel modello d'oggetto glTF. Nella maggior parte dei casi, ci sarà un solo elemento in questo array, ma casi più specifici potrebbero richiedere più puntatori. Gli elementi sono a loro volta array che rappresentano il puntatore JSON suddiviso nei suoi componenti.


Array[NodePath] node_paths = [] 🔗

Un array di NodePath che puntano a una proprietà, o più proprietà, nell'albero di scene Godot. All'importazione, questo verrà impostato da GLTFDocument o da una classe GLTFDocumentExtension. Per i casi semplici, usa append_path_to_property() per aggiungere proprietà a questo array.

Nella maggior parte dei casi node_paths avrà solo un elemento, ma in alcuni casi un singolo puntatore JSON glTF sarà mappato a più proprietà di Godot. Ad esempio, un GLTFCamera o GLTFLight usato su più nodi glTF sarà rappresentato da più nodi di Godot.


GLTFObjectModelType object_model_type = 0 🔗

Il tipo di dati memorizzato nel file glTF come definito dal modello d'oggetto. Questo è un sovrainsieme dei tipi di accessor disponibili e determina il tipo di accessor.


Variant.Type variant_type = 0 🔗

Il tipo di dati memorizzati nella proprietà di Godot. Questo è il tipo di proprietà a cui puntano i node_paths.


Descrizioni dei metodi

void append_node_path(node_path: NodePath) 🔗

Aggiunge un NodePath a node_paths. Può essere utilizzato dalle classi GLTFDocumentExtension per definire come una proprietà del modello d'oggetto glTF viene mappata a una proprietà di Godot o a più proprietà Godot. Preferisci usare append_path_to_property() per i casi semplici. Assicurati di chiamare anche set_types() una volta (l'ordine non ha importanza).


void append_path_to_property(node_path: NodePath, prop_name: StringName) 🔗

Wrapper di alto livello sopra append_node_path() che gestisce i casi più comuni. Costruisce un nuovo NodePath usando node_path come base e aggiunge prop_name al sotto-percorso. Assicurati di chiamare anche set_types() una volta (l'ordine non ha importanza).


GLTFAccessorType get_accessor_type() const 🔗

Il tipo di accessor GLTF associato a object_model_type di questa proprietà. Vedi GLTFAccessor.accessor_type per i valori possibili e vedi GLTFObjectModelType per il modo in cui il tipo di modello d'oggetto è mappato ai tipi di accessor.


bool has_json_pointers() const 🔗

Restituisce true se json_pointers non è vuoto. È utilizzato durante l'esportazione per determinare se un GLTFObjectModelProperty può gestire la conversione di una proprietà di Godot in una proprietà del modello d'oggetto glTF.


bool has_node_paths() const 🔗

Restituisce true se node_paths non è vuoto. È utilizzato durante l'importazione per determinare se un GLTFObjectModelProperty può gestire la conversione di una proprietà del modello d'oggetto glTF in una proprietà di Godot.


void set_types(variant_type: Variant.Type, obj_model_type: GLTFObjectModelType) 🔗

Imposta le proprietà variant_type e object_model_type. Questo è un metodo di comodità per impostare entrambe le proprietà contemporaneamente, poiché sono quasi sempre note allo stesso tempo. Questo metodo dovrebbe essere chiamato una volta. Chiamarlo di nuovo con gli stessi valori non avrà alcun effetto.