Now to begin one of the more anticipated chapters of this tutorial: The exterior structures portion. This is where you will begin building your antenna array and other exterior structures, like support beams and miscellaneous peripheral architecture.
However, before we start slave-driving our construction crew, let's tie-up a few loose ends from the last tutorial:
Remember that we created a means for a player in the lake to find a way out – and explore some underground architecture. We now want to enhance this area just slightly before we move on. First, let's take a close look at what we have:
An under-water shaft that can be entered from the lake. The shaft leads into an underground room, possibly some kind of storage room (hint here.) From the upper portion of the room, leads another shaft, which ends with an underwater bridge (you may or may not have created glass sides on the bridge.) The bridge, in turn, takes the player to a large building whose foundation is on the lakebed, yet extends up and out of the water.
First, lets add two zone portals to block-off our first shaft – the one that leads in from the lake. The shaft was set to be about 100 units high by 100 units wide (your shaft may have different dimensions.) Create a plane brush and position it near the entrance to your underwater tunnel.
Right-click the plane brush tool and bring up the properties dialog. You do not have to be too specific here, as long as the plane brush is larger than your shaft opening. Place the plane brush a small distance inside your tunnel shaft. Be sure that all sides of the plane brush actually go into the walls of the tunnel. Unfortunately, you cannot intersect or deintersect a plane brush. (try it and you will see.)
Click the add special tool, select zone portal from the pop-down menu and leave the defaults. Click the add special button to create the zone portal.
Note: in your camera view, the zone portal object will appear solid, with a texture. However, in gameplay, the portal will be invisible and non-solid, so it does not matter what texture it may have been assigned by UnrealEd.
Go ahead and repeat this process to create another zone portal at the other end of this tunnel, the end that opens into the underground room.
We have just created two new zones: the tunnel became a new zone when we added the first zone portal and the underground room became the second new zone when we added the second zone portal. Basically, we took one large zone and carved it into three pieces.
However, when we did this, out tunnel lost its "water" properties. If a player were to enter your tunnel from the lake, he would instantly go from swimming to walking. This would be considered a truly unreal situation. And, since the name of the game is "Unreal," it doesn't mean we want our level to be that way. So, why did we create the new zones if they were working fine to begin with?
Easy answer: Attention to detail and plausibility.
Attention to detail will win you all those level creation contests and, more importantly, earn you "Unreal Level God" status among players of your levels! This is a very lofty goal and difficult to achieve. It takes a great effort on your part for creating truly creative and entertaining levels. But all the creativity in the world is no match for shear attention to detail. Plasibility simply means: "could it happen?" Maby it is not understandable, but could it really happen that way?
Okay, enough rambling. The reason for the new underwater zones is primarily for the purpose of controlling sound. The player is leaving a wide open underwater area into a small, restricted area. Chances are, when the player shoots his weapon, an echo of some sort should be heard – even underwater.
Maneuver your camera view anywhere into your underwater shaft, as long as it is between the two zone portals. In your object library, select CLASSES>INFO>ZONEINFO>WATERZONE. Right-click on the floor and select "Add WaterZone Here." The waterzone icon will appear. Double-click on the waterzone icon to open the properties box.
Normally, after adding a WaterZone Info object, we would leave it at that. However, since our goal here is to change the sound properties in this zone, we need to change a few settings. The only setting we are concerned with is the property called "Reverb."
Expand the Reverb property and set the subproperties like so:
(Again, I am not an expert with UnrealEd, so these descriptions may be incorrect, but they are logical. Any confirmed corrections will be appreciated.)
SpeedOfSound: This should be the time it takes for a sound to reach a solid object from its source. In other words: Source is player weapon, solid object is far wall – how fast does the sound travel?
The default setting is 8000. It is assumed to be 8000 units per second. Set this to a lower number, like 4000.
Expand the Delay setting. You will notice up to five properties can be adjusted for this setting. Similar to keyframes. For now, only adjust the first two, which are defaulted to 20 and 34 respectively. Reset them as desired, for example: 60 and 100.
Set the bReverbZone to true.
Set the bRaytraceeverb to true.
Collapse the Reverb setting and close the box.
Now, you need to recreate the zone object for the other tunnel on the other side of the underground room. The one above water. This is easy: click once on the WaterZoneInfo object to ensure it is highlighted (it will have a green tint.) – press CTRL and W to duplicate the zone info object. Move the zone info object to your other tunnel the same way you would move any other object.
Once the copy of your zone info is in place in the second tunnel, double-click on it to open its properties box. Go to the ZoneInfo property and set bWaterZone to FALSE. This will turn off the water properties for this zone. However the reverberation properties are all still in effect. Now, copy this zone object and move the copy into your underwater bridge. Now your bridge will echo.
Special note: By copying the WaterZone class to the "dry" tunnel, and changing it's porperties of bWaterZone to false, the zone will still appear to be under water, but every other ambient property will react as though you are on dry land. I.e., you will walk and breath like on dry land, but you will appear to be underwater.
This example simply shows you how to further manipulate preset zone classes. In this case, you are "under water", but still able to move around and breathe - for real effect, you can change the gravity settings, simular to the way you set the gravity in your large building.
The key here is plausibility. It is an unusual environment, but could it happen? I say "sure, why not?"
Note: you can, and probably should readjust the reverb properties just slightly in each zone to give each area its own "personality."
Creativity tip: The underground room is actually two separate zones in itself. Copy the underwater tunnel's WaterZone object to the underwater portion of the underground room and beef-up the reverb delay to create a wild echo. Copy the WaterZone object from the "dry" tunnel (remember, we turned off the 'WaterZone' property to make it dry) to the above water portion of the underground room and set the reverb to a short delay. Imagine the look on your players' faces when they realize the change in echo reverb when they go into or out of the water!
The last loose end from our previous tutorial deals with the building we added. Because we created a zone portal that encompasses the entire map, no matter where we create an opening to the world above, the water "surface" texture will appear. So, we need to be creative!
Move your camera view into the building and focus your axis views on the building so you can get a good look at it from all sides. This explanation may not make a lot of sense until we get closer to the end result, but you have followed along this far!
Create a cube brush that is large enough to reach all four walls of your building. The brush will be a floor, so make it about 10 to 20 units think and position the brush so the "top" of the floor is about one grid square below the water surface. Do not worry if there is not enough room for a player to stand on the floor. Select an appropriate texture and click the add to world tool to add your floor. Next, resize your cube brush so it is a little larger in width and breadth as the original entrance you created on the ceiling of your building – the entrance into the penthouse. Make the cube at least 200 units tall and place it slightly into the bottom of the floor, directly under the penthouse entrance. Click the add to world tool.
Without resizing the height of your cube, set the width and breadth of your brush to 20 or so units smaller than it is now and move it so the top of the brush just slightly extends above the top of the floor. Move the brush slightly to one side, yet still under the penthouse entrance. Click the intersect tool to eliminate the spare part of the brush above the floor. Click the subtract from world tool. You have now created a hole in the upper floor directly under the penthouse entrance. There should be a small area of the floor still available directly under the penthouse entrance, should a player wish to stand there before going up.
Now, resize the cube by adding 20 units to the width and breadth (the same 20 units you subtracted before) and set the height to 120 units. The cube brush should now be the same size in width and breadth and the last cube object you added, but only about 120 units tall. Position this cube next to the previous cube object you created, the one that contains the hole in the upper floor.
Place your brush in a position where the bottom of the brush is even with the bottom of the cube object. Also, be sure the brush is just slightly inside the cube object, but not affecting the "hole" we created earlier. Click the Add To World tool to add this second cube. Go ahead and readjust the textures for a seamless fit. You should not have a ceiling at the top of the building that obstructs the "water surface" texture of the large zone portal. Protruding out of that ceiling should be a large "L" shaped block – with a hole running down the barrel. Resize your cube by subtracting 20 units from the width and breadth and 10 units from the height. Position the cube brush into the "arm" of the "L" (the block you just added.)
Adjust the cube brush it is inside the arm and makes contact with the hole in the barrel of the larger block. Also, set the cube brush so its top is slightly above the top of the "arm" block. Click the Intersect tool and click the Subtract From World Tool.
What you should have now is a trough. Like a water trough for horses. The player can enter this trough, swim into the "L" shaped structure and up to the "water surface" just below the entrance to the penthouse. All that is needed now is to add a zone portal to the entrance of the trough.
Do this now. Choose a nice water surface, then commence to creating your zone portal. Be sure the zone portal is a good fit. Make it just slightly larger than the opening so its edges actually go into the troughs walls, but not so big they stick out the other side. Also, make the zone portal very close to the tops of the trough walls, so a player in the water can climb out (within one grid square should be plenty.) Click the Add Special button.
Now, go back to that first underwater tunnel and copy the WaterZoneInfo object there. Move the copy to any position within this trough. TA-DA!
Now, you have a creative way to get around that water surface left over from a previous zone portal creation.
Now, on to our array.
Please note, though this tutorial will show you the things to should take into account when creating things, especially architecture, it is still up to you to come up with the creativity part. So, at this point, we will get you started and even supply you with a partial map containing a sample array. Actual positioning and design style is entirely up to you. For this reason, there will not be any images to guide you along. The tutorial is intended to help you develop creativity as well as plain old know-how.
Thusly said, let the creativity begin!
First things, first. When creating exterior structures, you need to plan ahead. This concept is primarily what this chapter of Special Edition is all about. You should have a basic idea of what you want your structure to look like and what its purpose will be – both, its "storyline" purpose and its practical purpose. You also should take into consideration what it would take to create such a structure in real life. The materials that would be required, the overall design and functionality of such a structure and so forth. Fortunately, the cost of construction is of no concern here!
Your array is there to server a purpose. In the storyline: The player has salvaged parts of the wrecked Vortex-Rikers ship to construct this array for the purpose of initiating possible communications with an off-world entity. The practical purpose is simple: Lots of fun. Unreal pumps a players adrenaline and gets his heart pounding. In real life, many situations will do the same. However, on of the most consistent causes of this is the precariousness of great heights. Thus, by creating a vertical level based on a vertically oriented structure (as opposed to a large room or set of rooms) will exhilarate the senses in as closely as possible a similar way to real life.
In other words, it is one thing to stand on the edge of a 500-foot cliff. It is another thing to stand on a 2 x 4 plank of wood 500 feet in the air. We want the plank of wood.
Let's examine this scenario: we want to thrill the player. Therefor, we will use narrow passages and skinny rails to construct our array. An array, by the main definition is "an orderly arrangement." This actually suits us in a couple of ways: Our array must be orderly. It shouldn't be so large and complex as to give the appearance of a complete mess.
Your array will actually be a very simple structure, yet it will look more complicated than it actually is. Because of the processing power your players will need with outdoor scenes, we need to keep the array simple.
First, lets consider the basic structure. We will have two towers: One which contains an elevator so players can easily move to the top of the array. The second will be the main support for the antenna itself. It would look awkward for these "towers" to be large, castle-like structures, yet they would be entirely out of place as spaghetti poles. And, due to the incredible height of out array (after all, our player had to build the array where the wreckage stood – on the valley floor) as needed to get its signal out above the valley, the main support beams (the towers) also need support for stability.
So, envision the simplicity of your array: two large poles sticking out of the valley floor and extending to a point slightly above the top plateau. Each pole is having two horizontal beams for support. At the top of each pole, the actual reason for having them to begin with: The control house and the antenna.
Remember that this chapter is stressing creativity. Though it will describe how to build this array, your own creativity is tantamount. Do not be afraid to experiment or even go along your own path. If you array ends up entirely different from the one included with this tutorial, all the better! To help encourage this, all sample maps included with these tutorials are different from each other.
First, let's pick a nice spot to put the base of your first "tower." The array would not look right if the beam were just sticking out of the ground, so you should decide on what you want your foundation to look like. The sample map will show a large, round platform with a few sets of curved stairs leading up to it. Even though the platform is not high enough to require stairs, they add the ambiance of the overall structure.
Use textures wisely. Even though this structure was "built" with spare and salvaged parts of the Vortex-Rikers craft, all the textures should come from the same library. For instance, the Vortext-Rikers textures are in the PlayerShp library. Each texture of each element for your array should be relevant to each other on that element. However, add-ons like the stairs could have a gothic or primitive texture to indicate this was an "afterthought" or "add-on."
Once you have a satisfactory platform for your tower, let's begin the construction of the array itself. To create a convincing support tower (that has a lift inside), your tower should be large in breadth and width. This will give the feeling of strength – very much needed to hold things together in the strong winds that will inevitably be at the top. Create a cube brush that is at least 200 width and 200 breadth (maybe even larger if you fell like it.) Set its height to reach all the way from the valley floor to the plateau at the top. In the sample file, the world is about 10000 units high and the tower is about 8000 units high. This provides for a very thrilling experience, should you fall off! After all, half the fun in playing is dying in ways like this, right? Set the cube properties to be hollow with a wall thickness of 10 or 20. Now, choose a likely texture. Reposition the brush so it is about 200 units above the ground (the valley floor above the water surface.) Click the Add To World tool to create your tower.
Creativity Tip: for a really exciting ride while going up or down the lift, use a masked texture: a texture with transparent areas like a grate or fence type texture. This way, you will see the world whisking by as to go up or down!
Now you have a really big hollow block just floating there in mid-air. We should add some kind of support for this thing before the player begins to wonder if you have lost all your senses. Resize your cube brush to about 10 or 20 units for width and breadth and add about 250 units to the height. In the top view, move the brush to one of the corners of your tower and have it overlap slightly. In your front or side view, move the brush so it is slightly into the base you have created earlier and check the top. As long as the brush is flush or extends above the top of your cube – you are all set. Choose another texture and click the Add to world tool. Move your brush out of the way and zoom your top axis view in tight. All you should see the the tower and the first leg to created. Click once of the leg you created and press CTRL and W to make a copy. Move the copy to the next corner and position it similarly. Repeat this process for the other two remaining corners.
Once you have the support beams in place, you should put a cap on your tower. Click the cone brush tool. Position your cone brush at the top of your tower and bring up the cone brush properties by right-clicking on the cone brush tool. Set the sides to 4 and the height to something more respectable like 100 or 200.
Choose a decent texture and add the brush. You now have a handsome top to your tower. Now, with only six objects, you have created a complete tower. The "busier" your textures are, the more complex the tower will appear. Take this time to adjust your textures and ensure they all line up the way you want.
When you are ready, create a cube brush again and move it near the top of your tower. Adjust the brush to fit into the side of your tower nicely. Your are preparing to make a doorway into/out of the tower. Be sure the brush is at least 110 units tall and 60 or 70 units wide at minimum. Place the brush on the side of the tower that is parallel to the upper plateau – and above the plateau. In other words, do not place the door on the side facing the plateau or the side facing away from the plateau. Place it on the side with the most room in the valley to add our antenna.
Click the intersection tool to conform the brush to the solid areas only and click the subtract tool. You now have a doorway in your tower. Readjust the size and shape of your brush and create an average sized platform the player can stand on when he exits the tower. Keep it conservative, you don't want it too big. Remember that you want the thrill of height to enthrall your player. Do make the platform somewhat thick, as though some imaginary machinery could exist inside.
Now, it is time to create your movers – two of them. One for necessity and one for fun.
Put your cube brush at the bottom of the tower and readjust the size to fit. You will want it to fit comfortably inside the tower and about 10 or 20 units thick. The brush corners should slightly overlap the four tower support beams for realism. This will be your lift platform. When your brush is adjusted to a satisfactory size, move it away from the tower and place in mid-air. Add the cube object and set the textures as desired.
Creativity tip: Create additional cubes and size them into rectangles that cross like an "X" over the platform. Simply raise them just slightly above the top of the lift platform and rotate their textures to contrast against the main cube or give them different textures entirely.
When your platform is in satisfactory condition (don't forget to adjust textures for alignment, etc.), recreate your cube brush and make it large enough to entirely encompass the platform. Intersect and move the new brush to the bottom of the tower. You have created a mover before, so this time, we will simply use a checklist for completion:
Place the brush where you want your mover.
Click the Create a Mover tool.
Move the brush out of the way and fine-tune the positioning of your purple mover.
Right-click your mover (on a vertex line) and select MOVER KEYFRAME>KEY 1
Position the mover to the second position, in this case, the top of the tower, just above the bottom threshold of the doorway.
Right-click the mover and reset to keyframe 0.
In your mover properties, set the sounds as described in the previous tutorials and in the OBJECT setting, set the InitialState properties to StandOpenTimed. For movement, have the lift travel for about 4 or 5 seconds – a nice long ride.
Now, you will create another mover. Think about this: Many players of the first-person shooters get so proficient at playing, most other players just don't stand a chance. The "expert" players are just too good. So, what if you evened up the odds just a little. Say, for example, you created a booby-trap or two? Just to give the not-so-great player a fair chance at getting some kills, even if they don't get a score for it.
Let's have a little fun with this concept. Let's create an antenna that is "programmable" (in the storyline) and, therefor, is moveable. What if a player or bot were standing on the antenna, sniping everything in sight and you (the player) had access to the controls that would "realign" the antenna? …AND, in that realignment, the other player, or bot was caught by surprise and had nowhere to go but down?
Yes… that evil grin on your face is getting wider by the minute!
In your axis views, locate the proxy platform you used to create your mover (the dummy platform) and delete it. It will continue to be visible in your camera view until you rebuild the geometry. This is a good time to do this: press the F8 key, uncheck the Auto BSP checkbox and click the Rebuild geometry button.
Create a cylinder that is at least 500 units in diameter or larger. This will be the antenna dish. In the properties, give it 12 sides and make it about 10 units thick. Move the brush into a large, clear mid-air area. Add the cylinder to your world and texture it as desired. Next, create a cone brush and turn it upside-down. Be sure it has the same number of side that your cylinder has. Place the flat end of your cone up against the bottom of the cylinder and adjust its height so the cone is only a slight dome. This will give your antenna dish a domed surface at the bottom. Add the cone.
Creative Tip: Continue to use your cone by adjusting it into long, narrow "spikes" and place them on your dish. Put them around the perimeter or the bottom or the top or a mixture of all of the above. However, be careful, these kinds of details can drastically slow down game performance when placed in a large outdoor area such as this.
Before you complete your dish, an additional feature is needed before it will be a plausible structure. Create a cylinder and rotate it 90 degrees to be positioned at the pivot end of the dish. The dish will be made into a mover and this cosmetic add-on will appear to be the main hinge on which the dish moves.
After you have positioned and added the cylinder, resize the cylinder brush to the same height, but the diameter need to be as tiny as you can get it: 6 units would be nice. The new cylinder should be added to the center of the first cylinder. Yes, this is an unusual move: to add a solid inside another solid. This is done because we do not want to subtract the inner cylinder, creating a hole. The sole purpose for the inner cylinder is to give us a pivot point the is basically centered on the cylinder.
R e m e mber, the pivot point must be one of the vertex points on a mover, and the only vertex points on a cylinder are those on the outer edge. The tiny inner cylinder will provide vertex point where we can set our pivot point – and it will be relatively centered inside the main cylinder.
When your antenna dish looks good you your, create a cube brush large enough the encompass the entire dish structure and click the Intersect tool. Move your new brush to the other end of the valley. You should keep these intentions in mind while positioning the brush:
The dish should be at an even or higher level than the top entrance of the control tower.
The dish should be close enough to the top plateau that a player can jump off and usually land on the plateau itself, albeit, at a great pain and health cost
The dish must have unrestricted movement: it will not bump into the ground, etc.
When your brush is satisfactorily placed, it will be floating in mid-air well above the ground and well away from the control tower. First, we want it far away from the control tower so we have room to create a control platform. Also, it is easier to place the dish first, then build the structure to match. This allows us precision placement of the mover (dish).
As for the properties of the dish mover, set the sounds as desired. Also set this one to move in 3 or 4 seconds – enough time so the player can figure out what is going on, but not much time to do anything about it.
Now, create a second "tower," just like the first, except: it should not be hollow. It should go all the way to the ground – even into the ground. One side should be flush with the horizontal cylinder at one side of your dish If it goes into "dry" land at the bottom, you may want to create a foundation of some sort. If the bottom is under water, no foundation is really necessary (it will be pretty dark down there.)
By now, you should be well aware that your textures must be adjusted before creating a mover. Create a mover with your brush. Right-click and set pivot point to any vertex point on the inner cylinder. Then set the keyframe to 01, then rotate the dish to an almost 90 degree angle – enough to cause any player standing on it to fall off. Set your sound and move time properties and in the OBJECT setting, set the InitialState properties to StandOpenTimed. Right-click the mover and reset it to keyframe 0.
Next, create a large support beam that runs horizontally from the dish tower to one of the cliffs. Make it large and strong-looking. About halfway down the cliff is good. Do the same for the control tower. Then, do the same again, connecting the two towers. This gives the impression that the array is securely fashioned into the rock and will explain why it doesn't "rock" or "sway" at the top.
Somewhere along the support beam that connects the two towers, place another support beam to hold the control platform. Create the platform, too. Make it big enough that two players could fit and fight in close quarters. Create a wall on the platform to protect any player there from a sniper on the dish. Against that wall, create a few blocks and give the front of them a "technical" texture, like a computer screen or radar screen. Make it look like these are the controls for the array (they aren't, but we want to make the player think they are.)
Now for a little creativity: A third mover, but this one is with a twist … literally. Use a cylinder brush in mid-air to create a cylinder object about 300 units high. Keep the radius small, like 40 or 50 units. A good texture for this one is the "machinery warning stripes" (black and yellow diagonal stripes) found in the PlayerShp library. As before, create a tiny cylinder and add it to the inside of the first cylinder – at the center.
Create a small platform – big enough for two or three players – and attach it to the bottom of the cylinder. The cylinder and platform should create an "L" shape. Use a cube brush to intersect this new contraption and position the "L" shaped brush at one end of the control platform. Put it at the end farthest away from the plateau – and place the contraption so the cylinder is nearest the dish. The small contraption platform should be even with the control platform and the cylinder should overlap the corner of the control platform.
Create a mover. Now, on your control platform, you have a few computers and a really tall cylinder at one end. Place a cube object right over the cylinder – so it covers the cylinder on all sides (height does not matter.)
Now, set the mover (we will now call it your "twister-lift") to keyframe 1 (Remember to set your pivot point.) In your top axis view, rotate the twister 180 degree (so it is completely opposite) and, in your side or front axis view, lower the twister so the top of the cylinder is just above the floor of the control platform. Now, while the twister is in keyframe 1, create a small platform where the player can step off the twister. This will be your lower control platform. Reset the twister to keframe 0. All default mover settings for the twister are fine – except you will want to set the sound and OBJECT setting, InitialState properties to StandOpenTimed.
Now, using what you know of movers and other building techniques, complete the portion of your array to connect the lower control platform to the support dish tower and up to the dish itself.
One more mover for the array: create a very long pathway, like the plank of a pirate ship. Add the hirzontal cylinder to one end and add the inner cylinder. Intersect and position the plank so the cylinder is "attached" to the exit platform at the top of the control tower. Try to get the plank to reach all the way to the control platform. If it does not, or it simply does not match for another reason, get it to come close.
Set the keyframe to 1 and picot the plank, again, to almost 90 degrees. Take care to ensure the mover only picots and does not actually change position. Then reset the keframe back to 0. Again, in the properties, set the sound as desired and set the move time to something more appropriate, like 3 seconds or so. In the OBJECT setting, set the InitialState properties to StandOpenTimed.
Now, construct other architecture to compensate. Please note that all movers created in this tutorial are currently set to stand open timed. This is for the purpose of testing. These setting will be changed in the next tutorial.
For now, press the F8 key to rebuild the geometry. Remember to uncheck the Auto BSP checkbox. Save your level and press CTRL P to play it. Since you may not be able to get past at least two of the movers up top, do this to test these areas:
Play the level as usual. When you get to the plank up top, try walking across. The plank should open, allowing you to fall. Next, press the TAB key and type "ghost" (without quotes.) – this allows you to pass through walls and to fly. "Fly" back to the plank and position yourself on the control platform. Press TAB and type "walk" to return to normal game play. Use the ghost feature whenever you reach an impassible area of your map. In which case, you should be taking notes so you will remember what to fix or change later.
So, what you now have is a series of structures your players can have a bang-up time on. Included with this tutorial is a sample map. Special note: The map only demonstrated the structures. Nothing else. There are a few movers onboard, but that is all. The sample is only to demonstrate how we constructed the outdoor structures as described in this tutorial. You will also see some previews of the next tutorial in this map - NO QUESTIONS about these previewed areas until after the next tutorial is online. We will just let your mind wonder for awhile. :-)
At this point, the tutorial on constructing your array is complete. Of course, you are encouraged to be creative, but be careful. Too much detail will drastically slow down the gameplay! We will be enhancing these movers in the next tutorial, where you will learn to create actual booby traps and sneaky secret triggers.
In the next chapter we will deal with: triggers, special events and more. We will be creating secret areas, and more movers. |