Page MenuHome

Alt-Drag (multi-editing) fails for HSV color buttons
Confirmed, LowPublicTO DO

Description

System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce RTX 2070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 441.28

Blender Version
Broken: version: 2.83 (sub 1), branch: master, commit date: 2020-01-18 19:00, hash: rBc2e62c129235
Seems to be a long-lasting issue, as even Blender 2.81a shows the same behaviour.

Short description of error
Pretty much the title.
Trying to assign an object color through the Object Properties tab (Viewport Display > Color) to multiple Objects doesn't work, neither by picking the Color on the Color Wheel, nor by moving the HSV sliders, while Alt-Clicking. Only the last selected Object will update.
However:

  • If sliders are set to RGB, editing them will correctly affect all selected Objects.
  • The Alpha slider, which is shared between all three Color Wheel modes, works as intended and affects all selected Objects.

From the Info console I've noticed a tuple is set everytime a Color is picked from the Color Wheel, but doesn't show anything when using the HSV Sliders.
Moving the the RGB and Alpha sliders correctly sets each Object's property to the selected value.

Exact steps for others to reproduce the error

  • Open Blender, default startup file
  • Add>Mesh - Select any kind of Mesh Object (have at least 2 items in the scene, or more)
  • Go to the Shading Panel in the top right and Select "Object" down the Color section, to see Object Colors in the viewport
  • Press A to select All Objects, or alternatively, select them one by one by Shift+Right Click
  • Go to Object Properties > Viewport Display > Color
  • Hold ALT either while clicking on the Color Wheel or while moving the HSV Sliders. Only the last selected Object will update.
  • While holding ALT, try moving the Alpha slider. All selected Object will update.
  • In the Color Wheel, select the RGB tab. While holding ALT, try moving the R, G or B slider. All selected Object will update.

Here's a quick demonstration:

And the Info panel readings:

Related Objects

Event Timeline

Campbell Barton (campbellbarton) changed the task status from Needs Triage to Confirmed.Tue, Jan 21, 2:25 PM
Campbell Barton (campbellbarton) triaged this task as Low priority.
Campbell Barton (campbellbarton) changed the subtype of this task from "Report" to "To Do".

Alt-Drag uses button properties to change the same properties of other objects, however HSV buttons adjust the color indirectly (the buttons themselves are not properties).

Marking this as a TODO.

Campbell Barton (campbellbarton) renamed this task from Alt+Click on Viewport Display > Color doesn't apply to all Selected Objects - except for RGB and Alpha (transparency) sliders to Alt-Drag (multi-editing) fails for HSV color buttons.Tue, Jan 21, 2:26 PM

Would it be too disruptive to add an extra property layer like

bpy.data.objects["Cube"].color.hsv[0] = 1

on top of the already existing .color[ ] property for compatibility reasons?

I don't think there's currently a supported way or function to convert HSV into RGB values as Blender does it under the hood.
Making it more explicit would help for operations that make use of the HSV values which are more intuitive (e.g. desaturating one or more objects):

bpy.data.objects["Cube"].color.hsv[1] -= 0.2

but I don't really know about the implications of it, so it's just an innocent suggestion.

It's not practical to add sub-properties to arrays, and while adding a second HSV property would work - it would need to be applied everywhere.

I'd prefer to see if we can use the color button that opens this the selector and use it for updating all others.