Page 1 of 1

Some Posing Problems, exspecially Legs

PostPosted: Mon Jul 03, 2017 11:36 pm
by porky11
When setting a pose in makehuman, it is set different as with the default skeleton. Because when I import a human into blender using mhx2, and then try to bring some part of the body back to the default pose, it does not work.
Why does posing work different in blender and makehuman? Is this a bug, or can this even be fixed?
This mainly occurs, when posing the legs in blender. posing legs looks weird anyway in blender. Are the vertex groups set incorrect? What can I do?

Re: Some Posing Problems, exspecially Legs

PostPosted: Tue Jul 04, 2017 12:32 am
by loki1950
MH just uses a a single frame bvh file for poses you can nor create them with in MH that said which skeleton are you using in blender after all there seven choices :shock: when you import with mhx2 if you use the default skeleton and checked the export poses box in the MH export you can use the mhx run-times sub-tab pose to set and reset to the a pose(default) or the t pose or any of the other preloaded ones from MH if you use the mhx skeleton the pose sub-tab does not exist in that case I find using it's IK functionally the fair easy one of the thing you may be encountering is that the joints may not have proper limits(physically impossible poses) ie; bending the knee joint forward ouch so for real world help you will have to be a bit more specific.

Enjoy the Choice :)

Re: Some Posing Problems, exspecially Legs

PostPosted: Tue Jul 04, 2017 12:47 am
by blindsaypatten
Since you mention the legs, I will mention that I got confused by the fact that the upper leg 1 and upper leg 2 segments are not aligned in the default pose, I really don't know why, so I thought the upper upper leg segment was a pelvis bone. Rotating the bone at the upper leg 1/2 joint produces very bad results.

When you are in pose mode, Alt G, Alt R, Alt S should return the position, rotation, scaling of that bone back to the resting position. In some circumstances interpolation will cause a joint to return to the starting position by doing a complete 360 rotation instead of reversing direction.

If you give more information we can make better guesses at what the issue is.

Re: Some Posing Problems, exspecially Legs

PostPosted: Tue Jul 04, 2017 9:04 am
by porky11
I made some exaple renders to show, what I mean.
Here I have two default humans
One of them is exported to blender in a specific pose, one without a pose.
They look this way:
poselegn.png


Then I change the angle of a leg of both humans.
The leg, that was stretched before, is now angled, and the other way round:
poseleg2.png

But both legs look wrong now, The stretched leg is to thin, the other leg also doesn't look as good, as the one exported with pose.

Re: Some Posing Problems, exspecially Legs

PostPosted: Tue Jul 04, 2017 5:59 pm
by blindsaypatten
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.