I really like how you've articulated your entire process. This was a very enriching read. A Well deserved feature!
Great article! Thanks for the awesome read.
Wow, this is so cool! Nice job!
Ilya Nedyal discussed his Rubble modular set made with 3ds Max, ZBrush, and Substance Painter and available for your future scenes!
Hey guys! I’m Ilya Nedyal, born in Ukraine but currently living in Israel. I’ve been working professionally as a 3D artist since 2004 and took part in over 25 game titles production including Doom, The Order 1886, Halo 5 Guardians, Lone Echo, Borderlands 2 and Crysis 2.
I am a self-taught artist who started learning the process quite early by just having fun and working on mods. By age 17 I had my first job in the game industry making vehicles for Ghost Recon 2 Cinematics.
Presently I am working on both big and small game projects doing anything from single models to complete environments. In my spare time, I like to work on some personal game projects.
Rubble & Debris Set Goals
I’ve had some experience working on rubble pieces for several projects, Unreal Tournament 3 and recently released Starblood Arena in particular. Over the past couple of months, I’ve been checking the Unreal and Unity asset stores and found nothing similar to what I wanted to create. The goal of the rubble set was to create something that could be used across many different projects and scenarios. To achieve it, I had to make tiling textures, rubble piles, and standalone assets.
Usually, when working in the game development environment there’s always stuff around you that you can use as a kitbash. However, for this project, I had to create everything from scratch since this was a commercial product. My first step was to decide what kind of rubble I wanted to create and which elements comprised it, from brick and blocks to concrete chunks and metal junk. After settling on what I needed I started building basic models in 3ds Max which I later detailed in ZBrush.
Once I imported the base models into ZBrush I started using various brushes on the edges to create detail, especially TrimSmoothBorder and TrimDynamic. ClayTubes is another nice brush to add bulk where needed. This step is mostly straightforward and with a small set of brushes, you can accomplish quite a bit.
Working on the Assets
Once satisfied with the result in ZBrush I had to optimize the meshes, so before exporting the models back into 3ds Max I reduced the polycount to around 10-15 % with Decimation Master. A step that can’t be missed in a project like this is to have a proper ID map for texturing so that I could easily select all parts of a particular type (e.g. concrete, plaster, metal, etc.) and assign the necessary material to them.
For the rubble piles, I started with creating a base mesh which I painted the rubble on. I began with the largest pieces to define the silhouette, after which I used the medium ones to fill the holes and finally added the small ones for detail. The particular script I used for painting is called Advanced Painter but object painting is built into most of the 3D software solutions, so as long as you can paint on the object’s normal you’re good to go.
Once the high-poly pile was done I exported it back into ZBrush to get the low-poly going. I imported a flat plane and projected it over the high-poly mesh. After a couple of subdivisions, I was satisfied with the result so I decimated the model to a more reasonable polycount at around 3-4k per pile. After that, I exported the decimated low-poly back into 3ds Max to clean it up any extra edges and vertices and then proceeded to the baking stage.
I’d say the most important step in such kind of asset is to have a proper ID map, without which texturing will be a huge pain. For texturing, I used Substance Painter so I started by importing the model and baking the rest of the maps needed such as curvature, world space, position, etc. After which I went over each ID part and assigned the material to it by either importing textures or substances.
Once I got the basic material of each type (concrete, brick, plaster and so on) I moved to the artistic part where I paint in the dirt, grunge and dust details. This part is very individualistic and depends on the final look you want to achieve.
The texturing stage has always been where the rubber meets the road and if you have a solid model with lots of nice details then when you generate the masks you’ll get lots of texture details for free. Here having a detailed model can really save quite a bit of time. Regarding scans, I have seen a bunch of artists doing amazing things, but unfortunately, I don’t have much experience in that area.
One problem with LODs is the popping you see at a distance when they are switched. For the rubble pile, I could get away with pretty low polycounts, even 30% as long as the main shapes were there. One thing I would do for the future assets is just using Unreal’s auto LOD generation. It seems to provide a result similar to what I did manually.
You can get the set on:
I’d say if you want to achieve a good blend between the rubble set and your project you’ll need to have some destroyed or damaged structures in the level such as buildings, walls or vehicles so that it wouldn’t look out of place. I want to create a complementary pack that will feature destroyed wall and building segments that play well with the rubble pack.
Setting up and starting to use the set is very easy. You just drag and drop the materials, prefabs or assets into your scene as you would with any asset. A good tip would be to create basic meshes and use the tiled textures on them to blend things further.