by polylearn » Thu Sep 12, 2019 6:42 pm
I was looking for something similar a while ago when trying to combine animation of the MakeHuman targets themselves with armature animation in Blender.
It is simple enough to do this for single targets with the application socket connection, a) import your chosen base human type into Blender, b) apply one target in MH and import the modified model on top of the base one, c) select modified human, then the base human and "Join as shapes", d) rename resulting shape key of the base human to something meaninful and delete the additional model. These steps take only about a minute per target, but there are hundreds of targets in MakeHuman so it quickly becomes quite tedious trying to create a full library of them.
I imagine it might be possible to write a pair of add-ons for transferring the targets (or a script for Blender to read target specs from the .npy files?), but there are a few additional challenges which make it difficult to even come close to MakeHuman's functionality:
- The resulting shape keys do not always mix in the same way as the MH targets do, especially in the case of the macro targets. I believe MH does the macro targets by combinations of some data sets which are not directly accessible by other means, but I forgot where I saw these listed. Anyway, in Blender you would have to create shape keys for not only the macro targets but also several cross-combinations of them to achieve similar results.
- MakeHuman scales the skeleton automatically if you use any targets which lengthen or shorten body parts. There doesn't seem to be any way to do this with Blender, so for animating these kinds of shape keys you would also have to import rigs for each different character size and shape and then animate the armature modifier visibility from one to the other.
- Hair, body parts, clothes, etc; you could create a library .blend file to include some subset of the available assets but how to fit different human shapes, I honestly have no idea about this.
Additionally, shape keys are topology-specific but the old MeshTransfer Blender add-on can be used to copy shape keys to other topologies even if vertex numbers don't match, as long as the meshes are close enough in 3d space.
Probably in 99.9% of cases there's simply no reason to bother with trying to implement something like this because the socket connection makes it so fast and easy to use MH and Blender side by side. But, I already once spent a full evening creating a blend file with maybe a couple hundred shape keys for the MH base human so if someone wants to make something with it, I could post it here or elsewhere.