Map's Navigation Changes - PathsLinker working samples

Development assistance and tutorials here.
Post Reply
Nelsona
Posts: 1737
Joined: Sat Sep 30, 2017 5:03 am

Map's Navigation Changes - PathsLinker working samples

Post by Nelsona »

Modifications that can be done "manually"
After previously writing these builders - PathsLinker works exclusively in UGold227 (maybe U227 as well) NOT in UT - we might have UT maps with desired navigation routes. By example if a path is passing nearby a wall and we can see Bots often hitting that wall, we can remove those paths (are two paths between 2 navigation points as we learned before) if we do have alternate options around - we force pawn to move through other points, even getting items.
Let's see how do we do these manual removals of paths.
When we are not adding any new node but deleting paths we don't need to re-link Navigationpointlist because all points were connected before and we don't need to do changes.
Let's see this sample in UGold:
Disconnect_0.PNG
Disconnect_0.PNG (1.16 MiB) Viewed 8110 times
PlayerStart and InventorySpot spotted in image are going to be disconnected - as you see they have different types of reachSpecs depending on how Engine could move Scout when these have been created. Red path is definitely a "small-size" one while green path is a "medium-size" type where a common skaarj can use it, white means bigger than that.
We open PathsLinker with a right-click of mouse on builder's icon, we scroll options until we get on disconnecting feature and nodes hooking feature. We select PlayerStart in stage 1 - 1 point at time:
Disconnect_1.PNG
Disconnect_1.PNG (1.2 MiB) Viewed 8110 times
Here we set bGet1stN1 option to True and then we "build".
Then we are selecting InventorySpot - the same 1 point at time:
Disconnect_2.PNG
Disconnect_2.PNG (1.19 MiB) Viewed 8110 times
We have bGet2ndN2 option to True and then we "build".
If we are clicking over N1 and N2 - fields should be completed with data - names of these two nodes.
And now we are selecting Option bDisconnectN1toN2 to True and we "build".
Disconnect_3.PNG
Disconnect_3.PNG (1.05 MiB) Viewed 8110 times
Builder will remove ONE path going from PlayerStart to InventorySpot explaining a bit about wrapping of remaining reachSpecs. Screen (viewPort) will get a refresh after OK confirmation - GUI in Editors is a slow thing, it won't refresh data all time.
The result of this task is here - Green Path has been "vaporized".
Disconnect_4.PNG
Disconnect_4.PNG (1.17 MiB) Viewed 8110 times
If we want to remove the Red Path too, we need to follow the same steps getting InventorySpot as N1 and PlayerStart as N2 and then "building" a path removal.
In the right terms this PathsLinker is a Builder but... a builder capable to destroy as well not only to build.
If we are doing the same steps for the second Red Path, we will get this:
Disconnect_5.PNG
Disconnect_5.PNG (1.17 MiB) Viewed 8110 times
These two Navigation points shown in first image aren't connected anymore.
UncodeX Stuff
Not often maintained
My UT Mapping works...
Learn the rules like a pro, so you can break them like an artist.
- Pablo Picasso -
Nelsona
Posts: 1737
Joined: Sat Sep 30, 2017 5:03 am

Re: Map's Navigation Changes - PathsLinker working samples

Post by Nelsona »

There is a second way to remove such a connection. We can ask MapGarbage about connections owned by PlayerStart by using bShowSpecs boolean option with PlayerStart Selected.
Disconnect_6.PNG
Disconnect_6.PNG (832.59 KiB) Viewed 8107 times
Here we can see our reachSpec number as being 1888 - exactly as shown in previous post.
We are completing this number in PathsLinker and we use option bDeleteReachSpec.
Disconnect_7.PNG
Disconnect_7.PNG (1017.5 KiB) Viewed 8107 times
After "build" and OK confirmation we have this:
Disconnect_8.PNG
Disconnect_8.PNG (1016.92 KiB) Viewed 8107 times
The same result - Green Path is gone for good.
What else happened ? ReachSpec 1888 is gone but we do have another 1888 because all reachSpec are rearranged in array. For removing next Red Path we want to
do an examination which reachSpec goes to PlayerStart.
Disconnect_9.PNG
Disconnect_9.PNG (1018.92 KiB) Viewed 8107 times
Then... we do have ANOTHER 1888 which is exactly what we were looking for. So in this case we can repeat deleting reachspec 1888. Let's see what's happening...
Disconnect_10.PNG
Disconnect_10.PNG (1019.73 KiB) Viewed 8107 times
Clean as a crystal.
Any of these methods is not that fast as Editor builds these, it's preferable to adjust these paths here and there or else this manual cleaning task takes time - but... it's possible to solve X Spots with problems when pawn starts to be annoying while is navigating a bad spot.
UncodeX Stuff
Not often maintained
My UT Mapping works...
Learn the rules like a pro, so you can break them like an artist.
- Pablo Picasso -
Nelsona
Posts: 1737
Joined: Sat Sep 30, 2017 5:03 am

Re: Map's Navigation Changes - PathsLinker working samples

Post by Nelsona »

Next Option Sampled - Adding a path - navigation point
We can start compiling a new thing for map in UT, we want all internal variables 100% UT compatible in MyLevel and not elsewhere outside of UT. After compiling new actor we drop it in map in order to keep it available...
Disconnect_11.PNG
Disconnect_11.PNG (1.14 MiB) Viewed 8102 times
This is a new AlternatePath actor which is a new thing in map, we don't have anything for it yet, no paths and not chained into NavigationPointlist.
First thing which would be good to do it's causing a link of this actor in navigation chain using MapGarbage - doable in UT or in UGold as primary task.
Disconnect_12.PNG
Disconnect_12.PNG (11.12 KiB) Viewed 8102 times
Disconnect_13.PNG
Disconnect_13.PNG (11.34 KiB) Viewed 8102 times
We should have a new NavigationPointlist which will include in chain our new actor(s).
Disconnect_14.PNG
Disconnect_14.PNG (1.07 MiB) Viewed 8102 times
This is primary stage in bringing a new point without to use automated pathing script because it will ruin our previous pathing tweaks, if we did them.

Now map should be opened in UGold227 whatever because we need to create reachSpecs from/to the new navigation node.
Here it is:
Disconnect_15.PNG
Disconnect_15.PNG (1.06 MiB) Viewed 8101 times
Here we can have options as follows:
- deleting paths between the two nodes nearby this AlternatePath;
- leaving paths between Nodes and just causing connections for both of them - or only one of them.
To me, it looks more suitable to not load more than is needed, So I will remove paths in this session, saving map and closing Editor and reopening them for next task.
Disconnect_16.PNG
Disconnect_16.PNG (972.42 KiB) Viewed 8101 times
Here we need new connections otherwise leaving map like this will cause a break point and I did not figure Bots using an AlternatePath in this stage, it needs paths.
Good let's start in next session. We might be curious to see what PathsLinker recommends in Editor as collision parameters for future reachSpecs.
Disconnect_17.PNG
Disconnect_17.PNG (782.11 KiB) Viewed 8101 times
It looks like the place is supporting even a Titan - reporting as text in log:

Code: Select all

ScriptLog: Route is OK from PathNode39 to SmartAlternatePath0 having distance 287.097656 UU.
ScriptLog: Result returned Good at CollisionRadius 115.000000 and CollisionHeight 110.000000.
ScriptLog: Route is OK from SmartAlternatePath0 to PathNode39 having distance 287.097656 UU.
ScriptLog: Result returned Good at CollisionRadius 115.000000 and CollisionHeight 110.000000.
Here we need some reachSpecs created - collision data is already copied because we did this test. As we can see, we don't need a jump or such for moving from PathNode to AlternatePath and neither in reversal movement. We will complete reachFlag 1 as being R_Walk and bTwoWay will be True, we use this bTwoWay because we want two connections: From PathNode to AlternatePath and other from AlternatePath to PathNode.
Disconnect_18.PNG
Disconnect_18.PNG (9.47 KiB) Viewed 8101 times
After completing these we need to capture our N1 and N2 nodes like in previous case with disconnecting paths - N1 and N2 are Start and End for future reachSpecs and then for bTwoWay N2 and N1 will be Start and End.
Capturing N1 as selected PathNode:
Disconnect_19.PNG
Disconnect_19.PNG (825.62 KiB) Viewed 8101 times
And Capturing N2 as selected AlternatePath:
Disconnect_20.PNG
Disconnect_20.PNG (820.97 KiB) Viewed 8101 times
After having all data completed for these two future reachSpecs we have to launch "build" task.
Disconnect_21.PNG
Disconnect_21.PNG (750 KiB) Viewed 8101 times
Description:
- reachDist is computed automatically but if you have some other recommendation it will be in account;
- after creating these two reachSpecs builder will report what did. In case that you have found something wrong - bad data completed or such - you can figure reachSpec number and you can remove it as described in previous posting.
After pressing OK button, ViewPort will receive a refresh and the newer added reachSpecs are shown (as lines). I marked some red things for pointing what is about.
Disconnect_22.PNG
Disconnect_22.PNG (779.54 KiB) Viewed 8101 times
In next stage we can do the same with the other PathNode and AlternatePath because we want a full usable route here - we don't need to check collision as long as we have everything mainly in the same type of geometry so these should not be a problem - collision data is not reset, so it can be used for future similar connections.
Disconnect_23.PNG
Disconnect_23.PNG (762.24 KiB) Viewed 8101 times
As you can see, we do have now 4 reachspecs connecting what we call a SmartAlternatePath into our navigation network. These paths can be tested using Plain commands RememberSpot and ShowPath OFF-Line - in a local game not a server. Okay, let's save map for now...
Note: If we don't like placement for newer navigation point actor, we can adjust it without anything else as long as it's not moved far away, it won't cause any damage.
UncodeX Stuff
Not often maintained
My UT Mapping works...
Learn the rules like a pro, so you can break them like an artist.
- Pablo Picasso -
Nelsona
Posts: 1737
Joined: Sat Sep 30, 2017 5:03 am

Re: Map's Navigation Changes - PathsLinker working samples

Post by Nelsona »

The next: Some Hints
Certain CTF maps have a single reachSpec created for any of Flags and even both Flags and these are not like arrows from PathNode to a FlagBase, they are from a FlagBase to a nearby node or more nodes, having no logic connection coming to FlagBase - it's what we can call for real a One-Way :arrow: path causing Bots to not be interested about any Flag located in its Base.
These do exist because some people are wanting another design but... they cannot manage this design - it's a reality demonstrated already X times.
One solution here would be this PathsLinker causing a single connection (with bTwoWay=False) to said FlagBase for completing the two needed reachSpecs between such two navigation points, and... testing if Engine is pointing Bot there because in certain cases plain DevPath can discard fake routes (a MH map was showing this with paths over a mover).
Second solution, if we want Goblin's originality - record location for this FlagBase, put it back down on the ground, build paths and then... move it back in old location previously recorded, that simple.
Third solution previously described in another pathing tutorial, just LEAVE these "ideas" and don't move FlagBase in any case. Build paths and... modify PrePivot for this "greatly designed" FlagBase as needed using advanced actor editing - perhaps this is a more advanced method for certain mappers, not a must-be after all.
UncodeX Stuff
Not often maintained
My UT Mapping works...
Learn the rules like a pro, so you can break them like an artist.
- Pablo Picasso -
Nelsona
Posts: 1737
Joined: Sat Sep 30, 2017 5:03 am

Re: Map's Navigation Changes - PathsLinker working samples

Post by Nelsona »

Attaching a bit of animation with Paths removal by user/mapper.
Manual_Paths_Removal.gif
Manual_Paths_Removal.gif (28.72 MiB) Viewed 7658 times
UncodeX Stuff
Not often maintained
My UT Mapping works...
Learn the rules like a pro, so you can break them like an artist.
- Pablo Picasso -
Post Reply