8 Steps to Building Paradise Island with Unreal Engine 4
1) Inspiration & Concept
Before starting to build Paradise Island, I had to look for a concept as it’s a crucial step. I took some time to browse around on Pinterest and Artstation to find an interesting concept. In the end, I decided to go for a concept made by Cornacchia; it’s a piece that inspired me.
This concept would give me a chance to apply a lot of different skills, as it has rocks, foliage, cloth, big buildings, hard surface and organic objects. Being in the middle of the ocean made it self-contained. The only thing that could use more attention would be the smaller props; this is why I added a little lounge area to my version. I took some liberties with the concept, as I would have to create the other sides of the concept anyway and I wanted it to feel like a place that is believable.
Concepting was by far the most challenging aspect of this project, but once I blocked everything out properly and collected more and more reference, everything started coming together really fast.
I felt like an “Uncharted” kind of style could work well together with the concept. Uncharted 4 was one of the biggest inspirations to me.
Once I knew where to go, the creation process started.
2) Block Out
Before doing anything, having a good looking block out of your scene is crucial. Knowing where objects are going to be placed, how big they are going to be and an estimate of how many objects you’re going to need helps streamline the rest of the process. I felt like it didn’t have to be too detailed, as long as I understand what things are and having an idea of where they’re going to be placed.
I chose to do the entire block out in Maya. In this process, I used a human base mesh for scale reference to make sure the size of it all felt right. In the meantime now and then I would export it all as an .fbx file and put it into Unreal Engine 4 to see what it would look like. It also gave me a chance to throw in some other block out meshes, like a palm tree that I made as a test in SpeedTree.
After I was happy with this, I started planning out what materials I would need. To do so, I color mapped faces in Maya by assigning a simple lambert with a specific color for each material. For instance, all plaster walls would be blue, ceramic roofs orange, I also knew I could probably fit all of the trims for the buildings on a single X-Tiling UV set, so I made all of those red, and so on. Once I knew what I was going to have to do, I jumped right into it! Pretty much working my way up from the bottom of the island.
I felt like starting with the landscape would be a good idea, as it would give me a bit of a base to work off of. I never really did any rock sculpting at all, so starting out with modelling some small pebbles felt like a good idea. To do this, I used ZBrush, primarily just using the “Trim Smooth Border” Brush. Once I started feeling more comfortable, I did a few medium sized rocks, after which I had to do the final one, the big cliff rocks.
I imported my block-out cliff into ZBrush to get a sense of scale, as there’s not an easy way in ZBrush to see how big something would be in real world scale. It took quite a few hours to sculpt this thing, as I was still practising along the way, but I was pretty satisfied with the result at the time. Once I was happy with the shape of the entire cliff, I decided to cut it in 4 separate pieces, for texturing and re-usability purposes. This can clearly be seen in the breakdown section of the video. By doing this, I was able to build the entire cliff side of the island by instancing those four rocks around.
Besides the rocks, I also needed a beach, which was done in ZBrush as well. Both had vertex-paintable shaders to make them look better too, which I’ll talk about later in this article.
The architecture required the most planning of all the assets in this project. The concept has a crazy mix of buildings. I ended up using reference images from Italy, Morocco, Russia and even India. Starting to work on all of these is where the material planning came in handy, as one of the key materials for all of the buildings would be plaster.
I decided I wanted to make a really good shader for this, blending between bricks, cement and plaster while also giving myself the ability to paint on grime and some additional color variation. The plaster would also be tint-able, so I would be able to give each building their own unique color.
The textures were made in Substance Designer, with some of the bakes coming from high poly meshes in ZBrush. For each type of brick texture I also made sure I made some low poly bricks to match the texture, so I could place those around corners and scatter them a little bit on the wall to add some extra depth.
All buildings had their own type of windows, so I ended up modeling one specific window for each building, which I would be able to re-use in other areas too. The roof shingles were probably one of the heaviest things in my entire scene, as I decided to use geometry for it. I experimented a little bit with parallax occlusion, tessellation. However, geometry seemed like the best way to go, granting good and clean results.
I made sure they were modular too, with some having fewer rows then others, so I could easily make some different configurations. Each building needed trims as well, so I modelled some of those to be X-tiling and textured all of that in Substance Designer. It got exciting from this point on, once I had all of this planned out I was able to make each building at a high pace, so the entire island started coming together rapidly.
One of the key parts of making an environment look good is having good looking shaders. I feel like quite a lot of people oversee the amount of power Unreal Engine grants you through shaders; the possibilities are pretty much endless. The most sophisticated shader by far was for the plaster, as I wanted to have as much control as possible in the engine. The fact that Unreal Engine allows you to vertex paint in the engine gives you so much power and control! As can be seen in the video, I was able to do a blend
The fact that Unreal Engine allows you to vertex paint in the engine gives you so much power and control!
As can be seen in the video, I was able to do a blend between plaster, cement and bricks (of which the texture was replaceable too, so if you’d swap it out with a different brick texture with a height map it would still blend properly) with just the red vertex paint channel, adding grime through the green channel, and then I used the blue and alpha channels for extra color variation.
This allowed me to make every wall look completely unique, while it only needed a few tile-able textures. For the rocks, I added a world space gradient which would take care of darkening the rocks where it touches the water while making it shinier/wet too. I love how much you can achieve by just playing around with shaders in Unreal. I’m glad I got to learn a fair bit about them.
For texturing all of this I almost exclusively used Substance Designer, which I feel like is the way to go for big environments. If you have one good graph for each type of material, you can pretty much re-use it for every object with that material by just copying over the graph and plugging in the new bakes, which makes it super re-usable and thus really efficient.
The workflow is also completely non-destructive, as it’s node-based, so you’ll always be able to jump back into your graph and change up the fundamentals. I didn’t need too many complicated graphs for this scene; I kept most things fairly simple to keep the style intact. One of the things I made entirely in Designer was a tile-able floor, for the lounge area (which I’ll talk about soon).
Looking back at it, it’s not too impressive, but it did the job. Parallax occlusion helped to add some extra depth to it, which works well in Unreal now too.
I did end up using Painter a little bit for the lounge area (even though this was mostly just so I would remember how to use it properly, and extend my skillset).
6) Lounge Area
This area was something I decided on later down the line. I did keep some space open at the top of the middle building, but the initial plan was to put a little garden up there. In the end, I went for a Moroccan kind of lounge instead, which was a lot of fun to create. This also gave me an excuse to make some smaller props, which felt like it would be a good idea to have in my Demo Reel.
I approached this in a bit of a different way, I didn’t plan it out as well, but I just gathered some reference and started working on the assets right away, putting them into the engine and iterating on it super quickly.
This brought the entire environment up together as a whole, rather than an asset to asset basis. Again, shaders worked in my favour here, as I was able to use a HueShift in Unreal to change the colors of my textures in real-time, so I was able to find a nice color scheme by just playing around with that, after which I would jump back into substance and change my colors accordingly. This area also gave me a chance to play around a little bit with Marvelous Designer, in which I generated the drapery and the pillows.
The foliage was another very critical part of my demo reel. It was probably one of the most challenging things for me, as it can require a bit of trial and error. Most of the trees were done in SpeedTree to make it a little easier on myself, while some foliage like the ivy was done by hand. I decided to generate the branch shapes in Maya, and then
I decided to generate the branch shapes in Maya, and then baking them down and putting leaves on (that I cut out manually from some images I found) by hand in photoshop. Instead of just a flat plane, I decided to use two slightly bend planes in front of each other with a different texture, and putting on some individual leaves on there too. By doing this it had quite a bit of depth, and the results were pretty good. More of this can be seen in the breakdowns of the video too.
The lighting setup for this scene was fairly simple, but it made everything come together nicely. I had a strong slightly orange tinted Directional (sun) light, and a subtle blue skylight as my base lighting setup. I went in and added some extra non-shadow casting point lights, some with a subtle blue tint and some orange to fill some of the darker areas and make the overall island look more interesting.
As for the little lounge area, I added a few extra spot lights with a high intensity; this helped me get a nice rim light on the most important props while also over-exposing some areas in there. Due to the massive scale of some of the objects, I cranked up the lightmap resolution on them. I also increased some Lightmass settings, affecting things like the Indirect Lighting Quality and the amount of Indirect Lighting Bounces. The Atmospheric effects were heavily based on the effects Epic Games used for the Sequencer example, as they had some really good quality god rays and dust in that scene.That about sums up all of the work that went into making this!
A lot of time went into making this, which is almost the only reason it turned out like this. All it takes, in the end, is time, and effort. Thanks to Scott McTavish and Jude Godin for mentoring me through this entire project! Also to Matias Trinchero, who taught so much about shaders in Unreal! And
That about sums up all of the work that went into making this! A lot of time went into making this, which is almost the only reason it turned out like this. All it takes, in the end, is time, and effort. Thanks to Scott McTavish and Jude Godin for mentoring me through this entire project! Also to Matias Trinchero, who taught so much about shaders in Unreal! A big thanks to Think Tank Training Centre as a whole, I’ve learned more than I ever could have imagined there.