Jump to content

Navmesh "walkable" system is smarter than expected


You are about to reply to a thread that has been inactive for 1367 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

The static navmesh system for pathfinding can do more than the documentation suggests.

Set an entire building to walkable, and the horizontal surfaces become walkable, while the vertical surfaces become static obstacles. This is a great feature, and makes setting up a parcel for pathfinding far simpler. I just got rid of my "invisible walkable rugs" and similar hacks.  If the object has a reasonable physics model, including ramps for the stairs, it all just works.

orvilleairport01.thumb.jpg.e58b95fcacad0e209c70fca7c001f9cc.jpg

Terminal at Orville airport, Orville sim. This is a Linden sim for seaplane testing. Nice seaplane ramp, terminal, and hangars. Everything is pathfinding-ready. Grey areas are walkable, and red lines bound their edges. All prim, no mesh; this is classic SL.

bldglayers03.png.f52454da0c3f280da4b2ba75eefb39b4.png

Another building, one I've modified. This is part prim, part mesh. That works, too. Notice the steps. If the physics model is a ramp, the static navmesh builder figures it out. I used to have "walkable rugs" all over this place, linked into one linkset.They're no longer needed.

Pathfinding characters can climb the stairs in both of these buildings.

So it's much simpler to set up a building for pathfinding than previously thought. The "Visual Guide to Pathfinding" says "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." That works, but is unnecessary for prim buildings, and impossible for single object mesh buildings.

Incidentally, to be included in the static navmesh, an linkset needs to be at least 10.1m x 10.1m. That's the linkset, not a prim. Small sheds might have a problem, unless you link them to something to make the linkset bigger.

Key numbers to know about this feature:

  • Below somewhere between 60° and 70° from horizontal means "walkable". Above that, it's a static obstacle. That's also about where avatars can no longer climb something. Normal 45 degree stairs work fine.
  • A vertical break, like a curb or door threshold, remains walkable up to some threshold between 0.20 and 0.35m.  That's for a path 0.5m wide. So most ordinary curbs and door thresholds work fine.

Related JIRA.

 
  • Thanks 1
  • Haha 1
Link to comment
Share on other sites

Here's a nice demo of the navmesh builder deciding what's walkable.

walkablering.thumb.jpg.f9c07fb17b534ad02165ff7c55fa307d.jpg

Walkable hollow ring. Hollow prim. The greyish areas outlined in red are walkable. Walkability is sided; on the inside top, the red outline without grey fill indicates we are looking at the unwalkable underside of a walkable surface.

This shows the angle at which the navmesh builder treats a face as an obstacle rather than a walkable.

This part of pathfinding was very well done.

 

  • Haha 1
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1367 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...