Week 12 – Day 2 – “Landscapes & Terrain”

Today we looked at the basics of creating  terrain inside of Unreal Engine.

The Unreal Engine documentation has recommended sizes for terrains, depending on what you’re doing, and they’re a good thing to keep in mind – Reference

We started by sculpting some rough terrain using the sculpting terrain brushes in UE4:

1 We then created some basic roads etc using the amazing Edit Spline tool. This tool is great because it allows you to create a road or path easily, morph the terrain to match it, as well as sweep a mesh along the spline to create a mesh.2

After manually sculpting the terrain, we looked at creating terrain from height maps. We used a Substance Painter substance, and extracted a heightmap from it. We then brought this heightmap into ZBrush, where we masked using the map, and inflated, to create a really interesting shape. We then messed around a little, creating peeks and valleys in ZBrush.3.jpgWe then exported this as a heightmap (From an orthographic plan, in the Alpha tab, click “Grab Doc” and then “Export”). We then opened this in Unreal Engine, trimmed it to the right size (505×505 in this case) and brought it into UE4 as a heightmap.4We then painted this terrain, using the terrain painting toolkit in UE4. We created a terrain material, and set up the parameters (similar to what we did for Vertex Painting) where one layer exposes the one below.67The result is really quick and aesthetic terrain.

I then went on to model some more of my Diner. After talking with simon, we agreed that the walls and ceiling didn’t match some of the references that I had, and so I set out to model the walls, using the Kroll’s Diner (as seen in the TV show Fargo) as a reference. Kroll’s diner has these really interesting curves where the walls meet the ceiling. These break up the shapes, as well as adding really cool and interesting variation in reflection. I modelled them in Maya, and painted them in Substance Painter. I also added a neon light to the top, like in Kroll’s, which will add some really interesting lighting in UE4. I did this via an emissive material, as well as upping the length and radius of point lights in UE4.render

I then brought this into Unreal Engine, and decided it was a good time to start messing with the lighting. I set the main directional light to shine vertically, creating the default night exterior, and then started to play with the lights in Unreal. After a quick lighting test, here it is without any post process effects.HighresScreenshot00000HighresScreenshot00001 I am pretty happy with the screen space reflections, but there is a log of work to do on lighting. I have decided to do test lighting more as I go, in the hopes that this will evoke more as I work.

 

Summary: We looked at terrains in Unreal Engine. I corrected my walls, and started lighting my scene for the first time.

Week 12 – Day 2 – “Landscapes & Terrain”

Week 12 – Day 1 – “Project Day”

Today, Simon was sick so we had a project day.

I started out the day my modelling the ceiling panels for my room, as I felt it was important to start assembling the architectural elements for my room. I started my modelling the ceiling in Maya, using a simple bend deformed to get the vaulted shape.

After looking at a lot of reference images of ceilings like this, I though the warped reflections are very important, and so I brought this maya mesh into ZBrush, where I subdivided (with creased edges) the mesh, and applied simple hand polishes to the surfaces, to give it a more natural warped plastic look.

maya
Base modelled in Maya
Zbr
Overall warping in ZBrush
sub
Small detail in Substance Painter

I then did the exact same thing for the edge panel:

edge

I then went on to model the walls in Maya, bringing them into Substance painter and applying the same material as the ceiling. The walls, however, have a metal trim that boarders tiles. I decided instead of encompassing this metal into the wall material, I would instead create a separate metal trim material that would be used in the walls, the metal straps on the ceiling, and the metal trim around the raised booth step that I modelled yesterday.

The result of my scene so far:Scene

scene2

WarpedCeiling
Warped Ceiling Reflections

 

Summary: Project day – Modelled and textured the major architectural elements of the scene – ceiling and walls.

Week 12 – Day 1 – “Project Day”

Week 11 – Day 5 – Vertex Painting

Today we covered one of the most important and interesting things we have looked at yet, Vertex painting.

Vertex painting allows you to paint organic and differing textures, and will be particularly useful for texturing terrain. It allows you to add variation easily, while also allowing you to have gradual changes in material easily and efficiently.

Using vertex painting involves using the vertex colour node, and a series of Lerps. Below is the relatively simple script needed to change between two materials.Untitled-1.jpg When you move on to three materials the script gets a bit more difficult, but it just another derivation of this same script. Here is  the script for 3 materials:

Untitled-2You can then do this for every map you use, in the exact same way.

We then explored tessellation in Unreal engine, using height maps, and then applied the vertex colour script we learned earlier, to create a really interesting undulating terrain using tessellation.

Then over the weekend I did some more work on my Diner. I started my modelling the bar counters. I modelled it as a series of 1x1m sections.5 This worked out quite well, but there wasnt enough variation in the materials, so I decided to model two different types of counter, one clean and one dirty, and then vertex paint them in different areas. I could have done variation using decal volumes, but I decided to try vertex painting them instead. The vertex painting added a subtle difference in detail, but I am not 100% happy with it.

Nodess

I am now thinking that maybe I should just forget the modularity of this object, and instead model it as one element that I can bring into Zbrush or Substance Painter and add some variation. This can be done easily at a later date.

I also modelled a raised step for the booths, and created a prefab for them.6

I then went on to texture the cooker that I modelled previously. I wanted the stove to be a bit more grungy and dirty than everything else in the scene, so I textured it in Substance Painter. I also used this as an excuse to test out some of the new Substance Painter 2 smart masks. I also used the new Iray render integration to render it, for fun!

render

 

Summary: We looked at Vertex Painting in Unreal engine, and I modelled the counters and textured the stove for my scene.

 

Week 11 – Day 5 – Vertex Painting

Week 11 – Day 4 -“Dynamic Materials”

Today we looked at how to animate the vertices of an object using only a material. This was amazing, and really useful for creating simple swaying of flags and trees.

Basically, you add a “Simple Grass Wind” function, and pipe it into the “World Position Offset” node. You then add the constants you want, and add the RGB of the texture. It’s not a very realistic effect, but can be very effective for foliage.

Sway

We also looked at how to add Secondary Detail Maps, like in Unity. It’s a bit more complicated in Unreal, but its still a pre-made function that you can apply.

I then went on to continue some of the assets for my Diorama. I started my baking the table, which I had created a few days ago, in Substance Painter. I then painted a really simple material onto it. The idea here is that this object will be repeated a lot, and adding any major detail would be very obvious when in the scene. Instead, any detail will be added in a decal volume.

Table

I then went on and finished modelling my neon Coca Cola sign. I modelled the sign using curves, and extruded a circle along them. The result was great, but really high poly (15000 polygons for just the text) so I ended up having to go in and reduce the polygons manually. The result is a really angular mode, which doesn’t look very nice on its own, but when coupled with Emission it won’t be noticeable.

neon
Curves, used to create the neon sign

 

I then brought the finished model into Substance Painter, where I painted some simple emissive colour to the neon tubes, as well as stamping the following texture to the back plate.NeonBack

NeonSubstance

I then added a post process volume in UE4 where I played with the bloom to get a nice effect. And finally, as a test, I added a simple flicker effect that we learned in class a few days ago. The effect isnt quite right, but will do as a place holder, until I know what I want.

Summary: We looked at creating swaying vegetation, using only materials in Unreal Engine. I then went on to bake and paint my table, as well as a neon Coca-Cola light. I also made the light flicker, as a test, but will change it when I get the chance.

Week 11 – Day 4 -“Dynamic Materials”

Week 11 – Day 3 – “Materials and Material Instances”

Today we looked at materials a bit deeper. Specifically, we created a realistic glass material, using the material editor. We then exposed some of the variables, so as to create instance materials, and allow the creator to play with predetermined attributes. This is particularly useful for creating slight variations of the same material in your scene.

Here are the steps we went through to make the material in Unreal Engine 4:

  1. We set the blend mode to Translucent. (regular opacity is translucent, ‘cutout’ transparency is opacity mask)
  2. We then added a Vector 3 parameter node for the base colour. Used parametrised it so that it would become public, and editable in the instance material editor.
  3. We then added specularity, metalness etc in the same way.
  4. We locked the Max and Min values in the editor, so that the instance could only be changed within certain limits.
  5. We then added a Fresnel node to the refraction to give a more accurate refraction.
  6. We needed to include a lerp node to make this information public and editable.
  7. Finally we added a Normal map to give an interesting surface.
  8. Change the material translucency to “Surface Translucency Volume” in the option box.

 

Then, the servers in college were down so work was impossible.

Summary: We created a glass texture in Unreal Engine 4, and learned about instancing materials. Also, the servers went down, so project work was difficult.

 

Week 11 – Day 3 – “Materials and Material Instances”

Week 11 – Day 2 – “Colours and Lighting in UE4”

Today we did something really cool, and we looked at Post Process Volumes in Unreal Engine 4. Post Process Volumes are exactly what they sound like – Volumes in which we can adjust the post process effects of our games. The good thing about UE4 as opposed to Unity is that they are bound to a box by default, so you can easily trigger a post process effect by simply walking into a volume. In Unity, they were either on or off without code.

There are a couple of notes I thought were really important:

  • Priority – you can set the priority of overlapping Post Process Volumes
  • Blend Radius – This is the fade of the Volume outside the box. 0 is a sharp transition.
  • Scene Colour – gives us the ability to adjust the colour grading, like in Unity.
    • Fringe Intensity is basically like chromatic aberration, where the colours spit at the edges.
    • Colour LUT like what we used in Unity, can be brought into Photoshop and adjusted to alter the colour grading of our scenes. The LUT is found on Unreal’s Docs ( LUT Texture Example ). NB : Make sure you change the texture group to “Colour Lookup Table”.
  • Anti Aliasing – The fringing of harsh edges. This is combatted in Unreal by default, but can be changed as a post process. “Temporal AA” is the best but most expensive to run in game.
  • Bloom – Simon says (!) it is a very overused effect, and to use it with caution.
  • Depth of Field – Same thing, be wary of overusing, but a little is great! You can visualise the depth of field by going to Show>Visualize> Depth of Field. BokehDOF has a really impressive look, in particular, but is more expensive than Gaussian.
  • Ambient Occlusion – Screen space ambient occlusion isn’t baked, like what we have looked at already. It helps to add depth by highlighting cavities and joins.
    • Static Fraction – basically, the quality.

 

Then we went on to test light a scene, and I also painted the textures for two of my room assets – The Ceiling Fan and the Table Jukebox.

The ceiling fan was pretty straight forward. After baking my ZBrush model onto the low poly in Substance Painter (again, using the _high _low method) I painted it in Substance painter. I created shiny painted surfaces for the blades, created a very shiny and smooth glass-like material for the bulk and then created a rough and aged metal for the motor area. I then created a basic Emissive texture for it, but when I brought it into UE4 it didn’t look great, so that will definitely need more work. HighresScreenshot00000HighresScreenshot00001

I then went on to texture the table jukebox, which was a really cool and interesting model to paint. Again, I baked using the _high _low method, and the result was pretty good. I then added an opacity channel to Substance Painter where I created a glass texture for the front of the jukebox . I then painted the “strips” on the inside of the glass. Because this was behind the glass, and you can’t hide in Substance Painter, I had to paint this detail on the UV channel as opposed to directly on the model, but that worked very well. I then created an aged chrome-like metal for the main body. Finally I added some decals, like the keypad on the front, the logo on the glass, and the coin insert slot. The decals were created using wither a texture I created in Photoshop as a stamp or a stencil. I couldn’t find the correct font for the logo, so I created something similar in Illustrator.

Screen Shot 2016-03-15 at 23.19.41
The stamp used for the coin slot
Screen Shot 2016-03-15 at 23.19.51
The tracklist ‘strip’ for inside the glass. I masked using this and then painted inside the mask.
Screen Shot 2016-03-15 at 23.20.03
My version of the Seeburg logo
Screen Shot 2016-03-15 at 23.20.15
The text I used as a stencil for the text on the keypad

 

Summary: We looked at Post Process volumes in Unreal Engine, and I baked and painted my Ceiling fan/light and the table jukebox.

Week 11 – Day 2 – “Colours and Lighting in UE4”

Week 11 – Day 1 -“Advanced Lighting in UE4”

Today we looked at a few more lighting techniques in UE4. We started by opening a lighting demo downloaded from the asset store, which had an amazing looking Arch Viz style scene, demonstrating day and night lighting.

Untitled-1

We explored IES lighting systems, which are a more realistic falloff of light, giving a much more realistic, or at least specific feel to the light.

Untitled-2Untitled-3.jpg

We then went on to create a blinking light, using an emissive light material and adapting not using the node editor. The node script we created is was follows, and allow for the light to fade on and off in a seemingly random pattern.

 

 

Untitled-4

Click to see fullscreen

I then went on to paint the material on two of the assets that I organised yesterday – The Milkshake Mixer, as well as the Vending Machine. I did this using Substance Painter. I baked the normal maps from my ZBrush models onto low poly models in Substance Painter, using the naming scheme mentioned previously. The results are much better than I was expecting, and it really makes creating the ZBrush models worth it. It would have been impossible  to get some of the detail it created without ZBrush.

MilkshakeMixer.jpg

I then brought my first assets into my Unreal Engine blockout scene for the first time to see them in action. It was really cool to see them in the engine. They still don’t have light map UVs so I had to set my lighting to realtime, but that will be solved at a later date.

InUnreal

Summary: We did some more advanced lighting in Unreal Engine, including making a light flicker on and off using emissive materials. I then brought my first game assets (Milkshake mixer and Vending Machine) into my blockout scene in Unreal Engine for the first time.

Week 11 – Day 1 -“Advanced Lighting in UE4”