NavigationPoint
See also NavigationPoint (UT) for the Unreal Tournament class.
Children of this class form the bot AI navigation system. During the compilation process, two navigation points get linked by paths if one of them is in the line of view of a bot which is located at the position of the other one and the bot could go there at least in one direction. Each Pickup and PlayerStart has its own NavigationPoint. The most common NavigationPoints are the PathNodes which simply are NavigationPoints which have a texture which makes it possible to put them in a map where the PathNodes build the backbone of the maps navigation system.
See the super topic page Artificial Intelligence, and the Bot Support and Bot Pathing pages for a technical overview.
Properties
NavigationPoint Group
- bool bAlwaysUseStrafing
- Shouldn't use bAdvancedTactics going to this point.
- bool bBlocked
- This path is currently unuseable.
- bool bNeverUseStrafing
- Shouldn't use bAdvancedTactics going to this point.
- bool bOneWayPath
- Reachspecs from this path only in the direction the path is facing. (180 degrees)
- bool bPropagatesSound
- This navigation point can be used for sound propagation. (around corners)
- int ExtraCost
- Extra weight added by level designer. Use this property to let the bots think a path is longer than it actually is.
- name ForcedPaths[4]
- List of names of NavigationPoints which should always be connected from this path.
- name ProscribedPaths[4]
- List of names of NavigationPoints which should never be connected from this path.
UT2004:
- bool bNoSuperSize
- Hack for Leviathans, which pretend to be smaller than they really are to use the path network - this forces them not to use a path
- bool bVehicleDestination
- If true, forced paths to this node will have max width to accomodate vehicles
- bool bMakeSourceOnly
- When building paths, this navigation point will only act as a source, i.e. there are only paths away from it and none towards it.
Hidden
- bool bAutoBuilt (const)
- Placed during execution of "PATHS BUILD".
- bool bDestinationOnly
- Used by path building – means no automatically generated paths are sourced from this node.
- bool bEndPoint (transient)
- used by C++ navigation code
- int bestPathWeight (const)
- bool bForceNoStrafing (const)
- Override any level designer changes to bNeverUseStrafing.
- bool bMustBeReachable
- Used for PathReview code.
- bool bNoAutoConnect
- Don't connect this path to others except with special conditions. (used by LiftCenter, for example)
- bool bNotBased (const)
- Used by path builder – if true, no error is reported if node doesn't have a valid base.
- bool bPathsChanged (const)
- Used for incremental path rebuilding in the editor.
- bool bSourceOnly
- Used by path building – means this node is not the destination of any automatically generated path.
- bool bSpecialForced
- Paths that are forced should call the SpecialCost() and SuggestMovePreparation() functions.
- bool bSpecialMove
- If true, pawn will call SuggestMovePreparation() when moving toward this node.
- bool bTransientEndPoint (transient)
- Set right before a path finding attempt, cleared afterward.
- int cost
- Added cost to visit this pathnode.
- int FearCost (transient)
- Extra weight diminishing over time. (used for example, to mark path where bot died)
- Pickup InventoryCache
- Used to point to dropped weapons.
- float InventoryDist
- NavigationPoint nextNavigationPoint (const)
- NavigationPoint nextOrdered (const)
- for internal use during route searches
- array<ReachSpec> PathList (const)
- Index of reachspecs. (used by C++ Navigation code)
- NavigationPoint previousPath (const)
- NavigationPoint prevOrdered (const)
- for internal use during route searches
- bool taken
- Set when a creature is occupying this spot
- int TransientCost (transient)
- Added right before a path finding attempt, cleared afterward.
- int visitedWeight
UT2004:
- bool bFlyingPreferred
- Preferred by flying creatures
- bool bForcedOnly
- Only connect forced paths to this NavigationPoint
- bool bBlockable
- True if path can become blocked (used by pruning during path building)
- bool bMayCausePain
- Set in C++ if in PhysicsVolume that may cause pain
- bool bReceivePlayerToucherDiedNotify
- bool bAlreadyVisited
- Internal use (Used in path building?)
- byte BaseVisible[2]
- Used by some team game types – whether this point is visible from red/blue base or defense points
- float LastDetourWeight (const)
- float BaseDist[2]
- Used by some team game types – distance to red/blue base
- bool bCanReach (transient)
- Used during paths review in editor
- bool bHideEditorPaths (transient)
- Don't show paths to this node in the editor
- vector MaxPathSize
- Maximum distance to any other navigation point on the map.
Methods
Inherited from Actor
- PostBeginPlay ( )
- Ensures that ExtraCost is greater than 0. UT2004: Sets MaxPathSize.
New Methods
- bool Accept (Actor Incoming, Actor Source) [event]
- Accept an actor that has teleported in. Used for random spawning and initial placement of creatures.
- float DetourWeight (Pawn Other, float PathWeight) [event]
- Value of this path to take a quick detour. (usually 0, used when on route to distant objective, but want to grab inventory for example)
- MoverClosed ( )
- Used by NavigationPoints associated with movers.
- MoverOpened ( )
- Used by NavigationPoints associated with movers.
- bool ProceedWithMove (Pawn Other)
- Called by Controller to see if move is now possible when a mover reports to the waiting pawn that it has completed its move.
- int SpecialCost (Pawn Seeker, ReachSpec Path) [event]
- bool SuggestMovePreparation (Pawn Other) [event]
- Optionally tell Pawn any special instructions to prepare for moving to this goal. (called by Pawn.PrepareForMove() if this node's bSpecialMove==true)
UT2004
- SetBaseDistance (int BaseNum) [native, final]
- (set BaseDist property?)
- SetBaseVisibility (int BaseNum)
- Go through all NavigationPoints in the level and set their BaseVisible properties depending on whether the BaseNum base can be seen from that point.
- PlayerToucherDied (Pawn P)
- Called when a pawn which was touching this NavigationPoint dies (Needed for HoldObjectives)
Known Subclasses
NavigationPoint +- AssaultPath +- BlockedPath +- Door | +- AutoDoor? +- JumpDest | +- JumpSpot | +- GameObjective | +- ASOBJ EnergyCore Spawn (UT2004 only) | +- CTFBase | | +- xRealCTFBase | | +- xBlueFlagBase | | +- xRedFlagBase | +- DestroyableObjective | +- DestroyableObjective SM (UT2004 only) | +- ONSPowerCore? (UT2004 only) | +- ONSPowerCoreBlue? | +- ONSPowerCoreRed? | +- ONSPowerNode? | +- ONSPowerNodeNeutral | +- DominationPoint | | +- xDomPoint | | +- xDomPointA | | +- xDomPointB | +- LockedObjective (UT2003 only) | +- ProximityObjective? (UT2004 only) | +- ASOBJ EnergyCore Delivery | +- HoldObjective | +- LockedObjective | +- UseObjective | +- TriggeredObjective | +- xBombDelivery | +- xBombSpawn +- JumpPad | +- UTJumpPad +- LiftCenter +- LiftExit +- PathNode | +- FlyingPathNode (UT2004) | +- RoadPathNode (UT2004) | +- HoverPathNode? (UT2004) | +- SpecialVehicleObjective (UT2004) +- ShootSpot | +- BlueShootSpot | +- RedShootSpot +- SmallNavigationPoint (abstract, no additional properties) +- AIMarker? +- InventorySpot +- Ladder | +- AutoLadder? +- PlayerStart | +- TriggeredPlayerStart | +- xFieldPlayerStart? +- Teleporter +- WarpZoneMarker?
Related Topics
- Topics on Mapping
- Bot Support – Main hub for bot support
- Bot Pathing – Concepts and elements of the bot path network
- Basic Bot Pathing – A tutorial on basic bot pathing
- Strategic Bots – Advanced bot support
- Bot Mind – Understanding the bots
- Testing Botplay – Ensuring reliable bot support
- Bot Pathing – Concepts and elements of the bot path network
- Placing PlayerStart
- Inventory Item Placement
- Map Design
Category Class (UT2003)
Category Class (UT2004)
Category Class Tree
Category Mapping