Games_Artist_MAIN_THUMB_TTTC_10
9

Ioannis Stamatelis

Environment Artist

Introduction

Hi, my name is Ioannis, and I am an Environment Artist for games. My passion for games began during my childhood, and later, I discovered that as a gamer, I love finding hidden stories in games, and as a developer, I enjoy crafting them.

Therefore, as a recent graduate of the Think Tank Training Centre program on CG Asset Creation for games specializing in Environment Art and Storytelling, I am excited to start my career in the gaming industry!

Project & Concept

“Ruins” is my mentorship and last project as a student at Think Tank Training Centre.

Photo_Still_01_IoannisStamatelis
Photo_Still_03_IoannisStamatelis
Photo_Still_05_IoannisStamatelis
Photo_Still_06_IoannisStamatelis
Photo_Still_02_IoannisStamatelis

The main goal of this project was to capture the tranquility of a forgotten temple exterior scene within a real-time game environment, following the concept art of Robby Johnson.

Since my previous work was interior scenes, I wanted to expand my knowledge and practice my skills in tackling open-environment scenes.

Photo_Comparison_IoannisStamatelis

This project was created in Unreal Engine 5 within 15 weeks. Throughout this time, I focused on sharpening my sculpting and texturing skills.

Also, I set up workflows and techniques I learned from previous projects, such as using RGB masks for texturing and breaking the main elements into modular pieces so that the scene would be populated quickly and efficiently, ensuring a high-quality result.

Every asset was created by me except the flying birds (Rural Australia project by Andrew Svanberg Hamilton), the waterfall (Water Materials by tharlevfx), and the fog (EasyFog by William Faucher) to save time and focus on the areas that were important for me to hone my skills further.

Photo_Still_07_IoannisStamatelis

Software & Tools

  • PureRef – Reference gathering.
  • Maya – Blockout, modeling, UV mapping, and mesh cleanup.
  • ZBrush – Sculpting high-poly models and organic modeling.
  • Substance Painter – Bake and RGB mask creation.
  • Substance Designer – Tileable textures creation and decals.
  • SpeedTree – Foliage generation.
  • Gaea – Background landscape meshes.
  • Unreal Engine – 3D Development, Visualization & Rendering.
  • Marvelous Designer – Cloth simulation for the statue.
  • Resolve Davinci – Color Grading & Final export.
Photo_Still_02_IoannisStamatelis

Challenges & Thoughts

Although the concept art depicted an interesting gestural exposition shot, with enough information about the look and feel of the environment, parts of the scene raised some questions.

For instance, are there any extra assets to take into consideration that I do not see? What does the interior layout of the temple actually look like?

Photo_Still_08_IoannisStamatelis

My aim was not to just replicate the key shot in 3D but to build an environment to showcase up close from different angles.

Except for the recreation of the scene in 3D, I was the creative director of the scene, searching for interesting cinematic shots while keeping the lighting and layout of the main key shot intact.

This and the scope/scale of the project were the two biggest challenges to tackle for this project.

From the start, I decided to solve these challenges by reiterating ideas and models quickly and figuring out what works and what does not while always keeping the concept in mind.

By establishing an asset and texturing workflow early, I could experiment with ideas rather quickly, get assets into the engine fast enough, and reiterate.

References & Concept Breakdown

I gathered references for every aspect of the scene, such as assets, materials, and vegetation. Additional references were collected as the weeks passed.

I got more feedback from my mentor, and new ideas arose. The project’s job sheet was a “living” document where references would come and go if they did not serve a purpose.

Photo_Jobsheet_IoannisStamatelis

Tip

A great tool for reference gathering is PureRef. It helped me arrange my references easily, keep notes, and share my progress with my mentor.

Photo_Jobsheet_Modularity_IoannisStamatelis

I started to break down the concept art into different areas to achieve an overview of the scene, e.g. building A, B, C, ground, and background.

Then again, these areas were broken down into modular pieces, making it easier to make an asset list, see what I could reuse, and plan what I needed to tackle in the next phase, the blockout.

Blockout

I imported the concept into Maya, set a camera to find its perspective, and blocked the main elements and shapes of the scene out.

Then, I imported the scene into Unreal Engine and did a simple lighting first pass to replicate the main lighting of the concept.

I also followed this tutorial to add the camera into Unreal Engine’s Sequencer to get the correct perspective easily, rather than trying to replicate the camera perspective in the engine manually.

In the blockout phase, it was important to set sizes and figure out distances between key assets.

A lot of assets felt too close or too far from each other. I tried to keep the level design close to the concept and not make the level huge to make it easier to work with in later stages, e.g., set dressing.

Lastly, I also tried to establish interesting shots to work on throughout the process early on.

Photo_SceneBlockout_IoannisStamatelis
Photo_Jobsheet_ExtraShots_IoannisStamatelis

Modelling

Asset Workflow

The goal was to create fast iterations/results to visualize in Unreal Engine. That is why I modeled a basic blockout of the asset in Maya, sculpted it in ZBrush, decimated it, cut UVs in ZBrush, and imported it into the engine.

I iterated the shapes and details of the mesh where necessary and reimported the adjusted mesh into Unreal Engine.

Once I finalized the model, I decimated it further, cleaned the topology up in Maya, prepared it for baking in Substance Painter, and imported it again into the engine.

I also added extra vertices to some meshes I had planned to vertex paint on later in the engine.

Photo_Assets_Overview_IoannisStamatelis
Photo_Assets_Large01_IoannisStamatelis
Photo_Assets_Large02_IoannisStamatelis
Photo_Assets_Medium_IoannisStamatelis
Photo_Assets_Small_IoannisStamatelis
Photo_Assets_Platform_IoannisStamatelis
Photo_Assets_Cliffs_IoannisStamatelis

I also wanted to create rock piles to scatter around the scene to support the damaged areas of the concept.

I achieved this quite simply with the MASH plugin in Maya by following this tutorial.

Photo_Assets_Stones_IoannisStamatelis

Since the landscape meshes were far away and covered with fog in the concept, I decided to create them with simple nodes in Gaea following a beginner’s tutorial.

This is what I ended up with and used in Unreal Engine.

Photo_Landscape_IoannisStamatelis-scaled

Texturing

For this project, I set the texel density at 1024px per meter and used 2K textures following the PBR workflow. I wanted to cover a lot of space with as few assets as possible and avoid texturing each asset separately.

I decided to texture the assets with tileable textures in Substance Designer and bake each asset to export its normal map and RGB mask in Substance Painter to break up the tileability of the textures.

I defined the usage of each channel based on mask generators and created a smart material to assign to each asset. Each asset needs two UV channels for this workflow to work.

One channel is set to the correct texel density, and the second one is set within the 0-1 UV space for baking.

Photo_Texturing_UVmaps_IoannisStamatelis

Dylan Abernethy’s setup, “Substance Painter Work with RGBA Layers in Viewport,” helped me to proceed much faster with this phase.
Here is the link to it.

Channel Assignments

Red Channel: Dirt
Green Channel: Edge wear
Blue Channel: Breakup

Photo_Texturing_RGBmasks_IoannisStamatelis

As mentioned, the textures for this project were created in Substance Designer.

Photo_Jobsheet_Textures_IoannisStamatelis

Tip

Use the dot nodes to reroute your nodes easily in Substance Designer to keep your graph clean. It can result in a mess of nodes.

Photo_Texturing_SubstanceDesignerGraph_IoannisStamatelis

Therefore, keep it organized and understandable for you when you return to it after some time or for your colleagues.

I set up a lighting template in Marmoset Toolbag 4 for presentation purposes.

Photo_Material_Breakdown_Grass_IoannisStamatelis-scaled
Photo_Material_Breakdown_Limestone01_IoannisStamatelis-scaled
Photo_Material_Breakdown_Limestone02_IoannisStamatelis-scaled
Photo_Material_Breakdown_LimestoneDamaged_IoannisStamatelis-scaled
Photo_Material_Breakdown_Mud_IoannisStamatelis-scaled
Photo_Material_Breakdown_Rockyground_IoannisStamatelis-scaled
Photo_Material_Breakdown_Stone_IoannisStamatelis-scaled

For some materials, I decided to try out another workflow. I sculpted the bark and the cliff texture in ZBrush on a flat plane.

Tip

Set the WrapMode option in ZBrush to 1 so that any brush strokes affect the opposite side of the plane.

You can find this setting under Brush – Curve – WrapMode. Do not forget to set this setting for each brush individually before using them to retain the tileability of the texture.

Photo_Texturing_TileableTextures_IoannisStamatelis

Then, I exported a normal/height map out of ZBrush and modified it further in Substance Designer.

It was faster to achieve the basic shapes and had more fun creating them in ZBrush.

Photo_Material_Breakdown_Bark_IoannisStamatelis-scaled
Photo_Material_Breakdown_Cliff_IoannisStamatelis-scaled

I used three texture maps, BaseColor, Normal and Packed (ARM: Ambient Occlusion, Roughness, Metallic), to texture the assets in Unreal Engine.

Photo_Texturing_UnrealMaps_IoannisStamatelis

Lastly, I used the “Paint Vertex Color Tool” found under “Mesh Display” in Maya to vertex color the damaged meshes in advance.

This way, I would avoid vertex painting them every time I used the mesh in Unreal Engine.

Photo_Texturing_VertexColoring_IoannisStamatelis

Shader Setup

In Unreal Engine, I created a Master Material (MM), which was assigned to a Master Material Instance (MMI), which was then assigned to Material Instances (MI).

I established an architecture MMI for the huge pillars in the scene. In this way, I could change tints and the tileability of textures of all the assets with this particular MMI, saving a lot of time in the process.

For example, the texture of a huge pillar consisting of 20 different assets is changed by tweaking one setting in one shader instead of tweaking the same setting for each asset individually.

Photo_Shaders_UEMaterialEditor_IoannisStamatelis_test

All materials for all assets are set up with tri-planar textures. RGB masking, vertex painting up to 3 materials, Z-up blend, as well as leakage and dirt masks to break extra obvious tileability, are set up in the same shader.

Photo_Shaders_SingleMaterial_IoannisStamatelis

Tip

Reroute the nodes to keep the graph tidy with the reroute nodes!

Photo_Shaders_Overview_IoannisStamatelis
Here is the texturing breakdown of an asset in Unreal Engine.
Photo_Assets_RBGmasks_IoannisStamatelis

Prefabs

Again, to save time and be faster with set-dressing my scene, I combined assets into prefabs in Unreal Engine and made different versions to make the scene more interesting visually and avoid too much repetition.

For the background, I made bundles of pillars to dress the scene as well.

Photo_Assets_PrefabsBuildings01_IoannisStamatelis
Photo_Assets_PrefabsBuildings02_IoannisStamatelis
Photo_Assets_PrefabsTemple_IoannisStamatelis

Decals

Decals, such as simple grime/dirt for the floor and walls of assets, were made with Substance Designer.

I used the normal and height textures for decals. With more color variation where necessary, I broke up texture repetition and tried to match the concept.

Photo_Texturing_DecalSetup_IoannisStamatelis
Photo_Texturing_DecalHeightmaps_IoannisStamatelis

Vegetation

My goal was to create vegetation that is correct to the real-world metrics within one atlas.

Photo_Vegetation_05_IoannisStamatelis

My workflow for vegetation below:

  • Modeling in Maya and sculpting in ZBrush, focusing mainly on shapes.
  • Baking in Substance Painter using a flat plane mesh.
  • Texturing in Substance Painter.
  • Cutouts and assembling in SpeedTree.
Photo_Vegetation_04_IoannisStamatelis

For the tree mesh, I used the branches of the vegetation atlas to create the high-poly of the tree atlas in SpeedTree, which was a new way of thinking about making vegetation for me.

Photo_Vegetation_03_IoannisStamatelis

I used a BaseColor map with an A channel for the opacity, a Normal map, and a Packed map (ARMT, T stands for translucency).

I scattered vegetation around the scene with the foliage tool in Unreal Engine.

Photo_Vegetation_00_IoannisStamatelis
Photo_Vegetation_01_IoannisStamatelis
Photo_Vegetation_02_IoannisStamatelis

Lighting

The focus here was to replicate the lighting mood as closely as possible to the concept art.

Tip

Do not be afraid to ask for feedback when you are feeling stuck, as a fresh set of eyes can always prove helpful to push your artwork forward. And plan time, of course, to implement it.

It can really make a big difference.

Rendering

I followed William Faucher’s tutorial on how to render with the output color setting in the Movie Render Queue in Unreal Engine.

I followed the ACES workflow with the OCIO configuration, converting the source color space sRGB to ACEScg as the destination color space.

Photo_Still_Keyshot_RenderPasses_IoannisStamatelis

Finally, I used DaVinci Resolve to make some basic color adjustments to achieve the final look. Each shot was rendered with a 10-second timeframe.

Conclusion

All in all, this project was both exciting and frustrating to complete. I believe I learned many valuable lessons regarding time management, new workflows, and being diligent and consistent with my work by reporting back to my mentor.

Every asset I built and every texture I created for this project pushed my skills further.

Huge thanks to my mentor, Declan Hart, for his support and guidance during my mentorship term at the Think Tank Training Centre and to everyone who supported and gave me feedback to push my boundaries and the quality of this project.

Thank you, Games Artist Team, for giving me this opportunity to share my work progress and thought process of creating the “Ruins” 3D environment with you in this article.

I hope this article was helpful and you learned something new. I am open to any feedback and tips you share with me to improve my next projects.

I am looking forward to seeing what is next for me, as I am currently applying for an Environment Artist position in the game industry.

Here are my social media channels to connect with me:

ArtStation
LinkedIn
Instagram