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

Успадковує: 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". Коли кодується в аксесорі, значення 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 = [] 🔗

  • void set_json_pointers(value: Array[PackedStringArray])

  • Array[PackedStringArray] get_json_pointers()

Вказівники JSON об'єктної моделі glTF, що використовуються для ідентифікації властивості в об'єктній моделі glTF. У більшості випадків у цьому масиві буде лише один елемент, але в окремих випадках може знадобитися кілька вказівників. Елементи самі по собі є масивами, які представляють вказівник JSON, розділений на його компоненти.


Array[NodePath] node_paths = [] 🔗

  • void set_node_paths(value: Array[NodePath])

  • Array[NodePath] get_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) 🔗

Встановлює властивості variant_type і object_model_type. Це зручний метод встановлення обох властивостей одночасно, оскільки вони майже завжди відомі одночасно. Цей метод слід викликати один раз. Повторний виклик із тими самими значеннями не матиме ефекту.