|
|
UED2 Tutorial - Assault explained |
To understand this tutorial and basics behind assault maps,
you should have a some knowledge of triggers and bot AI if
you want bot support.
The level design will also turn out to be a bit different from
DM, CTF or DOM.
You need to focus more on flow and defend/attack areas for both
teams.
To actually create the assault level FortStandard actors is used.
It can be found in the actor browser under "Pawn" and "StationaryPawn".
For each objective you need one fortstandard.
This is a list of the properties you might want to explore.
|
Property |
Specific |
+FortStandard |
|
bFinalFort |
Ends mission when destroyed if true. |
bFlashing |
FortStandard will flash when damaged if true. |
bForceRadius |
Used to make bots run for the objective if they have no backup. |
bSayDestroyed |
If true, bots will announce they have destroyed the objective. |
bSelfDisplayed |
Let the FortStandard mesh be visible. (Often set false). |
bTriggerOnly |
Set true to trigger the objective by touch and not damage. |
ChargeDist |
The distance bots will charge from if bForceRadius is true. |
DamageEvent[] |
Event triggered when specific amount of dmg has been inflicted. |
DmgEventThreshold[] |
Amount of damage needed to trigger DamageEvent[]. |
DefensePriority |
In which order bots should defend the objectives. |
DefenseTime |
The amount of time (minutes) players have to complete the level. |
DestroyedMessage |
Message to be shown when objective is destroyed. |
EndCamTag |
Tag of the SpectartorCam to be used as end camera. |
FallBackFort |
The tag of the fort which defenders should fall back to. |
FortName |
Name of the objective, shown before destroyed message. |
NearestPathNodeTag |
The tag of the closest pathnode to the objective. |
|
|
+Pawn |
|
Health |
How much damage the fortstandard can sustain. |
|
|
|
To actually create the assault map:
Assuming you have a design done, you can start adding fortstandards
to the level.
Place the fortstandard close to where the objective should be.
If the objective is to be triggered by touch you need to adjust correct
collision radius to make sure players can reach them, but not from too far away.
In this case bTriggerOnly should be true.
If players must inflict damage to destroy it, you must set bTriggerOnly false.
The health of the fortstandard (pawn) is used to determine how much damage
it can take before it is destroyed.
DamageEventThreshold[] and DamageEvent[] can be made to
trigger events as damage increase.
When a level of damage have been reached specified in DamageEventThreshold[]
the respective DamageEvent[] is triggered.
If you want doors and other movers to be activated when the fortstandard
is destroyed you place a name in the "Events, Event" of the fortstandard
and the same name, for each object/mover to be activated, in the "Events, Tag".
The "NearestPathNodeTag" must be set to the tag of the closest pathnode to
make sure that bots are able to calculate a route to the objective.
When bots think they might not make it or you need to make sure bots run for
the objective rather than taking out defenses, you can set bForceRadius true.
ChargeDist is the distance, from the fortstandard, bots might charge from.
When the objective is destroyed the name of the fortstandard and the
message will show on the hud for all players unless the field is blank.
The message will be shown like: [FortName] [DestroyedMessage].
If this is the final objective in the map you should set bFinalFort true.
The defenders will defend the obejctive with the highest priority first.
When that objective is destroyed, they will defend the one with the
highest priority of the remaining ones.
The amount of time players have to complete all objectives is specified with
DefenseTime. All fortstandards should have the same value.
The endcamtag can be used to specify a spectartorcam as a view port
when the level is complete.
All players will have their view change to the spectator cam if used.
In the end this is how all objectives is created and as far as I know there is no
limit on amount of objectives you use.
Changing the game type to AS:
UT is able to load the level in correct game type if the filename of the
map correspond with the correct game type.
In this case AS which would be AS-[mapname].unr
But, unless you do this UT will treat the map as DM and to change that
you need to set the correct "DefaultGameType" in Level Properties.
The game types are found in the actor browser under "Info", "GameInfo" and
"TournamentGameInfo".
The one for AS are found under "DeathMatchPlus" and "TeamGamePlus" named
"Assault".
Assault Info.:
To create the objective screens and text for the assault map you need to add
AssaultInfo actor, found under Info in the actor browser.
"NumObjShots" defines how many screenshots/objectives you want to show.
"ObjDesc[]" is the objective description and "ObjShots[]" contains all
the screenshots for each description.
PlayerStarts in AS:
You need to devide the playing teams in Defenders and Attackers.
When you open the properties window for playerstarts you have a option
under "PlayerStart", "TeamNumber" which specify what team it belong to.
Use "0" for the Defending team and "1" for the Attacking team.
The option "bEnabled" can be set false/true and then triggered to become
enabled/disabled to change the spawn area/location.
Bot AI and assault maps:
Bots defend/attack the fortstandard with the highest priority first and then
the next in line.
If you, however, use the FallBackFort to specify another fortstandard
both the defenders and attackers will treat this as the next objective in line.
In this case defense priority is ignored and might result in some weird
behaviour.
If bots is unable to reach the objective for some reason they will roam the level
like a normal DM map and pickup items along the way.
Bots tend to spend more time trying to take out the defending team rather
than completing the objectives.
In some situations this will be a problem as they never seem to advance towards the
goal.
If this is the case, set the bForceRadius true and adjust
the ChargeDist accordingly.
Bots will then simply run towards the objective and hope to survive, if it
is out-numbered.
bFinalFort true or false:
If you set bFinalFort true and the objective is destroyed, the level is
complete no matter how many objectives still left active.
If none of them have bFinalFort true all objectives must be destroyed to
complete the level (in no specific order).
Defense Points:
Defending bots will defend the objective with their lives.
To make them stand at strategic positions you need to place defense points.
(Can be found in the actor browser under NavigationPoint and AmbushPoint).
Set the property FortTag under DefensePoint to be the same as the tag of the
FortStandard you want bots to defend.
Bots will position themselfs at these points in the order specified with the
Priority property.
If you do not have any defense points for a FortStandard bots will stand/defend
as close to the FortStandard they can get.
If you have more than one FortStandard you need to create sets of defense points
for each one.
Spectator Camera / EndCamTag:
To create the end of level view you need to add a spectator camera.
The SpectatorCam actor is found under Keypoint in the actor browser.
Set the EndCamTag to the tag of the SpectatorCam.
This is directional so make sure it face in the correct way.
(To see the SpectatorCam in the editor you need to change view to IconView).
Auto Cannons:
You can add TeamCannons or MiniGunCannons to support the defending team.
They are found in the actor browser under Pawn and StationaryPawn.
Assault Randomizer:
This actor can be used to make bots take another path to the objective.
Normally a bot will always take the shortest route rendering alternative
paths more or less useless.
By placing an AssaultRandomize somewhere along the shortest route
and making sure no paths go around it you can make bots believe other
paths to be shorter than the current one.
Set the ToggleCost to a value to increase the distance cost for
that route.
(Do not set a negative value for ToggleCost).
You need a trigger to activate and deactivate this actor.
|
|