|
NavigationPoint Class Reference: by BlackSway
Last Updated
2 April, 2002
|
|
AlarmPoint | AmbushPoint
| ButtonMarker | HomeBase
| InventorySpot | LiftCenter
| LiftExit | PathNode
| PatrolPoint | PlayerStart
| QueenDest | SpawnPoint
| Teleporter | FavoritesTeleporter
| Transporter | TriggerMarker
| WarpZoneMarker
AlternatePath | DefensePoint
| AssaultRandomiser | BlockedPath
| ControlPoint | FlagBase
| JumpSpot | PainPath
| TranslocDest | TranslocStart
| VisibleTeleporter
|
| |
| Introduction |
|
I would first like to point out that this reference is aimed directly
at level designers, and is not intended as a guide to the UnrealScript
behind these objects. However to learn more about these objects
I did frequently delve behind the scenes. So if you wish to converse
about the script then feel free to e:mail
me or catch me on #unreality.
A lot of this stuff in here will be very woolly, as most of it
has to do with path determination and complicated features which
I have yet to understand!
First a bit of jargon:
- Actor: any object within the game, including brushes, triggers,
weapons and players
- Pawn: any moving creature, including monsters, players and bots
- Player: just real-life players
- ScriptedPawn: basically just monsters
- Touch or Bump: means this mover is triggered by a pawn running
into its collision cylinder (formed from the collision radius
and collision height)
- Event: some movers use the Event field to trigger another event
- Tag: the name of the mover
|
| |
| NavigationPoint |
|
First a bit about navigation points in general.
Navigation points are used by the unreal engine to help players,
monsters and bots navigate around levels. They can get a bit complicated
so I will describe what they are used for (with some examples where
appropriate) but not how they work.
Most of the parameters described here have no effect until you
get to the sub-classes.
N.B. just to confuse matters further there are slight differences
between NavigationPoint in Unreal and Unreal Tournament. Oh joy!
|
|
OwnerTeam:
ExtraCost:
Any extra cost involved in moving along this
path
bPlayerOnly:
Only players (and this I think includes bots)
should use this path
bOneWayPath:
The path is only a one way path. You’ll need
to set bDirectional to true for this to work
PathDescription:
(Unreal Only) Pointer to path description in
zone info locationstring array
bNeverUseStrafing:
(UT Only) Don’t use advanced techniques to get
to this nav point (i.e. You might fall off ledge or summit..)
|
| [^TOP] |
| |
| AlarmPoint |
|
The AlarmPoint is used primarily in single player games to make
scripted pawns (monsters) perform certain actions when they see
a player. This is used to make the bad guys trigger alarms and wake
up other monsters and by the Nali to open secret areas for you ;-)
I’ve ‘borrowed’ most of this information from Myscha - myscha@nettally.com, available at www.unrealized.com and him from the original
Unreal I AI page.
You first set the AlarmTag in the creatures Orders set of properties
to the Tag of the first AlarmPoint.
It will then move from AlarmPoint to AlarmPoint until no new alarm
is found.
|
|
NextAlarm:
The next AlarmPoint to go to after finishing
here. If none then it reverts to it’s normal AI.
pausetime:
The amount of time to pause at this AlarmPoint
ducktime:
How long to pause after playing the AlarmAnim,
typically for the creature to duck, and then stand and shoot.
AlarmAnim:
If specified the creature will play this animation.
bStrafeTo:
If the creature can strafe, they will strafe
to this AlarmPoint, i.e. still facing the player.
bAttackWhilePaused:
Whether the creature will attack the player while
paused at this AlarmPoint, must have a ranged attack though
bNoFail:
Sometimes creatures might get knocked of course,
if this is true they will always try to get to the AlarmPoint, even
if it now miles away.
bStopIfNoEmeny:
If the enemy is no longer in sight the creature
will stop at this AlarmPoint (used for Nali I guess).
bKillMe:
Any creatures triggered by the AlarmPoint’s event
tag will hate the create triggering the AlarmPoint.
bDestroyAlarmTriggerer:
The creature will be destroyed upon reaching
this AlarmPoint.
ShootTarget:
A tag for a creature to shoot at upon reaching
this AlarmPoint other than the player.
AlarmSound:
A sound to play if the AlarmAnim is also set.
|
| [^TOP] |
| |
| AlternatePath: UT |
|
Used only in CTF maps to signify an alternative route either too
the flag or back to the home base.
Only 1 AlternatePath is required per route. The bots decide which
path they are going to use and then head for that alternative path.
Once they reach that alternative path they then head for the flag
base.
All paths should have one of these per team, check out CTF-LavaGiant
as an example, each tunnel has 2 AlternatePath's.
A AlternatePath counts as a normal PathNode in all other circumstances
so no need to place PathNode's as well.
|
|
Team:
usual team setting, 0 = red, 1 = blue
SelectionWeight:
you can weight the different AlternatePath's,
default is 1.00000
bReturnOnly:
true if this route is only valid as a return
route (i.e. when they have the flag)
|
| [^TOP] |
| |
| AmbushPoint |
|
Put simply bots will think this point is a good place to go and
stand to catch you by suprise.
Also can be used for snipe points by setting bSniping to true.
In UT you can use the team based DefencePoint
|
|
SightRadius:
How far bot at this point should look for enemies
bSniping:
Bots should snipe from this position
|
| [^TOP] |
| |
| Defence Point: UT |
| Extends ambush point above, and used in UT team games. It has a
team property which defines the team to use the given defense point,
as well as a priority. |
|
team:
0 = red, 1 = blue
priority:
Priority of the DefencePoint, compared to other
points
FortTag:
The tag of the FortStandard that the bot should
be defending from this point.
|
| [^TOP] |
| |
| AssaultRandomizer:
UT |
| This is a navigation point which has an extra cost to the attacking
team when enabled, i.e. makes it less likely that they will go this
way. It starts out disabled and toggles each time it is triggered. |
|
ToggledCost:
The special extra cost for this nav point when
enabled.
|
| [^TOP] |
| |
| BlockedPath: UT |
| This blocks the bots path until triggered, meaning they will not
try to go through here. When it is triggered the extra cost is removed.
Used in AS-Mazon to stop the bots trying to travel through the portcullis
until the two couter-weights have been destroyed. |
| [^TOP] |
| |
| ButtonMarker |
|
And I quote:
// OBSOLETE - TO BE REMOVED
Nuff said
|
| [^TOP] |
| |
| ControlPoint: UT |
|
This is used in Domination games, in fact it is pretty much the
only extra thing you need to place on a domination map except changing
the name to DOM.
Simply put you place the control point, give it a PointName which
appears in the game, set a ControlSound if you want for the sound
to play when the control point is captured and bobs your uncle.
You can also use the event properties to make events happen when
a particular team takes control of the control point. I'm going
to try to put a map together to illustrate this. Watch this point.
|
|
RedEvent:
The event to trigger when the red team take
control of the ControlPoint.
BlueEvent:
The event to trigger when the blue team take
control of the ControlPoint.
GreenEvent:
The event to trigger when the green team take
control of the ControlPoint.
GoldEvent:
The event to trigger when the gold team take
control of the ControlPoint.
bSelfDisplayed:
If false then the actual 'mesh' (i.e. the coloured
cross thing) isn't displayed for the control point.
PointName:
The name of the control point, displayed in
the HUD and in when you control the point.
ControlSound:
The sound to play when you gain control of
the point.
|
| [^TOP] |
| |
| FlagBase: UT |
| Following on nicely from above, this is the core of the CTF game
type. Simply place 2 of these on a map, set Team to 0 (red team) for
one of them and Team to 1 (blue team) for the other. Change TakenSound
if you want. Make sure that the flag is well into the ground, ideally
the paths to the flag should be horizantal. If not then the bots will
not go for the flag! |
|
Team:
The team, 0 - red, 1 - blue. Originally you
could also use 2 and 3, but Epic stopped this in patch 405b I think.
Check out one of the CTF mods for more teams.
TakenSound:
The sound to play when the flag is taken.
|
| [^TOP] |
| |
| HomeBase |
| In theory this is the 'home' of all pawns. It is only used for scripted
pawn, i.e. monsters. They will use this navigation point has their
'home'. They are less fearful when near their home, and may head towards
it when retreating. |
|
extent:
radius of the effect of the home.
|
| [^TOP] |
| |
| InventorySpot |
|
Placed in the game by the editor to mark a spawn spot for an Invetory
item. Has no parameters and you shouldn't worry about it.
Apart from to say that each Inventory item placed creates a InventorySpot
which acts as a pathnode, so don't place those path nodes to close
to your Inventory.
|
| [^TOP] |
| |
| LiftCenter |
|
An essential element to any lift, this is used to tell the bots
where the center of the lift is. It should be placed on-top of the
mover when the mover is in KeyFrame 0. Set the LiftTag to the same
name as the Tag of the Mover.
If your LiftExits are especailly higher or lower than the LiftExit
then increase the value of MaxZDiffAdd and if they are long horizantal
distance away then increase MaxDist2D.
|
|
LiftTag:
The tag of the mover and any associated LiftExits.
LiftTrigger:
If the mover is to be triggered then place
the tag of the trigger here also. It helps the bot find it if its
not obvious.
MaxZDiffAdd:
Adds additional height difference between any
given LiftExit and the LiftCenter (if the LiftExit is say at the
bottom of a ramp or something)
MaxDist2D:
The maximum horizantal distance bots can stand
away from the lift and still trigger it. Increase this if the lift
center is in the middle of a very wide lift for example.
|
| [^TOP] |
| |
| JumpSpot: UT |
|
This is a subclass of LiftCenter and is used for places that Bots
can reach if either a) they have the jumpboots, b) gravity is low
c) they can translocate or d) they know how to impact-hammer jump.
For them to try d) you must set bImpactJump to true.
If the bots do not seem to be reaching where you want them to go
then try setting bAlwaysAccel to true
|
|
bImpactJump:
If you want bots to impact jump (and have high
enough health and skill) then set this to true.
bAlwaysAccel:
This will aid bots in turning in the air to
get to where you want them to go, mostly used for low gravity and
jumpboots.
|
| [^TOP] |
| |
| PainPath: UT |
| This is a special kind of LiftCenter which if the bot has reduced
damage to a particular type of damage. It doesn't appear to be used
by Epic at all in any of their maps as far as I can tell. |
|
DamageType:
If the bot has reduced damage to this damage
type then they will go this way.
|
| [^TOP] |
| |
| TranslocDest: UT |
| A special kind of LifeCenter which means that a bot will try to
tranlocate to this spot from the TranslocStart. the usual LiftTag
properties must be set, along with a LifeExit for the exit to the
translocation. |
| [^TOP] |
| |
| LiftExit |
| The other half of the LiftExit-LiftCenter combo. A standard lift
has 2 LiftExits, one where you would wait for the lift at the start,
and one at the end, and finally a LiftCenter on the actual lift mover
(whereever it's start position is). They all share the same LiftTag,
and LiftTrigger value can be entered as the Tag of a trigger which
moves the Mover in question. |
|
LiftTag:
The tag of the other LiftExit and the LiftCenter
LiftTrigger:
Gives a helping hand to the bots so they know
which Trigger to use to trigger the lift.
|
| [^TOP] |
| |
| TranslocStart: UT |
| Replaces the LiftExit for the place the bot must stand to fire off
their Translocator. |
| [^TOP] |
| |
| PathNode |
| The most basic of navigation points, this simply maps out the routes
that the Bots can follow. They should not be placed too near to each
other, and should be placed about 70 units above the ground. |
| [^TOP] |
| |
| PatrolPoint |
|
If the Order of a ScriptedPawn (monster) is set to 'Patroling'
then the OrderTag should point to the Tag of a PatrolPoint. Upon
reaching the PatrolPoint the pawn will then go to the PatrolPoint
with the Tag of Nextpatrol.
If pausetime is set to greater than 0 then the pawn will play the
PatrolAnim animation and PatrolSound sound numAnims times.
|
|
Nextpatrol:
The Tag of the next PatrolPoint
pausetime:
The aount of time to pause at the PatrolPoint.
If greater than 0 then PatrolAnim and PatrolSound will be played
'numAnims' times.
PatrolAnim:
A string describing the animation to play,
e.g. the Brute model has an animation called CockGun, which could
be used, or another one called Breath2.
PatrolSound:
The sound to play with each animation
numAnims:
THe number of animation loops to play while
paused.
|
| [^TOP] |
| |
| PlayerStart |
| This is the basic player start position. It is used to signify the
single player start position, any co-operative start positions and
all bots and player start positions for deathmatch etc. Ideally you
should have more PlayerStart's than your map is designed to handle
to avoid TeleFragging. |
|
TeamNumber:
For team games with bases (e.g. CTF and Assualt,
but not Team Deathmatch or Domination) this is the team who spawns
here, 0 = red, 1 = blue.
bSinglePlayerStart:
If a map has been set up for Co-op or Deathmatch
as well as Single Player then only one PlayerStart should have this
set to True. This will be the true Single Player start
bCoopStart:
If this is a Co-operative start then set this
to true (and usually bSinglePlayerStart to false)
bEnabled:
Is most often used in Assault maps to advance
the player start through the map after some advancement. Trigger
the player start to alternate the bEnabled property.
|
| [^TOP] |
| |
| QueenDest |
| Used by the Queen in the end of the Unreal 1 SIngle Player game
to teleport. |
| [^TOP] |
| |
| SpawnPoint |
| These are placed along with a ThingFactory (or CreatureFactory)
where you actually want the things to be Spawned. They should all
have the same Tag. |
| [^TOP] |
| |
| Teleporter |
|
Used as destination and departure points for teleporting. If bEnabled
is false or URL is empty then it will act only as a destination.
See the URL property below for more details on its format.
Trigger the teleporter to flip its enabled property.
N.B.
This does some slightly different things depending on whether you
are in Unreal or UT.
In UT the change in Yaw has 180 degree + the difference in the
players yaw and the source teleporters yaw added to it.
|
|
URL:
Destination Teleporter. Can also be destination
map or server. I quote from the UT AI Guide:
"If the URL attribute is empty, the teleporter
acts only as a teleporter destination. If it contains the same string
as the tag of another teleporter in the level, that teleporter will
be the destination. If it contains a string in the form of 'LevelName/TeleporterName',
it will teleport to a different level on this server (single player
only). If it contains a string in the form of 'Unreal://Server.domain.com/LevelName/TeleporterName',
it will teleport to a different server on the net."
ProductRequired:
You'd guess this was a product required to
teleport, but no, its not actually used! Go figure!
bChangesVelocity:
Sets velocity of an Incoming teleporter to
the TargetVelocity if true.
bChangesYaw:
If true then the new direction is the direction
of this teleporter. See above for note about UT.
bReversesX:
If bChangeVelocity is false this reverses your
X velocity. Otherwise it does nothing.
bReversesY:
If bChangeVelocity is false this reverses your
Y velocity. Otherwise it does nothing.
bReversesZ:
If bChangeVelocity is false this reverses your
Z velocity. Otherwise it does nothing.
bEnabled:
Can be toggled by triggering. If false then
nothing will be teleported.
TargetVelocity:
Used to set velocity when bChangesVelocity
is true.
|
| [^TOP] |
| |
| FavouritesTeleporter |
| Err, again not sure here. I think it's meant to get your favourite
internet server and set the URL to this. However the line that should
set the URL is commented out, so obviously it just acts like a normal
teleporter. |
|
FavoriteNumber:
The number of the favorite to pick from the
list of favorites.
|
| [^TOP] |
| |
| VisibleTeleporter:
UT |
| No different from the above teleporter except it has the teleport
effect, and is hence "visible". |
| [^TOP] |
| |
| Transporter |
|
Moves the player instantly by the Offset vector. Works only in
Unreal 1 Single Player games.
Can only be triggered once.
|
|
Offset:
The vector that the player is moved by
|
| [^TOP] |
| |
| TriggerMarker |
| Obsolete |
| [^TOP] |
| |
| WarpZoneMarker |
| This is placed by the Editor when you place a WarpZoneInfo to allow
bots to navigate through WarpZones. So don't worry about it. |
| [^TOP] |
| |