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 http://forum.unity3d.com/threads/sprite-renderer-mask-on-specific-sorting-layer.356824/
But the shader does not use soft edges in my 2D alpha clipping mask. I’m not sure if this can be solved.