Monday, 13 April 2020

Week 14 - Sculpting and Windows

I spent the beginning of this week starting to redo the other Rain Material Function and made good progress, but again will explain it in a separate post. I also worked on and finished the Atlas Statue for the top of the Herald Building and made a Material for the upper floor windows of our buildings.



This is how our scene currently looks. We still have a long way to go in terms of lighting and atmosphere and time is running out. Might have to do an extra bit of pushing the next few weeks.

1 - Atlas Statue

Overall I spent about 2.5 days on this asset. I wish I could have polished it a bit more, but there are still so many tasks left to do I had to rush it a bit. Also, in all honesty, I have not really done any sculpting in a while, so I was a bit rusty.
It was quite difficult to make out any detail in the original concept.

Atlas Statue in the Concept
I did some research and found images of the Rockefeller Atlas statue, which fits our Art Deco theme so I took as the primary reference for my version. However we decided to keep the kneeling pose of the concept, since it made more sense composition wise.

Reference

ZBrush Sculpt

Retopo

Retopo

I feel like I could have saved a few more tris since the model is at about 7k tris, but I wanted to make sure that all the shapes are well defined.
For the textures I divided into 2 texture sheets, 1 for the body, 1 for the globe.

Globe Texture

Body Texture
I am quite happy with the result, considering the short amount of time I had to do it from start to finish. It certainly could have used a bit more polishing, but since you will only be able to see it from quite far away in the scene we'll hopefully get away with it. We are also still lacking the platform the atlas statue is standing on, that might be something I'll do next.

UPDATE: I made a quick placeholder platform and threw on some textures we already had. Litha might come up with a better version, we will see, but here is how the Atlas Statue looks in the level.

Now it is Atlas Square


2 - Interior Window Shader

Our Window Meshes are constructed in a way, that we have one plane for the glass and one for the interior, which I worked on this week as well.
Two functionalities which we agreed on from the beginning was, that we wanted the lights to turn on and off, as well as the blinds opening and closing in intervalls.
Fortunately Unreal has a Material Node called PerInstanceRandom, which can be utilized for that.

Interior Window Material Graph
The first thing I tackled was the opening and closing blinds. Litha made the textures for them. To move them up and down I just offset the UV Coordinates in the Y-Direction. However I needed to make sure, that the texture is not tiling, so I tried setting the Texture Tiling Mode to Clamp instead of Wrap, however that didn't work quite as intended, so I used a Custom Node to return a Mask of the UV 0 - 1 range. There are probably more elegant ways to solve this, for now this does the job.


I then multiplied the output of the custom node with the mask of the blinds to get the desired result.

The next part I had to worry about was the interior behind the blinds. Litha originally had suggested to just use emissive colors and see how that turns out.
I made a procedural vignette effect for that, however when just using that as the emissive it looked way to cartoony and flat, so I thought about alternative solutions. I also used the PerInstanceRandom Value to add slight color variation, lerping between the emissive colors and their negatives, in this case yellow and blue tones, which provided better results than using a HueShift instead.

Vignette
Originally we had hoped to ad parallax to the widows, but scrapped the idea, because we don't have enought time to make assets to populate the rooms. However it still seemed like the best option to me, so in order to test and simplify if I baked a cubemap of a cube interior. I made different versions for testing, two examples are below.



I went with a variant of the second one. I found out, that lower contrast and medium values worked better. This cubemap then could be used to create the sense of an interior as well as controlling the emissive strength. Of course it still looks a bit strange, so we might have to add some detail, but for now it still helps adding a lot to the overall scene.

Interior Cubemap in the Material Graph
I also used the Emissive Strength Parameter I added to lerp between a darker and lighter version of the cubemap, to increase the sense of lights turning on and of and not just saturation changes.

Next I moved on to animating the lights and blinds. I also wanted to be able to control which percentage of the windows would be animated and which static/turned off.

PerInstanceRandom Setup
I use the PerInstanceRandom value to the threshold/percentage value and return either 0 or the Random value. I then remap the values to the 0 - 1 range. This is very similar to what I did in the Rain Drop Function to even out the time offset.
Now I had to worry about how to transition between the on/off and open/closed states. The very obvious answer was to use a sine/cosine function, however I ideally want a function that isn't constantly changing, so I started looking for flattened sine/cosine functions and stumbled over this thread on StackExchange: https://math.stackexchange.com/questions/100655/cosine-esque-function-with-flat-peaks-and-valleys

I ended up using the following function, since it was simple and controllable in the way I wanted it to be.


I used this function to control the speed at which the state change happens and used different values for the lights and blinds, the blinds using a longer transition period. The Phase length is also controlable.
For the lights, if the PerInstanceRandom Value is below the treshold I return 0, so they are turned off by default, for the blinds I return the PerInstanceRandom Value.

All this combined looks like this in the level:

Material Cube


Now with the material added to the windows the scene is starting to feel slightly more alive (we will have to figure out some better settings), however we still have such a long way to go until it is even close to the concept in terms of atmosphere.
Next I will probably tackle the clouds/fog, finish the Rain Material Functions and start implementing the actual rain.

No comments:

Post a Comment