Another thing you could do, is use mesh distance fields to shade the ground. That would deal with all the characters at once, but also all the objects, unless you marked them as not using DF