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...
MeshInstance3D
Успадковує: GeometryInstance3D < VisualInstance3D < Node3D < Node < Object
Успадковано від: SoftBody3D
Немає, що сіточки екземплярів в скрипт.
Опис
MeshInstance3D – це вузол, який приймає ресурс Mesh та додає його до поточного сценарію, створюючи його екземпляр. Цей клас найчастіше використовується для рендерингу 3D-геометрії та може бути використаний для створення екземпляра однієї Mesh у багатьох місцях. Це дозволяє повторно використовувати геометрію, що може заощадити ресурси. Коли Mesh потрібно створювати екземпляри більше тисячі разів поруч, розгляньте можливість використання MultiMesh в MultiMeshInstance3D.
Посібники
Властивості
NodePath |
|
|
Skin |
Методи
bake_mesh_from_current_blend_shape_mix(existing: ArrayMesh = null) |
|
bake_mesh_from_current_skeleton_pose(existing: ArrayMesh = null) |
|
void |
create_convex_collision(clean: bool = true, simplify: bool = false) |
void |
|
void |
create_multiple_convex_collisions(settings: MeshConvexDecompositionSettings = null) |
void |
|
find_blend_shape_by_name(name: StringName) |
|
get_active_material(surface: int) const |
|
get_blend_shape_count() const |
|
get_blend_shape_value(blend_shape_idx: int) const |
|
SkinReference |
get_skin_reference() const |
get_surface_override_material(surface: int) const |
|
void |
set_blend_shape_value(blend_shape_idx: int, value: float) |
void |
set_surface_override_material(surface: int, material: Material) |
Описи властивостей
Mesh ресурс для екземпляра.
NodePath skeleton = NodePath("") 🔗
void set_skeleton_path(value: NodePath)
NodePath get_skeleton_path()
NodePath до Skeleton3D, пов'язаного з екземпляром.
Примітка: Значення цієї властивості за замовчуванням змінилося в Godot 4.6. Увімкніть ProjectSettings.animation/compatibility/default_parent_skeleton_in_mesh_instance_3d, якщо для сумісності потрібна стара поведінка.
Skin skin 🔗
void set_skin(value: Skin)
Skin get_skin()
Skin використовувати цей екземпляр.
Описи методів
ArrayMesh bake_mesh_from_current_blend_shape_mix(existing: ArrayMesh = null) 🔗
Робить знімок поточної сітки ArrayMesh з усіма застосованими формами змішування відповідно до їхніх поточних ваг та запікає його у надану сітку existing. Якщо не вказано existing mesh, створюється, запікається та повертається новий ArrayMesh. Матеріали поверхні сітки не копіюються.
Продуктивність: Дані Mesh необхідно отримувати від графічного процесора, що зупиняє RenderingServer у процесі.
ArrayMesh bake_mesh_from_current_skeleton_pose(existing: ArrayMesh = null) 🔗
Робить знімок поточної анімованої пози скелета шкірної сітки та запікає її до наданої сітки existing. Якщо сітка existing не надається, створюється нова ArrayMesh, запікається та повертається. Для роботи потрібен скелет із зареєстрованою шкірою. Blendshapes ігноруються. Матеріали сітчастої поверхні не копіюються.
Продуктивність: дані Mesh потрібно отримати з графічного процесора, зупиняючи процес RenderingServer.
void create_convex_collision(clean: bool = true, simplify: bool = false) 🔗
Цей помічник створює жіночий вузол StaticBody3D з формою зіткнення ConvexPolygonShape3D, розрахований з геометрії сітки. В основному використовується для тестування.
Якщо clear є true (default), дублікати та інтер'єрні вершини видаляються автоматично. Ви можете налаштувати його на false, щоб зробити процес швидше, якщо не потрібно.
Якщо simplify true, геометрія може бути додатково спрощена для зменшення кількості вершин. Вимкнено за замовчуванням.
void create_debug_tangents() 🔗
Цей помічник створює дитячу вершину MeshInstance3D з гізмосом на кожній вершині, розрахованій з геометрії сітки. В основному використовується для тестування.
void create_multiple_convex_collisions(settings: MeshConvexDecompositionSettings = null) 🔗
Цей помічник створює дочірню вершину StaticBody3D з декількома формами зіткнення ConvexPolygonShape3D, розрахованими з геометрії сітки за допомогою опуклої декомпозиція. Робота опуклих декомпозицій може контролюватися за допомогою параметрів з параметра параметри.
void create_trimesh_collision() 🔗
Цей помічник створює жіночий вузол StaticBody3D з ConcavePolygonShape3D, розрахований з геометрії сітки. В основному використовується для тестування.
int find_blend_shape_by_name(name: StringName) 🔗
Повертає індекс форми блендера з вказаною name. Повертаємо -1, якщо не існує форми блендера з цією назвою, включаючи, коли пам'яткова сітка null.
Material get_active_material(surface: int) const 🔗
Повертаємо Material, який буде використовуватися Mesh при малюнку. Це може повернути GeometryInstance3D.material_override, поверхневий надвисокий Material, визначений в цьому MeshInstance3D, або поверхня Material, визначена в mesh. Наприклад, якщо використовується GeometryInstance3D.material_override, всі поверхні повернеться на матеріал наднижнього.
Повертаємо null, якщо не працює матеріал, в тому числі при mesh null.
int get_blend_shape_count() const 🔗
Повертаємо кількість форм змішування. null.
float get_blend_shape_value(blend_shape_idx: int) const 🔗
Повертає значення форми блендера на даній mix_shape_idx. Повертаємо 0.0 і виробляє помилку, якщо mesh є null або не має форму суміш в цьому індексі.
SkinReference get_skin_reference() const 🔗
Повертаємо внутрішню SkinReference, що містить скелет RID, прикріплену до цього RID. Дивись також Resource.get_rid(), пошуку.get_skeleton(), а RenderingServer.instance_attach_skeleton().
Material get_surface_override_material(surface: int) const 🔗
Повернення перенареченого Material за вказану surface ресурсу Mesh. Дивись також get_surface_override_material_count().
Примітка: Це повертає Material, пов'язаний з MeshInstance3D's Surface Material Override властивості, не матеріал в межах Mesh ресурсу. Щоб отримати матеріал в ресурсі Mesh, скористайтеся Mesh.surface_get_material().
int get_surface_override_material_count() const 🔗
Повертаємо кількість поверхневих надрядних матеріалів. Це еквівалент Mesh.get_surface_count(). Дивись також get_surface_override_material().
void set_blend_shape_value(blend_shape_idx: int, value: float) 🔗
Встановлює значення форми блендера на mix_shape_idx до value. null або не має форми блендера в цьому індексі.
void set_surface_override_material(surface: int, material: Material) 🔗
Встановлює перевизначення material для вказаної surface ресурсу Mesh. Цей матеріал пов’язаний із цим MeshInstance3D, а не з mesh.
Примітка: це призначає Material, пов’язаний із властивостями Surface Material Override MeshInstance3D, а не матеріалом у ресурсі Mesh. Щоб установити матеріал у межах ресурсу Mesh, замість цього використовуйте Mesh.surface_set_material().