Welcome to the Jungle
I’m currently working on an ancient temple environment pack for Unity. I’ve never dared to create something so detailed before, so in the past few weeks, I encountered numerous new challenges along my 3D modeling journey. I would like to share some of these, together with the tools I used.
1. Quick Sketches with Array stacks
I like to do some sketches on paper and after that, I often start to visualize the scale and basic shapes in Blender. To do this, I take a look at my references to understand the main characteristics of the scene. In this particular case, I looked at numerous photos of Mayan ruins and archeological sites, as well as games to see what building blocks they are using. This helped me fight “scope creep” and to avoid cramming unnecessary pieces into the project.
In Blender, there are great built-in tools for sketching. For the brick walls, I first created a few rows of bricks, then used Array modifiers to build a whole wall section. A similar method was used for the repeating ornamental patterns on the right wall piece.
Later, I found out that Blender has a built-in, Wall Factory tool that can help build regular stone walls. These walls are less organic, but only a few clicks and ready. It can create a large variety of brick wall bases, including curves, domes, and archways.
2. Batch Export and Blockout in Unity
After I prepared a handful of ruin parts, I took those blocks and launched Unity. I visualized a jungle pathway that leads to a clearing with the ruined Mayan temple, similar to an adventure game set.
Of course, without textures and jungle plants, it looks a little bland. But it helps me identify which pieces are really used during building, which needs refactoring and so on. At this early stage I didn’t use any special tools, just exported all meshes into one FBX as submeshes.
There are great tools for batch exporting meshes, which I use regularly at later phases of production. One of these is FBX Bundle by renderhjs which luckily, has an updated version that works with 2.8x.
Check out these screenshots of the first drafts in Unity:
At this point, I got really excited and started to believe I can do this!
But you are here to read about Blender, so let’s get back there!
3. Sculpting Stuff
One of the greatest hurdles I had until recently, was sculpting. Polycount reaching millions, freezing, and the greatest – my lack of self-confidence. I used some of my free time to look up basic tutorials on the subject. I had a clear goal in mind – get into sculpting and create ancient, eroded stone carvings and bricks.
My progress was great, and I enjoyed it very much. After a few initial hiccups, I got comfortable with some of the brush types. For these sculpts I most frequently used Simplify, Scrape, Crease, Smooth and Draw with a custom rock patterned texture. I also switched my Viewport settings to show Cavity (world space) and disabled Specular lighting.
Creating large cracks
For the split wall parts, I took the whole base mesh and an irregular closed shape and set up a Boolean Modifier. I had to split the mesh to non-intersecting parts because I needed cut surfaces. With an intersecting mesh, the modifier didn’t work well. After the boolean was done, I checked for non-manifold edges and fixed some holes in the mesh. Sculpt mode hates those and I hated myself after learning that the hard way.
Detail Flood Fill (Dyntopo > Remesh settings) and Simplify brush helped me deal with sharp, large triangles after the boolean operation. I started to Scrape off the edges, and Smooth out some details to achieve a heavily eroded look of the mesh. I drew cracks with the Crease brush, then Pinched it to be thin and sharp. I locked the depth axis for this task to avoid filling up the crack. Finally, I took the Snake Hook to create some variance.
4. Remesh and Decimate
Oh, this was an especially tough lesson. It took me too much time to figure out that Blender has a life-saving Voxel Remesh (look at Object Data Properties > Remesh) option which solved my retopology problem in a few clicks.
This function creates an air-tight shell from a high poly mesh with quad-only topology, which you can Decimate (either a Decimate modifier or the Mesh Cleanup function) to be suitable for a game engine.
5. UV unwrapping and packing
Since I want to use triplanar texture projection, I didn’t fiddle too much with hiding UV seams. I want to max out my texture space, and these models have a lot of irregular pieces that need to be arranged efficiently. Until now I created my UV layouts manually or settled with the basic packing, but with this project I had to accept that these methods are A) slow and/or B) ineffectively use UV space. So I turned to Packmaster which I heard is one of the best UV packing tools for Blender. Now instead of using only 50% of my UV space, it can get up to 75% and more with a click of a button instead of playing Tetris in the editor for half an hour, which is amazing.
This blog post is getting too long, so I will come back with the second part in a separate post in which I’ll share additional Blender Tools and techniques I like to use!
Cheers and see you soon!