Cut out sprite alpha using other textures

I have a 2D whack-a-mole style game where I am trying to layer the background and cut holes in it for the enemies to pop out of. I can’t work out how to use one image and cut holes in it with different alpha images. I don’t want to draw a separate image for every layer because that seems like a waste of file space when I only really need the alpha applied.

Basically a mask, but easy to assign an alpha to each sprite game object.

I managed to get it working using shader code from this page
But the shader does not use soft edges in my 2D alpha clipping mask. I’m not sure if this can be solved.