Makehuman - > Blender - > Panda3D

First off, since this is my first post, I’d like to say, hello everyone! I love everything I’ve seen from Panda, and that developed a great interest for me in using it. That having been said, I’ve been having a difficult time using Blender and generating things for use in Panda. Specific to my current issue, I’m attempting to use Makehuman for use in Panda3D.

I’m having a really hard time through the process of making a character in Makehuman (1.0 Alpha 7), importing it into blender (2.66, just updated because I wanted the newest copy of Yabee), and exporting with Yabee (13) to ultimately load the character etc. in Panda. Before I start manipulating the armatures and creating animations, I would like to be able to streamline this process in such a way that I know it will come out of Blender and be useable in Panda, otherwise I feel like it’s probably just a waste of time.

So, here’s the process! I toyed around in Makehuman and exported the character using the MakeHuman eXchange (.mhx) format. I then imported this character into Blender. I’m not positive how to decimate it properly from here, I’m rather new to all of this, and Yabee only seems to work for me half the time. I’ve been exporting some stuff I’ve done as .x just to make sure it works, and those things have a strong tendency to work, even when Yabee throws a fit.

So, tangent aside, once I attempt to export (using default settings and only PView as an extra checkbox), I get a traceback error. Then when I attempt to export using default settings but with “Apply Modifiers” unchecked, it takes a really long time, (I’m assuming it’s because it’s exporting a giant file). The exported file is about 30mb, which seems pretty large, but when I try to open it with Panda, Command Prompt explodes with:
Error in path/mh_char.egg at line (xxxxxx), column 30:
{ specularity.006 }
Unknown texture specularity.006
dumping hundreds of thousands of this message before finally deciding to drop the program and give me a few IOErrors.

If all this lacks clarification, I would be happy to show with a video of what is going on.

Please help?? :confused: Makehuman would allow me to quickly generate all the characters I need (including, hopefully, nonhuman-humanoids), with animations and everything, and move my progress along fairly rapidly, as I am a one-person team trying to create an entire game.

Perhaps the reason it was breaking was due to my modifications to the mesh in blender before export. It’s working now. However, I’m still having issues with decimating it. :frowning:
Also, it’s not viewable in my game, only through PView.

If you see your model in pview and not see in the game, that it may be than your actor contain several parts. Try to check “Merge actor” flag before exporting.

MH has soething called a proxy mesh, it’s a low poly version of the basemesh. The basemesh has ~30k verts and the proxy ~4k (or close to, I’m writing from memory, so the numbers could be +/-90% ). You should be able to export this proxy mesh from HM, then you wouldn’t need to decimate it (keeping the basemesh is still a good idea if you want to bake a normal map).

If you’re going to spend a lot of time in Panda3d I suggest that you just write your own exporter. it will save you time in the long run. Yabee is a fantastic program that I use for simple things, but I simply couldn’t get it to work with armatures. It took a while to write my own, but when something breaks in my exporter I usually know why and how to fix it right away. There’s also the benefit of being able to hardcode certain things so I reduce the act of exporting down to clicking a single button.

I can’t stress how terrible blender’s python interface is, though. It doesn’t even use setters and getters, and it changed with the latest version so half the tutorials and forum posts about it are completely useless to you. Jiggering Yabee to work for you will be faster, but only if this is the last thing that’s going to go wrong with it. This is unlikely unless you stop using Panda3d soon.

For some reason, MakeHuman seems to like to make meshes vanish when Panda shines a light on them. I’m not sure why this is, but it explains a lot, since, in the context of my game, a light was automatically shone onto the mesh.

This is actually extremely helpful. They have a high-low poly, mid-low poly, and a low-low poly mesh. This was actually exactly what I was looking for.

In case anyone is interested, I’m probably going to make “clothes” from the models (lots of experimental removals of shape keys), and try to not use as much of the actual nekkid makehuman model as possible. Once I animate the character, should I be using separate animations of each “changeable” feature (gauntlets, tunic, pauldrons, helm, etc.)?

YABEE may incorrectly export the material and texture settings. You can look into exported .egg and check it. All texture and materials entries is in the header of file.

I have a similar problem.

I’m also using these three programs, but I exported from MakeHuman to Blender by Collada and I did the same thing to export from Blender to Panda3D.

When I try to use “dae2egg” to get an egg file, there is a warning: “Unsupported entity type found”, and when I open the file, some weird things happen to the character.

This is what I got

This is what it looks like at Blender

I also tried to use Yabee, but it didn’t work :confused:

Does anybody know if it is a problem on the model or if the problem is actually when importing/exporting by Collada?

dae2egg doesn’t support animated models, so perhaps it’s messing up the animation data.

What exactly not work? Is it the same problem with the materials or it’s not work at all?

I’ve just played with makehuman. I haven’t any problem with export, except small issue with material. To avoid this you can disable “Transparency” in the Blender’s material, or remove “diffa” from the exported egg.

My exported example
docs.google.com/file/d/0BxxA9bh … sp=sharing

I actually just solved one of the problems I was having. The man was vanishing when I hit L in Pview. In order to fix this, I set the texture process to “bake” and checked diffuse. It seems, however, a new problem has arisen from this. I’ve been using the model to create its clothes, a fairly common technique that I’ve found on the interweb. When I use the technique of baking, I can see the details of the proxy mesh’s texture, even with the lighting in Pview. However, now it seems that, for some reason, the clothing (except one article, and I’m not sure why), is being tainted by the texture, and the clothes are actually modifying the proxy mesh’s texture as well. Any ideas? Is there something I’m doing wrong? I’ll attach a screenshot if you need me to.

I guess, in theory, since the player will be able to change armor, I could export the gloves, boots, pants, shirt, etc., separately from the body, and therefore use this new technique to export the character, and the old technique to export his clothing. So, theoretically, for now, all my problems have been solved! =D

P.S. For anyone using the clothing technique, if you’re going to have a lot of modifiers to apply in the process, you’re going to want to remove the shape keys. I’m not sure why this is really necessary, but shape keys were messing me up. (I’m pretty new to this, I’m not even sure what shape keys are for. ^_^)

Do not use bake mode, just uncheck “Transparency” in the Blender’s material before exporting.

It’s not checked to begin with. When I checked pview with your export the texture wasn’t applied to it…

Edit:
Transparency was checked on the model, but that doesn’t seem to be fixing my issue… It still shows him, and then when I hit L, he goes away. =( It works with the regular mesh when I remove the transparency, but not with the proxy mesh. And, unless 25k+ or so vertices are okay and can be handled on a character-by-character basis, this doesn’t fix my issue. =(

You do something wrong. May be unpacked textures? I just tested archive again and it works in all cases.

As for exporting, if unchecking “Transparency” not solve problem, then try to remove
diffa { 0.000000 }
from material record in exported file.

This worked! So many problems are solved, now. That’s a strange problem, though. Interesting workaround! Thank you!