The three virtues of a programmer: Laziness, Impatience, and Hubris. – Larry Wall
Legacy:DM-Siesmic Canyon Part 01
Contents
DM Siesmic Canyon
Foreword
Starting with my toolset I have the following programs I will be using to produce this level, the list may be added to as I go along, but in this first pass, I am just listing, and linking to the tools I have grown to love over the years...
Planning
Ironically, I had the tune picked before I had even really decided on a theme for my map, it was industrial erotic which I had found while brainstorming what I was going to make, it has been playing on my computer for about 4 days non-stop now, and is only slightly annoying me, a good sign, as imo it won't get over the top in a UT3 game. If you want to find good music on The Mod Archive, I suggest looking for music which has industrial themes, they tend to fit the game fairly well, and imo supplement the fast paced action, this is just an idea, depending on what you are making, and the themes you choose for the map, you might find a totally different style appeals.
One of the great things I find in life, is that if something really shine through as appealing to yourself, then you will atleast have an audience that will also stirke a chime with your taste (reaching out to inform the audience of your creations presence on the other hand can be troublesome, and hopefully will be covered later).
I had chosen a volcanic theme to my map, but I was tempted to steer away from lava, and dark grey melted rock, choosing more of a sulphur and brimstone look, which I thought was far more original than classic lava.
It was predetermined that the map would occupy a canyon, which was roughly Y shaped, and that it would have an underground measurement and sensor facility below the intersection which could be accessed through 3 small caves that were around the inward pointing side of the canyon (towards the center of the Y).
These caves I had decided would be fairly shallow, and have steel doors to mark the transition from the sulphurous surface, into the underground area, words I thought that would describe the scene where new, shiney, and high tech, I had also given some reflection as to the interior lighting of the level, and was thinking of cold sharp light blue lights, complimented with warmer orange lights, and the occasional small and dull flashing/rotating red alarm lights, which would need to be toned down till they didn't steel the limelight of the rest of the scene.
Above ground, I continued to think about things such as weather and environment, I was opting for a variety, but being carefull about the merging of them, for example, I wanted to include a section in one of the canyons leading out of the Y an area that had lots of steam vents and poor visibility, as well as some shallow briney yellow sulphor pools, as well as perhaps one or two deeper ones, that could be submerged into.
The other two canyon forks I wanted to have a similar feel but with better visibility, I wanted to make narrow walkways up the sides of the canyon walls, with some non-installation caves, though to make them small and simple, just to act as thourough-fares through otherwise imapssible terrain.
As for the time to compleate the project, I had given myself about 3 months to do it, which I thought a reasonable amount of time to achieve at least a Beta product, provided I had little interruptions during the period. I had thought through the possibility of needing more time, and decided that I was to inexperienced in the map creation process to really give an accurate time to compleate.
I wanted a fair amount of custom art in the level too, coming from a prefab hell in the last game I modded, I just couldn't bare the thought of being reduced to making other peoples art works fit my map, if they did, then this was ok, but I highly doubted that much of the existing artwork would match the outdoor region, and the indoor region was also fairly specific too, requiring siesmic sensing equipement.
And this is how I set out.
There were aditionally a few features I wanted in the map, things like earthquakes I thought would be really good, tremors mostly, just the quivering of the ground, the idea braught with the fun idea of placing physics objects in the game, another thing I wanted was to include a random event that would fire roughly once every 15-30 x20 minute deathmatch games ie. about every 5 to 10 hours, this would be a major earth quake, at this present time I am unsure of the exact implementation of this, but intend to learn it as I go.
I now had music, and theme, and a rough idea of how the map looked, it was time to move to specifics...
... I choose to start by making elements of the map rather than the map itself.
Textures
I went and did a google search to find images, I wanted some kind of soil, and some mud, considering my theme, I had to choose something that looked like it would fit.
I wasn't overly thrilled with the images, they were not quite what I had in mind, but I had spent enough time searching, and there was lots yet to be done.
It should be noted thatI used a lot higher resolution image than shown here
I used the ISampler function of Texture Maker (see above) to make the textures seemless, it can be found under the tools drop down menu, and is labeled Isampler Resynthesis.
I normally use the following settings, but feel free to tweak it to your hearts desire, Note: if you don't already have a seemless texture, make sure the ignore borders checkbox is ticked, otherwise you will get a very ugly texture.
From the above images I made the following textures.
I could have kept going with the textures, but I decided to change courses here and produce a static mesh to test them out in game, there were reasons for this, and they were that I was not overly happy with this result, I tend to muck around a lot when making things, and you should be aware that changing tasks (and in my case moving around the house between computers) slows things down, effeciency can be important to some people, but I tend to prefer to take my time.
Static Meshes
The mesh I wanted to make would use both of these textures, namely it was a steam vent which would eventually have steam pouring from the top of a mound.
I fired up 3DS Max, and roughly modeled what looked like a vent, I started with a plane, broken into a 6x6 grid that measured 256x256 generic units, converted to editable poly, and then started moving the vertices to where I wanted them. Tip: to view the divisions between the grid in 3DS Max press F4
I came up with the following...
After this, I added a HSDS modifier and selected the inner region, I'll note now, that I wanted the outside square to remain square, and with a 0 altitude on the z axis, this would make it easier to place when I got into the game, I also went to the lengths to ensure that the center vertex was exactly 256 units high, the ones on the north/east/south/west of it I made 128 units high (kind of like a + shape of vertices were selected and then I moved them to the apropriate height), and the ones on the NE/NW/SE/SW (the x shape of the center) I made 48 units, then I shifted them all in the x-y plane, while keeping the outside vertices in their original location!
After selecting the inner region like so
On the right hand side in the roll out, I then clicked the subdivide button, which smooths the image a lot, this is good, becuase it is supposed to be a steam vent, not a sharp spike in the ground, my next task was to drop the center vertice (the one that was at 256, which you may note is no longer this height) down to the ground, ie a zero on the z axis to produce the center of the steam vent.
I could have aditionally tweaked the vertices, but didn't because I was a little worried about loosing the smooth effect.
After this I selected a different set of polygons, and subdivided again.
And on more time with yet another different set of polys.
Everything seemed to be going great, I wanted one more level of subdividing, but thought I would manipulate some vertices a bit more at this point, looking at the top of the steam vent I though it was looking pretty flat, and wanted to put some altitude variation into that, after this I selected the following polys and did a final subdivide
At this point I noticed that the corners of my square had moved in due to the HSDS smoothing modifier, I quickly moved them back to their corners at the proper 128,128 -128,128 128,-128 -128,128 positions, making sure the outside shape remained a perfect square.
I was happy with model, and later did others to produce varience in game.
The task of skinning came next, I chose to use the vertex paint method for a smooth transition from soil to mud, I thought a bit that the terrain itself would, atleast where these vents were, be a mix of mud and other textures anyhow, and that not a spec of solid soil should be seen, I added the vertexpaint modifier.
A new panel pops up, at its top are a few images of cubes, I picked the shaded representation of the vertex colors(the second cube on my version)
A little bit below this, there are 6 more buttons, 3 wide ones on the right, and 3 thin ones on the left, the tooltip reads paint on the top right one, and erase below that, and finally the color picker below that, I chose to use a black, not sure why, it just seemed like the logical choice, we are after all effectivly painting an alpha channel that determines the transparency between our two textures here.
I paint my pattern onto the mesh, merging the two appropriatly to make a smooth transition form the soil ground to the muddy slope and top, I end up with something looking like this
I'm not sure if the next step is actually required, since we are only going to be assigning one material to the mesh, but I'll quickly go through the process anyhow.
In the 3DS Max material editor, found in the top toolbar, designated by 4 spheres coloured red, green, blue and white, select the first material, then click the button that has the label Standard and change it to Multi/Sub Object, it will ask you if you want to discard or keep the material that used to be in slot you have changed, since you need to be taught this, I assume you are new to 3DS Max, and I will recomend you discard, but leave the choice for yourself.
The interface changes dramitcally, click the button labeled Set Number and set it too 1, because we will only be using one material, which will actually be a mix of two textures ;)
Down the bottom of the interface the long list of textures should shrink to contain only the one, click the button which should be labeled something like Material #xx ( Standard ), then change the drop down from Blinn to Phong at the top, UT3 uses phong. and then in the tiny little square button next to the Diffuse color swatch in the Basic Parameters, and select Mix.
Where it say color #1, go to the button labeled none, click it, select bitmap, and then load the soil texture (note the color in the swatch is black, it will replace the black sections we just painted), and then do the same for color #2 except load the mud texture, which should replace the white section of the mesh.
The third one in the list is called Mix Amount, this is the map which determines the pattern of the two textures, you could use perlin noise for an unpredictable response, but what we want here is the vector color, if you click the square button, you should see Vertex Color about 3rd from the bottom, select it, and we are almost done, climb back out of the mix, to the top texture in the drop down list, and then apply it to the object (by selecting the object and clicking the third button directly below the texture sphere swatches), you won't see the texture in the viewport, but it should be there when we render.
There is one last thing to do, and that is add an edit poly modifier, select the border of the square from underneath, and cap it with the cap button in the roll out. If you see textures fighting after having done this, don't feel to worried, the fact that it will be placed slightly below ground level will totally cover this problem up when we place them in the editor.
When I rendered my one it look like this
I was modestly happy with it, there was room for improvement, and I could take that up with my next few variants, but this was satisfactory for what I wanted.
Now I needed to import it into the game...
UT3 Mesh Import
First of all you need to export the mesh from 3DS Max, I'm not going to go into details on how to use the file system, but these are the settings I use for the actuall export... (You need to export as .ASE file (the ascii file format))
You will notice that I have also in the following example made normal maps, the soil normal map was made by running through some erosion filters in texture maker, then converting it to grey scale, maximizing contrast, and finally being converted to a noraml map by using Nvidia DDS Tools plugin for Photoshop, this normal map is what will give the texture its rough surfaced 3D look.
Ok, I start up the editor, and when it has loaded, I make a new Additive level, I save it as DM-Test, I open the generic browser, and click import under the file menu, and select both textures (all 4 in my case because I have normal maps), I also take the time and care not to click OK to all, I have no idea why I do this, it just seems logical to me, but I ensure that the CompressionSettings drop down is set to TC_Default for regular textures, and TC_NormalMap for normal maps and I do the same for LODGroup. I also import the mesh. I use the package name of DM-Test note it is identical to the file name, as for the group, it is like a sub-directory, or a folder to contain various things you import, much like your computers filesystem, it is mainly used for catagorizing the things you import to speed up searching for things, you could just have textures, or you could use DiffuseTextures, NormalMaps, and Meshes as your groups, it really doesn't matter, and is left to personal preference
I make a new material called SteamVent_Mat, and open the material editor and set the following up...
I then go to the mesh and open up its properties, the first thing I then do is go back to the generic browser, and select the material we previously made, and apply it to the mesh, this is done by unfolding the properties like so
With the material applied, a few things still need to be done, the next thing on the list is to make a quick collision map, you can find the Collision -> Auto Convex Collision, and use the following settings, there are better ways to do this, which I will probably cover later when we actually import this into more than just a test file.
Last thing to do is get a good angle and take a shot for the Generic Browser, this can found under Tool -> Save Thumbnail Angle.
A quick test level to see our mesh in game
Ok one more material to paint the ground with is needed, I used this setup...
If over the next bit you only see a black screen in your render viewport, try turning the lighting mode (in the bar across the top of the actual render view port) to unlit mode
Minimize the Generic Browser, and make a Cube Brush that is X 2048, Y 2048, Z 2
Add the brush, right click it, and then Select All Surfaces, expand the Generic Browser, and apply the texture by selecting the Soil Texture we just made, then select the steam vent, and shut the Generic Browser, right-click on the ground in roughly the middle, Add Actor, and then choose to Add the Static Mesh (should be the one at the top of the list).
Move it to desired location, ensuring that the square base is burried one unit below the ground, you will likely have to drop the drag grid to do this, it is under View in the menu bar, I needed to drop it to one, unless you want real headaches in the process of level desgin, never turn the draw grid off, at least when trying to get things to aline, sometimes, especially with meshes you might have to take it off - just to get that extra look of perfection, but not this time ;)
Finally a light and a sky are needed. Select the Generic Browser again, and go to the tab at the top which is called Actors, slide down to the entry called Light, expand it, and select SkyLight, Right click anywhere on the ground and add the light to illuminate the scene. Go back to the Generic Browser (don't forget to move back to the Generic tab at the top), and under the file menu, open, and provided you installed to the default place, you will find UN-Sky under the following directory tree, C:/Program Files/Unreal Tournament 3/UT Game/CookedPC/Environments, open it, and then look for it in the list at the bottom left of the Generic Browser, click it, search for a good sky, like S_UN_Sky_SM_SkyDome03, drop it on your terrain with the right click, and add actor that we did with the steam vent (exactly the same), move it down, so that from roughly eye level you can't see the black, the black area causes a wierd feedback when it is visible, it looks horrible, but we are only testing this mesh, not building a level, and this should suffice to view it in the editor.
Up in the top tool bar, click the Build All button (a cube with a light bulb on it) You will prolly get a few warnings, they are unimportant for this task, right click on the ground some where, and go to the option in the drop down menu that reads Play From Here (Ctrl Spectates)
You should have a pretty good idea of how it looks from with in the game now, don't fall off the edge :p
As a final thought I decided that 3 variants of the mesh would be required to stop the players eye from bleeding, below is an example of what I made....