The first real post I have put on here related to my Final Major Project (development blog @ blog.keproject.co.uk), also if you haven’t seen my previous post on my scripting blog go take a look. I’ll be posting up most of my updates on those two blogs, but as I’ve been working mostly on decals and VFX for the past few weeks I thought it’d be best to do a quick update on here.
As part of a larger ‘Environment Pack’ we are creating for the project there are small subsidiary packs that make that up 2 of which are Decals and Particle Effects. The content in said packs are all themed around the ‘British Slum’ atheistic and are to be used in conjunction with the other packs, but should also work as standalone assets.
To add more detail and variation to the environment quickly without having to bake more information into the textures and have it tile everywhere, we are including decals to be projected on the walls and floor. Whenever you see graffiti it is very rare that you see exactly the same piece twice, so using decals was going to be key. But to get the variation we want out of this the default decal actor doesn’t deliver the enough options in it vanilla form.
To overcome this I have made a custom decal actor using blueprint to allow for the use of sprite sheets that hold multiple decals, meaning I don’t have to have a different texture sheet for each individual piece of graffiti. As well it means I can open up a range of editable variables that give even more options for customisation for each instance of the actor.
Here’s a video demonstrating the use of the decal actor and the options available:
Another thing that we wanted to have without having to bake the information onto the texture was road markings. I have again made a custom actor that allows you to draw out the road lines using a spline in engine and pick from the given options to give a wide variety of outcomes. These use a meshes instead of projected decals so that it will conform to the spline but the concept is basically the same, trying to give the user a controlled way to get as many outcomes as possible and further increase the variation in the environment without a huge performance hit.
Another video showcasing the road marking tool and the possibilities you can produce through it:
I am currently working on the particle effect pack and will have something like this to show in the near future. But for more information and more regular updates on this project please follow us at:
FMP Blog: blog.keproject.co.uk
UE4 Forum Thread: /UE4-Student-Project-Slum-Environment-Pack
So I didn't win... which considering I spent half the time on it and after seeing the other entries is unsurprising. But at least I was in the highlights video and it was great fun to be a part of. Can't wait for the next one!
For those of you that missed the highlights and winners announcement during Thursdays live-stream here's mine and all the other entries for Unreal Engines March Game Jam:
If you’d read my previous blog post you will know that I have recently started working on an ‘Architectural Visualisation’ project I am doing in my spare time while doing my Final Major Project for University. Over the past week I have been whiteboxing the environment so that I have the scaled base assets set ready to start making the final meshes.
I have found that getting realistic scale between objects is surprisingly difficult especially when working from a 2d image. So most of my time has been spent trying to get that correct so that I don’t have to worry about it later on down the line when I’m making the final assets.
I started out by blocking the environment out using BSP in engine so that I could quickly get a sense of the environment. I used the 5cm grid as a guide so that I had relatively fine control over the placement. By using the grid I was then able to setup the grid in Max so that it was the same so that when it came to creating the Static Meshes to replace the BSP it would transfer exactly.
I have now replaced almost all the BSP with nearly final custom meshes. This has means I no longer have any of the lighting bugs I was getting and I could apply basic materials to the scene to get a better idea of what the finished image will look like.
Finding reference for some of the elements has proven tricky. Getting furniture reference isn’t too bad as most furniture stores give dimensions and a variety of photographs of the products. But with things like the floor to ceiling windows they are slightly more bespoke and getting close-ups and dimensions for them has taken longer that I first anticipated.
From here I’ll be continuing to add more meshes and add further detail, refining the assets I have already made until they are ready to unwrap and texture. While doing this I’ll also be working on the lighting in the scene as this is going to be key to showcase the assets and make the scene look realistic. I have researched into different techniques that other people have used to get realistic lighting working in UE4 and have done a first pass of the lighting, although it’s not close to correct it’s, giving me a base to further work from.
So the Final Major Project is in full flow at the moment, but aside from that I have been working on finishing off some other pieces and starting a new personal project (Updates on final project at: www.keproject.co.uk).
I finished texturing my lawn mower and have done renders in Marmoset Toolbag 2. Which I thought would be straight forward but it turns out the workflow from Substance painter to marmoset isn’t as straight forward as I first hoped. It took a lot longer to get it looking how it did in painter in maramoset and although it’s still not quite 100% there; not showing all the detail the shader in painter does, I am happy with the renders I got.
The main purpose behind doing the Lawn Mower project was to practice working firstly on hard surface modelling, as well as working with a variety of different materials on a single asset. As a lot of my University work has been technically based recently I wanted to make sure that I kept on top of my modelling and texturing skills, especially working on PBR workflows.
Now that I have finished this project I am going to take what I have learnt from it and apply it to a new one. I have set out on doing an Architectural Visualisation piece in UE4. This will not only allow me to continue working on my hard surface modelling and material definition but also getting realistic lighting and working more on environment based work in engine.
I want keep the project to a decent scale so I have opted to doing an interior piece. After doing some research I have chosen on basing the project on a Foster and Partners project.
I was drawn to this particular image due to the colour and lighting. The soft blue hues from the external lighting reflecting off the interior furniture sits beautifully against the glow of the artificial lighting and wooden units. I wanted to pick an image that would be achievable but also challenging to get looking just right and that’s exactly what this gives me.
As all I’ve got to go off is the one image I have had to guess room’s dimensions. Using real-world dimensions from similar looking furniture got from IKEA I was able to model those and use them as a guide to setting the scale of the rest of apartment. As I fill out more of the furniture I will be able to refine the scale as well as work on getting the lighting right before moving into full production of final models for assets.
It has come to that part of my degree that I have started my final project. A daunting prospect but I’m looking forward to seeing how the project evolves what the final outcome will be. The project I am working on is a group project which is an environment pack themed around a European slums. I am taking technical lead on the project, making all the tools that come with the assets as part of the environment pack. The idea is that you can take the pack afterwards and create a variety of environments based on the theme using the assets and tools provided.
For more information checkout the links bellow.
Project Website: http://www.keproject.co.uk/
Project Blog: http://blog.keproject.co.uk/
As you may have seen in previous blog posts I have been working on creating a fountain with particle effects all controlled in blueprint in UE4 with some configurable behaviour. I have learnt a lot doing this project from working with particle effects to blueprints but mostly making sure that the direction you start taking a project isn't going to bring you to a halt later on. Which is something I experienced. The brief I was following set that only 400 particles were allowed on screen at any give point. Which was perfectly reasonable but I stupidly decided to go ahead with a fountain design that required having 48 streams of water cascading from the 3 tiers. This meant that I was restricting myself massively on how much i could do with each particle emitter. I didn't realise the mistake until I had modelled textured and got in engine the fountain.
Luckily not all was lost, I made a new model that only had 4 streams of water meaning that a lot more particle could be used on each emitter. I was able to carry on working on the particle I had already started on and I could still use the water shader I had made for the previous fountain.
I was able to still hit all the major points in the brief but due to having to model a fountain twice I lost the time I set to doing the extras in making the second one. Otherwise i am happy with the overall outcome of this project. i was able to add some basic configurable behavior in setting the age and strength of the fountain.
The age variable was done by doing a linear interpolate from the base texture adding a multiply layer over the top, the reason i did it that way instead of lerping a completely new texture was to keep within the set texture budget. the multiply layer is half the size of the main texture sample but as it's applied over the top and not replacing the main texture you still keep a high textile density. I also changed the colour and depth bias in the water shader and the particle colour simultaneously to this so that it gave an overall effect of the changing the age of the fountain.
The strength variable controls the amount of particles being spawned as well as the strength of the water shader and loudness of the audio. This one needs the most work, as I would prefer it so that the water streams become a weaker/ thinner stream of water instead of dripping. Also currently it just currently controls the volume of the audio, but ideally it would use a blend space to merge into a less harsh water stream audio sample as the strength is reduced.
Given the setbacks I think the fountain was a success. Remodelling allowed me to add some metalness to the model which adds to the aesthetic as well gave me the opportunity to really get the most out of the particles. The water shader is something I am particularly happy with as the depth bias and refraction gives a realistic edge that I haven't been able to achieve on previous attempts at water. As well as shader work my proficiency with Cascade in UE4 has increased dramatically something I hope to carry on working on in future projects.
Christmas has now past and it's time to start working on wrapping things up ready to start back in the new year. FMP is peeking over the horizon; ever creeping closer, and I've got a bunch of loose ends that need tying before that can begin. I am currently working on 2 different projects, one for university (fountain project) and one personal (lawn-mower project).
Update on the fountain, it's slowly trickling along. Modeled, unwrapped, with textures the fountain itself exists. I've also got the base of the water shader done, although it needs tweaking, but then everything does. I've blocked out the base of the flowing water particle but I've realised that I may have made a slight mis-judgement on the type/ size of fountain I chose to make given the amount of samples I am allowed in total for the particles. Given there are 3 tiers and 16 spouts on each tier of the fountain it means that however many samples a particle uses I have to multiply that by 48 to get the amount that will be present in the scene. As I've only got a limit of 400 samples for the whole scene it has restricted the quality of the particle effect I have been able to produce. I'm going to see if I can get it to work but if not i may have to go back and change the design of the fountain to fit the particle budget better.
Another thing i am currently having to consider with fountain is what variables I want to be exposed on the fountain. I have made different textures so that I can put the age/ wear of the fountain on a sliding scale, this will also change the colour and how clear the water is. I'm also looking to be able to set the strength of the fountain, this'll change the water flow as well as the water height. There are some other features I have in mind to add but getting these working, bug free, and having it visually at an industry standard is the highest priority currently.
Along side this I am also working on modeling a lawn mower. The idea behind this is to practice PBR texturing as well as hard surface modelling. I have changed from working with solely photoshop for texturing but using substance painter to texture as it allows the ability to paint the albedo, roughness, metalness and height map simultaneously, as well as having a bunch of other features that makes the process a lot faster without taking away from the end result. Once I have finished adding all the decals, text and small details I will be able to export the texture maps from substance painter and render screenshots and a turntable to showcase on my portfolio.
I've got a couple of weeks at the start of the new year before my final major project begins but I am hoping to have these projects mostly finished new year so that I can use the following 2 weeks for polish and do some more concepting and research before the final project starts.
“Game Art is a fast moving industry and it is necessary to be able to work quickly, effectively and as part of a team. This project should give you the opportunity to understand what your chosen specialism would be like. Together we will be working towards a large goal (Game), this will have separate elements (Levels) and these levels should have individual content that you can put towards your portfolio.
This project has elements that will allow concept artists, character artists, environment artists and engine artists to develop their skills, and hopefully allow you as a year group to create something larger and more impressive.” – Project Introduction
As part of the Engine team for this project I was tasked with creating “a playable game that can load each level section. Each level should be lit effectively and should contain various events that can work with gameplay. The first half of the project should involve white boxing and flushing out the development of the gameplay. The second half should involve bringing in assets and finalising the appearance of each level.”
This brief was what we were given to understand what our job role was as a member of the engine team throughout the duration of the project. Knowing this we started off by collating everybody’s ideas for what they wanted to be included in the game, in terms of gameplay and interactivity and started to do some research and development into what was going to be possible to get working in the time that we had available.
Given the age of the engine there isn’t as much information online on how to get certain things working in engine. We found that some research was drying up rather quickly and to get things working would take more experimenting ourselves than just copying what someone has already achieved in the past. For example an early idea that was brought to us was to have large leaves that when you land on them they droop and you slide off them. This had to be scrapped as we found that it wasn’t going to be doable in the time restraints. But, getting something like having to pull multiple levers to open a door was achievable although there wasn’t any good pre-existing example of how it would work.
Having a lift system was going to be the key feature in traversing through the majority of the levels so I spent a good amount of time developing the blueprint to get that working. We had a working prototype from a very early stage of development but it was buggy and wasn’t as smooth as needed. The blueprint went through many iterations reducing in complexity but increasing in efficiency each time. Once I had it at a stage that it was watertight and bug free I was able to use it as a base and add more features and iterate off it for other blueprints. For example giving it the option to be triggered before it starts moving as well as making it so that instead of the mesh being a platform to stand on it was an enemy that killed you on contact. It was also used as the base for the ‘Space Whales’, so instead of having it move back and for between 2 locations they fly to the end location and re-spawn at the start. It turned out to be the most useful and diverse tool in our arsenal when creating the gameplay.
Building the levels from a visual stand point wasn’t too much of an issue. Each team had a vision for what direction they wanted the level to go in and with constant communication between us and them we managed to create something very close to their concepts. The larger issue arose when making the levels playable. Not only moving from A to B, Start to Finish, but back again. We wanted it so that the player could fully explore the environment. This meant constant play testing and tweaking to make sure jumps between platforms where achievable as well as fixing collision issues and other game breaking problems that we encountered along the way.
The main issue we had visually was getting the environment to start thinking about the levels as a 3D environment and less of a 2d one. The early whitebox assets we received where very flat, especially in the terrain, and having the sense of depth in the environment was key to getting the look that we ended up with. This was overcome by continuous communication as well as constant referral to the style guide and making sure everyone was working towards a single vision as to what the levels where going to look like.
[Final Level Engine ScreenShots]
There are several elements I would have liked to have seen in the finished product that got cut. For example having a character select screen would have been great given that we had 2 main playable characters working in engine. Unfortunately due to the limitations only working with blueprints and not a C++ build of the engine I wasn’t able to implement that, although I was able to get the real-time physics working on the cloth on the character so not all is lost when it comes to character related features.
I’d be nice to have more sounds in the levels whether it was just ambient or triggered as it helps really bring it to life. But due to time restraints we decided to push the visuals and put all our focus on getting it looking awesome and playable.
Overall it has been a unique experience working on this project. It’s the first time I’ve worked on a project this big with this amount of people and although it has had its low point I feel that I have come out of it will a lot better knowledge of the game engine and a better understanding of what it takes to work with such a variety of personality’s and the organisation and communication skills required to pull something like this off. Although it’s not quite the same it’s got me ready to move forward and take what I’ve learnt and apply that to my upcoming final major project.
Back to the mower. Now this is cutting edge stuff. I have used my grandad's own lawnmower as reference for this as I couldn't find a good enough images online to work from. This also meant I could take photographs not only to model from but also for texturing purposes. I want this to be a truly realistic representation of the actual lawn mower but also be optimised so that it can be viewed in realtime in a game engine. This means calling on my previous PBR material practice to give it realistic material properties so that it will work in any lighting setup and still give physically accurate renders.
This will be the first time I have done a full model built to use PBR shaders. To make it easier to texture and make sure the right area's have the correct material properties I have separated all the different materials found on the object and baked separate masks for each one. This means I can work quickly getting the right values for easy element; blocking out the Albedo, Roughness, and Metalness maps out first to use them as a base to work from and add detail to.
As you can see already with these very basic textures applied and the baked Normal map you get a close to real looking result already at this early stage of texturing. It's just a case of adding/ layering more detail on top of these bases; adding wear and tear, grime, dirt, generally making the object look used as well as adding any key notifiable decals and graphics.
I am Elliott Pacel, a Technical Artist at Reflections, Ubisoft.