My first challenge is figuring out how Create a Array of TextureParameters for use inside a Material. The TextureParameters will be assignable at run-time. The second challenge will be to align The Array of TextureParams in a Grid within the material.
I’m also considering using a material merge similar to the Merge Actor for Static Meshes. The feature has the ability to merge materials. The process is time consuming, however, I would rather have the option to create/save in real-time then no option.
Pursuing this will require the creation of a plugin to to convert skeletal meshes to static meshes, then merge the meshes and create combined texture atlas from their respective textures, then apply the texture to the skeletal meshes. The disadvantage is that the material merge can only be performed on a single LOD.
Have you seen the docs on imposters and the plugin from Ryan Bucks?
It may give you a good starting point on a lot of this, though I barely just got into it my self.
The imposter is essentially a texture atlas. So to speak. Anyway I think it’s worth a look to see if that’s close to what you are trying to do.
For the array portions, I would suggest using maps rather then arrays. Just to keep the index and the texture together. Since BP doesnt really allow most of the array functions we are accustomed to in code, like multidimensional arrays and such, you are generally better off not fiddling too much with the order of things and using maps when you really need to.
Or using C++ instead.
How about making an atlas and having different textures that can be baked onto parts of the atlas at runtime. Will require a lot of initial work, but should be highly performant.