So in total this will look like ditto dematerialises and sinks down into what looks like a puddle and then rises back up again as a different pokemon.
The particles should also be (possibly rising) bubbles, like the bubbles when you use toxic in generation 2
Like this:
Edit: for extra awesomeness also figured a placebo gloop/puddle model COULD be used to smoothen out the swapping of the models, okay so as ditto sinks into a puddle this model spawns beneath him and spreads out using the gi scale again (only changing x and z values not height), when ditto sinks beneath this it can dissappear and the pokemon it transforms to can spawn inside of it and then rises up in the same way (and gets wider if it's big like onix), as it does this, the gloop model at the same time contracts back again and disappears.
Yes, this is more effort but in the end it would look even better