Backyard Slice - Related Industry Topics
In this post, I will be tackling the required topics within my brief for the backyard slice project:
- What is the purpose of highly reusable textures and 3D assets in video game environment art creation?
- Investigate techniques and tools that can be utilised to create 3D environment assets faster, and ways in which assets and textures can be given variety to hide obvious repetition.
I want to answer these in a post together since they are both linked together.
1: What is the purpose of highly reusable textures and 3D assets in video game environment art creation?
A good starting point to answer this question is to discuss why repetition is beneficial, and this can be summed up as it is extremely performative. Performance in games is a absolutely key aspect; if a player enters a city and the hardware cannot handle a decent frame rate the game is jarring and the player's immersion is broken. The player is incredibly unlikely to touch the game again until they hear the problem is fixed, which is a failed game.
Draw calls are the key component to poor performance that modular/highly reusable assets can help circumvent. A draw call in a very simple term is a command from the engine to render an object; an object will have a call for the mesh, and then one per material on the object. for example, if you have 5 objects using 1 material, this will still be 10 draw calls. Engines are usually incredibly intelligent at noticing when a material and a object have been copied or "instanced" in the scene multiple times, and thus they batch together these calls to reduce the total amount, making highly reusable assets infinitely more useful than unique assets.
Another aspect of the use of repeatable textures and assets is that it reduces production time for the artists by allowing them to focus on simple asset types (such as a wall, a beam, a window frame), and allows level builders to have a kit they are comfortable with to produce lots of different building configurations for instance. Here are a couple of examples of projects that have made excellent use of the modular kits:
Within textures, there are a couple of method to produce highly reusable assets, and these are through trim sheets and tiling textures. Tiling textures excel in areas of flat space but require some work to reduce the obvious repetition. Trim sheets are great for assets like wooden trims or simple beams, and normally tile horizontally to be able to hide some repetition also. These textures can be used across a variety of assets and help produce a consistent scene, which when considered with Texel density of the spaces can produce a harmonious environment.
2a: What techniques can be used to create 3D environments faster?
I briefly touched on this before when discussing how reusable assets shorten production time, but what other tools are there to help artists create more efficiently? When modelling these assets, 3D artists will have access to a plethora of modifiers and plug ins that can procedurally or dynamically modify a created mesh. Modifiers in max that are particularly useful for instance are:
- Symmetry: this is exceptionally useful when retopping a character for instance since most characters at least have some degree of symmetry to use (eg. in faces or hands), or when modelling a basic blockout to then add variation to later
- Bend: This allows for easy modification of foliage assets to add a natural curve to a model (Twist also helps here) that can be changed dynamically
- FFD node adjustment: this allows for a whole model to be adjusted if it appears too stiff in a organic way. I used this to add some extra shape to my herbalist house in year 1 for instance.
I haven't looked into plug ins too much, but there are plenty of varied scripts out there that can speed up production time drastically. Companies will usually hire Tech artists or programmers to develop tools for their art teams, which can also speed up time drastically by reducing menial labour. for example, there is a max script that will generate debris in a scene for you after you input some parameters - this debris needs to be optimised to make its way into a game, but it is a great start to cut down time.
2b: What techniques can hide obvious repetition?
Through the backyard slice project, we learnt a couple ways to reduce obvious tiling of our assets. one of these was decals, which act as scene "stickers" to add extra detail to a scene. These can range from being as simple as a concrete pavement seam, to posters as I did on my project. These add areas of interest that can be dynamic and become focal points, which in turn distracts from the obvious repetition of the texture.
Another method is through vertex painting - which is the method I used to break up my floor texture. This method relies on having extra geometry to an object that can then become a mask for a material in UE4, and is a great tool at giving the artist cheap customisation in engine.
Another method is through world space masking and shaders in unreal; often, a material will be made which will add moss or snow automatically to the top of rocks for instance, which adds a dynamic touch to hide repetition.
Often, the best materials for tiling are the simplest ones. Textures like bricks or dirt or plaster have simple shapes, and very low texture variation. By limiting features that are noticeable when tiling (such as cracks, rocks, extra dirt), you can make a material more believable.
A modular kit is only ever as good as the pieces you create for it, if you have a limited kit then the seams are going to show more obviously than a detailed kit with many options available.