Commit Graph

243 Commits

Author SHA1 Message Date
aris theophanidis
0a00ff499f Addition of a boolean to track if a navmesh has been loaded without it's tiles and update the display so it shows as needs to be rebuilt.
Addition of a "Navmesh needs to be rebuilt" message to the navigation display since the stat display is not always enabled.
#jira UE-222796
#rb Yoan.StAmant

[CL 36753292 by aris theophanidis in 5.5 branch]
2024-10-01 18:49:25 -04:00
aris theophanidis
d8ec6f2d90 Temporary fix for backward compatibility crash in standalone caused by deprecated property not being set from the configuration (introduced at CL 34739547)
#jira UE-224162
#rb Patrick.Boutot

[CL 36747414 by aris theophanidis in 5.5 branch]
2024-10-01 17:44:02 -04:00
aris theophanidis
1ec7375e83 Addition of LinkBuilderFlags to the generation config to control wich point links will be added from the created links (center, extremity or both).
#rb Yoan.StAmant

[CL 36747012 by aris theophanidis in 5.5 branch]
2024-10-01 17:40:16 -04:00
aris theophanidis
31201d46b9 [NavLinkGeneration] Addition of area class support for generated links
#rb Yoan.StAmant
#jira UE-220642

[CL 35565232 by aris theophanidis in ue5-main branch]
2024-08-15 11:45:38 -04:00
yoan stamant
3ee85d0283 [NavigationSystem] updating API and various part of the navigation framework to support registration of non UObject elements.
- Added FNavigationRelevantElement as the main structure used to provide required information. The struct is meant to remove the dependencies on INavRelevantInterface and UObject. It currently provides constructors dedicated to handle current components and other UObjects implementing the interface.

#rb Aris.Theophanidis

[CL 35531152 by yoan stamant in ue5-main branch]
2024-08-14 08:49:00 -04:00
aris theophanidis
ca9aaae168 The navlink jump trajectory is now computed with a JumpHeight paramter.
The trajector will respect the JumpLength, JumpHeight and JumpMaxDepth configurations.
CL also includes removal of unused methods.

#rb sigurdur.gunnarsson, Yoan.StAmant
#jira UE-213923

[CL 35186122 by aris theophanidis in ue5-main branch]
2024-07-30 11:55:29 -04:00
aris theophanidis
06ab9e4016 Remove experimental FNavLinkGenerationJumpOverConfig for now
#rb Yoan.StAmant
#jira UE-213923
#rnx

[CL 35115938 by aris theophanidis in ue5-main branch]
2024-07-26 14:49:18 -04:00
aris theophanidis
f852b7c055 Addition of a console command to force disable navlink generation (by setting ai.nav.AllowLinkGeneration to 0)
#rb Yoan.StAmant
#jira UE-213923

[CL 35082307 by aris theophanidis in ue5-main branch]
2024-07-25 11:09:17 -04:00
aris theophanidis
9d914b08c0 [NavLink Generation] Allow generated navlinks to be discovered and handled by pathfollow in a similar way to custom links.
Addition of UGeneratedNavLinksProxy class
Addition of properties to FNavLinkGenerationJumpDownConfig to configure the link handler

#rb Mieszko.Zielinski
#jira UE-213923

[CL 34843997 by aris theophanidis in ue5-main branch]
2024-07-16 12:28:09 -04:00
yoan stamant
05babfc50a [NavigationSystem] deprecated methods/properties cleanup
#rb Mieszko.Zielinski

[CL 34671795 by yoan stamant in ue5-main branch]
2024-06-26 07:24:40 -04:00
aris theophanidis
e069571ad0 Add a flag to indicate that a link has been generated by the navigation system and display generated links with thicker lines.
#rb Yoan.StAmant
#jira UE-213923

[CL 34565224 by aris theophanidis in ue5-main branch]
2024-06-21 11:50:58 -04:00
james keeling
f0de298d88 Fix crash when generating navmesh tiles if DirtyLayers has not been initialized.
#rb Aris.Theophanidis
#jira UE-218388

[CL 34528491 by james keeling in ue5-main branch]
2024-06-20 10:21:07 -04:00
aris theophanidis
e7a03b8a83 Navlink generation improvements
Trim source edge tips to account for edges overlapping rasterization borders
Fix some links not connecting to navmesh because they where generated to high
Fix to the 'jump over starting distance'
Addition of descriptions to jump config properties
Small improvements to ARecastNavMesh::PostEditChangeChainProperty
#jira UE-213923
#rb Yoan.StAmant

[CL 34476916 by aris theophanidis in ue5-main branch]
2024-06-18 16:28:54 -04:00
aris theophanidis
bfb7c3e854 Navlink generation improvements
Ignore portal edges when looking for jumps
Added the filtering distance threshold to the link builder configuration
Improved link width computation
Improved filtering of overlapping links
Disable asymetric border sizes for now (using it can result in missing links)
Remove the extra 3 voxels on borders for link generation
Keep source edge on links for debug purposes
Add display of heightfield layers to the tile debug display
Added option to draw filtered links
Rebuild navmesh when navlink generation configuration changes
#rb Mieszko.Zielinski
#jira UE-213923

[CL 34296705 by aris theophanidis in ue5-main branch]
2024-06-11 20:08:54 -04:00
frederic doll
27a1d6a308 RecastNavmeshGenerator cleanup undefined methods and unused macros
#rb Mieszko.Zielinski, Aris.Theophanidis

[CL 34107791 by frederic doll in ue5-main branch]
2024-06-04 17:31:30 -04:00
frederic doll
03a1e863dd Templatize FRunningTileElement so that it can be used by other NavigationDataGenerator
#rb mieszko.zielinski, aris.theophanidis

[CL 34103788 by frederic doll in ue5-main branch]
2024-06-04 15:31:42 -04:00
aris theophanidis
707528b4ca [NavMesh] Optimisation: navlink generation now uses asymmetric border sizes.
It's now possible to build navmesh tiles with border sizes that are not equal all around.
When computing the extra borders to generate navlinks, borders are now asymmetric (increased only on one side of the axis)
This reduces substantially the size of the required heightfield and reduces by half the added cost of building links.
Added the ai.nav.UseAsymetricBorderSizes console command to deactivate the feature
Added AverageLinkBuildTime in the navmesh debug display
Also made sure not to compute border distance for disabled configurations
#rb mikko.mononen
#jira UE-213923

[CL 33922611 by aris theophanidis in ue5-main branch]
2024-05-27 08:26:28 -04:00
aris theophanidis
98138a3e0e [NavMesh] NavLink generation
Using inline containers to limit dynamic allocations
Added options to toggle usage of link configs
Added build time in the display stats and added logs
#jira UE-213923
#rb mikko.mononen

[CL 33809987 by aris theophanidis in ue5-main branch]
2024-05-21 17:09:32 -04:00
frederic doll
8ed3931ea8 Expose FRecastGeometryExport struct. This allows us to :
- share the struct with other navigation data generators
- use it directly where needed instead of using the RecastNavMeshGenerator (e.g. NagivationSystem, NavigationDataHandler, etc.)
#rb Aris.Theophanidis
[FYI] mieszko.zielinski

[CL 33807192 by frederic doll in ue5-main branch]
2024-05-21 16:01:41 -04:00
alex kahn
730fb5f899 [Backout] - CL33802742 - CIS Compile Error
#rnx
[FYI] Aris.Theophanidis
Original CL Desc
-----------------------------------------------------------------
[NavMesh] NavLink generation
Using inline containers to limit dynamic allocations
Added options to toggle usage of link configs
Added build time in the display stats and added logs
#jira UE-213923
#rb mikko.mononen

[CL 33807075 by alex kahn in ue5-main branch]
2024-05-21 15:59:15 -04:00
aris theophanidis
421d819570 [NavMesh] NavLink generation
Using inline containers to limit dynamic allocations
Added options to toggle usage of link configs
Added build time in the display stats and added logs
#jira UE-213923
#rb mikko.mononen

[CL 33806057 by aris theophanidis in ue5-main branch]
2024-05-21 15:38:40 -04:00
aris theophanidis
e99fb6f898 Navlink generation optimizations
Use stack allocator to allocate samples
Added profiler events
Addition of a parameter to reduce sampling precision
Added edge index labels to the diplay allowing to inspect a specific edge easily
#jira UE-213923
#rb mikko.mononen

[CL 33659685 by aris theophanidis in ue5-main branch]
2024-05-15 11:19:57 -04:00
aris theophanidis
79796191a6 [NavMesh] NavLink generation improvements:
Refactor to keep solidHF and compactHF for the lifetime of FRecastTileGenerator
Allowed the sliced generator to build links
Fix issue with missing solidHF and compactHF when building links
Added experimental link builder configurations to RecastNavmesh
Increase heightfield border size when building links
Fix missing input edges on tile borders when generating links
Changed ARecastNavMesh "Draw Failed NavLinks" debug name to Draw Failed and Valid Links"
Added profile tags inside link generation
Small navlink geneneration debug display improvements
#jira UE-213923
#rb Maxime.Mercier

[CL 33544704 by aris theophanidis in ue5-main branch]
2024-05-09 09:45:57 -04:00
aris theophanidis
0dc538920e [NavMesh] Navlink generation first pass (experimental).
When enabled, generates simple links within navmesh tiles.
Added debug display showing trajectory and trajectory validation.
#jira UE-213923
#rb mikko.mononen

[CL 33427009 by aris theophanidis in ue5-main branch]
2024-05-03 11:17:46 -04:00
aris theophanidis
f87be6a13e [NavMesh] Fix tile portals not connecting caused by picking opposite portal direction (on an edge above or below) when building mesh adjacency.
This fixes issues seen in stairs where the stair corridor can be blocked by a hard edges when edges between layers do not match perfectly.
#rb mikko.mononen

[CL 33184707 by aris theophanidis in ue5-main branch]
2024-04-23 19:13:50 -04:00