Sketchfab Editor Presets (Scene, Lights, Post-Processing Filters, Materials)

EDITED 22 August 2019

We (mostly @mauricesvay :wink: ) have created a userscript to allow saving, importing and exporting presets for Post-Processing filters and Materials. You can use it to easily copy settings from one model to another, or one material to another.

It works by injecting JavaScript in the page, so you need a userscript extension like Tampermonkey (Chrome) or Greasemonkey (Firefox).

  1. Install [Tampermonkey].(https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=en)
  2. Go to your Tampermonkey Dashboard.
  3. Go the Utilities tab.
  4. In the URL field, enter https://raw.githubusercontent.com/PadreZippo/sketchfab-editor-presets/master/user.js
  5. Click “Import” then “Install”

The plugin “Sketchfab Editor Presets” should now be installed and listed in the TamperMonkey installed user scripts.

When in 3D Settings for your models, you will now have a new side bar with tools to save, export, import, use, and delete presets for scene settings and materials.

Post your presets! Report your bugs! Enjoy :smile:

5 Likes

Awesome sunglasses

Very cool ! It works very fine ok_hand THANKS !
Waiting for some presets like this in the MATERIALS +1

That's just mind-blowing! AGAIN!

and it works so well... damn that's hell of a nice enhancement! Congrats sunglasses

please please please make this available to materials and dynamic lights!!! wink

@shaderbytes I started playing with it a little bit.

Materials:
I think setting textures with this method will be impossible, but colors/workflow/values will be ok.

Lights:
I can create lights with specific settings, but I can't think of a way to define light positions without making API calls.

Is that useful?
How do you imagine it would work?

FOr the materials , the textures are not really an issue , since they are applied to the slots via the uploader already, so yes colors and all other values would be excellent.

For the lights , Just call the same methods the current onscreen gizmo's are calling to update the light object's properties wink Are you saying you dont have any isolated methods to handle updating spatial representation of a light? Of coarse I have no Idea of the logical structure for your internal objects, This is all javascript right? so no real classes or interfaces etc .. but within that loose nature do you imply some of these OOP/Component strategies ?

So :

Does a light have a position/rotation value ?
or does a light have an object attached that has a position/rotation value?
Does it have its own method to update each of these values?
or does some other area of the API manage these lights and their properties?

The lights object is included in the JSON payload (e.g. when saving model settings)

It's possible to patch these values (although it's undocumented and unstable). I can import/export presets and attach them to the userscript like I'm doing to post-processing, but it's not part of the GUI, so I would have to actually send requests, patch the settings, and refresh the page each time you switch lighting preset. I think it would also require your API token. Super messy.

Obviously this could be done natively in a much more user-friendly way (like the current lighting presets). In the context of this userscript I'd rather not mess around with it.

TL;DR

This plugin uses JavaScript to push buttons on the page for you. If it's not in the editor GUI, it's not within its current framework.

1 Like

Ah I see .. so its a external hack .. I did not realize this. I was thinking in lines of the actual API being manipulated to provide the extended functionality... not simulating GUI events. Its a clever hack I guess to get some things done faster but not to extend functionality as you mentioned.

I've started to extend the Chrome script to import/export materials. I haven't tested it thoroughly yet, but you can try it there: https://raw.githubusercontent.com/mauricesvay/post-processing-presets-sketchfab/master/user.js

To install the script, you need the Tampermonkey extension, then go to Tampermonkey > Dashboard > Utilities > URL and paste the url.

However, I need to warn you: this is work in progress and this is not an official extension. It works on your material, and can mess with them. If something goes wrong, simply reload the editor without "Save settings". You'll lose any unsaved change of course.

2 Likes

Hey Thanks Maurice!

I will give it a spin on the new model im doing as soon as I have something to upload. I will give you feedback on anything I see going wrong as well.

chat soon

Wonderful, James / Tiago!
I can not thank. I hope this will become native as soon as possible.
Thank you!!

Thank you! Here is a little fork:
https://raw.githubusercontent.com/gro-ove/post-processing-presets-sketchfab/master/user.js

Now it can export/import all materials and also save them in local storage.

How can I import material? What I need import after press IMPORT button? I import link to JSON file and I paste exported files and I have information: Material is not valid :frowning: How it's works?

Does this still work? I’ve installed the script but still have no export/import buttons in the material tab. Any ideas?

There were changes in the internal coding that broke this tool … a repair is in progress

Thanks, looking forward to it!

Any idea if this will ever be a fully supported feature? The functionality is crucial to using the platform at work.

Yeah , I basically use it all the time … I suffered on the last job because of having to manually copy material settings across some uploads. Not sure if it would become official … it seems like a good candidate @mauricesvay … any input on this?