3D Interactive House
Markel Azpeitia Loiti, Yaiza Rubio Chavida, Aitor Zubillaga Unsain
Demo
Repository
https://gitlab.com/azpema/3d-interactive-house-ue4
Build (Windows)
The size of the repo was too big so the Windows x64 executable was uploaded into a different repository: https://gitlab.com/azpema/3d-interactive-house-ue4-build and https://www.dropbox.com/s/dw9h033h42gtfjl/WindowsBuild.7z?dl=0
Several props can be interacted with by approaching them, pointing the cursor and pressing keyboard button 'E'. Some of the interactive props are: doors, cupboards, curtains, toilet and microwave.
Main goal
The aim of this project is to create a scene representing a house with a high level of user interactivity (opening and closing doors, turning on and off the lights...). Moreover, we will use different types of lights as well as particle effects.
Tools
To create the project we used the following tools:
- UE 4.25.4 (main tool for the project).
- Blender (to design new objects).
- Git (to share and store progress).
- Discord (to communicate and meet each other).
Initial progress (15.11.2020)
None of us had previous experience with Unreal Engine, so we spent much time watching different tutorials. After that we made some tests to understand how this program works before starting with our project.
First of all, we created the template of our house using a blueprint. Then, we added some doors, textures and furnitures. We realized the house was too big, so we changed the original structure. We also created new objects using blender (it was also new for us, so we needed time and patience to get good objects for the house).
From this week, we will start using Unreal Engine in our Computer Graphics practice sessions, so we hope to learn new things to improve our environment.
Coach meeting (03.12.2020)
In the meeting with our instructor, he helped us by giving us some advices and solving some problems we had. First of all, he taught us different ways to make mirrors and reflections for our house and he explained us the types of lights and how to use them. We also asked him how to get more textures and props for free and he told us to use Megascan. Then, we were talking about how to implement the user interactivity and he showed us some UE4 examples. Finally, he recommended us to change some issues and our player scale (he couldn´t enter to some rooms).
Final release (03.01.2021)
Introduction
The project consists of a UE4 scene with a house modelled from the inside and outside, with the possibility of interacting with various items in the world. The house has a single floor and is made up of a kitchen, a living room, a bathroom, three bedrooms and a garage, with a small swimming pool in the garden.
Methodology
Unreal Engine 4 was used to develop this project, based on a First Person Shooter template. The first step was creating the house layout by using an already existing template we found on the Internet. For this we used UE4's BSP brushes to model the walls, floor and roof.
In order to fill the house we started using the Starter Content provided by Epic and the so called Free Furniture Pack. These props were used to build a rough approximation. However, they were not enough to create a convincing scene, so after some browsing we found very suitable prop/material/texture collections also provided by Epic, from the game 'What remains of Edith Finch':
EF: House and Common Areas EF: Molly Room EF: Barbara Room EF: Edie Room
We also used some materials and textures provided by Megascans, for example for the floor and roof tiles. Moreover, a couple of props were taken from free 3D model banks, like the kitchen's smoke extractor or the sink. Lastly, we created some items like the plugs, the stove, the light switches and the mirror.
Once we got a good environment, we aligned the textures and we started with the interactivity part. First of all, we added cupboards that have separated doors, then we programmed them to open and close progressively by rotating or translating them. Then we did a similar procedure to open and close doors and the toilet. Moreover, by changing the scale of the curtains we were able to open and close them. After that, we added interactivity to the light switches. Each interactive point light has a variable referring to the instance of the light switch to which it belongs. Finally, with the particle system we made fire when the user interacts with the microwave.
Complications
Creating the house with BSPs resulted in a very cumbersome and time consuming task, specially when creating the roof. At some point in the project the position grid was disabled, meaning that prop's BSP vertices could be placed anywhere and as such positioning them accurately became very difficult.
Near the end of the project the lighting would not build anymore, which caused many headaches. After some digging we discovered that this problem could be caused by corrupt or duplicated materials or meshes. After trial and error we discovered the culprit material, removed it and fixed the issue.
Conclusions
We have arrived to the conclusion that UE4 is a fantastic tool for game development. Even though it can actually be really hard to master it, the entry barrier is low which means that everyone can develop a simple project on it. The community of users is really big and there are a lot of resources online which have been a big help whenever we were stuck. The possibilities in this engine are almost endless. However, whenever we came up with something for the project, there were countless tutorials which have helped tremendously in the implementation process and from which we have learnt a lot. We would recommend UE4 to anyone who wants to introduce themselves to game development.
Future Improvements
We had many ideas that could not be implemented into the project due to time constraints, for example we would have liked to work more with the particle systems, for example by adding a working water faucet. Of course more props could be added in the scene, mostly in the kitchen-living room area. Some noises could be also added to make the environment more realistic.