Ruins Keeper

Ruins Keeper

Xinyu Li
by XinyuLi on 21 May 2023

I had a great time recreating this 3D version cave ruins, based on Eliott Bon's amazing original concept, Ruins Keeper: This is my foundation term final project for Think Tank Training Center in 2022.

1 140 0
Round of applause for our sponsors

Hi! This is my foundation term final project for Think Tank Training Center. I recreated a 3D version cave ruins, based on Eliott Bon's amazing original concept, Ruins Keeper:

My post about this project on Artstation:

All of the models, sculpting, foliage and textures (except for Ivy texture) are made by me. Foliage atlas (grass and fern) are made procedurally in Substance Designer, except that ivy atlas is from All the final textures are in 2048x2048.

Here is a comparison to the original concept reference:

Here are renders from Marmoset for cave stone brickwall and rock material I created:

Composition breakdowns for final render. Comping is done in photoshop:

In terms of Lookdev, I picked a neutral lighting HDRI in substance painter's Iray, because I want to develop the textures to have accurate look, like in the real world. Later on, I brought it into Maya with an HDRI that has the similar feel to the lighting in my scene for further testing.

For all modular architectual assets, I tweaked the silhouette and cleaned them up inside Maya, finally with multi-cut to insert loops for a very basic and even topology.

Then, I brought the clean mesh into zbrush for sculpting pass. I always use dynamesh to get a base mesh that is dense enough for me to work on. For first sculpt pass of the archway, I mainly used trimSmoothBorder, Planar, Flatten to quickly get large damaged edges, and I used moveTopology to deform the big shapes.

After that, I stored morph target for current stage and make sure dynamesh is disabled. I used displacement and rock alpha to get the secondary details. Then, I switched to morph brush, with square alpha and small focal shift value, so I can quickly get layered up looking. When I finished tweaking with morph brush, I deleted morph target and did a dynamesh with much higher value than initially, so that I can get back my even topology for next steps.

For micro details, I disabled dynamesh again and store morph target + displacement with finer rock alpha. Then, I used clay polish with a slight edge contrast, to get polished looking and also a cavity mask. With the cavity mask inverted, I can use morph brush effciently, only targeting in smaller creases for sharper details and adding small noises at the same time. To wrap up the polish process, I used hPolish and orbflatten_edgeProtect from Michael Vicente's orb-brushes pack to bring out readability on needed areas.

For optimization purpose, I zRemeshered the duplicate of the current highpoly archway, with the help of zRemesherGuide. For first zRemesher, I set it to around 20k, and Curve strength set to near 100. Then I fixed the weird looking glitch with close-hole and smooth brush. For second zRemesher attempt, I turned off adapt and turned on Half, so that I can get a better lowpoly. I checked the topology again in case anything went wrong.

When using Project All, I need to make sure only highpoly subtools I want are visible. Then I turned off blur in project all settings. For each time of projection, I ctrl+D to get lowpoly subdivided, and clicked Project All. I repeated Subdivide+ProjectAll until my lowpoly resembles the highpoly.

Here are examples showing my re-projection process for the archway mesh:

When sculpting character, I mainly use dynamesh to quickly get even basemesh to build up forms. I detached his head from his body because the head needs more topology density.

Breakdowns of early stages - blockout and rough light:

There were a lot testings and attempts on improving my workflow during the project, especially on naming and file compilations. 

I named each large folder named as specific utilities rooms, such as sculptRoom is for ztl and fbx from Maya to Zbrush, bakingRoom is for mesh maps and marmoset baking scenes, and textureRoom is for painter files and final texture maps, etc. All the sub-folders named after assets then would be shove in large room folders, based on current asset's status in development. As the result it helped me getting each stages better organized and made my life much easier when doing version control.

Big thanks to everyone giving out thoughts and feedbacks to me!

Comments (0)

This project doesn't have any comments yet.