There are several ways to do this. One technique that is often overlooked is to use a Value node contained in a node group. This works because if you change a value inside a node group, it changes in every material that uses that node group. It's a bit of work in your case, because you have to add the node group to every material, but here's an example.
Initial setup
- Add a Value node to any one of your materials.
- Deselect all of the other nodes in that material and select the value node.
- Type Ctrl–G to create a node group.
At this point, your node editor will look something like this:
* Enter <kbd>Tab</kbd> to close the node group:
Now when you have the group selected, typing Tab will toggle whether it is open or closed.
Open the sidebar in the node editor and open the Properties panel. In it, you'll see an entry for the Node group's name. Change it to something meaningful. I picked "Animation" for the example.
Connect the Value output of the NodeGroup to the Alpha input of your BSDF node.
Now you can add the Nodegroup to every material that you want animated by typing A and selecting your name from the Group submenu:
- Animation
- Pick any material, select the node group and open it.
- Move to frame 1 on the time line, set the value to 0, and keyframe it. (You can keyframe the value of an input just like any other field. Set it to 0, hover over it, right click and pick Insert Keyframe.
- Move to the frame where you want the fade to start and keyframe the value
- Move to the frame where you want full visibility. Set the value to 1. Keyframe it.