Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add an editor setting to choose the default import texture preset on all projects #3483

Open
allstar87 opened this issue Oct 30, 2021 · 10 comments

Comments

@allstar87
Copy link

Describe the project you are working on

Starting a new project involving retro-style, low res, or other pixel perfect artwork.

Describe the problem or limitation you are having in your project

When importing image files, Godot seems hard coded to use the Texture > 2D, Detect 3D option in as pictured in this screen grab.

godot_screengrab

This preset applies a smoothing blur filter to all imported artwork. Those creators who mainly or entirely work in deliberately low resolution pixel art, as is tremendously popular in the indie development scene, are required to manually change this setting every time they create a new project. Forgetting to do this results in a "gotcha" wherein you have to change that setting and re-import all the artwork you've imported. Which is tedious and frustrating.

Also note that the "Set as Default for 'Texture'" option in the "Presets..." drop down. Experience with standard productivity software leads one to believe that setting that default will make that the preferred setting for all future projects, but it doesn't do that. It seems to make it the default only within the current project, not for future new projects. There doesn't seem to be a way to make the "2D Pixel" option the permanently preferred option.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Add an Import tab to the Editor Settings menu that allows you to select your preferred Presets. Instead of being hard-coded to use the "2D, detect 3D" option, the end user can choose which of those options he or she most often uses, to minimize falling into that "gotcha" when creating a new project. This option would effect the initial state of the Import pane for newly created projects, it would not otherwise effect the function of the Import pane.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

In the Editor Settings menu, probably between the Network and Import tabs, add a tab that says Import. Here you could add menus for options when importing graphics as textures, texture3Ds, textureArrays, Bitmaps etc. Other items in the Import tab might allow settings for 3D meshes, audio files, etc. Something like

Textures
preferred Presets:
( ) 2D, Detect 3D
( ) 2D
( ) 2D Pixel
( ) 3D

Where the parenthesis are radio buttons.

When creating a new project, the option chosen in this Editor Settings menu is applied to the Import pane. Already existing projects shouldn't be effected at all.

If this enhancement will not be used often, can it be worked around with a few lines of script?

This should require no workaround at all; New copies of Godot should ship with this new setting set to the app's present behavior. Users who prefer the blur filter shouldn't even notice it's there. But it gives users who prefer to not have the blur filter the ability to streamline the workflow of creating a new project.

Is there a reason why this should be core and not an add-on in the asset library?

I don't see how this would be practical to implement via add-on in the asset library.

@YuriSizov
Copy link
Contributor

Since you can already configure it in the project settings, this seems like another thing that could benefit from local project templates. Duplicating settings between the Project Settings dialog and the Editor Settings dialog is going to be very confusing.

@allstar87
Copy link
Author

I'm going to argue that the current setup/behavior is already very confusing. It took me awhile to wrap my head around the fact that "set as default" is designed to not do anything.

I'd like to quickly and thoroughly shoot down the suggestion of using a template as a workaround for this design flaw. Imagine this. Imagine if every fresh copy of MS Word set the text to Bold in every new document. So every single time you create a new document, you have to click to the Format tab, and click the Bold button to turn it off. Every. Single. Time. There's a "set as default" button nearby. What it does is remember a configuration of the Bold, Underline and Italic buttons, so you can click one button and have it set those three in that exact configuration later when working in this document and only this document. You look in the MS Office documentation, and it doesn't mention this feature at all. ask if there's a way to set it so that Bold is turned off by default. They tell you to make a locally hosted template that is a blank document with that one setting changed. So now instead of just clicking the "New Document" button, you now have to go through the Templates menu every time you want to start a new document. You try to do it that way to see if it'll even work, and the software throws an error that says "cannot connect to localhost." Great. Now I have two problems to solve, one involving a feature I didn't intend to use.

That doesn't sound reasonable, does it?

I'm not the only one with this problem. There are how-to videos about fixing this.
I don't want a workaround, I want a way to set up the software for how I, and a lot of other users, primarily use this software.

Since the "set as default" button is probably vital to someone's workflow already and we can't unscrew that pooch, how about a check box in the Editor Settings menu that simply says "Filter imported images by default?" that sets or unsets the Filter flag in all the Texture, Texture3D etc. on project launch?

@Calinou Calinou changed the title Add a setting for system-wide import texture preset in Editor Settings. Add an editor setting to choose the default system-wide import texture preset Oct 30, 2021
@Calinou Calinou changed the title Add an editor setting to choose the default system-wide import texture preset Add an editor setting to choose the default import texture preset on all projects Oct 30, 2021
@YuriSizov
Copy link
Contributor

YuriSizov commented Oct 30, 2021

I don't want a workaround, I want a way to set up the software for how I, and a lot of other users, primarily use this software.

Problem is that we can't expose every project setting as an editor setting as well, it would be a hell to manage for any user. You need this specific thing, but there are other proposals needing other specific things. Project templates solve all of these issues, as you would set them up once and then select them when creating a new project with a click or two. All your fine tuning preserved for every new project you start. It also allows users to switch between different styles of projects easier by picking the appropriate template instead of committing to a single set of editor settings.

That said, the video you've linked doesn't actually show a proper workaround. To fix it once and for all for a specific project you just need to configure it in project settings here (though it's basically the same as using "Set as Default").

@allstar87
Copy link
Author

  1. The whole point is to save the busywork of having to go to a different tab and change a setting every time you create a new project. Having to go to the Templates tab, change from Godotengine.org to localhost and selecting a template does not save that busywork. It's not a solution, it's a different way to do it wrong. Unless, maybe, you can set the "new project" button to load a template, which I don't think you presently can. I've yet to hear a proposal that will make Godot more friendly to pixel artists.
  2. Local templates don't work. When I select "localhost" in the templates menu, it throws an error. When I type that error into Google--I'm typing it because you can't highlight it to copy and paste, thanks for that--I get no relevant results. The closest is #36418 which seems to be about not being able to connect to godotengine.org, and blames it on a VPN or something, I don't know I don't really understand all that networking mumbo jumbo, I really shouldn't have to understand all that networking mumbo jumbo to untick a single check box. That's my goal, remember. I want to uncheck one check box. In my troubleshooting checklist, I'm at the stage of "forget it, this feature has never and will never work, do without."

@YuriSizov
Copy link
Contributor

Local templates don't work.

You misunderstood me. Local templates is a proposed feature. It's not implemented yet, but it seems to be a good feature to have to cover a lot of cases of user-specific requirements for project defaults, like yours.

@allstar87
Copy link
Author

You're right, I misunderstood.

@me2beats
Copy link

could this apply to other file types too? for example audio files

@me2beats
Copy link

It took me awhile to wrap my head around the fact that "set as default" is designed to not do anything.

I agree with this.
When I saved the default preset first time, I thought this would be applied to every new project.

@me2beats
Copy link

me2beats commented Dec 18, 2021

Local templates is a proposed feature

I guess this is that one:
#1481

I still think this local project templates would be great to implement, but an ability to have global presets would solve cases local templates can't handle imo.

I mean local templates are not very flexible solution because it copies all project settings at once, but what If I don't want to set them all?
Another example is that local templates are cool for creating a project from scratch, but what if we already have the project with some settings that are set in a "wrong" way? Well we will set it the way we want manually and local project templates won't help here.
But the number of these settings can be not so small.
Instead it would be useful to be able to reset settings (for example Import preseslts) to some global defaults.
For example for audio my global defaults would be loop turned off (see #3120)

@YuriSizov
Copy link
Contributor

I mean local templates are not very flexible solution because it copies all project settings at once, but what If I don't want to set them all?

Then you can make multiple templates for yourself?

Another example is that local templates are cool for creating a project from scratch, but what if we already have the project with some settings that are set in a "wrong" way? Well we will set it the way we want manually and local project templates won't help here.

We can add a feature to export settings into a file and import them from a file. We used such feature quite often when setting up workstations with JetBrains' products.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants