Crazy Terrain (tutorial in the works?)
I've spent some of today working on the terrain for an island map, and it occurred to me that I have a fairly decent understanding of terrain... well, okay, I have a really good understanding of terrain. And not just in UEd, that's not what I mean at all... I understand the reality of terrain, geography etc, and while that sounds hilarious it's important to remember that a sense of reality is vital to making immersive maps. The actual content of the map might be as lunatic and surreal as possible, but there still has to be something in the air that the player relates to.
So, erm. In case it is ever useful to anyone, I'm just going to start rambling about terrain painting.
I don't want to get too much into how I make the heightmaps, mainly because it's still largely a mystery to me how I do it. Seat-of-the-pants kinda thing, nearly entirely intuitive... I usually start by painting a heightmap in Bryce, basically because that way I have an instant 3d extrapolation of the greyscale to use as a reference as I paint. Plus I can rotate and scale it as I need to see exactly what I'm doing. Once I've made something I'm mostly happy with, I port the heightmap into Paintshop for further tweaking, which involves a lot of gamma and contrast adjustment, cleaning things up with the tablet, making more natural contours etc, and then putting it into a format that's going to be most useful for UEd -- that being a G16 texture, because (as you'll see) no matter how careful you are in Bryce and PSP there will always be things that need tweaking in the editor. And while you can (and should) suggest detail with textures rather than painting them outright on the heightmap, there's not a lot you can do about too-smooth peaks or jaggedy flats without really getting in there with the terrain tool.
But I'm more interested in talking about the actual terrain painting... that is, the layers of texture on the terrain.
Here's the base coat for the island... Just one of the dirt textures I think I found in the Arborea Terrain package. It's the only non-custom texture I will end up using, and it doesn't actually matter what it is as it will eventually just get completely painted over.
I find it's most helpful to switch constantly between textured and dynamic lighting views, and to move the sunlight around all the time. That was you can really see where the contours are, which bits are going to be outcroppings, which bits are slopes, how steep or shallow things are, etc. Plus it can give you a better perspective on blending to have sunlight happening. I also change the brightness / hue / saturation of the sunlight between a deep sunset (say, 70 / 30 / 180), a nice day (say, 70 / 35 / 220), and a clear night (say, 60 / 150 / 225). Those are all totally approximate values pulled out of my head. Things in and around those ranges tend to work well (as long as you don't go stupid with the saturation levels *cough*deadlyshadows*cough* you'll be just fine.
So, yeah... Base sand. Which, coincidentally, is what I named that layer.
Anyway, I already had a general rock texture in mind and I started to paint the obvious rocky bits with it. Nearer the shore (especially in flatter areas) I dropped some sand on, and then proceeded to scale and smooth the textures to get something I liked. (Remember that smoothing and noise both work phenomenally well when you want to paint realistic terrain layers)
When I'd scaled the basic rock up enough to look good and not tile obviously, I realised it was very Flintstones. Which is great if that's the vibe you're after, but alas! I am not after that vibe. So I created a second layer of the same texture and scaled it much smaller... Low opacity brushing, lots of smoothing, a bit of noise, and I was able to add detail without getting repetitive. I made a different, rougher texture to shade and play with on the larger slopes and towards the peaks to look more like wind-beaten rock, as opposed to the smoother, water-polished base rock, and again used lots of smoothing and noise.
It's kinda difficult to judge the scale of things without an xPawn reference (which I always use while building, as should you) but that closer rocky lump is a little bit taller than the player -- from where it isn't rock anymore to the top. Once I've finished the detail texturing on things it won't look as smooth, but right now you can see the Flintstones Vibe I was talking about, yeah?
I got a bit bored of rock and wandered around to a nice flattish plateau that wasn't near where the water will go... Time to vegetate!
Two grass textures for starters... One very lush and grassy, the other more like mossy rock with little plants in. I used the lush grass layer as a base, and cut the lushness (and the overwhelming green) with the rocky grass texture, always trying to keep to the natural contours. More lush grass in the central, flatter bits (especially in the slight depressions where rain would collect and where I will be putting deco layers of grass and ferns and plants later on) and more rocky in areas where people would have been walking. The collision of rock and grass at the base of the slopes is getting painted over with a soft mossy rock texture that I actually made by combining the basic rock and the rocky grass and tweaking it six ways from Tuesday in PSP. The idea is to make a nice creep between the vegetation and the rock.
Actually, in there you can see where I've been playing with a vine static mesh... basically just a collection of planes that I made a shader for out of some vines and an alpha mask.
Something to remember in painting is to avoid straight lines... Make rock flow out into grass, make sand and moss creep up shallow slopes, fading out at the top and bottom, and above all BLEND things. Take time, work small.
I'm going back to continue stuff -- what you see here isn't finished obviously, and there are several places I can see in those shots that need polishing and noising up and blending smoothly -- but you can see the start of things.
I'm also constantly aware of where the sunlight is actually going to end up (shadows conceal a multitude of unavoidable glitches if necessary) and where things like buildings, groves, waterfalls, and the like are going to be... I think I finally perfected a waterfall in a small testermap, so I'll have to take some time with that later: Experimenting with things like using panners / oscillators / specular materials to paint on terrain was a genius idea, and it makes flowing water 100 times easier and more realistic.
So, um... I'm going back to my cave now, and I'll come back and tell more if anyone's interested.
Night time. Build fire. Keep monsters away.
Slightly new ideas (posting as I go)
So, today I started wondering about the actual functionality of the island. I know that I want to have a set of docks on one side (where the fire from the above picture is) -- the concept is a creaky wooden and generally rickety dock used for dropships... so, like... erm... it's all going to have a medieval / Nali vibe, but be totally modern in function. Anyway, terrain-relevant to that is the fact that I want two things: A nice shore to extend the docks from, and a couple of raised bits on either side where I can put big lighthouse things. And a customs office (or something like it)
That's where it's handy to have made sure the heightmap is G16... Otherwise I wouldn't be able to play with it in the terrain tool.
I also set the sunlight and ambient light to a level close to where I think I'll want it in the end: A nice soft blueish sunlight and a very pale (and low-intensity) green for ambience. The trouble with ambient light is that is doesn't seem to add to the terrain as much as it does to the static meshes in a map (including decolayers), and so unless you feel like going around lowering the ScaleGlow on every mesh, it's best to keep ambient light low and use a combination of lights / spotlights / sunlight to get the general lighting conditions. Not to mention that once a proper skybox is in place, that does a LOT to change the perception of ambient light levels (even though it doesn't change them in reality one bit)
When I tested out the Final Lighting Approximation, the white rock really did seem far too smooth still. Admittedly, this is also due to the unreasonable smoothness of the peaks which are painted with the white rock, but noising up the elevation is something I'm going to be doing virtually last -- that kind of thing is very delicate work and will take some doing to get right, and it's ALWAYS easier to do it after you've painted where you want the rough areas to be. It's easier to rough up a smooth slope than it is to paint on a rough slope, I find.
So I started to lightly paint in some rougher, smaller-scale rockface to break up the smooth. I'll eventually have it much heavier and more noticable, but not yet. I work slowly and small and smooth.
Built another campfire on the west cliffs, too... You can see the newer roughness in the rock a bit, but it's not as pronounced as it will be in the end.
I've also started dealing with the decolayers and some more flora on one of the plateaus. A full third of the island is still base-texture only, but sometimes you have to break up the monotony of terrain building with some decoration for a while. Plus it allowed me to make some decolayers and meshes stick in the myLevel package for later on. And plus also I like to make groves of trees etc, so there.
After digging a well and building a platform / fence / frame for it, I planted a few trees and scrubby grass. I think it needs some scattered rocks next, but I'll have to be careful to keep pathways clear for great running. Addition of rocks will also allow cover and help direct traffic, and the overhead branches provide shielding from snipers and rocketbois who might be lurking on the ridge to the north of the well.
It's still looking sort of boring, even from ground level, but once some ambient sounds are in there and I replace those placeholder torches with some custom tiki torch things, that's going to help. Plus floating glow-bugs. The purpose of this grove is to provide a fairly sheltered place between the docking area and the dangerous western cliffs... I'll most likely have some scabby minihealths or something, possibly a grenade pickup or similarly weak inventory item, because this area is more about shelter than goodies. The docks and the cliffs are terribly exposed and open to attack from a couple of easly-defended locations, so this grove / well will be a good place for someone to hang out for a sec before braving the surrounding danger zones.
Plus the ion cannon won't be able to get you in here, and I loooooves the ion cannon.
I've always seem to have sucked with making terrain...not texturing and detailing it, but actually designing the terrain itself, I just can't seem to get it to look natural enough in my opinion.
You, on the other hand, seem to have a knack for it. I'd say it's all looking pretty good so far.
I think the sheer number of hours I have spent in things like Bryce and Terragen over the years has made things sink in as far as fractal(ish) terrain mapping. But you can see so obviously that the terrain is far too smooth in some places -- looks fake. Combination of texture and actual noise will help that a lot, though.
Plus, I suppose a couple of years poring over aerial photos of places like the Baltic really kind of gave me an intuition for realistic top-down views.
But to be honest, I tend to approach the heightmapping as if I was drawing a tree... or something... Root systems, flow, subtle gradations, something. Actually, I've even tried using terrain AS the bottom of huge swamp trees (wait... digs up pictar... here) but I've not been able to make a blendable trunk to my liking yet, so that idea is still very formative. I must have five or six DOZEN little Idea Maps like that, and as I realise or learn or figure out how to do what I wanted, I add to them and perfect techniques to be used in other maps. In fact, that tree-terrain idea is a DIRECT application of a technique I learned years ago for Bryce. Except in Bryce it's a hell of a lot easier to blend the trunk from the base... I'm still kinda working on that in Unreal, but as my meshbuilding skillz increase, I'm getting there.
Usually you can get a very decent start just by painting a rough sketch and exporting it to UEd, then setting it as the TerrainInfo's heightmap. The thing I like about doing it in Bryce or any other external app is that you can start with black, which means you don't have to simultaneously worry about going down AND up from 128/128/128 (terrinfo's base) and you can get the full range of upward growth very easily. Which is nicer for me, since I prefer islands and mountains rather than valleys and canyons. Only thing is that it's far more difficult to blend the map's edges with the skybox, but I've figured out a couple of decent techniques involving a combination of fogrings AND distance fog, both in the level and in the skybox itself. It takes a LOT of tweaking, and it is a very limited approach, but it works well.
The other advantage of this particular central-ridge island design is that one antiportal can be used to occlude an entire half of the map very easily, thereby keeping framerates juicy. But then, I don't really have to worry about framerates, as I run an fx5200 card... hardly a powerhouse. So if it doesn't chug for me with full detail and a set of bots, it's not going to chug for anyone.
But yeah... To learn about heightmapping, take some time to explore Bryce fully, or Terragen is good for certain things (it doesn't have a very good terrain generator, but it's good to start understanding how things branch out etc, and REALLY good for figuring out how textures are going to respond to slope and altitude constraints realistically), or look around for some digital elevation maps (modules? -- DEMs, anyway) that there are scattered around the web. Those are real heightmaps of actual terrain on Earth, so they can get very interesting and educational.