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.

GLTFState

Успадковує: Resource < RefCounted < Object

Успадковано від: FBXState

Представляє всі дані файлу glTF.

Опис

Містить усі вузли та ресурси файлу glTF. Це використовується GLTFDocument як сховище даних, що дозволяє GLTFDocument і всім класам GLTFDocumentExtension залишатися без стану.

GLTFState можна заповнити GLTFDocument, який читає файл, або перетворюючи сцену Godot. Потім дані можна використати для створення сцени Godot або зберегти у файл glTF. Класи GLTFDocumentExtension можуть перехоплювати код, який перетворює сцену Godot в/зі сцени Godot, у довільних точках. Це дозволяє зберігати спеціальні дані у файлі glTF або конвертувати спеціальні дані до/з вузлів Godot.

Посібники

Властивості

float

bake_fps

30.0

String

base_path

""

Array[PackedByteArray]

buffers

[]

String

copyright

""

bool

create_animations

true

String

filename

""

PackedByteArray

glb_data

PackedByteArray()

HandleBinaryImageMode

handle_binary_image_mode

1

bool

import_as_skeleton_bones

false

Dictionary

json

{}

int

major_version

0

int

minor_version

0

PackedInt32Array

root_nodes

PackedInt32Array()

String

scene_name

""

bool

use_named_skin_binds

false

Методи

void

add_used_extension(extension_name: String, required: bool)

int

append_data_to_buffers(data: PackedByteArray, deduplication: bool)

int

append_gltf_node(gltf_node: GLTFNode, godot_scene_node: Node, parent_node_index: int)

Array[GLTFAccessor]

get_accessors() const

Variant

get_additional_data(extension_name: StringName) const

AnimationPlayer

get_animation_player(anim_player_index: int) const

int

get_animation_players_count(anim_player_index: int) const

Array[GLTFAnimation]

get_animations() const

Array[GLTFBufferView]

get_buffer_views() const

Array[GLTFCamera]

get_cameras() const

int

get_handle_binary_image() const

Array[Texture2D]

get_images() const

Array[GLTFLight]

get_lights() const

Array[Material]

get_materials() const

Array[GLTFMesh]

get_meshes() const

int

get_node_index(scene_node: Node) const

Array[GLTFNode]

get_nodes() const

Node

get_scene_node(gltf_node_index: int) const

Array[GLTFSkeleton]

get_skeletons() const

Array[GLTFSkin]

get_skins() const

Array[GLTFTextureSampler]

get_texture_samplers() const

Array[GLTFTexture]

get_textures() const

Array[String]

get_unique_animation_names() const

Array[String]

get_unique_names() const

void

set_accessors(accessors: Array[GLTFAccessor])

void

set_additional_data(extension_name: StringName, additional_data: Variant)

void

set_animations(animations: Array[GLTFAnimation])

void

set_buffer_views(buffer_views: Array[GLTFBufferView])

void

set_cameras(cameras: Array[GLTFCamera])

void

set_handle_binary_image(method: int)

void

set_images(images: Array[Texture2D])

void

set_lights(lights: Array[GLTFLight])

void

set_materials(materials: Array[Material])

void

set_meshes(meshes: Array[GLTFMesh])

void

set_nodes(nodes: Array[GLTFNode])

void

set_skeletons(skeletons: Array[GLTFSkeleton])

void

set_skins(skins: Array[GLTFSkin])

void

set_texture_samplers(texture_samplers: Array[GLTFTextureSampler])

void

set_textures(textures: Array[GLTFTexture])

void

set_unique_animation_names(unique_animation_names: Array[String])

void

set_unique_names(unique_names: Array[String])


Переліки

enum HandleBinaryImageMode: 🔗

HandleBinaryImageMode HANDLE_BINARY_IMAGE_MODE_DISCARD_TEXTURES = 0

Під час імпорту файлу glTF із вбудованими бінарними зображеннями всі зображення відкидаються та замість них використовуються нетекстуровані матеріали. Зображення, що зберігаються як окремі файли в папці res://, не зазнають цього впливу; вони будуть використані так, як їх імпортував Godot.

HandleBinaryImageMode HANDLE_BINARY_IMAGE_MODE_EXTRACT_TEXTURES = 1

Під час імпорту файлу glTF із вбудованими бінарними зображеннями, вони витягуються та зберігаються в окремих файлах. Це дозволяє імпортувати зображення за допомогою засобу імпорту зображень Godot, який потім може налаштувати параметри імпорту користувачем, включаючи опціональне стиснення зображення у формати текстур VRAM.

Це збереже байти зображення точно як є, без повторного стиснення. Для форматів зображень, що надаються розширеннями glTF, файл матиме ім'я файлу, що закінчується розширенням файлу, наданим GLTFDocumentExtension._get_image_file_extension() класу розширення.

Примітка: Цей параметр доступний лише для редактора. Під час виконання він діє так само, як HANDLE_BINARY_IMAGE_MODE_EMBED_AS_UNCOMPRESSED.

HandleBinaryImageMode HANDLE_BINARY_IMAGE_MODE_EMBED_AS_BASISU = 2

Під час імпорту файлу glTF із вбудованими бінарними зображеннями, у згенеровану сцену вбудовуються текстури VRAM, стиснуті за допомогою Basis Universal. Зображення, що зберігаються як окремі файли в папці res://, не зазнають впливу; вони будуть використані так, як їх імпортував Godot.

HandleBinaryImageMode HANDLE_BINARY_IMAGE_MODE_EMBED_AS_UNCOMPRESSED = 3

Під час імпорту файлу glTF із вбудованими бінарними зображеннями, у згенеровану сцену вбудовуються текстури, стиснуті без втрат. Зображення, що зберігаються як окремі файли в папці res://, не зазнають цього впливу; вони будуть використані так, як їх імпортував Godot.


Константи

HANDLE_BINARY_DISCARD_TEXTURES = 0 🔗

Застаріло: Use HANDLE_BINARY_IMAGE_MODE_DISCARD_TEXTURES instead.

Відображає всі вбудовані текстури і використовує нетекстуровані матеріали.

HANDLE_BINARY_EXTRACT_TEXTURES = 1 🔗

Застаріло: Use HANDLE_BINARY_IMAGE_MODE_EXTRACT_TEXTURES instead.

Витягує вбудовані текстури, щоб бути переробленими і стисненими. Тільки редактора. Акти, як непривабливі в режимі runtime.

HANDLE_BINARY_EMBED_AS_BASISU = 2 🔗

Застаріло: Use HANDLE_BINARY_IMAGE_MODE_EMBED_AS_BASISU instead.

Вбудовувані текстури VRAM стиснені з Basis Universal на створену сцену.

HANDLE_BINARY_EMBED_AS_UNCOMPRESSED = 3 🔗

Застаріло: Use HANDLE_BINARY_IMAGE_MODE_EMBED_AS_UNCOMPRESSED instead.

Вбудовується текстури, що стискаються без втрат в створену сцену, що відповідає старій поведінці.


Описи властивостей

float bake_fps = 30.0 🔗

  • void set_bake_fps(value: float)

  • float get_bake_fps()

Випікання псів анімації для імпорту або експорту.


String base_path = "" 🔗

  • void set_base_path(value: String)

  • String get_base_path()

Шлях папки, пов’язаної з даними glTF. Це використовується для пошуку інших файлів, на які посилається файл glTF, наприклад зображень або двійкових буферів. Це буде встановлено під час імпорту під час додавання з файлу та буде встановлено під час експорту під час запису у файл.


Array[PackedByteArray] buffers = [] 🔗

  • void set_buffers(value: Array[PackedByteArray])

  • Array[PackedByteArray] get_buffers()

There is currently no description for this property. Please help us by contributing one!


  • void set_copyright(value: String)

  • String get_copyright()

Рядок авторського права в заголовку ресурсу файлу glTF. Цей параметр встановлюється під час імпорту, якщо він присутній, і експорту, якщо він не порожній. Для отримання додаткової інформації див. документацію заголовка ресурсу glTF.


bool create_animations = true 🔗

  • void set_create_animations(value: bool)

  • bool get_create_animations()

There is currently no description for this property. Please help us by contributing one!


String filename = "" 🔗

  • void set_filename(value: String)

  • String get_filename()

Ім’я файлу, пов’язане з даними glTF. Якщо він закінчується на .gltf, це текстовий glTF, інакше це двійковий GLB. Це буде встановлено під час імпорту під час додавання з файлу та буде встановлено під час експорту під час запису у файл. У разі запису в буфер це буде порожній рядок.


PackedByteArray glb_data = PackedByteArray() 🔗

  • void set_glb_data(value: PackedByteArray)

  • PackedByteArray get_glb_data()

Бінарний буфер, прикріплений до файлу .glb.

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


HandleBinaryImageMode handle_binary_image_mode = 1 🔗

Під час імпорту файлу glTF з неімпортованими необробленими двійковими зображеннями, вбудованими в буфери двійкових блоб-об'єктів, в URI даних або окремі файли, не імпортовані Godot, ця властивість контролює обробку зображень. Зображення можна відкидати, зберігати як окремі файли або вбудовувати в сцену з втратами або без втрат. Див. HandleBinaryImageMode для отримання інформації про параметри.

Ця властивість нічого не робить для файлів зображень у папці res://, імпортованих Godot, оскільки вони обробляються безпосередньо імпортером зображень Godot, а потім сцена Godot, згенерована з файлу glTF, використовуватиме зображення так, як їх імпортував Godot.


bool import_as_skeleton_bones = false 🔗

  • void set_import_as_skeleton_bones(value: bool)

  • bool get_import_as_skeleton_bones()

Якщо true, усі вузли GLTF у документі мають бути кістками одного вузла Godot Skeleton3D.


Dictionary json = {} 🔗

Оригінальний сирий JSON документ, що відповідає цьому GLTFState.


int major_version = 0 🔗

  • void set_major_version(value: int)

  • int get_major_version()

There is currently no description for this property. Please help us by contributing one!


int minor_version = 0 🔗

  • void set_minor_version(value: int)

  • int get_minor_version()

There is currently no description for this property. Please help us by contributing one!


PackedInt32Array root_nodes = PackedInt32Array() 🔗

  • void set_root_nodes(value: PackedInt32Array)

  • PackedInt32Array get_root_nodes()

Кореневі вузли файлу glTF. Як правило, файл glTF матиме лише одну сцену, а отже, один кореневий вузол. Однак файл glTF може мати кілька сцен і, отже, кілька кореневих вузлів, які будуть згенеровані як рідні один одному та як дочірні елементи кореневого вузла згенерованої сцени Godot.

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


String scene_name = "" 🔗

  • void set_scene_name(value: String)

  • String get_scene_name()

Назва сцени. Під час імпорту, якщо не вказано, це буде ім’я файлу. Під час експорту, якщо вказано, назву сцени буде збережено у файлі glTF.


bool use_named_skin_binds = false 🔗

  • void set_use_named_skin_binds(value: bool)

  • bool get_use_named_skin_binds()

There is currently no description for this property. Please help us by contributing one!


Описи методів

void add_used_extension(extension_name: String, required: bool) 🔗

Додає розширення до списку розширень, які використовує цей файл glTF під час серіалізації. Якщо required має значення true, розширення також буде додано до списку необхідних розширень. Не запускайте це в GLTFDocumentExtension._export_post(), оскільки цей етап надто пізній для додавання розширень. Остаточний список відсортовано за алфавітом.


int append_data_to_buffers(data: PackedByteArray, deduplication: bool) 🔗

Додає заданий масив байтів data до буферів та створює для нього GLTFBufferView. Повертається індекс цільового об'єкта GLTFBufferView. Якщо deduplication має значення true, спочатку буфери шукаються на наявність дублікатів даних, інакше завжди додаються нові байти.


int append_gltf_node(gltf_node: GLTFNode, godot_scene_node: Node, parent_node_index: int) 🔗

Додає заданий GLTFNode до стану та повертає його новий індекс. Це можна використовувати для експорту одного вузла Godot як кількох вузлів glTF або для вставки нових вузлів glTF під час імпорту. Під час імпорту це потрібно викликати до завершення GLTFDocumentExtension._generate_scene_node() для батьківського вузла. Під час експорту це потрібно викликати до виконання GLTFDocumentExtension._export_node() для батьківського вузла.

Параметр godot_scene_node – це вузол сцени Godot, який відповідає цьому вузлу glTF. Наполегливо рекомендується встановити його на дійсний вузол, але може бути null, якщо відповідного вузла сцени Godot немає. Один вузол сцени Godot може використовуватися для кількох вузлів glTF, тому, якщо експортуєте кілька вузлів glTF для одного вузла сцени Godot, використовуйте той самий вузол сцени Godot для кожного.

Параметр parent_node_index – це індекс батьківського вузла GLTFNode у стані. Якщо -1, вузол буде кореневим вузлом, інакше новий вузол буде додано до списку дочірніх вузлів батьківського вузла. Індекс також буде записаний до властивості GLTFNode.parent нового вузла.


Array[GLTFAccessor] get_accessors() const 🔗

There is currently no description for this method. Please help us by contributing one!


Variant get_additional_data(extension_name: StringName) const 🔗

Отримує додаткові довільні дані в цьому екземплярі GLTFState. Це можна використовувати для збереження даних про стан кожного файлу в класах GLTFDocumentExtension, що важливо, оскільки вони не мають стану.

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


AnimationPlayer get_animation_player(anim_player_index: int) const 🔗

Повертає вузол AnimationPlayer із заданим індексом. Ці вузли використовуються лише під час процесу експорту під час перетворення вузлів Godot AnimationPlayer на анімацію glTF.


int get_animation_players_count(anim_player_index: int) const 🔗

Повертає кількість вузлів AnimationPlayer у цьому GLTFState. Ці вузли використовуються лише під час процесу експорту під час перетворення вузлів Godot AnimationPlayer на анімацію glTF.


Array[GLTFAnimation] get_animations() const 🔗

Повертає масив усіх GLTFAnimation у файлі glTF. Під час імпортування вони будуть створені як анімації у вузлі AnimationPlayer. Під час експорту вони будуть створені з вузлів Godot AnimationPlayer.


Array[GLTFBufferView] get_buffer_views() const 🔗

There is currently no description for this method. Please help us by contributing one!


Array[GLTFCamera] get_cameras() const 🔗

Повертає масив усіх GLTFCamera у файлі glTF. Це камери, на які посилається індекс GLTFNode.camera.


int get_handle_binary_image() const 🔗

Застаріло: Use handle_binary_image_mode instead.

Застарілий нетипізований псевдонім для handle_binary_image_mode. Під час імпорту файлу glTF з неімпортованими необробленими двійковими зображеннями, вбудованими в буфери двійкових блобів, в URI даних або окремі файли, не імпортовані Godot, це визначає, як обробляються зображення.


Array[Texture2D] get_images() const 🔗

Отримує зображення файлу glTF як масив Texture2D. Це зображення, на які посилається індекс GLTFTexture.src_image.


Array[GLTFLight] get_lights() const 🔗

Повертає масив усіх GLTFLight у файлі glTF. Це джерела світла, на які посилається індекс GLTFNode.light.


Array[Material] get_materials() const 🔗

There is currently no description for this method. Please help us by contributing one!


Array[GLTFMesh] get_meshes() const 🔗

Повертає масив усіх GLTFMesh у файлі glTF. Це сітки, на які посилається індекс GLTFNode.mesh.


int get_node_index(scene_node: Node) const 🔗

Повертає індекс GLTFNode, що відповідає цій вершині сцени Godot. Це вірші get_scene_node(). Корисно в процесі експорту.

Примітка: Не кожен вузол сцени Godot буде мати відповідні GLTFNode, і не кожен GLTFNode буде мати сцену, створену. Якщо немає індексу GLTFNode для цього вузла сцени, -1 повертається.


Array[GLTFNode] get_nodes() const 🔗

Повертає масив усіх GLTFNode у файлі glTF. Це вузли, на які посилаються GLTFNode.children і root_nodes. Це включає вузли, які не можуть бути згенеровані в сцені Godot, або вузли, які можуть генерувати кілька вузлів сцени Godot.


Node get_scene_node(gltf_node_index: int) const 🔗

Повертаємо вузол сцени Godot, який відповідає одному індексу, як GLTFNode. Це вірші get_node_index(). Корисно під час процесу імпорту.

Примітка: Не кожен GLTFNode буде сформований вузол сцени, а не кожен створений вузол сцени буде мати відповідну GLTFNode. Якщо відсутня вершина сцени для цього GLTFNode індекс, null повертається.


Array[GLTFSkeleton] get_skeletons() const 🔗

Повертає масив усіх GLTFSkeleton у файлі glTF. Це скелети, на які посилається індекс GLTFNode.skeleton.


Array[GLTFSkin] get_skins() const 🔗

Повертає масив усіх GLTFSkin у файлі glTF. Це скіни, на які посилається індекс GLTFNode.skin.


Array[GLTFTextureSampler] get_texture_samplers() const 🔗

Отримує масив зразків текстур, які використовуються текстурами, що містяться в glTF.


Array[GLTFTexture] get_textures() const 🔗

There is currently no description for this method. Please help us by contributing one!


Array[String] get_unique_animation_names() const 🔗

Повертає масив унікальних імен анімації. Використовується тільки при імпорті.


Array[String] get_unique_names() const 🔗

Повертає масив унікальних назв вузлів. Використовується як в процесі імпорту, так і в процесі експорту.


void set_accessors(accessors: Array[GLTFAccessor]) 🔗

There is currently no description for this method. Please help us by contributing one!


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

Встановлює додаткові довільні дані в цьому екземплярі GLTFState. Це можна використовувати для збереження даних про стан кожного файлу в класах GLTFDocumentExtension, що важливо, оскільки вони не мають стану.

Першим аргументом має бути ім’я GLTFDocumentExtension (не має збігатися з ім’ям розширення у файлі glTF), а другий аргумент може бути будь-яким.


void set_animations(animations: Array[GLTFAnimation]) 🔗

Налаштовує GLTFAnimation в державі. При імпорті, ці будуть створюватися як анімації в вершині AnimationPlayer. При експорті ці будуть створюватися з Godot AnimationPlayer вузлів.


void set_buffer_views(buffer_views: Array[GLTFBufferView]) 🔗

There is currently no description for this method. Please help us by contributing one!


void set_cameras(cameras: Array[GLTFCamera]) 🔗

Налаштовує GLTFCamera в державі. Це камери, які індексом GLTFNode.camera.


void set_handle_binary_image(method: int) 🔗

Застаріло: Use handle_binary_image_mode instead.

Застарілий нетипізований псевдонім для handle_binary_image_mode. Під час імпорту файлу glTF з неімпортованими необробленими двійковими зображеннями, вбудованими в буфери двійкових блобів, в URI даних або окремі файли, не імпортовані Godot, це визначає, як обробляються зображення.


void set_images(images: Array[Texture2D]) 🔗

Встановлює зображення в державі, що зберігаються в масиві Texture2Ds. Це можна використовувати при експорті. Це зображення, що індекс GLTFTexture.src_image.


void set_lights(lights: Array[GLTFLight]) 🔗

Налаштовує GLTFLight в державі. Це світильники, які індекс GLTFNode.light.


void set_materials(materials: Array[Material]) 🔗

There is currently no description for this method. Please help us by contributing one!


void set_meshes(meshes: Array[GLTFMesh]) 🔗

Встановлює GLTFMesh в державі. Це сітки, які індекс GLTFNode.mesh.


void set_nodes(nodes: Array[GLTFNode]) 🔗

Встановлює GLTFNode в державі. Це вершини, які GLTFNode.children і root_nodes відносяться до. Декілька вершин, викладених тут, не може бути утворена в сцені Godot, або може генерувати декілька вузлів сцени Godot.


void set_skeletons(skeletons: Array[GLTFSkeleton]) 🔗

Встановлюємо GLTFSkeleton в державі. Це скелети, які індексом GLTFNode.skeleton.


void set_skins(skins: Array[GLTFSkin]) 🔗

Встановлюємо GLTFSkin в державі. Це шкури, які індексом GLTFNode.skin.


void set_texture_samplers(texture_samplers: Array[GLTFTextureSampler]) 🔗

Встановлює масив зразків текстур, які використовуються текстурами, що містяться в glTF.


void set_textures(textures: Array[GLTFTexture]) 🔗

There is currently no description for this method. Please help us by contributing one!


void set_unique_animation_names(unique_animation_names: Array[String]) 🔗

Встановлює унікальні імена анімації в державі. Використовується тільки при імпорті.


void set_unique_names(unique_names: Array[String]) 🔗

Встановлює унікальні імена вузлів в державі. Використовується як в процесі імпорту, так і в процесі експорту.