Model Thumbnail Images (like plugin thumbnail images)

Hi! I develop Building Tools by F3X, and we’d like to add a thumbnail image to our model (as you are able to do with plugins).

This would let us make the original model more visually distinguishable in the catalog and search features, and reduce the incidents where people get old, outdated, re-uploaded, broken copies from other folks.

Is this a feature that might be coming soon? We’re about to release version 2.0.0 and we already designed a few thumbnails in case this feature is added.

Thanks!

11 Likes

You can kind of already add thumbnails to your models, but uploading icons should definitely be a feature by default.

To add a thumbnail to an existing model right now, you’ll need to include two garbage objects that unfortunately need to ship with your model: a Camera named ThumbnailCamera, and a part+decal for your thumbnail. Insert the part+decal, position your camera at it, and copy the Camera under workspace. Paste it, name it “ThumbnailCamera”, and then save F3X, the garbage part+decal, and the garbage camera as a single model to ROBLOX. The uploaded model will show your decal as the thumbnail.

11 Likes

:pray: This worked for now! Thank you! It took a while to get it right, but it looks pretty nice—only downside is that it’s an extra unnecessary part, but at least it automatically deletes itself.

Check it out!

2 Likes

Are you sure about that? I just inserted the model and found it under the baseplate:

3 Likes

He probably means as soon as you hit play or start a server.

:joy: Yes, that’s the nasty downside. Hopefully people don’t have to deal with it in 3D.

I tried putting it inside the handle and very finely adjusting the camera into the handle part, but the thumbnail showed the outside instead.

Would be really neat to have this be a real feature instead :sweat_smile:

1 Like

I wish this was possible to do with ModuleScripts too where you only have the MainModule as parent.

I have not found any ways to set the thumbnail without break the ModuleScript to be loaded with require().

So I hope this can be a feature for this too.

5 Likes

If you’re okay with sacrificing your workflow for a slightly better user experience you can always modify the XML by hand to make the thumbnail objects non-archivable, so when they save and reopen their places the objects will disappear. Definitely a hack.

2 Likes

Wouldn’t you have to modify the XMLs before uploading? Every time I’ve tried to upload a model with non-archivable objects they aren’t rendered in the thumbnail (which makes sense since they don’t really exist). How would changing the property in a model file be any different than changing it through the explorer?

1 Like

Yeah, I’m saying you would modify the XML manually before uploading.

1 Like

But how would that help? Non-archivable objects aren’t published with the model and don’t show up in the thumbnail.

1 Like

The hack I was suggesting was every time you are going to publish your model, you save it as an .rbxmx file, open the file, edit the XML so all temporary objects have their Archivable properties set to false, save the file, and then publish it yourself using a tool to send HTTP requests like Fiddler. The temporary objects will be deserialized and rendered by the thumbnailing service but when your users save their places containing your model and reopen their places, the temporary items will be gone.

4 Likes

How does the render service make use of the ThumbnailCamera?
Would it work if you parent it to nil in the XML?
(aka would it still be used to position the render camera?)

1 Like

If you parent the Camera to nil from XML it won’t be present when the thumbnail is rendered.

2 Likes

Hmm how does it use the camera?
Does it insert it into “workspace” and use that as currentcamera?
Or does it just read the CoordinateFrame stuff from the XML?
If it just reads from the XML, it shouldn’t care about its parent.
That would allow us to parent it to nil.

or you can just add something to studio that automaticly removes ThumbnailCamera on insert

1 Like

Let’s say you have this as your XML file

<roblox version="4">
    <Item class="Model">
        <Item class="Part">
            <Properties>
                <Ref name="Parent">NULL</Ref>
            </Properties>
        </Item>
    </Item>
</roblox>

When you import this file into Studio you will be left with an empty model, because as the file is being deserialized the part’s Parent will be set to nil.

After loading the asset, the thumbnailer looks for a ThumbnailCamera named “CurrentCamera” and use that if it exists.

The problem with removing ThumbnailCameras on insert is that you may actually want to retain the ThumbnailCamera (e.g. you are updating one of your models which already has a nice thumbnail).

1 Like

Better solution than the model thumbnail equivalent of releasing a program with debugging tools enabled because “It’s easier for developers to debug that way”:

On the “publish success” popup you get when you publish an asset, in addition to the close/okay button, have a “set thumbnail” button for models. Clicking this would start the camera at the last saved cframe (so you don’t lose it for good thumbnail angles) or just the default if one hadn’t been set. From there, you could position the camera around the model and click “Done” to set the thumbnail. Not sure if it would be better for that to happen by creating another viewport in the publish window with only the model in it, or using the existing viewport somehow.

Edit: It’s also a bonus because setting a model’s thumbnail would then be apparent instead of the current obscure way of using a special name that you wouldn’t find easily. This could also be used for places so you didn’t lose your thumbnail place whenever you edited it again.

2 Likes

Hmm so my idea isn’t possible.

What about having an option in studio “Remove ThumbnailCamera” that’s enabled by default?
If you want tp use an already existing camera, you could quickly disable it.

Could even have it that it gets removed by default, but you can toggle an option to have a button to toggle it off.

1 Like

My goodness, we need this.

With scripts as the main parent being uploaded as a model, it’d appear as
image

Like EchoReaper said, you’d have to use the ThumbnailCamera and part+decal method, in which case a lot of front-page models use.

It’s annoying enough to try to position the camera to where you’d like. Making an option to put model icons will erase the hassle of trying to getting your model to look good at first impression.

Models that haven’t been uploaded an image yet, of course, will have an auto-generated image may it be auto-generated model view or the default script image. And models with ThumbnailCamera in them will still function.

3 Likes

We really need something to upload thumbnails to models, instead of having to set a ThumbnailCamera which takes lots of time if you want it to be perfect.

If this was implemented, it would improve my experience because I can work more efficiently when creating and publishing models. I don’t want to spend an hour on getting the right ThumbnailCamera.

2 Likes