Shoes are Hard to Fit

This forum is aimed at user contributions, in the form of assets, side projects, code patches and similar.

Moderator: joepal

Shoes are Hard to Fit

Postby MargaretToigo » Sat Oct 20, 2018 8:09 pm

Much like fitting shoes to human feet in reality, it's kinda hard to fit virtual shoes on virtual humans. I know that there are differences between fitting shoes on male and on female humans, which is the reason why there are several pairs of shoes in the repository (oxfords, monk strap, motorcycle boots) with both male and female versions available.

Several months ago, we had a long thread here about making clothes with a universal fit and found that it's quite possible to get a pretty close universal fit for things like suits and dresses...

http://www.makehumancommunity.org/forum/viewtopic.php?f=4&t=15466

But I am finding that that is not gonna be the case with shoes. The most universal fit for most ages and weights is fitting shoes on the female, but even those get all distorted on humans aged nine and younger, regardless of weight, muscle, proportions.

Screen Shot 2018-10-20 at 4.01.10 PM.png
Shoes fit to female, human set to defaults except for gender 100% female.


Screen Shot 2018-10-20 at 4.04.04 PM.png
Shoes fit to female, human set to defaults except for gender 100% female and age set to four.


Screen Shot 2018-10-20 at 4.05.57 PM.png
Shoes fit to female, human set to defaults except for gender 100% female and age set to ten.
MargaretToigo
 
Posts: 175
Joined: Thu Feb 16, 2017 6:46 pm
Location: Tampa Bay Florida, USA

Re: Shoes are Hard to Fit

Postby MargaretToigo » Sat Oct 20, 2018 8:28 pm

So, it would seem that a solution might be to fit the shoes to the baby and child, which produces interesting results in both cases.

The baby version fits only babies ages one through three. They begin to get slightly distorted by age three and get markedly more distorted once the human is four or older.

Screen Shot 2018-10-20 at 4.14.23 PM.png
Shoes fit to baby. Human age is one.


Screen Shot 2018-10-20 at 4.17.36 PM.png
Shoes fit to baby. Human age is four.


The child version is odd in that it distorts less when the human is 100% male.

Screen Shot 2018-10-20 at 4.21.59 PM.png
Shoes fit to child. Human age is twelve, with gender set to 100% male.


But when you slide the gender away from male to female it gets more and more distorted and very deformed at 100% female.

Screen Shot 2018-10-20 at 4.25.06 PM.png
Shoes fit to child. Human age is twelve, with gender set to 100% female.
MargaretToigo
 
Posts: 175
Joined: Thu Feb 16, 2017 6:46 pm
Location: Tampa Bay Florida, USA

Re: Shoes are Hard to Fit

Postby MargaretToigo » Sat Oct 20, 2018 8:33 pm

Fitting shoes to the base mesh just made a big ol' mess, even when the human was all default, just like the base mesh.

Screen Shot 2018-10-20 at 4.30.38 PM.png
Shoes fit to base mesh. This is what they look like "out of the box," with the human set to default.
MargaretToigo
 
Posts: 175
Joined: Thu Feb 16, 2017 6:46 pm
Location: Tampa Bay Florida, USA

Re: Shoes are Hard to Fit

Postby MargaretToigo » Sat Oct 20, 2018 8:46 pm

Now, I don't want anyone to get the impression that I'm complaining, because this is a learning exercise, not just for MakeHuman and MakeClothes, but modeling and texturing and UV mapping in general.

I've managed to make three pairs of useful shoes today, and I will upload the adult female version to the repository with a thumbnail and a properly edited .mhmat file and everything. I just wanted to share the results of my various experiments.

BabyShoes.zip
Shoes fit to the baby mesh -- mhclo, obj, mhmat
(351.55 KiB) Downloaded 593 times


KidShoes.zip
Shoes fit to the child mesh -- mhclo, obj, mhmat
(356.84 KiB) Downloaded 600 times


ShoesFitBase.zip
Shoes fit to the base mesh -- mhclo, obj, mhmat
(356.26 KiB) Downloaded 598 times


ShoeTextures.zip
Textures -- diff, spec, norm
(2.09 MiB) Downloaded 597 times
MargaretToigo
 
Posts: 175
Joined: Thu Feb 16, 2017 6:46 pm
Location: Tampa Bay Florida, USA

Re: Shoes are Hard to Fit

Postby blindsaypatten » Sun Oct 21, 2018 4:42 pm

Have you tried fitting the shoes as rigid objects? That should avoid the distortions.

For the more general issue of universal fitting, I think a paradigm shift is necessary. Instead of thinking of the vertices in the mesh as points in a single 3D space, think of them as points in cylindrical spaces around the bones. Then limit the transforms to changes in the lengths of the vectors from the axis to the point. If you choose a reasonable bone/axis structure you can achieve the same surfaces, or arbitrarily close to them. You just take the new vertex coordinate as the point where the vector intersects the new/morphed surface. Now your vertices represent places on the body and clothes that you fit to one body will fit any other body naturally.

It's conceptually similar to the way that armatures work (surface points are located relative to bones) with the simplification of not having bone rotations. You can still scale the length of bones.

Existing targets can be automatically translated into the new coordinates, and existing assets can be translated using the mesh that they were designed for, after which they will fit universally. A big win for everyone.
blindsaypatten
 
Posts: 586
Joined: Tue Mar 14, 2017 11:16 pm

Re: Shoes are Hard to Fit

Postby MargaretToigo » Mon Oct 22, 2018 7:19 pm

blindsaypatten wrote:Have you tried fitting the shoes as rigid objects? That should avoid the distortions.


It does avoid distortion. But it's too much avoidance because it makes the shoes unnaturally rigid. Using *rigid vertex groups is quite handy for lots of stuff -- buttons, brooches, weapons, hand props, etc -- but it is rather limited in its current form. And there doesn't currently seem to be a way to adjust the amount of rigidity for various parts of the shoe.

Screen Shot 2018-10-22 at 1.52.20 PM.png
Shoes fit to baby, on default human.


I did try making just the shoes (but not the socks) rigid and I got strange results.

blindsaypatten wrote:For the more general issue of universal fitting, I think a paradigm shift is necessary. Instead of thinking of the vertices in the mesh as points in a single 3D space, think of them as points in cylindrical spaces around the bones. Then limit the transforms to changes in the lengths of the vectors from the axis to the point. If you choose a reasonable bone/axis structure you can achieve the same surfaces, or arbitrarily close to them. You just take the new vertex coordinate as the point where the vector intersects the new/morphed surface. Now your vertices represent places on the body and clothes that you fit to one body will fit any other body naturally.

It's conceptually similar to the way that armatures work (surface points are located relative to bones) with the simplification of not having bone rotations. You can still scale the length of bones.

Existing targets can be automatically translated into the new coordinates, and existing assets can be translated using the mesh that they were designed for, after which they will fit universally. A big win for everyone.


Now, I must admit that I'm not sure whether you're describing how it works or how it should work.

I do try to visualize the armature when I think about how clothes will fit and deform when the human is posed, but MakeClothes uses the vertices on human/helper meshes to fit the clothes, so I think about that, too.

What I have noticed is that how universal a fit is depends largely, but not wholly, upon how many polys a mesh has, with low-poly meshes providing the widest range of possible sizes (more on that later).

Anyhow, here is the mhclo, obj and mhmat for the rigid shoes...

Shoes_Rigid.zip
Shoes with rigid groups.
(320.83 KiB) Downloaded 586 times
MargaretToigo
 
Posts: 175
Joined: Thu Feb 16, 2017 6:46 pm
Location: Tampa Bay Florida, USA

Re: Shoes are Hard to Fit

Postby joepal » Tue Oct 23, 2018 9:12 am

There might be a mean way between completely rigid fitting and completely dynamic fitting.

In the procedure described in http://www.makehumancommunity.org/wiki/ ... ng_a_sword you can see how to make a completely rigid item. The keys being selecting only a few vertices and naming the vertex group with an asterisk.

As a somewhat similar approach: If you select only a few strategic key vertices on the foot and assign them to an explicit vertex group that is not named with an asterisk, you will (hopefully) get less distortion, but still not get an entirely rigid and linearly scaling mesh.

This is theoretical though, I didn't test before writing this post.
Joel Palmius (LinkedIn)
MakeHuman Infrastructure Manager
http://www.palmius.com/joel
joepal
 
Posts: 4465
Joined: Wed Jun 04, 2008 11:20 am

Re: Shoes are Hard to Fit

Postby blindsaypatten » Tue Oct 23, 2018 1:46 pm

MargaretToigo wrote:Now, I must admit that I'm not sure whether you're describing how it works or how it should work.


I was describing one way that it could work that would eliminate the problems with how it does work.

I think Joel's method of just being selective with which vertices to include will probably give good results. Most of the problems are around the toes, if you limited the number of toe vertices in the vertex groups I think the problem would be solved. The larger scale deformation in a couple of your images is due to the aforementioned ad hoc movement of vertices in the transforms.

As for deforming, there are two types of deforming, deformation that occurs during fitting and deformation that occurs during posing. Once the fitting is done the armature controls the movement/pose deformation, so even if you use the rigid method for fitting you can still have deformation during posing/movement.
blindsaypatten
 
Posts: 586
Joined: Tue Mar 14, 2017 11:16 pm

Re: Shoes are Hard to Fit

Postby MargaretToigo » Thu Oct 25, 2018 12:30 pm

joepal wrote:As a somewhat similar approach: If you select only a few strategic key vertices on the foot and assign them to an explicit vertex group that is not named with an asterisk, you will (hopefully) get less distortion, but still not get an entirely rigid and linearly scaling mesh.

This is theoretical though, I didn't test before writing this post.


I am gonna have to try that when I get back into shoes, which will likely be soon as I have a kind of thing for shoes and socks.

I have done the non-rigid custom vertex groups thing and have gotten mostly strange results on shirts, pants, dresses and suits, but I've never tried it with just a few vertices. It seems to make sense because most of the distortion is around the toes.
MargaretToigo
 
Posts: 175
Joined: Thu Feb 16, 2017 6:46 pm
Location: Tampa Bay Florida, USA

Re: Shoes are Hard to Fit

Postby MargaretToigo » Thu Oct 25, 2018 12:48 pm

blindsaypatten wrote:As for deforming, there are two types of deforming, deformation that occurs during fitting and deformation that occurs during posing. Once the fitting is done the armature controls the movement/pose deformation, so even if you use the rigid method for fitting you can still have deformation during posing/movement.


I know that one all too well, especially with regard to how the armpit area deformations are unnaturally stretchy when humans are posed with their arms out and/or up.

What's problematic is when the clothes are all messed up in rest pose, they're just gonna get even more so when the human's bones get moved around.

But as long as the clothes look pretty good on the human in rest pose -- they remain relatively smooth after adjusting age, weight, proportions, etc -- fixing distortions when the human is being posed is just a matter of weight painting and maybe some shape keys.
MargaretToigo
 
Posts: 175
Joined: Thu Feb 16, 2017 6:46 pm
Location: Tampa Bay Florida, USA

Next

Return to User contributions

Who is online

Users browsing this forum: No registered users and 1 guest