Manuel Bastioni told 80.lv about the features of MakeHuman and the future updates of this development tool.
Manuel Bastioni, Joel Palmius and Jonas Hauquier told 80.lv about the features of MakeHuman and the future updates of this development tool. If you’re looking for a free and reliable 3D-modelling tool, you’re in luck. MakeHuman is a perfect fit for developers looking to cut the costs down without compromising on the features list.
How did you manage to keep MakeHuman absolutely free? How do you get the necessary funding to continue the product’s development?
In the 15 years the project has been active it has been sustained only by the great passion to share the knowledge with the world and grant access to high technology. It is the pure spirit of open source. No developer is paid anything whatsoever for development: it’s all done on a volunteer basis.
Most of our services are based on the free resources that are available to open source developers (such as TuxFamily, BitBucket). Other required infrastructure (build servers, home page hosting) is donated by the Swedish company Data Collection Östersund AB.
We have grown beyond the point where it’s feasible to run the project without a budget and we plan to implement some measures for acquiring funds via activities which are by-products of the project.
Could you tell us a little bit about MakeHuman?
The project was born at the end of 1999, with a Python script for Blender. This was written by Manuel Bastioni, who is the current project leader of the core team and who has been working on MakeHuman without interruptions for 15 years. The tool was called MakeHead, designed to model only character heads.
The open source community appreciated it and thanks to the encouragement and help of new contributors the modeling was extended to the whole body. The project, now called “MakeHuman”, was released at the end of 2000.
In 2004 MakeHuman won The Suzanne Award as best python script for Blender.
After a year, the complexity and the number of advanced functions that were planned to add, pushed the software to the next level: from Blender script to standalone C application, written with the big help of Paolo Colombo. It soon evolved again and after some time it was turned from C to a C++ application, thanks to the collaboration with Simone Re.
In the successive years the language was changed again, in order to reach the current form of pure Python application (particular thanks to Glynn Clements). Now the code is stable and modular, and actively maintained by a core team composed by Manuel Bastioni (modelling and direction), Jonas Hauquier (programming), Joel Palmius (web and build infrastructure) and Thomas Larsson (Blender integration). The full list of the contributors is published here.
We are also working on an archive to collect the historical versions of MakeHuman, old videos and images.
What are the main features of this tool? How can a game developer benefit from using MakeHuman?
A lot of people use MakeHuman for a wide variety of purposes. Googling for MakeHuman provides search hits about project themes ranging in topics from producing animations to using MH toons for teaching psychology classes about body language, to reconstructing forensic evidence in criminology studies. The application is downloaded hundreds of times each day.
However, the main idea was always for MakeHuman to be used in professional pipelines: to get a realistic humanoid 3D object with textures and rigging, usable from minute one in any graphics project that needs to depict a human.
This is also how a game developer would benefit. MakeHuman is able to export characters with varying mesh densities and various rigging solutions. Low poly characters can be made for challenging situations where calculation resources are limited. High poly characters can be made when quality is of essence and there are plenty of computing resources. A basic and static character can have a primitive rig. A character in need of advanced posing can have a more detailed rig.
As seen by various demo videos, it’s entirely possible to use these characters in game software: We have examples from Unity3D and Second Life for example.
Apart from the obvious usefulness of getting a functional and rigged character with only a few mouse clicks, MakeHuman is pretty unique in the fact that we put close to no license restrictions whatsoever on a character which has been exported from an official version of the MakeHuman software. All such output is put under a CC0 license, which is the most permissive license we were able to find.
So for a game developer, the benefit would be that he gets access to free high quality graphic assets without having to worry about license trouble or vendor lock-in.
Tell us a little bit about the functions of this tool. How does it work with different 3d-editors, how can you incorporate the model from the program into a game?
MakeHuman is designed with an innovative GUI, developed thanks to a continuous flux of feedback from our community. The focus is on usability and intuitiveness, so that it won’t require specialized knowledge or skills to understand and use.
It works through parametric modeling. There are a large number of sliders that can be dragged in order to modify everything from ethnicity to ear size.
Behind this simple interface is a complex technology, based on a big database of human shapes (over 3000 morphings). These are handled by an internal smart engine that combines them in order to fit main biometric features such as age, fat percentage, muscle percentage, while still being able to output characters which look natural.
During the development of MakeHuman, particular attention was dedicated to the creation of the base characters, called the base mesh. The topology of the mesh is optimized for human characters, and particularly suited to animations (i.e,. face loops along the natural wrinkles, edges optimized for skin compression-extensions) and for sculpting with Mudbox or Zbrush (Quads only, low number of poles, max 5 edges per pole).
The base mesh usually gets the job done, but in some cases the artist needs an optimized topology. For this reason, MakeHuman offers a set of special topologies, optimized for special uses, such like low poly male/female, hyper low poly, male/female bodybuilder topologies, topologies with full genitalia.
This means that the time from installing MakeHuman for the first time to being able to make a usable character is very, very short, independent on what the intended use is.
Can we use MakeHuman to make animations and to export those animations to game-engines?
Yes. While MakeHuman in itself isn’t used for making animations, it exports rigged characters which are animatable in your favorite environment, be it a game editor or a 3d editor. For example this is a simple Zombie demo created in Blender using a free BVH from Carnegie Mellon University.
MH directly supports Ogre3d, JMonkeyEngine or NeoAxis game engine meshes. It also allows exporting as collada or FBX files, which can then be imported into engines like UE4, Unity or Second Life. MH allows exporting different game-ready rigs easily selectable from a library.
Additionally, there is a motion capture retargeting plugin available for Blender that allows users to quickly load BVH files from various mocap sources (many freely available on the net) onto the human model.
The rigging library that will be available in MakeHuman 1.1 .
MakeHuman is built on Python, which is not what you call an accessible language. Does this limit the amount of changes that developers can make with your software?
We don’t agree that Python is an inaccessible language. On the contrary, it is one of the most widely spread platform-independent languages available. Looking at Tiobe’s top 15 language list, it’s hard to see what the alternative to Python would be. Python is used in many industry applications, both in the graphics industries (where it is used by studios such as Pixar and ILM) as well as in the broader world of software systems. This means that many software developers are familiar with the language. Indeed, the entire scripting language of Blender is based on python, and many similar tools such as Maya support python scripting.
Since python currently ranks as the eight most popular language, there is no shortage of developers able to read and write Python as such. It’s a bigger problem to find developers who understand very complex graphical concepts such as mesh transformations.
We don’t use a language like C# since that means vendor lock-in and since C# has historically had very poor support for platforms other than Windows. Currently a significant part of our users use Linux and MacOSX as their platform of choice. While it’s theoretically possible to write a .NET application for Linux, it’s still considered a very arcane thing to do.
To further understand this choice, it’s also worth considering that MakeHuman already has a long development history of 15 years, which predates technologies such as C#.
How much content do you provide with the MakeHuman tool? Is there a way to import models into the program? Is there a shop for buying additional content for MakeHuman?
Currently we provide a basic set of high quality skin textures, hair styles, clothes, proxies and riggings with MakeHuman. Further, we provide all tools required for producing more such assets.
In order to increase the speed of development, add new features and offer better support to our community, we are currently considering to raise funds by creating a shop for selling premium assets produced with MakeHuman, and it’s possible that some assets might eventually be produced for MakeHuman on a commercial basis. However, as it stands now, all available assets are provided on an open source basis, and this will remain the main approach.
What are your plans for the future? Are you going to make MakeHuman compatible with Unity or other game engines?
MakeHuman is already compatible with Unity and several other game engines. There is an excellent set of tutorials by Xenosmash Games on YouTube on how to getting a MH model animated and up and running in Unity3d.
In the next versions of MakeHuman we intend to focus on improving the pipeline from MakeHuman to the most commonly used tools in the CG and game industry, including better support for rigs. We also plan to provide an animation library and stay more focused on standard file formats (In MakeHuman 1.1, the old MHX interchange format will be replaced by FBX and DAE).
What we plan to do is smoothen and document the pipelines. As it stands now, it’s not entirely obvious how the import/export is to be done in order to export a MakeHuman model into a format usable by your game engine of choice. Power users are able to do it already, but it requires quite a bit of know-how and a bit of tweaking.
For our fans that want to know the status of development, in realtime, we have a nice progressbar here. Following the link above it’s also possible to see the roadmaps, and of course to report bugs and suggestions, which are always welcome.