AI based Make Human

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

Moderator: joepal

Re: AI based Make Human

Postby RobBaer » Wed Dec 30, 2020 11:21 pm

So far the testing seems to be going quite well. Shape keys are scaling quite nicely. Is there anything I am not seeing that I will find later? Anyone with experience think this may have a problem somewhere?


Sounds like an interesting project. I generally follow your descriptions, but of course they are much too general to understand details. I presume you are working mostly on body and not face at present. One of the most complex parts of makehuman is the "macro sliders" that control multiple things at once to produce non-linear outcomes like the baby shape at extremely young ages. This might be something to think about at an early development stage.

Even using a single mesh for male and female forms is a design decision that Manuel rethought when he did his now defunct version of "Manuel Bastioni Lab", now resurrected (I think) as MB Labs.

Finally, your description of the project makes me want to ask whether your vector and constraint approach will lead to an easier way to provide "real world measurements". This is one of the most requested (but difficult to implement) features of the current MakeHuman approach. If so, this is something you would want to plan for from the ground up.
User avatar
RobBaer
 
Posts: 1208
Joined: Sat Jul 13, 2013 3:30 pm
Location: Kirksville, MO USA

Re: AI based Make Human

Postby HumanMakeNoob » Wed Apr 14, 2021 9:10 pm

So sorry about the late response! I came back and didn't notice your response on page 2!

RobBaer wrote:Sounds like an interesting project. I generally follow your descriptions, but of course they are much too general to understand details. I presume you are working mostly on body and not face at present. One of the most complex parts of makehuman is the "macro sliders" that control multiple things at once to produce non-linear outcomes like the baby shape at extremely young ages. This might be something to think about at an early development stage.


Thanks! I have encountered this challenge. I wrote a set of proportions based on different ages and different styles of character under primary forms. So far, these proportions go from child to someone 8 feet tall. There are constraints between the proportions in primary forms, the basis I have used throughout this has been the vitruvian man by Leondardo da Vinci. :) There are some nonlinear, 2-dimensional functions that best fit these primary forms I found. What is so wonderful about the primary forms is that this stuff can really be done by just using linear blend skinning. I found that changing bones scales on a properly weight painted model did a great job at making large number of different body types.

RobBaer wrote:Even using a single mesh for male and female forms is a design decision that Manuel rethought when he did his now defunct version of "Manuel Bastioni Lab", now resurrected (I think) as MB Labs.


I'm interested in why you decided to not make the males separate from the females. For me, the reason I chose to make them separate is due to AI generation concerns... I found that SMPL ( A human generation algorithm that utilizes AI and bodyscans of people) merged the two together. Many of the people generated looked in between male and female I'm guessing because the data was equally strayed between both sexes. I feel that clear boundaries between the sexes will prevent this, and understand that may get rid of some nice features of bridging the gap, but that can be handled later.


RobBaer wrote:Finally, your description of the project makes me want to ask whether your vector and constraint approach will lead to an easier way to provide "real world measurements". This is one of the most requested (but difficult to implement) features of the current MakeHuman approach. If so, this is something you would want to plan for from the ground up.


Not sure, what do you mean by real world measurements?

I'm planning on changing the way I do secondary forms again. There is a big issue that I don't like on my secondary form solution and that is that the vectors on secondary forms don't mean anything. The way it was set up in January was an artist would essentially sculpt muscles sizes with sliders in between. But different muscle shapes had to be hand-done and would be defined by a shape key from 0 - 1 that really didn't mean anything outside of the context of what the artist was making. It would be significantly more interesting if the secondary form vectors had meaning like the primary forms did. For example, where does the bicep attach, what is the cross section of the bicep, what is the cross section of the brachialis. But the big difficulty here is that secondary forms interfere with each other, primary forms do not. The humerus and the forearm may have proportional constraints but they don't change their position based on rubbing between each other. Secondary forms on the other hand do. Like the brachialis pushing against the bicep, this should cause a noticeable deformation in the arm. There is also jiggle that needs to be done since these are soft bodies.

A different route I have been thinking of for the secondary forms was using this paper, https://www.youtube.com/watch?v=higGxGmwDbs, to try and create a real-time muscle sim. Then I could create a vector set for secondary forms which would make sense because they deal with real muscles interacting with each other.

But it would be unpleasant if the generated model had these muscles sims inside of it. To fix this, I'm currently thinking of a mathematical solution. I have no idea if it will work. But can you decompose a mesh deformation into weight paints and corrective shape keys. Imagine a bicep, start the arm fully extended and then curl the arm until the elbow is 90 degrees. Now watch the mesh that wraps the muscle sim. The vertices will have two motions, motion parallel to the rotation of the parent bone and residue motion not parallel to this axis of rotation. To get the weight paints find the amount by which it rotated on that axis, simple algebra can give you the scalar for this and then the weight amount from 0 -> 1. Then the extra could be turned into a corrective shape key. Integration could be used to get a better corrective shape key function integrated on the bounds from 180 degrees to 90 degrees. I am not sure how clean this would look, I need to test it.
HumanMakeNoob
 
Posts: 6
Joined: Mon Dec 14, 2020 8:22 pm

Previous

Return to User contributions

Who is online

Users browsing this forum: No registered users and 1 guest