by blindsaypatten » Tue Jul 04, 2017 5:59 pm
Ah, that makes it very clear.
The basic problem is that skeleton-based rigging doesn't work very well on the side of the joint where compression is occurring, it produces a "crease" as you can see at the back of the knee. To a lesser extent the side of the joint being stretched will also get thinner, but this isn't as noticeable. To make things worse, when you export a posed character the mesh itself incorporates this crease so when you straighten out the joint you not only don't get rid of the crease on that side of the joint but you create a crease on the other side. It's like you took the straight leg, bent it, creating the crease and then removed the armature (applied the armature modifier), leaving you with a mesh with a skinny knee. If you then add a new armature straightening out the joint produces a straight but still skinny-kneed mesh, even worse it now produces a second crease on the other side. The knee is bent and distorted by the armature in MakeHuman, then when you export the armature is removed, leaving just the distorted mesh, then when you import into Blender a new armature is added to the already distorted mesh.
One could debate whether it is a bug in the MakeHuman export/Blender import process, and whether it should really export the undistorted mesh plus the skeleton and pose, but since you can export without a skeleton... In any case it is unlikely to change. The "solution" is for you to export the mesh in the default pose and then apply the pose in Blender. That will at least allow you to go from one pose to another and then back again.
I think that the knee looking worse in the second image is just because it is bent more than the bent knee in the first image. The more the bend the bigger the crease.
I've banged my head against this wall quite a bit, there are a few things that can be done:
1) if it makes sense in your application covering the joint with clothes
2) move the joint closer to the back of the knee - this will decrease the depth of the crease at some cost in the front of the knee getting stretched
3) change the weight painting around the knee to have less overlap in the influence of the thigh and calf bones - you still get a crease but it is less visible. Unfortunately, there is no easy mechanism apply the new weight painting in MH
4) use a more sophisticated rig, like BlenRig 5, but this involves quite a bit of setup effort, hopefully a way to reuse the setup will be developed
5) if you are dealing with static characters you can go in and manually "doctor" the mesh after setting your pose
6) you can modify the skeleton, adding extra bones that decrease the amount of distortion
6a) add a knee bone between the thigh and calf bones
6b) add a "fixer bone" that floats behind the knee which will pull the mesh behind the knee out, counteracting the inward influence from the adjacent bones
7) add a shape key that fixes the mesh when the joint is fully bent and progressively apply the shape key as the joint is bent using a driver.
In general, I would avoid exporting poses from MH and keep all your posing work in Blender. If you have a pose in MH you want to use, I would export the character but then copy the pose from the posed character's rig to the rig of an unposed version of the character. You could also take the bvh file for the pose and use MakeWalk to apply it to an unposed character, I ran into some issues with that and didn't pursue it.