Page MenuHome

Implementing Multi Object Properties Editing
Needs RevisionPublic

Authored by Abid Maqbool (cto.abid) on Sun, May 26, 7:01 AM.
Tokens
"Love" token, awarded by amonpaike."Like" token, awarded by harley."Love" token, awarded by Zino."Love" token, awarded by EitanSomething."Love" token, awarded by duarteframos.

Details

Summary

Implement T54987

Link
Implement Multi-Object Properties Editing

Implemented

  • Visually show for properties, which are supported for multiple object at a same time (e.g. when hovering on the property)
  • Alter the Alt Key behavior e.g. now if multiple object are selected, try first for multi editing when no Alt key is pressed and when editing begins with alt only effects Active object

Demo

In the demo you can see:

  • Show property normal when no multi-property editing supported
  • Show visual affordance when property supports multi-editing objects
  • When Alt pressing and executing some event (clicking or dragging) on property, property becomes normal
  • If multi-editing property, without Alt affect all selected objects
  • If using Altonly effect active object

Diff Detail

Repository
rB Blender

Event Timeline

Abid Maqbool (cto.abid) edited the summary of this revision. (Show Details)Sun, May 26, 7:52 AM
William Reynish (billreynish) accepted this revision.EditedSun, May 26, 1:34 PM

Great, this is excellent.

This seems already good enough to include, and makes a big difference for basic manipulation of multiple objects in Blender.

Currently, multi-editing seems to work for objects, bones and Sequencer Strips. But, considering that we have a visual affordance here, it's acceptable that not everything is supported, because you can see what is supported and what isn't.

We should add this to 2.81, at the very least.

Ideas for further possible improvements:

  • We will probably need to expand support for this for other editors, such as for NLA Strips,, Dopesheet keys and Graph Editor points.
  • we could use a better indicator than the blue overlay. One idea I like is using an orange ‘selected’ outline around properties, which reflects the selection outline around objects in the viewport
  • We could choose to show this indication immediately and not just on hover

These things are not blockers, however.

This revision is now accepted and ready to land.Sun, May 26, 1:34 PM

Currently, this still uses the same indication method as before, it just promotes it so you can already see it while hovering:

The blue overlay does seem rather arbitrary though, and not something you would likely guess relates to selections.

Rather than this, the idea is to use outlines, to tie it into the same type of outlines we use for selected objects in the 3D View:

The same indication could be used on hover:

At the very least, we could make the blue color a theme color, so that the we could set a better default here.

@William Reynish (billreynish) : Not to be pedantic but there are lots of different ways these things could be highlighted so I think your example above needs to be a little more explicit. We have items that only support single item, some support multiple but you might choose to edit only single. Which of these do you want highlighted how and when?

To my eye, it is worth considering doing it a bit differently.

With this change we are saying that it is normal to select multiple items and act on all of them at once. Therefore I think it should have no special highlight. not on hover or on editing. As in don't highlight the normal case.

But if you are hovering over an item that supports multiple while holding down ALT I think it should get a border highlight color of active object. And then while editing it could have the color wash now seen, but in orange instead of blue. So only highlight active-only editing when chosen by holding Alt.

@Harley Acheson (harley) we can’t consider multi-object the ‘normal’ case in terms of visual indication, because:

  • it can’t work for everything. Some properties don’t support this, like materials and nodes.
  • when editing a value, it will then change values for many items, which is why it’s important that we communicate this
  • we can only show the value itself for the active item, so it’s important that you know that changes will affect the whole selection

We’ve been over these things in the design doc which has been floating around for about a year.

Brecht Van Lommel (brecht) requested changes to this revision.EditedMon, May 27, 12:08 AM

Personally I don't think this works all that well, it seems quite random that some buttons apply to all selected and some don't. Coloring the buttons is not enough in my opinion. It's super confusing to have a mix of buttons where you can't tell easily if it will apply to one or multiple objects.

I know there's been a design document about this, but I don't think it has been approved by a developer or the UI team as a whole. It's much too early to accept this in any case, it needs more iteration and testing. With this kind of change what seems like a simple first steps always leads to a lot more work.

This revision now requires changes to proceed.Mon, May 27, 12:08 AM

We’ve been over these things in the design doc which has been floating around for about a year.

I’ve seen those docs but have yet to see anything with sufficient depth of detail to be actionable as far as highlighting is concerned. Only lots of “perhaps” do this or that without comprehensive rules or what happens in each situation.

In your previous message above you say to change the blue to outlines that match the 3dview colours, but don’t say which ones when. Change the blue to “selected” orange because it is acting on all selected? So pressing ALT will change it to the slightly redder orange of the “active” colour? That doesn’t seem like enough distinction between those.

So I’m just saying this ALL needs to be thought through and explicitly codified before it is actionable.

@Harley Acheson (harley) I don't see the issue:

Normally, Properties only apply to the active item. The 'selected' indicator indicates that it will apply to all selected items. There's nothing ambiguous.

@Brecht Van Lommel (brecht):

It's super confusing to have a mix of buttons where you can't tell easily if it will apply to one or multiple objects.

Well, that's the point of the visual indicator, so you can easily tell. That's essentially what this patch adds.

It was very much my impression that this approach was approved, which is why the design task is marked as such.

Anyway: I at least consider this a great step forward for basic manipulation of items. It seems to work really well in testing as well, and you can easily tell which items will apply to the whole selection. It's really such a nice thing to be able to select several objects and drag the Location values to offset them, or typing in a value and having it apply to everything.

It's also so much nicer than holding Alt over an item and then hoping it will work, which is the current method.

Improvements can be made to the visual indicator, but it's already a big improvement as it is.

There's nothing ambiguous.

I’m probably just being thick, but still don’t notice these unambiguous rule written down or mocked up for all states.

Normally, Properties only apply to the active item. The 'selected' indicator indicates that it will apply to all selected items.

So you want to highlight (in hover and during editing) everything in “active” color, except when it would affect multiples which would use “selected” color instead? That would result in everything highlighted with very little difference between those states.

I’m probably just being thick, but still don’t notice these unambiguous rule written down or mocked up for all states.

What 'states' are you referring to here? As I can see we have two: Properties that can apply to selection, and properties that only apply to the active item

So you want to highlight (in hover and during editing) everything in “active” color, except when it would affect multiples which would use “selected” color instead? That would result in everything highlighted with very little difference between those states.

No, that was never the plan. The idea was always that we show properties normally, unless you have multiple objects selected and you hover over a property that can affect all the selected items.

There's no need to show a special indicator for only affecting the active item, because that is the default situation.

What 'states' are you referring to here? As I can see we have two: Properties that can apply to selection, and properties that only apply to the active item

While multiple objects are selected there are THREE states to consider.:

  • properties that only act on the active object
  • properties that affect all selected.
  • properties that could affect all selected but you are holding down ALT to change only active

The possible ways to highlight

  • border around the property
  • color over entire property

The times that highlighting can occur:

  • always
  • whenever multiple items are selected
  • on hover
  • while editing

All with the important consideration that the color we use for "active" versus "selected" is not very easy to distinguish.