Work in progress
The content of this page was not yet updated for Godot
4.4
and may be outdated. If you know how to improve this page or you can confirm
that it's up to date, feel free to open a pull request.
Использование MultiMeshInstance3D
Введение
В обычном сценарии вы бы использовали узел MeshInstance3D для отображения 3D-сетки, например модели человека для главного персонажа. Но в некоторых случаях вам может понадобиться создать несколько экземпляров одной и той же сетки в сцене. Вы могли бы дублировать один и тот же узел несколько раз и вручную настраивать трансформации. Однако это может быть утомительным процессом, и результат может выглядеть механическим. Кроме того, этот метод не способствует быстрой итерации. MultiMeshInstance3D является одним из возможных решений этой проблемы.
MultiMeshInstance3D, как следует из названия, создаёт несколько копий MeshInstance на поверхности определённой сетки. Примером может служить создание множества деревьев на ландшафте со случайными размерами и ориентациями.
Настройка узлов
Базовая настройка требует трёх узлов: узел MultiMeshInstance3D и два узла MeshInstance3D.
Один узел используется в качестве цели — сетки поверхности, на которую вы хотите разместить несколько других сеток. В примере с деревьями это будет ландшафт.
Другой узел используется в качестве источника - сетки, которую вы хотите продублировать. В случае с деревом это будет само дерево.
В нашем примере мы будем использовать узел Node3D в качестве корневого узла сцены. Ваше дерево сцены будет выглядеть так:
Примечание
Для простоты в этом учебнике используются встроенные примитивы.
Теперь всё готово. Выберите узел MultiMeshInstance3D и посмотрите на панель инструментов: вы должны увидеть дополнительную кнопку MultiMesh рядом с View. Нажмите на неё и выберите Populate surface в выпадающем меню. Появится новое окно с названием Populate MultiMesh.
Настройки MultiMesh
Ниже приведены описания вариантов.
Целевая поверхность
Сетка, используемая в качестве целевой поверхности, на которой размещаются копии исходной сетки.
Source Mesh (исходная сетка)
Сетка, которую нужно продублировать на целевой поверхности.
Ось сетки вверх
Ось, используемая в качестве оси вверх исходной сетки.
Random Rotation (случайное вращение)
Случайные вращения вокруг оси вверх исходной сетки.
Random Tilt (случайный наклон)
Случайность общего вращения исходной сетки.
Random Scale (случайный масштаб)
Случайность масштаба исходной сетки.
Масштаб
Масштаб исходной сетки, которая будет размещена над целевой поверхностью.
Количество
Количество экземпляров сетки, размещённых на целевой поверхности.
Выберите целевую поверхность. В случае с деревом это должен быть узел ландшафта (landscape). Исходной сеткой должен быть узел дерева (tree). Настройте остальные параметры в соответствии с вашими предпочтениями. Нажмите Populate и несколько копий исходной сетки будут размещены поверх целевой сетки. Если вы удовлетворены результатом, вы можете удалить экземпляр сетки, использованный в качестве исходной сетки.
Конечный результат должен выглядеть так:
Чтобы изменить результат, повторите предыдущие шаги с другими параметрами.