GLTFObjectModelProperty

Наследует: RefCounted < Object

Описывает, как получить доступ к свойству, определенному в объектной модели glTF.

Описание

GLTFObjectModelProperty определяет сопоставление между свойством в объектной модели glTF и NodePath в дереве сцены Godot. Это можно использовать для анимации свойств в файле glTF с помощью расширения KHR_animation_pointer или для доступа к ним через независимый от движка скрипт, такой как граф поведения, определенный расширением KHR_interactivity.

Свойство glTF идентифицируется указателем(ями) JSON, хранящимся в json_pointers, в то время как свойство Godot, с которым оно сопоставляется, определяется node_paths. В большинстве случаев json_pointers и node_paths будут иметь только один элемент, но в некоторых случаях один указатель glTF JSON будет сопоставляться с несколькими свойствами Godot, или одно свойство Godot будет сопоставляться с несколькими указателями glTF JSON, или это может быть отношение «многие ко многим».

Объекты Expression могут использоваться для определения преобразований между данными, например, когда glTF определяет угол в радианах, а Godot использует градусы. Свойство object_model_type определяет тип данных, хранящихся в файле glTF, как определено объектной моделью, см. GLTFObjectModelType для возможных значений.

Обучающие материалы

Свойства

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

Методы

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)


Перечисления

enum GLTFObjectModelType: 🔗

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_UNKNOWN = 0

Неизвестный или не установленный тип модели объекта. Если тип модели объекта установлен на это значение, реальный тип все еще необходимо определить.

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_BOOL = 1

Тип модели объекта "bool". Представлен в glTF JSON как логическое значение и закодирован в GLTFaccessor как "SCALAR". При кодировании в accessor значение 0 равно false, а любое другое значение равно true.

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT = 2

Тип модели объекта "float". Представлен в glTF JSON как число и закодирован в GLTFaccessor как "SCALAR".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT_ARRAY = 3

Тип модели объекта "float[]". Представлен в glTF JSON как массив чисел и закодирован в GLTFaccessor как "SCALAR".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT2 = 4

Тип модели объекта "float2". Представлен в glTF JSON как массив из двух чисел и закодирован в GLTFaccessor как "VEC2".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT3 = 5

Тип модели объекта "float3". Представлен в glTF JSON как массив из трех чисел и закодирован в GLTFaccessor как "VEC3".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT4 = 6

Тип модели объекта "float4". Представлен в glTF JSON как массив из четырех чисел и закодирован в GLTFaccessor как "VEC4".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT2X2 = 7

Тип модели объекта "float2x2". Представлен в glTF JSON как массив из четырех чисел и закодирован в GLTFaccessor как "MAT2".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT3X3 = 8

Тип модели объекта "float3x3". Представлен в glTF JSON как массив из девяти чисел и закодирован в GLTFaccessor как "MAT3".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_FLOAT4X4 = 9

Тип модели объекта "float4x4". Представлен в glTF JSON как массив из шестнадцати чисел и закодирован в GLTFaccessor как "MAT4".

GLTFObjectModelType GLTF_OBJECT_MODEL_TYPE_INT = 10

Тип модели объекта "int". Представлен в glTF JSON как число и закодирован в GLTFaccessor как "SCALAR". Диапазон значений ограничен целыми числами со знаком. Для KHR_interactivity поддерживаются только 32-битные целые числа.


Описания свойств

Expression gltf_to_godot_expression 🔗

Если установлено, этот Expression будет использоваться для преобразования значения свойства из объектной модели glTF в значение, ожидаемое свойством Godot. Это полезно, когда объектная модель glTF использует другую систему единиц или когда данные необходимо преобразовать каким-либо образом. Если null, значение будет скопировано как есть.


Expression godot_to_gltf_expression 🔗

Если установлено, это Expression будет использоваться для преобразования значения свойства из свойства Godot в значение, ожидаемое объектной моделью glTF. Это полезно, когда объектная модель glTF использует другую систему единиц или когда данные необходимо преобразовать каким-либо образом. Если null, значение будет скопировано как есть.


Array[PackedStringArray] json_pointers = [] 🔗

Указатели JSON объектной модели glTF, используемые для идентификации свойства в объектной модели glTF. В большинстве случаев в этом массиве будет только один элемент, но в некоторых случаях может потребоваться несколько указателей. Элементы сами по себе являются массивами, которые представляют указатель JSON, разделенный на его компоненты.


Array[NodePath] node_paths = [] 🔗

Массив NodePath, указывающий на свойство или несколько свойств в дереве сцены Godot. При импорте это будет установлено либо GLTFDocument, либо классом GLTFDocumentExtension. В простых случаях используйте append_path_to_property(), чтобы добавить свойства в этот массив.

В большинстве случаев node_paths будет иметь только один элемент, но в некоторых случаях один указатель glTF JSON будет отображаться на несколько свойств Godot. Например, GLTFCamera или GLTFLight, используемые на нескольких узлах glTF, будут представлены несколькими узлами Godot.


GLTFObjectModelType object_model_type = 0 🔗

Тип данных, хранящихся в файле glTF, как определено объектной моделью. Это надмножество доступных типов аксессоров, и определяет тип аксессора.


Variant.Type variant_type = 0 🔗

Тип данных, хранящихся в свойстве Godot. Это тип свойства, на которое указывает node_paths.


Описания метода

void append_node_path(node_path: NodePath) 🔗

Добавляет NodePath к node_paths. Это может использоваться классами GLTFDocumentExtension для определения того, как свойство объектной модели glTF сопоставляется со свойством Godot или несколькими свойствами Godot. Предпочитайте использовать append_path_to_property() для простых случаев. Обязательно также вызовите set_types() один раз (порядок не имеет значения).


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

Высокоуровневая оболочка над append_node_path(), которая обрабатывает наиболее распространенные случаи. Она создает новый NodePath, используя node_path в качестве базы, и добавляет prop_name к подпути. Обязательно вызовите set_types() один раз (порядок не имеет значения).


GLTFAccessorType get_accessor_type() const 🔗

Тип аксессора GLTF, связанный с object_model_type этого свойства. См. GLTFAccessor.accessor_type для возможных значений и см. GLTFObjectModelType для того, чтобы понять как тип объектной модели сопоставляется с типами аксессора.


bool has_json_pointers() const 🔗

Возвращает true, если json_pointers не пуст. Это используется во время экспорта, чтобы определить, может ли GLTFObjectModelProperty обрабатывать преобразование свойства Godot в свойство объектной модели glTF.


bool has_node_paths() const 🔗

Возвращает true, если node_paths не пуст. Это используется во время импорта, чтобы определить, может ли GLTFObjectModelProperty обрабатывать преобразование свойства модели объекта glTF в свойство Godot.


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

Устанавливает свойства variation_type и object_model_type. Это удобный метод для установки обоих свойств одновременно, поскольку они почти всегда известны в одно и то же время. Этот метод следует вызывать один раз. Повторный вызов с теми же значениями не даст никакого эффекта.