Home Technical Talk

Organizing Tiling Textures in a Large Project

polycounter lvl 12
Offline / Send Message
Bartalon polycounter lvl 12
I was hoping to find some consensus relating to material management in a project setting in regards to the texturing pipeline. This might be a long post so I hope you like text. I'll put a TL;DR at the bottom.

At my current studio we are working with a large volume of tiling textures (hundreds) for use with buildings and terrain, something that I would imagine is commonplace for certain types of games (MMOs for example). We are re-using textures from old projects as well as picking up tiling texture packs from the asset store and whatnot.

So in this situation our work flow is kind of backwards. We have the textures already loaded and prepared as materials in Unity but we still need to go into Maya in order to make the models and set up the UVs to match the tiling textures. On top of this we have to make sure the material IDs in Maya match the names of the materials in Unity so Unity won't create its own Materials folder with a duplicate set of materials and therefore duplicate draw calls when the game is running.

The big issue is the bottleneck within Maya where, before I can view the textures, I have to spend the time creating and naming materials then finding the texture files wherever they might be saved in the Unity project. It only takes 30 seconds to a minute to set up a material in this way, but doing it upwards of 20 times per scene file definitely adds up to a considerable chunk of time wasted just for setting up viewable materials.

I am wondering if there is a different and perhaps faster way, or a plugin or something that can speed things up, or am I just doomed to manually sync my materials?


TL;DR: How do you go about synchronizing material names/file locations in your modeling software with materials that already exist in the engine, such as with tiling texture packs from an asset store? Is there a quick or automated way to do it?

Thanks in advance for any tips.

Replies

  • Eric Chadwick
    I think it might help to write a tool which converts Unity materials into Maya materials. Then you could just load those in Maya.

    I'd also look at image browsing software, with an eye toward organization tools. If you can tag or categorize materials this would help. Wood, grass, stone, metal, etc. Someone would have to go through the library and make those tags, but once you have them it would be easier for artists to find things. Assuming you can get your team to use the system!
  • Bartalon
    Offline / Send Message
    Bartalon polycounter lvl 12
    Thanks for the tip Eric. You've been around for a while I think, so if you can't offer any resources there must not really be anything out there for this problem...

    A lot of the materials in our Unity project are pretty well-organized under a similar naming structure. It's just a huge slowdown to have to spend all that time making the materials, renaming them exactly, then browsing to the file destinations for each one or picking them out of a huge tagged list of texture files.

    Writing my own tool sounds complicated but I think I might be able to do something with my limited programming knowledge. I've already got some ideas! *cracks knuckles*


    Still curious to know if anyone else has something to share!
  • Eric Chadwick
    Thanks, but I'm still learning like everyone else, so there may indeed be something better.

    I think your problem is, you're coming in the opposite direction from the usual, make materials in your 3d app and export them, so you need to setup a pipeline that probably doesn't exist, at least not commercially.

    Unity .mat files are just text files, so that should make it easier to convert them into Maya format. Personally, I would look for a way to batch convert all those Unity mats into Maya mats. I believe Maya Ascii format would work for this.

    You might want to put all the materials into one MA file, so you can pick them easily in one go. You might want to organize them more though, so tagging is needed.
  • Bartalon
    Offline / Send Message
    Bartalon polycounter lvl 12
    I can't imagine we're the only people who are working in the opposite direction like this. I mean, there are tons of people picking up custom assets and textures from the Asset Store to save time/money, and all of it imports directly into the engine. I find it hard to believe none of those people are taking their stuff back into a Max/Maya to rework it or make their own content with texture packs. From what I've seen come out of the Asset Store, a lot of that stuff direly needs to be reworked, whether it be texture atlasing, or basic optimization, or something else.

    Having 300+ materials with texture files in one .MA might be a RAM hog. I'll have to see how it handles. I might have a way to export a list of Unity materials that Maya can use to create materials on its end with the same names.
  • GlowingPotato
    Offline / Send Message
    GlowingPotato polycounter lvl 10
    Hello Bartalon.

    I'm working in a indie studio, and i can say that this is our first world problem.

    We create all textures for our game, and there is a lot of textures. tiliables, non-tiliables, etc.

    Then we have our materials, that are combination of textures (Normal, diffuse, specular, emissive, etc.) that we load in our in house engine.

    It is really hard to track every texture, for exemple, if i need to use a brick texture, does it already exist in game or do i need to create one from scratch ?

    We have only a few artist and it's already difficult to track every texture/material. Since we have our own engine, we created an asset editor and a material editor, so we can see what we already have, and tweak it by need. Even with this tool it's really difficult to maintain everything organized.
  • Bartalon
    Offline / Send Message
    Bartalon polycounter lvl 12
    We create all textures for our game, and there is a lot of textures. tiliables, non-tiliables, etc.

    Then we have our materials, that are combination of textures (Normal, diffuse, specular, emissive, etc.) that we load in our in house engine.

    That's a good point. How about those of us who are making materials with Substance Designer? I don't know about others but my stuff goes straight into the engine, often before it's even done to make sure it's reading correctly as a material. Organized as it may be in there, translating the content into Maya to make assets is a huge pain still.
Sign In or Register to comment.