I am currently exploring same stuff, and having bunch of problems. I made mistake and started with Dynamic materials, instead using Set Material node.
I would like if someone expand this topic more, and for now here is what I concluded:
-You need to make blueprint for every object that will be changed
-I have made material arrays in Conctruction Script of every object
-Then you make function similar to this one (I am not sure why this one is not working yet when I call it using BPReference in menu widget:
Example you showed is really advanced, and I suggest you to start with more basic stuff.
I strongly recomend this video, it is well worth the time: