Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify MeshLibrary format and constraints #10414

Merged
merged 1 commit into from
Dec 16, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions tutorials/3d/using_gridmaps.rst
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,29 @@ additional nodes can be added as source geometry just for baking the navmesh.
The baked cell size of the NavigationMesh must match the NavigationServer map cell
size to properly merge the navigation meshes of different grid cells.

MeshLibrary format
------------------

To summarize the specific constraints of the MeshLibrary format, a MeshLibrary
scene has a Node3D as the root node, and several child nodes which will become
MeshLibrary items. Each child of the root node should:

- Be a :ref:`class_MeshInstance3D`, which will become the MeshLibrary item. Only
this visual mesh will be exported.
- Have a material, in the mesh's material slot, *not* the MeshInstance3D's
material slots.
- Have up to one :ref:`class_StaticBody3D` child, for collision. The
StaticBody3D should have one or more :ref:`class_CollisionShape3D` children.
- Have up to one :ref:`class_NavigationRegion3D` child, for navigation. The
NavigationRegion3D can have one or more additional :ref:`class_MeshInstance3D`
children, which can be baked for navigation, but won't be exported as a visual
mesh.

Only this specific format is recognized. Other node types placed as children
will not be recognized and exported. GridMap is not a general-purpose system for
placing *nodes* on a grid, but rather a specific, optimized system, designed to
place *meshes* with collisions and navigation.

Exporting the MeshLibrary
-------------------------

Expand Down