Using Multiple Textures or Materials With Only One Model


(Nicholas Wilkie) #1

Hello there Sketchfab!

A few days ago I created a Kukri knife with a set of materials, and then I created 10 more sets of materials for this same knife, all using the same UV's.

I am wondering if it is possible to upload all of these skins/materials to the same Sketchfab upload. Or will I need to upload a new model for each individual reskin of the knife? I do not mind uploading the model 10 times, but I feel like that would be a very inefficient way to do it (as well as a big waste of space).

There was one other thread (titled Multiple Materials for One Model) I could find that was attempting to do a similar thing, but I was unable to fix my issue after following along with it. So I am unsure if this method would even work.

So far, I have tried to upload all skins in a zipped file (Titled "") with a sketchfab.timeframe included at the root of the zip file. However, after uploading the zip, various different texture channels are used instead of one group at a time (Eg: Albedo from kukri3, AO from kukri5, normal map from kukri9, and etc:), and no changes occur while the animation is playing.

My current sketchfab.timeframe that is not working:
10 Kukri/kukri1/kukri1.dae
10 Kukri/kukri2/kukri2.dae
10 Kukri/kukri3/kukri3.dae
10 Kukri/kukri4/kukri4.dae
10 Kukri/kukri5/kukri5.dae
10 Kukri/kukri6/kukri6.dae
10 Kukri/kukri7/kukri7.dae
10 Kukri/kukri8/kukri8.dae
10 Kukri/kukri9/kukri9.dae
10 Kukri/kukri10/kukri10.dae

I have also tried uploading the sketchfab.timeframe without Kukri/ added to each line, as well as the kukri#/. But the results have been the same for each attempt.

Here is a link to the (currently unpublished) model I am trying to use this on:

Any help would be greatly appreciated. Thanks!

(Nomadking) #2

I can't check the link, so a bit of a guess here!

If I remember right, since the timeframe feature is aimed at animating a single 'model' they assume materials of the same name across the different files are intended to be the same material, and treat them as such when processing. If you name the mesh / material differently in each file you should be able to get the result you're after.

(Mrchlblng) #3

@Omnipotent I see 2/3 alternatives for your usecase

  • if you're planning to showcase your model outside of, you could do like a configurator and use the viewer API to switch the texture set used on the model dynamically
  • if not, you could use the timeframe feature but you'll need to either use different material names for each version (we match textures based on the material name and currently all your variations use the same material name "kukri" so all versions end up with the same textures) or alternatively, you could use our editor to fix the incorrect bindings

(Stephomi) #4

The timeframe solution with different material names will probably be the easiest one.

However in theory, if your model is high poly and you really want to download it once, you can do your own animation with instanced geometrys, and simply set different materials :

scale 1     scale 2     scale 3
   |           |           |
material 1  material 2  material 3

^ something like that, (scale 1,2,3 are simply animated channel that simply cycle through step interpolation 0-1)
(I guess it's possible to do that in 3ds max / blender but I'm not 100% sure how it would work after exporting, etc...)

(Nicholas Wilkie) #5

Thank you all for your help @nomadking, @mrchlblng, and @stephomi!

I tried renaming the material set for each set in Substance Painter, but it still only exported the Kukri channel. So if I understand mrchlblng correctly: After exporting my model in 10 different ways with 10 different name variations of the same model (Eg: "Damascus" instead of "kukri"), I need to redo the entire import and painting process for each set of materials. I wish there were another way, because that sounds like quite a bit of work for what one would assume should be a fairly simple operation. :stuck_out_tongue:

As for the instanced geometry idea, exporting from 3Ds max and baking that out in SP could be a little tricky. That does sound like it should work though.

I may try and do this at some point in the future. But for now I will probably just individually upload each variant to it's own page. Thanks!

(Nomadking) #6

Sadly I don't know enough about Substance to suggest how to fix the channel/material name not changing! :frowning:

You could try exporting as OBJ instead of DAE. Both the OBJ and associated MTL files are text readable, so you could manually edit the names to make sure they're unique. It's a bit messy, but shorter than the multiple import option you mentioned.

(Nicholas Wilkie) #7

Hmm, thats a pretty good idea. I was not aware that OBJ and MTL were text readable. That should allow me to fix the problem though. I will have to give that a try later. Thanks! :slight_smile: