-Unreal Engine 4
This was a University Project.
This was a solo project and I was the only team member. I decided to try and build a level based on a fantasy village. I realised that a lot of my pieces have been of a sci fi nature. Therefore I thought it would be a good idea to stretch my wings and try a different genre.
I wanted the level to have a lot of height variation in it. This was in part to keep the player interested but also to try and make a realistic looking terrain that a medieval village might have been built on. I also didn’t want the level to just be a square which is why I added on the two off shoots at either end on the level. I also thought that putting two rivers in the level and essentially cutting the level into three islands would be another way to make the level more interesting and also add to the overall aesthetics. On the plan I spaced out the buildings in a way that felt natural with the ups and downs of the terrain, Instead of having rows of houses I decided to make groups of houses. This seemed more in keeping with the medieval theme especially since the houses are worn down and old. To improve the believability of the level and make it feel like part of a bigger world I added hills and trees beyond the walls.
My final lighting works very well with my level and really helps it come to life, this is due to all of the experimenting I did and researching different methods of lighting within Unreal Engine 4.
To demonstrate some more skill in Unreal Engine 4 I set up a skeletal mesh on the player character and animated it.
I used Mixamo and animations from there to create the character’s mesh and rig it.
I then used the persona mode with Unreal Engine 4 to add the animations and used Blending to combine the animations and make them smooth. The Blend works off of a speed variable that tracks the velocity of the player character. As their velocity increases the animations smoothly blend together.
The animation is then controlled by an animation blueprint. This blueprint detects the velocity value and begins the blend space animations, which make the animations play.
The final part of making the animations run is the state machine. State machines tell the animations when they should transition between each other.
My first step was getting the terrain to be the right size. I felt this was the first important step due to the fact it would give me the total size of the area that I wanted to work with.
After the terrain I put in the walls, I wanted to get their height right in relation to the player and I wanted to get them placed in so that I knew exactly where the boundaries of the level would be. The walls also helped me decided if the terrain was big enough.
I then moved onto building two different sized houses. I built a large house and a small house. This was again to get an idea of their size to the player and to also see where they should be placed and how many I would want in the level. With these positioned I had my full white box and I was able to move onto my next phase of development.
After building the White box and making a list of assets for the level, I began building the assets in Maya. I started with building the big assets like houses, shops, walls and bridges. These are the key models that fill up most of the scene therefore I decided they were the most important.
When modelling of assets was completed I moved onto unwrapping the models. Unwrapping is not one of my strong points. Some of these models were difficult to unwrap particularly the well.
With most of the unwraps I would begin with doing an automatic unwrap. I would then go in a manually attach the edges to create a coherent and clean shape of the asset.
I textured the assets using Photoshop to make the diffuse colours and Knald to create the normal maps. I used base textures from CGTextures.com (referenced in the reference section) and I edited them to get the texture effect that I wanted.
Below is an image of the level without any post process effects.
As you can see it looks very dull when compared to the image below which shows the level with post process effects.
To create these effects I added a post process volume to my level and then in its details I adjusted the brightness and contrast levels to make the level more colourful. On top of this I added some bloom and flares to add effects to the lighting. I also added a depth of field and a small edge of the camera to help bring the level to life.
To set up the guard’s patrol routes I added a nav mesh to the level. The nav mesh automatically figures out where the AI can and can’t walk. I then set up a blueprint that controls each individual guard’s movement.
This blueprint detects when the AI are in certain trigger boxes, if they are in a trigger box it will send them to a target point on level. This target point also has a trigger box on it which is set to send the AI to another target point. This simple method of moving the AI allowed me to have them on continuous patrol routes.
Instead of using the in engine fire particle system I decided to try and create my own. Admittedly this particle system isn’t fully completed and could still use a few tweaks to make it look more realistic. However I’m glad that I learnt how to use cascade in Unreal Engine 4 to create my own fire system.
The most complicated material I have is the water material. This material pans two different normal maps in different directions and makes IT look like they are moving up and down. It also runs two different colours against each other and affects their opacity and adds a depth of view to them so that they combine to make a nice shade of blue but also appear thicker when far away and thinner when closer. This provides a realistic looking water but, maintains the style that I was trying to make with this level.
To open the house door I have set up a blueprint that will allow the door to be opened when the player walks up to it and presses E. The player has to be within a trigger box near the door and this trigger box enables input. This means that the player has to be near the door for E to open it.
To place the hole in the terrain where the house is I had two different materials put onto the terrain and then set up a landscape visibility mask in the material editor. This meant I could delete the area of terrain where I wanted the hole to be.