Custom low poly mesh

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

Moderator: joepal

Custom low poly mesh

Postby jwoelper » Tue Jun 24, 2014 4:16 pm

Hi everyone!
I love Makehuman and I am currently experimenting with it for inclusion in our game studio pipeline. I like the Idea to be able to pose, modify and export a low poly mesh for the game engine, generate a high poly mesh, sculpt it and bake normal maps from it. However, i think that the low poly meshes could be improved. I am willing to do this and contribute the result - however i find the documentation a bit shady on this matter. So far I have read those howtos:
http://www.makehuman.org/doc/node/alpha_7_making_proxy_meshes_with_makeclothes.html
https://sites.google.com/site/makehumandocs/proxy-meshes

What i have done so far: I downloaded the blender tools here: http://www.makehuman.org/content/download.html.
I opened blender 2.7 and loaded a base mesh. To test this, i wanted to start with an existing low resolution proxy. The tutorials were unclear about this, so i cloned the svn and imported the proxy741 proxy. That one did not quite line up in 3d with the base mesh of the blender tools, so i fixed that. The tutorial stated that the control points (i assumed those were the little cubes) had to be removed from the mid/left/right vertex groups. I double checked that, but they were not included in those.
I then selected both hi and low meshes and hit the "Make Clothes" button. I end up with a folder containing an mhclo and an obj file. I then renamed the *.mhclo file to *.proxy and wanted to paste the first section of the ascottk.proxy that i found in the alpha7 in data/proxymeshes/askottk/. However the exported file already looked quite right to me:
Code: Select all
# Exported from MakeClothes (TM)
# author Unknown
# license AGPL3 (see also http://www.makehuman.org/doc/node/external_tools_license.html)
# homepage http://www.makehuman.org/
uuid e9d88ec2-15b4-4d55-99b4-c1bce6de4f07
basemesh hm08

name proxy741
obj_file proxy741.obj
x_scale 5399 11998 1.4800
z_scale 962 5320 1.9221
y_scale 791 881 2.3298
z_depth 50
verts 0
 7973  7958  7984 0.34409 0.12509 0.53081 0.03006 -0.02847 0.01858
 7897  7896  7870 -0.10110 0.56801 0.53308 -0.02507 0.02155 0.00585
<rest omitted>



The proxy appears in the library, but upon assigning it, i receive the following error:
Code: Select all
Traceback (most recent call last):
  File "./core/gui3d.py", line 1234, in onMouseUpCallback
    self.mouseDownObject.callEvent('onClicked', event)
  File "./core/events3d.py", line 167, in callEvent
    getattr(self, eventType)(event)
  File "./core/gui3d.py", line 399, in onClicked
    self.__view().callEvent('onClicked', event)
  File "./core/events3d.py", line 167, in callEvent
    getattr(self, eventType)(event)
  File "./core/gui3d.py", line 2410, in onClicked
    self.parent.callEvent('onFileSelected', self.file)
  File "./core/events3d.py", line 167, in callEvent
    getattr(self, eventType)(event)
  File "plugins/3_libraries_proxy_chooser.py", line 38, in onFileSelected
    self.setProxy(gui3d.app.selectedHuman, filename)
  File "plugins/3_libraries_proxy_chooser.py", line 49, in setProxy
    human.setProxy(proxy)
  File "./core/gui3d.py", line 296, in setProxy
    (folder, name) = proxy.obj_file
TypeError: 'NoneType' object is not iterable
Traceback (most recent call last):
  File "./core/gui3d.py", line 1234, in onMouseUpCallback
    self.mouseDownObject.callEvent('onClicked', event)
  File "./core/events3d.py", line 167, in callEvent
    getattr(self, eventType)(event)
  File "./core/gui3d.py", line 399, in onClicked
    self.__view().callEvent('onClicked', event)
  File "./core/events3d.py", line 167, in callEvent
    getattr(self, eventType)(event)
  File "./core/gui3d.py", line 2410, in onClicked
    self.parent.callEvent('onFileSelected', self.file)
  File "./core/events3d.py", line 167, in callEvent
    getattr(self, eventType)(event)
  File "plugins/3_libraries_proxy_chooser.py", line 38, in onFileSelected
    self.setProxy(gui3d.app.selectedHuman, filename)
  File "plugins/3_libraries_proxy_chooser.py", line 49, in setProxy
    human.setProxy(proxy)
  File "./core/gui3d.py", line 284, in setProxy
    self.__proxyMesh.clear()
AttributeError: 'NoneType' object has no attribute 'clear'


To cut a long story short: Could someone point me in the right direction on this? Preferably with the latest version? I am also willing to write a wiki article on this, should I succeed. I guess it could only help if it would be as easy as possible for artists to get content into MH.

Best regards

Johann
jwoelper
 
Posts: 6
Joined: Tue Jun 24, 2014 3:07 pm

Re: Custom low poly mesh

Postby Manuel » Tue Jun 24, 2014 6:27 pm

It should be fixed:

http://bugtracker.makehuman.org/issues/322

what version of MH are you using?
Manuel
 

Re: Custom low poly mesh

Postby jwoelper » Tue Jun 24, 2014 9:55 pm

Manuel wrote:It should be fixed:

http://bugtracker.makehuman.org/issues/322

what version of MH are you using?


Hi Manuel,

in my desparation, I have tried with 1.0.1, Nigthly stable & unstable from June 8th, and with 1.0 alpha 7. The error was produced with the 1.0 alpha 7.

This is off topic, but 1.0 alpha 7 seemed more feature complete to me than 1.0.1 - is there a reason why there is stuff missing (like facial expressions) in the latest version? Also the quality of the morph targets seemed a bit better in 1.0 alpha 7. If I create a man and turn the weight all the way up for instance, the result looks way better in 1.0 alpha 7.

Thanks in advance

Johann
jwoelper
 
Posts: 6
Joined: Tue Jun 24, 2014 3:07 pm

Re: Custom low poly mesh

Postby Manuel » Tue Jun 24, 2014 10:21 pm

in my desparation, I have tried with 1.0.1, Nigthly stable & unstable from June 8th, and with 1.0 alpha 7. The error was produced with the 1.0 alpha 7.[/quo
Please try 1.0.2

This is off topic, but 1.0 alpha 7 seemed more feature complete to me than 1.0.1 - is there a reason why there is stuff missing (like facial expressions) in the latest version?


Yes, these "features" were experiments, not suitable to be included in a stable release. For example the expressions worked good only on average characters.
We are working hard to restore them with perfect algorithms ans max stability, as soon as possible.


Also the quality of the morph targets seemed a bit better in 1.0 alpha 7. If I create a man and turn the weight all the way up for instance, the result looks way better in 1.0 alpha 7.



The quality of morph targets is enormously improved in 1.0, and also the quality of the mesh (http://www.makehuman.org/content/mesh_evolution.html).
The "problem" is that the new morphings are very realistic, and it's needed to play a bit with sliders in order to obtain an idealistic character (where idealistic = NON realistic).
See for example: viewtopic.php?f=2&t=10679

On the contrary alpha 7 started directly with a cartoon-esque character and it seems that many users perceive this as "better quality".


This will be solved implementing a template library. Also 1.1 will improve the beauty-ugly modifier.
Manuel
 

Re: Custom low poly mesh

Postby jwoelper » Wed Jun 25, 2014 9:26 am

Manuel wrote:
in my desparation, I have tried with 1.0.1, Nigthly stable & unstable from June 8th, and with 1.0 alpha 7. The error was produced with the 1.0 alpha 7.[/quo
Please try 1.0.2

This is off topic, but 1.0 alpha 7 seemed more feature complete to me than 1.0.1 - is there a reason why there is stuff missing (like facial expressions) in the latest version?


Yes, these "features" were experiments, not suitable to be included in a stable release. For example the expressions worked good only on average characters.
We are working hard to restore them with perfect algorithms ans max stability, as soon as possible.


Also the quality of the morph targets seemed a bit better in 1.0 alpha 7. If I create a man and turn the weight all the way up for instance, the result looks way better in 1.0 alpha 7.



The quality of morph targets is enormously improved in 1.0, and also the quality of the mesh (http://www.makehuman.org/content/mesh_evolution.html).
The "problem" is that the new morphings are very realistic, and it's needed to play a bit with sliders in order to obtain an idealistic character (where idealistic = NON realistic).
See for example: viewtopic.php?f=2&t=10679

On the contrary alpha 7 started directly with a cartoon-esque character and it seems that many users perceive this as "better quality".


This will be solved implementing a template library. Also 1.1 will improve the beauty-ugly modifier.


Manuel, thanks for clearing this up. Your amazing work is much appreciated - i can't wait to try out the new features!

I will try with 1.0.2 - where can I get that?
Am I right that this version is not officially out yet? (http://bugtracker.makehuman.org/versions/9)
Should i clone that from mercurial?

Best regards

Johann
jwoelper
 
Posts: 6
Joined: Tue Jun 24, 2014 3:07 pm

Re: Custom low poly mesh

Postby Manuel » Wed Jun 25, 2014 9:34 am

[quote="j

I will try with 1.0.2 - where can I get that?
Am I right that this version is not officially out yet? (http://bugtracker.makehuman.org/versions/9)
Should i clone that from mercurial?

Best regards

Johann[/quote]

http://www.makehuman.org/content/downlo ... build.html
Manuel
 

Re: Custom low poly mesh

Postby jwoelper » Wed Jun 25, 2014 10:13 pm



Thanks! It said 1.1.0 when starting the nightly unstable, but a first test did actually work, so thanks a lot!

Please allow one more question or suggestion: The blender exporter complained about the mesh not being entirely composed of quads. I fixed this - however, in game development, final models are often triangulated, because a) the end result of the triangulation can be controlled more precisely and b) there is a lot more potential in limiting the amount of polygons if the artist is not forced to use quads. Will MakeHuman at some time tolerate proxy meshes that contain triangles?

Best regards

Johann
jwoelper
 
Posts: 6
Joined: Tue Jun 24, 2014 3:07 pm

Re: Custom low poly mesh

Postby Manuel » Thu Jun 26, 2014 7:19 am

jwoelper wrote:
Will MakeHuman at some time tolerate proxy meshes that contain triangles?



No, sorry...
MH is designed in order to have some "standard quality" for meshes (->tidy meshes), that are quads only, no poles with more than 5 edges, etc..
Manuel
 

Re: Custom low poly mesh

Postby jwoelper » Thu Jun 26, 2014 8:59 am

Manuel wrote:
No, sorry...
MH is designed in order to have some "standard quality" for meshes (->tidy meshes), that are quads only, no poles with more than 5 edges, etc..


Thanks for the info!

Just out of curiosity: is there a technical reason behind that or is this rather a "design philosophy" of MakeHuman? If so, we could maybe hack the blender exporter to accept triangles as input.
As we are in the mobile games industry, a 100 to 200 poly reduction (which is about the amount that could be saved in my test case by using non-quadrangular topology) means a lot to us, especially when displaying multiple characters.

Once again, thank you very much for your insightful comments, you have been very helpful!

Johann
jwoelper
 
Posts: 6
Joined: Tue Jun 24, 2014 3:07 pm

Re: Custom low poly mesh

Postby duststorm » Thu Jun 26, 2014 3:24 pm

Note that proxy files created with new versions of MakeClothes are NOT compatible with MakeHuman alpha 7

MakeHuman is designed and optimized for working with quads meshes, so it will not be possible to import triangle meshes in MakeHuman without considerable programming effort (and a loss of performance).
But you could create a quads proxymesh that you can modify into a triangle topology in a post process, for example using a blender script. Meshes exported from MakeHuman always respect a fixed vertex order so you can create 1-to-1 maps between your modified topology and the quads mesh coming from makehuman. You could drop the face data entirely and only use the vertex positions, and wrap a competely different triangle topology around it.
MakeHuman™ developer
User avatar
duststorm
 
Posts: 2569
Joined: Fri Jan 27, 2012 11:57 am
Location: Belgium

Next

Return to User contributions

Who is online

Users browsing this forum: No registered users and 1 guest