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...
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. Это удобный метод для установки обоих свойств одновременно, поскольку они почти всегда известны в одно и то же время. Этот метод следует вызывать один раз. Повторный вызов с теми же значениями не даст никакого эффекта.