Joey Lenz and Phil Liu shared the details of their collaboration result – a precise Game of Thrones intro recreated with UE4, Substance Designer, and Maya.
About the Artists
Joey Lenz is a Senior Level Lighting Artist at Naughty Dog and Phil Liu is a World Artist working for Monolith Productions. They decided to band together on a personal piece and push their artistic and technical skills to bring real-time artwork one step closer to cinematic quality. Both were first inspired by the Game of Thrones intro armillary sphere found in the show’s opening credits; its intensity, dynamic motion, and composition resounded with them. As they worked on the project, they wanted to maintain its essence, while adding their own artistic interpretation and direction. Since they primarily work in digital, real-time environments, they decided the final image would be rendered with Unreal 4 due to its ease of use and powerful tools.
The project was developed mostly by procedural means. This includes textures, material/particle FX, as well as the animation. Almost all of the textures were made in Substance Designer. The expression-driven animation (armillary sphere and camera jitter), Art Nouveau models, and the rig were created in Maya. Lighting, shader work, post-processing, and material/particle FX were done in Unreal 4.
Creating Complex Shapes in Substance Designer
The typical method for creating complex shapes in Substance Designer involves adding and subtracting of basic forms. While this strategy is impressive, there is an alternative means that is faster and often overlooked. The SVG node is a built-in vector creation node with a plethora of powerful and flexible tools, such as the Pen, Brush and Polygon Shapes. These tools are similar to their Photoshop/Illustrator counterparts. With them, I was able to create very complex animal shapes in a short amount of time that would have otherwise taken significantly longer.
Other tools that I found to be a huge timesaver include the Mirror, Shape Mapper, and Splatter Circular. Mirror allows me to cut the work of the shape creation process by half. Shape Mapper can produce interesting circular forms from simple input. Splatter Circular is a very flexible tool that can render patterns, ranging from simple, radial designs to blood splatters.
Hybrid Approaches to Complex Shapes
While the bulk of the work was “modeled” in Substance Designer, I started experimenting with ornate shapes from previous projects. Grabbing height maps from them and then running them through a few simple nodes in Designer, achieved nice results rather quickly.
Figuring Out Displacement in UE4
This was the most complicated and difficult technical hurdle for me to overcome. Marmoset has a nice tool that allows for local displacement scaling to control where the center of the geometry deformation occurs.
Unfortunately, Unreal’s height map works differently. Its displacement is based in world units, not local scale. If the geometry changes size, the displacement value must be modified. This means the scale of the model needs to be locked down at the beginning of the project.
The second and most difficult technical hurdle to overcome was recreating Marmoset’s Scale Center Function since nothing similar exists in Unreal’s Material Editor. After several unsuccessful attempts, I decided to approach it with a brute force method. In effect, each geometry piece was specifically scaled in Maya in the opposite direction of the displacement. The best height offset amount in the Material Editor was found through trial and error. These steps then must be repeated for each polygonal object, and every new material instance must be applied to them. This resulted in over 30 material instances.
Rendering and Lighting in Unreal 4
I was responsible for the lighting, post-processing, procedural material/particle fx, rigging, and animation. We didn’t use real-time raytracing for this project since it was developed in a version of UE4 that didn’t support it. Instead, we used fill lights (All lights were dynamic.) to give us the ambiance and simulated bounce.
To convey form and scale, I used color contrast (cooler exterior vs. warmer, interior lighting) and exaggerated color temperature shifts based on lighting falloffs and distances. This can be observed the further out the rings are from the center, through the volumetric fog fx, as well as from the simulated SSS, created with a light rig, when the rings appear in front of the sun’s core.
Additionally, I developed a few post process materials, like colored AO, DOF, and heat distortion, to help with the final look. I wanted more agency over the AO, so being able to blend color into it gave us a warmer appearance, as well as it faked some indirect. The heat distortion effect has global parameters and two levels of individual control over the macro/micro-scaled effects. This includes the number of times the heat distortion base texture is repeated, its intensity, etc.
The procedural, animated sun core texture (See 1 in the montage below.) had a complimentary “RGB light function rig” (2), which cast its moving colors/patterns 360 degrees into the scene. To be more specific, the “RGB light function rig” is composed of a minimum of 3 lights, each emitting one of the three primary colors and is oriented/positioned at the same point in space. Their combined result represents one, whole light source. Since light functions render in greyscale, I had to split them up into three, separate materials. Each one was masked to use just one of the three RGB color channels to control, for example, how much red the “R” light would cast. As a result, this additive process allowed lights to emit colored textures. Further, I wanted to use point lights for this effect at the core. However, based on our initial tests, we’ve found that tessellated geometry doesn’t cast dynamic shadows from moveable point lights. Since all of our geometry was being deformed with height maps, we instead used spotlights with wide angles, aimed in six directions, to mimic a point light’s ability to cast light at all angles.
The sun core was then layered with a rotating Art Nouveau exterior that occluded omnidirectional, outgoing god rays (3) and a pulsing, algorithmic bloom fx (4) assigned to it. The fire disk (5) used a similar “RGB light function rig” (6), which spun by being parented to the disk so that the flames would appear like they’re emitting light correctly. The procedural flame material fx was created by using several methods, including radial UV distortion, animating UVs, and gradient mapping a base texture.
By harnessing the power of Substance Designer, Unreal 4, and procedural workflows, both Joey and Phil were able to iterate efficiently and have a great level of control over the work. They were able to push their artistic and technical skills in hopes of achieving near-cinematic visuals in a real-time environment. Looking ahead, they will take what they’ve learned from this experience and build upon it with new projects, explorations, and techniques with the belief that proceduralism is the future. To learn more about the work they do and the games they have worked on, you can visit their online portfolios linked below.