Socram's Volume Tutorial

Back to tutorials page

This is a tutorial on a few of the more common volumes that are used in Mirror's Edge, it doesn't guarantee to cover them all or be perfect, but it will be updated whenever possible. This tutorial assumes you have some basic knowledge of Unreal Editor (BSP, placing static meshes, etc) as well as having followed Blizzard's first basic tutorial. Let's begin!

Index

What is a Volume?
Barbed Wire
Swing Poles
Zip Lines

What is a Volume?

A volume is a designated area within a map that tells the game to execute something special, such as hurt the player or play a sound. Volumes are VERY important in Mirror's Edge as they control much of the core elements of the game, like ladders, zip lines, and even barbed wire. A volume is created in the same way as your average BSP brush. You can use all default bsp shapes in order to create a volume, cube, cylinder, etc. Shape the volumes like you would a normal BSP and then right click the Add Volume button in the left toolbox to see a list of the available volumes.


Move your mouse to select the volume you wish to create and then click again. A volume is now created where your red brush tool was.

There is an alternative way for creating a volume that some may find easier. You must still place the constructor brush the same way and all of that, but when it comes to the actual choosing of a volume you can use the menus at the top of the editor. In the top left corner of the screen click the brush dropdown menu, go to Add Volume, and make your selection from there.

Now that you know how to make a volume lets get into some more specific examples.

Barbed Wire:

A very simple example of the volume in action, it is very easy to set up. When the player enters this volume they will take damage. Create a map with a floor and a light.

1) Place your static mesh; I used S_FenceGenericWire_01i in the P_Generic package:


2) Using the cube tool, widgets, and orthographic views place the brush tool around the area where the barb wire is located on the static mesh. It doesn't need to be perfect, just so it makes sense when the player touches this barb wire in game:


3) Now right click the Add Volume button and move your mouse down to "TdBarbedWireVolume" and click:


4) When you move your constructor brush you will see a light pink box in the exact same shape as the constructor. It will also have an arrow that will always point in the positive X direction upon creation. For this particular volume, this arrow does not affect anything.


5) After building the level, test it. You should take damage when you try to climb up to the barbed area.


Look I'm dead at the feet of the fence. It worked!

Swing Poles:

This is a little more complicated example of a volume, but also a lot more interesting. Create a map with a floor and a light.

1) Place the static mesh in your level; I used S_SwingPole_02c in the P_RunnerObjects package. Try to get placement more or less where you want it. If you find later it is too low or high or anything, just select both the volume and the mesh and move them both to where you want.

2) Center the constructor brush around the static mesh with lots of room around it.

3) Right click the Add Volume button and select TdSwingVolume.


4) Look at the arrow that comes off your box, and now select the swing volume. You should see 3 arrows, two in opposite directions and one perpendicular to those facing down. The two that face in opposite directions are the directions your body will swing and what directions you can jump onto the pole, and the downward arrow is just the direction your body is going to hang.


5) As we can see this won't work in my particular example, but depending on how you did your level it could've worked for you. Simply rotate and rescale the get the volume looking right. Make sure the center of the box stays around the center of the pole.


There is my final placement. There is no exact science to placing this volume, as long of course it is around the correct area and orientation it should work fine. It may however, require some tweaking to get it looking and feeling right.

Zip Lines:

1) Create 2 BSP "islands" whatever distance apart you want like so:


2) Open up the P_RunnerObjects package and using the S_ZipLineBase_01 and S_ZipLineBase_01_Line, rotate, scale, etc to create a scene that looks like you want. You may have to move your islands a bit. There is other static meshes pertaining to ziplines but they don't apply to this example.


3) Create a TdZiplineVolume. This is another volume where the direction of the volume matters. Rather than waste your time rotating and scaling the creator brush beforehand and then having to do it again later, just create the volume with whatever cube shape you want and then scale and rotate the volume AFTER you can see the arrow so you only have to do it once. You want the arrow to face the direction that you wish Faith to slide. Place it with plenty of room and be sure that there is enough room within the volume to hold the entire cable.



4) Now comes a bit more interesting part, when you select the volume you may have noticed an orange line and a green arrow. The orange line is the path that Faith will actually follow and the green arrow is an average of the direction of this arrow. Chances are the orange line isn't even close to correct. No worries! Open up the properties dialog for the Zipline Volume and beneath the TdMovementVolume tab check on bAllowSplineControl and check off bHideSplineMarkers. This will cause three green circles to show up, and moving these will influence the shape of the curve (Beginning point, middle point, and end point).


5) Move around the green circles and try to get the orange line to follow the static mesh of the cable as best as you can. It doesn't need to be exact, the player will not be able to tell as long as it is close. You will see that the green arrow will adjust to correctly show the average direction of the orange curve. Make sure the green arrow points in the correct direction, it should be more or less the same as the pink arrow of the volume. Make sure that the orange curve lines up correctly in all views.



6) Test it out! This particular volume is a little more complicated and may require tweaking. Here is my final set up:


7) It worked!


Something to be careful with, if you move the volume after you have placed you green curve points, the points will NOT remain within the volume, they will either stay in their current position in the world space or jump to some random spot. Also, make sure you zip line is facing in the correct direction and that your curve points line up in all views. It is also worth noting that zipline can defy the laws of gravity, as in you can slide right up a building if the volume and its curve face that direction. Good luck! This will most likely be the end of this particular tutorial unless we recieve specific requests. Don't be afraid to ask! Chances are if you don't understand how to do something neither does some other guy. More tutorials to come on other topics though!

This tutorial is more or less complete. Please make any tutorial requests on the On Mirror's Edge Modding forums.

- Socram

Contents copyright 2009. Please ask before posting elsewhere.