This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Defold підтримує моделі, скелети й анімації у форматі glTF 2.0 (GL Transmission Format). Для 3D-моделей використовуйте файли .gltf або .glb. glTF — це сучасний формат, призначений для передавання й завантаження 3D-даних в ігрових рушіях і застосунках реального часу.
Для створення 3D-моделей або їх перетворення у формат glTF можна використовувати такі інструменти, як Maya, 3ds Max, SketchUp і Blender.
Blender — це потужна й популярна програма для 3D-моделювання, анімації та рендерингу. Вона працює у Windows, macOS і Linux та доступна безкоштовно на https://www.blender.org.

Щоб імпортувати модель, перетягніть файл .gltf або .glb на панель Assets редактора Defold.
Є два поширені способи зберігання glTF:
Вбудовані зображення можна використовувати безпосередньо з файлу glTF або GLB без видобування в окремі ресурси. Зовнішні файли зображень і буферів усе одно потрібно імпортувати разом із моделлю зі збереженням їхніх відносних шляхів.
Defold зберігає позиції та трансформації з імпортованого файлу glTF й не центрує модель автоматично під час імпорту. Попередній перегляд у редакторі та середовище виконання узгоджено використовують імпортовані трансформації: сітки зі скінінгом (skinning) або сітки, для яких кістки є батьківськими об’єктами, зберігають свої локальні трансформації відносно скелета, а жорсткі сітки зберігають своє розташування у світовому просторі після сплощення ієрархії.
Компонент Model може вибрати одну іменовану сітку з імпортованої сцени. Якщо залишити його поле Mesh порожнім, використовуватиметься вся сцена зі збереженням описаних вище трансформацій. Якщо вибрати сітку, використовуватиметься її локальна геометрія без трансформацій вузлів glTF, тому розміщуйте її за допомогою трансформації компонента моделі або ігрового об’єкта.
Якщо модель, створена в старішій версії Defold, після повторного імпорту змінює позицію або орієнтацію, виправте трансформацію в Blender чи іншому інструменті створення моделей і знову експортуйте файл .gltf або .glb.
Джерела .gltf і .glb можуть містити геометрію, стиснену Draco або Meshopt. Підтримуються такі розширення стиснення glTF:
| Стиснення | Розширення glTF |
|---|---|
| Draco | KHR_draco_mesh_compression |
| Meshopt | EXT_meshopt_compression і KHR_meshopt_compression |
Експортуйте або оптимізуйте ресурс glTF 2.0 за допомогою одного з цих розширень, а потім імпортуйте так само, як нестиснену модель. Додайте всі зовнішні буфери й текстури та збережіть їхні відносні шляхи. Як зазвичай, призначте імпортований файл властивості Scene компонента Model.
Defold декодує стиснену геометрію під час імпорту й збирання. Отримана модель використовує звичайне подання геометрії Defold у середовищі виконання. Ця підтримка не вмикає стиснення Draco або Meshopt у запущеному рушії, а менший вихідний файл не гарантує меншого пакета гри.
Розгорніть файл .gltf або .glb на панелі Assets, щоб переглянути його сітки, згенеровані матеріали й вбудовані зображення. Відкриття сцени показує її попередній перегляд із визначеними матеріалами й текстурами. Також можна відкрити окрему сітку для попереднього перегляду.
Ресурси всередині файлу доступні лише для читання. Щоб створити редагований ресурс Model для сітки, скопіюйте її та вставте в папку проєкту. Отриманий файл .model і далі посилатиметься на імпортований glTF або GLB. Щоб змінити вихідну геометрію чи вбудовані зображення, відредагуйте ресурс у програмі, де його створено, і експортуйте знову.
Скрипти редактора можуть перелічувати ці ресурси через editor.resource_children(path). Приклад рекурсивного обходу ресурсів у папках і файлах glTF/GLB див. у розділі Обхід ресурсів проєкту.
Текстури моделей можуть використовувати джерела .ktx2 — зовнішні файли або зображення, вбудовані у файл .gltf чи .glb. Імпортуйте зовнішні файли разом із моделлю. Вбудовані зображення KTX2 відображаються під сценою на панелі Assets, і їх можна призначати полям текстур матеріалу безпосередньо або через Auto Fill.
Профілі текстур визначають, чи зберігати вихідний формат KTX2, чи перетворювати його на налаштовані вихідні формати. Keep KTX2 Format зберігає формат кодування джерела, коли стиснення текстур увімкнено, але обробка зображень усе одно може потребувати повторного кодування. Перевірте підтримку формату на цільових пристроях і врахуйте можливу додаткову втрату якості під час повторного стиснення вже стисненої текстури. Див. Вхідні формати KTX2 та попередній перегляд.
Після імпорту моделі використовуйте її в компоненті Model:
Редактор пропонує заповнити прив’язки, коли вибране джерело glTF або GLB надає матеріали. Він розв’язує як вбудовані зображення, так і посилання на зовнішні зображення. Згенеровані матеріали використовують вбудовані шейдери glTF; про освітлення й підтримувані ефекти матеріалів див. посібник із PBR.
Якщо вибрано Keep Current або потрібен власний шейдинг, задайте кожну властивість Material відповідним матеріалом. Вбудовані матеріали gltf надають шейдинг PBR; також доступні вбудовані матеріали model і власні матеріали. Про статичні, скінінгові й інстансингові варіанти та їхні вимоги див. посібник із моделей.
Призначте кожну текстуру відповідному полю текстури матеріалу. Можна використовувати вбудоване зображення під файлом glTF або GLB на панелі Assets або окремий ресурс зображення в проєкті. Для матеріалів із кількома семплерами зіставте кожну текстуру з потрібним семплером; посібник із PBR містить назви вбудованих семплерів glTF.
Експортований файл .gltf або .glb містить усі вершини, ребра й грані, з яких складається модель, а також UV-координати (яка частина зображення текстури відповідає певній частині сітки), якщо ви їх визначили, кістки скелета й дані анімації.
Докладний опис полігональних сіток можна знайти на http://en.wikipedia.org/wiki/Polygon_mesh.
UV-координати й UV-відображення описано на http://en.wikipedia.org/wiki/UV_mapping.
Defold накладає деякі обмеження на експортовані дані анімації:
Наразі Defold підтримує лише запечені (baked) анімації. Анімації мають містити матриці для кожної анімованої кістки в кожному ключовому кадрі, а не позицію, поворот і масштаб як окремі ключі.
Анімації також інтерполюються лінійно. Якщо ви використовуєте складнішу інтерполяцію за кривими, анімації потрібно попередньо запекти за допомогою засобу експорту.
Під час експорту моделі враховуйте, що підтримка glTF може відрізнятися в різних інструментах і рушіях. Використовуйте glTF 2.0 й переконайтеся, що модель має правильні UV-координати, якщо вона використовує текстури. Зображення можуть бути вбудовані у файл glTF або GLB або зберігатися в окремих файлах, на які посилається сцена. Під час імпорту моделі в Defold додайте всі зовнішні файли зображень і буферів.
Ми прагнемо повністю підтримувати формат glTF, але поки що не досягли цього. Якщо якоїсь можливості бракує, створіть запит на її додавання в нашому репозиторії
Якщо хочете створити зображення текстури вручну, можна експортувати UV-розгортку з Blender як шаблон. Почніть із вибору сітки та всіх її вершин:

Коли всі вершини вибрано, розгорніть сітку, щоб отримати UV-розгортку:

Потім експортуйте UV-розгортку в зображення, яке можна використовувати як текстуру:


Експортуйте модель із Blender за допомогою File ▸ Export ▸ glTF 2.0 (.glb/.gltf).

Перед експортом виберіть об’єкт або об’єкти й увімкніть Selected Objects, якщо потрібно експортувати лише вибране.
Виберіть один із варіантів Format:
Якщо модель містить анімації, увімкніть експорт анімацій і переконайтеся, що їх запечено. Якщо модель використовує текстури, переконайтеся, що сітка має UV-розгортку, а зображення текстур експортовано у форматі, який Defold може імпортувати, наприклад PNG або JPEG.
