I had thought about making this post somewhat of a
step-by-step tutorial about using the Landscape tool in UE4, but upon
researching there are already way too many great Landscape tutorials out there
both in writing and on youtube. In fact,
Epic does have some amazing write-ups on the Landscape tool already like this
one https://docs.unrealengine.com/latest/INT/Engine/Landscape/index.html. If you are new to the Landscape tool in
general, I suggest that you visit that link before continuing to read this
post. If you are already familiar with
Landscape from UE3, you are in luck, because UE3 and UE4 landscape tools are
extremely similar and most of the tools go by the same naming conventions,
building a Landscape Materials and Landscape Layer Blend Materials are also the
same in UE4 as they were in UE3.
So for post I would like to share how I utilized the tools
in UE4 to make an environment for the Oculus Rift game that I am making. Stylistically I am trying to go for something
that is between photo-real and cartoonish by way of mixing less realistic
sculpting with more realistic textures or vice versa… Upon starting my
Landscape I had decided to begin with a fairly large Landscape, one that would
cover the entire map and implement some realistic textures by way of layering
textures with LandscapeLayerWeight nodes in the material editor. So I started by making some realistic textures, and porting them to UE4. UE4 is more forgiving with texture file
formats than UE3 was, but for portability and quality reasons I suggest to
always stick with .png or .tga files for your textures in almost every scenario.
After porting the materials, making the material itself
works the same way it does in UE4, in your content browser you can just make a
new Material and just drag and drop your textures into the material. Making a LandscapeLayerWeight chain is the
same as it is in UE3 as well, my results looked like so (again if you are new
to this, my suggestion is to visit the like to the UE4 docs that I provided
above).
As you can see from the photo above, I daisy chained the
LandscapeLayerWeights, named each layer, and copied the layers over when adding
spec maps and normal maps.
After creating the material I decided to add them to my
Landscape by just dragging and dropping the material onto the Landscape (if you
create your material prior to making the Landscape, you can just add the
material in the material slot before committing to the creation of the
Landscape), but either way, they will not show up by default as you can see
here.
You will see a little plus button to the right of each
texture, there you will need to press it so that you can add a new Landscape
Layer Info for each Landscape Layer (in this case it would be all of your
textures since each texture is a layer).
Once this is done, painting textures is now possible on the terrain by
simply selecting any material layer and using the paint tools to paint the
materials onto the terrain.
It is at this point hard to judge if the textures are tiling
too much or too little at this point, but the tiles from far away are pretty
unattractive. One can easily fix the
tiles by going into the material editor, adding a Texture Coordinate material expression
to each UV that I would like to adjust tiling to and simply change the tiling,
but we will cover that a bit later in this post.
In addition to painting I decided to also start creating
some topology here by using the sculpt tools.
I also wanted to see what the surfaces would look like with proper
lighting. In an outdoor scenario I
always choose to use a strong Directional light (especially when casting
daytime lighting) because it matches what outdoor lighting is in real life
which is light covering a massive amount of area, moving in a single direction
ie. The sun or the moon.
There are a few things I started to dislike about my
environment other than the fact that the realistic materials that are tiled
multiple times may not be what I want… I would have liked more ridged surfaces
which could be done by use of the Noise sculpting tool… I also do not like the shiny
surfaces, which part of the blame is my spec map, but the other part of the
blame is that the default material shader in UE4 has some specular shader to
look reflective, this can be corrected which I will show how to do a bit later
on… Having reflective surfaces like this aren’t bad especially for wet
surfaces, but in my case, I have an environment that looks like plastic. Stylistically, I decided that this is not
what I want, so I decided to start over and try an opposite style which is
realistic surfaces with cartoonish, single tiled textures. Moreover I decided to use a height map which
can be created in a number of programs like Photoshop (which is what I often
do), but there are other programs out there like World Machine, which allows a
user to built topology within the program and be given 2D views of their color
map and height map, along with 3D views of their color map and height map
applied onto a plane, this is a major step up from programs like Photoshop. So I created a height map in World Machine
with textures that I liked, and ended up with height, color, normal and spec
maps that look like this.
Height |
Color |
Normal |
Specular |
I then ported all of these into UE4, and this time upon
creating my Landscape, I created it through importing a height map…. Note that
your height map must be either a grayscale 16-bit PNG, or an 8-bit .RAW file.
I also created a new Material which only had my Texture
Sample, Normal Map and Spec map.
But upon applying the material to the Landscape, the
material for my Landscape looked like this.
The issues here are that the spec map is causing even more shininess
and the textures are being tiled over too many times, only a single tiling should
cover the surface… So to fix these issues I added more material expressions,
like Texture Coordinate and I set the U and the V to something very low like
.00045, so the material stretches across the entire surface. I also added a constant to the specular and
made the constant 0 so I have absolutely no shininess covering my surface.
Looks much better!
I also needed to play with things like lighting, fog and the
sky. I first added my directional light
again, but this time I did add a little bit of a yellow tint to the color of
the lighting because generally outdoor lighting in real life is not a straight
white color, you can determine what color your lights should be when creating
your levels.. Lighting should not be overlooked or rushed in any way since it
determines the mood of your levels.
Also, I added some exponential height fog to my level
because I am planning on having a very foggy valley but I also do not want the
player to see the lower edges of the Landscape when they look out into the
distance, fog is a great way to cover up these spots. With Exponential Height fog and Directional lighting,
a ground view of my environment looks like this.
Next I added an Atmospheric Fog and adjusted the rotation of
the fog. This Fog is awesome because it
not only creates a fog that can set a color gradient which can be displayed in
the sky, but it also comes with the ability to enable a disc which can act as a
sun. For my level there is really no
need to have a sky dome, the Atmospheric Fog does everything that I want it to
do.
Upon looking around my environment I did start to notice
many areas that needed touching up, particularly areas that had some flat
plateaus that I wanted smoothed out.
By use of the Erosion sculpting tool I was easily able to
smooth these out, but upon a lit environment some stretching showed. No worries, the Smoothing tool does the trick
here! So these are final results by use
of working with a small area by use of a conjunction of various sculpting tools
like the Erosion and Smooth tools…
Note the plateaus are okay and can be rather realistic, in
fact I chose to keep many of them in different areas of my level, there were
just some areas where I wanted these plateaus and other areas where I wanted
more of a smooth surface.
These are my final results.
Later on this week, I will be adding water into the valley
and I may be revisiting some alternative textures for my level. In addition to this I will be adding the
music that I would like to use for this particular area in the game and post a
video that includes all of this. I may
be showing off some alternate screenshots and/or videos which may include
various gameplay speeds, textures, lighting and water. So I will be looking for input on all of
these things via blog responses or social networking. Stay tuned!