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 для возможных значений.
Обучающие материалы
Свойства
|
||
|
||
|
||
|
Методы
void |
append_node_path(node_path: NodePath) |
void |
append_path_to_property(node_path: NodePath, prop_name: StringName) |
get_accessor_type() const |
|
has_json_pointers() const |
|
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 🔗
void set_gltf_to_godot_expression(value: Expression)
Expression get_gltf_to_godot_expression()
Если установлено, этот Expression будет использоваться для преобразования значения свойства из объектной модели glTF в значение, ожидаемое свойством Godot. Это полезно, когда объектная модель glTF использует другую систему единиц или когда данные необходимо преобразовать каким-либо образом. Если null, значение будет скопировано как есть.
Expression godot_to_gltf_expression 🔗
void set_godot_to_gltf_expression(value: Expression)
Expression get_godot_to_gltf_expression()
Если установлено, это Expression будет использоваться для преобразования значения свойства из свойства Godot в значение, ожидаемое объектной моделью glTF. Это полезно, когда объектная модель glTF использует другую систему единиц или когда данные необходимо преобразовать каким-либо образом. Если null, значение будет скопировано как есть.
Array[PackedStringArray] json_pointers = [] 🔗
void set_json_pointers(value: Array[PackedStringArray])
Array[PackedStringArray] get_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 🔗
void set_object_model_type(value: GLTFObjectModelType)
GLTFObjectModelType get_object_model_type()
Тип данных, хранящихся в файле glTF, как определено объектной моделью. Это надмножество доступных типов аксессоров, и определяет тип аксессора.
Variant.Type variant_type = 0 🔗
void set_variant_type(value: Variant.Type)
Variant.Type get_variant_type()
Тип данных, хранящихся в свойстве 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.
Возвращает true, если node_paths не пуст. Это используется во время импорта, чтобы определить, может ли GLTFObjectModelProperty обрабатывать преобразование свойства модели объекта glTF в свойство Godot.
void set_types(variant_type: Variant.Type, obj_model_type: GLTFObjectModelType) 🔗
Устанавливает свойства variation_type и object_model_type. Это удобный метод для установки обоих свойств одновременно, поскольку они почти всегда известны в одно и то же время. Этот метод следует вызывать один раз. Повторный вызов с теми же значениями не даст никакого эффекта.