Modifiers: Affect all selected objects when holding alt #120695

Merged
Hans Goudey merged 8 commits from HooglyBoogly/blender:modifier-multi-object-alt into main 2024-04-18 17:41:04 +02:00
Member

Support holding alt while invoking, add, apply, and remove
modifier operators in the property editor to affect all selected
editable objects instead of just the active object.

Though the alt key is not that visible, it's consistent with the
existing multi-object property editing shortcut. If/when multi-
object editing is every made the default, the alt key could
be reversed here too.

Changes as part of #120230.

Support holding alt while invoking, add, apply, and remove modifier operators in the property editor to affect all selected editable objects instead of just the active object. Though the alt key is not that visible, it's consistent with the existing multi-object property editing shortcut. If/when multi- object editing is every made the default, the alt key could be reversed here too. Changes as part of #120230.
Hans Goudey added 1 commit 2024-04-16 14:00:17 +02:00
buildbot/vexp-code-patch-lint Build done. Details
buildbot/vexp-code-patch-linux-x86_64 Build done. Details
buildbot/vexp-code-patch-darwin-x86_64 Build done. Details
buildbot/vexp-code-patch-darwin-arm64 Build done. Details
buildbot/vexp-code-patch-windows-amd64 Build done. Details
buildbot/vexp-code-patch-coordinator Build done. Details
4dc6ebe212
Modifiers: Affect all selected objects when holding alt
Author
Member

@blender-bot build

@blender-bot build
Hans Goudey requested review from Pablo Vazquez 2024-04-16 14:50:38 +02:00
Member

Add, Apply, and Remove seem to work well!

It just feels a bit arbitrary that only those options work. Any technical limitation that's stopping us from adding support for the few remaining options? Especially Move First/Last can be super useful.

modifier options that work on multiple objects

Add, Apply, and Remove seem to work well! It just feels a bit arbitrary that only those options work. Any technical limitation that's stopping us from adding support for the few remaining options? Especially `Move First/Last` can be super useful. ![modifier options that work on multiple objects](/attachments/caed8eba-1337-4d1f-842c-a04f39cf0de0)
Author
Member

No, nothing technical. "Move to Nodes" is a bit annoying since it's implemented in Python, but I think you're right that it's worth doing.

No, nothing technical. "Move to Nodes" is a bit annoying since it's implemented in Python, but I think you're right that it's worth doing.
Member

I think you're right that it's worth doing.

It'd be great if it can be as part of this. At some point we'd have to add support for it anyway.

Since a few Blender versions ago we can use Alt when editing text fields too. Doesn't get more complete than this :D

> I think you're right that it's worth doing. It'd be great if it can be as part of this. At some point we'd have to add support for it anyway. Since a few Blender versions ago we can use `Alt` when editing text fields too. Doesn't get more complete than this :D <video src="/attachments/5ee21f79-8110-4f12-a3b8-7c67cf8bd576" title="rename_multiple_modifiers.mov" controls></video>
Hans Goudey added 5 commits 2024-04-16 18:02:23 +02:00
First-time contributor

Love to see this getting implemented!

I have some questions regarding the implementation: I assume this works when you have the same kind of modifier on multiple objects, so if for example you have a subdivision modifier on one and a displace modifier on another, holding alt and deleting won't delete both. If that's the case, how does it work when you have the same modifier multiple times on the same object? For example: I select 2 objects, one has a displace and a subsidivision modifer, the other has 2 displace modifiers. If I hold alt and delete the displace modifier on the first, will the 2 displace modifiers on the other one both get deleted? If not, how does it chooses which one?
This could take advantage of the concept of active modifier: currently we can select one modifier to make it active, but maybe this can be expanded to select multiple modifiers, I made this proposal some time ago: https://blender.community/c/rightclickselect/k2jK/

I ask this also because I, but I think many other people, are seeing this implementation as the ground work for then be able to edit the parameters of modifiers on multiple objects, which again I think relies on how this implementation is handled. Thanks!

Love to see this getting implemented! I have some questions regarding the implementation: I assume this works when you have the same kind of modifier on multiple objects, so if for example you have a subdivision modifier on one and a displace modifier on another, holding alt and deleting won't delete both. If that's the case, how does it work when you have the same modifier multiple times on the same object? For example: I select 2 objects, one has a displace and a subsidivision modifer, the other has 2 displace modifiers. If I hold alt and delete the displace modifier on the first, will the 2 displace modifiers on the other one both get deleted? If not, how does it chooses which one? This could take advantage of the concept of active modifier: currently we can select one modifier to make it active, but maybe this can be expanded to select multiple modifiers, I made this proposal some time ago: https://blender.community/c/rightclickselect/k2jK/ I ask this also because I, but I think many other people, are seeing this implementation as the ground work for then be able to edit the parameters of modifiers on multiple objects, which again I think relies on how this implementation is handled. Thanks!
Author
Member

Hi, this is all name-based, just like the existing multi-object editing with modifier values. I'm not sure editing the active modifier on each object sounds more convenient.

Hi, this is all name-based, just like the existing multi-object editing with modifier values. I'm not sure editing the active modifier on each object sounds more convenient.
Member

It works great! It's quite fun to use and opens up new ways of working.

One last thing that I noticed, is that sometimes I want to use Move to First/Last on other objects but they are grayed out because the active object only has 1 modifier.

single modifier

But I know that other objects have multiple modifiers, so I still want to use those functions.

How about: in a similar way that Copy to Selected is only available when there are multiple objects selected, the Move to First/Last operators should also be always available if there are multiple objects selected.

Yes, in some cases moving first/last won't do anything, but that's fine. It's like applying Shade Smooth on objects already smooth, it's better to be able to do it sometimes than not at all.

I think it fits this patch since it's related to multi object editing.

It works great! It's quite fun to use and opens up new ways of working. One last thing that I noticed, is that sometimes I want to use `Move to First/Last` on other objects but they are grayed out because the active object only has 1 modifier. ![single modifier](/attachments/7024018d-0b84-4867-aafb-0f4e058c63ef) But I know that other objects _have_ multiple modifiers, so I still want to use those functions. How about: in a similar way that `Copy to Selected` is only available when there are multiple objects selected, the `Move to First/Last` operators should also be always available if there are multiple objects selected. Yes, in some cases moving first/last won't do anything, but that's fine. It's like applying Shade Smooth on objects already smooth, it's better to be able to do it sometimes than not at all. I think it fits this patch since it's related to multi object editing.
Hans Goudey added 2 commits 2024-04-18 15:03:47 +02:00
Author
Member

Thanks, good point! It was much simpler to just remove the code that disabled the operators. What do you think about that? It seems fine to me, the end result for users should be basically the same anyway.

Thanks, good point! It was much simpler to just remove the code that disabled the operators. What do you think about that? It seems fine to me, the end result for users should be basically the same anyway.
Member

What do you think about that?

I think it's fine. It's pretty obvious at a glance when the modifier we're working on is either first or last, and these operators are not usually accessed in other ways.

> What do you think about that? I think it's fine. It's pretty obvious at a glance when the modifier we're working on is either first or last, and these operators are not usually accessed in other ways.
Pablo Vazquez approved these changes 2024-04-18 16:32:16 +02:00
Hans Goudey merged commit 9a7f4a3b58 into main 2024-04-18 17:41:04 +02:00
Hans Goudey deleted branch modifier-multi-object-alt 2024-04-18 17:41:07 +02:00
Sign in to join this conversation.
No reviewers
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
3 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#120695
No description provided.