b-init / ImagePaste

A simple Blender addon to grab images from your clipboard and paste as a reference image in viewport or onto the image editor.
GNU General Public License v3.0
251 stars 9 forks source link

Resolve unclear save folder logic #26

Open thanhph111 opened 3 years ago

thanhph111 commented 3 years ago

This issue aims to redefine the saving preferences design with help of @PiorGit, or at least make it clearer.

Current design explanation

In case we want to paste an image from the clipboard into Blender, the add-on has to save it to a file on the disk, and then create an image in the Blender session data which refer to this real image. This saving location depends on whether the current .blend file is saved or not.

If the .blend file is not saved, the default location to save is the Blender temporary folder, i.e. the %TEMP%\<session ID>\ on Windows or the /tmp/<session ID>/ on other OSs. These images will be deleted after closing Blender, that's why when we reopen the .blend file, the image will be missing. The Moving images feature was born to avoid this. We can also choose another directory to save these images by checking the box and providing a path beside the Use a directory.

image

If the .blend file is already saved and the box in the illustration below is unchecked, the image will be saved in the same place where the .blend file is located. If it's like the configuration below, the add-on will first create a folder named ImagePaste and then save the images inside. You can of course change the name of this folder.

image

And what is the box next to Force use for? It will save the image to the specified location, regardless of whether the .blend file is saved or not.

So what is the recommended workflow?

image

The three images above show the configuration that we think will work best for most artists, regardless of whether you want to open Blender to test out some features or you want to seriously start a project. All the images in the .blend file will be stored in the ImagePaste folder which you can pack with the .blend file and ship anywhere.

thanhph111 commented 3 years ago

@PiorGit Sorry for the long wait, I have updated the explanation. Can you take a look and tell me what doesn't fit you?

PiorGit commented 3 years ago

Hello ! No worries. I cannot test this in practice since the addon doesn't work on my machines, but I can offer some overall feedback.

I hope this helps !

thanhph111 commented 3 years ago

Thank you for your feedback. Here I just have some thoughts on what we're working on.

"...when the file is not saved" is improper english because "when" relates to time. I believe what you mean is "if". Also, the term "the file" is unclear since there is no way for the user to know if you are talking about the .blend file, or some image file.

True, I admit it's still very confusing at first. I will fix it soon.


There is no need to be minimalist with the text explanations inside the addon settings ; as a matter of fact, why not put all the explanation text you've just written - perhaps as a tooltip, or an expandable panel ? The more precise the better.

Overall, I would suggest to not assume that artists don't want to see technical info. It takes a lot of technical understanding to use a tool like Blender in the first place, therefore there is no reason to assume that the users are not tech-savy. Most will want to know precisely how the tool works (especially if it needs to be greenlit by IT in a office environment, where file saving to drive might be restricted).

I agree with you, most users have basis technical knowledge while working with Blender and they shouldn't feel any difficulty to understand the add-on concept. However, we choose to minimize the "How it works" information from the user interface, not because we don't want people to know, but because we want to avoid the people's frustration when seeing it over and over again.

Blender have designed a pretty good UI for add-ons where everything users want to know is on top of the settings.

image

We encourage user to click the :notebook: Documentation in their first use and it will lead them to the well-refined document, where we should put all the explanation I've just written there and all enormous-sized tables which won't fit in any interface component. Moreover, it's also the place where users should find their desired concept, nice illustrations or all the references they need to look up. They only need to read it once, and every time later, when they use that feature, they only need to be reminded of a small hint like a tooltip, not a wall of text.

Storing the main instruction on the internet also avoid us to frequently update the add-on just because of the documentation.

I understand you don't mean to put all the documentation to the UI, but I just want you to know we're trying to limit the text flowing on the interface.

I'm not saying we shouldn't care about UI text. On the contrary, we should find a better way to let user gain the concept without having to read the whole document. It's something that's easy to learn for a newbie, but keep the knowbies happy. The idea about the toggle to view information is reasonable and potential, we should continue discuss to choose a good design.


The only remark I can make is that if at any point there is a need to create a folder (or anything else really) on disc, the user should absolutely be warned before it happens, at least the first time (with perhaps an option to turn off the warning later).

The idea is great and I'm sure it will help a lot of users, giving them a better sense of control. However, this is still expensive at the moment. For now, we continue to encourage users to understand the concept first with the idea I mentioned above.

PiorGit commented 3 years ago

Hello ! Absolutely, all your points make sense and I am glad that my remarks can be of some help. I'll definitely dive deeper (perhaps with some mockups) once I get the addon up and running on my end.

One last remark would be that perhaps there might have been some feature creep going on around this case of a file in need of being created ? I see an option for a folder location, an option for a custom filename, and some choices given to the user about which file to save. Why not consolidate all this into a single field :

"ImagePaste needs to create a temporary file on disc for some of the copy and paste operations to operate. Please specify a folder path for this file :" [input field for a path to directory]

That way, many parameters would be removed and everything is crystal clear. (I am perhaps simplifying things too much here of course, but you get the idea).