Interpolating between two models?

So I’ve got a bit of a unique problem. I want to take two different models and create a third model which is a mix of both. The idea being that I could pass in a value which would determine which of the first two the third was closer to. I’ve tried sing procedural generation but have had poor results with organic models and thought that if I had two models that worked on their own, I could get the third model to still be unique but also look good. Ik this is a bit out there, so any help is very much appreciated.

I actually thought about this sort of thing a couple of years back (but never actually attempted it) when I was pondering how to do a lycanthrope transformation – man to wolfman. I figure if you had a mesh with shape keys set at the two extremes, you could easily slide from one to the other. How to achieve that, though … maybe if you produced a mesh and used the shrink-wrap modifier to fit it to one shape, set the shape key, then did the same with the other shape, that might work. It’d probably require a fair bit of setup to get it right though.

Hmm. Now I kinda want to attempt it myself. :slight_smile:

There’s more than one way if I recall…

Shape keys should work, but vertex order and vertex count must match. Easiest way to do something in that regard is to take one model (the base) and pull the existing vertices into the next shape (the new shape key model). Keep in mind if anything is deleted or added then it will not work right since that affects the vertex count or order.

There’s the cast modifier. However this only works in regards to the simple shape presets available with the modifier.

And last is going to be shrinkwrap modifier. However each of its modes behaves differently. And it likely works best if shapes are relatively close to each other. The more different they are, then the more unpredictable it’ll be in conforming to the next surface.

Mesh cache and mesh sequence modifiers may also be of interest, but those tend to substitute meshes out for each other rather than produce direct in-between results. (At least from what I understand in their descriptions. Maybe somebody could chip in more on those?)