Today finally got around testing this, and it’s very promising!
Gives a much more intuitive and editable control than keyshapes IMHO, and is more flexible than weight painting. Works well with messy mesh too (as long as you can unwrap), and is very fast in workflow.
Basically, you build a nicely deforming cage around your object (http://wiki.polycount.com/LimbTopology) for MeshDeform,
Add Displacement modifier,
UV Unwrap object,
Texturepaint it and use texture as displacement map
Add drivers to displacement value
Now, the last point is kinda tricky, because I don’t know if it’s possible to make a curve-based driver influence, so most of the deform kicks in during self-collision like it should (not linearly). I used a simple logarithmic expression to do this (it’s not prefect, and requires tweaking).
Below a crude result on a purposefully messy (subdiv+fractal) cylinder mesh:
Here is the texpaint deformation map before and after the displace modifier, so you can better see the difference. The meshdeform is set to dynamic! The reason why model pushes through wireframe is Deform modif. :
I was using KAlgebra to do the crude calculations of the graph (here one of the early iterations):
Now, this is far from perfection, but on good res mesh I expect awesome results, and would like to push this further. I’ll try doing this on a sculpt next time, with two displace modifiers, one for positive displacement, the other for negative.
It would be fun if there was an easier way to calculate driver values than doing this manually… but I still know too little about drivers.