First Steps: What are we looking for?
In order to begin the process, we need to define what we want to do. From a medieval wagon to a SciFi antenna, the desired item we want will define all the work we must do. Its not the same to build an item from an apocalyptic world or an object from the far future. All the workflow, from texturing to modelling will change depending on what are we looking for.
In this case, our choice is gonna be a Cliff Scaffold. For this purpose, we are gonna use a concept. This is not our goal, its just a support image to define the pieces that we need.
At first sight we can break down groups of pieces and we can add some more:
After the break down, we need to think how this will be build. We are gonna make a few pieces from each group to achieve some variations. But first, we need to talk about this damn materials.
Materials or "How trim textures make us happy"
Its time to talk about materials. With all the above in mind, we need to define how our textures will work and look alike. How many textures do we need? A texture for every channel in every material? NO. Instead we will "combine" all the materials in one by doing a clever use of the UV space.
We are gonna choose a trimmed texture instead of some unique textures. If you haven't worked previously with any texture of this kind, you can take a look on how to create a Trim Texture by reading the Trim Textures: Making Of article.
With a quick previsualization on "what" do we want and "how" to do it, you should be able to anticipate all your visual needs and material count.
The core idea is to use this Trim Texture to texture almost everything by UV tiling one of the two axis (U or V). You can see that our texture consist in three types of wooden planks, for all the wooden pieces that we got made after the reference inspiration; a metal section for details and to add some more style to our props (for example for ends and decorations); and a rock section for the basement and maybe some big pieces. All of these three types of "material" are going to be tiled in the U axis of the UVs. With only this three layers we can texture all of our asset. In order to achieve this goals, we are gonna keep in mind this texture in the modelling phase.
Also you should keep in mind the Texture usage and Model visibility. When texels come into scene, you will need that the textures match the mesh need of texture, having a healthy texel space ratio is a good way to make your models look nice wherever they are placed in scene. Here you can see that we have dedicated almost 2/3 of the texture for wood. Meanwhile rocks and ironworks remain in smaller space.
Last but not least, this small guide is focused on a material that only uses the color/albedo channel, we have baked the AO, bumps and made some light details but it can work well also with a full PBR material (Albedo, Normal, Metal/Rough, AO, Height, Emission). You will just have to do the texture work for every channel matching their space and watching out to not overlap the information between channels. Also a good workaround for bigger environments would be packing the trim textures by material, specially the ones that use specific information extensively like the emission or metal channel.
Modelling our pieces.
With our texture already done, we have to create all the pieces of our asset with our modelling toolkit. The core idea of modular environment design is to create the less models possible and give a unique look to each one.
The objective is to get a group of diferent pieces like pillars, planks or decoration. Three variations from each type of item should be enough for avoiding repetition. Don't create 3 exact same pillars, instead do shape variations or even small compositions to match your reference moodboard. After modeling our assets, our scene should look like this.
We have build different pieces. Some short and long pillars. Some planks. Some decoration. In conclussion all the things that we need for build different structures. We should work in the UVs for texturing. If you dont know how Trim Textures Work, you should read the Article of Trim Textures: A New Hope
With all the modelling done, its time to import everything to our Game Engine. Here we use the Unity Engine but the process is similar in Unreal, Blender, CryEngine etc.
Building Props from pieces on Unity 3D.
The final step of our work has come. By importing our assets to Unity, we begin to build our props.
In Unity you can get your hands on prefabs for your environment compositions or just keep them tied together in scene by parenting, the choice is yours!
Prefab design will keep your assets interoperable between scenes without the need to rebuild them from scratch but they will be likely harder to modify once they are built. Prefabs store the transform and all component data for each gameObject in the prefab parent. But this make it more sensible to mesh editing after building.
On the other hand keeping your assets parented but not prefab-ed will make them more tedious to modify (specially if you have different scenes) but easier to mesh modify them.
By prefab-ing we can build dozens of props that in the end are calling the same meshes and doing the same material batching. This will heavily optimize the runtime stability and scene load. Just parent some of them to the transform point you want and drag them from the Hierarchy to your Project / Prefabs folder!
With our pieces already in unity, we must invest time in build some PropsBy investing more time we can create some more assets to fill our scene but in this case we only want to show the idea of building a modular asset.
By spending some time on composition we can achieve our goal to set a scene from our modular asset. In this example we have build a hut, a platform with a ladder and some boxes that use the same material and meshes. All wooden, all optimized.
In conclusion, with this workflow you can build a wide range of props
that in fact are using a few models.
In this case we have created a simple asset with some wood, metal and rock but applying this workflow to other styles or goals, we can get quick and complex models to use it in our projects. The mastery resides in creating a balance between generic and modular props to create the general look and composition and create a layer over it of specific content, for example to add a Boat, a fishing net or by just creating something that doesn't match the trim-material features but fit in our environments.
Dominating this workflow will allow you to create
quick scenarios without much effort and a good optimization.