PDA

View Full Version : NavMesh Generation between different height surfaces



Jwrayth
07-31-2010, 12:39 PM
Simple question that I can't seem to find an answer for :D

I have two pylons in a level that are on surfaces of different heights. I need to make it so my AI can pathfind and "jump"/"drop down" from one height to the next.

When I build my navmesh, obstacle mesh surfaces exist between the higher pylon mesh and the lower pylon mesh.

http://img830.imageshack.us/img830/7249/navmesh.png

I assume I need to tweak the parameters on my Scout for building the nav-mesh, hence asking in the programming section rather than level-design.

However the documentation on navigation meshes seems rather fragmented, so I'm not even sure if nav-meshes support what I want or if I'm going to have to use path nodes instead.

TOP-Proto
07-31-2010, 12:42 PM
are your pylons ajoined?

it looks like your lower pylon and your upper one are totally separated.

Jwrayth
07-31-2010, 12:48 PM
I am guessing not :D

I followed one of the UDN Articles about placing Pylons that indicated as long as the areas overlapped, they would join up when built. When using pylons on the same height, this would work as expected, so I didn't realize I had to explicitly link pylons.

Can you point me in the direction of how I do this? :)

TOP-Proto
07-31-2010, 01:51 PM
but your areas are not overlapping.

you have 2 separate pylon areas that dont touch or overlap

Jwrayth
07-31-2010, 02:11 PM
The generated mesh is not overlapping (which is my problem), but the bounding boxes do indeed overlap in the editor.

http://img237.imageshack.us/img237/5809/pylon.png

As can be seen in the top pane, the bounding areas overlap, but when I build AI Paths, it doesn't consider you can drop from one part of the navigation mesh into another.

However, if you look where the navigation meshes overlap on the stairs, a proper boundary you can pass through is indicated.

Blade[UG]
07-31-2010, 04:38 PM
The pylons also have a height that should be taken into account. There's also a setting somewhere or other for maximum fall height to consider.

TOP-Proto
07-31-2010, 04:52 PM
http://udn.epicgames.com/Three/UsingNavigationMeshes.html is a good documentation on pylons, it shows that pylons interception is nothing to do with the bounding boxes, the pylon areas themselves must intersect.

as blade said if you have multiple levels, your lower pylon should intersect with your upper pylons to become navigatable.


also as part of the link theres other methods in place to get from one floor to anohter.

Jwrayth
07-31-2010, 05:49 PM
I have been using that document as a guide already, and following from what it says, my pylons do already intersect (other than the ones in the article are round, and mine seem to be square, which I chalk up to old documentation).

If I move my pylons any closer together they will enter the erronous state indicated on this image (http://udn.epicgames.com/Three/rsrc/Three/UsingNavigationMeshes/oknotok.jpg) from the article. I am pretty sure my pylons are intersecting, but if you are convinced they are not then please tell me how to verify this as I am obviously missing something.

Looking at the pylon properties in the editor, the only thing I can edit is the radius (which doesn't help).

This brings me back to my original question of properties in code I need to edit. Which height property do I need to set? Checking in the Scout, there are a few height related properties... all of which seem to mostly cause the nav mesh generation to generate wonky meshes that do not solve my problem.


also as part of the link theres other methods in place to get from one floor to anohter.

I'm sorry, but I don't see anything on that in the article you linked. Unless you mean the DynamicPylon stuff? Which seems like a separate thing to me as I am not looking for moving platforms, but ledges that drop from one walkable area to another.

DragonSpawn
12-05-2010, 02:40 PM
Has there been any progress with this issue? I can't quite figure out how to do this. You are obviously supposed to be able to do it somehow due to the NavMeshGen_MaxDropHeight variable in the scout class. I have tried cranking that value up but it never wants to connect the two levels in any way.