We were first given a tutorial in the basics of unreal engine. I will go over them here to prove that I understand how each function works.
The first tutorial we were given was in texturing - our tutor taught us how to create master textures, and how to produce material instances from those masters.
In order to create a simple master material in Unreal Engine, you must create a new material in the content drawer (named M_Material so that we don't get it mixed up with any of the instances), and then enter the node editing blueprint within this material. You start by creating three nodes - texture coordinates, a blank parameter which you name "UV_Multi", which are then both plugged into a multiply node. I'm not exactly sure what these nodes do, however the master material does not work without them. From the multiply, you make four 2D parameters, and naming them "Diffuse_Col", "Metallic", "Roughness", and "Normals". You then plug them into the correct inputs in the material node. Note that in order for this master material to work, you must place any image into the parameter nodes. They don't have to be the relevant images, as we will specify the images within the instances, however if you leave them blank, it will come up with an error message, and will not work.
From this master material (which is not to be used as an actual texture), you right click and select "create material instance", and then name it "Mi_[texture identity]". For this tutorial, I used the marble texture that I downloaded to experiment with texturing in blender for my research, and so this material is named Mi_Marble. The blueprint for material instances look quite different to the masters, with no node editing system and instead a view of the texture and a place to input images (as seen on the middle right). Here, you turn on the "UV_Multi" parameter, as well as any of the other ones you need (this marble texture had no metallic, and so I kept it off). You then drag and drop your texture's images from your files into the Unreal content drawer (preferably into a materials-specific folder), and then into the relevant image slots.
You then simply drag and drop the instances from the content drawer onto any given mesh, and it applies it. You can see to the bottom right how this looks on an object in Unreal, as I used both the marble and rock textures from my blender research onto cubes.
Our tutor also showed us how to code the interactive portion of our brief; this entailed opening up the level blueprint and creating a simple node system. You create a node which detects the press of a button (in this case, the F key), which then triggers a flip flop to play a sound (placed from the files into the content drawer). This sets a variable to detect that the sound is playing, which then (when the F key is pressed again), triggers the sound to stop playing. You can see this setup to the left.
Finally, once I had become well-versed in most of the needed Unreal Engine functions, it was time to start on the actual production.
After all of my meshes had been exported from blender into the correct format (a .fbx file), I could start building my environment in Unreal. I encountered a few errors and slip ups involving incorrect unwrapping, file corruptions, and attempting to remove the existing textures from the meshes, my room was in Unreal (as seen on the top right). After importing my mesh, I set up the lights. To solve the issue with the lampshade that I mentioned in my initial lighting concepts, I applied subsurface shading to the mesh, so that light was able to seep through. Other than that, it was just a lot of playing around with the temperature and intensity until it not only matched my concepts, but also lit up the room sufficiently.
As you can see, I applied the lights to the eyes of the bust, however I will go over the changes made to this idea later on in this page.
Next I placed in my textures, creating master materials and material instances as we were instructed in our tutorial, though of course using my custom textures made in Quixel Mixer rather than pre-downloaded ones.
Of course, there were some surfaces in my environment that my custom textures did not account for (for example, the metal of the curtain rings, or the ornament on the fireplace), and so to compensate I created two different master materials for the two types of textures needed. As seen below, the master material on the left is for my custom Quixel textures (set up as our tutorial instructed), and then a more simple master material on the right, with just a plain colour that I, in my instances, directly referenced from my blender textures. Between these two types of textures, I managed to completely texture my environment.
Once I had completed all of these steps, I put on the lights and was able to look at how my room will be when it is exported. Overall I am very happy with how this turned out; I will go into more detail about the environment's specific strengths and weaknesses in my evaluation.
Some obvious things to note, which I did not have time to troubleshoot: there seems to be light emanating from behind the fireplace, and from the cracks in the back wall. Also, some of the textures are inverted, for example one brick on the wall is the wrong colour.
Another thing I would like to note that changed last minute due to me running out of time is that I could not figure out how to code the lights to come on and off with the F key; I also did not have the time to code a button physical, so the sound is triggered by the F key as well.
Other than those few technical errors, There reall is not a lot wrong with this environment.