Page MenuHome

adding driver on bone "hide" or "hide_select" does'nt display purple color on outliner / can still be changed
Closed, ArchivedPublic

Description

System Information
Same on windows 7 / linux ubuntu

Blender Version
Broken: 2.79

Short description of error
Adding driver on bone "hide" or "hide_select" (by hand or API) does'nt display purple color on outliner, and value can still be changed (when for other property driven, there is a warning message displayed in header when you try to change a property where there is a driver)

Exact steps for others to reproduce the error

  • Add an armature, go to pose mode
  • On bone properties, Display panel, add a driver on "hide" property
  • Add a driver with API, on hide_select property : bpy.context.object.data.bones["Bone"].driver_add('hide_select')
  • On outliner : no purple on corresponding properties (eye and arrow)
  • On display panel, for "hide" property, and on outliner for both --> You can click to switch value (for other driven value, there is a warning "can't edit driven properties"

Event Timeline

ronan ducluzeau (zeauro) lowered the priority of this task from 90 to 50.Oct 16 2017, 12:51 PM

I confirm that outliner is not refreshing correctly for these properties that don't handle driver creation from outliner.

Drivers are working. If frame is changed, property is updated according to driver.
Outliner will show a closed eye if driver is hiding bone but no purple color.
But as long as there is no refresh, user may can modify these properties and then don't understand why change made do not persist.

Really confusing.

Joshua Leung (aligorith) changed the task status from Unknown Status to Archived.Oct 17 2017, 6:37 AM
Joshua Leung (aligorith) claimed this task.

Hmm... this is not really a bug, though I do agree the behaviour here is a bit confusing.

There are several different things going on here:

  1. The "Restrict" icons in the Outliner for Bones still use the old-school widgets. As such, they don't have any RNA pointers attached, and therefore cannot show driver/keyframe states
  2. The "hide" toggle in the Display tab is sourced from Armature.bone and not Pose.bone. Therefore, any keyframes/drivers here end up going on to the Armature and not the Object. Thus, even if #1 worked, this still wouldn't work.

Closing as a todo.