Technical Art and Art Pipeline Management
At many of my jobs I have been called on to apply my management and communication skills to both streamline existing art pipelines and to come up new solutions to art and tool problems as they arise. Being able to speak “art”, “programmer” and “designer” is a useful skill that has come in handy on multiple projects. It has been especially useful when working with developing engines from the ground up with tools that are still in development. Being flexible and identifying where problems may arise in addition to being able to document these potential problems, as well as coming up with short term solutions that will fit into a long term plan with a minimum of rework and discarded work/effort is a skill I have been able to bring to many projects. Some examples are:
VFX and other tools (proprietary)
At Intific, we switched from Gamebryo to our own proprietary engine. This necessitated new shader pipelines, new art paths, and a VFX solution for both interim work and for future projects. To facilitate this it fell on my shoulders to:
- Work with programmers to implement the new shader system (a boxes and wires system similar to the UDK solution) that fit into the 3DS Max pipeline
- Evaluate and report on 3rd Party VFX solutions, as well as what other engines were doing and identify the strengths and weaknesses in those programs
- Work with designers and programmers to design a flexible and future-proof VFX tool
- Work with programmers on a viewer for all of our existing assets to be easily viewed within our new engine
- Report on all of this to art/programming/producers for risk analysis, timeline factoring and course correction where necessary
While we eventually moved away from proprietary tools at Intific, the ability to communicate inter-departmentally has been a beneficial skill on multiple projects and one I hope to bring to many more projects in the future.
Tools Use Case -Texture randomization for increased variety with low VRAM requirements
In order to cut down on the amount of textures use in low VRAM situations (older training computers, laptops in the field etc.) it became necessary to come up with a solution that would allow for quick randomization of crowds of people, vehicles, props, etc. that did not need to be “hero” objects in the world. I worked with the graphics programmers in creating this system, prototyping the texture requirements in Photoshop, testing shaders, and ultimately writing up a lengthy reference document for artists (and other disciplines who wanted to go deeper into the art pipeline) to use when developing randomized assets. While the document itself is lengthy and parts were proprietary the process can be explained for the purpose of this use-case example.
In this case we are using textures (including a diffuse, a mask, and some control textures) for a Middle Eastern Female character seen in one of our training simulators.
First an artist developed the diffuse, normal map and specular map for the character with several atlassed slots that could be randomized. In this case, there are 4 character slots and each face, shawl, dress, hand area, and shoe area can be randomized.
From there the artist then makes a mask layer where the color defines how much color can be blended on top of each area and where the color blending can happen. In this case Green indicates no blending but this could change via the shader and could be modified per slot/object,
Along with some other control textures that define where the randomization areas and how random these areas are, a color overlay control texture is created that defines what colors can be overlayed on top of the masked areas. These can be cloth, skin colors, or car paint colors, etc. depending on the asset. In this case it is cloth colors indicative of the region. (the real swatch is a 32 x 512 image that fits the size of the other control textures)
And finally we end up with a set of characters that have randomized parts, cloth colors, etc. The biggest textures are the diffuse, specular and normal maps, the other textures are very small png files. Considering that the large textures can hold many swappable pieces, this is very effective in low memory situations, or where variety is needed en masse. The process can also can be overridden if a non-randomized character is needed. (Viewed in Intific’s proprietary viewer)