Work in Porgress: Progress, Scripting and ZBrush

Work In Progress / 14 January 2019

Greetings, today I’m going to focus on talking about a few of the things I’ve learned in the creation of this environment. First, however, a quick update on what I’ve been working on in the past week.


Progress on the environment is slow but steady, I’ve managed to complete the last of the gravestones and made good progress on the Torii (the wooden arch structures). I might go back and re-do the torii if it doesn’t fit in with the final colour palette but for now I’m happy with it!

I’ve also been working on changing the lighting again, I realised over the weekend that the entire scene was too dark, murky and green. Whilst I want the environment to evoke the feeling of being forgotten about and lost to the history books I’d also like people to actually be able to see all of the work put into it!

Here’s a quick screenshot of what it looks like at the moment, again lighting will certainly be shifted and point lights will be moved/added when I’ve finished up the majority of the assets.


I didn’t make as much progress as I would have liked to, however this past week I have been working on something a little different. I have a relatively good grasp on programming and so I’ve always wanted to utilise this to maybe one day pivot into technical art.

MAXScript Work

This week I’ve made my first steps into implementing this skillset into my art. To do this I’ve created a small MAXScript that automates a process that I go through with each individual asset when exporting them from 3DS Max to Unreal.


To summarise what the script does:

  • Option to align the pivot point to the bottom-centre of the model
  • I find this useful for importing assets into Unreal, particularly props and clutter objects. This makes it easier to move and rotate them about in-engine and place them onto floors/surfaces making sure they don’t float etc.
  • Option to move the object to 0 on all three axis in world-space
  • Export as FBX
  • I made this optional as this gives the script more use-cases
  • Create a Export subfolder in the chosen location and export the object to said folder.
  • Saves having to do this manually, not a massive time-saver but this allowed me to get to grips with navigating the filesystem via MAXScript

I’m quite happy with this little script and will be regularly utilising it in the future to automate the exporting of assets set to go into engine. I really enjoyed writing and figuring out the logic and issues and am looking forward to writing more scripts.

I may move to using Python or jump straight to writing a C++ plugin for my next 3DS Max tool.

Learning ZBrush

Up until this current environment project I’ve had very little experience with ZBrush having only utilised it in university to sculpt a character which shall never see the light of day!

I saw this project as a great place to get some experience using ZBrush to assist in creating some more organic elements, wear and damage to assets in the scene. Primarily I saw opportunity to use it on the assets built out of stone in the scene, such as gravestone, paving stones and the walls of the raised areas. I’m happy with the results, below are is an image comapring the taller gravestone from block out through to final asset after baking and texturing.

In my previous experiences with ZBrush I was stuck using a mouse, however for this project I was able to use my relatively cheap Intuous tablet. This made a world of difference to my confidence in using ZBrush and the results that I got out of it.

Utilising ZBrush to create organic looking weathering was a challenge at first. However after taking time to look at references of weathered and worn stone statues and gravestones and getting used to the brushes and tools available to me in ZBrush I quickly felt confident in adding damage and wear to the hard edges of the gravestones.

Not only was I able to learn a great deal about utilising ZBrush but I also gained further experience into rebuilding low-poly versions of the assets for baking and unwrapping the UVs in a way that allowed the normals to bake effectively and without errors in Substance.


I hope to get a significant chunk of work done on the environment in the next week and am looking forward to showing the progress I’ve made. Please give me any feedback you may have about the assets, environment, script and this post itself in the comments!