Driver stops updating dynamically if no/incomplete variable is defined #52656

Closed
opened 2017-09-06 02:08:43 +02:00 by Konstantins Visnevskis · 12 comments

System Information
Win8.1x64, 3x gtx580

Blender Version
2.79t2

Short description of error
When there is no external variables defined, the driver stops updating in the viewport dynamically. Updates only on more global events like frame change.

Exact steps for others to reproduce the error

  • Grab/move the object in z axis. It curves proportionally to elevation via driver controlled modifier.
  • In the selected driver, remove object reference from the defined variable or the variable itself.
  • Grab/move of the object doesn't update modifier effect anymore although the expression is still valid.
    driver3x.blend
**System Information** Win8.1x64, 3x gtx580 **Blender Version** 2.79t2 **Short description of error** When there is no external variables defined, the driver stops updating in the viewport dynamically. Updates only on more global events like frame change. **Exact steps for others to reproduce the error** - Grab/move the object in z axis. It curves proportionally to elevation via driver controlled modifier. - In the selected driver, remove object reference from the defined variable or the variable itself. - Grab/move of the object doesn't update modifier effect anymore although the expression is still valid. [driver3x.blend](https://archive.blender.org/developer/F775133/driver3x.blend)

Changed status to: 'Open'

Changed status to: 'Open'

Added subscriber: @KonstantinsVisnevskis

Added subscriber: @KonstantinsVisnevskis
Member

Added subscriber: @JoshuaLeung

Added subscriber: @JoshuaLeung
Member

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'
Joshua Leung self-assigned this 2017-09-11 09:00:53 +02:00
Member

This only applies for the old depsgraph and not the new depsgraph. Since the old depsgraph will be going away soon in 2.8, I don't think it's best that we just leave things as-is now.

In the meantime, to get this setup working without needing to refer to an external object, I recommend doing the following:

  1. Change the driver variable to use the object itself (i.e. plane.1880)
  2. Change the driver expression to "-A"

TBH, there's really no reason to use the "self" mechanism. I'd recommend avoiding it as much as possible, and using explicit driver variables for each input value your driver depends on. Besides being faster to evaluate, using explicit driver variables makes it easier for Blender to keep track of what your driver needs to use.

This only applies for the old depsgraph and not the new depsgraph. Since the old depsgraph will be going away soon in 2.8, I don't think it's best that we just leave things as-is now. In the meantime, to get this setup working without needing to refer to an external object, I recommend doing the following: 1) Change the driver variable to use the object itself (i.e. plane.1880) 2) Change the driver expression to "-A" TBH, there's really no reason to use the "self" mechanism. I'd recommend avoiding it as much as possible, and using explicit driver variables for each input value your driver depends on. Besides being faster to evaluate, using explicit driver variables makes it easier for Blender to keep track of what your driver needs to use.

Thanks, but the reason of using "self" is the object having many thousands of copies (things like petals of opening flowers etc.). Referring each one to itself is not really possible. If it will be fixed eventually, there's no use wasting time of course.

Thanks, but the reason of using "self" is the object having many thousands of copies (things like petals of opening flowers etc.). Referring each one to itself is not really possible. If it will be fixed eventually, there's no use wasting time of course.

Added subscriber: @AdamJanz

Added subscriber: @AdamJanz

I couldn't figure out why Blender drivers suddenly stopped working without explanation even with Auto Run Python Scripts checked. But I thank God for showing me it was because a no-longer-needed variable had been deleted. Well, now I know that Blender requires at least one variable to be present even if not being referenced for drivers to execute. :-) There definitely should be a default warning of "Must set at least 1 variable for driver to execute" when adding a scripted expression and no variable has been set.

Let's hope these keywords make this ultra-important thread rank higher on Google:

Blender drivers stopped working Blender drivers not working Blender drivers no longer working Auto Run Python enabled, but drivers not working

I couldn't figure out why Blender drivers suddenly stopped working without explanation even with Auto Run Python Scripts checked. But I thank God for showing me it was because a no-longer-needed variable had been deleted. Well, now I know that Blender requires **at least one variable** to be present even if not being referenced for drivers to execute. :-) There definitely should be a default **warning** of **"Must set at least 1 variable for driver to execute"** when adding a scripted expression and no variable has been set. Let's hope these keywords make this ultra-important thread rank higher on Google: Blender drivers stopped working Blender drivers not working Blender drivers no longer working Auto Run Python enabled, but drivers not working

Wow... this is insane. Even though I was able to successfully wake up the driver by adding a variable in a new project, in the original project that glitched, it has remained frozen. Still investigating why this bug is occurring. I tried the f76d49e latest build along with the 8928d9270f official 2.79a build and neither can wake up the drivers! The glitch had occurred in the earlier d640ce4 build.

Wow... this is insane. Even though I was able to successfully wake up the driver by adding a variable in a new project, in the original project that glitched, it has remained frozen. Still investigating why this bug is occurring. I tried the f76d49e latest build along with the 8928d9270f official 2.79a build and neither can wake up the drivers! The glitch had occurred in the earlier d640ce4 build.

Whew... I was finally able to wake it up in the most bizarre way! If the driver is in this frozen state, you MUST add a variable that references an OBJECT ID Block and add some animation to the object, then set the driver variable type to "Transform Channel". Trying to use an animated single property (such as evaluation time on a Path) will NOT work. Of course, this placeholder variable does not need to be used in your scripted expression, it simply sits there to prevent the driver's door from locking! :-)

Whew... I was finally able to wake it up in the most bizarre way! If the driver is in this frozen state, you MUST add a variable that references an OBJECT ID Block and add some animation to the object, then set the driver variable type to "Transform Channel". Trying to use an animated single property (such as evaluation time on a Path) will NOT work. Of course, this placeholder variable does not need to be used in your scripted expression, it simply sits there to prevent the driver's door from locking! :-)

Added subscriber: @AlfonsoAnnarumma

Added subscriber: @AlfonsoAnnarumma

This comment was removed by @AlfonsoAnnarumma

*This comment was removed by @AlfonsoAnnarumma*
Sign in to join this conversation.
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
4 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#52656
No description provided.