Difference between revisions of "Visual Guide to Pathfinding"

From Second Life Wiki
Jump to navigation Jump to search
m (removed trees from the list of things that should be at static... trees need to be phantom)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Setup Pathfinding==
==Setup Pathfinding==


* A new Pathfinding region has three types of objects.  The terrain is set to [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|Walkable]] (by default and cannot be changed), existing objects are set to [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|Movable Obstacle]], and existing phantom objects are set to Movable Phantom.
* A new [[Pathfinding]] region has three types of objects.  The terrain is set to [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|Walkable]] (by default and cannot be changed), existing objects are set to [[Pathfinding_Tools_in_the_Second_Life_Viewer#Example_use_3|Movable Obstacle]], and existing phantom objects are set to Movable Phantom.
<pre style="color:red">Begin by naming every object in your region! It's difficult to know what to set objects to if they are all named "Object".</pre>
<pre style="color:red">Begin by naming every object in your region! It's difficult to know what to set objects to if they are all named "Object".</pre>
* Movable Obstacle and Movable Phantom objects will not show up in your navigation mesh view, so your initial view of your region will be the smooth green mesh of the terrain.  Be sure to check the Walkable box in the Pathfinding Debug window (formerly the Edit/Test window).
* Movable Obstacle and Movable Phantom objects will not show up in your [[Pathfinding_NavMesh|navigation mesh]] view, so your initial view of your region will be the smooth green mesh of the terrain.  Be sure to check the Walkable box in the Pathfinding Debug window (formerly the Edit/Test window).
* Begin by making obstacles Static in the Linksets window.  Many of these will be obvious, such as trees, fences, and walls.  
* Begin by making obstacles Static in the Linksets window.  Many of these will be obvious, such as fences and walls.  
* Another obvious set of objects are your Walkables like floors, roads, and docks.
* Another obvious set of objects are your Walkables like floors, roads, and docks.
* Objects that need to move yet need to be solid should be left as Movable Obstacles.  An example would be scripted doors.
* Objects that need to move yet need to be solid should be left as Movable Obstacles.  An example would be scripted doors.
* Objects that don't need to be obstacles at all, should be set to Movable Phantom.
* Objects that don't need to be obstacles at all, should be set to Movable Phantom.  
* Objects that avatars can navigate but Pathfinding characters cannot should be set to Exclusion Volume.


<gallery>
<gallery>
Line 15: Line 16:
</gallery>
</gallery>


* Many linksets will need to be changed to work properly with Pathfinding.  For instance, if your building is all one object or linkset and you wish to make the floor Walkable, you will need to unlink the floor so you can set the building to Static Obstacle and the floor to Walkable.
* Many linksets will need to be changed to work properly with Pathfinding.  For instance, if your building is all one object or linkset and you wish to make the floor Walkable, you will need to unlink the floor so you can set the building to Static Obstacle and the floor to Walkable. Alternatively, you can place an exclusion volume around the walls/roof. Just be sure it doesn't include any areas that should be walkable!


<gallery>
<gallery>
Line 32: Line 33:
<gallery>
<gallery>
File:Sculptedlamp_005.png|Thick undergrowth for a pathway area
File:Sculptedlamp_005.png|Thick undergrowth for a pathway area
File:Sculptedlamp_006.png|As seen by the navmesh
File:Sculptedlamp_006.png|As seen by the navmesh and physics engine
File:Sculptedlamp_007.png|Adding simple physics
File:Sculptedlamp_007.png|Adding simple physics
File:Sculptedlamp_2_002.png|Final linkset as seen by the physics engine
File:Sculptedlamp_2_002.png|Final linkset as seen by the physics engine
</gallery>
</gallery>


* Exclusion Volumes are handy for areas where you need avatar interaction but where pathfinding characters will likely get stuck.
<gallery>
File:Sculptedlamp_2_006.png|Excluded rock area
File:Sculptedlamp_2_007.png|Excluded rock area
File:Exclusion_use_001.png|Exclusion Volumes used to keep characters on the dock, yet avatars can fall off
</gallery>


==Optimize for Pathfinding==
==Optimize for Pathfinding==

Latest revision as of 08:17, 14 August 2012

Setup Pathfinding

  • A new Pathfinding region has three types of objects. The terrain is set to Walkable (by default and cannot be changed), existing objects are set to Movable Obstacle, and existing phantom objects are set to Movable Phantom.
Begin by naming every object in your region! It's difficult to know what to set objects to if they are all named "Object".
  • Movable Obstacle and Movable Phantom objects will not show up in your navigation mesh view, so your initial view of your region will be the smooth green mesh of the terrain. Be sure to check the Walkable box in the Pathfinding Debug window (formerly the Edit/Test window).
  • Begin by making obstacles Static in the Linksets window. Many of these will be obvious, such as fences and walls.
  • Another obvious set of objects are your Walkables like floors, roads, and docks.
  • Objects that need to move yet need to be solid should be left as Movable Obstacles. An example would be scripted doors.
  • Objects that don't need to be obstacles at all, should be set to Movable Phantom.
  • Objects that avatars can navigate but Pathfinding characters cannot should be set to Exclusion Volume.
  • Many linksets will need to be changed to work properly with Pathfinding. For instance, if your building is all one object or linkset and you wish to make the floor Walkable, you will need to unlink the floor so you can set the building to Static Obstacle and the floor to Walkable. Alternatively, you can place an exclusion volume around the walls/roof. Just be sure it doesn't include any areas that should be walkable!
  • This linkset needs the railings set to Static Obstacle, and the stairs themselves set to Walkable. Originally it was all one linkset and set to Static Obstacle.
  • If you have a lot of trees, shrubs and other greenery, it's best to give it one simple physics shape for pathfinding characters to navigate around. Not to mention it lowers the load on the physics engine.
  • Exclusion Volumes are handy for areas where you need avatar interaction but where pathfinding characters will likely get stuck.

Optimize for Pathfinding

  • Sculpted prims can easily be optimized for Pathfinding. Because sculpted prims have a messy physics shape, pathfinding characters will have difficulty navigating around or under them. Create the simplest physics shape necessary for these objects.
  • Note that setting the sculpted prim to phantom and creating a separate physics shape will work, but the sculpted object will still be seen by the physics engine. The method below is more efficient.

Return to Good_Building_Practices