Website powered by

AC Unity Project - Reference & Concept Breakdown, Materials and Trim Texture Planning #2

Making Of / 11 August 2021

--Concept Breakdown--

Once I have a general idea for the pre-production I move onto the concept breakdowns. Using Photoshop I highlight the unique props (1) separate from the building itself.

Then, bearing in mind I would be using masks on a second UV Set I sectioned the building by areas (2), each area being a combination of modular sections that will be packed into the second 0-1 UV set. My idea for compartmentalizing the building is that I can keep a good resolution.

Finally a modularity breakdown with a general idea of how the building will be composed (3).

--Reference Breakdown--

Once the concept art is planned out I moved into deciding on how best to approach the texture application and modelling. Using a reference I outlined the approach I felt best worked, that being a combination of trim sheets and tiling textures with weighted normals with no need for unique bakes.

--General Breakdown and Material Planning--

With that laid out, I started filtering through references and breaking them down further before outlining the materials and trim sheets necessary.

--Trim Sheet Breakdown--

Going even further into the breakdown I start getting an idea for the trim sheet compositions.

[Wood Trimsheet]

[Stone Trimsheet]  

[Pipe & Guttering Trim Sheet]

The pipe and guttering trim will be made similar to my existing pipe trim sheet from another project:

My general idea for timesheets is to make two versions of each baring maybe the Stone. One version will be the original trim sheet, so for instance the wood will have the paint coating and such, the second trim sheet will be the damaged version, in the case of the wood, it will be the exposed wood. Masks painted on the asset itself will be used to blend between the versions. Dirt, rust and moisture will be blended through their own masks and material function to be controlled separately of the trim sheets. 

AC Unity Project - Concept, Reference Gathering and Planning #1

Making Of / 11 August 2021


I recently bought the Art Of book for Assassins' Creed: Unity as I began to think about what I wanted to do next for my portfolio piece. I came across a piece of concept art by Félicien Nourry for a building in the game's rendition of Paris that I liked and saw an opportunity to explore a lot of things while keeping the scale down.

Original Artwork by Félicien Nourry

--Reference Gathering--

In beginning this project I defined two faults I've had when planning previous projects which I saw had room for improvement; the first being a lack of proper reference gathering as I tended to do the bare minimum in the past and find references as the situation arose. The second being that I would typically gather my reference from games.

While from a learning perspective there is value to using game art as a reference; I would use it to understand the approaches and techniques the original artist would have used, it more often left me recreating what I saw the artist did rather than take my own lead.

With this project, I pushed myself more to finding appropriate concepts and references relevant to that time period and style.

I tend to use Miro in the pre-production phase for quick breakdowns and planning and then screencap specific references into my PureRef when it comes to modelling and texturing.

[General Reference gathering with Miro]

[Specific reference notes where a detail catches my eye or such that could influence the project further down the road]

[Matching real references to the concept]

--Project Outline--

Once I had the concept and had done a look over the gathered references I started plotting ideas for what I wanted this project to cover.

I've reached a comfortable point in my learning where everything I've done so far has covered some aspect of environment art creation, and so it's easier to have a greater picture of the project going forward, and now start looking to take my work further.

--Advanced Shaders--

One aspect of environment art I've come to really enjoy is the shader sets ups and how far you can go with them. With each project I've dabbled more and more with what I can do with shaders typically covering them in blog posts.

With this project, I want to put my experience to practice and create something more advanced that could fill a lot of my needs.

The general idea is to compose the building of modular components utilising weighted normals in combination with tiling texture workflow across all assets to cut down production times and limit the number of unique assets necessary. This means I can focus on implementing an advanced shader using material blending and masks to get an interesting final result that avoids the obvious repetition that comes with modular work, as well as explore using more than UV set per item.

[Rough outline of my shader set up done quickly in Miro to get the ball rolling]

The general idea is to have one UV Set be texel density correct, allowing a tiling texture or trim sheet to be applied through it. The second UV set is a 0-1 pack of the modular components where I can, using stencils and generators in Painter, paint detail for material blending, dirt and more.

I also want to explore experimenting with different texture packs and textures themselves used, something inspired from this presentation by Ben Cloward in his 'Shading the World of Anthem' GDC presentation -


In researching workflows and the industry as a whole I've started to become fascinated with what can be done with proceduralism and Houdini, and how it's already being used in the industry.

Some of the videos that have inspired me:

Technical Artist Bootcamp (GDC) -

Directed Procedural Workflows -

Rebirth -

Procedural World Generation with Far Cry 5 -

My eventual goal is to be more comfortable with procedural workflows to speed up my production times in the future and maybe one day dabble in Technical Art roles. So the idea is to lay the foundations to my understanding with this project by implementing Houdini where best. The most immediate plan is to do this with rain generation and wetmaps on the final building that can be used in conjunction with the shader to get a more realistic final look, or even snow buildup.


A recurring element I've seen across a few job postings has been Level of Detail (LODs) and player collision, two things I don't really bear in mind when working on the portfolio as I focus on it looking good other actually being playable. The aim for this project is to have both components properly implemented in my work, and more specifically have player collision be close to that which would have been present in the actual AC: Unity game.

[General coverage of elements I want to cover in this project]

[General planning]

--Shader and Material Blending Research--

It's always helpful to research and see how studios have approached similar situations within their workflows and take aspects to be used in my own. This helped influence my shader set-up and modular breakdown.

 [Most relevant or interesting workflows I could find online with a small descriptor and link]

My main workflow references so far:

Insomniacs 'A Deep Dive into the Look Creation of Manhattan' - 

Dices' 'Behind the Art of Battlefield and Battlefront' - 

Insomniac's 'The Ultimate Trim' -

Player Unknowns 'Creating Diverse Buildings for PUBG' -

Morgan Camenens' 'Neoclassical Building' -

Andrea Rondenas' 'Venice Building Breakdown' -

Ben Clowards' 'Rain Materials in UE4' playlist -

Wooden Box Non-Squared Unwrapping

Making Of / 05 July 2021

- Non-Squared UVs -

My typical approach to UV unwrapping props in the past has been; I figure out the texel density for a 2k texture and fill the 0-1 space as much as I could, if a lot of space was left empty I would fill it with other props and take them as a group to be baked and textured collectively.

This did reduce waste with regards to texture amounts across several assets and such but carried more issues in terms of performance in Painter texturing so many props at once and in-engine if one asset had some changes made to it within the shader unless I wanted that change across all of the assets I would need more than one instance of the said shader. I typically didn't even fill out the space of the UV's.

The example below demonstrating as such.

There isn't a lot of information online as far as I could find talking about this approach, I first learned about it with some of Assassins' Creed Odysseys trim sheets, but really started to understand its implementation when looking at asset work for Dishonored and putting my work into action.

[Asset work by Adrien Thierry - Link]

- Making non-squared Uvs -

For the Corridor Scene which this asset is a part of, I had established a texel density of 1024 pixels per meter.

In Blender, using a 2048 texture with this texel density, the UV unwrap on the box leaves a lot of unused space. Meanwhile, going for a 1024 texture with the same texel density, the UV extends outside of the box 0-1 space. See below:


Knowing I am keeping the width 1024 pixels I set the texel density as such and then pack. I keep the UVs within the width of the texture and extend out vertically. It's then a matter of scaling vertically by half and then go about manually packing. So long as the texture remains a power of 2, i.e. 1024 x 2048/512, etcetera mipmapping will work in the engine and the texture quality won't appear squashed or distorted.

In Painter, it's important to export as the final resolution so that the texture on import to the game engine registers it as such. Substance painter will still display the texture as a squashed square in the UV screen, but it does not negatively affect the texturing.

- Lightmap UV's -

My typical approach to lightmap uvs of the past has been to do an unwrap and then automated pack in a second UV set. If the bake didn't work I would up the lightmap resolution though that wouldn't fix the issue 100% of the time.

I started to appreciate lightmaps once I understand that the grid present in UE's lightmap viewer is representative of the pixels for the texture resolution. Using grid textures taken from the video below I have started to take a better approach to my UV packing.

Depending on the scale of the asset I'll typically start with a 64x64 texture, 2 pixels at least of padding between each island and around the edge.

A useful video on lightmapping:

Vent Scene Progression #4

Making Of / 19 March 2021

I'm calling this piece finished as the intention around it was to do something small that I could focus on understanding trim sheets and POM a bit better before I make the move on my next big environment piece.

The biggest resource for leaning Parallax at least in Unreal was this video which explains a lot of the process: which is a definite recommendation.

POM in action for the console on the container extruding from the prop.


Vent Scene Progression #3 - Update

Making Of / 15 March 2021

A quick update on progress with the scene. All tiling materials are in the scene, the master material is nearly finished and I have successfully been able to integrate a trim sheet into the scene with POM.

Right now the next step is to get the final textures in and then I can go about detailing the scene using masks.

Vent Scene Progression #2 - Master Material. Part a

Making Of / 13 March 2021

A quick update on progress so far for the Master Material for the entire scene in keeping with using just tiling textures (Trim sheets will be worked on later).

I'm going to run through my initial workflow but this is all subject to change as I learn more.

In blender each asset to the scene is given two UV sets; the first is texel density correct (I am going for a texel density of 1024/meter using 2048 textures due to how close the camera is going to be to everything being such a small scene), the second set is packed to use up the entirety of the 0-1 UV space and will be the one sent to Substance Painter.

To make sure Painter accepts the correct UV select the camera icon by the UV set you're using (this was the same back in Maya)

In Painter the prop's baked onto itself and then I create the 3 channels like in the previous project, each associated with a channel of R, G or B and add the wear and tear (right hand mesh). I also assigned different parts of the prop a colour once again in R, G, B or left plane white (left hand mesh). I export 2 textures; the ID mask and the wear and tear mask (making sure to set them to Masks inside of the engine).

In engine the Master material is currently set up as so. I plan to break a lot of it down into Material Functions once I had the general layout sorted and a lot of stuff is placeholder.

1 - Tiling texture has its inputs; a UV editing function for scaling and rotation, and then some minor parameters like normal strength and rough. This should all be done before any additional changes in the material.

2 - This is where I use the ID mask and break it into its channels. First the Base Colour is sent through a 'Desaturate' node in case I want to completely wipe the colour and just have a grayscale colour map. Once greyscale the colour is sent through a 'Blend Overlay' function with a colour parameter that is then added back onto the original texture through a LERP, the channel mask acting as the Alpha. This is done for each of the 3 channels.

3 - I have separate mask inputs for both the prop mask and ID. A texture coordinate is plugged into both and it is assigned to the second UV set of the prop.

4 & 5 - These are placeholder right now for the mask changes, one being a general grime material and the other being for edge wear. The Red channel is used as a LERP back in 1 for a slight roughness change.

6 - All these materials are layered over each other.

7 - This is a final detail normal input that should properly be put earlier in the material but it is just empty right now.

8 - Here everything is combined, I use 'Saturate' nodes to help clamp the different inputs before they are fed into the final Material.

The results without the layered wear and tear using one tiling texture and an ID mask.

Vent Scene Progression #1 - Initial Stages

Making Of / 13 March 2021

Currently working on my next piece for my portfolio while in the process of job hunting. I intentionally want to keep this project on the smaller scale so as to be able to really focus in on what I want to do and be done with it in a matter of a few days instead of weeks.

The key inspirations behind the workflow for this scene are that seen in Alien Isolation and Star Citizen; using tiling textures in combination with trim sheets for the majority if not all of the scene. I want to also expand on the previous projects use of unique prop masks and work it more into this scene by using all three channels now that I know where I am going with the material set up and workflow.

The scene itself is inspired by the vents we see in the Alien franchise with some initial reference gathering below. The intention is to keep with typical Sci-fi environments we on Artstation but approach it differently. Adding on that working in such a small scenes means a more conscious attitude to prop and light blocking and general texture quality.

Utilising a 2x2 meter trim sheet for the entirety of the scene modelled in Blender and going to be touched up in Designer.

With this scene I want to start bringing more focus to blocking the scene with props and lights as though it was a navigable environment. Right now it's in the very immediate Blockout of route.

I want to get better at keeping tabs on my production as though I was a part of a team and have so started to work Trello into my production.

Alleyway Environment Breakdown #4 - Lighting

Making Of / 10 March 2021

The majority of lighting went in hand with the development of the blockout. I knew from the start I did not want to be using baked lighting but instead fully dynamic. Quixels own Medieval tutorial provided the base for my ideas behind lighting (link at the bottom) and I took a lot of elements from that including Unreals' new sky atmosphere lighting and using Screen Space Global Illumination (SSGI) on top of using Distance Mesh Fields.

One issue found during development with Distance Mesh fields would be props being too big, for instance the Dumpster which is not fully accurately represented. Though this didn't prove to be much of an issue in the end it is definitely something I will be keeping an eye on here on out.

Lighting went as follows:

First starting with the atmosphere lighting with fill likes from all openings to mimic city light coming from behind.

Following that key lights are introduced as hot spots across the scene. I like to in all of my environments have larger lighting set behind walls often projected against buildings; I feel its widens out the world and helps provide some depth and more specifically layering to the scene beyond what we see.

Following that is lights emanating from windows, and then a large swath of fills lights across the scene with no shadows to help brighten up and fill in dark spaces.

In the end lighting was a fun experience for me and I believe did I good job between keeping the scene dramatically lit and ensuring enough light for the majority of the scene to be readable. There was one prominent issue in the original upload I fixed after the fact you can see discussed in my polycount thread.

Quixel link:

Polycount Thread:

Alleyway Environment Breakdown #3 - Materials & Shaders

Making Of / 10 March 2021


For the buildings I wanted to explore a workflow I've recently been learning about here and there involve baking out individual masks for modular pieces that can be used over tiling textures to break up repetition without needing unique textures for each piece in the scene.

Starting out I provided each building piece 2 UV sets, one for Texel density, and the other for a unique 0-1 unwrap with the most prominent faces given larger space in the UV. From there it's into Substance Painter for a bake. Using Painter I create 3 User channels and split them between R, G and B and then create masks within each. On export these 3 channels are packed and the buildings ambient occlusion is packed into the Alpha of the texture.

In-engine the material set it starts with the tiling textures and a unique dirt mask made in Designer that is used to create the dirty version of the base texture. Those two are Lerp-ed using the previous building mask and the AO is added in near the end using a AO blend function. At the very end of the shader are some cannibalised sets up from Quixels shaders to add in a detail normal and specular.

As I was learning as I was going there's still plenty more that could be done with this shader/optimisation and I never did get around to utilising the Green or Blue channels. This workflow is definitely one that will be explored deeper in my next project now that I have the basics learnt.

A lot of this workflow was trial and error with experimentation but a good place to start is with this video:


I would say about 90% of tiling textures used were sourced from Quixel, with one or two taken from Substance Source and myself making two from scratch when I couldn't find the necessary equivalent anywhere else.

Using Quixel textures didn't stop at me simply importing them to Unreal and that was it but instead typically taking them into Substance Designer to dirty up and make the shapes more pronounced. I think some results were pretty hit or miss and going into the future I more likely take the time to learn Quixels own Mixer so I can keep the entire process in one place.

Detail Normals

I used one prominent detail normal in this scene quickly made with Designer that can be shaped and tiled independently of the rest of the textures.


Alleyway Environment Breakdown #2 - Pre-Production

Making Of / 09 March 2021

Originally the plan was to set the scene on top of the buildings but that quickly changed after I realised the scale of the project it would need to be.

I start by gathering references into a Miro board (this should stay up for a good while: where I can break down images, highlight aspects and mark notes and then carry relevant parts over to my Pureref for when I'm using specific references.

Blockouts done in Blender, I get the shapes, switch between Blender and Unreal as I work out the lighting and then start breaking the scene down after I know what I want including modular aspects and props. I find it important to do it this way because I can constantly be making tweaks and changes.

When it comes to reference gathering the probably most important source I found was in fact Google Earth; it had honestly skipped my mind that was a thing for a good few years now. Google and Pinterest are okay but Google Earth allows you to get unaltered references for buildings and the materials that go into making them as well as see the same make-up for a building across multiple instances.