Page MenuHome

some drivers don't update during animation render
Closed, ResolvedPublic

Description

System Information
Operating system: Windows-10-10.0.17134 64 Bits
Graphics card: GeForce GTX 1060 6GB/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 419.17

Blender Version
Broken: version: 2.80 (sub 51), branch: master, commit date: 2019-03-21 00:58, hash: rB0bbff8a71138
Worked: (optional)

Short description of error
driver put on influence of VertexWeightMix Modifer, and depended on other modifier's parameter updates only on preview but not during animation render

here is the blend file


and rendered animation to compare

In the rendered animation driver value clearly isn't updated by time.
rendering single frame works fine, as you have to go to that frame first which updates the driver.

Exact steps for others to reproduce the error

  1. Open blend file,
  2. preview viewport animation
  3. Render animation (took me 2 seconds)
  4. Compare the result

Event Timeline

We've got a dependency cycle reported here:

Dependency cycle detected:
  'OBCube.GEOMETRY_EVAL_INIT()' depends on 'OBCube.DRIVER(modifiers["VertexWeightMix2"].mask_constant)' through 'Driver -> Driven Property'
  'OBCube.DRIVER(modifiers["VertexWeightMix2"].mask_constant)' depends on 'OBCube.GEOMETRY_EVAL()' through 'RNA Target -> Driver'
  'OBCube.GEOMETRY_EVAL()' depends on 'OBCube.GEOMETRY_EVAL_INIT()' through 'Object Geometry UberEval'

not sure if the second line is really neccessary / could be made working without actually reporting a dependency cycle?
the driver variable wants to pick up a RNA value, so shouldnt neccessarily be dependent on GEOMETRY_EVAL?
(but I am still not too familiar with the DEG, so maybe @Sergey Sharybin (sergey) would know right away?)

note: as a workaround, you could (instead of animating one modifier and driving the second one from the first modifier) do the following:

  • move the animation from the first modifier e.g. to an empties Z location
  • drive the first modifier by this empties Z location
  • drive the second modifier by the empties Z location as well (1-var)

this wont result in a dependency cycle and renders fine, see:

Sebastian Parborg (zeddb) triaged this task as Confirmed, Medium priority.

We usually close dependency cycle issues, but I just want to make sure that this is working as intended.

@Philipp Oeser (lichtwerk) thanks for providing an alternate fix.