Animate collection instance (material) independently? I have an object collection (let's call it a Red Cube for simplicity) which has a "blinking" animation (via emission material + keyframed mix shader).

Now, I want to create several instances of that collection, and be able to have a different animation timing for each instance.

For example, one might blink for a second every 5 seconds, another one blink twice every 10s, etc.

Is there any way I can accomplish this, without having to create a new material (and object using it, and collection...) for each new light pattern I want to create?

Ideally (at least, in my mind) there  would be a way to attach some kind of "argument" to an instance, describing how the light should behave -- that can be used by the material to control the animation, if that makes any sense..?

Model:



Material:
Sure.  Check it out:



There are a number of different ways to identify exactly which emitters you want behaving this way or that, but I think that using UV is the easiest, particularly with 2.8 improvements.  Here, I'm using the UV.x position of each object, which has been shrunk to 0 with individual origins pivot, to decide what period to use for the sine wave that I'm using to drive emissions.  Everything is driven from a single value node, where I just entered #frame to get my current frame count.

You can use something other than UV to identify which objects you want behaving which way, like object ID or position or vertex color.  I just find UV easy to use and flexible.  If you're using UV already, just create a new UV map; but if you're using linked objects, you'll need to use a different identifier.