‘Time’ is basically a globalparameter that is set based on the engine’s internal time parameter. Materials don’t need to tick or execute code on their own to access it.
‘Time’ starts when the game/editor starts and keeps increasing. In blueprint you can access the same value by using “Get real time in seconds”. There is another time called “game time” that also pauses when your game is paused but I believe real time is the one used by materials.
If you want to fade with timing on spawn, you need to create a material instance dynamic. Once you have an MID created by the blueprint you can use one of two ways to control the fade. One is via timelines where you manually control a scalarparameter and set the “time” as the value output from the timeline. In this case, the output pin of the timeline DOES tick and update the MID. There is some cost however small to this method.
The second method is to simply create a scalarparameter called “spawntime” and on spawn, create an MID and set the scalarparameter to the value of real time.
Then in the material, by using “Spawntime” minus “Time” you can automatically get a time value increasing from spawn time without having to pay the cost to continually tick the MID or blueprint during the whole thing.
Additionally, you can easily do operations like power or sin/cos on the spawntime-time value to create nonlinear response to time in the material that is very similar to typical curves created via timelines.