Harry Gray allowed us to repost his guide with numerous technical tips for environment artists.
Harry Gray allowed us to repost his guide with numerous technical tips for environment artists.
You will learn thought processes and skills through this that are highly versatile. Environment Art is one of the highest growing areas of game art; worlds are increasing in size and detail with more people needed to complete them. With this I aim to help artists to efficiently populate space with tailored assets that can help fill out an environment effectively while maintaining a sense of world and story, but also the highly important framerate. In my specific scenario, I wanted to create a Junkyard, but the techniques used are in no way limited to trash or debris.
I hope you enjoy and learn from my exploration into the creation of White Noise’s environment.
This is your world. How you fill it out can tell a lot about how it functions. This will involve some self-reflection on what your world is and what you want to convey.
The things I took into most consideration for my Junkyard were time period, location, what is utilized, what is thrown away, how is consumerism treated, what technology exists/is obsolete, how can I communicate that in the items that are disposed of? How’re they organized?
These world building questions will aid you a lot at the beginning of production, the first thing you’ll gain is what to find for reference. Maybe you surf the internet, maybe go to locations near you that are similar to what you’d like. For example, in these references, I gathered their composition, transition from thick trash to dirt ground, and an overall ambiance I wanted to pull off in the final image.
BLOCK OUT VISUALIZATION
Blocking assets out is a great way to quickly figure out what assets you’ll need. This may involve realizing new things will be necessary or cutting out others. This early on it’s important to be flexible and always be ready to accept new possibilities. Block out models should not be more detailed than enough to communicate what they will be eventually. This is the best time to figure out your ratio of quality to quantity. How much can you realistically produce to fill your space to be detailed, but not overly repetitive?
The junk pieces I decided upon involved waste in all forms. In my world where you’re experiencing the yard is where all waste is placed, to later be sorted and burnt or recycled by a plethora of automated processes.
MODELING, SCULPTING, GARBAGE
Part 1 – Detail Modelling and Variation
The artist’s dream stage. Go hard at it. Sculpt to your heart’s content! There are a few things to keep in mind when creating these scattered assets however. Controlling how much noise each asset has is going to avoid the issue of making this highly repeatable piece too noticeable and unappealing. Also remembering
that no single item is going to be alone, the beauty of each piece will come in the sum of its whole.
This is where variation begins to appear, each blockout model can easily turn into 3-5 others with some crushing, stretching and bending. “Imperfection is Digital
Perfection” is a statement I live by.
Part 2 – Pile Creation
So you’ve got all of your garbage/refuse/detritus/scatterable pieces together in the same ZBrush project. The first thing you’re going to want to do is Poly Paint them to be used as ID Maps. Do not forget this step unless you want to hate yourself later.
Colorize the meshes and give each separate kind of junk a color. If you don’t end this Pile Creation stage with clown colored piles then you’ve done it wrong.
I recommend saving this zProject out as a zTool. You will then be able to bring your Junk Collection out whenever you wish, into whatever Project you wish.
For this portion of the Tutorial, I’d like to thank Ilya Nedyal for his ‘Modular Rubble Tutorial’ on 80lvl. Check out his tutorial over at 80 Level for a great breakdown of his method for rubble and debris!
Welcome to the IMM (Insert Multi Mesh) Brush. A true beauty and time saver if used correctly.
Set up your new zTool in a Project so that they’re all separate Subtools. Then from the Brush menu hit ‘Create InsertMesh’. This will create a new IMM for you including each of your pieces! (How sweet is that?! You’re about to find out how sweet it is.)
First, let’s jump back into Maya and grab some bases for the piles, these will inform the main shape of your piles. Think about what ground is there, is it different from the contents of the pile? Some kind of dirt? Maybe it’s a parallax layered material showing
that this pile goes deep?
Choose one of those piles to start with, pull it into your zProject with the IMM you’ve just created and now the next bit of fun can begin. Subdivide the base mesh to give it enough smooth poly info, Hit that Colorize again so that ZBrush understands we want this mesh to have color information. Then select that new fangled IMM brush you made.
What the IMM will allow you to do is Drag brush in any and all of your meshes. Go through and layer in how you please. I like to go from large silhouette defining pieces to medium filler, to small filler. You can transform these pieces after dragging them in if it isn’t perfect on first drag.
Remember. Clown Piles.
The reason I opted to use the IMM instead of duplicating and placing pieces is this is a significantly faster workflow. It also automatically makes each piece act within the same subtool as the base pile, so no merging has to happen later.
OPTIMIZATION ROUND 1… FIGHT
Part 1 – Projecting
We all know that taking this 14mil poly mess into UE4 would be a great way to spend the night crying. So let’s fix that with the ZBrush tool ‘ProjectAll.’ Remesher/Dynamesh/Decimation could do something, maybe, but the results would come slowly and unreliably with all those separate shapes and high poly counts. This will take a lot of hassle away and you care about your time spent.
Append a plane in your scene and have it cover the horizontal space of the pile. Give it some subdivisions so it will be able to handle high details. (I went for ~2mil). Find ProjectAll in your Subtool Palette, increase the distance till it covers you whole pile, then hit ProjectAll.
Now that you’ve got a plane with lot’s of that sweet pile detail, use Decimation master to knock it down! For my Large Pile I hit 3k while maintaining silhouette details, but my smallest rubble piles were as low as 500!
Part 2 – Silhouette, Deleting, Quadraw, UVs
Let’s warp this new optimized piece into Maya and make it even more game happy.
Reasons why this isn’t ready for Integration:
1. The ZBrush projection has vertical limitations for shape
2. There’s still flat space left over from the plane
3. It could probably have better poly density
4. it isn’t UV’d Let’s address these.
Deleting a flat plane is pretty easy, doing that will give you the ground shape you want. But the wheel seen below requires a bit of extra modeling. I really wanted to keep that wheel-hole silhouette for the integrity of the model. Take a block out mesh and place it in the right spot, this may require approximating rather than extreme accuracy. Delete the polys from the bad projection and attach it all together as one mesh! UVing should be easy for most of these, a lot of the work can
be done with a planar projection and unwrapping/optimize pass.
Part 1 – ID Maps
You’ve got your mesh(s), they’re optimized and UV’d, let’s hit Substance Painter. I will not be going over painting techniques, but giving a few tips that are going to make this portion as efficient as possible!
You made clown piles, and now you love yourself. Because with those colors we can generate ID Maps. Bake in that High Poly detail and discover the filter ‘Color
Selection.’ This will allow you to make masks for materials based on your IDs. I personally used mainly Substance Default Materials here that would later get polished and painted till I hit a nice level of grunge and dirt.
A good idea here is to utilize the User0 Map, add that into your texture set and give all Junk one value and all Ground another (probably black and white). This gives us a Mask we can export that Unreal can use to differentiate between what’s Junk and Ground.
Part 2 – Smart Material
Before making any paintbrush specific edits to the Painter file, we can streamline the entirety of what we just did with a Smart Material.
Do all ‘Mesh Map’ specific stuff now. AO Multiply Layer, Curvature Overlay, whatever adds a little pop in detail you want. Insert all the current layers of ID Masks and Materials into a Folder and name it. Right-click the folder, hit Create Smart Material, done. Apply this Smart Material to any of your other baked piles and it’s like magic. You can then go onto making any specific edits to each that needs it.
Part 3 – Exporting
We can also streamline our exporting process so that our later UE4 Materials flow smoothly.
Create your own export Configuration. By doing this you easily maintain naming conventions, which partners are going to love you for. (Tip: “$mesh” will insert the name of the used low poly mesh into the file name.) This also sets a standard for your texture packed Greyscale maps so you’ll always know which channel holds which map.
All you’ve got to do now is export those textures. Coming next time, Let’s integrate into Unreal!
THANKS FOR PERUSING
That concludes part one of this process. In my next installment, I’ll be going through the process of UE4 optimization, Substance Designer, and usage of the Foliage Brush.
If you liked this set of tips or it helped you with some part of your own project let me know on ArtStation or feel free to email me at firstname.lastname@example.org!
I’m completely open to any feedback you may have as well if there’s something I could have communicated better, I’m sure others will have similar questions to you.
Hope this was informative, see you next time.