Brush Assets: Create polished mockup for the Draft operators #106898

Closed
opened 2023-04-13 12:34:18 +02:00 by Dalai Felinto · 10 comments

image

image

Note that Apply Draft is disabled because its poll has "is local brush + has overides". So although this has overrides, this brush is not local, so it cannot be applied.

Also note that the cyan color we use for some settings is because they are overrides (this is the general override color).

--

Part of #101942.

![image](/attachments/c8310cd9-5368-4652-b8a2-a87234128894) ![image](/attachments/67ebec08-b37e-4a6f-9a6b-ecc8e9ddfcb0) Note that Apply Draft is disabled because its poll has "is local brush + has overides". So although this has overrides, this brush is not local, so it cannot be applied. Also note that the cyan color we use for some settings is because they are overrides (this is the general override color). -- Part of #101942.
Dalai Felinto added the
Type
To Do
label 2023-04-13 12:34:18 +02:00
Dalai Felinto self-assigned this 2023-04-13 12:34:18 +02:00
Dalai Felinto added this to the Brush Assets & Asset Shelf project 2023-04-13 12:34:19 +02:00
Dalai Felinto changed title from Create final mockup for the Draft operators to Brush Assets: Create polished mockup for the Draft operators 2023-04-13 12:35:40 +02:00
Dalai Felinto changed title from Brush Assets: Create polished mockup for the Draft operators to Brush Assets: Create polished mockup for the Draft operator 2023-04-13 12:35:50 +02:00
Dalai Felinto changed title from Brush Assets: Create polished mockup for the Draft operator to Brush Assets: Create polished mockup for the Draft operators 2023-04-13 12:35:54 +02:00
Author
Owner

Task updated with mockup.

Task updated with mockup.
Member

Not too sure if we should show much more info than the brush preview and the name. The description would often be clipped since we don't have multi-line label support. License & copyright are usually just visual noise, this doesn't really matter while using brushes, only when sharing. Plus it's just duplicating more of the Asset Browser UI.
If we really want to show more asset information it may be better off in a sub-panel, collapsed by default.

Not too sure if we should show much more info than the brush preview and the name. The description would often be clipped since we don't have multi-line label support. License & copyright are usually just visual noise, this doesn't really matter while using brushes, only when sharing. Plus it's just duplicating more of the Asset Browser UI. If we really want to show more asset information it may be better off in a sub-panel, collapsed by default.
Author
Owner

I'm fine with starting with the name + thumbnail.
That said, technically license & copyright do matter when duplicating the brush.

--

Mockups updated based on @JulienKaspar feedback on chat: use duplicate + trash icons and accomodate for extra operators in the future.

I'm fine with starting with the name + thumbnail. That said, technically license & copyright do matter when duplicating the brush. -- Mockups updated based on @JulienKaspar feedback on chat: use duplicate + trash icons and accomodate for extra operators in the future.
Member

Some more thoughts.

First off, I never asked this but I hope the override color is only ever used for session overrides. This would clearly communicate that there are unsaved changes.
Any drafted changes don't need a highlight imo.

Also I'm wrecking my head about the different operators that we'd need, because we basically have 4 different states that a brush asset can be in:
A = Original Asset (stored in asset file)
B = Draft Overrides (drafted changes on top of original asset)
C = New Draft (unique in preferences)
D = Session Overrides (Any unsaved changes that persist until Blender is closed)

This informs the need for various operators altering the state to another:

  • Duplicate as Draft (ABCD -> B)
  • Save Overrides (D -> ABC)
  • Clear Overrides (D -> ABC)
  • Apply to Asset (B -> A)
  • Reset Asset (B -> A)
  • Delete (ABC -> Nothing)
  • Convert Draft to new local Asset (C -> A)

That's a lot of operators that are all valid to exist but are not all availible at once.
That can be quite confusing.

More operations that are needed and should be accessible when possible are:

  • Rename Asset
  • Set Thumbnail
Some more thoughts. First off, I never asked this but I hope the override color is only ever used for session overrides. This would clearly communicate that there are unsaved changes. Any drafted changes don't need a highlight imo. Also I'm wrecking my head about the different operators that we'd need, because we basically have 4 different states that a brush asset can be in: A = Original Asset (stored in asset file) B = Draft Overrides (drafted changes on top of original asset) C = New Draft (unique in preferences) D = Session Overrides (Any unsaved changes that persist until Blender is closed) This informs the need for various operators altering the state to another: - Duplicate as Draft (ABCD -> B) - Save Overrides (D -> ABC) - Clear Overrides (D -> ABC) - Apply to Asset (B -> A) - Reset Asset (B -> A) - Delete (ABC -> Nothing) - Convert Draft to new local Asset (C -> A) That's a lot of operators that are all valid to exist but are not all availible at once. That can be quite confusing. More operations that are needed and should be accessible when possible are: - Rename Asset - Set Thumbnail
Author
Owner

@JulienKaspar

  1. about the color:

I talked to Bastien, and the idea is to show the overrides also when editing the local brush, so you know what would be applied if you Apply Overrides.

We can look at this with more details once we switch gears and start heads on into the draft.

  1. About the operators:

2.1 Why do we need a "Reset Asset"? Isn't this just a combination of Clear Overrides + Save Overrides?

2.2 The "Convert Draft to new local Asset" (or as I called it, "Create Local Brushes from Draft") can be applied to any brush. A better name may be "Duplicate as Local Brush" [this would apply all the overrides by the way].

2.3 Confusion ... I agree with something you said IRL, which is that we may need a way to indicate the state (A-D) of the brush to the user. Not sure yet what is the best way for that.

That plus a polling function to the operators explaining why the operator cannot run in this case may be enough.

@JulienKaspar 1. about the color: I talked to Bastien, and the idea is to show the overrides also when editing the local brush, so you know what would be applied if you Apply Overrides. We can look at this with more details once we switch gears and start heads on into the draft. 2. About the operators: 2.1 Why do we need a "Reset Asset"? Isn't this just a combination of Clear Overrides + Save Overrides? 2.2 The "Convert Draft to new local Asset" (or as I called it, "Create Local Brushes from Draft") can be applied to any brush. A better name may be "Duplicate as Local Brush" [this would apply all the overrides by the way]. 2.3 Confusion ... I agree with something you said IRL, which is that we may need a way to indicate the state (A-D) of the brush to the user. Not sure yet what is the best way for that. That plus a polling function to the operators explaining why the operator cannot run in this case may be enough.

My understanding is that the workflow is that you can create drafts in any .blend while working, whereas ""Create Local Brushes from Draft"" is something you to do move a draft into a .blend file that is part of an asset library.

It may be more clear to have more distinct user interfaces for those.

  • The Brush Info panel could have operators "Duplicate", "Remove", "Apply Changes". No draft in the name needed.
  • In the Asset Browser you can have a Draft library, and an operator to move selected brushes from the draft into the current .Blend file.

I also suggest "move" rather than "duplicate" since that's what I understand the intended workflow to be. If someone wants to have a distinct brush in their asset .blend they can duplicate it first in the draft library.

My understanding is that the workflow is that you can create drafts in any .blend while working, whereas ""Create Local Brushes from Draft"" is something you to do move a draft into a .blend file that is part of an asset library. It may be more clear to have more distinct user interfaces for those. * The Brush Info panel could have operators "Duplicate", "Remove", "Apply Changes". No draft in the name needed. * In the Asset Browser you can have a Draft library, and an operator to move selected brushes from the draft into the current .Blend file. I also suggest "move" rather than "duplicate" since that's what I understand the intended workflow to be. If someone wants to have a distinct brush in their asset .blend they can duplicate it first in the draft library.
Member

Here's my take on making this less confusing.

First of all we need to clearly separate the actions that are meant for "using" and casually "drafting" brushes from "authoring" assets.
Buttons in the sidebar should be undoable or non-destructive and typically result in a new or saved Draft.

Additional operators for applying drafts, deleting assets and creating new assets can potentially be grayed out and cannot be undone.
So they can be grouped and less exposed.

Here's a crude mockup:
asset_UI_5.png

The pink operators relate to any operation that results in a Draft or handle session overrides.
"Save" and "Revert" relate to the session overrides.
The rest is to edit or create a Draft.

Blue arrows are authoring specific edits that are likely grayed out if not inside the asset library .blend.
These operators are not directly exposed (as popover and collapsed tab) and should also be accessible in the asset browser to make batch edits on all selected assets.

Notable here are the "Remove" and "Rename" operators.
We should push to include these into the drafting at a later stage even though they are likely technically challenging.
"Remove" would always mark a draft or asset for deletion. That way it will be hidden from the asset shelf and put into a "Trash Bin" Catalog/Asset Library.
Once the drafted removal is applied, the asset is deleted for good.

Renaming is vital for drafting and needs to be possible on any brush, even essentials.
That doesn't mean that this change can be applied to an asset.
But putting a different name on top of the original asset and applying that change later is important functionality.

After some drafting, there will be many changes to apply, discard or deletions to approve.
This can be highlighted in the asset browser and changes can be applied on all selected assets.
asset_UI_6.png

Here's my take on making this less confusing. First of all we need to clearly separate the actions that are meant for "using" and casually "drafting" brushes from "authoring" assets. Buttons in the sidebar should be undoable or non-destructive and typically result in a new or saved Draft. Additional operators for applying drafts, deleting assets and creating new assets can potentially be grayed out and cannot be undone. So they can be grouped and less exposed. Here's a crude mockup: ![asset_UI_5.png](/attachments/46cb86da-378c-49cd-820c-9e9602de26a3) The pink operators relate to any operation that results in a Draft or handle session overrides. "Save" and "Revert" relate to the session overrides. The rest is to edit or create a Draft. Blue arrows are authoring specific edits that are likely grayed out if not inside the asset library .blend. These operators are not directly exposed (as popover and collapsed tab) and should also be accessible in the asset browser to make batch edits on all selected assets. Notable here are the "Remove" and "Rename" operators. We should push to include these into the drafting at a later stage even though they are likely technically challenging. "Remove" would always mark a draft or asset for deletion. That way it will be hidden from the asset shelf and put into a "Trash Bin" Catalog/Asset Library. Once the drafted removal is applied, the asset is deleted for good. Renaming is vital for drafting and needs to be possible on any brush, even essentials. That doesn't mean that this change can be applied to an asset. But putting a different name on top of the original asset and applying that change later is important functionality. After some drafting, there will be many changes to apply, discard or deletions to approve. This can be highlighted in the asset browser and changes can be applied on all selected assets. ![asset_UI_6.png](/attachments/58faa05e-c364-4ffc-a43a-f3c58efbeba0)

I understand why this kind of draft (or direct editing of assets in other .blend files) is useful. But is that really the plan, to record a set of changes to assets that can then be applied?

That's not what I got from the previous design docs, and probably not accounted for in the implementation? The draft library as I understand it is just a set of isolated assets with no explicit relation to other assets.

I understand why this kind of draft (or direct editing of assets in other .blend files) is useful. But is that really the plan, to record a set of changes to assets that can then be applied? That's not what I got from the previous design docs, and probably not accounted for in the implementation? The draft library as I understand it is just a set of isolated assets with no explicit relation to other assets.
Member

The use of Drafts is overall to allow brush changes to be saved (draft overrides) while outside of the original asset library .blend.
New brushes that are duplicated from existing assets are also part of drafts.

This makes it possible to freely edit and create external assets (brushes in this case) while respecting the rule of having the original external assets as read-only.

The step of applying the drafts on assets (and making the changes permanent) will then often happen late, in bulk and only when users intend to share or copy their asset library.

The use of Drafts is overall to allow brush changes to be saved (draft overrides) while outside of the original asset library .blend. New brushes that are duplicated from existing assets are also part of drafts. This makes it possible to freely edit and create external assets (brushes in this case) while respecting the rule of having the original external assets as read-only. The step of applying the drafts on assets (and making the changes permanent) will then often happen late, in bulk and only when users intend to share or copy their asset library.
Member
#116338
Blender Bot added the
Status
Archived
label 2024-01-17 20:00:47 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No Assignees
5 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#106898
No description provided.