bring your shadow pass (white shadows, everything else black or grasyscale) into the compositor
invert shadow pass
get a math composite node (if using FX tree)
plug your color pass into the bg input of the math comp
plug shadow pass into foreground of math comp
set math composite to multiply
(Black * foreground color = black )
(White * foreground color = foreground color)
You can blur your shadows using a blur filter (gauss)
however if you notice the shadows tend to shrink a little and create a light gap between the shadow line and the contact point on the object casting the shadow..
you can get away with it at a distance for medium to far distant objects,
but for closeups this blur trick will fall apart.
You can solve this by using the same preset shadow pass, and adding another entry to the shadow object partition override
Add in the primary rays attribute for all objects in the partition and disable them in the override. This way you will get the entire shadow being rendered, even the portion of the shadow that sits underneath the character.
From there, you can blur away as much as you want without ever losing the contact shadows.
You will likely also need to render a matte pass to comp the shadows properly for some of your closeup objects, otherwise the portion of the shadow rendered where the character had previously blocked it (primary rays on) will multiply overtop and darken the character incorrectly.
Hope this helps some.
The other option is to just turn on area lights and render soft shadows directly in your shadow pass to bypass the whole primary ray , matte pass steps.
Adam