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...
EditorSceneFormatImporter
Успадковує: RefCounted < Object
Успадковано від: EditorSceneFormatImporterBlend, EditorSceneFormatImporterFBX2GLTF, EditorSceneFormatImporterGLTF, EditorSceneFormatImporterUFBX
Імпортні сцени з 3D файлів.
Опис
EditorSceneFormatImporter дозволяє визначити скрипт імпортера для третього формату 3D.
Для використання EditorSceneFormatImporter, зареєструйте його за допомогою EditorPlugin.add_scene_format_importer_plugin().
Методи
_get_extensions() virtual required const |
|
void |
_get_import_options(path: String) virtual |
_get_option_visibility(path: String, for_animation: bool, option: String) virtual const |
|
_import_scene(path: String, flags: int, options: Dictionary) virtual required |
|
void |
add_import_option(name: String, value: Variant) |
void |
add_import_option_advanced(type: Variant.Type, name: String, default_value: Variant, hint: PropertyHint = 0, hint_string: String = "", usage_flags: int = 6) |
Переліки
flags ImportFlags: 🔗
ImportFlags IMPORT_SCENE = 1
Невикористаний прапорець (при увімкненні не має ніякого ефекту).
ImportFlags IMPORT_ANIMATION = 2
Імпортувати анімації з 3D-сцени. При імпорті сцени як AnimationLibrary цей прапорець завжди ввімкнено.
ImportFlags IMPORT_FAIL_ON_MISSING_DEPENDENCIES = 4
Невикористаний прапорець (при увімкненні не має ніякого ефекту).
ImportFlags IMPORT_GENERATE_TANGENT_ARRAYS = 8
Якщо true, генерувати тангенси вершин за допомогою Mikktspace, якщо вхідні сітки не містять даних про тангенси. Якщо це можливо, рекомендується дозволити програмі 3D-моделювання генерувати тангенси під час експорту, замість того щоб покладатися на цю опцію. Тангенти необхідні для коректного відображення карт нормалей та висот, а також будь-яких функцій матеріалів/шейдерів, що вимагають тангентів.
Якщо вам не потрібні функції матеріалів, що вимагають тангентів, вимкнення цієї опції може зменшити розмір вихідного файлу та пришвидшити імпорт, якщо вихідний 3D-файл не містить тангентів.
ImportFlags IMPORT_USE_NAMED_SKIN_BINDS = 16
Якщо встановлено прапорець, для анімації використовуються іменовані Skin. Вузол MeshInstance3D містить 3 властивості, що мають тут значення: скелет NodePath, який вказує на вузол Skeleton3D (зазвичай ..), сітку та скін:
Вузол Skeleton3D містить список кісток з іменами, їх позою та положенням спокою, ім'ям та батьківською кісткою.
Сітка — це всі необроблені дані про вершини, необхідні для відображення сітки. Щодо сітки, вона знає, як вершини розфарбовуються за вагою, та використовує внутрішню нумерацію, часто імпортовану з програмного забезпечення для 3D-моделювання.
Скін містить інформацію, необхідну для прив'язки цієї сітки до цього Skeleton3D. Для кожного з внутрішніх ідентифікаторів кісток, обраних програмним забезпеченням для 3D-моделювання, він містить дві речі. По-перше, матрицю, відому як матриця позиції прив'язки (Bind Pose Matrix), обернена матриця прив'язки (Inverse Bind Matrix) або, скорочено, IBM. По-друге, Skin містить назву кожної кістки (якщо цей прапорець увімкнено) або індекс кістки у списку Skeleton3D (якщо цей прапорець вимкнено).
Разом ця інформація достатня, щоб повідомити Godot, як використовувати пози кісток у вузлі Skeleton3D для рендерингу сітки з кожного MeshInstance3D. Зверніть увагу, що кожен MeshInstance3D може використовувати спільні прив'язки, як це зазвичай буває у моделях, експортованих з Blender, або кожен MeshInstance3D може використовувати окремий об'єкт Skin, як це зазвичай буває у моделях, експортованих з інших інструментів, таких як Maya.
ImportFlags IMPORT_DISCARD_MESHES_AND_MATERIALS = 32
Ігнорувати сітки та матеріали під час імпорту. Під час імпорту сцени як AnimationLibrary цей прапорець завжди увімкнено.
ImportFlags IMPORT_FORCE_DISABLE_MESH_COMPRESSION = 64
Якщо true, стиснення сітки не буде використовуватися. З огляду на те, що ви помітили блоковані артефакти у ваших сітчастих нормах або УФ, або якщо у вас є сітки, які більше, ніж кілька тисяч метрів в кожному напрямку.
Описи методів
PackedStringArray _get_extensions() virtual required const 🔗
Повернути підтримувані розширення файлів для цього імпортера сцен.
void _get_import_options(path: String) virtual 🔗
Перевизначте, щоб додати загальні параметри імпорту. Вони з’являться в головній панелі імпорту в редакторі. Додайте параметри за допомогою add_import_option() і add_import_option_advanced().
Примітка. Усі екземпляри EditorSceneFormatImporter і EditorScenePostImportPlugin додадуть параметри для всіх файлів. Рекомендується перевіряти розширення файлу, якщо path не порожній.
Коли користувач редагує параметри проекту, path буде порожнім. Рекомендується додавати всі параметри, коли path порожній, щоб дозволити користувачеві налаштувати імпорт за замовчуванням.
Variant _get_option_visibility(path: String, for_animation: bool, option: String) virtual const 🔗
Має повернути true, щоб показати заданий параметр, false, щоб приховати вказаний параметр, або null, щоб проігнорувати.
Object _import_scene(path: String, flags: int, options: Dictionary) virtual required 🔗
Виконайте основну частину логіки імпорту сцени тут, наприклад, використовуючи GLTFDocument або FBXDocument.
void add_import_option(name: String, value: Variant) 🔗
Додайте певний параметр імпорту (лише ім’я та значення за замовчуванням). Цю функцію можна викликати лише з _get_import_options().
void add_import_option_advanced(type: Variant.Type, name: String, default_value: Variant, hint: PropertyHint = 0, hint_string: String = "", usage_flags: int = 6) 🔗
Додайте окремий параметр імпорту. Цю функцію можна викликати лише з _get_import_options().