Yet Another Blender Egg Exporter (YABEE)



Could somebody please make this thread sticky?
This thread is by far the most used and one of the most important one.


Where is our hero, ninth?!
Our excellent exporter for Blender 2.63 needs your attention. don’t leave us alone in our world! come back and save us again…

#303 There is a clone with a patch for 2.63. You have to convert the mesh to tris and quads before exporting, otherwise textures will get messed up.


i try to export a sphere made under blender 2.63 with a normal map and it seems to use it as a texture… the bump effect is not functional under this exporter ?
How to use blender with bump mapping and export it to blender ?

PS: here is the blend file,


benicourt81 : The patch linked by ambyra didn’t work for me, so i tried to do one myself. You can find a quickly patched yabee for blender 2.63, as well as your blender file fixed, here.

I didn’t get the tbn generator to work quite yet, so in order to generate the tangents and binormals of the exported model (you need those to have normal mapping working), you have to choose “Panda” for TBN generation, which will use the egg-trans command. Check the yabee exporter options after you click on “file -> export -> panda3D(.egg)”. Check also the other settings applied to textures in blender.


Thank you very much Arikel, that’s ok now for me.
I’ve 2 other problems with Yabee :

  1. Actually, i use .x export, and x2egg to export objects which are transparent. Yabee don’t export Z-Transparency ?
  2. I’ve an animation (bones) which is good under blender, but i can’t export it (.x ou Yabee, nothing works - only static mesh).
    The blend file is here :


the problem you have is not yabee, nor the x exporter.
the model itself is fubar. Meshes parented to (even multiple) Armatures, an “unused” armature, mismatching scales/positions of armatures and models, and i have absolutely no clue what happened with the animation data itself or where it is. i can see hundrets of isolated keyframes, no actions defined, …

my guess would be that this is a model made for a very old version of blender and got totaly messed up with time and conversion to new blender versions. given that mess, i am very surprised it does animate inside blender at all.


Hi guys, I’m having some troubles when I try to use UV textures. I figured out that if I don’t select all the faces of the mesh to unwrap, YABEE crashes.

This is the error I’m receiving:
This is a demo of what I’ve done:

I appreciate your help.
Regards, Leo.


Ok, thank you. I think i don’t use correctly blender when i’m importing a BVH file… I’ll search for other tutorials.


Hi all,

I made a small patch for exporting Collide information properties automatically. Instead of being put in the egg file as a Collide { “Polyset descend” } for example, game logic properties called “Collide” are exported as { Polyset descend }.

Should I simply send it as a patch on (seems that the issues there aren’t followed currently), attach it here or send it to the updated 2.63 version ?

It’s not vital, but that patch saves quite a bit of time…


Maybe we should try to contact ninth from his site

He is probably busy and that’s why he hasn’t shown up here for few months, but checking and merging few patches can take less time than writing your own code.

Also, I’ve noticed in the material reading function that the ambient colors are not written and material.emit value is multiplied by 0.1. Any ideas if that’s right?
And I’m not really sure if the hardness should be calculated like that (mat.specular_hardness / 512 * 128). I thought you just converted the integer to a float.

            mat_str += '  <Scalar> diffr { %s }\n' % STRF(mat.diffuse_color[0] * mat.diffuse_intensity)
            mat_str += '  <Scalar> diffg { %s }\n' % STRF(mat.diffuse_color[1] * mat.diffuse_intensity)
            mat_str += '  <Scalar> diffb { %s }\n' % STRF(mat.diffuse_color[2] * mat.diffuse_intensity)
        elif TEXTURE_PROCESSOR == 'BAKE':
            mat_str += '  <Scalar> diffr { 1.0 }\n'
            mat_str += '  <Scalar> diffg { 1.0 }\n'
            mat_str += '  <Scalar> diffb { 1.0 }\n'
        mat_str += '  <Scalar> specr { %s }\n' % STRF(mat.specular_color[0] * mat.specular_intensity)
        mat_str += '  <Scalar> specg { %s }\n' % STRF(mat.specular_color[1] * mat.specular_intensity)
        mat_str += '  <Scalar> specb { %s }\n' % STRF(mat.specular_color[2] * mat.specular_intensity)
        mat_str += '  <Scalar> shininess { %s }\n' % (mat.specular_hardness / 512 * 128)
        mat_str += '  <Scalar> emitr { %s }\n' % STRF(mat.emit * 0.1)
        mat_str += '  <Scalar> emitg { %s }\n' % STRF(mat.emit * 0.1)
        mat_str += '  <Scalar> emitb { %s }\n' % STRF(mat.emit * 0.1)
        #file.write('  <Scalar> ambr { %s }\n' % STRF(mat.ambient))
        #file.write('  <Scalar> ambg { %s }\n' % STRF(mat.ambient))
        #file.write('  <Scalar> ambb { %s }\n' % STRF(mat.ambient))

And I think ambient should be like this.

 ambient_colors = [material.mirror_color[0], material.mirror_color[1], material.mirror_color[2], material.ambient]

At least seen it used for ambient somewhere.

And diffuse alpha is not written, but isn’t “material.alpha” just that?


Merged patches for Blender 2.63a. Sorry for the long silence.


Sweet :slight_smile:

Is there some ReleaseNotes like Panda’s in the site mentionng all the changes? I can’t find any.


I didn’t thought about it. Just making notes in the commit descriptions )

  • compatibility with Blender 2.63
  • some changes in the “Simple” texture export (alpha textures, mipmap, clip wrap mode)


I think someone also made a patch for COllision entry export.


You mean this message? … 0f50#85461


That post implies that the regular way of exporting Collision polygons already exists. But last post I read mentioning it says its not yet supported. I thought he meant there is another patch for that.

All is needed to do is check Property name before exporting and if it’s “Collide”, write it like this:

<Collide> { string value }

Instead of

<Tag> Collide { string value }


I know, but I was planning to add a separate panel with the settings of polygons/meshes for the specific egg parameters in order to not have to work with many different tabs.


I don’t think I really get what you’re thinking of doing.
Looks like you want to allow people to set tags inside the browser UI of the exporter?
Well that raises a question: what if you’re exporting multiple object (a whole level), which object will the tag be added to? I guess you could allow to specify that too, but that doesn’t seem more convenient. And the data won’t be saved in the blend, only the exported egg, which means reassigning tags on each export.


New Blender allows you to create custom properties and keep it in the .blend file. Also you can create GUI elements for this properties.