It seem Aruba (http://www.aruba.it) is under hacker attack again. Unfortunately makehuman.org is hosted on their servers, so an intrusive php code was injected in all index.php files, and makehuman.org is now blocked as malware site :-(
Report from google:
Of the 90420 site(s) we tested on this network over the past 90 days, 3245 site(s), including, for example, ilgiornaledelfriuli.net/, filmotore.com/, informarezzo.com/, served content that resulted in malicious software being downloaded and installed without user consent.
We are working to clean it.
Wednesday, March 31, 2010
Monday, March 29, 2010
Proxy mesh
Since it is that time of the year, I have hidden a little easter egg in the mhx files: a low-poly proxy mesh. Since the proxy weighs in at around 1,500 verts and the real MakeHuman mesh is ten times as heavy, the proxy can be used when speed is more important than quality, e.g. for animation in the viewport and quick test renders. It is probably not good enough for use in games though, at least not without modification.
The proxy mesh is built from a subset of the original verts, connected by a new set of faces. I tried both to make the mesh pure quad and to maintain edge loops, but at the end I didn't quite succeed with either. There are also too many verts on the torso and too few around the nose, and highly curved areas such as the fingers and teeth tend to shrink when the number of verts is reduced. Proxy verts inherit weights and shapekeys from its parent verts in the original mesh, so the proxy can be posed and use shapekeys just as the original mesh, although the result is not always what you expect.
There are three new options in the MHX import script: Mesh, Armature and Proxy. They determine what parts of the mhx file are loaded into Blender. The main reason for deselecting the mesh is performance: loading it consumes a lot of time and memory. Deselecting the armature also deselects vertex groups associated with bones, leaving only a few groups that have other purposes.
Loading the proxy mesh has some quirks. In Blender 2.49, the normals are not consistent. To fix that, recalculate all normals (select proxy, Tab, A, Ctrl-N, A, Tab) (Now fixed). In Blender 2.5, the first material is SSS_skinshader, which should be replaced by ProxySkin from the dropdown menu. This is probably a weird Blender bug.
Hopefully the proxy mesh can be useful for somebody. At least I had fun making it.
Update: A proxy obj file is now generated on obj export.
The proxy mesh is built from a subset of the original verts, connected by a new set of faces. I tried both to make the mesh pure quad and to maintain edge loops, but at the end I didn't quite succeed with either. There are also too many verts on the torso and too few around the nose, and highly curved areas such as the fingers and teeth tend to shrink when the number of verts is reduced. Proxy verts inherit weights and shapekeys from its parent verts in the original mesh, so the proxy can be posed and use shapekeys just as the original mesh, although the result is not always what you expect.
There are three new options in the MHX import script: Mesh, Armature and Proxy. They determine what parts of the mhx file are loaded into Blender. The main reason for deselecting the mesh is performance: loading it consumes a lot of time and memory. Deselecting the armature also deselects vertex groups associated with bones, leaving only a few groups that have other purposes.
Loading the proxy mesh has some quirks. In Blender 2.49, the normals are not consistent. To fix that, recalculate all normals (select proxy, Tab, A, Ctrl-N, A, Tab) (Now fixed). In Blender 2.5, the first material is SSS_skinshader, which should be replaced by ProxySkin from the dropdown menu. This is probably a weird Blender bug.
Hopefully the proxy mesh can be useful for somebody. At least I had fun making it.
Update: A proxy obj file is now generated on obj export.
Tuesday, March 23, 2010
Topology converter
I've almost finished the python software to convert morph targets from meshes with different topology. There are still some things to do, but the results are already good, as showed in the image below.
Monday, March 22, 2010
Developing in makehuman - 4 - Undo-redo
When we started working on 1.0, one of the first features written was undo-redo. Having this from the start saves us a lot of time later as we add this functionality to each kind of model modification immediately. It is important that every modification is undo-able, since just one undo-able modification would leave the user without the possibility to undo anything. So it's crucial that if you write a plugin which modifies the model, you also make undo work.
Monday, March 15, 2010
New MHX rig: Gobo
Over the past months I have become increasingly unhappy about the rig created upon Blender export. The problem is partly that I am not an experienced rigger, but also that rigging from a python script poses special challenges. In particular, the Blender 2.49 API has some annoying omissions (e.g. no pole targets for IK constraints) and bugs (copy rotation constraints always evaluated in world space), which means that you cannot make the same rigs from python that you can do in the viewport.
The new Blender 2.5 has a completely new API, which should make it possible to do everything in python that you can do in the viewport, although there are still some things to be desired (Campbell Barton: a systematic way to add elements to collections without using operators, please). I have therefore looked for Blender 2.5 rigs that can be used for MakeHuman. My first attempt was to try use the Rigify auto-rigging system described at http://durian.blender.org/news/rigify-auto-rigging-system/ . However, I don't really understand how to use it, so this project has been postponed.
Instead, I have used the Gobo rig created by Tobus Lieven, see http://blenderartists.org/forum/showthread.php?t=172128 . The two characters in the picture share the same rig, more or less. Some modifications were necessary to adapt the Gobo rig to MakeHuman (Gobo only has two fingers), and I renamed all bones to be able to reuse the weight painting from the old rig. The Gobo rig is still somewhat incomplete, but I believe that it is fundamentally sound, and a solid foundation for future improvements.

As of today, MH characters with the Gobo rig can imported into Blender 2.5. When we export a character called "foo" from MakeHuman, three mhx files are created: foo-24.mhx (the "classic" MH rig for Blender 2.49), foo-classic-25.mhx (the classic rig for 2.5) and foo-gobo-25.mhx (the Gobo rig for 2.5). Run the importers/mhx/blender25x/import-scene-mhx.py script in Blender 2.5; it finishes very quickly. Now choose File > Import > Makehuman (mhx) from the main menu, select the right mhx file from the file selector, and wait. After a while (quite a while), the Gobo-rigged character should appear.
The new Blender 2.5 has a completely new API, which should make it possible to do everything in python that you can do in the viewport, although there are still some things to be desired (Campbell Barton: a systematic way to add elements to collections without using operators, please). I have therefore looked for Blender 2.5 rigs that can be used for MakeHuman. My first attempt was to try use the Rigify auto-rigging system described at http://durian.blender.org/news/rigify-auto-rigging-system/ . However, I don't really understand how to use it, so this project has been postponed.
Instead, I have used the Gobo rig created by Tobus Lieven, see http://blenderartists.org/forum/showthread.php?t=172128 . The two characters in the picture share the same rig, more or less. Some modifications were necessary to adapt the Gobo rig to MakeHuman (Gobo only has two fingers), and I renamed all bones to be able to reuse the weight painting from the old rig. The Gobo rig is still somewhat incomplete, but I believe that it is fundamentally sound, and a solid foundation for future improvements.

As of today, MH characters with the Gobo rig can imported into Blender 2.5. When we export a character called "foo" from MakeHuman, three mhx files are created: foo-24.mhx (the "classic" MH rig for Blender 2.49), foo-classic-25.mhx (the classic rig for 2.5) and foo-gobo-25.mhx (the Gobo rig for 2.5). Run the importers/mhx/blender25x/import-scene-mhx.py script in Blender 2.5; it finishes very quickly. Now choose File > Import > Makehuman (mhx) from the main menu, select the right mhx file from the file selector, and wait. After a while (quite a while), the Gobo-rigged character should appear.
Sunday, March 14, 2010
Developing in makehuman - 3 - Morph targets
Whatever your plugin does, there's a big chance that it will modify the model. As many of you probably know, makehuman doesn't work mathematically or procedural, but artistically. This means that you don't just drag vertices when moving a part of the body, but you actually apply a morph made by an artist. There are different kind of morphs targets which are applied in different ways.
Sunday, March 7, 2010
Developing in makehuman - 2 - GUI
The GUI in makehuman is still far from finished. Since the first alpha there have been many changes already and many other will come. This is because when features are added or modified, we can run out of space, or start to see things differently. Sometimes we experiment to see how a modifier can be manipulated in a different way. For example in the details and microdetails we chose to have tools manipulating the model directly instead of using sliders. Another idea for the macrodetails was a multidimensional slider, like a radar chart which would replace all five sliders. It is impossible to pour the GUI into into its final form while we are still adding functionality and getting new ideas.
parts_adapter news
Subscribe to:
Posts (Atom)

