This started out as a little group project I was doing with some of my coworkers. We had toyed around with the idea of making a little game...or part of one at least. We initially started out with the idea for a Jet Moto style game, but with customizable/upgradable bikes. I came up with a unified template for the bikes and jet engines so that we could each swap them back and forth. We could have the player pick a bike style, then select an engine...or start out with a base one and upgrade to better ones.
This fell through rather quickly...bike physics were a pain to set up, so once our coder quit..things fell apart. I decided to follow through and at least finish a bike and jet.
I kept the theme of customization in mind. Mainly, I kept in mind a way to pick your own bike colors/paint jobs and decals. I ended up making a couple "paint job maps" that use the rgb channels as masks for the different colors of it:
|Paint Job map|
I set up a master material in UDK that allowed instanced materials to pick a paint job map, then use a color picker for the different parts of it. Also, If a matte paint is desired, dropping the reflection parameter down activates a few other parts of the material that helps the matte paint look nice.
Also added some different decals into the mix as well.
With all these things combined, I tested out the flexibility of the master material. These were all made with material instances:
This is what my Master Material looks like in UDK: