GLTFNode

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

Класс узла glTF.

Описание

Представляет узел glTF. Узлы glTF могут иметь имена, преобразования, дочерние элементы (другие узлы glTF) и более специализированные свойства (представленные их собственными классами).

Узлы glTF обычно существуют внутри GLTFState, который представляет все данные файла glTF. Большинство свойств GLTFNode являются индексами других данных в файле glTF. Вы можете расширить узел glTF дополнительными свойствами, используя get_additional_data() и set_additional_data().

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

Свойства

int

camera

-1

PackedInt32Array

children

PackedInt32Array()

int

height

-1

int

light

-1

int

mesh

-1

String

original_name

""

int

parent

-1

Vector3

position

Vector3(0, 0, 0)

Quaternion

rotation

Quaternion(0, 0, 0, 1)

Vector3

scale

Vector3(1, 1, 1)

int

skeleton

-1

int

skin

-1

bool

visible

true

Transform3D

xform

Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)

Методы

void

append_child_index(child_index: int)

Variant

get_additional_data(extension_name: StringName)

NodePath

get_scene_node_path(gltf_state: GLTFState, handle_skeletons: bool = true)

void

set_additional_data(extension_name: StringName, additional_data: Variant)


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

int camera = -1 🔗

  • void set_camera(value: int)

  • int get_camera()

Если этот узел glTF является камерой, индекс GLTFCamera в GLTFState, который описывает свойства камеры. Если -1, этот узел не является камерой.


PackedInt32Array children = PackedInt32Array() 🔗

Индексы дочерних узлов в GLTFState. Если у этого узла glTF нет дочерних узлов, это будет пустой массив.

Note: The returned array is copied and any changes to it will not update the original property value. See PackedInt32Array for more details.


int height = -1 🔗

  • void set_height(value: int)

  • int get_height()

Насколько глубоко в иерархии узлов находится этот узел. Корневой узел будет иметь высоту 0, его потомки будут иметь высоту 1 и т. д. Если -1, высота не была рассчитана.


int light = -1 🔗

  • void set_light(value: int)

  • int get_light()

Если этот узел glTF является источником света, индекс GLTFLight в GLTFState, который описывает свойства источника света. Если -1, этот узел не является источником света.


int mesh = -1 🔗

  • void set_mesh(value: int)

  • int get_mesh()

Если этот узел glTF является сеткой, индекс GLTFMesh в GLTFState, который описывает свойства сетки. Если -1, этот узел не является сеткой.


String original_name = "" 🔗

  • void set_original_name(value: String)

  • String get_original_name()

Первоначальное имя узла.


int parent = -1 🔗

  • void set_parent(value: int)

  • int get_parent()

Индекс родительского узла в GLTFState. Если -1, этот узел является корневым узлом.


Vector3 position = Vector3(0, 0, 0) 🔗

Положение узла glTF относительно его родителя.


Quaternion rotation = Quaternion(0, 0, 0, 1) 🔗

Вращение узла glTF относительно его родителя.


Vector3 scale = Vector3(1, 1, 1) 🔗

Масштаб узла glTF относительно его родителя.


int skeleton = -1 🔗

  • void set_skeleton(value: int)

  • int get_skeleton()

Если этот узел glTF имеет скелет, индекс GLTFSkeleton в GLTFState, который описывает свойства скелета. Если -1, этот узел не имеет скелета.


int skin = -1 🔗

  • void set_skin(value: int)

  • int get_skin()

Если этот узел glTF имеет скин, индекс GLTFSkin в GLTFState, который описывает свойства скина. Если -1, этот узел не имеет скина.


bool visible = true 🔗

  • void set_visible(value: bool)

  • bool get_visible()

Если true, узел GLTF виден. Если false, узел GLTF невидим. Это преобразуется в свойство Node3D.visible в сцене Godot и экспортируется в KHR_node_visibility, когда false.


Transform3D xform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) 🔗

Преобразование узла glTF относительно его родителя. Это свойство обычно не используется, поскольку предпочтительны свойства положения, вращения и масштаба.


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

void append_child_index(child_index: int) 🔗

Добавляет заданный индекс дочернего узла к массиву children.


Variant get_additional_data(extension_name: StringName) 🔗

Получает дополнительные произвольные данные в этом экземпляре GLTFNode. Это можно использовать для хранения данных о состоянии каждого узла в классах GLTFDocumentExtension, что важно, поскольку они не имеют состояния.

Аргументом должно быть имя GLTFDocumentExtension (не обязательно совпадать с именем расширения в файле glTF), а возвращаемое значение может быть любым, которое вы задали. Если ничего не было задано, возвращаемое значение равно null.


NodePath get_scene_node_path(gltf_state: GLTFState, handle_skeletons: bool = true) 🔗

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

Если handle_skeletons равен true, пути к узлам скелетной кости glTF будут разрешены правильно. Например, путь, который будет ^"A/B/C/Bone1/Bone2/Bone3", если false станет ^"A/B/C/Skeleton3D:Bone3".


void set_additional_data(extension_name: StringName, additional_data: Variant) 🔗

Устанавливает дополнительные произвольные данные в этом экземпляре GLTFNode. Это можно использовать для хранения данных о состоянии каждого узла в классах GLTFDocumentExtension, что важно, поскольку они не имеют состояния.

Первым аргументом должно быть имя GLTFDocumentExtension (не обязательно совпадать с именем расширения в файле glTF), а вторым аргументом может быть все, что угодно.