Control Cycles material based on the distance to an empty using Animation Nodes
The problem is that all objects share the same material, consequently, editing the material affects all objects equally. Your solution of creating a number of independent materials could work, whoever, it would be very inefficient and hard to control. Instead, we could use one of numerous methods that vary in efficiency and difficulty.

The easiest method but the least efficient is to use vertex colors. You just use the Set Vertex Color node to set a color to an object, this color could carry your emission strength. The color can then be retrieved using the Attribute node in Cycles. It should be noted, however, that your objects have to be Deep Copies. My answer here explains this in more details. Also see my answer here.

The most efficient method is to do the computations in Cycles itself. Since your emission strength depend on the distance to an empty, we can simply pass the location of the empty and compute the distance in the shader as follows:



Finally there is the method of using an image sampler based on the object indices, which you can use when your relation is more complicated that a mere distance. I explained this in details in my answer here.