Joint helpers in maketarget

If your topic doesn't fit anywhere else, put it here.

Moderator: joepal

Joint helpers in maketarget

Postby Oscalon » Sun Jun 21, 2015 2:12 am

I understand that the joint helpers need to be moved to stay consistent with any changes you make in your custom targets. But what happens if the join helpers themselves are changed? If you scale them, or let them be grabbed by proportional edits, they will be slightly squished or stretched. Does this matter?

How exactly is the helper geo even detected and used? Vertex index?

Are the eye, eyelash and teeth geometries that come when you load the base mesh from maketarget in blender essential to maintaining vertex count?
User avatar
Oscalon
 
Posts: 133
Joined: Mon Dec 23, 2013 8:12 am
Location: San Francisco Bay Area

Re: Joint helpers in maketarget

Postby duststorm » Sun Jun 21, 2015 8:18 am

Oscalon wrote:what happens if the join helpers themselves are changed? If you scale them, or let them be grabbed by proportional edits, they will be slightly squished or stretched. Does this matter?

No. You might notice that some other MH targets stretch the helper cubes as well.
For calculating the joint position, we simply take the average of the 8 vertices of the cube, or in other words, we use the center of the cube. It doesnt matter if it is twisted, as long as the average position is where you want the joint to be.

Oscalon wrote:How exactly is the helper geo even detected and used? Vertex index?

It's referenced by the vertex indices.

Oscalon wrote:Are the eye, eyelash and teeth geometries that come when you load the base mesh from maketarget in blender essential to maintaining vertex count?

Yes and no. The body vertices come first, so if you remove the helpers you are still able to make targets for the body.
Then come the joint helpers and the helpers for eyes and eyelashes. Finally clothes and hair helpers. You can make targets on any level of granularity, as long as you include the levels under it, so that the vertex indices are kept.
MakeHuman™ developer
User avatar
duststorm
 
Posts: 2569
Joined: Fri Jan 27, 2012 11:57 am
Location: Belgium

Re: Joint helpers in maketarget

Postby Oscalon » Sun Jun 21, 2015 6:17 pm

Great, thanks!
User avatar
Oscalon
 
Posts: 133
Joined: Mon Dec 23, 2013 8:12 am
Location: San Francisco Bay Area

Re: Joint helpers in maketarget

Postby Oscalon » Sun Jun 21, 2015 7:15 pm

While we're on the subject, how are weight groups determined on the model? If I am making a new body target and I move some knee vertices further up the thigh, does that mesh things up? Are weights already assigned based on vertex index, or are they generated around helper geometry? Around bone envelopes?
User avatar
Oscalon
 
Posts: 133
Joined: Mon Dec 23, 2013 8:12 am
Location: San Francisco Bay Area

Re: Joint helpers in maketarget

Postby duststorm » Sun Jun 21, 2015 7:58 pm

Weights are defined against vertex indices directly, both to the body and to the helpers.
For other proxies, like clothes or hair, these vertices are transferred from those helpers (or the body) to the proxy, based on which vertices the proxy is attached to. Alternative topologies are proxies as well.

It is, however, possible to define custom weights for a proxy mesh (directly per vertex index on the proxy mesh) to fine tune the result (eg muscle topologies).

When making targets, you should try to keep the "semantical meaning" of each vertex. With that I mean that no matter how the human is modeled, the vertices in it should always indicate the same landmarks on the body. This will ensure that proxies fitting makes sense as well.

If you need more fine-grained control and want to have a custom weighting for some targets you can always create a new skeleton definition. Weights are defined per skeleton (they can also be implicit, where an alternative skeleton does not define its own weights, but inherits them from the default skeleton).
MakeHuman™ developer
User avatar
duststorm
 
Posts: 2569
Joined: Fri Jan 27, 2012 11:57 am
Location: Belgium

Re: Joint helpers in maketarget

Postby Oscalon » Sun Jun 21, 2015 8:29 pm

Alright.

What's the deal with proxy meshes? They have different vert counts (and I assume indices) from the main body, so how are they setup?
User avatar
Oscalon
 
Posts: 133
Joined: Mon Dec 23, 2013 8:12 am
Location: San Francisco Bay Area

Re: Joint helpers in maketarget

Postby duststorm » Tue Jun 23, 2015 5:58 pm

A proxy is an obj mesh file and a .proxy or .mhclo file (they are the same format, this is an unfortunate legacy choice).
The proxy file describes for each vertex in the .obj mesh what basemesh vertices they are to be fit to, and the offsets.
A proxy can either specify for each mesh vertex 3 basemesh vertices with each an offset (to those three vertices the proxy mesh is then fit and offset), or specify one single basemesh vertex. In the second case, the proxy vertex is placed at the exact position of the referenced basemesh vert.
Both can be intermixed.

This allows for example to have an alternative topology that follows the original body topology perfectly for 90% of the vertices, but have a different topology in other areas.
MakeHuman™ developer
User avatar
duststorm
 
Posts: 2569
Joined: Fri Jan 27, 2012 11:57 am
Location: Belgium

Re: Joint helpers in maketarget

Postby Oscalon » Tue Jun 23, 2015 6:30 pm

That seems really useful. I'm working on some more toon-style bodies which don't need anywhere near as many verts as the base mesh. Are there tools to let me setup a proxy? Any docs that explain the process?
User avatar
Oscalon
 
Posts: 133
Joined: Mon Dec 23, 2013 8:12 am
Location: San Francisco Bay Area

Re: Joint helpers in maketarget

Postby duststorm » Tue Jun 23, 2015 6:50 pm

It's done using MakeClothes.
There is quite a bit of documentation spread out here and about. It's still difficult to use though. Especially for body proxies as you need to get difficult parts like the eyes right. Experimenting is the best way to go.
MakeHuman™ developer
User avatar
duststorm
 
Posts: 2569
Joined: Fri Jan 27, 2012 11:57 am
Location: Belgium

Re: Joint helpers in maketarget

Postby Oscalon » Wed Jul 22, 2015 3:38 am

I've been building my custom targets off the default model loaded by MakeTarget. But in makehuman, they are very distorted. I assume this is because the model loaded by maketarget is very different from the more up to date base body used in current versions of MakeHuman. Can anyone tell me where I can get the current base body so I can test?

Note that you can't use an exported model as it doesn't match the vert count.
User avatar
Oscalon
 
Posts: 133
Joined: Mon Dec 23, 2013 8:12 am
Location: San Francisco Bay Area

Next

Return to General discussions about makehuman

Who is online

Users browsing this forum: No registered users and 1 guest