Sniper's Paradise - Editor Tutorial!
Unreal Editor Beginner Tutorial
So you've decided to start making levels for Unreal, but have no idea where to begin? This basic tutorial will get you far enough to start making maps of your own, whether you are a complete beginner or already proficient in another 3d program. Although it might seem overwhelming at first, with enough practice and studying you will be able to make anything your imagination can come up with.
Before You Even Open The Editor
Obviously, you have to have the game installed to make levels for it. Be sure to download the UnrealEdFix4 patch. In addition, make sure you have updated drivers for all of your computer hardware.
The Unreal series is versatile so you may want to get a few extra programs to get the most out of the editor.
Paint - A Paint program is useful for making your own textures and character skins, as well as the level preview screenshot that appears when you select a map in game. Any program that can save bitmaps will work.
Now that we have everything we need to get started, let's open up the editor. The program can be found in the Unreal System folder, named UnrealEd.exe. For convenience you may want to place a shortcut to it on your desktop. If everything is working properly it should start up without any problems.
Navigating The Editor
Your first look at the editor might be incredibly overwhelming, but this tutorial will guide you through the interface to give you a better idea of what everything does.
Important Note - Do not press any buttons until you know what they do, this tutorial assumes everything is still set at default and you might accidentally change something that should be left alone.
The four main windows of the editor are our viewports. The three grey ones are set by default to display the Top, Front and Side views, while the window with the black background and blue grid is our 3d viewport. At the top of each viewport is the toolbar we can use to customize the displays or select different ways to look at our level.
Right now we only have to worry about how to move around in the viewports. For the 2d viewports, navigation is simple. Holding the left mouse button and moving the mouse moves us around, while holding the right mouse button moves us around at twice the speed. Holding both mouse buttons allows us to zoom the view. Moving the mouse up zooms out, and moving it down zooms us in. For people with a scroll mouse, the mouse wheel can be used to zoom as well.
Navigation in the 3d view takes a little getting used to. Holding the left mouse button moves the camera as if it were a person walking on level ground. Up and down moves the camera forward and backward, while left and right turns the camera left and right. Holding the right mouse button makes the camera act like a person standing still and looking around. Up and down makes the camera look up and down, while left and right make the camera look left and right. Holding both mouse buttons allows us to move the camera while it continues to look straight ahead. Up and down moves the camera up and down, while left and right moves the camera left and right. Take a little bit of time to practice moving around in the viewports until you are comfortable with it.
The File Toolbar
First we're going to take a look at the File toolbar, which is pretty self-explanatory. It has links for Create New Level, Open Level, Save Level, Import and Export Levels.
The next area we will be looking at is the Browser.
Classes Browser - Actors are anything in the level not used to create the architecture. They include weapon and item pickups, path actors for the AI. After you are able to create basic rooms we will come back and take a closer look at some of the Actors.
Music Browser - This is used to open music files.
Sound Browser - This is used to look for ambient and triggered sound effects for your level.
Texture Browser - This is where we find pictures to apply to surfaces to make them look like a floor or wall etc. In here we can also import our own textures to use as well as create effects with our textures.
IMPORTANT NOTE - NEVER resave a texture or package that comes with the game or add your own textures to one. Doing so will cause version mismatches and levels that use them will be unplayable online.
Mesh Browser - Used to view animation sequences for the weapons and characters.
The last area we will look at is the Options toolbar. Here you can open unrealscript editor (beyond the scope of this basic tutorial), buttons for viewing actor or surface properties and to rebuild a map. To bring up the Rebuild dialouge box use (F8)
Rebuild Geometry - Rebuilds all geometry, even if it is hidden. Does not calculate lighting or paths.
Apply Lights - Rebuilds all lights, even if they are hidden. Uses the current geometry to calculate it, does not take into account changes that have not been rebuilt.
Path Define - Builds paths for the AI to navigate the level.
Test Level - Saves your level to a temporary file and runs it in the game (Control P).
Help Button - Non-functioning.
Advanced Properties
This section of the tutorial will cover a few options that can be changed in the Advanced Options menu. Click on Options >> Preferences to bring up the Advanced Option menu, then navigate to Editor >> Advanced. The most important property here is AutoSave, this feature saves you a lot of rework from crashes or other errors. I would make sure AutoSave is set to True, and AutoSaveTimeMinutes is set to a reasonable value, the default being 5. As you are working on your level, the editor will automatically save it to the maps folder as an Auto file, numbered 0-9 in sequence. If the editor crashes before you have a chance to save your level, the easiest way to find the most recent Auto file is to open the Uneal/Maps folder, right click and choose View >> Details to see the one that was saved at the most recent time. Reopen the editor, and open that Auto file. If everything looks normal, save it as the level you were working on and continue from where you left off.
Now that we know a little bit about how the editor is organized and how to find our way around the viewports, it's time to take a look at how to make BSP architecture.
First, a quick note about how the UnrealEd universe works. Although the 3d viewport looks empty, the entire universe starts out completely filled up. To make our levels, we have to carve holes into this filled up space which we can then add smaller parts back into. This system is an improvement over engines like Half Life's, where even a microscopic hole into the void can make a level unplayable.
The toolbar at the left of the editor is used to create shapes such as cubes and cylinders which we can manipulate to make our level. Right-clicking one of these brings up a property menu which can be used to adjust the number of sides, hollowness, etc. Pressing one of these buttons causes the red Active Brush to appear in the viewports, this brush is our "rubber stamp" that we use to create our architecture. It is only viewable in the editor and does not show up in the game.
Cube - Height, width, and breadth can be manually set in the property menu. If Hollow is set to True, the cube's Wall Thickness can be adjusted here too. In addition, the cube can be set to Tessellated, which shows each face as two triangles instead of one square.
Curved Staircase - Inner radius of the curve can be set, as well as the height and width of each step along with the number of steps. The total angle of the staircase can be set, as well as making it counter-clockwise instead of the default clockwise direction. An additional height to be added below the staircase can also be added.
Spiral Staircase - Inner radius of the curve can be set, as well as height, width and thickness of each step. The number of steps per 360 degrees and total number of steps can be set. The top and bottom surfaces can be set to either Sloped = True, which makes them a smooth ramp, or Sloped = False, which makes them stairs. A clockwise or counter-clockwise direction can also be set.
Linear Staircase - Height, width, and length of the steps can be set, as well as the number of steps and an additional height to be added to the bottom of the staircase.
Sheet - Height and width can be manually set, as well as the number of horizontal and vertical segments. The axis that the sheet is oriented to can also be set.
NOTE - No matter what the properties of sheets are set to, they can never be solid and will not block players or weapons. These are mainly used for 2d decorations like spider webs, and for zoning off a level.
Cylinder - Height, outer radius and number of sides can be set manually. If Hollow is set to True, inner radius can be adjusted as well. If AlignToSide is left True, the edges of the cylinder will line up with the grid. If set to False, the vertices at the corner will line up with the grid.
Cone - Height, outer radius, and number of sides can be set. If Hollow is set True, the inner radius and cap height can be set. AlignToSide can also be set as with cylinders.
Volumetric - Used in to create the illusion of 3d fire and chains etc. Height and radius can be set as well as the number of sheets.
Sphere - Radius and sphere extrapolation can be set. Values larger than 4 can slow down or crash the editor.
Manipulating the Active Brush
Ok, now we can turn the Active Brush into the shape that we want, but these shapes are way too basic, and more importantly, it's always at the origin! In this section you will be shown how to manipulate the Active Brush and do simple vertex editing to get the exact shape we want to use.
Moving the Active Brush - This is best done in one of the 2D viewports, it works the same in the 3D viewport but the direction is hard to control. To move the Active Brush, click on it to highlight it in one of the viewports. Hold Ctrl, then hold the left mouse button down and move the mouse to make the Active Brush move. Another way to move it is by holding Shift instead of Ctrl, this causes the camera to follow the movement. The change in position will not show up in the 3D viewport until you click on it. This can be changed by clicking on the joystick icon at the top of the viewport (NOT the one in the top toolbar that tests the level). Clicking this makes the viewport change to Realtime Preview mode, which among other things shows brush movements as they happen. This can be used in all four viewports, although if you have a slower computer you might only want to have the 3D viewport set to do this.
The brush automaticaly snaps to the grid when moving. For fine tuning, you can adjust the size of the grid using the scroll-box in the bottom toolbar, but It is highly recommend keeping it at 16 or greater. Setting it lower leads to a greater chance of BSP errors (the hall of mirrors or HOM effect) forming in your map because of brush misalignments, and players will not notice brushes being rounded off to the nearest 16 anyway. In addition, to the left and right of the scroll box are toggle buttons for turning the movement and rotation grids on or off.
NOTE - Turning the grids off is NOT RECOMMENDED. Doing so can cause slight misalignments in your brushes, which in addition to looking sloppy in game, will take more time for the engine to calculate (making it slower) and gives a greater chance for BSP errors to form. ALWAYS keep your brushes on the grid.
Rotating the Active Brush - Similar to moving the Active Brush. To rotate it, hold down Ctrl and the right mouse button, and move the mouse left for clockwise or right for counter-clockwise. Holding Shift instead of Ctrl causes the camera to rotate with the brush. If you want to rotate the brush around a different point, the brush origin (small red plus sign) can be moved by holding Alt and the left mouse button.
Selecting this button in the left toolbar lets you rotate the brush as well. The only added benefit to using this is that holding Ctrl with the left mouse button rotates it along another axis instead of moving it.
Be sure to select the camera button to be able to move the brush again, and to avoid accidentally rotating it.
Scaling the Active Brush - There are two ways to scale the Active Brush. The first way is by manually entering numbers in the Brush Properties box by double clicking the active brush >> Brush >> Main Scale >> Scale. From here you can scale the brush using X,Y, or Z.
The boxes scale the brush in the X, Y and Z directions respectively. It is best to use whole numbers to avoid the same problems that turning the grid off would give us.
Selecting the Actor Scaling button in the left toolbar lets us do the adjusting more quickly, and it is easier to get the scale right. With this selected, highlight the Active Brush in one of the 2D viewports, then hold Ctrl. Now, holding the left mouse button and moving the mouse left and right scales the brush in the left and right direction, while holding the right mouse button and moving the mouse up and down scales it in the up and down direction. The direction is independent of the axis, so it works the same in all three of the 2D viewports.
Another effect selecting the Actor Scaling button has is when you move the brush with the Shift button, it leaves behind a "ghost" showing you where the brush was while it is being moved.
Vertex Manipulation - Care must be taken when moving the Active Brush vertices. All of the vertices of a face must line up along a plane. If we were to take one of the top vertices of a cube and move it up, the top surface is no longer planar and a BSP error will appear in the game, most likely a Hall Of Mirrors (HOM) effect where the last image to be displayed in the affected area remains there in a repeating loop.
One way to move vertices is to simply click on it in the 3D viewport, then hold Alt and drag it with the left mouse button. Clicking on them in the 2D viewport only selects the top one, and if a bottom vertex is selected in a 2D viewport it will not move. Another problem, particularly with cylinders and cones, is that the vertices sometimes will not snap to the grid. In this case usually selecting another vertex then selecting the problem one again and moving it around will work. Also, after vertex manipulation, if you create another primitive sometimes it will be "knocked off" the grid.
If this happens, there are two ways to correct it. The first it to simply right click any vertex, and it should snap to the grid. For objects such as cylinders whos vertices aren't normally snapped to the grid, right click it and select Reset >> Move To Origin.
Another way to move vertices is to use the Vertex Editing button in the left toolbar. With this selected, both vertices can be selected and moved at the same time in the 2D viewports. Click on a corner to highlight the vertices, then hold Ctrl and move them with the left mouse button. Individual vertices can still be selected in the 3D viewport with this tool.
Once you have practiced creating and manipulating primitives using the Active Brush, it is time to make our first room. For simplicity's sake we'll start out with cube shapes. Right click the Cube primitive to bring up the property menu, then leave it at 256 for height, and put 1024 for width and breadth and hit Build. Remember that our universe starts out filled up, so we must now subtract our cube from it.
Hitting the subtract button in the left toolbar now would create our first room, but unless you have already selected a texture it will display the Default Texture. Go ahead and press the button (They look similar, but Subtract is the one on the left below the add button) to see what it would look like.
Hit Undo to get rid of the subtraction (You might have to hit it a few times if you accidentally selected a polygon or vertex etc). How do we avoid using the default texture? If you remember the beginning of this tutorial, showed you the browsers. Press the arrow to bring down the Texture Browser.
With the texture browser open, press the Load button and double click on the first file in the texture folder, which should be Ancient.utx. The file will load and the textures will be displayed in the browser. If you scroll down the list, you'll see that the selection looks kind of limited. This is because the browser is set by default to display only the first group in that texture package. To see the rest of them, you can use the dropdown to see all the groups.
Using the scroll box will display textures in the different groups, while pressing All displays all the textures in that file. For our room, it would save time to choose a wall texture since most of the surfaces are walls, so deselect All and select the Wall group. For this tutorial Let's choose the first one in the group, but you can select any one you want, or open up another texture package altogether to find one you like. Click on the texture you have selected, then close the texture browser and hit the Subtract button. Move the Active Brush out of the way and you will see our room as a yellow brush in the 2D viewports, and in the 3D viewport we will see our first room.
Changing Textures - That's a little bit better, but the floor and ceiling don't look right at all. There are two different ways to change the textures on surfaces. The first way is to click on it in the 3D viewport (Holding Ctrl to select more than one), then clicking a texture in the Texture Browser. Another way is to select a texture in the Texture Browser, then hold Alt and click on a surface to apply the texture. Try replacing the textures on the floor and ceiling with better looking ones using each method.
An Important Note About Scale - Next we will learn how to scale and manipulate textures, but how do we know what will be the right size for the game? What does 256 units mean anyway? When I first started level editing, it didn't occur to me to use something to get the scale right, and a room I made ended up being enormous. From then on, I always placed a player in the editor so I could see exactly how big things were. To do this, open the Actor Browser and select Pawn >> PlayerPawn >> UnrealPlayer >> Human >> Male >> MaleOne. Right click in any of the viewports and hit 'Add MaleOne Here'. A MaleOne player will appear, which you can move and rotate the same way as you did the Active Brush. Move him so he's standing on the floor in the middle of the room. Now we're ready to adjust our textures.
Aligning Textures - As you start adding more rooms and decorations to your level, the textures will not always line up correctly. This is particularly true if you have scaled the Active Brush. It is always a good idea to align the textures on your brushes. To do this, right click the surface (Or hold Ctrl to select multiple surfaces and right click the last one) and select Surface Properties >> The Align Tab >> Floor/Ceiling, Wall Direction, depending on which one it is. The wall textures may move and not look right anymore, but they can be adjusted later.
Adjusting Textures - Right now the most noticeable problem is our floor is way too big. To bring up the surface's properties so we can change this,we can use one of four ways:
1) Right click it in the 3D viewport and select Surface Properties.
2) Highlight it in the 3D viewport and hit the Surface Properties button in the top toolbar.
3) Highlight it and select View >> Surface Properties in the top menu.
4) Highlight it and hit F5.
Select the Pan/Rot/Scale tab to see the texture manipulation options. At the bottom is the Scaling box. You can either choose a value from the Simple scroll down box or enter your own value, which will scale both the U and V values by the same amount, or enter separate values into the U and V boxes below it. Clicking on Relative will change the scale by a percentage of what it is already at. For the texture I used, scaling it to .25 looks right.
Now to adjust our walls. You can either hold Ctrl and select all of them individually, or right click one and hit Select Surfaces >> Adjacent Walls. Open up their properties and select the Pan/Rot/Scale tab. Clicking on the Pan buttons will move the texture in the U (Side to side) or V (Up and down) directions, and holding Shift will pan it in the opposite direction, in case you missed the obvious note on the right hand side. For my wall texture, I scaled it down to .5 and panned it 256 V units to line it up correctly.
For the ceiling, experiment with the Rotation property. I left mine scaled to 1.0 and rotated it 45 degrees.
Textures can also be panned and rotated using the tools in the left toolbar. Using these buttons gives you better control over how the textures line up. For panning, hold on to Ctrl and use the left or right mouse buttons to pan in the U and V directions respectively. For rotating, hold Ctrl and use either mouse button to rotate it.
Now that we know how to make a room, try scaling the Active brush down and using the Add button (next to Subtract) to place a few pillars near the sides. If you move the Active Brush out of the way you will see that Adds are blue. Choose an appropriate texture for your pillars and align them properly. You can also use Subtracts to make hallways leading from your room to others. If we wanted to make another room at the end of the hallway exactly the same as our first one, we can easily duplicate it. There are two ways to select all of the brushes that make our room. The first one would be to hold Ctrl and click on each of them in the 2D views. Sometimes rooms get a bit complicated, and we may not be able to click on a brush in any of the 2D views. In this case we would use the other way of selecting them. Make sure you have the Camera button in the left toolbar selected, then move your mouse past one corner of the room, above or below and off to one side in one of the 2D viewports. Hold Ctrl and Alt, then left-click and drag your mouse to the opposite corner. You should see a red box form around the room. Let go of the mouse button and everything that has a vertex inside the box will be selected. Now that we have our room selected, right-click part of it and hit Duplicate. The duplication appears one grid unit below and to the right of the original. Now you can move them as one to the end of the hallway.
IMPORTANT NOTE - If you make any changes to BSP brushes or if you duplicate brushes, you will have to use the Rebuild Geometry button to see your changes. Since we haven't added any lighting, only use the Build Geometry button for now.
Now we have learned how to create BSP architecture using the Active Brush, and more advanced use of BSP can be discussed in this tutorial. But it is quite obvious that it would take forever to make levels with the amount of detail found in Unreal with BSP architecture alone. This next section will discuss the use of Lighting.
Lighting is the easiest thing to learn, but the hardest to master. It takes a lot of practice to figure out how to make good lighting, and this is where a lot of your level making time in the editor should be spent. Now that we have reached this part of the tutorial, click on the Dynamic Lighting view in the 3D viewport toolbar.
To add a light to your level, right click in any of the viewports and hit 'Add Light Here'. This adds a point-source light to your level, meaning the rays are emitted from it in every direction. Hit the Rebuild Geometry to properly apply the lighting to the level, then double click the light so we can take a look at some of its properties.
Light Brightness - This value can be set between 0 and as high as you want up to 255.
Light Hue - This changes the light color, can be set from 0 to 255.
Light Saturation - Setting a light color will not do much if it is still set at full saturation. The more toward 0 it is set, the more color will be in the light. This chart is an example using purple as the light hue:
In general, you want to avoid the "disco lighting" syndrome. A lot of different colors in one room will not look good most of the time. There are exceptions of course, don't be afraid to experiment with good use of color in your maps, your personality and style should be reflected in the levels that you make.
The only things I want to cover for the second set of lighting properties are bSpecialLit, Light Effect, and Light Type. bSpecialLit is used when you want to light something up separately. Select a surface in one of your rooms and open up the Surface Properties box. In the Flags tab, there is a check box for Special Lit. Click it and close the property box, then rebuild lighting. You will notice that the surface is completely black now. This is because it will only be affected by lights with bSpecialLit set to True. Add another light to the room, and set bSpecialLit to True. Make it a different color than the one that is already there so you can see the difference, then Build Lighting.
A light can also be set to use an effect in the Light Effects scroll box, but LE_TorchWaver, LE_FireWaver and LE_WateryShimmer are obsolete (Use Projectors instead). You can also set them to flicker or pulse by selecting one of the effects in the Light Type scroll box. Experiment to see what each one does. Once again, you will want to avoid overusing these effects.
Now that we have completed the basic visual aspects of level design, it is time to look at the gameplay. In the next section, we will learn how to create simple paths for the player bots to use, and take a look at a few things in the Actor Browser. We will also look at a few advanced uses of BSP.
By now you should know enough to make all of the geometry for your level, and light it up properly. In this part of the tutorial we are going to make a simple path network to teach the bots how to navigate your level, and add weapons and items.
PlayerStarts and Items
Up until this point you have been unable to test your level, if you try it gives you an error telling you that there are no Player Starts. Let's go ahead and add those now. Open up the Actor Browser and go to NavigationPoint >> PlayerStart. Right click in your level and select 'Add PlayerStart Here'.
The PlayerStarts are directional, when you select one you can see the red arrow pointing from it. When a player starts at this location they will be facing in that direction, so it is a good idea to point them away from walls etc. One player start will not work for a multiplayer game, so we need to add a few more. Think about how many players you are designing your level for, then add a few more player starts than you need and spread them around the level. Try to start them in out of the way places so they don't start in high traffic areas where they can be spawn-killed easily.
Now we need some weapons and ammo. For the weapons, go to Inventory >> Weapon >> and choose the wepaon you want to add to your level. All of your ammo can be found in the Actor Browser under Pickup >> Ammo >> Ammo, while things like Health and ShieldBelts are under Pickup >> PickUp. Try not to add too much or too little ammo, and definitely do not overuse weapons or items like ShieldBelts.
This is enough for human opponents to be able to play your level, but bots will stand around for the most part, unless they see a weapon or item nearby. Computer AI is not smart enough to be able to figure the level out by itself, so we need to tell it how to navigate our level. More complicated things like elevators will be not be covered here, but I will show you how to make a simple path network for the bots to follow. The actor we will be using is a NavigationPoint >> Pathnode. They use an apple icon (Don't ask, I have no idea either), and should be placed at intersections along the paths you want them to follow. Items and Weapons act as pathnodes as well, so you do not need to place one on top of them.
Once you have your nodes in place, either do a PathDefine for the editor to create the path network. Once it is done, you can see the path network by right-clicking on any of the viewport toolbars and selecting View >> Show Paths. Do not worry about the color of the paths for now. If any of them do not connect, make sure they have a good line-of-sight to each other and that they are not too close to any walls.
Notice that the paths go through all of the passages in the level. When building your path network, you want the bots to act human, so place the Path Nodes how you would run through your level, not just right along the center of every hallway. If you would run from one corner of a hall to the opposite corner because it would be faster, put the Path Nodes so the bots will do the same thing. Do a lot of testing with your path network in place to make sure the bots do not get caught up on any of the level geometry or do not go down certain paths. You might have to move or add Path Nodes to fix any problems with your network.
Advanced BSP
For the last section of this tutorial, It will cover some more things you can do with BSP. We already know how to use Add and Subtract in that section of the toolbar, now let's see what else we can do.
Intersect and Deintersect - The two tools, Add and Subtract can be used to manipulate the Active Brush. To see the effects, create a small cube and place it at the corner of one of our pillars.
Pressing Intersect gets rid of all parts of the Active Brush that are in empty space:
Deintersect gets rid of all parts of the Active Brush that are in solid space:
This can be used to make complicated shapes with the Active Brush that we can use in other parts of the level. Note that any surface of the resulting Active Brush in contact with the level's geometry will keep the texture and texture settings of that surface even if you have a different one selected in the Texture Browser. You might need to change them once you add or subtract the Active Brush if it is not the one you want. I do not recommend using either of these buttons however, anything complicated enough to need them should be done with multiple brushes. Intersected and Deintersected brushes are very prone to causing errors.
Add Special - The only thing we are going to look at is Zone Portals. Let's take a look at our example map again, this time I've added a hallway and another room to the end. Press the Zone/Portal View button in the 3D viewport toolbar and you will see that the entire level is all one color group. The engine sees the entire level as one zone.
Zoning off a level helps the engine render BSP faster by helping it figure out what polygons it has to display. Zone sheets should be kept as small as possible, they should not be used in wide open spaces much. Good places for zone portals are hallways or doors between rooms. Create a sheet large enough to completely cover our hallway, then click the Add Special button. Select Zone Portal from the scroll box and hit Ok. The sheet will be displayed as a green brush. Click the Rebuild Geometry button and take a look at our level again:
Zoning off a level helps your level run a little faster.
You now know enough to start making basic levels. In general you want to minimize using BSP. You want to keep your poly count as low as you can, this can be viewed by opening up the rebuilder (F8).
There are plenty of tutorials out there that cover more advanced topics, take a look at my other tutorials to give you an idea of some things you can do in the editor. Keep practicing and you will be able to make great levels pretty quickly. If you are serious about game design, don't get discouraged at first. Above all, don't fall into cliches. Keeping your own style will set your levels apart and give the community unique maps to play. I hope this tutorial was helpful. Good luck!
All logos and trademarks are properties of their respective owners.
Unreal™ is a registered trademark of Epic Games Inc.
Privacy Policy
Website by Softly
Powered by RUSH