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.

Налаштування типу вузла за допомогою суфіксів імен

Часто під час редагування сцени виникають загальні потреби, які потрібно виконати після експорту:

  • Додати виявлення зіткнень до об'єктів.

  • Встановити об'єкти як навігаційні сітки.

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

Щоб спростити цей робочий процес, Godot пропонує кілька суфіксів, які можна додати до назв об’єктів у вашому програмному забезпеченні 3D-моделювання. Під час імпортування Godot виявить суфікси в назвах об’єктів і автоматично виконає дії.

Попередження

Усі описані нижче суфікси можна використовувати з -, $ і _ і не враховують регістр.

Відмова

Якщо ви не хочете, щоб Godot виконував будь-яку з описаних нижче дій, ви можете встановити для параметра імпорту nodes/use_node_type_suffixes значення false. Це вимкне всі суфікси типів вузлів, що збереже вузли того ж типу, що й у вказаному оригінальному файлі. Однак, суфікс -noimp все одно буде враховано, як і суфікси, що не стосуються вузлів, такі як -vcol або -loop.

Або ж ви можете повністю відмовитися від усіх суфіксів імен, встановивши для параметра імпорту nodes/use_name_suffixes значення false. Це повністю зупинить перегляд суфіксів імен у загальному коді імпорту сцени. Однак, код імпорту, специфічний для формату, все ще може переглядати суфікси імен, наприклад, імпортер glTF перевіряє наявність суфікса -loop.

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

Вилучити вузли та анімації (-noimp)

Вузли та анімації з суфіксом -noimp будуть видалені під час імпорту незалежно від їхнього типу. Вони не відображатимуться в імпортованій сцені.

Це еквівалентно ввімкненню Пропустити імпорт для вузла в діалоговому вікні «Додаткові параметри імпорту».

Створення зіткнень (-col, -colonly, -convcolonly)

Параметр -col працюватиме лише для об’єктів Mesh. Якщо він виявлений, буде додано дочірній вузол статичного зіткнення, що використовує ту ж геометрію, що і меш (сітка). Буде створена побудована з трикутників форма зіткнення, яка є повільним, але точним варіантом виявлення зіткнень. Цей варіант, як правило, потрібен для геометрії рівня (але дивіться також -colonly нижче).

Параметр -convcol створить ConvexPolygonShape3D замість ConcavePolygonShape3D. На відміну від трикутних сіток, які можуть бути увігнутими, опукла форма може точно представляти лише форму, яка не має жодних увігнутих кутів (піраміда є опуклою, але порожниста коробка є увігнутою). Через це опуклі форми зіткнення зазвичай не підходять для геометрії рівня. При представленні досить простих сіток опуклі форми зіткнення можуть призвести до кращої продуктивності порівняно з трикутною формою зіткнення. Цей параметр ідеально підходить для простих або динамічних об’єктів, які вимагають переважно точного виявлення зіткнень.

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

Щоб вирішити цю проблему, існує модифікатор -colonly. Він видалить сітку під час імпортування та створить натомість колізію class_StaticBody3D. Це допомагає розділити візуальну сітку та фактичне зіткнення.

Параметр -convcolonly працює подібним чином, але створить ConvexPolygonShape3D замість цього за допомогою опуклої декомпозиції.

У файлах Collada опцію -colonly також можна використовувати з порожніми об’єктами Blender. Під час імпорту він створить class_StaticBody3D з вузлом зіткнення як дочірнього. Вузол зіткнення матиме одну з кількох попередньо визначених форм, залежно від типу порожнього малювання Blender:

Вибір типу малювання для Empty під час створення в Blender

Вибір типу малювання для Empty під час створення в Blender

  • Одна стрілка створить class_SeparationRayShape3D.

  • Cube створить BoxShape3D.

  • Зображення створить class_WorldBoundaryShape3D.

  • Sphere (та інші, яких немає в списку) створить class_SphereShape3D.

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

Примітка

Для кращої видимості в редакторі Blender ви можете встановити опцію «X-Ray» для порожніх елементів зіткнення та встановити певний колір для них, змінивши Правка > Параметри > Теми > 3D Viewport > Empty.

Якщо ви використовуєте Blender 2.79 або старішу версію, виконайте натомість такі кроки: Налаштування користувача > Теми > 3D-перегляд > Порожній.

Дивись також

Дивіться Форми зіткнення (3D) для детального огляду форм зіткнення.

Створити Occluder (-occ, -occonly)

Якщо сітку імпортовано з суфіксом -occ, вузол class_occluder3D буде створено на основі геометрії сітки, він не замінить сітку. Під час імпортування вузол сітки із суфіксом -occonly буде перетворено на class_occluder3D.

Створити навігацію (-navmesh)

Вузол сітки (меша) з суфіксом -navmesh буде перетворений у навігаційну сітку. Оригінальний об'єкт Mesh буде видалено під час імпорту.

Створити VehicleBody (-vehicle)

Вузол сітки із суфіксом -vehicle буде імпортований як дочірній у вузол class_VehicleBody3D.

Створити VehicleWheel (-wheel)

Вузол сітки із суфіксом -wheel буде імпортований як дочірній у вузол class_VehicleWheel3D.

Тверде тіло (-rigid)

Вузол сітки із суфіксом -rigid буде імпортовано як class_RigidBody3D.

Цикл анімації (-loop, -cycle)

Анімаційні кліпи у вихідному 3D-файлі, які починаються або закінчуються маркером loop або cycle, будуть імпортовані як Godot Animation зі встановленим прапором loop. На відміну від інших суфіксів, описаних вище, тут не потрібен дефіс.

Для Blender це вимагає використання редактора NLA та іменування дії (Action) з префіксом, або суфіксом, loop чи cycle.

Матеріал альфа (-альфа)

Матеріал із суфіксом -alpha буде імпортовано з режимом прозорості TRANSPARENCY_ALPHA.

Колір вершини матеріалу (-vcol)

Матеріал із суфіксом -vcol буде імпортовано з встановленими прапорцями FLAG_ALBEDO_FROM_VERTEX_COLOR та FLAG_SRGB_VERTEX_COLOR.