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...
Перенацілення 3D-скелетів
Варіанти ретаргетингу
Карта кісток
Коли ви виберете вузол Skeleton3D у розширеному меню імпорту сцени, праворуч з’явиться меню з розділом «Перенацілення». Розділ Retarget має єдину властивість bone_map.
Вибравши вузол Skeleton, спочатку налаштуйте новий BoneMap і class_skeletonprofile. У Godot є стиль під назвою class_skeletonprofilehumanoid для гуманоїдних моделей. У цьому посібнику припущено, що ви використовуєте class_skeletonprofilehumanoid.
Примітка
Якщо вам потрібен профіль, який відрізняється від class_skeletonprofilehumanoid, ви можете експортувати class_skeletonprofile із редактора, вибравши Skeleton3D і скориставшись меню Skeleton3D на панелі інструментів вікна 3D.
Коли ви використовуєте class_skeletonprofilehumanoid, автоматичне відображення буде виконано, коли встановлено class_skeletonprofile. Якщо автоматичне відображення не працює добре, ви можете відобразити кістки вручну.
Будь-які відсутні, повторювані або неправильні зіставлення стосунків «батько-дочірній» буде позначено пурпуровою/червоною кнопкою (залежно від налаштувань редактора). Він не блокує процес імпорту, але попереджає про те, що анімації можуть не надаватися належним чином.
Примітка
Автоматичне відображення використовує зіставлення шаблонів для назв кісток. Тому ми рекомендуємо використовувати загальні англійські назви для кісток.
Після того, як ви налаштуєте bone_map, у наведених нижче розділах доступні кілька параметрів.
Видалити треки
Якщо ви імпортуєте ресурси як AnimationLibrary, яка буде спільно використовуватися, ми рекомендуємо ввімкнути ці параметри. Однак, якщо ви імпортуєте ресурси як сцени, у деяких випадках їх слід вимкнути. Наприклад, якщо ви імпортуєте персонажа з анімованими аксесуарами, ці параметри можуть призвести до того, що аксесуари не анімуються.
Крім кісткової трансформації
Видаляє з анімації будь-які доріжки, окрім доріжки трансформації кістки.
Неважливі посади
Видаляє з анімацій треки позиції, окрім root_bone та scale_base_bone, визначених у class_skeletonprofile. У class_skeletonprofilehumanoid це означає, що потрібно видалити треки позиції, окрім "Root" та "Hips". Починаючи з Godot 4, анімації включають Bone Rest у значенні Transform. Якщо вимкнути цю опцію, анімація може непередбачувано змінити форму тіла.
Некартовані кістки
Видаляє з анімації невідповідні доріжки трансформації кісток.
Перейменування кісток
Перейменувати Bones
Перейменуйте нанесені кістки.
Унікальний вузол
Робить Skeleton унікальним вузлом із назвою, указаною в skeleton_name. Це дозволяє уніфікувати шляхи доріжок анімації незалежно від ієрархії сцени.
Фіксатор відпочинку
Еталонні пози, визначені в class_skeletonprofilehumanoid, мають такі правила:
Гуманоїд займає Т-позу
Гуманоїд стоїть обличчям до +Z у правосторонній системі координат Y-UP
Гуманоїд не повинен мати Transform as Node
Направляє вісь +Y від батьківського суглоба до дочірнього
Обертання +X згинає суглоб, як м’яз, що скорочується
Ці правила є зручними визначеннями для анімації змішування та інверсної кінематики (IK). Якщо ваша модель не відповідає цьому визначенню, вам потрібно виправити це за допомогою цих параметрів.
Застосуйте перетворення вузла
Якщо ресурс неправильно експортовано для спільного використання, імпортований скелет може мати трансформацію як вузол. Наприклад, glTF, експортований з Blender без виконання «Apply Transform», є одним із таких випадків. Схоже, що модель відповідає визначенню, але внутрішні трансформації відрізняються від визначення. Цей параметр виправляє такі моделі, застосовуючи Transforms під час імпорту.
Примітка
Якщо імпортована сцена містить об’єкти, відмінні від скелетів, цей параметр може мати негативний ефект.
Нормалізація доріжок позиції
Відстеження положення використовується здебільшого для руху моделі, але використання анімації руху між моделями різного зросту може спричинити появу ковзання через різницю в довжині кроку. Цей параметр нормалізує значення відстеження позиції на основі висоти scale_base_bone. Висота scale_base_bone зберігається в Skeleton як motion_scale, а нормалізовані значення доріжки позиції множаться на це значення під час відтворення. Якщо цей параметр вимкнено, треки позиції не нормалізуються, а motion_scale скелета завжди імпортується як 1.0.
З class_skeletonprofilehumanoid, scale_base_bone є "Hips", тому висота стегон використовується як motion_scale.
Перезаписати Axis
Уніфікує опори для кісток моделей, перезаписуючи їх відповідно до еталонних поз, визначених у class_skeletonprofile.
Примітка
Це найважливіша опція для обміну анімацією в Godot 4, але майте на увазі, що ця опція може призвести до жахливих результатів, якщо оригінальний зовнішній набір Bone Rest є важливим. Якщо ви хочете обмінюватися анімацією, зберігаючи оригінальний Bone Rest, подумайте про використання Realtime Retarget Module.
Виправити силует
Спроби зробити силует моделі відповідним еталонним позам, визначеним у class_skeletonprofile, наприклад T-Pose. Це не може виправити силуети, які надто відрізняються, і це може не спрацювати для виправлення рулону кісток.
З class_skeletonprofilehumanoid цю опцію не потрібно вмикати для моделей у Т-позі, але її слід увімкнути для моделей з А-позою. Однак у цьому випадку результати фіксованої стопи можуть бути поганими залежно від висоти каблука моделі, тому може знадобитися додати назви кісток class_skeletonprofile, які ви не хочете фіксувати, у масив filter ,як у прикладі нижче.
Крім того, для моделей із зігнутими колінами або стопами може знадобитися відрегулювати висоту scale_base_bone. Для цього ви можете використовувати опцію base_height_adjustment.