Thursday, 26 December 2019

1950's Alien Invasion - All Weeks - Part 4




Creating the vortex


I wanted to challenge myself with this vortex, I could possibly make something interesting in substance designer but that would require textures and would most likely be static without any assistance. I decided ultimately that this sphere texture should be made 100% in UE4. The texture of the vortex is fairly simple and would mainly be based around the Fresnel Function. Let's take a look at what I'm creating and break down each part that would be created in UE4. I also have to preface that I'm not super technical but I was able to get results I wanted, there might be more efficient ways but this is what I did.


So straight off the bat one element that stands out to me is the harsh bright edge of this sphere. This edge is much brighter and defined compared to the inside of the sphere. You can also see that there is texture on the edge which I think implies a surface. It does look like a solar eclipse but the information I see makes me think its a 3D shape that emits a light. You can also notice that this looks similar to depictions of black holes, this is because of the dark centre. 

To point out the colours, the whole concept has a wash of blue tint due to atmospheric fog. My interpretation is that the colours of the vortex are closer to a red hue because of the warm light the edge gives off.

So the three elements I have dissected from this image is:
1- Sharp Bright Edge
2- Textured Surface
3-Dark Centre. 


As I have said before, the majority of the work will be centred around using the Fresnel Function. Here is what the Fresnel looks like. It already almost looks like the concept art.


I wanted to isolate the edge so that I could make it have a sharp contrast of colour. I used a CheapContrast node to do so.


To add the colour I just simply multiplied it on top the CheapContrast.


The base colour of the vortex is a bright red that darkens to a darker shade towards the centre. I used a Lerp node to add two colours together and using the Fresnel in the Alpha. The Alpha controls the distribution of the colours, If I were to swap the inputs of A and B the result would be a dark edge and bright centre.



I wanted the centre of the Vortex to be much darker than it already is. To do so I divided the Fresnel to make the Fresnel darker, I then used a CheapContrast to control the harshness of the transition. To add this darkness to the base colour, I used a BlendDarken node to only darken the centre.


This is what it looks like with everything I've created so far. As you can see the colours look pretty dull.

 
By multiplying the result so far I can increase the brightness of the colours, and since this will be an emmisive, the colours should be bright.

So far all I have are the Sharp Bright Edge and the Dark Centre. I now need to add texture to the Vortex.


My process in creating the texture is by Panning a cloud like texture, this is to add variation of colour and give a sense of shape. Giving a rotational affect will make it appear more as a 3D object than a Static Image. 


The variation only appears in the red belt since the panning cloud is multiplied on top. You can also see that the bright edge is barely affected, this is because the values of the edge are so intense that this variation does nothing to it.

 

Since multiplying the cloud texture on top of the vortex made everything darker, I decided to multiply it again by a static value so that there is more contrast in the sphere. 


Finally I wanted to distort the shape so that it would look more unearthly. One thing that should be noted is that due to the tessellation the affect is more intense close up in the editor than it is in the playable level. Because I wanted to make it constantly changing as well I decided to pan the displacement texture as well. 

This is what the texture looks like within the editor.
 

----------------------------------------------
There is one final thing I wanted to note that I couldn't really find where to place. But it needs to be said somewhere. 

So in my UE4 file I had this problem that whenever I pressed play level, the scene would look a lot brighter than it did in the editor. As if there is auto exposure enabled. This is strange because I had already disabled the auto-exposure in the project settings. What I found after a long time of pulling my hair out is that the camera attached to the 3rd person character had auto exposure enabled. However if I turned off auto exposure I would have the problem of the scene being darker than it is in the editor. To fix this problem I changed the min brightness as the same as max brightness, which essentially disables auto exposure as it will stay at a constant value.

 

Final Screenshots

I think one problem I seem to have with every project is not having enough time to light the scene properly. And it seems like this project will be no different. I will however take this advice into FMP, because I will actually have time to properly light my project.

Now I want to show a before and after.


In this image I have the bare bones of lighting, I have a directional light and sky light for the light coming from outside of the shed. This does cast an interesting shadow on the floor, however my problem was that the shadows are wayyy too dark. So dark that it wouldn't be fixable with post processing. 

I found the way to fix this issue was to bump the skylight to an insane degree, and add a few point lights with inverse square fall off turned off. My reasoning behind this was to fill in the space with more bounce light that I wasn't getting from my directional light. If I only depended on my directional light, then the colours of the scene would be bleached out. 

Overall I think there is definitely a lot missing from this scene, the ground texture should be hay and dirt instead of the grass that is there. There should be stacks of hay everywhere. And the cherry on the top would be "Red Weed" or red vines everywhere. Which would help portray the idea of an alien invasion. There are also somethings in the scene already that I would tweak with. But at the end of the day I have to remind myself that I was able to create this in just about 2 weeks. And if I were given more time I could improve this scene by a mile. 







1950's Alien Invasion - All Weeks - Part 3

Finishing the Car

I wanted to separate the car into it's own section as there is a fair bit to talk about. The first of which is creating the car tire. It's my first time creating a car tyre, however the process in how to create one is very similar for something that I did in my second year. The first part is creating the treads, if there is any design to them then it must be made so that it can tile repeatedly. 

Once you have a small piece you can duplicate it as many times for whatever diameter is needed. I'm never quite too sure on how long the tread strip should be, so I always make a copy of the model so that I can just go back and forth until I get the right amount. Create a circular spline, or select and edge loop on the edge of the car wheel and 'create shape from selection'. Then using the path deform modifier, play with the settings to get a decent result. If the strip is too short or too long, undo your actions or change the duplicate you made. 



This is the end result. It's fairly simple and works great. A piece of advice I would give is to make sure that you path deform the low poly, since you can always add extra loops afterwards to change the smoothing of edges.


My approach for the creating the car, after you last saw it. Was to focus on what can be seen from a standing or straight on view. I don't need to create the bottom structure of the car, since it wouldn't be seen. However, if there are any gaps that can be seen through, such as the front and back fenders. The wheel does cover up most of the space, but there are still gaps. My solution to this was to have a some solid walls that's roughly in the same shape as the original.


Some of these parts underneath I deleted later on, because they couldn't be seen. Such as the purple model. 



Although I came to the decision to not create the underneath of the car, I still gave it a first attempt and found lots of relevant references to help with modelling. I found one video especially useful that was showing off the car in an aim to sell the pickup truck. Click Here





The wheel was created in slowly building layers. Since the location of the wheel is inside a barn and attached to a farmers truck. I thought that there would be some dirt build-up from both use and due to the location. However I wasn't wanting to coat it in a thick layer of mud, since I wanted the wheel to have roughness variation from the rubber to metal. I found through my research that even moderate use of the car will lead to some sort of dust/debris building up in the treads. Although my ref was mainly used to inform the shape language of 1950 tyers.

 


This is what the car looks like in Substance Painter. As you can see there is only one headlight glass and one tyre, these will be duplicated after texturing to be efficient. My thought process for texturing the car is to be used but not rusted. There would be areas of rust starting to expand from crevices and concave shapes that would water would build up, leading to rust. To add contrast in the roughness I would use both dust, rust and mud to break up the reflective metal paint. And since its been a while since it was buffed, the metal sheen wouldn't be as present. I looked at references to help support my decisions and texturing. 

(I focused on using the blue car near the middle as my main point of reference, and use other references to help guide other details.)



The windows are blacked out and dusty. I know that dark windows are un-realistic for a 1950's period time, however this has the purpose of blocking out the insides of the car. If you could see through the window, I would then have had to model the interior. The bottom line of this project was an environment, the vehicle is a hero asset but still part of a whole environment. I had to choose where to put my time wisely since I realistically only had 2 weeks to create this environment.  



There are some critiques I have for myself. One is that I should have probably added more loops to the bonnet/hood of the car so that its a smoothing curve in the silhouette. There are also some elements of the car missing entirely. Such as some side grills, chevrolet iconography, side mirrors, rear lights and a license plate. Some of these details are fairly minor and don't affect the silhouette of the car so it wouldn't be noticeable at first. Only on a closer look will anyone realise whats missing. 



Sunday, 8 December 2019

1950's Alien Invasion - All Weeks - Part 2

Materials

Materials are important in an environment, the first Material I wanted to create was for the ground as its the foundation for everything else to be built atop of. My goals for creating the material was to be able to blend between versions and break up the repeating pattern (tiling) to make the ground look more unique. To do this I need three materials, one which is fully grass another that's just dirt and a blend between the two.   





This is my first pass at creating the ground. What's good about this is that the grass looks convincingly realistic, the randomness in the grass blades helps sell the look as well. What's bad about this is the dirt. It looks too noisy, and has no defining features. It just doesn't look realistic. 



  
This is my second pass at creating the ground. For the grass I added more colour variation to give it a sense of some dying/dry grass mixed in with fresh green grass. I feel like this helped to add another step in realism as grass would differ in patches of texture, colour and dryness. I've also improved the ground by having size variations of rocks and pebbles. I also added in some small grass blades to the dirt, to make it look as if grass is trying/starting to grow in this dirt.


The next thing I created was the wooden beams that would be seen in the barn behind any structural pieces. What I wanted was a look of age whilst also having variation to make it look like each plank has its own story and is unique. 

Sunset Overdrive - Ultimate Trimsheet

One thing that I wanted to try this project, was to apply edge normals differently to how I would normally do. In the last 2 projects the way that I would add normals to my geometry, would be done by chamfering the edges and then weighting the vertex normals. This makes low poly assets into a "mid poly" asset. However, games in the past didn't necessarily use this technique to add detail to large structures in environments, due to a need of being resourceful with tri's so that the game will run smoothly.

So how did they do it? Well there are two ways, but in this project I'm going to go into one particular technique that was used in Sunset Overdrive. This technique is called the "Ultimate Trim", this requires you to have a standardized trim layout (which I didn't do) and a 45 degree normal map bevels along all edges.

You also need to unwrap the object to the Trimsheet and make sure that the normal's are lined up correctly on the edges. Here's an example given from the GDC talk



As you can see the results are great, although there are some details being slightly distorted. But this can be fixed by spending more time on the unwrap. 
Another thing that needs to be considered is having some padding around the edges of the unwrap, so that when the texture is mipped, the normals won't bleed into each other. 


Now that we've talked about the basics of what this technique is, I'll show what I've created. You might recognize this from part 1, as I used this texture to demonstrate gradient maps in Unreal.

There are two major differences between my texture and Sunset Overdrive. One alright, one bad. The first is that I wanted two different types of bevelled textures. One which has an end or an edge, and one that tiles forever. My reason for this is because some structures in my environment, have very long width. And it would look very strange if it was made from multiple planks of wood. So having no repeating end edges is a benefit. 

The other difference is that I did not create this using pixel ratios. Earlier I mentioned that there is a need for standardized trim layout. This means that the trim can be separated as each line of detail are x-amount of pixels high. This is important, because there are tools that can be used to help map unwrapped geometry to the sections of the trim. If you don't use this, then it will take a long time unwrapping each object by hand to fit the trim, which can lead to a lot of back and forth from unwrapping to exporting to Unreal. (Which is what I ended up doing)

Since I was only creating a wood trim with no metal, I was able to freely use the blue channel and alpha channel. I plugged my height map into my blue channel so that I could use the greyscale image to colour in Unreal with gradients. I also added a sort of old worn paint mask to the alpha channel. I wanted to have some wood planks look as if they're reclaimed wood, and that they'd still have chunks of paint that's adhered to the wood.   


The Barn

Here are some early development screenshots of the interior of the barn. I wanted the barn to be fairly large in size, so that the player doesn't feel suffocated when inside. A good way to make a small space seem more open or large is by increasing the height of the ceiling. 



Here are the references that helped me in planning and creating the architecture. 


Although I mainly used this image in helping to guide my structure. It was a very clear and understandable image, and I could visually break down each component that makes the support. However there is one difference between this image and my barn, the walls are a lot shorter and the ceiling begins much earlier than my barn. My solution was to just add another layer of supporting beams.


Reference images were sourced via Google Images.




1950's Alien Invasion - All Weeks - Part 1


1950s Alien Invasion

This is a brief that has the only restrictions of a sensible poly count that would work in a PS4 and Xbox One game with 3rd person perspective. Besides that there aren't any real restrictions. 

Inspiration

When you think 1950s alien invasion I feel like the first thing most people think of is Mars Attacks or Destroy All Humans, having small grey aliens and flying saucers. However I was inspired by something different. Simon StÃ¥lenhag is a well known swedish artist that paints some great dystopian/futuristic environments. There was a particular painting of his, that I really wanted to see in a video game setting. 

  
There is a lot of ambiguity and mystery in this scene, which I felt helped play into the alien theme, because what is truly alien is something we do not understand and the fear that comes with it.

The mechanical tendrils in the scene also reminded me of an older piece of science fiction: War of the Worlds. I thought it would be interesting to combine the two ideas of this painting and war of the worlds to create something new and interesting. 

Also looking at the colour palette that is already here, there can be an interesting clash of a foggy blue atmosphere and the saturated red weeds/vines. I would have to make a few alterations to make this fit into my project, first of all I think this should take place on a farm as its the closest thing I could think of that is similar to the location in the painting. There are other things to consider as well, as how to portray 1950s america, and not confuse it with today's america.



Production  


Although the idea might be interesting I need to still tie it into 1950s america, and the one thing that defined american culture of that time was cars. There are many reasons as to how this automobile culture came about, but this isn't a history lesson, this is art. I looked for all the different types of cars at the time, and I looked specifically for cars that would be used by farmers. What I settled with modelling was the 1949 Chevy Truck. I wanted to start the vehicle early as possible, since its the hero asset of the scene and helps define the setting. 

I started the modeling process by strip modeling from two images in orthographic mode. However after a while I figured out that the two images weren't exactly orthographic, so the images won't line up exactly with each other. This led me to use them as rough guide, and primarily use a lot of images and my own judgement to get proportions and details correct.

After getting the car to a stage where I felt comfortable to leave it, I then moved on to creating the environment. Later on I can come back to this, however I first need to make sure I have an environment to put this asset in.





Creating Grass Foliage

I have not made any foliage since my first year on the course, and that foliage was hand painted and stylized. I wanted to learn how to create realistic foliage for current-gen games. And I thought that this project was a perfect opportunity to do so. 




The first step is to create a few grass blades and apply a gradient material with 3 different colours. Then you place and bend them in whatever way you want, have enough to look full but don't have the grass blades overlapping too much. 




You then bake them down to a plane and get the base colour and normal map renders. There is also a need for a height map as well, however I imported my normal map into Substance Designer and got a heightmap from there. 




After the textures are compiled, bring them back into 3dsmax and apply the material onto a plane. Cut out the grass and make sure that there isn't any wasted space. Then vertex paint the plane, making the bottom black and the top red, this will be used to help with applying wind in Unreal. The red parts are going to be affected by wind the most, making it so that the roots of the grass don't move. 



The next step is to make sure that all the normals of the plane are pointing upwards. This is to help with the shading of the plane, if the normals are facing one way, then the other side of the plane won't be shaded correctly and would be dark.


The final step before bringing it into unreal is to clump the planes all together to make a mass of grass. 

After bringing the grass into Unreal I realized that the grass looked quite stylized, that the blades are too thick and unrealistic in proportions. I searched for a bunch of different tutorials on how to make grass. One of which was using a tool in Zbrush which is primarily used for creating fur strands. 


The results were interesting and fairly realistic, however I wasn't able to get a good bake and would always turn out to be pixelated.
Also as a side note, I tried creating a landscape material within Unreal however I wasn't able to get the materials to Height-blend. Weight blending would work, but not Height blending, I even asked for help from numerous people, but we weren't able to figure out as to why it didn't work. Since I couldn't even get the landscape material to work, I thought it was best to scrap the idea of creating a landscape and focus on creating an interior for the remaining 2 weeks I had. 

I think if I were to do this again, I would most likely create my foliage/grass within substance designer. As I find it to be the most comfortable and versatile tool in creating textures and images. And then at some point I need to figure out what I'm doing wrong with a landscape material. I tried creating the material in the last project, and that didn't work either, even though I followed a tutorial step by step. I feel like landscape materials might have changed with an update to Unreal. 






Gradient Maps

Something that I learned in the second week, is that you can use gradient maps in UE4 similarly to Substance Designer. I was getting frustrated with not knowing how to change the colours of textures dynamically. I know that you can multiply a 3-vector node ontop of the base colour, however that tints everything to the colour you multiply it to. What I wanted was something similar to substance designer, where I can have a grey-scale image, and then plug it into different colours. 

I tried all sorts of methods and even the 3ColorBlend node, however I wasn't getting the results I wanted. Since I knew exactly what I wanted I googled searched "Gradient Maps in UE4". What I eventually found is this: https://www.youtube.com/watch?v=7Tz0RLH_Fs8 

Basically you can make a gradient map in Photoshop, save and import it to UE4, plug the greyscale texture into the UV's of the Gradient Map, and Unreal will automatically re-colour the texture according to the gradient map. The best thing about this technique is that the gradient maps can be tiny, like 1 by 256 pixels tiny. In fact its 812 Bytes tiny. The only downside is that the colour texture becomes very simple, that you can't add more unique things such as grime or age. However to compensate for this, Decals can be applied in UE4 to break up the tiling look even more. 


I create my Gradient Maps within Substance Designer, since I can see the how the gradient colours affect the texture. This allows me to spend time tweaking how the material looks before I bring it into UE4. 





Using the Gradient Editor in Substance Designer I could use the Gradient Keys to help make plot the Gradient Keys in Photoshop since I can Copy and Paste the Hex Colour Code or RGB values. 


Applying this in UE4, I can hook up the different gradient textures into vertex painting. Whats so great about this is that I can make the texture samples of the gradients into parameters, which allows me to swap and change the gradients in an instanced material. Which then allows me to either have different wood types, or blend between them to create a multi-colour layered model. 



What I find interesting is that whilst researching I found that a lot of game companies have done this technique to quickly add variations to their assets. Valve did this with their zombie hordes. 



And Bungie did this with their muzzle flashes in Halo 3. They Re-used the same cloud texture, but just applied different gradients to get a completely different look.