From a9420ea749cc03a9f953bdfd59f14aaf62c6f53e Mon Sep 17 00:00:00 2001 From: skyace65 Date: Sun, 15 Aug 2021 21:22:58 -0400 Subject: [PATCH] Add navigation section and document 3D navigation (3.4) --- index.rst | 1 + tutorials/navigation/img/bake_navmesh.png | Bin 0 -> 1466 bytes tutorials/navigation/img/baked_navmesh.png | Bin 0 -> 28684 bytes .../navigation/img/new_navigation_mesh.png | Bin 0 -> 7358 bytes tutorials/navigation/index.rst | 8 +++ .../navigation/real_time_navigation_3d.rst | 64 ++++++++++++++++++ 6 files changed, 73 insertions(+) create mode 100644 tutorials/navigation/img/bake_navmesh.png create mode 100644 tutorials/navigation/img/baked_navmesh.png create mode 100644 tutorials/navigation/img/new_navigation_mesh.png create mode 100644 tutorials/navigation/index.rst create mode 100644 tutorials/navigation/real_time_navigation_3d.rst diff --git a/index.rst b/index.rst index 49a5eb933..2fd1035ad 100644 --- a/index.rst +++ b/index.rst @@ -99,6 +99,7 @@ The main documentation for the site is organized into the following sections: tutorials/viewports/index tutorials/shading/index tutorials/networking/index + tutorials/navigation/index tutorials/assetlib/index tutorials/vr/index tutorials/plugins/index diff --git a/tutorials/navigation/img/bake_navmesh.png b/tutorials/navigation/img/bake_navmesh.png new file mode 100644 index 0000000000000000000000000000000000000000..8b149ad1124b3fcd0f37f56a8fb90b1ed4cea3a3 GIT binary patch literal 1466 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 literal 0 HcmV?d00001 diff --git a/tutorials/navigation/img/new_navigation_mesh.png b/tutorials/navigation/img/new_navigation_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..d2d8ce65c899212e7c1e892f709f8007fed00a3b GIT binary patch literal 7358 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ýGLPEkK)j6LN8?I>g94r~)5 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 literal 0 HcmV?d00001 diff --git a/tutorials/navigation/index.rst b/tutorials/navigation/index.rst new file mode 100644 index 000000000..d27dcc394 --- /dev/null +++ b/tutorials/navigation/index.rst @@ -0,0 +1,8 @@ +Navigation +========== + +.. toctree:: + :maxdepth: 1 + :name: toc-learn-features-navigation + + real_time_navigation_3d diff --git a/tutorials/navigation/real_time_navigation_3d.rst b/tutorials/navigation/real_time_navigation_3d.rst new file mode 100644 index 000000000..213b04c5f --- /dev/null +++ b/tutorials/navigation/real_time_navigation_3d.rst @@ -0,0 +1,64 @@ +.. _doc_real_time_navigation_3d: + +Real Time Navigation (3D) +========================= + +Introduction +------------ + +Godot provides two nodes which can be used to achieve real time navigation +in a 3D environment, :ref:`Navigation ` and :ref:`NavigationMeshInstance `. + +A navigation mesh instance is used to hold a :ref:`NavigationMesh `, +which defines what areas in a scene can be navigated to. The :ref:`Navigation ` +node is then used for pathfinding with the navigation mesh. + +Setting up navigation +--------------------- + +To add navigation to a scene you need to add a navigation node, then +a navigation mesh instance as a child of the navigation node. With the +navigation mesh instance selected you need to go to the inspector and +create a new navigation mesh. + +.. image:: img/new_navigation_mesh.png + +Click on the navigation mesh and you can now alter the properties that +define how the navigation mesh is generated. You can find a full +description for each of the properties in the class reference here: +:ref:`NavigationMesh `. + +After making the changes you want the mesh can be generated by clicking +**Bake NavMesh** in the toolbar. + +.. image:: img/bake_navmesh.png + +Once the mesh has finished generating you should see the transparent +navigation mesh above the areas in your scene that can be navigated to. + +.. image:: img/baked_navmesh.png + +Keep in mind that the navmesh shows where the center of an entity can +go. For example, if you set the agent radius to 1 then your +navigation mesh will have a distance of .5 from any ledges or walls +to prevent clipping into the wall or hanging off of the edge. + +Generating a path +----------------- + +To get a path between two areas on a map you use the navigation node +method ``get_simple_path()``. The first argument is a Vector3 of the +starting location, the next is a Vector3 of the end location. And the +last argument is a boolean for whether or not agent properties of a +navmesh are considered when generating a path. + +The method will return a :ref:`PoolVector3Array ` consisting of +points that make a path. If there is no way to navigate to the end +location the method will return a blank :ref:`PoolVector3Array `. + +Official example project +------------------------ + +There is an official example project on how to use 3D navigation. +You can find the repository `here `__. +It can also be found in the asset library.