Page MenuHome

Particle system and drivers
Closed, InvalidPublic


System Information
Operating system: Windows 10 version 10.0.19041
Graphics card: NVIDIA GeForce RTX 2080

Blender Version

Short description of error
When use a driver in a particle system the particle system doesn't react to driver value change

Exact steps for others to reproduce the error

  1. Create a particle system emitter
  2. Create a trigger object
  3. Add a custom property to the trigger object
  4. Relate the property with Velocity.Normal (var = Cube.["trigger"]) Expression: var*10
  5. Run animation
  6. Change the trigger property value to 0
  7. Velocity.Normal changed to 0 but particles are still emitted

Look at the attached example.

Event Timeline

Richard Antalik (ISS) changed the task status from Needs Triage to Confirmed.Aug 18 2020, 1:58 AM
Sybren A. Stüvel (sybren) changed the task status from Confirmed to Needs Information from User.EditedAug 20 2020, 4:09 PM

@Victor (VictorDDT) Could you please spend some time trimming down the example file? There are multiple objects that may or may not influence the result, there are multiple particle systems, and all of that is probably just noise.

I've tried to reproduce the issue with a smaller file, but there the particle system responds just fine to a driver. I tried with a file created in 2.79 as well as the current development version (master branch @ rB948e080fc5bb50).

@Sybren A. Stüvel (sybren) Thank you for the investigation.
Here my test in a blank file:

Result file is attached. I use 2.83.2 on Windows 10

There is no problem with the first pass. On the first pass, the particle system reacts to driver changes. But on the first pass of the animation, a cache is formed, which is not updated later if the driver changes.

Sybren A. Stüvel (sybren) claimed this task.

Ah, so the problem is not as described (driver not working), but the problem is that the cache system is caching too much?

The particle system's cache is only invalidated on manual changes, and not on changes of the driver's value -- Blender doesn't see the difference between "a driver changing value" and "a driver changing value but to a different value than it was the last time it played that frame".

The particle simulation system is marked "End of Life". This means that recently-introduced bugs may be fixed, but apart from that no changes are made.