Page MenuHome

Drivers not updating in real time in the viewport when using world or local space for variable on Bones
Closed, DuplicatePublic

Description

System Information
MacOSX

Blender Version
Broken: Blender 2.69

Short description
I hope, this bug doesn't already exist but didn't find something similar in the bug tracker.

Drivers seem to work only when the variable is set to the transform space on any transform channel of a BONE (seems to work well with objects like empty for example).
If the space is set to world or local, I experienced a lag in the viewport when manipulating the driver bone.

Exact steps for others to reproduce the error
1- create an armature (bone 1)
2- duplicate the bone (bone 2), and set a copy location constraint with local or world space.
3- duplicate bone1 once more (create bone3) and add a driver (average value) to one of its channel (x location for example). Set the variable to :

  • transform channel
  • ob/bone : Armature, bone2
  • type : X location
  • space : world (or local both give the same result)

Now move bone1 in x direction, bone2 and bone3 follow but when using ESC or right click, bone1 and bone2 go back to previous location but bone3 stay in place. Only another action will make it (bone3) goes back to the right location.

The behavior seems to be ok with objects other than bones though (same test with 3 empties worked).


Thank you,
Stan

Details

Type
To Do

Event Timeline

Stanislas Paillereau (stanp) created this task.
Stanislas Paillereau (stanp) raised the priority of this task from to Needs Triage by Developer.
Joshua Leung (aligorith) changed Type from Bug to To Do.
Joshua Leung (aligorith) closed this task as a duplicate.
Joshua Leung (aligorith) triaged this task as Confirmed, Medium priority.

This is a known limitation of the current dependency graph (depsgraph).

Currently, the depsgraph can only represent and schedule up relationships on datablock level. Drivers are actually evaluated on the object level, and all in one go before any other data on the object gets evaluated. As a result, for drivers which operate on bones within the same armature that they read values from, the drivers are only able to see the result of the previous time that the pose was evaluated. In other words, you'll find a bit of lag in the updates.

This can only be fixed when we have a new depsgraph in place. Work is underway to set this up, but for now it isn't quite ready for release yet.

Joshua Leung (aligorith) raised the priority of this task from Confirmed, Medium to Needs Triage by Developer.
Joshua Leung (aligorith) triaged this task as Confirmed, Medium priority.

Thx algorith for the clarification.
I'll keep a patient eye on it!