Shader noob, Looking for help.

I’ve been trying to teach myself how to create shaders in Unreal, unfortunately, I am an artist, and the line between artistry and programming gets blurred rather easily in the realm of shaders.

Almost all the documentation or tutorials I find either totally ignore the programming aspect, or assume some level of programming knowledge that is above me, resulting in a string of incomprehensible babble.

I’ve been working on a as realistic as possible human model, and for that reason I’ve been checking out and trying to understand the “digital human” project to see how they went about it.

I have a couple of questions and I hope someone can help me answer them.

1: From what I can tell shaders are partially calculated by the engine directly (under the hood), and partially done in engine. Is that correct? And can someone explain more clearly the line between what should be done by the engine and what should be done by artists? I’ve seen a lot of custom shader code and I get the feeling most of that is based on more rudimentary operations by the GPU.
2: Is there a way to access, change, add to the shaders calculated by Unreal? If so, how?
3: To what extent are we allowed to use the content produced by epic? For instance, I’ve been looking at the shaders for the eyes and really like them. To what extent are we allowed to use this content? Can I recreate it node for node? Can I simply copy it and use my own masks/tweaks?
4: Can custom shader nodes interact with the underlying information the engine has? For instance, the eyeocclusion shader has a custom node with the code "return GetHalfFieldOfView();
Since it has no inputs, I am assuming it is returning some sort of hidden variable. Or am I missing something?

Any help would be greatly appreciated.