Support for changing all selected items at once #44666
Labels
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
11 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#44666
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This is a design task for handling the UI side of this patch: https://developer.blender.org/D1286
Resources:
"The Evolution of Blenders User Interface" by William Reynish http://download.blender.org/documentation/bc2008/evolution_of_blenders_ui.pdf (page 20 deals with this topic)
Changed status to: 'Open'
Added subscriber: @PawelLyczkowski-1
#44695 was marked as duplicate of this issue
#37902 was marked as duplicate of this issue
Added subscriber: @JulianEisel
What William Reynish wrote about this here is still up to date I think.
So, to summarize: "Change for all selected" should be (eventually) the default action when changing data values. This way you control the scope of objects for which the values are changed is by selection, which is quite powerful at this point (selecting by type, linked, grouped, in outliner, in 3d view etc.). So to change for one object, you select one object. To change for a range, you select a range of objects.
It can't, I guess, work like this for things like the material slots, light nodes, armature layers, bone groups etc. - but sticking to the "set for active" behavior for these sections would make things inconsistent and confusing.
A way to keep consistency, and to keep things simple, would be to hide them, and display them only when a single object is selected.
Added subscriber: @bliblubli
We agree with nearly everything you said. For materials, and other datas specific to one object or it's data, why not simply concatenate the lists ?
obj_1 has material1 and material2
obj_2 has material1 and material3
obj_3 has material 3 and material5
the list of materials shows materials 1,2,3 and 5. If you change one of them, only the objects with those materials get affected. It's already the case if they are selected or not anyway.
BMesh API support editing multiple objects at once. When Blender supports it in the future, assigning materials to faces with multiple objects selected will be even easier then.
The material slots are unnamed though. So when there are more that one empty, when more than one object is selected, you have no way of knowing which is which.
then write the object name in () for those empty slots:
"empty (obj_X)"
"empty (obj_y)"
...
For the case where a new slot is created with multiple objects selected, the user should be asked directly which material should be used to populate it (new or existing one) to allow quick configuration.
Added subscriber: @liquidape
I wrote this to the email thread, but I'll post here for archival purposes and so it does not get lost in the mix:
Just brainstorming here, but this sounds like the perfect project for the new widget system. Maybe when multiple objects are going to be modified, draw some sort of star widget on screen with little rays pointing to each object that is going to be modified.
Another idea would be to put a glowing outline around objects that are going to be modified - something like blizzard games do: http://i.imgur.com/8RvpyeQ.png
A mockup of how things could work with multi-edit regarding materials.
When you have object or objects with no materials assigned to no material slots, you get fig.1. Clicking on New adds the material to all available material slots.
When you have objects selected with more than one material selected to it's material slots, you get fig.2 - a scrollable list of those materials, with all the goodies that lists have (sorting).
Selecting one of the materials in the list gives you fig.3, where you can replace the material on all of the material slots that it's assigned to, or unassign it. And of course edit it.
Next to the list is an menu button, as currently, depicted in fig.4, with options to unassign all materials from selection (meaning from all slots), replace all materials with a single one, or replace with a newly created one.
Material browser.
Fig.5 is the material browser. Shown are all materials, regardless of selection. The icons at the bottom are for changing the view from Grid to List. Materials can be dragged and dropped from here. When a material is selected, you get fig.6. You can edit it there, and by clicking on the menu button choose to Assign it to Selected, Reset the material to Default, Unassign from all Objects, or Delete (true delete, not unassign). Replace with Material replaces the material with the chosen material in all slots it resides in.
Same commands are also available when RMB clicking on a material (It gets selected to show what will be affected), or a multiple selected materials. When multiple materials are selected, no properties are displayed below, but actions described can be
Not sure about the Assigned and All Materials tabs. These could be 2 main tabs, just Material as currently, and Material Browser.
Any info on why this would work/not work?
Added subscriber: @michaelknubben
A quote from @michaelknubben about some advanced functionality for this feature.
Added subscribers: @mont29, @Januz
+1 on William Reynish words!
Relative
I think rather than a modifier, we could use some form of notation. Like the # for drivers.
Someting like '+= 2' or '-=5'. That way you could also have /= and *=. This is Python syntax too, so it can expose users to some scripting concepts without having to touch any code.
I'm not sure this is in the scope of multi edit though, it's something that shold be added to numeric inputs (whether they are working in multi or not).
Materials
The materials mockup looks cool but rather than in tabs the browser, it could be a "materials" mode in the outliner. That way all browsing and managing can happen in one place.
Or maybe a "Linked Data" mode that shows all datablocks linked to the selected objects (materials, actions, etc.). Same options and settings you mention in the mocks.
Might want to talk with @mont29 too since it's getting into asset browser territory.
Added subscriber: @Lapineige
Added subscriber: @DuarteRamos
Added subscriber: @dairin0d
I and Ivan Santic have been involved with addons that deal with multiple-object value editing. Perhaps our results can be of some help too?
http://wiki.blender.org/index.php/User:Dairin0d/BatchIdeas
http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/3D_interaction/BatchTransforms
http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/3D_interaction/BatchOperations
Hope we're not too late to the discussion.
Added subscriber: @BrendonMurphy
hi, after some discussion with Severin in irc, I have some suggestions on "apply to all".
With regard to Materials, we already have the option to apply to all in the materials_utils addon in release.
It would not be hard to move this function to the Materials Specials menu. This would fit in well with the ui & provide easy access to "apply active material to all selected objects". It could also be an option here to do some clean up on materials_utils addon & move it to the specials menu, enabled by default.
With regard to Modifiers, I often use "apply active modifier to all selected objects" as there's no 'Specials' for modifiers, it's easy to add options to the modifier panel.
Here's an image using addon code showing materials specials & modifier specials.
As for "to all selected" becoming a default action, personally I think this would be more difficult for users, I always want to add changes to the selected/active object, I only sometimes want to make these changes to all selected objects.
I'm not sure on the multi edit materials, I have extensive materials libs on blendswap, & rarely need to make batch changes, I can see use for it. maybe again, an operator in the materials specials with a pop up for multi select/batch name change would be an answer here.
Thanks.
Keep up the good work.
hi again,
Another option I came across would be to have a batch process menu embedded in the 'W' key specials menu's.
This also could work well as a quick way to access batch functions.
Thanks & best luck. :)
Added subscribers: @zeauro, @ideasman42
Copying content of above merged task:
Original report by @zeauro:
Comment from @ideasman42:
There's also a BA thread for this (link ).
Added subscribers: @billrey, @eugenio_jr, @Tene, @BartekMoniewski, @JonathanWilliamson, @brecht, @koilz, @rulkens
Merged in a pretty similar task. This is planned to be handled as part of the 2.8 project.
Closed as duplicate of #54987