Beginner trouble with eyelids

I’m working on an eye that is a half-sphere (will eventually be exported to UE4) and am wondering if I went about animating the eyelid the right way. I’m using shape keys since weight painting failed (I would have rather used bones). But I settled for 2 shape keys, because with just one it causes the lid to go through the eye. I’m new to animation so am just wondering if this is the most efficient way to go about this. I know the obvious answer would be to rotate the lids completely, but I need the back to remain flush because it will be visible.

I would say that for realistic character but not too detail, a shape key could do the job, but looking at your eyes, it looks a lot bigger and more toony, so I would say that you should use bones… why did the weight painting fell?

yes cartoony. After fooling around with it some more I found that I can do it with bones, by isolating the weights to single edge loops, one bone per edge loop. Before I was just painting it manually which was causing warping.