Where to put "Mark as Asset" #90045

Closed
opened 2021-07-22 13:06:07 +02:00 by Julian Eisel · 6 comments
Member

Do we want it to be just in the Outliner and in the material slots context menu? Users seem to expect it in the 3D View context menu. If we add this we should probably also add it to all kinds of context menus in other editors.

Do we want it to be just in the Outliner and in the material slots context menu? Users seem to expect it in the 3D View context menu. If we add this we should probably also add it to all kinds of context menus in other editors.
Author
Member

Added subscriber: @JulianEisel

Added subscriber: @JulianEisel

Added subscriber: @antoniov

Added subscriber: @antoniov

In Grease Pencil I have added in Context menu, but it's different because only can work in Edit Mode for a group of strokes.

EDIT: Really, in GP is "Create Asset" because you are not "marking"...you are adding a new asset base on part of the existing data. I have also an option to create several assets at time with the same data (Create Asset for All Layers in separated Assets)

In Grease Pencil I have added in Context menu, but it's different because only can work in Edit Mode for a group of strokes. EDIT: Really, in GP is "Create Asset" because you are not "marking"...you are adding a new asset base on part of the existing data. I have also an option to create several assets at time with the same data (Create Asset for All Layers in separated Assets)
Contributor

Added subscriber: @AndresStephens

Added subscriber: @AndresStephens
Contributor

Suggested expected UX per editor, which can be divided into two levels of UX, the intuitive and the granular:

The intuitive UX:

3D View to/From Asset Browswer

  1. Drag to 3D View add to scene
  2. Drag from 3D view to Asset Library to mark to library. (vice versa)

Outliner to/From Asset Browser

  1. Drag to Outliner to add to scene or object
  2. Drag from Outliner to Asset Browser to mark to library.

From/To Property Editer, material example

  1. Drag from Asset Browser to Material slot to add to material slot
  2. Drag from Material slot to Asset Browser to mark to library.

From/ NLA

  1. Drag from Asset Browser to NLA slot to add animclip to tracks
  2. Drag from NLA an animclip to Asset Browser to mark to library.

TLDR, basically, if something exists anywhere, you can somehow drag it (and/or hold a key modifier) to the browser and it will add and show immediately.

The granular UX:

  1. Right click context menu from any editor on any data block or list that manages data blocks to add to library.
  2. A top level global "smart button" that can add the relevant selected and active asset directly into the Asset Browser from a context aware button directly in the editor header or in relevant datablock list areas (material slots, node group slots, etc).
  3. A granular context sensitive wizard consistent cross-editor method to add multiple or selected types of datablocks to library intuitively (click and drag asset to library to mark it + choose what is added, click on an asset to select and mark it + choose what is added from it). This is needed to store blocks of data (scenes or collections, or materials with nodegroups and textures) or granular blocks of data (textures, node groups, mesh data, single objets, individual textures, etc).

The current UX issues

Current functionality:

  1. Right Click on a datablock icon to get the context menu to add. Not evident everywhere.
  2. Right click then navigate to a sub menu in the Outliner and mark from there. (or use rightclick + M key or something similar, chain of learnt commands)

For 3D View editor, there is no method to mark assets. From the Property Editor it's not consistent nor clear to mark assets presented in the Property Editor (though you can). From the node editor there is no GUI that implicates that the node group could be marked, or that a material could be marked (unless you already know of the icon right click method)

For the Node Editors, you can't mark assets in the canvas, in the 3D View, you can't mark from the canvas. From the material editor, there is no method to mark the materials or nodegroups from the canvas unless you go to the outliner, a disconnect editor from the file browser.

Also, you can't even use the Asset Browser to mark assets to itself....

Ultimately the UX has no intuitive system where you can just use any editor that manages data blocks (all editors) to then directly click or drag on any data block (object, VSE strip, group nodes, collections, textures, image nodes, mesh data, mesh material in a slot, etc) to then move or add it to the library.

The current UX is this:

  1. Know data block exists in the editor (any that has data blocks)
  2. Know the browser exists
  3. Go to a third editor (outliner) to find a disconnect data block (pre-knowing is required).
  4. Mark data block from outliner
  5. Review if the data block is marked as an asset in the browser.

It should be this:

  1. Know the data block exists
  2. Know the browser exists
  3. Mark/drag the datablock from any editor to Asset Browser
  4. See the data block is marked as an asset in the browser.

It saves 20% of the workflow and is more discoverable intuitively, and with optional granularity from the outliner.

UX Goals

1. Efficient Access in the GUI from everywhere where relevant: A mouse action with least amount of zigzag and clicks to add the asset (1 click directly on asset in any editor, open menu, 1 straight line to entry, 1 click to confirmt; or ALT/SHIFT/CTRL + 1 MBpress on asset, drag to browser in 1 straight light, release to confirm)
2. Visual feedback: when the asset is marked into the browser it should flash the user, so they don't have to review all the time, a notice or popup, an icon jiggle or highlight on the recently added item, or jump and/or highlight to item when added.
3. Discoverability: randomly clicking to get and context aware menu on data blocks in all editors anywhere should allow to make the connection to the asset browser, or allow to intuitively move them from the GUI to the Browser without needing to discover the floating menu.
4. Consistency Make sure that regardless of the asset and it's representation, that the method to add them are all very similar.
5. Optional Granularity If the asset is an object that also contains mesh data, is in a parent collection, or has materials - the option should be able to allow the user to choose what to mark from the top level, or to just mark all, or mark as an entire collection - with a little wizard (Repeat Last Menu) dialogue.

Drag and Drop always is intuitive. But if we can't get cross-editor dragging and dropping to mark, then having some top level access (contextual add button in editor header to add what is active selected from any editor the button is used - and optionally set by hotkey) or a single level context menu contextually sensitive to any datablock anywhere will help. For the 3D View, which has top level items like instanced collections, objects that contain modifier stacks, mesh data, materials and textures in materials - this would need some kind of context aware granular control.

Alternative granular and intuitive system: keep the marking UX all in one editor.

The blender file view of the Outliner (where you mark from) could also be shown in the Asset Browser "Current File" view, listing all potential data blocks for the library, and a toggle can show/hide "All Datablocks" where you can then highlight and tag whatever you want in one click.

  1. Toggle show all datablocks in Current File (generates thumbnails of everything in categories, like the Blender File view list in outliner).
  2. Select what you want to mark directly in the one editor, the Asset Browser
  3. Mark selected with a single top-level button
  4. Toggle to hide all.

This will minimize the multi-editor workflow to use the asset browser and disconnect between all editors - and there wouldn't need to have hard engineering to be able to drag datablocks across editors and re-map how the right click context menu would work in all the editors and method to right click on data blocks - which could be a consistency nightmare.

This will also keep the workflow consistent with understanding how datablock management works without needing to make a connection between two unique editors. The outliner is not the asset browser, it should NOT be the go to for the Asset Browser UX, which is disconnect - unless you want granularity like the Blender File view.

Other alternatives:
OR you can provide all systems to hit the UX targets: Context Menus in all editors with data (not just outliner), Drag and Drop from any editor/list, and "Show All Data Blocks to mark from Asset Browser".

AND/OR you can make the selected data block context before adding, a GUI system within the Property Shelves panel that will update to active/selected and generate thumbnail and asset browser information so then (no matter the editor) the user can see what they can optionally and contextually add without needing the browser open or focus in outliner - relevant in animation editors, node editors and 3D View - like a "highlight current" + "fill info in the panel" + "Optionally mark what is selected with the properties?" type of UX. So the contextual GUI wizard is top level relevant to the editor.

  1. Select a node group in the Node Editor

  2. The tab and panel for the asset browser add panel highlights the nodegroup.

  3. Fill in details: It can assign custom thumbnail, tags, description

  4. Press a button "Mark as Asset" in the panel. This will add selected nodegroup to the browser from the panel, and the button could optionally be a hotkey. This panel updates based on selection.

  5. Select object in 3D View editor

  6. The tab and panel for the asset browser add panel highlights the object.

  7. Fill in details: It can assign custom thumbnail or press button to refresh, add tags, description

  8. You can toggle if it's top level (add as collection), or lower level (add textures, materials, mesh data).

  9. Press a button "Mark as Asset" in the panel. This will add selected 3D asset to the browser from the panel, and the button could optionally be a hotkey. This panel updates based on selection (stored datablock info).

  10. Select material in Node Editor (any other node that isn't a data block, ei Node Group, Image Texture)

  11. The tab and panel for the asset browser add panel highlights the material.

  12. Fill in details: It can assign custom thumbnail, tags, description, generate custom thumbnail

  13. Press a button "Mark as Asset" in the panel. This will add selected nodegroup to the browser from the panel, and the button could optionally be a hotkey. This panel updates based on selection.

Summery

Basically, make it intuitive and still maintain granularity. Make it top-level discoverable and easy to use (mouse clicks anywhere on a datablock, etc). Try keep it in the editors or where data blocks are relevant, don't sectorize it only to Outliner.

Suggested expected UX per editor, which can be divided into two levels of UX, the intuitive and the granular: ### The intuitive UX: **3D View to/From Asset Browswer** 1. Drag to 3D View add to scene 2. Drag from 3D view to Asset Library to mark to library. (vice versa) **Outliner to/From Asset Browser** 1. Drag to Outliner to add to scene or object 2. Drag from Outliner to Asset Browser to mark to library. **From/To Property Editer, material example** 1. Drag from Asset Browser to Material slot to add to material slot 2. Drag from Material slot to Asset Browser to mark to library. **From/ NLA** 1. Drag from Asset Browser to NLA slot to add animclip to tracks 2. Drag from NLA an animclip to Asset Browser to mark to library. TLDR, basically, if something exists anywhere, you can somehow drag it (and/or hold a key modifier) to the browser and it will add and show immediately. ### The granular UX: 1. Right click context menu from any editor on any data block or list that manages data blocks to add to library. 2. A top level global "smart button" that can add the relevant selected and active asset directly into the Asset Browser from a context aware button directly in the editor header or in relevant datablock list areas (material slots, node group slots, etc). 3. A granular context sensitive wizard consistent cross-editor method to add multiple or selected types of datablocks to library intuitively (click and drag asset to library to mark it + choose what is added, click on an asset to select and mark it + choose what is added from it). This is needed to store blocks of data (scenes or collections, or materials with nodegroups and textures) or granular blocks of data (textures, node groups, mesh data, single objets, individual textures, etc). **The current UX issues** **Current functionality:** 1. Right Click on a datablock icon to get the context menu to add. Not evident everywhere. 2. Right click then navigate to a sub menu in the Outliner and mark from there. (or use rightclick + M key or something similar, chain of learnt commands) For 3D View editor, there is no method to mark assets. From the Property Editor it's not consistent nor clear to mark assets presented in the Property Editor (though you can). From the node editor there is no GUI that implicates that the node group could be marked, or that a material could be marked (unless you already know of the icon right click method) For the Node Editors, you can't mark assets in the canvas, in the 3D View, you can't mark from the canvas. From the material editor, there is no method to mark the materials or nodegroups from the canvas unless you go to the outliner, a disconnect editor from the file browser. Also, you can't even use the Asset Browser to mark assets to itself.... Ultimately the UX has no intuitive system where you can just use any editor that manages data blocks (all editors) to then directly click or drag on any data block (object, VSE strip, group nodes, collections, textures, image nodes, mesh data, mesh material in a slot, etc) to then move or add it to the library. The current UX is this: 1. Know data block exists in the editor (any that has data blocks) 2. Know the browser exists 3. Go to a third editor (outliner) to find a disconnect data block (pre-knowing is required). 4. Mark data block from outliner 5. Review if the data block is marked as an asset in the browser. It should be this: 1. Know the data block exists 2. Know the browser exists 3. Mark/drag the datablock from any editor to Asset Browser 4. See the data block is marked as an asset in the browser. It saves 20% of the workflow and is more discoverable intuitively, and with optional granularity from the outliner. **UX Goals** **1. Efficient Access in the GUI from everywhere where relevant:** A mouse action with least amount of zigzag and clicks to add the asset (1 click directly on asset in any editor, open menu, 1 straight line to entry, 1 click to confirmt; or ALT/SHIFT/CTRL + 1 MBpress on asset, drag to browser in 1 straight light, release to confirm) **2. Visual feedback:** when the asset is marked into the browser it should flash the user, so they don't have to review all the time, a notice or popup, an icon jiggle or highlight on the recently added item, or jump and/or highlight to item when added. **3. Discoverability:** randomly clicking to get and context aware menu on data blocks in all editors anywhere should allow to make the connection to the asset browser, or allow to intuitively move them from the GUI to the Browser without needing to discover the floating menu. **4. Consistency** Make sure that regardless of the asset and it's representation, that the method to add them are all very similar. **5. Optional Granularity** If the asset is an object that also contains mesh data, is in a parent collection, or has materials - the option should be able to allow the user to choose what to mark from the top level, or to just mark all, or mark as an entire collection - with a little wizard (Repeat Last Menu) dialogue. Drag and Drop always is intuitive. But if we can't get cross-editor dragging and dropping to mark, then having some top level access (contextual add button in editor header to add what is active selected from any editor the button is used - and optionally set by hotkey) or a single level context menu contextually sensitive to any datablock anywhere will help. For the 3D View, which has top level items like instanced collections, objects that contain modifier stacks, mesh data, materials and textures in materials - this would need some kind of context aware granular control. ## Alternative granular and intuitive system: keep the marking UX all in one editor. The blender file view of the Outliner (where you mark from) could also be shown in the Asset Browser "Current File" view, listing all potential data blocks for the library, and a toggle can show/hide "All Datablocks" where you can then highlight and tag whatever you want in one click. 1. Toggle show all datablocks in Current File (generates thumbnails of everything in categories, like the Blender File view list in outliner). 2. Select what you want to mark directly in the one editor, the Asset Browser 3. Mark selected with a single top-level button 4. Toggle to hide all. This will minimize the multi-editor workflow to use the asset browser and disconnect between all editors - and there wouldn't need to have hard engineering to be able to drag datablocks across editors and re-map how the right click context menu would work in all the editors and method to right click on data blocks - which could be a consistency nightmare. This will also keep the workflow consistent with understanding how datablock management works without needing to make a connection between two unique editors. The outliner is not the asset browser, it should NOT be the go to for the Asset Browser UX, which is disconnect - unless you want granularity like the Blender File view. **Other alternatives:** OR you can provide all systems to hit the UX targets: Context Menus in all editors with data (not just outliner), Drag and Drop from any editor/list, and "Show All Data Blocks to mark from Asset Browser". AND/OR you can make the selected data block context before adding, a GUI system within the Property Shelves panel that will update to active/selected and generate thumbnail and asset browser information so then (no matter the editor) the user can see what they can optionally and contextually add without needing the browser open or focus in outliner - relevant in animation editors, node editors and 3D View - like a "highlight current" + "fill info in the panel" + "Optionally mark what is selected with the properties?" type of UX. So the contextual GUI wizard is top level relevant to the editor. 1. Select a node group in the Node Editor 2. The tab and panel for the asset browser add panel highlights the nodegroup. 3. Fill in details: It can assign custom thumbnail, tags, description 4. Press a button "Mark as Asset" in the panel. This will add selected nodegroup to the browser from the panel, and the button could optionally be a hotkey. This panel updates based on selection. 1. Select object in 3D View editor 2. The tab and panel for the asset browser add panel highlights the object. 3. Fill in details: It can assign custom thumbnail or press button to refresh, add tags, description 4. You can toggle if it's top level (add as collection), or lower level (add textures, materials, mesh data). 4. Press a button "Mark as Asset" in the panel. This will add selected 3D asset to the browser from the panel, and the button could optionally be a hotkey. This panel updates based on selection (stored datablock info). 1. Select material in Node Editor (any other node that isn't a data block, ei Node Group, Image Texture) 2. The tab and panel for the asset browser add panel highlights the material. 3. Fill in details: It can assign custom thumbnail, tags, description, generate custom thumbnail 4. Press a button "Mark as Asset" in the panel. This will add selected nodegroup to the browser from the panel, and the button could optionally be a hotkey. This panel updates based on selection. ### Summery Basically, make it intuitive and still maintain granularity. Make it top-level discoverable and easy to use (mouse clicks anywhere on a datablock, etc). Try keep it in the editors or where data blocks are relevant, don't sectorize it only to Outliner.

Changed status from 'Needs Triage' to: 'Archived'

Changed status from 'Needs Triage' to: 'Archived'
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 project
No Assignees
4 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#90045
No description provided.