Thursday 21 May 2015

Post-Mortem

When I first started thinking about my FMP, I knew that what I really wanted to focus on was atmosphere. Very early on my main idea for this project had been to make some kind of rainforest treehouse-style base, but the more I thought about it, the more science-fiction aspects I wanted to include. One thing stayed constant though, I wanted foliage but I wanted it a little more colourful than what people are used to. Eventually it all formed into the idea of using the setting of an alien planet.


Project Details

Initial Brief-
“The subject of this project will be a small, three room futuristic house with a living area, bedroom, and bathroom (which will not be modelled) situated in a remote and possibly very alien forest. The interior should be populated to have a believably lived-in feel, as well as featuring some traditionally futuristic/spacey elements such as screens and holograms to sell the setting. The main assets outside the house will be a large radar dish and as a stretch goal, a landing pad, and a vista to be seen from the main window.”

As I was on my own for this project, I had to be very careful managing my workload. In my initial proposal I underestimated how long we had by a couple of weeks, but I decided to stick with that plan to allow myself as much extra time at the end as possible.
The project was to begin on the 12th January and end on the 24th April, giving us 12 weeks of term time. However the deadline was extended to allow everyone extra polishing time, adding an extra 4 weeks.

My technical goals were to have the level run at a bare minimum of 30FPS, aiming towards 60. Textures were to be roughly 512x512 per square meter, and that would also be the minimum size per sheet as I was informed that how Unreal stores assets there was little space saved by going any smaller.


Project Recap

Week 1- Concepting, whitebox, paintovers
Week 2- Refining whitebox, modelling main building
Week 3- Refining layout, modelling main building, texturing building
Week 4- Texturing building, satellite dish
Week 5- Grass, trees, outdoor steps, landing pad
Week 6- Bed, collision for building, working doors, seating
Week 7- Kitchenette, modelling cupboards, modelling/texturing base of orrery
Week 8- Orrery with holograms, freezer, foliage with lighting tweaks, high poly rocks
Week 9- Baked rocks & arranging, foliage, bridge, modelling patio & stepping stones
Week 10- Hanging chair, arranging foliage, table, small rocks, tree LODs
--Easter Break--  Water, skybox
Week 11- Clutter, orrery animation
Week 12- (working on another project), Lighting fixes
Week 13- Distant terrain, tree variations, terrain improvement, texturing patio, lighting fixes
Week 14- Improving existing assets, platform, forcefield, blinds
Week 15- Tweaking main building, minor assets, ivy and lights for patio, remaining collision
Week 16- Better wall texture, player respawning, landing pad details, lily pads, file management


What Worked Well?

I feel like the design I went with was pretty solid an interesting, and as the project progressed the architecture and layout of the scene became something that looks good from many different angles.
The integration of the house into the natural landscape adds to this, and the blues of the foliage balance out the warmer shades of the sky reflected in the metal of the structures. Even the colours of the interior are accentuated by the skybox as I limited my colour use to those blues, oranges and pinks.

The key assets and features I designed turned out to be quite successful focal points. Having the Orrery illuminated and moving really catches the eye, and with the way I arranged the furniture and the lit up platform it is very much the centre of the scene. The forcefield also adds some light and motion, and it brings the view out of the huge windows back to being more of a finale than if it were visible the whole time.

I think the space theme has been conveyed well with all of the theme-specific assets, but it is difficult to say at this point without the eyes of someone new to the project.


What Didn’t Work Well?

I believe the biggest problem with this project was a combination of the trees and the lighting. With the project lighting set to allow a darker atmosphere, shadows are baked much darker. This is especially visible on two sided materials, such as those used for foliage, and it is hard to brighten up these shadows by a lot without simply making the material self-illuminate. Add to that the style of tree I decided to make already being best viewed from above and you have some very flat looking branches.
I could’ve added more planes to the trees to make them look less like they were made of paper cut-outs but I had been warned of the risks of overdraw and was too worried that performance would be run into the ground with such dense areas of overlapping alpha channels.

The density of the foliage would’ve been less of a problem if the level were more compact. I probably could’ve gotten away with having much denser foliage if the playable area were smaller and I put more work into creating a better vista. I feel like I achieved my goals but not to a high standard.

Having to split my time up between working on the interior and the exterior would also have contributed to this. Sometimes it felt like I were working on two different environments- I found it hard to devote proper time to assets as I knew that if I focused on one area for too long the other would suffer. Maybe this would’ve been an advantage of working with a partner as both aspects of the level would’ve been able to receive simultaneous attention and development.


What Changes Happened?

The biggest changes to the plans occurred early on. I realized quite quickly that the landing pad was going to have to be more than a stretch goal as it added so much to the theme and to the layout of the level. The house design also changed a lot during the whitebox phase as I learnt what was and wasn’t practical. I ended up adding an extra aspect to the design with the hollow that the orrery now resides in, as said orrery made for a better focal point than a simple screen.

The only major late-game change was the water. This served two purposes- to fill a large area that would otherwise be filled with more boring foliage, and to add interest to the rocky cliff using the waterfall. I was quite apprehensive when making this change because I wasn’t sure how I would execute it but I am glad I did.


What Would I Do Differently?

 If I redid this project, I think I might try to do a smaller scene with the foliage arranged more tightly packed. I’d also make the house smaller- I made it the size it was to help with believability but it really stole my focus away from the surroundings. The ground foliage definitely received less work than I originally intended.
A smaller visible area would also have allowed me the extra performance to model my assets with greater complexity and detail, possibly even with higher texture sizes, to make the level look more next-gen. This would help with this project’s relevance in today’s industry with today’s technology.

Since I dabbled in animation for the Orrery, my next thought is that it would significantly improve my level if I could get the trees to move to simulate wind. I am unsure of what performance costs this would have but having a little more motion in the scene would really bring it to life. Additionally, a bit of rain would create an amazing atmosphere, although this probably wouldn’t work without significantly changing the skybox as a clear sky would make no sense.

As for the visual style, I’d definitely consider making some aspects of the house and landing pad look more alien. The patio area in particular. In addition I’d consider making the ever-problematic plants look more alien too, possibly considering bioluminescence.

Finally, I’d think of a better way of restricting the player. Right now there is too much freedom to wander around areas of the level that have had less focus. I do not want to be forced to implement invisible walls as that suggests bad level design.


Conclusion and Plans for the Future

I am fairly pleased with how this project turned out, and I think I learnt a lot. The feel of the level is very unique, taking a few more risks with performance would really make it something special.

I am glad that I had the opportunity to spend time on this project by myself, but I also wonder if having a partner or two working alongside me would’ve encouraged my own assets to improve more. Managing my time wasn’t a huge issue as I tackled the most important assets first. It is definitely something I have improved a lot on, though some assistance would be very helpful especially in terms of flexibility. For example I considered making a statue to sit in the front garden at the end of the project, but I was too worried that I might not finish such a complex asset in time. It would be more ideal if I could split the work between people to have simultaneous focus on extra assets and polish.

For the future I know I can afford to make assets more detailed, allowing things to be higher poly but of course still efficient. With so many rounded edges in my designs it’s really easy to see where I was trying to be careful. In addition I only really got the hang of working with vertex normals during this project, so I can use chamfering to greater effect.

As I have mentioned, I think it would be a great idea to focus a little more on animating assets to bring scenes to life. I was quite apprehensive when approaching the orrery but I am pleased with the result and I learnt a lot. It would be a waste to not touch the subject again and allow myself to forget such useful skills.

I think I also need to concentrate more on scale. I made the doors to be the exact same size as those in engine but they look a little too short so maybe I should’ve just gone with what I felt was the right height. It’s one of those things that’s very difficult to change later on in the project due to all the assets being the same scale, so I have to notice any issues with this kind of thing early on.


For my next project I am considering doing something stylized, because I have not done so before and so I don’t know if it’s something I’ll take a particular liking to or not. Texturing in particular is still something I feel I need to work on, and exploring different methods could yield interesting results.

Friday 15 May 2015

Week 15

This was another week of small odd jobs.

I worked out how I had gotten past the “Degenerate Tangent Bases” issue on the main building shell the first time around, and was able to re-import it after fixing a couple of small issues such as unsmoothed surfaces.

It allowed to me to cut a hole for the large cupboard so it wouldn’t look like it were just pasted on. The cupboard itself didn’t take long to make as it was a very simple design, though I am undecided as to whether I should go back and add a handle.

I made some simple orange glowing lights to line the roof struts in the hopes that this would help sell the holographic shielding concept.

I spent a while sculpting a generic lump of fabric to fill some more space in the storage area. I put the normal normals on the same map as the seating cushions as there was an awful lot of free space. That made me feel a lot better about their efficiency.
I also made the books for the shelf. I only needed the outside covers to be modelled due to the angle they would be viewed from. In the UV space, I reduced the size of the front and back covers of all the books other than the ones at the ends of the piles, as any detail given to them would be hidden anyway. I decorated the spines with the alien lettering I had made up for the orrery.



I made some wardrobes to add realism to the bedroom. This was another simple asset I could texture with a tileable. Unfortunately I realised it didn’t make sense to have them line up with the back wall as then the bedside tables would get in the way of the doors opening, so I had to move them out a bit. I am not really happy with having to do this as I don’t think it looks as good. I may decide to change them.

The front of the house still needed a fair bit of work as there was no visible source of light and none of the plants I had made fit well between the house and the patio. I had to create a simple long tube light, as I couldn’t fit more than one light source in that area. In place of the plants I decided to create some ivy. I used a photo I had to get the leaves as I didn’t have any ideas when it came to making them look more alien. I arranged different planes of these leaves in a way that they would look like they were climbing up the wall, to add some interest to the blank surface.



Some other small tweaks I made near the end of the week included adding some metal trim to distinguish between the paneling below the balcony and the front panel, and changing the height of the Orrery to fit in where the newly added platform had reduced vertical space.

Finally, I got around to fixing collision so that the player wouldn’t be able to run through the trees out into nothingness. I added collision prisms to all of the rocks and trees, but anything placed with the foliage actor couldn’t use its collision. For this I had to manually add blocking volumes, so I ended up with a less accurate result but a more secure one. There are definitely no gaps the player could sneak through.
As an extra touch I used blueprints to make sure the player would automatically restart at the spawn point if they were to jump into the water. This also happens if the player presses enter, just in case they somehow get stuck. I wanted to try and have the whole level restart, so the shield matinee would reset on respawn, but I couldn’t work out how to do this as the events were on different blueprints and UE4 doesn’t support global variables.


By the end of the week I had a functioning level with no major lighting errors. There is still some polishing to be done, but all the major outlying tasks have been covered. I think the biggest issue I am seeing right now is the lack of detail on the walls, so I need to add some texture to them.

Wednesday 13 May 2015

Week 14


This week was shorter than usual due to a bank holiday on the Monday. Since there were three weeks left to the project the priority was to ensure I had everything that was already in engine at a passable standard, just so I wouldn’t have to worry at the end.

The cupboards had had fairly little work put into them, and the ladder- one of the main features of the asset- hadn’t been made at all. I fixed this quite quickly, deciding that any additions from this point onward could probably be unwrapped to a separate texture sheet, so I got the lightmap made and out of the way.

I then returned to the matter of the platform. Due to some strange errors I has having I couldn’t have light shining out of the edges of it and reflecting on the floor, as the floor was not showing any lights I added. The change I made to make up for this was to have the lights below the edge shining upwards, with a border added around this to disguise where the light would hit the floor. This worked surprisingly well.


I put a window frame in the skylight to add some detail to the hallway, as well as making some lights to brighten and add interest. I made them ring shaped to go with the lights around the platform.

It was difficult now having so many lights in the scene, as Unreal doesn’t let you have more than four baked lights interfering with each other. Fortunately there were only a couple of errors, and I could see the overlapping attenuation radii by setting the viewport to display lighting complexity. The only really visible change I had to make was removing one of the lights from the patio, but having both lighting and foliage coming from the ground up against the wall was unlikely to look the way I intended anyway.

Another outlying job was to add cables to the lamp and weather station, and make something for the orrery’s cables to go into. This was quite simple, and the generator I made didn’t need too much texturing work to look convincing due to being so small.

My favourite achievement of the week was making a force field above the living room. I had to create a material that contained a variable, then a matinee that controlled that variable within a small time frame. When the matinee would play had to be controlled in the level blueprint, so I decided to use a trigger box. This part was quite easy as I had experimented with object-oriented programming before.


I had originally started making the material by modifying a duplicate of the basic glass material included with the editor as I was going to have the glass and forcefield all in one, but I was having some trouble with re-importing the building shell at the time. In the end I made the shield as a separate mesh and deleted all the refraction inputs that had made it glass like as they weren’t necessary. The pattern that appears as the shield disappears I made by combining a basic gradient texture and another texture of a simple hexagon mesh. I gave this mesh a blurred edge so that the mask would change as the variable changed. Adding the glowing edges as the mask transitioned was simple as it involved duplicating the existing mask and changing the value at which it was opaque just slightly to offset it.  To get the animation looking its best, I was sure to have the UVs of the forcefield mesh mirrored down the centre, and that this seam would line up perfectly with the hexagon pattern.

As a final quick task for the week I made blinds for the bedroom, to add a little more detail and realism.


Friday 1 May 2015

Week 12/13

From what I understood, my diorama project from Christmas was due to be resubmitted at the end of what would’ve been week 12, so I spent almost all week polishing that. However, at the end of the week we did presentations to the tutors and small groups of our peers so as to receive feedback.
The main issue was my lighting inside the house. I desperately needed more light to highlight the assets I had made as the light from the skybox wasn’t enough. One of my peers gave me some good advice and even fixed a problem that I was having with the Orrery casting strange shadows.

Week 13 I mostly decided to dedicate to improving the foliage variation, as I had been given feedback on that previously. The first day I spent creating a piece of terrain that you would see in the distance. I started by creating a simple mesh, then I decided I wanted more detail so I brought it into Zbrush to create more mountainous-looking normal map for it. Unfortunately this wasn’t really visible, so I decided to use the normal map to make some ambient occlusion instead. Combined with the textures I used for the rest of the terrain and some LOD trees, the result was passable but not great.



I decided to make a variation of tree that would feature less than the main ones, adding a little texture and colour difference to the scene. They would be around the same height but very slightly greener than their more common counterparts. The leaves I created using photographs of trees against very white skies so I could edit them easily. I put a vertex in the middle of each clump and pulled at them slightly with soft selection so they wouldn’t be perfectly flat. Arranging the leaves took the longest time. When I was done I edited the vertex normals in Maya and when I was finished I was pleased with the result. The texture map I used had some left over space, and I made a rough flower to experiment with.
I made another tree too, this time shorter and a more purple colour, using the same techniques. However the clumps of tree branch I used this time were too big and resulted in the planes being too easily distinguishable from each other. I am considering going back and adding more planes. The only other option is to remake the leaves entirely.


I finally got around to baking down a better rock texture to fade out my cliff, arranging the high poly rocks over a plane in Max. I also made a darker grass terrain to blend in shadowed areas alongside making a more illuminated version of my grass plane texture to place in areas without shadow.

I roughly textured the patio as it had been left blank…


And finally, at the end of the week, I managed to fix the lightmap on my building! At some point the instance of the mesh had been set to override the lightmap resolution to be smaller.