Work in progress

The content of this page was not yet updated for Godot 4.2 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.

Using MultiMeshInstance3D

Введение

In a normal scenario, you would use a MeshInstance3D node to display a 3D mesh like a human model for the main character, but in some cases, you would like to create multiple instances of the same mesh in a scene. You could duplicate the same node multiple times and adjust the transforms manually. This may be a tedious process and the result may look mechanical. Also, this method is not conducive to rapid iterations. MultiMeshInstance3D is one of the possible solutions to this problem.

MultiMeshInstance3D, as the name suggests, creates multiple copies of a MeshInstance over a surface of a specific mesh. An example would be having a tree mesh populate a landscape mesh with trees of random scales and orientations.

Настройка узлов

The basic setup requires three nodes: the MultiMeshInstance3D node and two MeshInstance3D nodes.

One node is used as the target, the surface mesh that you want to place multiple meshes on. In the tree example, this would be the landscape.

Другой узел используется в качестве источника - сетки, которую вы хотите продублировать. В случае с деревом это будет само дерево.

In our example, we would use a Node3D node as the root node of the scene. Your scene tree would look like this:

../../_images/multimesh_scene_tree.png

Примечание

Для простоты в этом учебнике используются встроенные примитивы.

Now you have everything ready. Select the MultiMeshInstance3D node and look at the toolbar, you should see an extra button called MultiMesh next to View. Click it and select Populate surface in the dropdown menu. A new window titled Populate MultiMesh will pop up.

../../_images/multimesh_toolbar.png ../../_images/multimesh_settings.png

Настройки MultiMesh

Ниже приведены описания вариантов.

Целевая поверхность

Сетка, используемая в качестве целевой поверхности, на которой размещаются копии исходной сетки.

Source Mesh (исходная сетка)

Сетка, которую нужно продублировать на целевой поверхности.

Ось сетки вверх

Ось, используемая в качестве оси вверх исходной сетки.

Random Rotation (случайное вращение)

Случайные вращения вокруг оси вверх исходной сетки.

Random Tilt (случайный наклон)

Случайность общего вращения исходной сетки.

Random Scale (случайный масштаб)

Случайность масштаба исходной сетки.

Масштаб

Масштаб исходной сетки, которая будет размещена над целевой поверхностью.

Количество

Количество экземпляров сетки, размещённых на целевой поверхности.

Выберите целевую поверхность. В случае с деревом это должен быть узел ландшафта (landscape). Исходной сеткой должен быть узел дерева (tree). Настройте остальные параметры в соответствии с вашими предпочтениями. Нажмите Populate и несколько копий исходной сетки будут размещены поверх целевой сетки. Если вы удовлетворены результатом, вы можете удалить экземпляр сетки, использованный в качестве исходной сетки.

Конечный результат должен выглядеть так:

../../_images/multimesh_result.png

Чтобы изменить результат, повторите предыдущие шаги с другими параметрами.