Unreal Engine 4 discovery project
For my minor project I focusing on streamlined and procedural asset production for environments. As well as starting to discover Unreal Engine 4. Rocks are modeled and textured procedurally and the foliage is done with SpeedTree. Every material is created with Substance Designer.
I wanted to be able to create stylized rock looks with the ability to add a lot of diversity.
I spent quite some time on making a graph that produced a single rock shape. Initially I used rock alphas as inputs (like the brushes used in sculpting software) but I found it took away a lot of control. More so, I wanted to see if I could generate such an alpha with Substance Designer.
Once satisfied, I distributed three variations of this rock generator as primary, secondary and tertiary shapes.
Followed by some general layering of shapes and breakups to bring it together as a whole.
All vegetation was done in SpeedTree using assets modeled in 3DSMax.
The atlas for the trees was done in Substance Designer, allowing for further customization.
I wanted to be able to iterate on my rock substance alongside of the production of the rock models (which was important to be able to build the scene). Meaning that if I changed something in the substance I didn’t want to manually reapply the substance to all existing assets.
Using the Substance Batch Tools and .NET I was able to automatize the process of baking the required maps and baking the substance into bitmaps right into the UE4 project.
Normally, in Substance Designer you bake maps for your low-poly mesh, which are either stored on the harddrive or embedded in the Substance. I figured that if they are stored on the harddrive, when you replace them with other maps, the changes will propagate in the Substance. So that is exactly what this tool does.
The Substance has references to this set of aptly named files. Once the batching tool runs, it bakes a new set of maps with the same file names, overwriting them before baking the Substance bitmap files into the Unreal project.