Commit Graph

103 Commits

Author SHA1 Message Date
yoan stamant
a4736b5de8 [NavigationSystem] removed some client specific code from delegates listeners and let the code rely on the presence of the navigation system/repository so all flows are consistent. Replaced recently added IsNavigationAllowed by virtual method 'ShouldCreateNavigationSystemInstance' to allow Navigation configs to know if an instance should be created or not.
#jira UE-222706
#rb Maxime.Mercier, Mieszko.Zielinski

[CL 35869701 by yoan stamant in ue5-main branch]
2024-08-28 11:39:15 -04:00
yoan stamant
e8424494e8 [NavigationSystem] do not create repository on client if navigation is not allowed
#rb Maxime.Mercier

[CL 35804885 by yoan stamant in ue5-main branch]
2024-08-26 14:14:13 -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
frederic doll
b9ae65954d Change NavigationData::Raycast signature to know if the ray end is located on the ray corridor
#rb Aris.Theophanidis

[CL 35438869 by frederic doll in ue5-main branch]
2024-08-09 18:41:09 -04:00
yoan stamant
797b16e72a [AINavigation] Converted ENavigationOptionFlag and ENavigationDirtyFlag to enum classes
#rb Mieszko.Zielinski

[CL 34704470 by yoan stamant in ue5-main branch]
2024-06-27 07:18:41 -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
robert seiver
c26dedd143 When in the editor with a World Partitioned map, only build the nav mesh inside of loaded areas
#rb Aris.Theophanidis

[CL 34040972 by robert seiver in ue5-main branch]
2024-05-31 15:46:06 -04:00
frederic doll
17e15a079b Extract loop that notify the navigation data about which invokers are currently active
#rb Aris.Theophanidis

[CL 33829475 by frederic doll in ue5-main branch]
2024-05-22 10:42:58 -04:00
yoan stamant
98931f0c5a [NavigationSystem] updated some method display names to be consistent with other BP exposed functions
#jira UE-209508

#rb mikko.mononen

[CL 32470811 by yoan stamant in ue5-main branch]
2024-03-25 11:16:30 -04:00
yoan stamant
9722c0198a [Navigation] Replaced custom NavLink static registration queue by a new world subsystem that will also store NavRelevantObject that are not AActor/UActorComponent based.
This change allow new NavigationSystem created after initial map load (e.g. ANavSystemConfigOverride) to properly recreate its custom nav link mappings and octree.
#rb Aris.Theophanidis, mikko.mononen, robert.seiver

[CL 31733116 by yoan stamant in ue5-main branch]
2024-02-22 15:44:43 -05:00
aris theophanidis
787de6ac2f Remove usage of CoreMinimal.h from navigation modules
Removed few other includes as well
#rb Yoan.StAmant

[CL 30692362 by aris theophanidis in ue5-main branch]
2024-01-18 14:35:13 -05:00
aris theophanidis
1b845cc9c3 Improvements in navigation includes
Removing Actor.h from NavigationTypes.h
Removing NavigationQueryFilter.h when unnecessary in headers
And additional non-unity build fixes
#rb Maxime.Mercier

[CL 30621909 by aris theophanidis in ue5-main branch]
2024-01-15 13:31:49 -05:00
frederic doll
e5ec641dc9 Add a way to register a Navigation Invoker based on UObject with a INavigationInvokerInterface instead of an AActor.
#rb Aris.Theophanidis

[CL 29887626 by frederic doll in ue5-main branch]
2023-11-22 09:29:32 -05:00
yoan stamant
7a102e17b3 [Navigation]
- Added flag in FNavigationRelevantData to indicates elements that want to skip dirty areas when added/removed from the NavigationOctree.
- Method ShouldSkipDirtyAreaOnAddOrRemove has been added to INavRelevantInterface to control the flag.
- UpdateNavOctreeElementBounds now takes a list of dirty areas instead of a single area to allow batched modifications.

UInstancedStaticMeshComponent updates:
- Added a cache for navigation bounds
- Implements ShouldSkipDirtyAreaOnAddOrRemove so we don't dirty the whole area covered by the instances on registration but only a list of explicit areas using the instances.
- Added PartialNavigationUpdates for batched modifications
- Fixed partial update not sending the right area for the original position
#rb aris.theophanidis
#rb mikko.mononen
#rb mieszko.zielinski
#jira UE-195210#preflight 653bd451cc4d2d32203134e5

[CL 29185555 by yoan stamant in ue5-main branch]
2023-10-27 12:18:00 -04:00
aris theophanidis
14c8876b52 [Navigation] When updating invokers, use 3D invoker seed locations to compare against the maximum seed distance.
Update InvokersSeedBounds with the vertical limits as well.
#rb Mikko.Mononen

[CL 29067434 by aris theophanidis in ue5-main branch]
2023-10-25 00:57:52 -04:00
aris theophanidis
916eacf5b3 Addition of the average tile generation count per second in LogNavigationHistory.
#rb Stephen.Holmes

[CL 28090737 by aris theophanidis in ue5-main branch]
2023-09-21 12:41:35 -04:00
panos grigoropoulos
61749458fb Add camera location to invoker seed locations when the pawn is null so nav mesh is not removed in cases where the player camera is near the invoker but the player pawn has been destroyed.
[CL 27829426 by panos grigoropoulos in ue5-main branch]
2023-09-13 09:59:02 -04:00
aris theophanidis
a4ed8604ca Improve FRecastNavMeshGenerator::MarkDirtyTiles speed by prefiltering dirty area bounds using the bounds of invokers seeds.
Also added some profile tags in MarkDirtyTiles.
#rb Yoan.StAmant

[CL 27049453 by aris theophanidis in ue5-main branch]
2023-08-11 18:04:18 -04:00
yoan stamant
b6f974cc30 [NavigationSystem] replaced requirement of PrimitiveComponent by INavRelevantInterface + UObject.
Added dedicated delegates for UObject based registration and update.
#rb maxime.mercier
#rb aris.theophanidis
#jira UE-186525

[CL 26981216 by yoan stamant in ue5-main branch]
2023-08-09 20:35:21 -04:00
aris theophanidis
dcdd05e34a Addition of InvokersMaximumDistanceFromSeed allowing to restrict invokers updating far from seed points (player positions by default).
#rb Yoan.StAmant

[CL 26645687 by aris theophanidis in ue5-main branch]
2023-07-27 13:08:25 -04:00
henrik karlsson
5db685f97d [Engine]
* Moved dllexport from type to methods/staticvar in all Engine runtime code. This improves compile times, memory and performance in dll builds

[CL 26082269 by henrik karlsson in ue5-main branch]
2023-06-17 18:13:06 -04:00
aris theophanidis
ccff6bbade [Navmesh] Addition of tile generation history and stats when LogNavigationHistory is set to Log.
#rb Mieszko.Zielinski

[CL 26012395 by aris theophanidis in ue5-main branch]
2023-06-15 09:37:15 -04:00
kirill zorin
de8db5ff76 Converting ARO-facing raw pointers to TObjectPtr ahead of raw pointer ARO API deprecation.
#rb zousar.shaker
#rb markus.breyer
#rb robert.manuszewski

#preflight 646391406b1406b54ab15460

[CL 25489627 by kirill zorin in ue5-main branch]
2023-05-16 10:52:49 -04:00
stephen holmes
786295dcb5 NavLinkId deprecation moved to 5.3 from 5.4
[REVIEW] trivial
#preflight 645b550c4c3ec54e6eaafa30

[CL 25401802 by stephen holmes in ue5-main branch]
2023-05-10 06:54:14 -04:00
aris theophanidis
e6e1bbb3ba [Navmesh] Addition of invoker priorities
#rb Mikko.Mononen
#preflight 645951366534a4f504d98f0d

[CL 25382949 by aris theophanidis in ue5-main branch]
2023-05-08 22:04:12 -04:00