3D artist Michael Eurek from Phosphor Games shared some of the techniques he used to create the stunning interpretation of the iconic location from Zelda: Ocarina of Time in Unreal Engine 4.
My name is Michael Eurek and I currently reside in Chicago IL, USA. From childhood, I had always been interested in game development, mostly because I was a big fan of playing them. I had a passion for art as well, so it seemed natural to make being an artist in games my goal. I graduated from Vancouver Film School in Canada in the end of 2009 and worked some small commercial projects as an animator in Chicago. I also interned at a motion capture studio.
The gaming industry is not very large here and can be very competitive, so after my internship, I started applying to various positions all over the place. I ended up in Los Angeles at Pixomondo (a film VFX studio) as a junior 3D generalist. I’d say this was my first start in transitioning to games. I worked on the Oscar winning film “Hugo” there and learned so much. I took some time to update my portfolio and continued working in film / commercials in LA and Chicago until 2014.
I went to Baton Rouge and worked on “Left Behind” (voted one of the worst films of the year!) and had a really fun time. After coming back to Chicago, I learned as much about UE4 as I could and made the Temple of Time video. This is what helped me get a job at Phosphor Games. I’ve been working on 2 games in the Heroes universe (based on the television show of the same name).
Getting to Know Zelda in UE4
My brother had an NES when we were children and I remember watching him play The Legend of Zelda. I was so enamored by the story, music, gameplay, and adventure! The Ocarina of Time (OOT) is probably my favorite game of all time. I think everything was just done so well with that game. I loved all of the environments, so I absolutely wanted to try and recreate some of them.
I wanted to make this piece true to the actual layout of the Ocarina of Time’s Zora’s Domain, but with modifications for my re-imagining. I did a quick model based on some maps. I imported that into UE4 and started placing the rock assets.
I definitely made some changes. When I first started this, I knew I wanted to have a lot of natural light pouring in from the top. OOT Zora’s Domain is a closed cave, so if I kept the design completely the same, I would not be able to use natural lighting. I went to the internet and looked for cave references that fit the look I was going for. I referenced Ik Kil in Mexico because I love the combination of rock, sunlight, water, and lush vegetation. To me, if Zora’s Domain actually existed on Earth, this is what it would look like.
Getting the Assets
For the rocks, I used a couple of assets from Epic’s cave FX demo. This was especially useful for quickly building out the environment. I needed other shapes for the walls, something smoother, so I went to Zbrush and started sculpting. I found references for the type of rock walls that I liked, and sculpted a high res mesh. I wanted it to be very versatile, so I made sure there were interesting details on all sides.
I also sculpted the tiling rock textures in Zbrush. All of the small vegetation came from the marketplace! There is a great Tropical Plants (it’s pretty pricey at $70) pack on there. I chose to go this route because foliage can be very time consuming to make. Since there are already some great looking assets, I didn’t think I needed to re-create them. I did have to modify the materials and update the textures.
With UE4 4.8, the addition of the foliage shading mode made these assets look even better. The movement in the foliage comes from the SimpleGrassWind function connected to the material’s WorldPositionOffset. I did have to make some custom meshes for the hanging vines. I used a great free program called Ivy Generator, and cleaned up the mesh in Maya afterwords. The material for the rocks has a lot going on. I two vertex blend layers for painting moss and wetness. There is a World Aligned texture option which I used for the lichen. I have detail normal and diffuse textures options as well.
The Power of Water
The water is such an important aspect of Zora’s Domain, so it had to look good. I initially made a water material for the pool and iterated on it for a while, but it never looked how I wanted it to. Epic’s Alan Willard released a water material pack, so I experimented with that and made some modifications to get the look I wanted. I had to come up with something else for the waterfall. That is using a mesh with a combination of scrolling diffuse, normal, and height textures.
I overlayed particle’s to obscure the contact with the pool. I also created a large ring mesh that uses a similar shader at the contact point. The flowing water uses another different material. I had never done anything like that before, so found myself reading whatever I could about flowmaps. There is a great write-up by Valve on flowmaps that describes in detail the technicalities and ways to use flowmaps for water.
I started to understand it finally, and just needed to figure out how to build it in Unreal. Luckily, there is a function within the material editor simply called FlowMap. The material was quite simple to set up once I had my flowmap (I used a free program called Flow Map Painter). I was able to paint the direction that I wanted the water to flow.
Working out the Lighting
Lighting is probably my favorite part of working in 3D. I love environment photography, specifically how light interacts with the environment. My process is quite iterative. I start by looking at real world reference (reference is so important!) to see how light works in a similar environment. There is nothing really special about natural lighting that I do, but just certain things to remember.
Thinking about the lighting as direct and indirect light is very import. In the case of natural light, the sun is the direct light, and the sky contributes to the indirect. It is very important to pay attention to color from sunlight, especially in shadows. There are many ways to set up your lights. For me it is a lot of experimentation.
I set up the sunlight first so I have my main direction set. From there, I start adding spotlights that represent the sky. I didn’t use the Skylight because I liked the results I was getting with the spotlights. I set their source radius quite large to produce extremely soft shadows. These sky lights were placed in all of the cave openings. If the scene still doesn’t look bright enough, I start adding point lights with a very low intensity, a large attenuation radius, and large source radius. I like going this route rather than boosting the spotlight’s indirect contribution because I can get more direct control and feedback.
Choosing Unreal Engine 4
I chose Unreal Engine 4 because I have a good grasp on how to use it. The reason for choosing a game engine over 3D rendering software like Maya is because of the immediacy of everything. Rendering in 3D programs is such a tedious and technical process. As for what I like about UE4, it is very artist friendly. You can spend time focusing on the art, rather than getting held up by a technical problem or compiling. There are also so many resources and places you can ask questions if you do run into any problem. The community of users is quite helpful.
The Secret of a Good Environment
It is important to have a point of reference to start from when making environments. This can be a photograph, a concept painting, a quick doodle you threw together, whatever. The important thing is that it is no longer just sitting in your head where it has too many chances to change and morph into something different.
Working on your first environment can seem very daunting, but like everything in art, it is best to go from the large aspects first and then focus on the details. Polycount forums has a monthly noob challenge that can be really fun and helpful. If you don’t have an idea, it could be a great option to participate in that. Once you have some references, you just have to start doing it. When you’ve passed the initial starting point, you’ll get into a good workflow and it should be easy to keep going.
If you encounter any problems, go to the internet! There is so much information there. It’s also helpful to get feedback. One of my co-workers and I would take 15-20 minutes each morning to show each other the progress of our personal projects and give feedback. It helps to have a different perspective on what you’re working on.