Tuesday, May 18, 2010

Two new low-poly meshes

One unexpected benefit of my poor proxy mesh was that it triggered contributions from others. Two talented artists have made low-poly meshes, far better than mine. They have now been brought into MH, and are exported, both in the mhx file and as separate obj files. For the moment, only one of the meshes can be imported into Blender 2.49.

The meshes have been named after the contributors' user names in the forum. The proxy meshes are quite different, and I imagine that both can be useful. My own low-poly mesh has also been removed, missed by nobody. Some characteristics of the two meshes:

Rorkimaru:
* Very low poly
* Quads
* Two fingers and a mit
* Disconnected body parts, originally, but I seem to have changed that when I brought the mesh in MH.
* UV coordinates

forsaken:
* Medium poly count
* Triangles
* Five fingers
* Follows high-poly mesh closely, including inside mouth.
* No UV coordinates, at least not yet.



Adding your own proxy mesh
Black Moderate asks how make a proxy mesh of your own. I will describe how to make it, but currently the only way make MakeHuman recognize it is to overwrite one of the existing proxy definitions. If you do that, make sure to back up your own file before you download MH again, because it will be overwritten.

The definition of the two current proxies are located in the files forsaken.proxy and Rorkimaru.proxy in the data/templates/ folder. The files consist of several sections:

Mesh without UVs:
1. Association of proxy verts with original verts.
2. Proxy faces, as in an obj file without UVs.

Mesh with UVs:
1. Association of proxy verts with original verts.
2. Proxy UV coordinates.
3. Proxy faces, as in an obj file with UVs.

A vertex in the proxy mesh simply inherits everything from its parent vert in the original mesh: morph targets, vertex weights, shapekeys, etc.

How to make a new proxy mesh:

1. Import the default mesh into Blender (a recent build of 2.5!) and rename it "Human"
2. Import your proxy mesh, or make one with the retopo tools. It must be called "Proxy".
3. Run the script utils/mhx/defineProxy.py. I just committed it to svn, so it will be there in tomorrow's nightly build. The variable path at the end of the script is your output file.
4. The script creates a proxy file without UVs.

To add UVs:

1. Export your proxy mesh as obj.
2. Delete the Faces section of the proxy file.
3. Copy the tex verts (lines that start with vt) and faces (lines that start with f) from the obj file into you proxy file.
4. Insert the line "TexVerts" before the first vt and "Faces" before the first f.
5. Delete all vt's and f's.
6. Compare with Rorkimuru's file to see how it should look.

How to improve vertex association

The algorithm works by associating a proxy vertex to its closest neighbor in the original mesh. Unfortunately, it becomes confused in areas where the original mesh has overlapping parts. The mouth area is especially nasty, but also the eyes and lips can cause problems. To assist the algorithm, you can assign vertex groups to both the proxy and the original mesh, e.g. to the upper/lower teeth, upper/lower gum, tounge and body. The program will then assign the closest vertex in the correct vertex group.

18 comments:

  1. Rorkimaru's is much better. I'm testing it to see how it work on different characters. I should post something within this week.

    ReplyDelete
  2. Hurray! I'm so glad that it was of use to you! I look forward to trying out both models with all your lovely morphs =D

    ~Rorkimaru

    ReplyDelete
  3. Not to offend...but I thought triangles were a no-no.

    ReplyDelete
  4. Triangles are often used in Games where polycount is more important than ultra-smooth meshes

    ReplyDelete
  5. In rendering yes but in game engines not so. Tris are very useful in saving polys and creating better deformations. In fact, while game characters are modeled using mostly quads they are converted to tris by most game engines before the game begins.

    Also, tried out the models in the latest build. Really happy with the results. (http://blenderartists.org/forum/showthread.php?t=187408). The models need a bit of a tweak here and there and in mine there are a few quads that could stand to be converted to tris around the breasts/chest and the hip

    ReplyDelete
  6. Are Rorkimaru's new Low Poly models in the latest Nightly build? I've just downloaded it (2010-May-19 06:02:24)and the Proxy is still 28288 tris??
    I've exported the model as an OBJ - should I be doing something else?

    ReplyDelete
  7. I did a quick animation using my Full Round House Armature of the Rorkimaru proxy. Many thanks for your hard work.

    Check it out at: http://www.youtube.com/watch?v=iq9RJ5QdSgg

    You can use the .blend file by downloading from http://www.geekopolis.ca/blender/rorkimaruProxy1.blend

    ReplyDelete
  8. Which one are you using? I downloaded the tarball for Linux i386 and it was in that. Maybe they are updated at different points during the day?

    ReplyDelete
  9. Hi _ I used the win32.zip. I'm V new to MH. I'm thinking I just need to export the model as an obj and the proxy should be in the same folder?
    Cheers

    ReplyDelete
  10. Yep, thats how it works. MH exports the ful res model and both proxys =D

    ReplyDelete
  11. This comment has been removed by a blog administrator.

    ReplyDelete
  12. I have not been following development. Two question.
    #1 Are the low poly meshes includede with alpha 5 of May 6th 2010 or in one of the nightly builds.
    #2 How do you activate them. See them on the screen.
    #3 how do you export them to collada or to blender?

    ReplyDelete
  13. Hello Black Moderate...
    I've already exported Rorkimaru's model, and rigged it for Blender 2.49b. You can download it at:
    http://www.geekopolis.ca/blender/rorkimaruProxy1.blend

    ReplyDelete
  14. Thank you zinc Chameleon. i will check that out but my questions still remain. Since I would like to make my own mesh. I also have and additional question.
    #4 What exactly is a proxy as it relates to a mesh?

    ReplyDelete
  15. Rorkimaru, do you plan a version with fingers?

    would make a great base mesh for sculpting

    ReplyDelete
  16. Thomas I was not asking how to make a new proxy mesh in blender to be included in MH. I was asking how to EXPORT the low-poly proxy mesh from MH so that I could be used in blender. I found out how to do it by reading some previous blog pages here. But i think your post on how to make the proxy meshes will be helpful to MH users that have more artistic talent then I have.

    ReplyDelete
  17. My view is that the app should ship with a usable male mesh. And that would mean one *without* the spooky female depression in the underwear area. So if the official mesh must have this feature, you need to supply at least one basic one without it.

    ReplyDelete
  18. @nikfaulkner No plans at the moment. I just made my proxy as a sort of one off donation so I would be able to easily make low poly characters for my games.

    That said, if I ever do make another proxy it would be higher poly and have fingers and all. I'd say that someone else will beat me to the punch though. A lot of people seem to be at least considering donating proxies in the future.

    ReplyDelete

© MHteam 2001-2010