
      |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - Starting Up
First, we want to start the program. The executable is located in the
System folder of your Unreal Tournament install, and it's called "
UnrealEd.exe ".
After opening up Ued, we will see 4 "windows" and lots of buttons
on the bars at the left and the top. There should also be a browser
window called "Textures" with some weird images inside, you can
minimize that window for now. The 4 "windows" are called ViewPorts, and
they shows the world of our level from the Top, Front, Side and in 3D
Perspective.
The top bar contains the Ued operations relative to files: we have, in
order:
- New, Open and Save
- Undo and Redo
- Search For Actors
- Browsers
- 2D Shape Editor and UnrealScript Editor
- Actor and Surface properities
- Rebuilds
- PlayTest the map
For now what interest us is the first group: New removes from the
Ued the map that we were working on before and creates a new, empty,
map. Unlike many programs, UnrealEd doesn't allow more maps open at the
same time, so let's not forget to save before using that button.
Open is used to load a map, while Save is used to write the changes
that you made to the map on the file. DO NOT USE SAVE while looking at
someone else's map, use Save As (and change the filename) from the File
menù if you really need to save the changes. If you overwrite the old
file, when you will try to play online on said map you will get a
"version mismatch" error and you will not be able to join the game.
Now let's try to move in the Viewports. Movement is all done with the
mouse: Holding the left mouse button you will move in the X and Y axis
of the current viewport, while holding both mouse buttons you will move
on the Z axis of the viewport (so you will zoom in and out in the 2D
viewports). In the 3D perspective ViewPort using the right mouse button
you will rotate the cam.
|
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - Brushes
So let's start creating a room. In the third group of icons in the bar
on the left you can see several shapes, let's click on the cube [1.1].
A red
cube will appear in the 4 viewports. The red color indicates that it's
a Red Builder Brush (from now on called RBB), a brush that's not real
but
it's used as a "stamp": the form that our RBB has will be "impressed"
(made real) into our map using the add and subtract functions.

Probably you'd think that we want to use add, but instead the Unreal
Engine differs from any other game engine: what we are seeing in our
viewports is not a huge void space, but a huge full space. So to create
our map we need to carve the space into the "full". It takes a while to
get used to, but it gives a lot of advantages over having a void space.
Since the space is full, we need to start subtracting the space. Let's
press the Subtract button [1.2] to see something happening in the
viewports:
in the Perspective view we'll see a cube of cheese appearing (if we had
the RBB in view), while in the 2D viewports we'll just see the RBB
changing color. That's because the 2D viewports are WireFrame views (so
you only see the borders of the surfaces), while the 3D viewport shows
how the map will appear in-game.
Moving away the RBB in one of the 2D viewports (moving the mouse while
holding Ctrl and the Left Mouse Button) we will see a yellow brush:
yellow brushes are subtractions, blue brushes are additions.
If you tried to delete the yellow brush (Del key), you will see the
cheese still showing up. Like the RBB, those yellow lines aren't real
solids, but the Unreal Engine uses those lines to determine where the
real surfaces will appear during the process of Rebuilding (explained
later). So deleting a brush will affect the surfaces only when you will
rebuild.
If you deleted your Yellow brush, do another subtraction somewhere.
If you want to modify the size of your brush, you can RC on the button
that you used to create the cube [1.1].
Then a window will appear, and you will be able to change it's height,
width and breadth. Click on Build to give to the RBB the desired shape.
Now we have a void room. If we want to add something inside it, we have
to use the Add button. Let's try to create a RBB with width and breadth
of 64 and to add it into our room pressing Add [1.3]
|
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - Lights
In the Brushes section of these tutorials you
learnt that what seems
like a perfectly void space is full; now it's time for some other news:
what your are seeing currently in the ViewPort is completely dark, if
you would enter the map right now you would see only black around you.
When you add or subtract some new brushes, UnrealEd renders their
surfaces Unlit, so the lights doesn't affect them. After a compile
lighting will however be calculated, so we need to add some light in
our map.
To add a light, we need to RC on a surface and from the drop-down menu
select Add Light Here.
A torch will then appear, and it will be the point
from where the light
will start.
The light will be white (not visible at the moment as the surfaces
around are Unlit). To change color, we can select the torch and press
F4 to open the Actor Properities (which you can open also double
clicking on the actor). Expand the section LightColor and from there
you will be able to change the Brightness, Hue and Saturation of the
light with values between 0 and 255.
You can also change the radius of the light (how
far the light will go
- remember that lights are spherical) expanding the section Lighting
and changing the parameter LightRadius.
You will have to wait a rebuild to see the effects
of the light. |
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - Rebuilding
Now we have a very simple map. The last step to
make it playable is
Rebuilding it.
But first, let's save the map (File > Save
or click on the
little floppy in the top bar). The name that we choose will influence
the gametype: maps with the DM prefix will be playable in DeathMatch,
Team DeathMatch and Last Man Standing, the ones with the AS- prefix
will be played in Assault, CTF- for Capture the Flag and DOM- for
Domination.
As a general advice, save very often. Having Ued crashing isn't rare
when you're still not very familiar with it.
At last, Rebuilding: to rebuild a map, all you need to do is click on
the Full Rebuild icon in the top bar [5.1]. UnrealEd will then start
reading all the data that we added in the map (brushes, lights,
Playerstarts) and convert it into real, solid stuff.

Since our map is extremely basic the rebuilding process will end almost
immediately, but in the most complex maps the rebuilding process can
last even hours (depending on the power of your PC).
I recommend saving BEFORE a Rebuild, as sometimes Ued can crash during
a rebuild (it usually happens in very complex maps, but it's better to
do an useless save than having to do again whole parts of a map because
it crashed).
|
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - PlayTesting
Now we have a fully working map... let's try it
out. After saving it,
click on the joystick-shaped Playtest button [6.1] in the top bar to
start up Unreal Tournament with your map loaded.
You will be able to play DeathMatch in it, but of
course we need to add
much, much more stuff to make it a finished product.

Sometimes UT might not work perfectly when started
up from the editor
with the Playtest button. You can as well start your Unreal Tournament
game as you do usually (from a link on the desktop or whatever) and
during the flyby open the console (tilde key) and type "Open [MapName]"
replacing [MapName] with the filename of your map (for example
DM-MyLittleCubeOfBoredom). |
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - Inventory
Before starting to add items and such, it's
probably better to expand a
bit our map. We can start subtracting and adding some more cubes
around, using our creativity. One important thing about brushes is that
it's better to give them sizes at least multiples of 2. The grid that
you see in UnrealEd (if you didn't change it) is 16uu wide, that means
that a brush's size has to be a multiple of 16 to fit on it (for
example 32, 96, 256, etc.). Keeping brushes on the grid will help
preventing BSP errors (errors that happens on surfaces) and they are
generally better, so try to stick to powers of 2 (like 32, 64, 128,
256, 512, 1024) for sizes of the brushes.
When we're done subtracting, adding, rebuilding etc. we can start
adding a weapon.
Enter in the Actor Browser (explained in 05. PlayerStarts if you
already forgot it), expand Inventory (all the objects that can be
picked up in the game, like weapons, health and power ups), expand
Weapons (Unreal weapons, use the UT counterparts instead of these),
expand TournamentWeapons (Unreal Tournament weapons) and then select a
weapon. For example select UT_FlakCannon.
Return to the 3D viewport, RC on a surface and
from the drop-down menu
choose "Add UT_FlakCannon here". A shiny Flak Cannon will then appear
in our map.
As you probably noticed, in the drop-down menu that appears when you
right-click something there's always a "Add Light here", while under
that option there's an "Add ... Here" that changes according to the
actor currently selected in the Actor Browser.
After Adding the weapon, Rebuild the map before trying out the map.
Other pickups are added in a similar way: you have to follow the path
Inventory > Pickup > TournamentHealth for the health
packs, Inventory > Pickup > tournamentPickup for the
Power Ups, Inventory > Pickup > Ammo >
TournamentAmmo for the ammunitions. Add them to the map with the usual
"Add ... Here", and you can eventually duplicate them if you wish (Ctrl
+ W).
|
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - SkyBox
A SkyBox is the "sky" of the map. Rather than
placing sky textures
on big cubes subtracted on our map, we can use this feature of the
Unreal Engine to give a realistic movement sensation from the sky in
the map.
To create a SkyBox we have to subtract a cube (or
whatever we want) far from our main map (it's important that our cube
just subtracted don't touch the rest of the map) and apply to it some
textures fitting for a sky (try to look at GenFluid.utx). Add also a
light in there.
Then open the Actor Browser and select
SkyZoneInfo in Info > ZoneInfo. Add said actor in the cube (NOT
in
the main part or the map or in the "full" surrounding it) and move it
to the center of the cube. The position of the SkyZoneInfo actor will
determine the point of view of the sky from the rest of the map.
Our
SkyBox is ready, now we have to tell to the engine where the sky should
be visible. Return in the main part of the map and select the surfaces
where you want the sky to appear (like the ceiling of the rooms).
Then
enter the Surface properities pressing the F5 key (or Right-Clicking on
a surface and choosing Surface Properities from the drop-down menu) and
tick the "Fake BackDrop" checkbox: those surfaces will disappear and
show the sky while in-game. You can try to save, rebuild, save and try
the map to get an idea of how it will be shown.
If you want to see
the sky in the editor, you just need to enter in the RealTime preview
mode (clicking on the joystick on the bar of the viewport [8.1]).

Probably our sky isn't very interesting right now, a cube with some
weird static sky textures on it.
Generally
only the top surface of the SkyBox will be shown (if you use only
ceilings as Fake BackDrop surfaces), so you may want to pretty it up a
bit.
First let's make sure that the side surfaces of our SkyBox
will not be seen, to do that you can just create a cube with big width
and breadth while having small height, rather than using a 256x256x256
cube (try with a 256 height - 4096 width - 4096 breadth cube).
Then
we can add another layer of clouds, adding a sheet (the button on the
right of the Cube button) with the same width and breadth of our cube
right below our top surface. Then we can make it "transparent" entering
in the Surface properities of if and ticking the "Translucent" box.
You can also make a moving sky ticking UPan and
VPan.
You may also want to add a sheet with a sun on it,
using textures from the GenFX.utx package.
If
the Sky texture is too small and repetitive, you can scale it up
switching Tab in the Surface Properities Window from Flags to
Alignment: there you will find anything you'll need to scale and move a
texture, try for example to choose 4.0 in the "Simple:" box and click
Apply to see your texture scaled 4x.
I recommend checking out how the skyboxes in Epic retail maps are done
to understand better how to make a good-looking skybox.
|
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - Meshes
Meshes are prefab decorations created with
external modeling programs.
When placed in maps they don't have any effect on the BSP (the geometry
of the map) and they are pretty cheap resource-wise, but the lighting
on them is pretty basic (vertex lighting, and they don't cast shadows)
and their collision is always a cylinder (unlike BSP, which has
collision set by it's surfaces).
A mesh is an actor, so you can place on exactly like you did for
inventory and such. Enter in the Actor Browser, expand the Decoration
category and from there select an object (for example Table). Go to the
3D ViewPort, right click on a surface and choose "Add [MeshName] Here".
There are many meshes fitting many themes, try out
a few (all located
under Decoration).
As I said before all of them have cylindrical collision. To see the
collision cylinder you can RC on the ViewPort's bar and choose Actors
> Radii View: the collision of the selected actor will appear in
the viewport.

If you want to change the size of the mesh, you can enter in it's Actor
properities (F4 or double-clicking it) and after expanding the Display
category change the DrawScale value (1.0 is the base size). The
collision radius will be adjusted accordingly.
|
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - Pathing
Probably you've already tried to play your map
with some bots: you
should have then noticed that the bots stay near the playerstarts and
move around only if they see an enemy. That's caused from the absince
of paths, the instructions for the bots.
To manage the bots the Unreal Engine uses a "web" of links between the
various objects: every bot, basing on its actual situation, finds in
the "web" the shortest way to reach its objective.
To give instructions to bots it's then necessary to create links
between the objects. To create these links it's enough to add "nodes"
in the middle, called PathNodes: they're Actors that the Unreal Engine
will use during the map rebuild to create the "web" and so to create
the instructions for the bots.
The links (paths) can be there between every path-generating object
(every Actor in the classes Inventory, NavigationPoint and PickUp).
They can have two colors (blue indicates a "sane" path, while red
indicates a broken path that will generally be used only if there
aren't blue paths to reach the objective) and their max lenght is 896uu.
Let's then try to link some objects: for example add a PathNode (you
can find this Actor in the NavigationPoint class) between a Playerstart
and an Armor far from each other more than 1024uu. After compiling the
map, bots will be able to reach the Armor from that Playerstart since
they now see a link to it.
Basically you need to add pathnodes in the map to
link all the objects
together. You DO NOT need to add a PathNode above Actors like
Playerstarts, weapons and such as they already create paths around them.
To check the "web" of links in your map you just need to RC on the bar
of any viewport (preferably the 3D viewport) and from the drop-down
menu choose View > Show Paths. In the map the links between the
various objects will appear.

Paths are "sane" when there's enough space around them. There has to be
a space of 64uu around the path for it to be considered sane. If
there's some obstacle (geometry) in the way the path will become red,
meaning that bots will not use it very often.
The paths are created and updated only during a
Rebuild.
As usual, try to look at other maps to see how pathing should be done
(not every map is a great example though). There are several other
actors that allows map makers to give more complex instructions to
bots, but those will be covered in a separate tutorial.
While pathing a map you might want to not rebuild fully your map... why
rebuild everything to check the effect of a few added pathnodes?
Luckily
Ued has "partial" rebuilds, which allows mappers to rebuild only parts
of their maps. To rebuild only paths use the button on the left side of
the Rebuild All button to rebuild only paths.
Use the Rebuild All when you made some changes on
the Geometry or Lighting. |
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - LevelInfo
Now we can give a name to our map, which will be
shown in the game, and provide some other useful information.
Pressing
F6 in Ued (click somewhere in a viewport if nothing happens before
pressing F6 again) we will access to LevelInfo, an actor already added
in the map (Ued creates one in every new map) that contains some
information about our level.
After expanding the LevelInfo
category in the properities (the window is similar to the Actor
Properities), we can change the values of some of the fields.
Author is the name of the map author, generally your nickname.
DefaultGameType
is the default game type (duh) that will be used when you start a map
without forcing a gametype (for example, opening a map from the console).
You
can't just write DeathMatch or Capture the Flag, you have to use the
exact name of their classes: DeathMatchPlus (DeathMatch), CTFGame
(Capture The Flag), LastManStanding (Last Man Standing), Assault (Assault),
Domination (Domination).
IdealPlayerCount
is the recommended Player Count for the map. Some mods use this
information to guess the number of bots to add to a game, so don't
forget to fill this field correctly (for example "2 - 4").
Screenshot is the preview image that will be shown in the Pratice
Session menu. More on this later... for now leave it void.
Title is the title of the map.
In
the Start Pratice menu you will see the Screenshot of the map, with
written on it the Title, the Author name and the IdealPlayerCount.
|
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - Music and Sounds
Now we'll add a music to our map. Let's open the
Music Browser
[12.1] and using the Open button load a music (for example, FireBR.umx).

We can listen to a preview of the music using the Play and Stop buttons
in the browser.
To
add the music to the level we just have to enter in the Level Info (F6)
and, after expanding the audio category, click on the Use button in the
Song field to set the music.
Pressing the Use button will add the filename and
name of the song that you have selected in the Music Browser to our
level.
Now
we can add some sounds to our level, called Ambient Sounds, that will
always play in the background but only in some places of a map (for
example the sound produced by waterfalls, engines, etc.). The position
of these sounds is determined by the addition of some Actors, called
AmbientSound, that will set the source of the sound.
Open
then the Actor Browser, expand KeyPoint and select AmbientSound. Add it
somewhere in your map, then enter in its Actor Properities (F4).
Under the Sounds category we can set the Volume,
the Radius and the Pitch of our sound, with values between 0 and 255.
To
choose the sound to give to the source (AmbientSound actor) open the
Sound Browser [12.2], open a sound package with the Open button (for
example AmbModern) and after selecting a sound (of which you can hear a
preview, like the musics) return in the Actor Properities of the
AmbientSound and click on the Use button in the AmbientSound field.
You
can hear all the sounds you placed in your map in the 3D viewport when
you're in RealTime mode (see 09. SkyBox if you don't remember how to
enter it).
|
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - Screenshot
As previously said, the ScreenShot is the preview
image shown in the
Pratice Session menu while you're choosing a map to play on.
First of all we need to capture an image of our map. We want a 256x256
or 512x512 picture of our map (better 256x256), to get one I use a
quite strange but effective method:
- Start up your map. DO NOT give the ready signal (clicking the Fire
button, usually the mouse)
- Reduce your UT to a window
- Open the console and type "setres 256x256" (It will resize the window
to the optimal size for taking screenshots)
- Type in the console "Slomo 2.5" (the game speed will increase)
- The text at the center of the screen should start blinking, in case
you still have some stuff on your screen (like the Flags with score if
it's a CTF game) you can disable the HUD from the Preferences.
- While the text is not on the screen (during the blinking) press F9 to
capture a screenshot of your map.
With this procedure we just took a 256x256 image of our map, with no
HUD or other clutter in it.
If you're too slow to press F9 during the
blinking, you can enter in
the game (giving the ready signal) and then kill all the bots and
inventory (type "killall bot" and "killall inventory" in the console)
and then remove your crosshair and HUD.
After getting a decent shot of your map, close UT and enter in the
System folder of your Unreal Tournament installation. Open the last
ShotXXXX.bmp (where XXXX is a number between 0000 and 0255) in a
graphic program (I recommend GIMP, a free and extremely powerful
program, or if you need something simpler you can take IrfanView).
It's necessary to reduce the colors of the image
to 256 (UT doesn't
allow images with more than 8-bit, so with more than that number of
colors) and if the image is too bright you can change the Brighness and
Contrast.
After fixing this stuff up, save the image as a
.PCX file (for example
"MyLittleScreenshot.pcx).
Open UnrealEd, open the Texture Browser and click on File. From the
drop-down menu choose Import: browse in your PC to select the .pcx
image that you saved before.
After choosing the image a window will appear, write "MyLevel" as
Package (I mean to really write the word "MyLevel", not to write the
name of your map) and "Screenshot" as name. You can write whatever you
want in Group, I'd call it ScreenShots.
MyLevel is a particular package: it's not a file external to the map,
but every object included in the MyLevel package is included in the map
file itself (in the .unr file), with the obvious advantage of having
every onject included in one file. NEVER (and I mean NEVER) use the
Save button of the Texture Browser while having the MyLevel selected,
thus saving the MyLevel package: this can create a lot of more or less
exotic troubles that you don't want to deal with.
You can use this import process to import other textures in your map: I
recommend to always use MyLevel as Package to avoid to have to include
tons of files to make a map work. So keep "MyLevel" as Package, write
something in the "Group" (for example Wall if you're importing a
texture with bricks...) and give a name that you like to the texture
(of course avoid calling it ScreenShot, or it will overwrite the
previous texture).
Textures
can be square or rectangular, but they must always be powers of 2 in
size (2, 4, 8, 16, 32, 64, 128, 256, 512, etc.). It's recommended to
not go above 512x512, and remember to always leave checked the Generate
MipMaps box in the import dialog.
Last note about MyLevel, it will be saved automatically when you save
your map file but remember that the objects not used (for example a
tiles textures that you imported but not yet used) will be flushed out
of MyLevel when you close Ued, so apply them somewhere to make Ued
"remember" them.
Now we have to link the Screenshot image to our level... enter in the
LevelInfo (F6), expand "LevelInfo", in the Screenshot field write
"Screenshot" and press Enter. Your map now has that image as a preview
image.
The screenshot is the first impact of a player with your map, so it's
better to make it as good as you can. Take the screenshot image from a
nice view where you can see the "core" of your map, and it's better to
show the best-looking part of your level.
|
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - Zones
Now we want to create a small zone with water in our level, for example
a small pool.
Subtract a space 128x256x256uu space in a floor where you want the
pool. We want to "separate" a part of that subtraction and tell to the
Ued to change the properities of the bottom part. To divide a level in
zones we will use Zone Portals, sheets with altered properities.
Add then a 256x256uu sheet (with a texture from GenFluid.utx,
HubEffects.utx or Liquids.utx) where you want the water level to be, RC
on it and tick the Portal property in the Surface Properities. The
sheet, after a Rebuild, will act as a divider between zones.
Make sure that the sheet covers the whole "hole", so that there aren't
leaks between the zones.
After the Rebuild entering in the Zoned view [14.1] you should see the
bottom part (under the Zone Portal) of our subtracted cube has changed
color (for example the rest of the map is blue while the zone under the
sheet is green - don't count slight blue variations as different
colors), if it didn't check that Portal is checked and make sure that
there aren't leaks.

Now we can change the properities of the zone under the sheet: open the
Actor Browser, select WaterZone under Info > ZoneInfo and then
add it in the pool (under the sheet, of course!). Rebuild again and
your little pool will be full of water.
You probably already guessed why it's so important to make sure that
the zone isn't leaking... if the Zone Portal wasn't placed correctly,
our entire level would be flooded with water right now.
If we wanted to add Lava instead of water (after changing the sheet
texture, please :P), the mechanism is the same but instead of adding a
WaterZone we'd have to add a LavaZone. SlimeZone is for a nice acid
pool, NitrogenZone is a zone full of Nitrogen, etc.
Aside creating special zones such as water pools, we can separate the
level in several "normal" zones to add some useful informations to
parts of the level. For example LocationString is the "name" of the
zone, it will be shown during team games so you will know where your
teammates will be.
ZoneLight is a base brigthness given to the map, independently from
lights. Under the ZoneLight tab you can also change the UPan and VPan
speed (the speed at which the textures will pan if you ticked the UPan
or VPan boxes in their surface properities).
The actor to add in these "normal" zones is ZoneInfo. Also the
LevelInfo is a ZoneInfo, so if you wish you can set the properities to
the whole level (ZoneInfo actors will override the LevelInfo settings
though).
A level can contain 64 zones at max, after that limit Ued will start to
merge randomly zones.
|
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - Movers
Movers are, as the name suggests, geometry pieces
that can move: lifts, doors, crushers are all movers. There are tons of
Mover combinations, so we'll only see how to create a Lift and a Door.
Movers are shown as purple brushes. To add one you just need to create
your desired shape with the RBB and then press the key Add Mover. The
purple brush will be added.
Now we need to define the path that it will follow
(its movement), using KeyPoints. Place the Mover where you want it to
be when "closed" (when it has yet to be activated), RC on it, click on
Movers and choose Key1; afterwards move it to a higher position (or
wherever you want your lift to go) and when you're satisfied with its
position RC it, click on Movers and choose Key0. Key1 is the starting
point of the Mover, Key0 is its final position. If you want to
create a lift with a more complex path you have to use other
keys between Key1 and Key0, for example (if the lift has 4 positions)
Key1, Key2, Key3, Key0.
Now we can change some settings. Entering in the Actor Properities and
expanding the Mover category we can change the StayOpenTime (the time
that the Mover will stay open before returning to its Key1),
MoveTime (how much time the Mover will take to move between the Keys),
MoverEncroachType (what the Mover will do when a player will
be "crushed", NEVER use ME_StopwhenEncroach in multiplayer maps) and
TriggerOnceOnly (if True, the Mover will stop forever after
reaching the Key0, don't use this for stuff like doors or
lifts).
Under the MoverSounds category we can set some
sounds to our Mover like if it would be an AmbientSound, although we
will not be able to change the radius, pitch and volume of the
sounds.
Under the Objects group we can change the
InitialState. If our mover is a lift we need to set it on
StandOpenTimed (the Mover will start only when a player will
touch it's upper surface). Now you can start the game and try out your newly added lift. If you see
a bunch of cheese (the Ued's Default texture) instead of a proper lift
it means that you didn't set textures to its surfaces. You can solve
that simply right-clicking the Mover in the editor and selecting Movers
> Show Polys. This will make the Mover's surfaces visible, although this function can be pretty buggy sometimes. It's
better to add a Mover with a RBB that already has the textures set. You
can do that simply right-clicking an existing brush and selecting
Polygons > To Brush, which will basically give that brush's shape
and textures to the RBB. Then you can happily add your Mover without
seeing having to deal with textures. When you add a lift or another Mover for other purpose
you have to keep in mind that it has to be comfortable to use and not
annoying. So avoid lifts that stay open forever (a StayOpenTime below
1.5 is enough for most of the lifts, and the MoveTime shouldn't be
too long either) or that kill players who are trying to ride on it (use ME_CrushWhenEncroach only for traps). |
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - Triggers
Now we're going
to create a door - to
do that we will create a Mover and we will use a Trigger to activate
it.
After creating
another mover and
setting up its movement using the previously explained method we will
have to change some properities. Since we want a door (you can
of course add two movers that open in
opposite directions or even more complex doors with several pieces
that slide in different directions) we have to make it open before
a player touches it (otherwise it will
break the flow), so we have to change the InitialState to either
TriggerControl or TriggerOpenTimed.
Now we have to
add another actor, a
Trigger. You can find it in the Actor Browser under the Triggers
category. It's better to add in in the middle of the door (at floor
level), or in
the middle of the
doorframe if we have more movers.
A Trigger is an
object that generates
an Event (activates something) when something (generally a player)
enters in its radius. We will set up the door to open when a
player enters
in the Trigger's radius.
We can change
the Trigger's radius
altering the parameters CollisionHeight and CollisionRadius in its
Actor properities, under Collision (pretty much self-explaining). You
can check the
radius in the viewports
with the Actor > Radii View mentioned before.
Let's also give
an Event to the
Trigger, which is basically what will happen when a player will step
inside the TriggerRadius. To do so you just have to write something
(for example
"MyLittlePrettyDoor")
instead of None in the Event field under Events.
Now we have to
link the Trigger to our
door(s), so enter the Actor Properities of the Mover and write the
name chosen before for the Trigger's Event (in this case
"MyLittlePrettyDoor")
into
the Tag field under Events. A red line will appear between the two
objects, confirming you that they're linked. The red line is visible
only in
the 2D
viewports and in Wireframe mode.
Now when
someone will step in the
Trigger all the objects with the chosen Tag (in this case
"MyLittlePrettyDoor") will be activated. If we had a door
with multiple pieces
(multiple
movers sliding in different
directions) we will of course have to assign the same Tag to all
these Movers. And of course if you plan to have more than one door
in your map you
have to use different
Events, otherwise when you will touch one Trigger all the doors of
the level will open at the same time.
Maybe you're
wondering what's the
difference between TriggerOpenTimed and TriggerControl (the
InitialState of the movers): choosing TriggenOpenTimed will make your
door open, then it will stay open for the
whole StayOpenTime that you set in the Mover properities and then it
will close, ignoring players. With TriggerControl instead the Mover
will ignore the StayOpenTime and
will always stay open while there is a player in the Trigger's
radius.
Usually it's
better to use a
TriggerControl, since a door will almost never close while you're
trying to pass under it (it still can screw up sometimes when there
are
multiple
players in the area).
Try to place
the Trigger carefully - it
should allow players to travel comfortably through the door from
every location without bumping in it. It's also better to always
set a
ReTriggerDelay of 0.1 or less in
the Trigger properities (under Trigger), so if a door will close in
front of a player who was trying to go through it the trigger
will restart
almost immediately
(without ReTriggerDelay the player would have to exit the trigger
radius and re-enter it to activate it).
There are many possible settings for Movers and
Triggers - try to play around with them and you should get the hang of
Movers pretty quickly. The Event and Tag options are available for
every actor, but they act differently (most of the actors do nothing
when triggered). Experimenting is the best way to learn, although it takes time. |
|
 |
 |
 |

|
 |
 |
|
UnrealEd 2.0 Mapping Basics - Conclusion
Now you should have a knowledge of most of the
basics of UnrealEd. There's much more stuff to learn, but covering
every single Ued function would require a titanic tutorial.
Full knowledge will come with time, experimentation and patience. Try
out as much stuff as you can, and look at other maps to see how they're
made (without stealing/ripping anything though). And don't forget to
save often while you're experimenting new stuff (doing also backups
pretty often - when you change something major in a map don't rely only
on the Undo function, since it's all but stable and reliable).
After you created a map that seems complete enough, try submitting it
to some Unreal website (UnrealPlayGround has a nice Beta Testing map
upload function, but you can also post a link to the map on the forums
of sites like NaliCity and BeyondUnreal). Probably your map will not be
very good and the feedback that you will hear will rarely be positive,
but don't get discouraged and keep on mapping trying to improve your
map following the suggestions. Keep an open mind and don't think that
your map is the best map on Earth, because it will never be such.
If you will keep listening to advices you will be
a good mapper in no time.
Good luck!
|
|
 |
 |
 |
|