unreal.RecastNavMesh

class unreal.RecastNavMesh(outer=None, name='None')

Bases: unreal.NavigationData

LWC_TODO_AI: Many of the virtual methods and members should be changed from float to FVector::FReal. Not for 5.0!

C++ Source:

  • Module: NavigationSystem

  • File: RecastNavMesh.h

Editor Properties: (see get_editor_property/set_editor_property)

  • actor_guid (Guid): [Read-Write] Actor Guid: The GUID for this actor.

    Note: Don’t use VisibleAnywhere here to avoid getting the CPF_Edit flag and get this property reset when resetting to defaults.

    See FActorDetails::AddActorCategory and EditorUtilities::CopySingleProperty for details.

  • agent_height (float): [Read-Write] Agent Height: Size of the tallest agent that will path with this navmesh.

  • agent_max_slope (float): [Read-Write] Agent Max Slope: The maximum slope (angle) that the agent can move on.

  • agent_max_step_height (float): [Read-Write] Agent Max Step Height: Largest vertical step the agent can perform

  • agent_radius (float): [Read-Write] Agent Radius: Radius of smallest agent to traverse this navmesh

  • allow_tick_before_begin_play (bool): [Read-Write] Allow Tick Before Begin Play: Whether we allow this Actor to tick before it receives the BeginPlay event. Normally we don’t tick actors until after BeginPlay; this setting allows this behavior to be overridden. This Actor must be able to tick for this setting to be relevant.

  • always_relevant (bool): [Read-Write] Always Relevant: Always relevant for network (overrides bOnlyRelevantToOwner).

  • auto_destroy_when_finished (bool): [Read-Write] Auto Destroy when Finished: If true then destroy self when “finished”, meaning all relevant components report that they are done and no timelines or timers are in flight.

  • auto_destroy_when_no_navigation (bool): [Read-Write] Auto Destroy when No Navigation: Should this instance auto-destroy when there’s no navigation system on

    world when it gets created/loaded

  • auto_receive_input (AutoReceiveInput): [Read-Write] Auto Receive Input: Automatically registers this actor to receive input from a player.

  • block_input (bool): [Read-Write] Block Input: If true, all input on the stack below this actor will not be considered

  • call_pre_replication (bool): [Read-Write] Call Pre Replication

  • call_pre_replication_for_replay (bool): [Read-Write] Call Pre Replication for Replay

  • can_be_damaged (bool): [Read-Write] Can be Damaged: Whether this actor can take damage. Must be true for damage events (e.g. ReceiveDamage()) to be called. see: https://www.unrealengine.com/blog/damage-in-ue4 see: TakeDamage(), ReceiveDamage()

  • can_be_in_cluster (bool): [Read-Write] Can be in Cluster: If true, this actor can be put inside of a GC Cluster to improve Garbage Collection performance

  • can_be_main_nav_data (bool): [Read-Write] Can be Main Nav Data: If set, navigation data can act as default one in navigation system’s queries

  • can_spawn_on_rebuild (bool): [Read-Only] Can Spawn on Rebuild: If set, navigation data will be spawned in persistent level during rebuild if actor doesn’t exist

  • cell_height (float): [Read-Write] Cell Height: vertical size of voxelization cell

  • cell_size (float): [Read-Write] Cell Size: horizontal size of voxelization cell

  • custom_time_dilation (float): [Read-Write] Custom Time Dilation: Allow each actor to run at a different time speed. The DeltaTime for a frame is multiplied by the global TimeDilation (in WorldSettings) and this CustomTimeDilation for this actor’s tick.

  • data_layers (Array(ActorDataLayer)): [Read-Write] Data Layers: DataLayers the actor belongs to.

  • default_update_overlaps_method_during_level_streaming (ActorUpdateOverlapsMethod): [Read-Only] Default Update Overlaps Method During Level Streaming: Default value taken from config file for this class when ‘UseConfigDefault’ is chosen for ‘UpdateOverlapsMethodDuringLevelStreaming’. This allows a default to be chosen per class in the matching config. For example, for Actor it could be specified in DefaultEngine.ini as:

    [/Script/Engine.Actor] DefaultUpdateOverlapsMethodDuringLevelStreaming = OnlyUpdateMovable

    Another subclass could set their default to something different, such as:

    [/Script/Engine.BlockingVolume] DefaultUpdateOverlapsMethodDuringLevelStreaming = NeverUpdate see: UpdateOverlapsMethodDuringLevelStreaming

  • do_fully_async_nav_data_gathering (bool): [Read-Write] Do Fully Async Nav Data Gathering: if set, navmesh data gathering will never happen on the game thread and will only be done on background threads

  • draw_clusters (bool): [Read-Write] Draw Clusters: Draw navmesh’s clusters and cluster links. (Requires WITH_NAVMESH_CLUSTER_LINKS=1)

  • draw_default_polygon_cost (bool): [Read-Write] Draw Default Polygon Cost: Draw a label for every poly that indicates its default and fixed costs

  • draw_failed_nav_links (bool): [Read-Write] Draw Failed Nav Links

  • draw_filled_polys (bool): [Read-Write] Draw Filled Polys: if disabled skips filling drawn navmesh polygons

  • draw_labels_on_path_nodes (bool): [Read-Write] Draw Labels on Path Nodes

  • draw_marked_forbidden_polys (bool): [Read-Write] Draw Marked Forbidden Polys

  • draw_nav_links (bool): [Read-Write] Draw Nav Links

  • draw_nav_mesh_edges (bool): [Read-Write] Draw Nav Mesh Edges: Draw border-edges

  • draw_octree (bool): [Read-Write] Draw Octree: Draw edges of every navmesh’s triangle

  • draw_octree_details (bool): [Read-Write] Draw Octree Details

  • draw_offset (float): [Read-Write] Draw Offset: vertical offset added to navmesh’s debug representation for better readability

  • draw_path_colliding_geometry (bool): [Read-Write] Draw Path Colliding Geometry: Draw input geometry passed to the navmesh generator. Recommend disabling other geometry rendering via viewport showflags in editor.

  • draw_poly_edges (bool): [Read-Write] Draw Poly Edges: Draw edges of every poly (i.e. not only border-edges)

  • draw_polygon_flags (bool): [Read-Write] Draw Polygon Flags: Draw a label for every poly that indicates its poly and area flags

  • draw_polygon_labels (bool): [Read-Write] Draw Polygon Labels: Draw a label for every poly that indicates its poly and tile indices

  • draw_tile_bounds (bool): [Read-Write] Draw Tile Bounds: Draw the tile boundaries

  • draw_tile_labels (bool): [Read-Write] Draw Tile Labels

  • draw_triangle_edges (bool): [Read-Write] Draw Triangle Edges: Draw edges of every navmesh’s triangle

  • enable_auto_lod_generation (bool): [Read-Write] Enable Auto LODGeneration: Whether this actor should be considered or not during HLOD generation.

  • enable_drawing (bool): [Read-Write] Enable Drawing: if set to true then this navigation data will be drawing itself when requested as part of “show navigation”

  • filter_low_span_from_tile_cache (bool): [Read-Write] Filter Low Span from Tile Cache: if set, only low height spans with corresponding area modifier will be stored in tile cache (reduces memory, can’t modify without full tile rebuild)

  • filter_low_span_sequences (bool): [Read-Write] Filter Low Span Sequences: if set, only single low height span will be allowed under valid one

  • find_camera_component_when_view_target (bool): [Read-Write] Find Camera Component when View Target: If true, this actor should search for an owned camera component to view through when used as a view target.

  • fixed_tile_pool_size (bool): [Read-Write] Fixed Tile Pool Size: if true, the NavMesh will allocate fixed size pool for tiles, should be enabled to support streaming

  • force_rebuild_on_load (bool): [Read-Write] Force Rebuild on Load: By default navigation will skip the first update after being successfully loaded setting bForceRebuildOnLoad to false can override this behavior

  • generate_overlap_events_during_level_streaming (bool): [Read-Write] Generate Overlap Events During Level Streaming: If true, this actor will generate overlap Begin/End events when spawned as part of level streaming, which includes initial level load. You might enable this is in the case where a streaming level loads around an actor and you want Begin/End overlap events to trigger. see: UpdateOverlapsMethodDuringLevelStreaming

  • heuristic_scale (float): [Read-Write] Heuristic Scale: Euclidean distance heuristic scale used while pathfinding

  • hidden (bool): [Read-Write] Hidden: Allows us to only see this Actor in the Editor, and not in the actual game. see: SetActorHiddenInGame()

  • hlod_layer (HLODLayer): [Read-Write] HLODLayer: The UHLODLayer in which this actor should be included.

  • ignores_origin_shifting (bool): [Read-Write] Ignores Origin Shifting: Whether this actor should not be affected by world origin shifting.

  • initial_life_span (float): [Read-Write] Initial Life Span: How long this Actor lives before dying, 0=forever. Note this is the INITIAL value and should not be modified once play has begun.

  • input_priority (int32): [Read-Write] Input Priority: The priority of this input component when pushed in to the stack.

  • instigator (Pawn): [Read-Write] Instigator: Pawn responsible for damage and other gameplay events caused by this actor.

  • is_editor_only_actor (bool): [Read-Write] Is Editor Only Actor: Whether this actor is editor-only. Use with care, as if this actor is referenced by anything else that reference will be NULL in cooked builds

  • is_spatially_loaded (bool): [Read-Write] Is Spatially Loaded: Determine if this actor is spatially loaded when placed in a partitioned world.

    If true, this actor will be loaded when in the range of any streaming sources and if (1) in no data layers, or (2) one or more of its data layers are enabled. If false, this actor will be loaded if (1) in no data layers, or (2) one or more of its data layers are enabled.

  • is_world_partitioned (bool): [Read-Write] Is World Partitioned: In a world partitioned map, is this navmesh using world partitioning

  • layer_chunk_splits (int32): [Read-Write] Layer Chunk Splits: number of chunk splits (along single axis) used for layer’s partitioning: ChunkyMonotone

  • layer_partitioning (RecastPartitioning): [Read-Write] Layer Partitioning: partitioning method for creating tile layers

  • layers (Array(Name)): [Read-Write] Layers: Layers the actor belongs to. This is outside of the editoronly data to allow hiding of LD-specified layers at runtime for profiling.

  • mark_low_height_areas (bool): [Read-Write] Mark Low Height Areas: mark areas with insufficient free height above instead of cutting them out (accessible only for area modifiers using replace mode)

  • max_simplification_error (float): [Read-Write] Max Simplification Error: How much navigable shapes can get simplified - the higher the value the more freedom

  • max_simultaneous_tile_generation_jobs_count (int32): [Read-Write] Max Simultaneous Tile Generation Jobs Count: Sets the limit for number of asynchronous tile generators running at one time, also used for some synchronous tasks

  • merge_region_size (float): [Read-Write] Merge Region Size: The size limit of regions to be merged with bigger regions (watershed partitioning only)

  • min_net_update_frequency (float): [Read-Write] Min Net Update Frequency: Used to determine what rate to throttle down to when replicated properties are changing infrequently

  • min_region_area (float): [Read-Write] Min Region Area: The minimum dimension of area. Areas smaller than this will be discarded

  • nav_mesh_origin_offset (Vector): [Read-Write] Nav Mesh Origin Offset: Use this if you don’t want your tiles to start at (0,0,0)

  • net_cull_distance_squared (float): [Read-Write] Net Cull Distance Squared: Square of the max distance from the client’s viewpoint that this actor is relevant and will be replicated.

  • net_dormancy (NetDormancy): [Read-Write] Net Dormancy: Dormancy setting for actor to take itself off of the replication list without being destroyed on clients.

  • net_load_on_client (bool): [Read-Write] Net Load on Client: This actor will be loaded on network clients during map load

  • net_priority (float): [Read-Write] Net Priority: Priority for this actor when checking for replication in a low bandwidth or saturated situation, higher priority means it is more likely to replicate

  • net_update_frequency (float): [Read-Write] Net Update Frequency: How often (per second) this actor will be considered for replication, used to determine NetUpdateTime

  • net_use_owner_relevancy (bool): [Read-Write] Net Use Owner Relevancy: If actor has valid Owner, call Owner’s IsNetRelevantFor and GetNetPriority

  • observed_paths_tick_interval (float): [Read-Write] Observed Paths Tick Interval: all observed paths will be processed every ObservedPathsTickInterval seconds

  • on_actor_begin_overlap (ActorBeginOverlapSignature): [Read-Write] On Actor Begin Overlap: Called when another actor begins to overlap this actor, for example a player walking into a trigger. For events when objects have a blocking collision, for example a player hitting a wall, see ‘Hit’ events. note: Components on both this and the other Actor must have bGenerateOverlapEvents set to true to generate overlap events.

  • on_actor_end_overlap (ActorEndOverlapSignature): [Read-Write] On Actor End Overlap: Called when another actor stops overlapping this actor. note: Components on both this and the other Actor must have bGenerateOverlapEvents set to true to generate overlap events.

  • on_actor_hit (ActorHitSignature): [Read-Write] On Actor Hit: Called when this Actor hits (or is hit by) something solid. This could happen due to things like Character movement, using Set Location with ‘sweep’ enabled, or physics simulation. For events when objects overlap (e.g. walking into a trigger) see the ‘Overlap’ event. note: For collisions during physics simulation to generate hit events, ‘Simulation Generates Hit Events’ must be enabled.

  • on_begin_cursor_over (ActorBeginCursorOverSignature): [Read-Write] On Begin Cursor Over: Called when the mouse cursor is moved over this actor if mouse over events are enabled in the player controller.

  • on_clicked (ActorOnClickedSignature): [Read-Write] On Clicked: Called when the left mouse button is clicked while the mouse is over this actor and click events are enabled in the player controller.

  • on_destroyed (ActorDestroyedSignature): [Read-Write] On Destroyed: Event triggered when the actor has been explicitly destroyed.

  • on_end_cursor_over (ActorEndCursorOverSignature): [Read-Write] On End Cursor Over: Called when the mouse cursor is moved off this actor if mouse over events are enabled in the player controller.

  • on_end_play (ActorEndPlaySignature): [Read-Write] On End Play: Event triggered when the actor is being deleted or removed from a level.

  • on_input_touch_begin (ActorOnInputTouchBeginSignature): [Read-Write] On Input Touch Begin: Called when a touch input is received over this actor when touch events are enabled in the player controller.

  • on_input_touch_end (ActorOnInputTouchEndSignature): [Read-Write] On Input Touch End: Called when a touch input is received over this component when touch events are enabled in the player controller.

  • on_input_touch_enter (ActorBeginTouchOverSignature): [Read-Write] On Input Touch Enter: Called when a finger is moved over this actor when touch over events are enabled in the player controller.

  • on_input_touch_leave (ActorEndTouchOverSignature): [Read-Write] On Input Touch Leave: Called when a finger is moved off this actor when touch over events are enabled in the player controller.

  • on_released (ActorOnReleasedSignature): [Read-Write] On Released: Called when the left mouse button is released while the mouse is over this actor and click events are enabled in the player controller.

  • on_take_any_damage (TakeAnyDamageSignature): [Read-Write] On Take Any Damage: Called when the actor is damaged in any way.

  • on_take_point_damage (TakePointDamageSignature): [Read-Write] On Take Point Damage: Called when the actor is damaged by point damage.

  • on_take_radial_damage (TakeRadialDamageSignature): [Read-Write] On Take Radial Damage: Called when the actor is damaged by radial damage.

  • only_relevant_to_owner (bool): [Read-Write] Only Relevant to Owner: If true, this actor is only relevant to its owner. If this flag is changed during play, all non-owner channels would need to be explicitly closed.

  • optimize_bp_component_data (bool): [Read-Write] Optimize BPComponent Data: Whether to cook additional data to speed up spawn events at runtime for any Blueprint classes based on this Actor. This option may slightly increase memory usage in a cooked build.

  • perform_voxel_filtering (bool): [Read-Write] Perform Voxel Filtering: controls whether voxel filtering will be applied (via FRecastTileGenerator::ApplyVoxelFilter).

    Results in generated navmesh better fitting navigation bounds, but hits (a bit) generation performance

  • pivot_offset (Vector): [Read-Write] Pivot Offset: Local space pivot offset for the actor, only used in the editor

  • poly_ref_nav_poly_bits (int32): [Read-Only] Poly Ref Nav Poly Bits

  • poly_ref_salt_bits (int32): [Read-Only] Poly Ref Salt Bits

  • poly_ref_tile_bits (int32): [Read-Only] Poly Ref Tile Bits

  • primary_actor_tick (ActorTickFunction): [Read-Write] Primary Actor Tick: Primary Actor tick function, which calls TickActor(). Tick functions can be configured to control whether ticking is enabled, at what time during a frame the update occurs, and to set up tick dependencies. see: https://docs.unrealengine.com/API/Runtime/Engine/Engine/FTickFunction see: AddTickPrerequisiteActor(), AddTickPrerequisiteComponent()

  • region_chunk_splits (int32): [Read-Write] Region Chunk Splits: number of chunk splits (along single axis) used for region’s partitioning: ChunkyMonotone

  • region_partitioning (RecastPartitioning): [Read-Write] Region Partitioning: partitioning method for creating navmesh polys

  • relevant_for_level_bounds (bool): [Read-Write] Relevant for Level Bounds: If true, this actor’s component’s bounds will be included in the level’s bounding box unless the Actor’s class has overridden IsLevelBoundsRelevant

  • replay_rewindable (bool): [Read-Write] Replay Rewindable: If true, this actor will only be destroyed during scrubbing if the replay is set to a time before the actor existed. Otherwise, RewindForReplay will be called if we detect the actor needs to be reset. Note, this Actor must not be destroyed by gamecode, and RollbackViaDeletion may not be used.

  • replicate_movement (bool): [Read-Write] Replicate Movement: If true, replicate movement/location related properties. Actor must also be set to replicate. see: SetReplicates() see: https://docs.unrealengine.com/InteractiveExperiences/Networking/Actors

  • replicated_movement (RepMovement): [Read-Write] Replicated Movement: Used for replication of our RootComponent’s position and velocity

  • replicates (bool): [Read-Write] Replicates: If true, this actor will replicate to remote machines see: SetReplicates()

  • root_component (SceneComponent): [Read-Write] Root Component: The component that defines the transform (location, rotation, scale) of this Actor in the world, all other components must be attached to this one somehow

  • runtime_generation (RuntimeGenerationType): [Read-Write] Runtime Generation: Navigation data runtime generation options

  • runtime_grid (Name): [Read-Write] Runtime Grid: Determine in which partition grid this actor will be placed in the partition (if the world is partitioned). If None, the decision will be left to the partition.

  • sort_navigation_areas_by_cost (bool): [Read-Write] Sort Navigation Areas by Cost: Controls whether Navigation Areas will be sorted by cost before application

    to navmesh during navmesh generation. This is relevant when there are areas overlapping and we want to have area cost express area relevancy as well. Setting it to true will result in having area sorted by cost, but it will also increase navmesh generation cost a bit

  • spawn_collision_handling_method (SpawnActorCollisionHandlingMethod): [Read-Write] Spawn Collision Handling Method: Controls how to handle spawning this actor in a situation where it’s colliding with something else. “Default” means AlwaysSpawn here.

  • sprite_scale (float): [Read-Write] Sprite Scale: The scale to apply to any billboard components in editor builds (happens in any WITH_EDITOR build, including non-cooked games).

  • tags (Array(Name)): [Read-Write] Tags: Array of tags that can be used for grouping and categorizing.

  • tile_generation_debug (RecastNavMeshTileGenerationDebug): [Read-Write] Tile Generation Debug

  • tile_number_hard_limit (int32): [Read-Write] Tile Number Hard Limit: Absolute hard limit to number of navmesh tiles. Be very, very careful while modifying it while

    having big maps with navmesh. A single, empty tile takes 176 bytes and empty tiles are allocated up front (subject to change, but that’s where it’s at now)

    note: TileNumberHardLimit is always rounded up to the closest power of 2

  • tile_pool_size (int32): [Read-Write] Tile Pool Size: maximum number of tiles NavMesh can hold

  • tile_size_uu (float): [Read-Write] Tile Size UU: size of single tile, expressed in uu

  • update_overlaps_method_during_level_streaming (ActorUpdateOverlapsMethod): [Read-Write] Update Overlaps Method During Level Streaming: Condition for calling UpdateOverlaps() to initialize overlap state when loaded in during level streaming. If set to ‘UseConfigDefault’, the default specified in ini (displayed in ‘DefaultUpdateOverlapsMethodDuringLevelStreaming’) will be used. If overlaps are not initialized, this actor and attached components will not have an initial state of what objects are touching it, and overlap events may only come in once one of those objects update overlaps themselves (for example when moving). However if an object touching it does initialize state, both objects will know about their touching state with each other. This can be a potentially large performance savings during level loading and streaming, and is safe if the object and others initially overlapping it do not need the overlap state because they will not trigger overlap notifications.

    Note that if ‘bGenerateOverlapEventsDuringLevelStreaming’ is true, overlaps are always updated in this case, but that flag determines whether the Begin/End overlap events are triggered. see: bGenerateOverlapEventsDuringLevelStreaming, DefaultUpdateOverlapsMethodDuringLevelStreaming, GetUpdateOverlapsMethodDuringLevelStreaming()

  • use_extra_top_cell_when_marking_areas (bool): [Read-Write] Use Extra Top Cell when Marking Areas: Expand the top of the area nav modifier’s bounds by one cell height when applying to the navmesh.

    If unset, navmesh on top of surfaces might not be marked by marking bounds flush with top surfaces (since navmesh is generated slightly above collision, depending on cell height).

  • vertical_deviation_from_ground_compensation (float): [Read-Write] Vertical Deviation from Ground Compensation: Value added to each search height to compensate for error between navmesh polys and walkable geometry

k2_replace_area_in_tile_bounds(bounds, old_area, new_area, replace_links=True) bool
Parameters
Returns

true if any polygon/link has been touched

Return type

bool