"figure mixing" or morphing between rigged characters

Hello –

I’m looking for a way to do something similar to the Daz Studio “Figure Mixer” plugin in Blender, if anyone is familiar with that.

Essentially, I want to take a rigged character and morph it into a different character, with possibly radically different proportions (adult to child, or adult to tiger, for example), and maintain a valid rig continuously throughout the morph so that the character can be animated.

I tried the simple thing of having a rigged character and adding another version of the mesh with different proportions as a shape key, and as expected, it didn’t work. The shape key geometry change is applied before the armature gets to see / apply itself to the mesh, and with much of a change, the armature bones are no longer positioned very well relative to (or even inside of) the mesh post-morph.

So, I think that either the morph geometry needs to be applied after the armature has done its business (in a way that’s relative to the character in default pose rather than the new posed geometry) which isn’t at all how I understand shape keys work, or, the armature itself needs to be reshaped at the same time as the the mesh is being reshaped.

I have a background in computer graphics, and I think I can envision an algorithm to make this work (implemented as either one or two new modifiers), but I’d rather use some existing solution if it exists, rather than try to get up to speed on all the blender details I’d need to know to write / test / maintain new blender modifiers.

I’m hoping someone here might be able to help, but if there aren’t any examples of this sort of thing done by others already, I realize this might be a question for the developers who have a more intimate knowledge of how blender operates “under the hood”.

Thanks!
Matt

Maybe you can do it with a mesh deform modifier. That would bypass the rig alltogether. Basically you build a simple mesh cage and use it like a lattice.

The main problem with your goals as described is imo getting the rig to work properly with, as you say, “radically different” mesh morphologies (not just proportions!).

A bipedal (human) rig has very different requirements than a quadrupedal (tiger) rig – different COG points, different anatomical realities (e.g., a tail! :D), different stride structures, different weight distribution patterns – so much different that it is essentially not the same armature except in terms of its building blocks. It might be possible to design a rig that could encompass such a huge range of motion requirements, but implementing it would also present major issues – how do you weight vertices that have no function in one morph but are essential in another (again, think of a tail)?

The topology of meshes driven by the armature has to be considered as well, since I doubt that the topo for a human thorax and shoulders is ideal for a a big cat’s chest & front legs, let alone the diffs in leg, heel & toe structures, spine & back, just so much that has to change “radically.”

If animating such a morph is your goal, you might consider more practical methods to “cheat” the transformation, such as using special shape-keyed mesh replacements as intermediates between the full human and full tiger, to extend the example. 3D tech can make this a much more successful approach than a similar process in other special effects disciplines like solid-figure animation, animatronics, or purely photo-imaged morphs.

That all makes sense; I understand (and totally agree) that a human rig wouldn’t be ideal for operating a quadraped.

I’m honestly more concerned about humanoid-to-humanoid morphs, but you probably could use a humanoid to quadraped morph as described to do the “metamorphosis-step”, and then swap out the human rig for a more appropriate model/rig (rigged ideally) during a cut or at an some other opportune pose.

I’m hoping to get the window of the morph working as top priority, and then if a human rig works pretty well to great for many different variations of humanoid, that’s a high / second priority.

Not sure what you mean by the “window of the morph.”

Referring back to your first post, reshaping the armature to fit a new mesh morphology (such as a shape key) is feasible, but I think there’s a practical limit to how much reshaping you can do without straining the requirements of vertex weighting, which is pretty much fixed in the non-morphed mesh and armature, and afaik not yet subject to animation. This is related to mesh topology as well.

By “window of the morph” I mean if you have Rigged-Mesh-A, and Shape-Key-Mesh-B, all of the intermediate meshes between A and B, where B is partially applied.

It is possible to reshape an armature and animate the reshaping of it so that it corresponds to the shape keyed transition? Shape keys are linear, right? So, if you reshape the armature to fit at the extreme mesh of B, and can linearly interpolate between the rig-for-A-armature and the reshaped-rig-for-B-armature by the same percentage as the shape key, the armature should line up at every possible intermediate mesh. I think.

If that’s possible, how would I approach doing it?

Armatures and bones can be animated using their Transforms just as any other object – Rotation (usual) Location (frequently), and Scale (not as common but possible). So getting an Armature to “morph” into another configuration is feasible within limits, as long as the bone connections and other relationships can be preserved. Careful design of both states of the Armature would of course be essential.

But the bigger issue I think is one of how the mesh vertex weighting, which afaik cannot be animated, is made to work properly with both Armature configurations. If the mesh transformation is not too radical, it could work OK, but if too extreme, might pose significant issues in how the “morphed” Armature actually influences the morphed mesh – its weighting would be that needed for the “A” configuration, and may not be suitable for “B.”

Envelopes might provide some help in this regard, but again, would require very careful planning and may not deliver the kind of mesh control needed. Same is true for the Mesh Deform modifier.

With careful design you might be able to get the components to meet “halfway” in this regard, with A & B being separate Armatures & meshes but with enough commonality to allow a partial transition that could then be polished via shape keys for a successful “window.”

All pretty speculative – in practice, specific Armature & mesh characteristics would have to be allowed for or designed into the model.

I’ve been keeping a eye on this thread for a while and I’m here to say that it is possible to change the armature in such a state using the same armature. It’s called BlendRig and it shows not only Muscle deformation but it also alters the body over all and it may have the answer you were looking for.