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...
Імпорт конфігурації
Godot пропонує кілька способів налаштування імпортованих даних, наприклад док-станцію імпорту, діалогове вікно розширеного налаштування імпорту та успадковані сцени. Це можна використовувати для внесення подальших змін до імпортованої сцени, наприклад для коригування сіток, додавання фізичної інформації та додавання нових вузлів. Ви також можете написати скрипт, який запускає код наприкінці процесу імпорту для виконання довільних налаштувань.
Зауважте, що, коли це можливо, слід віддавати перевагу зміні вихідних даних, ніж налаштуванню сцени після імпорту. Це допомагає мінімізувати відмінності між програмою 3D-моделювання та імпортованою сценою. Для отримання додаткової інформації перегляньте статті Експорт моделі і Налаштування типу вузла за допомогою суфіксів імен.
Імпорт робочих процесів
Оскільки Godot може зберігати лише власний формат сцени (.tscn/.scn), Godot не може зберігати поверх оригінального файлу 3D-сцени (який використовує інший формат). Це також безпечніший підхід, оскільки він дозволяє уникнути випадкових змін у вихідному файлі.
Щоб дозволити налаштувати сцену та її матеріали, імпортер сцени Godot дозволяє використовувати різні робочі процеси щодо того, як імпортуються дані.
Імпорт дока після вибору 3D-сцени в доку FileSystem
Цей процес імпорту можна налаштувати за допомогою 3 окремих інтерфейсів залежно від ваших потреб:
Док Імпортувати після вибору 3D-сцени, клацнувши її один раз у доку FileSystem.
Діалогове вікно Додаткові налаштування імпорту, до якого можна отримати доступ, двічі клацнувши 3D-сцену на панелі файлової системи або натиснувши кнопку Додатково… на панелі імпорту. Це дозволяє налаштувати параметри для кожного об’єкта в Godot, а також переглядати моделі та анімацію. Для отримання додаткової інформації див. сторінку Розширені налаштування імпорту.
Import hints, які є спеціальними суфіксами, доданими до назв об’єктів у програмному забезпеченні 3D-моделювання. Це дозволяє налаштовувати параметри для кожного об’єкта в програмному забезпеченні 3D-моделювання.
Для базового налаштування достатньо використання док-станції «Імпорт». Однак для більш складних операцій, таких як визначення заміни матеріалу на основі кожного матеріалу, вам потрібно буде використовувати діалогове вікно «Розширені параметри імпорту», підказки щодо імпорту або, можливо, обидва.
Використання док-станції «Імпорт»
У док-станції «Імпорт» можна налаштувати такі параметри після вибору 3D-сцени в док-станції FileSystem:
Тип кореня: Тип вузла для використання як кореневого вузла. Рекомендується використовувати типи вузлів, успадковані від Node3D. Інакше ви втратите можливість позиціонувати вузол безпосередньо в 3D-редакторі.
Ім’я кореня: Ім’я кореневого вузла в імпортованій сцені. Зазвичай це не помітно під час створення екземпляра сцени в редакторі (або перетягування з док-станції FileSystem), оскільки в цьому випадку кореневий вузол перейменовується відповідно до імені файлу.
Застосувати кореневий масштаб: якщо ввімкнути, Кореневий масштаб буде застосовано безпосередньо до сіток і анімації, зберігаючи масштаб кореневого вузла за замовчуванням «(1, 1, 1)». Це означає, що якщо ви додасте дочірній вузол пізніше в імпортовану сцену, він не буде масштабований. Якщо вимкнено, Масштаб кореня натомість помножить масштаб кореневого вузла.
Сітки
Забезпечити дотичні: якщо позначено, генерувати дотичні до вершин за допомогою Mikktspace, якщо вхідні сітки не мають дотичних даних. Якщо це можливо, рекомендується дозволити програмному забезпеченню 3D-моделювання генерувати дотичні під час експорту, а не покладатися на цей параметр. Дотичні потрібні для правильного відображення карт нормалей і висот разом із будь-якими функціями матеріалу/шейдерів, які потребують дотичних. Якщо вам не потрібні матеріальні об’єкти, для яких потрібні дотичні, вимкнення цього параметра може зменшити розмір вихідного файлу та прискорити імпорт, якщо вихідний 3D-файл не містить дотичних.
Generate LODs: Якщо позначено, генеруються варіанти сітки з меншою деталізацією, які відображатимуться на відстані для покращення продуктивності візуалізації. Не всі сітки виграють від LOD, особливо якщо вони ніколи не візуалізуються здалеку. Вимкнення цього параметра може зменшити розмір вихідного файлу та прискорити імпорт. Перегляньте Рівень деталізації сітки (LOD) для отримання додаткової інформації.
Створити тіньові сітки: якщо позначено, увімкнути створення тіньових сіток під час імпорту. Це оптимізує відтворення тіней без зниження якості шляхом зварювання вершин разом, коли це можливо. Це, у свою чергу, зменшує пропускну здатність пам’яті, необхідну для відтворення тіней. Генерація тіньової сітки наразі не підтримує використання нижчого рівня деталізації, ніж вихідна сітка (але візуалізація тіні використовуватиме LOD, коли це необхідно).
Light Baking: Конфігурує global illumination mode у 3D-сцені. Якщо встановлено значення Static Lightmaps, режим GI сіток встановлюється на Static і створює UV2 під час імпорту для lightmap baking.
Розмір карти освітлення в текселях: відображається, лише якщо для параметра Light Baking встановлено значення Static Lightmaps. Контролює розмір кожного текселя на запеченій карті освітлення. Менше значення призводить до більш точних карт освітлення за рахунок більших розмірів карт освітлення та довшого часу запікання.
Скіни
Використовувати іменовані скіни: якщо позначено, використовувати іменовані скіни для анімації. Вузол MeshInstance3D містить 3 релевантні властивості: skeleton NodePath, що вказує на вузол Skeleton3D (зазвичай
..), сітку та оболонку:Вузол class_Skeleton3D містить список кісток із назвами, їхньою позицією та місцем відпочинку, назвою та батьківською кісткою.
Сітка — це всі необроблені дані вершин, необхідні для відображення сітки. З точки зору сітки, він знає, як вершини зафарбовуються за вагою, і використовує деяку внутрішню нумерацію, яку часто імпортують із програмного забезпечення для 3D-моделювання.
Скін містить інформацію, необхідну для прив’язки цієї сітки до цього Skeleton3D. Для кожного внутрішнього ідентифікатора кістки, вибраного програмою 3D-моделювання, він містить дві речі. По-перше, матриця, відома як матриця пози зв’язування, інверсна матриця зв’язування або скорочено IBM. По-друге, оболонка містить назву кожної кістки (якщо Використовувати іменовані скіни увімкнено) або індекс кістки в списку Skeleton3D (якщо Використовувати іменовані скіни вимкнено).
Разом цієї інформації достатньо, щоб сказати Godot, як використовувати пози кісток у вузлі Skeleton3D для візуалізації сітки з кожного MeshInstance3D. Зауважте, що кожен MeshInstance3D може спільно використовувати зв’язки, як це зазвичай буває в моделях, експортованих із Blender, або кожен MeshInstance3D може використовувати окремий об’єкт Skin, як це зазвичай буває в моделях, експортованих з інших інструментів, таких як Maya.
Анімація
Імпортувати: якщо позначено, імпортувати анімацію з 3D-сцени.
FPS: кількість кадрів за секунду, яка використовується для запікання кривих анімації до серії точок із лінійною інтерполяцією. Рекомендується налаштувати це значення так, щоб воно відповідало значенню, яке ви використовуєте як базове у програмі для 3D-моделювання. Вищі значення призводять до точнішої анімації зі швидкими змінами руху, ціною більшого розміру файлу та використання пам’яті. Завдяки інтерполяції зазвичай немає великої користі від перевищення 30 FPS (оскільки анімація все одно буде виглядати плавною при вищій частоті кадрів візуалізації).
Обрізання: Обрізайте початок і кінець анімації, якщо немає змін ключових кадрів. Це може зменшити розмір вихідного файлу та використання пам’яті певними 3D-сценами, залежно від вмісту їхніх доріжок анімації.
Видалити незмінні треки: Видалити анімаційні треки, які містять лише значення за замовчуванням. Це може зменшити розмір вихідного файлу та використання пам’яті певними 3D-сценами, залежно від вмісту їхніх доріжок анімації.
Скрипт імпорту
Шлях: Шлях до сценарію імпорту, який може запускати код після завершення процесу імпорту для спеціальної обробки. Перегляньте Використання сценаріїв імпорту для автоматизації для отримання додаткової інформації.
glTF
Обробка вбудованої текстури: контролює, як слід обробляти текстури, вбудовані в сцени glTF. Відкинути всі текстури не імпортуватиме жодних текстур, що корисно, якщо замість цього ви хочете вручну налаштувати матеріали в Godot. Вилучення текстур витягує текстури на зовнішні зображення, що призводить до менших розмірів файлів і більшого контролю над параметрами імпорту. Вставити як базовий універсальний і Вставити як нестиснений зберігає текстури, вбудовані в імпортовану сцену, зі стисненням VRAM і без нього відповідно.
FBX
Імпортер Який метод імпорту використовується. ubfx обробляє файли fbx як файли fbx. FBX2glTF конвертує файли FBX у glTF під час імпорту та вимагає додаткового налаштування. FBX2glTF не рекомендується використовувати, якщо у вас немає конкретних причин використовувати його замість ufbx або працювати з іншим форматом файлу.
Дозволити допоміжні вузли геометрії вмикає або вимикає допоміжні вузли геометрії
Обробка вбудованої текстури: контролює, як слід обробляти текстури, вбудовані в сцени fbx. Відкинути всі текстури не імпортуватиме жодних текстур, що корисно, якщо замість цього ви хочете вручну налаштувати матеріали в Godot. Вилучення текстур витягує текстури на зовнішні зображення, що призводить до менших розмірів файлів і більшого контролю над параметрами імпорту. Вставити як базовий універсальний і Вставити як нестиснений зберігає текстури, вбудовані в імпортовану сцену, зі стисненням VRAM і без нього відповідно.
Специфічні для Blender опції
Видно лише для файлів .blend.
Вузли
Видиме: Все імпортує все, навіть невидимі об'єкти. Тільки видиме імпортує тільки видимі об'єкти. Рендеримо імпортує тільки об'єкти, які позначені як рендеримі в Blender, незалежно від того, чи вони насправді видимі. У Blender рендеримість вмикається натисканням на іконку камери поруч з кожним об'єктом в Outliner, а видимість вмикається натисканням на іконку ока.
Тільки активна колекція: Якщо позначено, імпортуються лише вузли, що знаходяться в активній колекції в Blender.
Точне освітлення: Якщо позначено, імпортуються джерела освітлення (спрямоване, всесвітнє та точкове) з Blender. «Точне» не слід плутати з «позиційним», тому спрямоване освітлення також включено.
Камери: Якщо позначено, імпортує камери з Blender.
Налаштовані властивості: Якщо встановлено прапорець, імпортує налаштовані властивості з Blender як додаткові дані glTF. Ці дані можна потім використовувати з плагіном редактора, який використовує GLTFDocument.register_gltf_document_extension(), який може встановлювати метадані вузла під час імпорту (серед інших випадків використання).
Модифікатори: Якщо встановлено значення Без модифікаторів, модифікатори об’єктів ігноруються під час імпорту. Якщо встановлено значення Усі модифікатори, модифікатори застосовуються до об’єктів під час імпорту.
Сітки
Кольори: Якщо позначено, імпортує кольори вершин з Blender.
UVs: Якщо позначено, імпортує вершинні UV1 та UV2 з Blender.
Нормалі: Якщо позначено, імпортує нормалі вершин з Blender.
Експортувати екземпляри вузлів геометрії: Якщо позначено, імпортуються екземпляри вузла геометрії з Blender.
Екземпляри GPU Якщо позначено, екземпляри та системи частинок імпортуються як дані буфера/аксесора GLTF, а не як численні окремі об'єкти Mesh3D. Це не включає створення екземплярів вузлів геометрії.
Дотичні: Якщо позначено, імпортує дотичні вершин з Blender.
Шкіри: None пропускає імпорт даних про шкіру скелета з Blender. 4 Influences (Compatible) імпортує дані про шкіру, щоб вони були сумісні з усіма рендерерами, за рахунок нижчої точності для певних ригів. All Influences імпортує дані про шкіру з усіма впливами (до 8 в Godot), що є більш точним, але може бути несумісним з усіма рендерерами.
Експортувати лише кістки, що деформують сітку: Якщо позначено, імпортуються лише кістки, що деформують сітку з Blender.
Матеріали
Розпакувати увімкнено: Якщо встановлено прапорець, розпаковує оригінальні зображення у файлову систему Godot і використовує їх. Це дозволяє змінювати налаштування імпорту зображень, такі як стиснення VRAM. Якщо опція не відмічена, Blender може конвертувати оригінальні зображення, наприклад, перепакувати шорсткість і металічність в одну текстуру шорсткості + металічності. У більшості випадків цю опцію слід залишити відміченою, але якщо зображення у файлі
.blendне мають правильного формату, її необхідно вимкнути для коректної роботи.Експорт матеріалів: Якщо встановлено Заповнювач, матеріали не імпортуються, але зберігаються слоти поверхні, щоб можна було призначити окремі матеріали різним поверхням. Якщо встановлено Експорт, матеріали імпортуються без змін (зверніть увагу, що процедурні матеріали Blender можуть працювати некоректно). Якщо встановлено Іменований місцезаповнювач, імпортуються матеріали, але не імпортуються зображення, упаковані у файл
.blend. Текстури доведеться перепризначити вручну в імпортованих матеріалах.
Анімація
Обмежити відтворення: Якщо встановлено, обмежує імпорт анімації до діапазону відтворення, визначеного в Blender (параметри Початок і Кінець праворуч від часової шкали анімації в Blender). Це дозволяє уникнути включення невикористаних даних анімації, що робить імпортовану сцену меншою і швидшою для завантаження. Однак це також може призвести до втрати даних анімації, якщо діапазон відтворення не встановлено правильно в Blender.
Завжди зразкувати: Якщо встановлено, примусово зразковує анімацію під час імпорту, щоб забезпечити узгодженість між тим, як Blender і glTF виконують інтерполяцію анімації, за рахунок більшого розміру файлів. Якщо не встановлено, можуть бути відмінності в інтерполяції анімацій між тим, що ви бачите в Blender, і імпортованою сценою в Godot, через різну семантику інтерполяції між ними.
Групувати доріжки: Якщо позначено, анімації (активні та на доріжках NLA) імпортуються як окремі доріжки. Якщо знято, усі призначені дії стають однією анімацією glTF.
Використання сценаріїв імпорту для автоматизації
Можна надати спеціальний скрипт для обробки всієї сцени після імпорту. Це чудово підходить для постобробки, зміни матеріалів, створення кумедних речей із геометрією тощо.
Створіть скрипт, який не приєднано до жодного вузла, клацнувши правою кнопкою миші в док-станції FileSystem і вибравши Новий > Скрипт…. У редакторі скрипта напишіть наступне:
@tool # Needed so it runs in editor.
extends EditorScenePostImport
# This sample changes all node names.
# Called right after the scene is imported and gets the root node.
func _post_import(scene):
# Change all node names to "modified_[oldnodename]"
iterate(scene)
return scene # Remember to return the imported scene
# Recursive function that is called on every node
# (for demonstration purposes; EditorScenePostImport only requires a `_post_import(scene)` function).
func iterate(node):
if node != null:
print_rich("Post-import: [b]%s[/b] -> [b]%s[/b]" % [node.name, "modified_" + node.name])
node.name = "modified_" + node.name
for child in node.get_children():
iterate(child)
Функція _post_import(scene: Node) приймає імпортовану сцену як аргумент (параметр насправді є кореневим вузлом сцени). Сцена, яка буде остаточно використана, має бути повернута (навіть якщо сцена може бути зовсім іншою).
Щоб використати свій скрипт, знайдіть його в опції «Шлях» вкладки імпорту в категорії «Скрипт імпорту».
Використання бібліотек анімації
Ви також можете імпортувати лише анімації з файлу glTF і нічого більше. Це використовується в деяких конвеєрах ресурсів для розподілу анімації окремо від моделей. Наприклад, це дозволяє використовувати один набір анімацій для кількох персонажів, без необхідності дублювати дані анімації для кожного персонажа.
Для цього виберіть файл glTF у док-станції FileSystem, а потім змініть режим імпорту на «Бібліотека анімації» в док-станції «Імпорт»:
Зміна типу імпорту на «Бібліотека анімації» в док-станції «Імпорт»
Натисніть Повторний імпорт і перезапустіть редактор, коли буде запропоновано. Після перезапуску файл glTF буде імпортовано як AnimationLibrary замість class_PackedScene. Потім на цю бібліотеку анімації можна посилатися у вузлі AnimationPlayer.
Параметри імпорту, які відображаються після зміни режиму імпорту на бібліотеку анімації, діють так само, як і під час використання режиму імпорту сцени. Перегляньте Використання док-станції «Імпорт» для отримання додаткової інформації.
Скрипт фільтра
Можна вказати фільтрувальний скрипт в спеціальному синтаксисі, щоб вирішити, які треки, з яких анімацій слід зберігати.
Скрипт фільтра виконується для кожної імпортованої анімації. Синтаксис складається з двох типів операторів, перший для вибору анімацій для фільтрування, а другий для фільтрації окремих доріжок у відповідній анімації. Усі шаблони імен виконуються з використанням регістронезалежного збігу виразів із підтримкою символів узагальнення ? і * (за допомогою String.matchn() під капотом).
Скрипт має починатися з оператора фільтра анімації (що позначається рядком, що починається з @). Наприклад, якщо ми хочемо застосувати фільтри до всіх імпортованих анімацій, назва яких закінчується на "_Loop":
@+*_Loop
Аналогічно, додаткові шаблони можна додавати до того ж рядка, розділяючи їх комами. Ось модифікований приклад, який додатково включає всі анімації з іменами, що починаються з "Arm_Left", але також виключає всі анімації, імена яких закінчуються на "Attack":
@+*_Loop, +Arm_Left*, -*Attack
Після виразу фільтра вибору анімації ми додаємо шаблони фільтрації треків, щоб вказати, які треки анімації слід зберігати, чи відкидати. Якщо шаблони фільтрів треків не вказані, всі треки в межах відповідної анімації будуть відкинуті!
Важливо зауважити, що для кожного треку в анімації застосовуються вирази фільтра треків, це означає, що один рядок може включити трек, а пізніший фільтр все одно може відкинути його. Аналогічно, трек, виключений раніше, потім може бути знову включений фільтром нижче у фільтрувальному скрипті.
Наприклад: включіть усі доріжки в анімації з назвами, що закінчуються на "_Loop", але відкиньте будь-які доріжки, що впливають на "Skeleton", які закінчуються на "Control", якщо тільки в їхній назві немає "Arm":
@+*_Loop
+*
-Skeleton:*Control
+*Arm*
У наведеному вище прикладі такі треки, як "Skeleton:Leg_Control" будуть відкинуті, тоді як треки "Skeleton:Head", або "Skeleton:Arm_Left_Control", будуть збережені.
Будь-які рядки фільтрів треків, які не починаються з +, або -, ігноруються.
Успадкування сцен
У багатьох випадках може знадобитися вручну змінити імпортовану сцену. За замовчуванням це неможливо, оскільки якщо вихідний 3D-ресурс зміниться, Godot повторно імпортує всю сцену.
Однак можна вносити локальні зміни за допомогою успадкування сцени. Якщо ви спробуєте відкрити імпортовану сцену за допомогою Сцена > Відкрити сцену… або Сцена > Швидке відкриття сцени…, з’явиться таке діалогове вікно:
Діалогове вікно під час відкриття імпортованої 3D-сцени в редакторі
У успадкованих сценах єдиними обмеженнями для модифікації є:
Вузли з базової сцени не можна видалити, але додаткові вузли можна додати будь-де.
Субресурси не можна редагувати. Замість цього, вам потрібно зберегти їх ззовні, як описано вище.
Крім цього, все дозволено.