I saw some similar questions to this, but nothing that quite fit. For example, suppose I have a material that is used by a number of objects, e.g., two shaders feeding a mixer. I want to animate the mix factor, but with different (non-random) keyframes for each object. I'm using Cycles.
If I keyframe the factor directly, it will use the same keyframes for all for all objects. I can duplicate the material for each object, but that's hard to maintain.
Node groups come close. I can encapsulate the material in a group and bring the factor out as an input, so I only have to maintain one material. But it appears that I still need a separate "wrapper" material for each object in order to set the keyframes. This is kind of cumbersome.
I thought a driver might help, with a keyframed custom property on each object; I had hoped that there was a way to tell it to use the custom property on the "current" object, but it requires a specific object.
I was also hoping the attribute node would give access to custom properties, but apparently not.
Any other ways?