Let's say we have a mesh object with a Shape Key deformation, and it's driven by a Driver based on its distance from an Empty. It works as expected. But then if we want to make a Particle System of that mesh object, the particles won't respond independently based on their individual distances from the Empty, because they share the same mesh data.
We can Make Instances Real (to make the particles into their own objects), and then Make Single User - Object & Data (so each will have their own mesh data). But the Driver data remains unchanged, still based on the distance between the Empty and that first original particle mesh object.
To make each (now single-user) mesh respond to the Empty, it was necessary to select the object's name (...
005), and type a unique variable name - twice per Shape Key, per mesh!
What I want is for each particle to "think for itself" and be driven according to its own distance from the Empty. This way the Empty will have a sweeping effect as it passes near the particles. Here is an example, although I prepared it by updating each particle mesh's driver data by manually typing it in - the impracticality becomes obvious once dealing with any substantial number of "particles" (technically they're not particles anymore at this point):
Is there a way to make them all unique using Python scripting? Or maybe with Animation Nodes or Geometry nodes? I am open to various approaches. Thanks.